Opened 16 years ago

Closed 16 years ago

#1670 closed defect (worksforme)

FOA: Endgame corrupted

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

Description

ScummVM 0.6.0, English, Talkie, Win32

I'm on the TEAM path, at the Colossus. As soon as Kerner walks down to the platform to talk to Indy, the scene suddenly transitions to an outer-ring hallway confrontation with an invisible Nazi guard. The dialogue then becomes an unintelligible mix of hallway-confrontation lines and the correct endgame lines.

Ticket imported from: #982270. Ticket imported from: bugs/1670.

Attachments (1)

atlantis.s01 (18.8 KB ) - added by SF/beatfox 16 years ago.
corrupt endgame save

Download all attachments as: .zip

Change History (11)

by SF/beatfox, 16 years ago

Attachment: atlantis.s01 added

corrupt endgame save

comment:1 by SF/beatfox, 16 years ago

Summary: Endgame corruptedFOA: Endgame corrupted

comment:2 by SF/beatfox, 16 years ago

Addendum: If I load this savegame and return to the outer ring to actually confront a guard, then go back to the inner ring and do the endgame, this bug does not appear. I wish I knew what caused it in the first place, though.

comment:3 by eriktorbjorn, 16 years ago

I can't repeat the exact problem with the CVS version, but something's definitely strange: Kerner isn't visible. Or at the very least, he's not in the right position.

I haven't tried to figure out why yet, though.

comment:4 by eriktorbjorn, 16 years ago

Hmm... I can't reproduce the exact bug with 0.6.0 either. It behaves like the CVS version for me, i.e. the ending works as it should, apart from Kerner being invisible.

comment:5 by SF/beatfox, 16 years ago

Interesting. I actually did get this invisible Kerner bug the very first time I reached that point, as well as one other time when I loaded the save. But all the other times I loaded the save, it's given me the aforementioned hallway-encounter bug. Why might this be behaving differently on seemingly identical runs?

comment:6 by eriktorbjorn, 16 years ago

I did manage to reproduce it after all, but not every time.

The fight scene is triggered by game script 117. I don't quite understand everything this script does, but as far as I can tell it checks how close actor 4 is to actor 1 or 2. If they're close enough, the fight starts.

Note that a particular actor number doesn't always correspond to the same thing. Actor 1 is probably Indy himself, and is likely to remain so throughout the game. 2 might be Sophia, though why would it check if she's close to a guard. 4 is probably the various guards running around the outer rings as long as you're there, but in this particular scene it's probably Kerner.

In other words, the fight scene triggers when Kerner gets close to Indy. The times he was "invisible", he actually just walked off the screen, but didn't walk back on it again. I have no idea why.

The real mystery here is why script 117 is running at all at this stage. It certainly doesn't in my old savegames around that point, and simply leaving rooms 85 through 88 (the four quarters of the outer ring) should stop the script. Whatever caused it to run again probably happened after that, but why? A ScummVM bug? Some hard-to-trigger bug in the original game? Could be anything, I guess, and it's not possible to say from the savegame alone.

Maybe Kerner staying off screen sometimes is caused by some other rogue script?

Once you've confronted the invisible guard, script 117 is no longer running. Which explains why the ending worked the second time.

comment:7 by fingolfin, 16 years ago

So, you can only reproduce this problem using the attached savegame, but not any other way?

comment:8 by eriktorbjorn, 16 years ago

(Belated answer, as I'm still on vacation.)

I'm not sure about the current version, but I know I've never seen it happen in the past.

comment:9 by fingolfin, 16 years ago

Owner: set to fingolfin
Resolution: worksforme
Status: newclosed

comment:10 by fingolfin, 16 years ago

Closing this; it's really a heisenbug, and we are not getting anywhere with this, plus nobody else seems to have the problem...

Note: See TracTickets for help on using tickets.