Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#2195 closed defect (fixed)

DIGDEMO: Characters appear in front of foreground objects

Reported by: joostp Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: The Dig

Description

Not sure wether to file this under "graphics" or "actor behaviour", anyway, using latest CVS (11 Sept. 2005) there are some very obvious graphical glitches where you can get your characters in front of foreground objects.

The attached screenshots demonstrate the problem. To reproduce just start the demo and walk to left, when passing the objects shown in the screenshot your characters will appear in front of them, there are no other steps necessary to cause the glitches to appear here.

The demo used is the english demo linked from the demos page. I haven't tried this scene in the full version of The Dig yet. Tested platforms: PC (debian linux) and PSP.

Ticket imported from: #1288652. Ticket imported from: bugs/2195.

Attachments (2)

digdemo-bug1.png (66.7 KB ) - added by joostp 15 years ago.
digdemo masking bug shot #1
digdemo-bug2.png (69.0 KB ) - added by joostp 15 years ago.
digdemo masking bug shot #2

Download all attachments as: .zip

Change History (6)

by joostp, 15 years ago

Attachment: digdemo-bug1.png added

digdemo masking bug shot #1

by joostp, 15 years ago

Attachment: digdemo-bug2.png added

digdemo masking bug shot #2

comment:1 by SF/kaminari, 15 years ago

I checked the scene with the full Mac version on WinXP, and the problem doesn't appear.

comment:2 by eriktorbjorn, 15 years ago

One difference between the full game and the demo is script-4. I'm not sure exactly when this script is run, but at the very least it appears to be run when moving between rooms. In the demo it looks like this:

[0000] (6E) setClass(4,[21]) [000A] (6E) setClass(3,[21]) [0014] (66) stopObjectCodeB() END

In the full game, it's even shorter:

[0000] (66) stopObjectCodeB() END

If I understand things correctly, those setClass() opcodes will set _forceClip to 0, meaning "never mask", in actors 3 and 4 which I assume are Boston and Maggie. Brink appears to be correctly masked, which is why I think the script doesn't affect him.

Of course, this only explains why the problem happens. Not how to fix it.

comment:3 by Kirben, 15 years ago

The problem was the changes made by Actor::classChanged () are only required by SCUMM 3/4 games, but were been applied to later SCUMM games too.. Fixed in ScummVM CVS.

Might help with other masking issues too, since I noticed a masking issue in airport no longer occurs now.

comment:4 by Kirben, 15 years ago

Owner: set to Kirben
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.