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).
Logged In: YES
user_id=166507
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.
Logged In: YES
user_id=166507
Forgot to mention is that savegame is for English v1 Maniac
Logged In: YES
user_id=34715
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.
Logged In: YES
user_id=12935
So... does Var[114] contain a wrong value? Or should script 161 not be running?
Or what else is going wrong?
Logged In: YES
user_id=12935
Originator: NO
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.
Logged In: YES
user_id=34715
Originator: NO
File Added: maniac64.s05
V1 Maniac saved game
Logged In: YES
user_id=34715
Originator: NO
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.
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.
Fixed in ScummVM GiT, thanks to patch from segrax.
Use the next daily snapshot of ScummVM GiT.