void GameActions_MM(struct MouseActionInfo);
void DrawLaser_MM(void);
-void DrawTileCursor_MM(int, boolean);
+void DrawTileCursor_MM(int, int, boolean);
boolean ClickElement(int, int, int);
}
}
-void DrawTileCursor_MM(int draw_target, boolean tile_cursor_active)
+void DrawTileCursor_MM(int draw_target, int drawing_stage,
+ boolean tile_cursor_active)
{
if (program.headless)
return;
int width = tilesize;
int height = tilesize;
- DrawTileCursor_Xsn(draw_target);
+ if (!drawing_stage)
+ {
+ DrawTileCursor_Xsn(draw_target);
+
+ return;
+ }
if (!tile_cursor.enabled ||
!tile_cursor.active ||
void DrawWalls_MM(int, int, int);
void DrawWallsAnimation_MM(int, int, int, int, int);
void DrawMicroLevel_MM(int, int, boolean);
-void DrawTileCursor_MM(int, boolean);
+void DrawTileCursor_MM(int, int, boolean);
boolean Request(char *, unsigned int);
unsigned int OpenDoor(unsigned int);
if (gfx.draw_global_anim_function != NULL)
gfx.draw_global_anim_function(draw_target, DRAW_GLOBAL_ANIM_STAGE_2);
- // copy tile selection cursor to render target buffer, if defined (above all)
+ // copy tile selection cursor to render target buffer, if defined (part 1)
if (gfx.draw_tile_cursor_function != NULL)
- gfx.draw_tile_cursor_function(draw_target);
+ gfx.draw_tile_cursor_function(draw_target, TRUE);
// copy envelope request to render target buffer, if needed (above all)
if (gfx.draw_envelope_request_function != NULL)
// copy global animations to render target buffer, if defined (mouse pointer)
if (gfx.draw_global_anim_function != NULL)
gfx.draw_global_anim_function(draw_target, DRAW_GLOBAL_ANIM_STAGE_3);
+
+ // copy tile selection cursor to render target buffer, if defined (part 2)
+ if (gfx.draw_tile_cursor_function != NULL)
+ gfx.draw_tile_cursor_function(draw_target, FALSE);
}
static void UpdateScreenExt(SDL_Rect *rect, boolean with_frame_delay)
gfx.draw_global_border_function = draw_global_border_function;
}
-void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int))
+void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int, int))
{
gfx.draw_tile_cursor_function = draw_tile_cursor_function;
}
void (*draw_busy_anim_function)(boolean);
void (*draw_global_anim_function)(int, int);
void (*draw_global_border_function)(int);
- void (*draw_tile_cursor_function)(int);
+ void (*draw_tile_cursor_function)(int, int);
void (*draw_envelope_request_function)(int);
int cursor_mode;
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 InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int, int));
void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int));
void InitGfxCustomArtworkInfo(void);
void InitGfxOtherSettings(void);
}
}
-void DrawTileCursor(int draw_target)
+void DrawTileCursor(int draw_target, int drawing_stage)
{
- DrawTileCursor_MM(draw_target, game_status == GAME_MODE_PLAYING);
+ int tile_cursor_active = (game_status == GAME_MODE_PLAYING);
+
+ DrawTileCursor_MM(draw_target, drawing_stage, tile_cursor_active);
}
void BlitScreenToBitmapExt_RND(Bitmap *target_bitmap, int fx, int fy)
void DrawMaskedBorder_ALL(void);
void DrawMaskedBorder(int);
void DrawMaskedBorderToTarget(int);
-void DrawTileCursor(int);
+void DrawTileCursor(int, int);
void SetDrawtoField(int);
int GetDrawtoField(void);