Opened 10 years ago
Closed 13 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)
Change History (8)
by , 10 years ago
Attachment: | INDY3 Library.rar added |
---|
by , 10 years ago
Attachment: | INDY3 Nazi Irene glitch.rar added |
---|
comment:1 by , 10 years ago
comment:2 by , 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:
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:
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 , 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 , 4 years ago
Summary: | INDY3: 'What is' command glitch in the Library → SCUMM: 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 , 13 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?
comment:6 by , 13 months ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed by athrxx!
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)