Opened 22 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 , 21 years ago
comment:2 by , 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 , 21 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
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.