rnd-19981013-3
authorHolger Schemel <info@artsoft.org>
Tue, 13 Oct 1998 22:39:33 +0000 (00:39 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:31:08 +0000 (10:31 +0200)
src/game.c
src/main.c
src/main.h
src/netserv.c
src/network.c

index 354c823b22a05c935f3a2b4ac15436424d275286..9c152d05f7e91c9d9a370ebcf46bdbc769537397 100644 (file)
@@ -63,6 +63,9 @@ void InitGame()
   BOOL emulate_bd = TRUE;      /* unless non-BOULDERDASH elements found */
   BOOL emulate_sb = TRUE;      /* unless non-SOKOBAN     elements found */
 
+  /* don't play tapes over network */
+  network_playing = (network && !tape.playing);
+
   for(i=0; i<MAX_PLAYERS; i++)
   {
     struct PlayerInfo *player = &stored_player[i];
@@ -134,7 +137,7 @@ void InitGame()
 
 
   /* initial null action */
-  if (network)
+  if (network_playing)
     SendToServer_MovePlayer(MV_NO_MOVING);
 
 
@@ -2889,7 +2892,7 @@ void GameActions(byte player_action)
   /* main game synchronization point */
   WaitUntilDelayReached(&action_delay, action_delay_value);
 
-  if (network && !network_player_action_received)
+  if (network_playing && !network_player_action_received)
   {
     /*
 #ifdef DEBUG
@@ -2926,13 +2929,18 @@ void GameActions(byte player_action)
   else
     recorded_player_action = NULL;
 
-  if (network)
+  if (network_playing)
     SendToServer_MovePlayer(player_action);
 
   for(i=0; i<MAX_PLAYERS; i++)
   {
+    /*
     int actual_player_action =
       (network ? network_player_action[i] : player_action);
+      */
+
+    int actual_player_action =
+      (network_playing ? network_player_action[i] : player_action);
 
     /*
     int actual_player_action = network_player_action[i];
index 4db664635bc6d5c312c25f494f8138f657f2e003..49478464d427b114e7ebb2fb75218f0814988167 100644 (file)
@@ -56,6 +56,7 @@ int           verbose = FALSE;
 
 int            game_status = MAINMENU;
 int            game_emulation = EMU_NONE;
+int            network_playing = FALSE;
 int            button_status = MB_NOT_PRESSED, motion_status = FALSE;
 int            key_joystick_mapping = 0;
 int            global_joystick_status = JOYSTICK_STATUS;
index 794256e271d76cc517f6aaac0f48553596bf436f..ce5d1bb99cc9753a168bea37bfff849d0bf85bae 100644 (file)
@@ -329,6 +329,7 @@ extern int          verbose;
 
 extern int             game_status;
 extern int             game_emulation;
+extern int             network_playing;
 extern int             button_status, motion_status;
 extern int             key_joystick_mapping;
 extern int             global_joystick_status, joystick_status;
index 221c8ff9df0d388d633a9d81696356fa519e4cd8..b9dad16248cc83e0dcf4e6cbe2660f10c1a8e82f 100644 (file)
@@ -41,7 +41,7 @@ static int clients = 0;
 static int bots = 0;
 static int onceonly = 0;
 static int timetoplay = 0;
-static int daemon = 0;
+static int is_daemon = 0;
 static int level = 5;
 static int mode = -1;
 static int paused = 0;
@@ -83,7 +83,7 @@ static fd_set fds;
 
 static void syserr(char *s)
 {
-  if (!daemon)
+  if (!is_daemon)
     fprintf(stderr, "fatal: %s failed.\n", s);
   exit(1);
 }
@@ -518,7 +518,7 @@ void NetworkServer(int port, int serveronly)
   unsigned int len;
   struct protoent *tcpproto;
   struct timeval tv;
-  int daemon = 0;
+  int is_daemon = 0;
 
 #ifndef NeXT
   struct sigaction sact;
@@ -558,7 +558,7 @@ void NetworkServer(int port, int serveronly)
 
   listen(lfd, 5);
 
-  if (daemon)
+  if (is_daemon)
   {
     /* become a daemon, breaking all ties with the controlling terminal */
     verbose = 0;
index d92a09093dc30b904ab0707cc327723e2fd29fea..82f406d61382f39df2fa06fc15870d5497a5e989 100644 (file)
@@ -516,6 +516,9 @@ static void Handle_OP_MOVE_FIGURE()
   int frame_nr;
   int i;
 
+  if (!network_playing)
+    return;
+
   frame_nr =
     (buf[2] << 24) | (buf[3] << 16) | (buf[4] << 8) | (buf[5]);