Opened 21 years ago

Closed 21 years ago

Last modified 21 years ago

#1139 closed defect (fixed)

FOA - FISTS, script crash in Crete

Reported by: SF/quietust Owned by: eriktorbjorn
Priority: normal Component: Engine: SCUMM
Version: 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 21 years ago.
FISTS mode, in Crete just before opening labyrinth

Download all attachments as: .zip

Change History (4)

by SF/quietust, 21 years ago

Attachment: atlantis.s02 added

FISTS mode, in Crete just before opening labyrinth

comment:1 by eriktorbjorn, 21 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, 21 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, 21 years ago

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