fixed compiler warnings (after adding "-Wmissing-prototypes")
[rocksndiamonds.git] / src / game_sp / main.c
index 51d799e7945ae249e6c8334b3ff7143284d6d8b8..9e5ff836f7947e25aa77530c45abc43cbdd6af51 100644 (file)
@@ -12,7 +12,7 @@ int GfxGraphic[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
 int GfxFrame[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
 
 
-void InitGameEngine_SP()
+void InitGameEngine_SP(void)
 {
   int x, y;
 
@@ -54,15 +54,17 @@ void InitGameEngine_SP()
 
 void RedrawPlayfield_SP(boolean force_redraw)
 {
+  // skip redrawing playfield in warp mode or when testing tapes with "autotest"
+  if (DrawingDeactivatedField())
+    return;
+
   if (force_redraw)
     RestorePlayfield();
 
   UpdatePlayfield(force_redraw);
-
-  BlitScreenToBitmap_SP(backbuffer);
 }
 
-void UpdateGameDoorValues_SP()
+static void UpdateGameDoorValues_SP(void)
 {
   game_sp.time_played = TimerVar / FRAMES_PER_SECOND;
   game_sp.infotrons_still_needed = InfotronsNeeded;
@@ -75,7 +77,8 @@ void GameActions_SP(byte action[MAX_PLAYERS], boolean warp_mode)
   byte single_player_action = action[0];
   int x, y;
 
-  UpdateEngineValues(mScrollX / TILEX, mScrollY / TILEY);
+  UpdateEngineValues(mScrollX / TILEX, mScrollY / TILEY,
+                    MurphyScreenXPos / TILEX, MurphyScreenYPos / TILEY);
 
   subMainGameLoop_Main(single_player_action, warp_mode);
 
@@ -91,7 +94,10 @@ void GameActions_SP(byte action[MAX_PLAYERS], boolean warp_mode)
       GfxFrame[x][y]++;
 }
 
-int getRedDiskReleaseFlag_SP()
+int getRedDiskReleaseFlag_SP(void)
 {
+  /* 0: when Murphy is moving (including the destination tile!) */
+  /* 1: when Murphy is not moving for at least one game frame */
+
   return RedDiskReleaseFlag;
 }