Opened 9 years ago

Closed 2 years ago

#5378 closed defect (fixed)

MANIAC C64: Bug while getting the stamps from the parcel

Reported by: SF/zaurak Owned by: segrax
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Maniac Mansion

Description

Version:ScummVM 1.2.0svn 52814 (Sep 20 2010 10:11:50)
System: Windows XP
Game: Maniac Mansion C64 (German language)
playing with Dave, Syd & Bernard

After Syd gets the parcel, he can try to open it. Although he can't open it, he will get a few stamps instead, which are necessary to send the demo band tape (Kassette) inside the envelope later in the game.

Bug description: In the original game Syd will get stamps showing the entry "stamps" (Briefmarken) inside the inventory. These stamps can be used later on the demo band tape inside envelope (Kassette in Umschlag).

Using ScummVM the same action "Öffne Paket" (open parcel) will show different results depending on the Room Syd is situated in.

1.) Outside the house (Savegame 1, Screenshot 1): Syd will get two inventory entries "stamps" (Briefmarken) instead of one entry. This causes one more bug described later.
2.) Go inside the house and reach the first floor (Screenshot 2): Syd will get no stamps at all, although he pretends to get some.

If Syd gets two inventory entries for stamps and later tries to stick them onto the envelope (Benutze Briefmarken mit Kassette in Umschlag), then the inventory entry "demo tape inside envelope" (Kassette in Umschlag) disapears while both inventory entries for "stamps" (Briefmarken) remain (Savegame 2).

Ticket imported from: #3072094. Ticket imported from: bugs/5378.

Attachments (7)

maniaca.s10 (5.8 KB) - added by SF/zaurak 9 years ago.
Savegame 1 -> Öffne Paket -> 2 inventory entries for "stamps" (Briefmarken)
maniaca.s11 (7.0 KB) - added by SF/zaurak 9 years ago.
Savegame 2 -> Benutz Briefmarken mit Kassette in Umschlag -> inventory entries for "demo band tape inside envelope" (Kassette in Umschlag) disapears
MMC64 Öffne Paket C64.png (5.0 KB) - added by SF/zaurak 9 years ago.
Screenshot from C64 -> correct behavior after "open parcel" (Öffne Paket)
MMC64 Öffne Paket ScummVM 1.png (10.9 KB) - added by SF/zaurak 9 years ago.
Screenshot ScummVM -> wrong behavior after "open parcel" (Öffne Paket) outside the house
MMC64 Öffne Paket ScummVM 2.png (12.8 KB) - added by SF/zaurak 9 years ago.
Screenshot ScummVM -> wrong behavior after "open parcel" (Öffne Paket) on the first floor
fixed.png (30.6 KB) - added by SF/segra 5 years ago.
mm.png (22.7 KB) - added by SF/zaurak 5 years ago.

Download all attachments as: .zip

Change History (17)

Changed 9 years ago by SF/zaurak

Attachment: maniaca.s10 added

Savegame 1 -> Öffne Paket -> 2 inventory entries for "stamps" (Briefmarken)

Changed 9 years ago by SF/zaurak

Attachment: maniaca.s11 added

Savegame 2 -> Benutz Briefmarken mit Kassette in Umschlag -> inventory entries for "demo band tape inside envelope" (Kassette in Umschlag) disapears

Changed 9 years ago by SF/zaurak

Attachment: MMC64 Öffne Paket C64.png added

Screenshot from C64 -> correct behavior after "open parcel" (Öffne Paket)

Changed 9 years ago by SF/zaurak

Screenshot ScummVM -> wrong behavior after "open parcel" (Öffne Paket) outside the house

Changed 9 years ago by SF/zaurak

Screenshot ScummVM -> wrong behavior after "open parcel" (Öffne Paket) on the first floor

comment:1 Changed 9 years ago by SF/zaurak

Due to this bug, the game is not completable using the path by getting a music contract.

comment:2 Changed 9 years ago by SF/tobigun

In script roomobj-1-24 the following commands are executed if the parcel has not been opened before:
[0050] (6F) if (getState08(activeObject)) {
[0053] (69) setOwnerOf(132,VAR_EGO)
[0056] (18) } else {
[0059] (90) pickupObject(132)
[005B] (**) }
[005B] (75) printEgo("Oh, einige ungestempelte Marken!")

"if (getState08(activeObject)) {" checks if the parcel (the active object = object with ID 24) has been picked-up before (and is in the inventory of the actor) or if it still lies in the grass. So the stamps (object 132) will only be picked-up if the package is not in the inventory.

This check does not work correctly. Even if the parcel is in the inventory, the stamps will be picked-up again. The pick-up operation will check for the object in the current room. If the actor is located outside, the parcel is in the room, the stamps will show up twice. In the inside, the parcel is not in the room, the pick-up operation is aborted. In both cases a call to setOwnerOf() would have been the correct operation.

The pick-up operation is always called because getState08(activeObject) fails. For some reason, activeObject is 0 (no object active) instead of 24 and object 0 is not in the inventory.

To fix this bug, _activeObject must be set to the object of the operation, e.g. with "open parcel" it must be parcel (object 24).

comment:3 Changed 9 years ago by Kirben

Fixed in ScummVM SVN, by the patch provided by segra.

Use the next daily snapshot of ScummVM SVN.

comment:4 Changed 9 years ago by Kirben

Owner: set to Kirben
Resolution: fixed
Status: newclosed

comment:5 Changed 9 years ago by SF/zaurak

Tested using ScummVM 1.3.0svn53822 (Oct 25 2010 23:36:48). Getting the "stamps" (Briefmarken) now works. Then I played the game until Syd got the following items: "parcel" (Paket), "stamps" (Briefmarken) and" tape inside envelope" (Kassette in Umschlag). Then Syd uses the "stamps" onto the "tape inside envelope" (Benutz Briefmarken mit Kassette in Umschlag). Syd reports "Sie kleben!" (It sticks), but the item "tape inside envelope" (Kassette in Umschlag) disapears from the inventory while the item "stamps" (Briefmarken) is still present. Due to this bug, the game is still not completable using the path by getting a music contract.

comment:6 Changed 8 years ago by Kirben

Owner: Kirben deleted
Resolution: fixed
Status: closednew

comment:7 Changed 8 years ago by fingolfin

Summary: MMC64: Bug while getting the stamps from the parcelMANIAC C64: Bug while getting the stamps from the parcel

Changed 5 years ago by SF/segra

Attachment: fixed.png added

comment:8 Changed 5 years ago by SF/segra

Is this bug still occuring? I see 'tape in stamped en' after using the two together (as far as i can tell i did it correctly, i dont know german unfortunately!!)

Changed 5 years ago by SF/zaurak

Attachment: mm.png added

comment:9 Changed 5 years ago by SF/zaurak

Seems to work fine now! After loading a previously saved game and then attaching the stamp onto the envelope works fine now! The bug doesn't seem to occure anymore.

comment:10 Changed 2 years ago by segrax

Owner: set to segrax
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.