Opened 17 years ago

Closed 17 years ago

#512 closed defect (fixed)

DIG: Layer problem

Reported by: SF/jsaathof Owned by: SF/khalek
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: The Dig


In some scenes in The Dig there is a problem with layers.
The first one I encountered is on the alien planet where the
creatures are burried. Maggie Robbins is standing in front of
the piles of bones, but the piles are projected in front of her.

Later in the game this behaviour comes back on some
occasions. In the lab of the inventor down at the control
panel, the talk icons are projected behind the vines.

Also the water reflections near some spires don't seem right.

I use scummvm version 0.2.2 CVS built on Oct. 26 2002 on a
Debian Linux system. English talkie version of The Dig.

Ticket imported from: #629412. Ticket imported from: bugs/512.

Change History (6)

comment:1 by SF/nightweaver, 17 years ago

I've also noticed this frequently with the captions; first
on the asteroid, when the device is armed in Quadrant 3. I
also noticed the same thing with Maggie as described above.
Also, related or not (I don't know), when Brink died, he was
still shown digging (not moving though) when the view
switched back to the surface. Using latest at time of
posting (Nov. 6) Win32 build.

comment:2 by eriktorbjorn, 17 years ago

The room with the buried creatures should be fixed now (see
patch #634326 for details). Could you check if the fix had
any effect on the other bugs? (I haven't gotten far enough
in The Dig to be able to test it myself.)

comment:3 by SF/proff_fs, 17 years ago

ScummVM 0.2.81 CVS
Built on Nov 14 2002 18:55:22 (GMT)
The Dig (German)
Win32 MP3 enabled

This seems to be mostly fixed (I just got to the nexus). Only
when placing the bomb in quadrant two (top right) and
activating it, one picture of the glowing animation partly
overlays the sprite of Boston.

comment:4 by eriktorbjorn, 17 years ago

> one picture of the glowing animation partly
> overlays the sprite of Boston.

That's a different bug. Here's what seems to be happening:

For all practical purposes, we have two actors here: Boston
(actor 3) and the glowing light (actor 6). Boston isn't
doing anything, so he's only redrawn when his area of the
screen is "dirtied".

Actor 6, on the other hand, is always being redrawn because
animateCostume() always tells it to, which in turn is
because akos_increaseAnims() always returns true for it.
Which makes sense since its appearence is constantly changing.

However, there is one frame where actor 6 isn't drawn
because drawCostumeChannel() terminates on the code ==
AKC_Return case. So in this case, the screen won't be
dirtied which means that actor 3 won't be marked for redraw.

So on the next frame, *only* actor 6 is redrawn.

Unfortunately I have no idea how to fix this correctly.

comment:5 by SF/khalek, 17 years ago

Owner: set to SF/khalek
Resolution: fixed
Status: newclosed

comment:6 by SF/khalek, 17 years ago

this seems to be fixed as far as I can tell reopen if this
isn't the case.

Note: See TracTickets for help on using tickets.