Opened 20 years ago

Closed 20 years ago

Last modified 20 years ago

#1308 closed defect (fixed)

FOA - Regression in intro

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


ScummVM 0.5.5cvs (Nov 14 2003 11:59:52)

When starting a new game in Fate of Atlantis, the following error appears when attempting to touch your 2nd cat statue (4th room):

(7:201:0xC2FD): Value 186 is out of bounds (0,15) (Illegal box 186)

Ticket imported from: #841885. Ticket imported from: bugs/1308.

Change History (3)

comment:1 by eriktorbjorn, 20 years ago

I don't know what's causing this yet, but the last thing that happens before the crash, as far as I can see, is:

Script 201, offset 0xc2ae: [1A] o5_move() Script 201, offset 0xc2b3: [C] o5_resourceRoutines() loadResource(Sound,110) Script 201, offset 0xc2b6: [80] o5_breakHere() Script 201, offset 0xc2b7: [DD] o5_setClass() Script 201, offset 0xc2be: [4C] o5_soundKludge() Script 201, offset 0xc2c3: [4C] o5_soundKludge() Script 201, offset 0xc2c8: [1C] o5_startSound() Script 201, offset 0xc2ca: [4C] o5_soundKludge() playSound #110 (room 7) Script 201, offset 0xc2cf: [14] o5_print() Script 201, offset 0xc2f1: [91] o5_animateActor() Script 201, offset 0xc2f5: [1A] o5_move() Script 201, offset 0xc2fa: [30] o5_matrixOps() setBoxFlags(186, 0x01)

which I believe corresponds to the following script fragment:

[000E] (1A) Var[219] = 1; [0013] (0C) loadSound(110) [0016] (80) breakHere() [0017] (DD) setClass(Var[209],[160]) [001E] (4C) soundKludge([11]) [0023] (4C) soundKludge([-1]) [0028] (1C) startSound(110) [002A] (4C) soundKludge([-1]) [002F] (14) print(255,[Color(4),Pos(83,90),Text("^255^10i^231^255^10 ^5^255^10^14^0^255^10^0^0PFFFFT!")]); [0051] (91) animateCostume(Var[212],6) [0055] (1A) Var[442] = 1; [005A] (30) setBoxFlags(Var[442],6)

So where does the 186 come from? I have no idea...

comment:2 by eriktorbjorn, 20 years ago

...or maybe I do have an idea after all. 186 is 442 - 256, so it is the kind of value you'd get if you read only one byte instead of two, and treat it as a constant rather than a variable number.

Aha! Now I see what's changed. Should be fixed in CVS now.

comment:3 by eriktorbjorn, 20 years ago

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