Opened 21 years ago

Closed 21 years ago

#824 closed defect (fixed)

SAM: Car Bomb

Reported by: SF/hibernatus Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Version: 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 by eriktorbjorn, 21 years ago

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 by fingolfin, 21 years ago

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 by fingolfin, 21 years ago

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