Opened 14 years ago

Closed 14 years ago

Last modified 21 months ago

#2700 closed defect (fixed)

FOA: Glitch during balloon flight

Reported by: eriktorbjorn Owned by: eriktorbjorn
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Indiana Jones 4

Description

Current 0.9.0 SVN

I'm not quite sure exactly how to reproduce this, but when using the balloon to chase the German submarine, I flew to what appears to be the far southwest corner of the map. Sometimes, yellow pixels would appear along the right edge of the screen, even though the balloon was near the left side. It could be a clipping problem, but it didn't appear to be *that* close to the left side.

I'm attaching a savegame at the point where you assemble the balloon.

Ticket imported from: #1508942. Ticket imported from: bugs/2700.

Attachments (2)

atlantisa.s19 (31.7 KB ) - added by eriktorbjorn 14 years ago.
Savegame before building the balloon
balloon.png (13.9 KB ) - added by eriktorbjorn 14 years ago.
Screenshot of the glitch

Download all attachments as: .zip

Change History (10)

by eriktorbjorn, 14 years ago

Attachment: atlantisa.s19 added

Savegame before building the balloon

by eriktorbjorn, 14 years ago

Attachment: balloon.png added

Screenshot of the glitch

comment:1 by eriktorbjorn, 14 years ago

Looks like what happens in proc3() is that v1.x is -1 the *first* iteration of the loop. Normally, the function terminates when v1.x is moved outside the screen, but now it starts there.

If we change the masking to also check the X coordinate, the glitch goes away. But what happens if v1.x moves from outside the screen to still outside the screen? Can that happen?

comment:2 by fingolfin, 14 years ago

I don't think that can happen, since the actor width in pre-AKOS games is severly limited (128 pixels I think).

comment:3 by eriktorbjorn, 14 years ago

I don't remember exactly what I was thinking when I wrote the last comment, but I think I meant it as two separate things:

1. The masking change, which at least works around the bug. Seems safe enough to me.

2. By moving from outside the screen to still outside the screen, I meant a situation where it thinks X starts at, say, -2 and goes to -1. Then it wouldn't draw anything at all, would it, no matter how wide the image is?

So the masking change would fix the observed problem, but would leave the purely hypothetical problem still there.

comment:4 by fingolfin, 14 years ago

Owner: set to eriktorbjorn

comment:5 by fingolfin, 14 years ago

Then apply the masking change and let's worry about the other problem when we encounter it...

I had a brief look at the costume code just now, but it's been quite a long time since I last digged through it -- and frankly, I am not too much interested in refreshing that memory, so I won't try to think this through in detail :-)

comment:6 by eriktorbjorn, 14 years ago

Ok, I've done that.

comment:7 by eriktorbjorn, 14 years ago

Resolution: fixed
Status: newclosed

comment:8 by digitall, 21 months ago

Component: Engine: SCUMM
Game: Indiana Jones 4
Note: See TracTickets for help on using tickets.