#2034 closed defect (fixed)
MANIAC V2: Early collision with Green Tentacle
Reported by: | SF/quietust | Owned by: | Kirben |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | script | |
Cc: | Game: | Maniac Mansion |
Description
Running ScummVM 0.8.0CVS (May 20 2005 13:16:51)
Whenever a kid walks up the stairs from the 2nd floor to the 3rd floor while Green Tentacle is still waiting for food+drink, (s)he will say "Oomph!" and the 'tentacle' sound will be played (unless the kid runs away in fear). Happens with PC V1/V2 and Amiga versions (but not the NES version) and does not occur in the original Amiga interpreter (currently not able to test others).
Ticket imported from: #1205445. Ticket imported from: bugs/2034.
Attachments (2)
Change History (13)
comment:1 by , 20 years ago
by , 20 years ago
Attachment: | maniac.s10 added |
---|
comment:3 by , 19 years ago
The problem occurs in script 161: [0000] (A3) Var[72] = getActorY(Var[114]) [0003] (43) Var[109] = getActorX(14) [0006] (5A) Var[109] += 2; [000A] (C3) Var[1] = getActorX(Var[114]) [000D] (84) if (Var[1] <= Var[109]) { [0012] (1A) Var[71] = 35; [0016] (5A) Var[71] += 3; [001A] (9B) setBitVar(2952,Var[114],1) [001F] (19) doSentence(STOP) [0021] (FE) walkActorTo(Var[114],Var[71],Var[72]) [0025] (1C) startSound(36) [0027] (48) if (VAR_HAVE_MSG == 0) { [002D] (D8) printEgo("Oomph!") [0035] (**) } [0035] (BB) waitForActor(Var[114]) [0037] (91) animateActor(Var[114],244) [003A] (9B) setBitVar(2952,Var[114],0) [003F] (**) } [003F] (3E) walkActorTo(14,32,Var[72]) [0043] (80) breakHere() [0044] (80) breakHere() [0045] (18) goto 0000; [0048] (A0) stopObjectCode() END
Var[114] is set to VAR_EGO at this point, the script compares the X position of kid and Green Tentacle. For some reason the kid is been reported as already been past Green Tentacle, causing the "Oomph!" message to be triggered.
The kid is been reported at 7, while Green Tentacle is been reported at 17, when I climb the stairs.
comment:4 by , 18 years ago
So... does Var[114] contain a wrong value? Or should script 161 not be running? Or what else is going wrong?
comment:5 by , 18 years ago
I am a bit confused -- what does the attached savegame have to do with the bug reported here?
The walk behavior in the bathroom is still buggy, though, even after my walk code changes. The actors won't walk "onto" the bath tube anymore, but they will "walk on the spot". So it might be a good idea to (re)open a (new?) issue for that one, with the savegame attached here.
comment:7 by , 17 years ago
To clarify my earlier message: Script 161, is started by script 51, which is started by the entry script for room 12.
Script 161 should be running, and controls Green Tenacle at this point of game.
The problem is the player actor's x position is reported incorrectly, when script 161 is first started, causing the 'Oomph!' to be said.
The initial player actor's x position doesn't seem to be set correctly, when first set via the showActors() in startScene(). And doesn't get corrected until the later part of loadRoomWithEgo opcode.
comment:8 by , 15 years ago
This bug has already been fixed by segra for the V0 engine with patch #2970176 (V0: MM Verb + Anim Fix).
Quote: *Fixes the Oompf script problem where green tentacle could be easily bypass ed, and how the script executes the moment you enter the room (this is beca use the original interpreter sets the actors X/Y to the previous X/Y before it starts the rooms scripts, after the script is running the actors proper x/y is set)
Maybe that part of the patch is applicable for the other engines, too.
comment:9 by , 14 years ago
Summary: | MANIAC: Early collision with Green Tentacle → MANIAC V2: Early collision with Green Tentacle |
---|
comment:10 by , 10 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:11 by , 10 years ago
Fixed in ScummVM GiT, thanks to patch from segrax.
Use the next daily snapshot of ScummVM GiT.
Also while testing bug #862245. I found that it is possible to walk over bath in bathroom. Just click on it near corner. Moreover when curtain is open and you click on the mummy, Dave walks over it and actors priority puts him behind the mummy. See attached savegame.