Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#5767 closed defect (fixed)

ITE (SAGA): crash in dog sewers

Reported by: SF/lordpings Owned by: digitall
Priority: normal Component: Engine: SAGA
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 8 years ago.
sewer savegame

Download all attachments as: .zip

Change History (10)

Changed 8 years ago by SF/lordpings

Attachment: ite.s09 added

sewer savegame

comment:1 Changed 8 years ago by wjp

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 Changed 8 years ago by fuzzie

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 Changed 8 years ago by digitall

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 Changed 8 years ago by fuzzie

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 Changed 8 years ago by digitall

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 Changed 8 years ago by digitall

Resolution: fixed

comment:7 Changed 8 years ago by SF/lordpings

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 Changed 8 years ago by digitall

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

comment:9 Changed 8 years ago by digitall

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