Opened 9 years ago

Closed 8 years ago

Last modified 8 years ago

#5375 closed defect (wontfix)

MMC64: Can't Climb Man Eating Plant After Pepsi & Water

Reported by: SF/jennibee Owned by: sev-
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Maniac Mansion

Description

In Maniac Mansion (C64/English), after you give the plant pepsi, it will burp. Then when you give the plant radioactive pool water it won't grow. If you leave and come back, it will have grown, but if you try to climb it it will say it bit you, even though the Pepsi should have prevented that.

I used Win32 (Windows 7) with 1.3.0svn52787.

Ticket imported from: #3070377. Ticket imported from: bugs/5375.

Attachments (1)

maniac-c64.s01 (6.9 KB) - added by SF/jennibee 9 years ago.
At the Man Eating Plant After Giving It Pepsi & Water

Download all attachments as: .zip

Change History (8)

Changed 9 years ago by SF/jennibee

Attachment: maniac-c64.s01 added

At the Man Eating Plant After Giving It Pepsi & Water

comment:1 Changed 9 years ago by SF/segra

while i havnt investigated the scripts involving these objects with the plant, one work-around is to give the plant the items in the other order

give it the water so it grows, then the pepsi and you can walk up it just fine

comment:2 Changed 9 years ago by SF/zaurak

This is exactly the same behavior inside the original game (tested with the German version using Vice C64 emulator). If you give the Pepsi first and the radioactive water later, the plant will burp only but won't grow. Doing it the other way around, the plant will first grow, then burp and you will be able to climb up.

comment:3 Changed 9 years ago by SF/zaurak

...to add this: Also inside the original game the plant is grown but unclimbable after leaving the room and entering it again, if you gave the Pepsi first and the radioactive water later.

comment:4 Changed 9 years ago by wjp

To anyone familiar with the game: is this a script bug or by design?

comment:5 Changed 9 years ago by SF/tobigun

It is caused by the scripts. If you want to know if it is supposed to be like this or if it is a bug you should better ask the original script writer. Maybe they would say: it's a feature.

There are two objects: 211 and 67 where the plant is, both with the same dimensions and object 211 overlapping object 67.
The "give"-action on the plant calls the "use"-action of the plant pot which is handled by roomobj-27-1-36. With radioactive water from the sponge the plant first grows to medium size, then to big size. With radioactive water from the glass it directly grows to the big size. The developer fluid will kill the plant. In this script-section there is no check if the pepsi has been given to plant previously.

relevant parts of roomobj-27-1-36:
[003A] (64) if (activeObject2 == 99) { // use glass-jar with plant pot
[003E] (48) if (Var[22] == 2) { // jar contains radioactive water
[0043] (1A) Var[22] = 0; // remove jar contents
[0046] (5A) Var[30] += 2; // Var[30]=(0:small/1:medium/2:big/255:killed)
[0049] (**) }
[0054] (42) startScript(74) // reset glass-jar name
[0056] (**) }
[0072] (64) if (activeObject2 == 60) { // use pepsi
[0076] (42) startScript(48)
[0078] (**) }

script-48 (called when pepsi is given to the plant):
[0001] (29) setOwnerOf(60,0) // remove pepsi from inventory
[0004] (62) stopScript(46) // stop plant's biting animation
[0006] (48) if (Var[30] == 2) { // plant is big
[000B] (8F) setState02(211) // remove small plant's "It bit me" script
[000D] (**) }
[000D] (42) startScript(49) // start new burp animation
[000F] (2A) delay(360000) // loop forever
[0013] (18) goto 000F;

Both objects 67 and 211 are initially in state 0, so both are active and handled by the scripts roomobj-27-0-67and roomobj-27-0-211. The "it bit me" is triggered by script roomobj-27-0-211 which is disabled as soon as the pepsi is given to the plant. But _only_ if the plant is big while giving pepsi to the plant.
Afterwards script roomobj-27-0-67 will handle the plant's actions which allows us to go to the telescope through the hatch.

The only working solution is to first pass the water, then the pepsi. The other way round will not work in MM C64 even if it works in later versions.

comment:6 Changed 8 years ago by sev-

Ok, so closing this then. tobigun, thank you for the analysis

comment:7 Changed 8 years ago by sev-

Owner: set to sev-
Resolution: wontfix
Status: newclosed
Note: See TracTickets for help on using tickets.