moved function to different source file
authorHolger Schemel <info@artsoft.org>
Wed, 9 Dec 2020 22:37:16 +0000 (23:37 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 12 Dec 2020 11:03:53 +0000 (12:03 +0100)
src/engines.h
src/game_mm/export.h
src/game_mm/mm_tools.c
src/game_mm/mm_tools.h
src/tools.c

index 826ad9644aff491e6194f09387742183fe59f0be..34838d5a215b00dcd83fdb8c2a1b40c16bfa31f6 100644 (file)
@@ -61,6 +61,7 @@ int el2img_mm(int);
 
 void CheckSingleStepMode_MM(boolean, boolean);
 
+int getGraphicAnimationFrame(int, int);
 void getGraphicSource(int, int, Bitmap **, int *, int *);
 void getMiniGraphicSource(int, Bitmap **, int *, int *);
 void getSizedGraphicSource(int, int, int, Bitmap **, int *, int *);
index 6625c8484ffc519da8a32079abd1f13b8d34dbe5..4a63b249eacd7d71580a27394f4db1c8b2b3d304 100644 (file)
@@ -222,6 +222,7 @@ void InitGameActions_MM(void);
 void GameActions_MM(struct MouseActionInfo, boolean);
 
 void DrawLaser_MM(void);
+void DrawTileCursor_MM(int, boolean);
 
 boolean ClickElement(int, int, int);
 
index c104791c1789952a0e6c9c0273aa3351f5ddca31..ae20aa24d428bb78969df40ba17aa907a95f0262 100644 (file)
@@ -626,6 +626,62 @@ void DrawMiniLevel_MM(int size_x, int size_y, int scroll_x, int scroll_y)
   redraw_mask |= REDRAW_FIELD;
 }
 
+void DrawTileCursor_MM(int draw_target, boolean tile_cursor_active)
+{
+  Bitmap *fade_bitmap;
+  Bitmap *src_bitmap;
+  int src_x, src_y;
+  int dst_x, dst_y;
+  int graphic = IMG_GLOBAL_TILE_CURSOR;
+  int frame = 0;
+  int tilesize = TILESIZE_VAR;
+  int width = tilesize;
+  int height = tilesize;
+
+  if (!tile_cursor.enabled ||
+      !tile_cursor.active ||
+      !tile_cursor_active)
+    return;
+
+  if (tile_cursor.moving)
+  {
+    int step = TILESIZE_VAR / 4;
+    int dx = tile_cursor.target_x - tile_cursor.x;
+    int dy = tile_cursor.target_y - tile_cursor.y;
+
+    if (ABS(dx) < step)
+      tile_cursor.x = tile_cursor.target_x;
+    else
+      tile_cursor.x += SIGN(dx) * step;
+
+    if (ABS(dy) < step)
+      tile_cursor.y = tile_cursor.target_y;
+    else
+      tile_cursor.y += SIGN(dy) * step;
+
+    if (tile_cursor.x == tile_cursor.target_x &&
+       tile_cursor.y == tile_cursor.target_y)
+      tile_cursor.moving = FALSE;
+  }
+
+  dst_x = tile_cursor.x;
+  dst_y = tile_cursor.y;
+
+  frame = getGraphicAnimationFrame(graphic, -1);
+
+  getSizedGraphicSource(graphic, frame, tilesize, &src_bitmap, &src_x, &src_y);
+
+  fade_bitmap =
+    (draw_target == DRAW_TO_FADE_SOURCE ? gfx.fade_bitmap_source :
+     draw_target == DRAW_TO_FADE_TARGET ? gfx.fade_bitmap_target : NULL);
+
+  if (draw_target == DRAW_TO_SCREEN)
+    BlitToScreenMasked(src_bitmap, src_x, src_y, width, height, dst_x, dst_y);
+  else
+    BlitBitmapMasked(src_bitmap, fade_bitmap, src_x, src_y, width, height,
+                    dst_x, dst_y);
+}
+
 #if 0
 static int REQ_in_range(int x, int y)
 {
index e4c97416246c3a6ec677006a21835906c8efca87..97b48f4341ba42d438aa7fb89acf277904c438a8 100644 (file)
@@ -94,6 +94,7 @@ void DrawWalls_MM(int, int, int);
 void DrawWallsAnimation_MM(int, int, int, int, int);
 void DrawMiniLevel_MM(int, int, int, int);
 void DrawMicroLevel_MM(int, int, boolean);
+void DrawTileCursor_MM(int, boolean);
 
 boolean Request(char *, unsigned int);
 unsigned int OpenDoor(unsigned int);
index 29254bb792c0ea0e776388ebcd36737fc4a54c05..27469503dd8eb31ace36c48776bfd56b7934429f 100644 (file)
@@ -616,60 +616,7 @@ void DrawMaskedBorderToTarget(int draw_target)
 
 void DrawTileCursor(int draw_target)
 {
-  Bitmap *fade_bitmap;
-  Bitmap *src_bitmap;
-  int src_x, src_y;
-  int dst_x, dst_y;
-  int graphic = IMG_GLOBAL_TILE_CURSOR;
-  int frame = 0;
-  int tilesize = TILESIZE_VAR;
-  int width = tilesize;
-  int height = tilesize;
-
-  if (game_status != GAME_MODE_PLAYING)
-    return;
-
-  if (!tile_cursor.enabled ||
-      !tile_cursor.active)
-    return;
-
-  if (tile_cursor.moving)
-  {
-    int step = TILESIZE_VAR / 4;
-    int dx = tile_cursor.target_x - tile_cursor.x;
-    int dy = tile_cursor.target_y - tile_cursor.y;
-
-    if (ABS(dx) < step)
-      tile_cursor.x = tile_cursor.target_x;
-    else
-      tile_cursor.x += SIGN(dx) * step;
-
-    if (ABS(dy) < step)
-      tile_cursor.y = tile_cursor.target_y;
-    else
-      tile_cursor.y += SIGN(dy) * step;
-
-    if (tile_cursor.x == tile_cursor.target_x &&
-       tile_cursor.y == tile_cursor.target_y)
-      tile_cursor.moving = FALSE;
-  }
-
-  dst_x = tile_cursor.x;
-  dst_y = tile_cursor.y;
-
-  frame = getGraphicAnimationFrame(graphic, -1);
-
-  getSizedGraphicSource(graphic, frame, tilesize, &src_bitmap, &src_x, &src_y);
-
-  fade_bitmap =
-    (draw_target == DRAW_TO_FADE_SOURCE ? gfx.fade_bitmap_source :
-     draw_target == DRAW_TO_FADE_TARGET ? gfx.fade_bitmap_target : NULL);
-
-  if (draw_target == DRAW_TO_SCREEN)
-    BlitToScreenMasked(src_bitmap, src_x, src_y, width, height, dst_x, dst_y);
-  else
-    BlitBitmapMasked(src_bitmap, fade_bitmap, src_x, src_y, width, height,
-                    dst_x, dst_y);
+  DrawTileCursor_MM(draw_target, game_status == GAME_MODE_PLAYING);
 }
 
 void BlitScreenToBitmapExt_RND(Bitmap *target_bitmap, int fx, int fy)