#1476 closed defect (fixed)
COMI: Part of "voodoo-throne" appears in the wrong place
Reported by: | SF/evil_penguin | Owned by: | eriktorbjorn |
---|---|---|---|
Priority: | low | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Monkey Island 3 |
Description
When the voodoo-throne appears / disappears part of the throne is visible at the wrong place (during the actual transition).
This is with ScummVM 0.6.0pre as of today (2004-02-20 22:40 CET).
Ticket imported from: #901462. Ticket imported from: bugs/1476.
Attachments (2)
Change History (12)
by , 21 years ago
Attachment: | scummvm-voodoodown2.png added |
---|
comment:1 by , 21 years ago
Summary: | COMI: Part of "voodoo-throne" appears at the wrong place → COMI: Part of |
---|
comment:2 by , 21 years ago
Summary: | COMI: Part of → COMI: Part of "voodoo-throne" appears in the wrong place |
---|
comment:3 by , 21 years ago
I saw this a long time ago, but I don't think I ever got around to reporting it. (I haven't played this game much in ScummVM.)
From what I remember, it only happens if you summon the voodoo lady after you've picked up something off the floor. If so, I guess that for whatever reason the mask is erased along with the object.
comment:5 by , 21 years ago
Priority: | normal → low |
---|
comment:6 by , 21 years ago
Summary: | COMI: Part of "voodoo-throne" appears in the wrong place → COMI: Part of "voodoo-throne" appears in the wrong place |
---|
comment:7 by , 20 years ago
As far as I can see, when the object is redrawn - that is, removed - it eventually uses decompressMaskImg() which clears that part of the mask. In a way this makes sense, since the bottle of glue and the pin don't mask anything themselves - particularly not when they've been picked up. If I force it to use decompressMaskImgOr() instead, it works.
The reason that function isn't used even though drawBitmap() is called with the dbAllowMaskOr flag is that useOrDecompress is false, since that's what decompressBitmap() returns.
It uses cases 118 and 18 of decompressBitmap(), so if I make them se useOrDecompress to true, it works. But is that correct, or will it break other stuff?
If I only change case 118, it works for the pin and most of the glue bottle, but a sliver of the mask is still destroyed. I haven't checked why this is, but perhaps it's redrawing yet another object on the ground at the same time, and that uses case 18?
comment:9 by , 20 years ago
I added the workaround erik suggests to CVS, only for COMI, though. Of course it would be preferable if somebody with disassembly could take a look at this, but for now, this works, and we can wait for regression reports :-). Note: the problem might also be at the higher level, in drawBitmap -- it might have to be changed a bit for V8, after all...
comment:10 by , 20 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Screenshot