Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#1139 closed defect (fixed)

FOA - FISTS, script crash in Crete

Reported by: SF/quietust Owned by: eriktorbjorn
Priority: normal Component: Engine: SCUMM
Keywords: script Cc:
Game: Indiana Jones 4

Description

ScummVM 0.5.3cvs (Aug 11 2003 02:06:52)

When playing through the game in FISTS mode, after
opening the secret passage (using the Sunstone and
Moonstone), I ran away from the Nazi guard that came
out - after Indy walked to the left and stopped talking, I
got the following error:

(33:200:0x12FB8): Invalid actor 0 in o5_getActorWalkBox

To reproduce:
1. Load the attached savegame
2. Push the spindle
3. Choose conversation option 4

Ticket imported from: #786380. Ticket imported from: bugs/1139.

Attachments (1)

atlantis.s02 (77.1 KB ) - added by SF/quietust 16 years ago.
FISTS mode, in Crete just before opening labyrinth

Download all attachments as: .zip

Change History (4)

by SF/quietust, 16 years ago

Attachment: atlantis.s02 added

FISTS mode, in Crete just before opening labyrinth

comment:1 by eriktorbjorn, 16 years ago

Looking at the end of the room-33-202 script I see the
following opcode:

[1085] (2A) startScript(200,[])

I could be wrong about this, but I take that to mean "invoke
room-33-200 without any parameters", i.e. Local[0] would be
undefined, or perhaps 0.

The first thing that happens in room-33-200 is

[0000] (1A) Local[1] = -1;
[0005] (FB) Local[2] = getActorWalkBox(Local[0])
[000A] (80) breakHere()
[000B] (88) unless (Local[2] != Local[1]) goto 0005;

(It then goes on to set different walk speeds for actors 2
and Local[0] depending on which box actor Local[0] is in, so
it presumably has something to do with speeding up distant
actors.)

The intention of running the script, then, is probably that
Local[0] should be the current "ego" actor (i.e. Indy). It
would be trivial to make o5_getActorWalkBox() default to
this when the actor is 0, but is it the right thing to do?

comment:2 by eriktorbjorn, 16 years ago

This should be fixed in latest CVS. Note that with the
attached savegame script-33-200 will loop until you leave
the room, but this appears to be quite harmless. We could
fix that if necessary though.

My change may have affected Zak256, but I can't check since
I don't have that game.

comment:3 by eriktorbjorn, 16 years ago

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