moved code to draw envelope request over global animations
authorHolger Schemel <info@artsoft.org>
Mon, 2 Oct 2023 09:54:12 +0000 (11:54 +0200)
committerHolger Schemel <info@artsoft.org>
Mon, 2 Oct 2023 09:56:30 +0000 (11:56 +0200)
src/anim.c
src/init.c
src/libgame/sdl.c
src/libgame/system.c
src/libgame/system.h
src/tools.c
src/tools.h

index 4d67b458378eb27206df6d91bd7a12344a32edff..5e3a896ecc9ff2d1b9f909f388d7842338e8aefa 100644 (file)
@@ -974,8 +974,6 @@ void DrawGlobalAnimations(int drawing_target, int drawing_stage)
     ResetGlobalAnim_Clicked();
   }
 
-  DrawEnvelopeRequestToScreen(drawing_target, drawing_stage);
-
   if (gfx.cursor_mode_override != last_cursor_mode_override)
     SetMouseCursor(gfx.cursor_mode);
 }
index 3362ac97f2bb8dd7ec0e23817ef0e637a9462e2b..e96344eb51caf8da240895cc395e18bc1b096e16 100644 (file)
@@ -5917,6 +5917,7 @@ static void InitGfx(void)
   InitGfxDrawGlobalAnimFunction(DrawGlobalAnimations);
   InitGfxDrawGlobalBorderFunction(DrawMaskedBorderToTarget);
   InitGfxDrawTileCursorFunction(DrawTileCursor);
+  InitGfxDrawEnvelopeRequestFunction(DrawEnvelopeRequestToScreen);
 
   gfx.fade_border_source_status = global.border_status;
   gfx.fade_border_target_status = global.border_status;
index 71d9fbbe7274d71555b4c7ef90552b78a8e78124..9ecc97fc29fd55a2c2deaf7cb45f2754b914aae8 100644 (file)
@@ -62,6 +62,10 @@ static void FinalizeScreen(int draw_target)
   if (gfx.draw_global_anim_function != NULL)
     gfx.draw_global_anim_function(draw_target, DRAW_GLOBAL_ANIM_STAGE_2);
 
+  // copy envelope request to render target buffer, if needed (above all)
+  if (gfx.draw_envelope_request_function != NULL)
+    gfx.draw_envelope_request_function(draw_target);
+
   // copy tile selection cursor to render target buffer, if defined (above all)
   if (gfx.draw_tile_cursor_function != NULL)
     gfx.draw_tile_cursor_function(draw_target);
index 5a63172f72421e6c0fe58095bce1864945d636cb..a3eae88217bc14c3ee295acea1f721530c7ecec2 100644 (file)
@@ -292,6 +292,11 @@ void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int))
   gfx.draw_tile_cursor_function = draw_tile_cursor_function;
 }
 
+void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int))
+{
+  gfx.draw_envelope_request_function = draw_envelope_request_function;
+}
+
 void InitGfxCustomArtworkInfo(void)
 {
   gfx.override_level_graphics = FALSE;
index 44745de9c32c7143fc5300fda3701f25db550024..39fd1dfc46670d109fe2c8f87b7b6e5aead853d9 100644 (file)
@@ -1244,6 +1244,7 @@ struct GfxInfo
   void (*draw_global_anim_function)(int, int);
   void (*draw_global_border_function)(int);
   void (*draw_tile_cursor_function)(int);
+  void (*draw_envelope_request_function)(int);
 
   int cursor_mode;
   int cursor_mode_override;
@@ -1978,6 +1979,7 @@ void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(boolean));
 void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int));
 void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int));
 void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int));
+void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int));
 void InitGfxCustomArtworkInfo(void);
 void InitGfxOtherSettings(void);
 void InitTileCursorInfo(void);
index c1605b4397cac8c50d59d692dbe3f23eaf0e2ad2..e66df891e48db48c8d20558b7146523bf23f281a 100644 (file)
@@ -3042,13 +3042,12 @@ static void PrepareEnvelopeRequestToScreen(Bitmap *bitmap, int sx, int sy,
   request.ysize = ysize;
 }
 
-void DrawEnvelopeRequestToScreen(int drawing_target, int drawing_stage)
+void DrawEnvelopeRequestToScreen(int drawing_target)
 {
   if (global.use_envelope_request &&
       game.request_active_or_moving &&
       request.sort_priority > 0 &&
-      drawing_target == DRAW_TO_SCREEN &&
-      drawing_stage == DRAW_GLOBAL_ANIM_STAGE_2)
+      drawing_target == DRAW_TO_SCREEN)
   {
     BlitToScreen(request.bitmap, 0, 0, request.xsize, request.ysize,
                 request.sx, request.sy);
index e80efbf2057908d46b705d0da47d3fbb84fcfad8..562d0937d3971ea4d0a6ffbf2015c7fff0aaa220 100644 (file)
@@ -203,7 +203,7 @@ void DrawMiniElementOrWall(int, int, int, int);
 
 void ShowEnvelope(int);
 void ShowEnvelopeDoor(char *, int);
-void DrawEnvelopeRequestToScreen(int, int);
+void DrawEnvelopeRequestToScreen(int);
 
 void DrawLevel(int);
 void DrawSizedLevel(int, int, int, int, int);