added missing and fixed wrong file headers
[rocksndiamonds.git] / src / game_bd / main_bd.c
index 1c18117bd42c79882f09eef6f76bef346e856d28..1bf30fcafaedd8fc5c4d1f64fe9d47f4d98c0302 100644 (file)
@@ -1,10 +1,10 @@
 // ============================================================================
-// Mirror Magic -- McDuffin's Revenge
+// Rocks'n'Diamonds - McDuffin Strikes Back!
 // ----------------------------------------------------------------------------
-// (c) 1995-2023 by Artsoft Entertainment
-//                  Holger Schemel
-//                  info@artsoft.org
-//                  https://www.artsoft.org/
+// (c) 1995-2024 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // main_bd.c
 // ============================================================================
@@ -21,6 +21,24 @@ struct EngineSnapshotInfo_BD engine_snapshot_bd;
 // level file functions
 // ============================================================================
 
+int map_action_BD_to_RND(int action)
+{
+  GdDirection player_move = action & GD_REPLAY_MOVE_MASK;
+  boolean     player_fire = action & GD_REPLAY_FIRE_MASK;
+
+  int action_move = (player_move == GD_MV_UP           ? JOY_UP                :
+                    player_move == GD_MV_UP_RIGHT      ? JOY_UP   | JOY_RIGHT  :
+                    player_move == GD_MV_RIGHT         ?            JOY_RIGHT  :
+                    player_move == GD_MV_DOWN_RIGHT    ? JOY_DOWN | JOY_RIGHT  :
+                    player_move == GD_MV_DOWN          ? JOY_DOWN              :
+                    player_move == GD_MV_DOWN_LEFT     ? JOY_DOWN | JOY_LEFT   :
+                    player_move == GD_MV_LEFT          ?            JOY_LEFT   :
+                    player_move == GD_MV_UP_LEFT       ? JOY_UP   | JOY_LEFT   : JOY_NO_ACTION);
+  int action_fire = (player_fire ? JOY_BUTTON_1 : JOY_NO_ACTION);
+
+  return (action_move | action_fire);
+}
+
 void setLevelInfoToDefaults_BD_Ext(int width, int height)
 {
   // ...