Opened 10 years ago

Closed 5 months ago

#6680 closed defect (fixed)

SCUMM: INDY3 - 'What is' command glitch on Actor 10 (Venice/Brunwald)

Reported by: SF/diggly Owned by: athrxx
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Indiana Jones 3

Description

mingw-w64-stable-c36867d1 1.7.0pre-24-gc36867d (64-bit) on Windows 7 64-bit

At the library in Venice, if you use the 'What is' command and hover the pointer over the librarian, it says he is Irene. Irene is a different character earlier in the game (Jones' secretary at the college), so that name is incorrect. This glitch happens in both the EGA version and VGA remake of Indiana Jones 3 in ScummVM. When I tried it in DOSBox, the What is command didn't say anything about the librarian.

I've included saves for both versions in ScummVM, and a save of the EGA version I took in DOSBox with the original .exe

Ticket imported from: bugs/6680.

Attachments (2)

INDY3 Library.rar (34.0 KB ) - added by SF/diggly 10 years ago.
INDY3 Nazi Irene glitch.rar (29.8 KB ) - added by SF/diggly 10 years ago.

Download all attachments as: .zip

Change History (8)

by SF/diggly, 10 years ago

Attachment: INDY3 Library.rar added

by SF/diggly, 10 years ago

Attachment: INDY3 Nazi Irene glitch.rar added

comment:1 by SF/diggly, 10 years ago

I found another occurrence of this glitch in the Brunwald Castle. After you knock out the Nazi, if you use the 'What is' command on him, it will say he is Irene too. Again, this happens in both the EGA and VGA versions in ScummVM. This glitch does not happen in the original game. I've included ScummVM saves for both versions, and a regular save for the VGA version (Due to a glitch with DOSBox I wasn't able to also get a regular save for the EGA version)

comment:2 by eriktorbjorn, 10 years ago

I can reproduce this with the VGA version. I don't have the EGA version, and I wasn't able to reproduce it with the Mac version. (I'll have to look into why that one works after I finish writing this.)

This seems to only happen if you have met Irene at the beginning of the game. If you just rush off to Venice as quickly as possible, it doesn't.

What seems to be happening is that internally, both Irene and the librarian are actor number 10, just with different costumes. When you enter Irene's room (room 3), the entry script sets up actor 10 like this:

[0014] (13) ActorOps(10,[Costume(5),TalkColor(2),Sound(6),Name("Irene")]); [0024] (5D) setClass(10,[0,150,149,141]); [0034] (2D) putActorInRoom(10,3); [0037] (01) putActor(10,174,83); [003D] (11) animateCostume(10,250);

When you exit, it simply does:

[0000] (5D) setClass(10,[0]);

When you enter the library (room 16), it sets up actor 10 like this:

[0013] (5D) setClass(10,[150,148]); [001D] (2D) putActorInRoom(10,16); [0020] (01) putActor(10,271,118); [0026] (0C) Resource.loadSound(6); [0029] (13) ActorOps(10,[Costume(74),Sound(6),Width(20)]); [0032] (11) animateCostume(10,250); [0035] (11) animateCostume(10,3);

And when you leave:

[0000] (5D) setClass(10,[0]);

So at the library, it does not explicitly set any name for the actor. According to the comments in o5_setClass(), "Class '0' means: clear all class data". For actors this does clear some additional things, but the actor name isn't part of the actor data type, it's an entirely separate type of resource.

The glitch seems to go away if I add _res->nukeResource(rtActorName, obj) to that part of o5_setClass(), but I don't know if it's the right thing to do.

comment:3 by eriktorbjorn, 10 years ago

In the Mac version, for whatever reason it seems that the "What is" command doesn't even try to display the name of actor 10 in the library.

comment:4 by raziel-, 4 years ago

Summary: INDY3: 'What is' command glitch in the LibrarySCUMM: INDY3 - 'What is' command glitch on Actor 10 (Venice/Brunwald)

ScummVM 2.2.0git (Jul 15 2020 10:24:49)
Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC A/52 FreeType2 FriBiDi JPEG PNG cloud (servers, local)

Confirmed with above version of ScummVM in both Venice library and Brunwald castle.

Indiana Jones and the Last Crusade (CD/English)

AmigaOS4 - PPC - BE - SDL

comment:5 by eriktorbjorn, 6 months ago

Taking a quick look at this again, in DOSBox I can't even get the "What is" command to work on Irene (or the librarian) in the VGA version. In ScummVM it does, and I really can't understand why it wouldn't. It asks for the object under the mouse pointer, and there's nothing to then stop it from using it, as far as I can tell.

Well... as long as ScummEngine::getActorFromPos() finds the actor. So perhaps there's some difference there that ScummVM doesn't implement?

Last edited 6 months ago by eriktorbjorn (previous) (diff)

comment:6 by AndywinXp, 5 months ago

Owner: set to athrxx
Resolution: fixed
Status: newclosed

Fixed by athrxx!

Note: See TracTickets for help on using tickets.