Opened 14 years ago

Closed 14 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
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 14 years ago.
tarball with two screenshots + save
comi.s11 (74.0 KB) - added by SF/gizz_online 14 years ago.
earlier savegame
br_1329220.diff (748 bytes) - added by cyxx 14 years ago.
Patch against an October 20 CVS snapshot

Download all attachments as: .zip

Change History (12)

Changed 14 years ago by SF/gizz_online

Attachment: bug2.tgz added

tarball with two screenshots + save

comment:1 Changed 14 years ago by SF/gizz_online

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

comment:2 Changed 14 years ago by fingolfin

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

comment:3 Changed 14 years ago by cyxx

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.

Changed 14 years ago by SF/gizz_online

Attachment: comi.s11 added

earlier savegame

comment:4 Changed 14 years ago by cyxx

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.

Changed 14 years ago by cyxx

Attachment: br_1329220.diff added

Patch against an October 20 CVS snapshot

comment:5 Changed 14 years ago by cyxx

Owner: set to cyxx

comment:6 Changed 14 years ago by cyxx

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

comment:7 Changed 14 years ago by sev-

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 Changed 14 years ago by cyxx

Resolution: fixed
Status: newclosed

comment:9 Changed 14 years ago by cyxx

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.