#3657 closed defect (fixed)
PASS: Game crash when finishing Indy3 demo
Reported by: | SF/simsaw | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Indiana Jones 3 |
Description
In Passport to Adventure the game suddenly crashs after you selected travelling to Venice when you collected everything you need to finish the Indy3 demo.
I added a savegame where you only need to click on Travel/To the Plane to Venice.
I tested with the Daily Build for Windows of March 18 2008.
Ticket imported from: #1917981. Ticket imported from: bugs/3657.
Attachments (1)
Change History (6)
by , 17 years ago
comment:1 by , 17 years ago
The exact error is: Assertion failed: WIO_INVENTORY == whereIsObject(obj), file engines/scumm/object.cpp, line 179
And that assert was added to engines/scumm/object.cpp by fingolfin, in revision 28886.
comment:2 by , 17 years ago
Owner: | set to |
---|
comment:3 by , 16 years ago
The problem is caused by script 94, which is meant to empty the inventory, but does it in a bad way: Local[2] = getInventoryCount(VAR_EGO) Local[1] = 1; Local[0] = findInventory(VAR_EGO,Local[1]) setOwnerOf(Local[0],0) Local[1]++; unless (Local[1] > Local[2]) goto 000A; stopObjectCode()
In this particular case, the inventory contains four objects; and the script remove obj 1, 2, 3 ... at which point the crash happens, because after remove two objs, only two remain in the inventory, so it's not possible to remove item 3.
I added a workaround.
comment:4 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:5 by , 6 years ago
Component: | → Engine: SCUMM |
---|---|
Game: | → Indiana Jones 3 |
Savegame for travelling to Venice