Opened 13 years ago

Closed 13 years ago

Last modified 12 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 13 years ago.
Savegame before building the balloon
balloon.png (13.9 KB ) - added by eriktorbjorn 13 years ago.
Screenshot of the glitch

Download all attachments as: .zip

Change History (10)

by eriktorbjorn, 13 years ago

Attachment: atlantisa.s19 added

Savegame before building the balloon

by eriktorbjorn, 13 years ago

Attachment: balloon.png added

Screenshot of the glitch

comment:1 by eriktorbjorn, 13 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, 13 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, 13 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, 13 years ago

Owner: set to eriktorbjorn

comment:5 by fingolfin, 13 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, 13 years ago

Ok, I've done that.

comment:7 by eriktorbjorn, 13 years ago

Resolution: fixed
Status: newclosed

comment:8 by digitall, 12 months ago

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