Opened 14 years ago

Closed 14 years ago

Last modified 14 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 14 years ago.
digdemo masking bug shot #1
digdemo-bug2.png (69.0 KB ) - added by joostp 14 years ago.
digdemo masking bug shot #2

Download all attachments as: .zip

Change History (6)

by joostp, 14 years ago

Attachment: digdemo-bug1.png added

digdemo masking bug shot #1

by joostp, 14 years ago

Attachment: digdemo-bug2.png added

digdemo masking bug shot #2

comment:1 by SF/kaminari, 14 years ago

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

comment:2 by eriktorbjorn, 14 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, 14 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, 14 years ago

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