Opened 16 years ago

Closed 16 years ago

#824 closed defect (fixed)

SAM: Car Bomb

Reported by: SF/hibernatus Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Sam and Max

Description

Sam and Max french talkie
ScummVM 0.4.2cvs
Built on May 28 2003
under WinXP

In Car Bomb:
Make a few holes by throwing bombs, then try the
missiles. You'll see the holes blink, and sometimes they
aren't displayed anymore. Those holes should not even
blink.

Also, another little bug there is that when you quit the
game, the cursor remains a bomb. Well, not a big deal :)

Ticket imported from: #744794. Ticket imported from: bugs/824.

Change History (3)

comment:1 Changed 16 years ago by eriktorbjorn

I don't know how to fix this yet.

From what I can see, it's removeObjectFromRoom() that
triggers the redraw, presumably to remove a missile from the
lower right corner. This marks a number of screen strips as
"dirty" and then sets _BgNeedsRedraw to true, thus forcing
ScummVM to redraw all the dirty strips.

But from what I can see, the only time when we mark screen
strips as not dirty is when loading a new room. In fact,
redrawBGStrip() itself marks every strip it draws as dirty,
even though it was called in the process of making the
screen not dirty.

This all seems rather odd to me, but I don't really
understand this part of the code.

comment:2 Changed 16 years ago by fingolfin

OK I looked thru the original implementation of dirty strips. Well,
turns out resetActorBgs() should clear the dirty bit!

I added code to do just that. Could somebody check if it helps?
(latest CVS - it'll take some time, maybe days, for this to propage
to anon CVS and the daily builds)

comment:3 Changed 16 years ago by fingolfin

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