added support for gadget buttons defined outside viewports
authorHolger Schemel <info@artsoft.org>
Fri, 6 Sep 2019 07:00:07 +0000 (09:00 +0200)
committerHolger Schemel <info@artsoft.org>
Fri, 6 Sep 2019 07:00:07 +0000 (09:00 +0200)
Commit 50a54138 (and the bugfix in the previous commit) prevent
drawing gadget buttons that are defined outside of viewports (like
playfield or door area), but are placed in the screen border area.

This was not supported in older versions of the redraw system (where
full-screen redraws where always done from a different back buffer).

Recent (SDL2 based) versions of the redraw system do support this, so
this limitation can be removed now to allow for gadget buttons placed
in the screen border area.

src/game.c
src/tape.c

index e50017a9bed88bd57f2cc5403b066657abd53ddf..79fb4518f4c5f685e4d01f6b8c32d61617c87e7f 100644 (file)
@@ -15757,10 +15757,6 @@ static void RedrawGameButtonsExt(boolean on_tape)
   for (i = 0; i < NUM_GAME_BUTTONS; i++)
     if (!on_tape || gamebutton_info[i].allowed_on_tape)
       RedrawGadget(game_gadget[i]);
-
-  // RedrawGadget() may have set REDRAW_ALL if buttons are defined off-area
-  if (redraw_mask & REDRAW_ALL)
-    redraw_mask = REDRAW_FIELD | REDRAW_DOORS;
 }
 
 static void SetGadgetState(struct GadgetInfo *gi, boolean state)
index 6cf797198dcf20bf456c1b76c75f5b1e64d52619..aeac3d3a29239b629dddd8c16d3dd6561c3cef0a 100644 (file)
@@ -1409,10 +1409,6 @@ void RedrawTapeButtons(void)
 
   if (tape.show_game_buttons)
     RedrawGameButtonsOnTape();
-
-  // RedrawGadget() may have set REDRAW_ALL if buttons are defined off-area
-  if (redraw_mask & REDRAW_ALL)
-    redraw_mask = REDRAW_FIELD | REDRAW_DOORS;
 }
 
 void RedrawOrRemapTapeButtons(void)