Opened 17 years ago

Closed 17 years ago

Last modified 16 months ago

#8119 closed patch

DIG: Layering bugfix

Reported by: eriktorbjorn Owned by: aquadran
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: The Dig

Description

This should fix some - maybe most - of bug #629412 ("DIG: Layer problem"). I've only gotten far enough to see the room with the buried animals, though -- I don't know about the other problems mentioned.

The problem in that room is that it's made up of five layers, but gdi._imgBufOffs[] (which despite its name is used for storing offsets into the *mask* buffer) has only four elements. In my case, the fifth one was 0, so the mask that was meant for the last layer was applied to the last one.

I'd really like to change the name of this variable, but that's beyond the scope of the patch.

Note that save/load still thinks that gdi._imgBufOffs[] is four elements, since I didn't want to break savegame compatibility. Since loadState() calls initBGBuffers() I'm not entirely convinced that the array *has* to be saved anyway.

Ticket imported from: #634326. Ticket imported from: patches/224.

Attachments (1)

dig-masking.diff (1.7 KB ) - added by eriktorbjorn 17 years ago.
Patch against an October 5 CVS snapshot

Download all attachments as: .zip

Change History (3)

by eriktorbjorn, 17 years ago

Attachment: dig-masking.diff added

Patch against an October 5 CVS snapshot

comment:1 by aquadran, 17 years ago

Owner: set to aquadran
Status: newclosed

comment:2 by digitall, 16 months ago

Component: Engine: SCUMM
Game: The Dig
Note: See TracTickets for help on using tickets.