Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#5767 closed defect (fixed)

ITE (SAGA): crash in dog sewers

Reported by: SF/lordpings Owned by: digitall
Priority: normal Component: Engine: SAGA
Version: Keywords:
Cc: Game: Inherit the Earth

Description

Description; Game ITE (SAGA engine) crashes at the dog's sewer labyrinth, from comparison with older scummvm versions that do not crash, it seems to be at the point when the croco changes direction (loading another animation?)

Tested ScummVM versions: 1.3.0 stable win32/android - crashes daily build (mingw-w32-master-25513893) - crashes 1.2.1 stable win32 - works

Reproduction: load savegame, wait a few seconds for the croco to appear

Other Information: Message in console window: Assertion failed: idx >= 0 && (uint)idx <_size, file ../scummvm-1.3.0/common/array.h, line 170 (line 166 in daily build)

My game files (english, cd) have the md5 sums listed in the last post of this thread, under "ITE DOS CD": http://forums.scummvm.org/viewtopic.php?t=6119

Ticket imported from: #3324850. Ticket imported from: bugs/5767.

Attachments (1)

ite.s09 (12.2 KB ) - added by SF/lordpings 13 years ago.
sewer savegame

Download all attachments as: .zip

Change History (10)

by SF/lordpings, 13 years ago

Attachment: ite.s09 added

sewer savegame

comment:1 by wjp, 13 years ago

This may be caused by the same underlying issue as bug 3323722, in which case it should be fixed in the next daily build.

comment:2 by fuzzie, 13 years ago

I don't think the issue we found for 3323722 is relevant for ITE, because I think loadActorList is IHNM-specific - another one for poor digitall to peer at?

comment:3 by digitall, 13 years ago

Replicated from savegame, with latest Git master _with_ fix for #3323722 i.e. that does not fix this issue. Ran with gdb and got backtrace from assertion: #3 0xb79db7d8 in __assert_fail () from /lib/libc.so.6 #4 0x08063e59 in Common::Array<unsigned char>::operator[] (this=0x8586258, idx=39) at ./common/array.h:166 #5 0x080a2898 in Saga::Actor::moveDragon (this=0x855b0a0, actor=0x85861d0) at engines/saga/actor_walk.cpp:1168 #6 0x0809fab8 in Saga::Actor::handleActions (this=0x855b0a0, msec=37, setup=false) at engines/saga/actor_walk.cpp:333 #7 0x080a0fd7 in Saga::Actor::direct (this=0x855b0a0, msec=37) at engines/saga/actor_walk.cpp:727 #8 0x0807d474 in Saga::SagaEngine::run (this=0x8404320) at engines/saga/saga.cpp:377

comment:4 by fuzzie, 13 years ago

Ah, that looks (reassuringly) like a simple off-by-one bug, not corruption - the check at actor_walk.cpp:1148 should be checking for equality too.

comment:5 by digitall, 13 years ago

Corrected in 714976729d0badab3e7557f62036aac0b2e9cc4f After a successful playtest of ITE, this can be cherry-picked to branch-1-3-0 and thus included in v1.3.1 release, though this change is fairly restricted and chances of any regressions except in Croco (Dragon) behaviour are minimal.

lordpings: If you could check this with a daily build, that would be useful. Thanks.

comment:6 by digitall, 13 years ago

Resolution: fixed

comment:7 by SF/lordpings, 13 years ago

Tested with the current daily build (1.4.0git1564-g7bdd3f3) on win32 and android. Both do not crash anymore. Tried running around in the maze for some time, touching the dragon, etc. Are there any specific other areas I should test? Otherwise I'd think this could be considered fixed.

Thank you all, lordpings

comment:8 by digitall, 13 years ago

I think this will be sufficient, though will try to playtest prior to v1.3.1 release.

comment:9 by digitall, 13 years ago

Owner: set to digitall
Status: newclosed
Note: See TracTickets for help on using tickets.