Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#598 closed defect (fixed)

INDY3: wrong Indy costume in intro

Reported by: SF/sir_kill_a_lot Owned by: SF/khalek
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Indiana Jones 3

Description

I wonder why not already someone else reported this
bug. In the intro when Indy shows Henry the Cross of
Coronado he has the wrong costume. If you skip the
first part of the intro, then you can see the small train
from the lucasarts logo instead of indy (see
screenshot). If you look at the whole intro, then he looks
like the young Indy after falling into the railroad car.

ScummVM 0.2.82 CVS Built on Nov 28 2002,
Indiana Jones 3 VGA German on Win32

Ticket imported from: #645300. Ticket imported from: bugs/598.

Attachments (1)

indytrain.png (22.1 KB ) - added by SF/sir_kill_a_lot 17 years ago.
Indy as train

Download all attachments as: .zip

Change History (10)

by SF/sir_kill_a_lot, 17 years ago

Attachment: indytrain.png added

Indy as train

comment:1 by eriktorbjorn, 17 years ago

I've been trying to figure this one out, and as far as I can
see what happens is that it doesn't change the costume on
actor 1, so whatever was used most recently will be be used
for the scene you describe.

From what I remember - I don't have my notes available -
there is a line in the entry script for the room that will
set the costume for actor 1, but only if script 1 isn't
running, i.e. it won't happen during the intro. A good
thing, too, because that's the "Indy in a suit" costume. My
point is, there isn't any "else" clause, so apparently it
should be setting the costume elsewhere and I don't know where.

There is a "Loading room 0" message during the intro, and
startScene() treats this as a special case where it skips
most things that would happen when loading any other room.
Could it be that room 0 should have an entry script that we
never run? (I'm just guessing wildly here. MonkeyVGA also
produces a "Loading room 0" message, and that one works just
fine.)

comment:2 by SF/khalek, 17 years ago

bug 646235 has been marked a duplicate of this and closed

comment:3 by SF/andrej4000, 17 years ago

erik: Monkey Island uses in fact the feature of the
bootparam inside. It setzts a variable, that it's not a
debugging session andsets the bootparam to a value. Than
it in fact restarts the game and depending on the
bootparam-value starts a room with a bunch of items.

I'll look again inside Indy's script, to tell, if I can help you...

comment:4 by eriktorbjorn, 17 years ago

As a last resort, we could put something like this at the
end of startScene():

if (_gameId == GID_INDY3_256 && _currentRoom == 1 &&
isScriptRunning(1)) {
Actor *a;

a = derefActorSafe(1, "Indy 3 intro hack");
if (a)
a->setActorCostume(10);
}

But I'd really rather not. I mean, there *has* to be some
better way than this, right?

comment:5 by fingolfin, 17 years ago

Summary: INDY3VGA: wrong Indy costume in introINDY3: wrong Indy costume in intro

comment:6 by SF/khalek, 17 years ago

bug #662316 has been marked a duplicate of this and closed

comment:7 by SF/khalek, 17 years ago

Owner: set to SF/khalek
Resolution: fixed
Status: newclosed

comment:8 by SF/khalek, 17 years ago

I ended up adding a hack for this similiar to what erik
mentioned but in o5_loadRoom. closing.

comment:9 by eriktorbjorn, 17 years ago

Patch #729365 ("INDY3: Better (but incomomplete) fix for
intro costume bug") has a better fix for this problem.

Note: See TracTickets for help on using tickets.