Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#739 closed defect (fixed)

FOA: Indy can be seen when hidden

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

Description

Once in the Atlantis maze, when you reach the room where Sophia is held prisoner through the lower tunnel (you can't actually enter the room), sometimes parts of Indy's jacket can be seen through the stone. I haven't tried with the native version, though.

I provide a savegame. Indy is in the lower vent, just talk to Sophia and you should see his jacket.

Ticket imported from: #724685. Ticket imported from: bugs/739.

Attachments (2)

atlantis.s01 (71.3 KB) - added by SF/jellby 16 years ago.
Savegame taken with English talkie version.
screenshot.png (6.4 KB) - added by SF/jellby 16 years ago.
Indy's leather jacket is visible.

Download all attachments as: .zip

Change History (17)

Changed 16 years ago by SF/jellby

Attachment: atlantis.s01 added

Savegame taken with English talkie version.

Changed 16 years ago by SF/jellby

Attachment: screenshot.png added

Indy's leather jacket is visible.

comment:1 Changed 16 years ago by SF/jellby

And here is a screenshot.

comment:2 Changed 16 years ago by SF/andrej4000

well... this never occurred for me in the native (DOS)
interpreter, it has to be a scummvm-bug.

comment:3 Changed 16 years ago by SF/trinity78

tested with scummvm daily build (5 may - 0.4.1 cvs).
indiana jones 4 atlantis german disk version.
windows 2000

can't reproduce that with the current build.
works fine for me.

even using your savegame the bug doesn't occur. scummvm
crashes some seconds after loading your savegame,
propably because i use the german non-talkie version. the
room and actors are completely load though and no drawing
bug occurs.

you should recheck this with current build.

comment:4 Changed 16 years ago by SF/jellby

Hmm... I've tested it again with today's build (6 may) and it's still there, the savegame doesn't work with the Spanish non-talkie version either (and I was too lazy to play the game again just to see this bug), could you provide a savegame for the German version with wich I could try to check it?

comment:5 Changed 16 years ago by SF/trinity78

ok i uploaded an image and a savegame to my web space.
the savegame is taken from the german version of indy 4,
don't if it works with other versions.

Screenshot:

http://domfree.de/trin/uploads/indy.png

Save:

http://domfree.de/trin/uploads/save.zip

comment:6 Changed 16 years ago by SF/trinity78

ok i uploaded an image and a savegame to my web space.
the savegame is taken from the german version of indy 4,
don't know if it works with other versions.

Screenshot:

http://domfree.de/trin/uploads/indy.png

Save:

http://domfree.de/trin/uploads/save.zip

comment:7 Changed 16 years ago by SF/jellby

I still haven't tried the savegame (I'm not at home), but from the situation shown in the screenshot you have to "talk to Sophia", Indy then moves and the jacket appears. Have you tried this?

comment:8 Changed 16 years ago by SF/trinity78

you are right. the bug is still there. bug reproduced.

comment:9 Changed 16 years ago by fingolfin

The problem is that Indy partially leaves the area which is z-masked (the z-
mask is what makes him be "behind" the wall instead of in front of it.

Question remains, why: is he just moving to far to the right (if yes, why?
walkbox issue)?. Or maybe he's incorrectly turned. Or maybe he's in the
wrong frame. Or ... well, whatever.

I am not sure if this ever worked correctly, but it might be worth trying to
track this down by trying to reproduce this in older checkout.

comment:10 Changed 16 years ago by fingolfin

It definitly happend on February 1st; I wonder if the bug is also in 0.3.0 ?

comment:11 Changed 16 years ago by fingolfin

err, that should have been "...before Feburary 1st"

comment:12 Changed 16 years ago by fingolfin

I'd be curious to know if this ever worked correctly, and if so, in which
version of ScummVM.

Anyway, as to why it happens: when opting to talk to Sophia,
o5_walkActorToObject is invoked, which in turn calls getObjectXYPos() on
Sophia. And that computes a "direction" of 270 - making Indy face to the
*left* (not to the right, as would be intuitive). This in turn makes part of
Indy's arm leave the area which is masked, thus causing this glitch.

A possible fix (a hackish one that is) would be to check for the particular
game / room / obj combination, and if encountered, return 90 as direction.
But I'd prefer to find out why this isn't working correctly in the first place...

comment:13 Changed 16 years ago by fingolfin

Thinking about this, the real problem is that 270 is the *final* direction Indy
should be facing if he walks to sophia, and that's correct. Only that in this
case he can't reach her. What we then do is to make him face the "final"
direction anyway. My guess is that if we didn't reach the final destination,
then we shouldn't turn into the final direction either...

comment:14 Changed 16 years ago by fingolfin

This seems to be fixed in CVS... somehow... no idea why and when, but
it's gone :-)

comment:15 Changed 16 years ago by fingolfin

Owner: set to fingolfin
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.