This bug was introduced with a fix in commit
50a54138. The problem
with this fix was that it clears REDRAW_ALL from the redraw mask,
which may lead to no redraw at all for this game frame.
This bugfix makes sure that at least the playfield and doors area
will always be redrawn in this case.
RedrawGadget(game_gadget[i]);
// RedrawGadget() may have set REDRAW_ALL if buttons are defined off-area
- redraw_mask &= ~REDRAW_ALL;
+ if (redraw_mask & REDRAW_ALL)
+ redraw_mask = REDRAW_FIELD | REDRAW_DOORS;
}
static void SetGadgetState(struct GadgetInfo *gi, boolean state)
RedrawGameButtonsOnTape();
// RedrawGadget() may have set REDRAW_ALL if buttons are defined off-area
- redraw_mask &= ~REDRAW_ALL;
+ if (redraw_mask & REDRAW_ALL)
+ redraw_mask = REDRAW_FIELD | REDRAW_DOORS;
}
void RedrawOrRemapTapeButtons(void)