Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#1308 closed defect (fixed)

FOA - Regression in intro

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

Description

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, 16 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, 16 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, 16 years ago

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