Opened 18 years ago

Closed 18 years ago

#2276 closed defect (fixed)

COMI: Obj showing through gold medallion

Reported by: SF/gizz_online Owned by: cyxx
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 3

Description

# scummvm -v : (snapshot 20051013) ScummVM 0.8.0CVS (Oct 13 2005 12:11:32) Features compiled in: Vorbis ALSA zLib

The bug appears on the chimp's ship on blood island, in the captain's cabin. The object in question is a big porcelaine vase, on the right. If you select "look at" in the ingame GUI (the gold medallion with three actions) on this object, the top of the vase (the hole) shows through the GUI.

# Language of game : french (original CD copied on my hdd) # Version of game : original talkie # Platform and Compiler : Debian testing 3.1 linux 2.6.13 AMD64 gcc version 4.0.2 (Debian 4.0.2-2) # Attach a save game if possible : see attached (save + shot)

Ticket imported from: #1329220. Ticket imported from: bugs/2276.

Attachments (3)

bug2.tgz (220.2 KB ) - added by SF/gizz_online 18 years ago.
tarball with two screenshots + save
comi.s11 (74.0 KB ) - added by SF/gizz_online 18 years ago.
earlier savegame
br_1329220.diff (748 bytes ) - added by cyxx 18 years ago.
Patch against an October 20 CVS snapshot

Download all attachments as: .zip

Change History (12)

by SF/gizz_online, 18 years ago

Attachment: bug2.tgz added

tarball with two screenshots + save

comment:1 by SF/gizz_online, 18 years ago

Summary: Object showing through GUI (gold medallion)COMI:Obj showing through GUI (gold medallion)

comment:2 by fingolfin, 18 years ago

Summary: COMI:Obj showing through GUI (gold medallion)COMI: Obj showing through gold medallion

comment:3 by cyxx, 18 years ago

Apparently, in this savegame, the object 795 has kObjectClassIgnoreBoxes in its _classData. So in when it is drawn, in drawBitmap(), it is done in all the z-planes (which leads to the glitch).

If I use the bootparam 290 to get there, there's no graphical glicth as object 795 doesn't have the kObjectClassIgnoreBoxes class.

So, probably something is wrong in the save data. nsauzede / gizz_online, can you attach the savegames you made before this one ? Thanks.

by SF/gizz_online, 18 years ago

Attachment: comi.s11 added

earlier savegame

comment:4 by cyxx, 18 years ago

In fact, nothing seems to be wrong in the save data. Class 22 is apparently set on purpose in script-246 :

[0AA5] (89) setClassOf?(795,[150]) [0AB5] (A4) animateActor(1,7) [0AC0] (68) breakHereVar(4) [0AC6] (9D) loadRoom(38) [0ACC] (6B) delaySeconds(5) [0AD2] (65) if (VAR_OVERRIDE) { [0ADC] (85) endOverride() [0ADD] (93) printLine.baseop() [0ADF] (93) printLine.msg(" ") [0AE3] (A1) putActorAtXY(7,0,0,0) [0AF8] (89) setClassOf?(795,[150])

I think the solution is quite simple in fact, I checked disassembly and dbDrawMaskOnAll doesn't seem to be used at all in COMI (there are no getClass() checks in drawBitmap/drawObject). It is in samnmax and FT, though.

I will playtest COMI a bit more to see if this is causing regressions before comitting.

by cyxx, 18 years ago

Attachment: br_1329220.diff added

Patch against an October 20 CVS snapshot

comment:5 by cyxx, 18 years ago

Owner: set to cyxx

comment:6 by cyxx, 18 years ago

Slightly offtopic, in FT it seems dbDrawMaskOnAll should only be set if getClass(31) is != 0. And not 22, as in CVS.

comment:7 by sev-, 18 years ago

cyx, of course, feel free to fix FT in favor of disassembly. Probably it will even fix some masking issues like https://sourceforge.net/tracker/index.php?func=detail&aid=1092993&group_id=37116&atid=418820

comment:8 by cyxx, 18 years ago

Resolution: fixed
Status: newclosed

comment:9 by cyxx, 18 years ago

Commited the COMI related change.

sev, the masking issue you describe isn't related to this. To fix item 1092993 properly, I think we need to use blasttexts in order to display subtitles which, last time I looked, required non trivial changes.

Note: See TracTickets for help on using tickets.