rnd-19981209-1
[rocksndiamonds.git] / src / game.c
index 2cb218582f2d7a39980a7f2b162debf97d6084ce..64a7c1aa326f5e01b2ca0b1eb04a1b5992a622d6 100644 (file)
@@ -101,8 +101,9 @@ int game_emulation = EMU_NONE;
 
 
 
+
 #ifdef DEBUG
-#if 0
+#if 1
 static unsigned int getStateCheckSum(int counter)
 {
   int x, y;
@@ -153,6 +154,7 @@ static unsigned int getStateCheckSum(int counter)
 
 
 
+
 void GetPlayerConfig()
 {
   if (sound_status == SOUND_OFF)
@@ -238,9 +240,11 @@ void InitGame()
 
   network_player_action_received = FALSE;
 
+#ifndef MSDOS
   /* initial null action */
   if (network_playing)
     SendToServer_MovePlayer(MV_NO_MOVING);
+#endif
 
   ZX = ZY = -1;
 
@@ -739,8 +743,8 @@ boolean NewHiScore()
 
   LoadScore(level_nr);
 
-  if (!strcmp(setup.player_name, EMPTY_ALIAS) ||
-      local_player->score < highscore[MAX_SCORE_ENTRIES-1].Score) 
+  if (strcmp(setup.player_name, EMPTY_PLAYER_NAME) == 0 ||
+      local_player->score < highscore[MAX_SCORE_ENTRIES - 1].Score) 
     return -1;
 
   for (k=0; k<MAX_SCORE_ENTRIES; k++) 
@@ -2419,8 +2423,8 @@ void AmoebeUmwandeln2(int ax, int ay, int new_element)
 
 void AmoebeWaechst(int x, int y)
 {
-  static long sound_delay = 0;
-  static int sound_delay_value = 0;
+  static unsigned long sound_delay = 0;
+  static unsigned long sound_delay_value = 0;
 
   if (!MovDelay[x][y])         /* start new growing cycle */
   {
@@ -3109,8 +3113,8 @@ static void PlayerActions(struct PlayerInfo *player, byte player_action)
 
 void GameActions()
 {
-  static long action_delay = 0;
-  long action_delay_value;
+  static unsigned long action_delay = 0;
+  unsigned long action_delay_value;
   int sieb_x = 0, sieb_y = 0;
   int i, x, y, element;
   byte *recorded_player_action;
@@ -3122,8 +3126,40 @@ void GameActions()
   action_delay_value =
     (tape.playing && tape.fast_forward ? FfwdFrameDelay : GameFrameDelay);
 
+  /*
+  if (tape.playing && tape.fast_forward)
+  {
+    char buf[100];
+
+    sprintf(buf, "FFWD: %ld ms", action_delay_value);
+    print_debug(buf);
+  }
+  */
+
+
   /* main game synchronization point */
+
+
+
+
+#if 1
   WaitUntilDelayReached(&action_delay, action_delay_value);
+#else
+
+  while (!DelayReached(&action_delay, action_delay_value))
+  {
+    char buf[100];
+
+    sprintf(buf, "%ld %ld %ld",
+           Counter(), action_delay, action_delay_value);
+    print_debug(buf);
+  }
+  print_debug("done");
+
+#endif
+
+
+
 
   if (network_playing && !network_player_action_received)
   {
@@ -3133,8 +3169,10 @@ void GameActions()
 #endif
     */
 
+#ifndef MSDOS
     /* last chance to get network player actions without main loop delay */
     HandleNetworking();
+#endif
 
     if (game_status != PLAYING)
       return;
@@ -3176,8 +3214,10 @@ void GameActions()
       stored_player[i].effective_action = stored_player[i].action;
   }
 
+#ifndef MSDOS
   if (network_playing)
     SendToServer_MovePlayer(summarized_player_action);
+#endif
 
   if (!options.network && !setup.team_mode)
     local_player->effective_action = summarized_player_action;
@@ -3210,7 +3250,7 @@ void GameActions()
 
 
 #ifdef DEBUG
-  /*
+
   if (TimeFrames == 0 && !local_player->gone)
   {
     extern unsigned int last_RND();
@@ -3220,7 +3260,7 @@ void GameActions()
           last_RND(),
           getStateCheckSum(level.time - TimeLeft));
   }
-  */
+
 #endif
 
 
@@ -3700,7 +3740,7 @@ void ScrollFigure(struct PlayerInfo *player, int mode)
 
 void ScrollScreen(struct PlayerInfo *player, int mode)
 {
-  static long screen_frame_counter = 0;
+  static unsigned long screen_frame_counter = 0;
 
   if (mode == SCROLL_INIT)
   {