rnd-20031011-3-src
[rocksndiamonds.git] / src / network.c
index 159ef458d5e458639d5d9ed0445ca5072342f602..5511d176a1b9a9264c0e9b9db35fec4efe0a39f2 100644 (file)
@@ -1,7 +1,7 @@
 /***********************************************************
 * Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-* (c) 1995-2001 Artsoft Entertainment                      *
+* (c) 1995-2002 Artsoft Entertainment                      *
 *               Holger Schemel                             *
 *               Detmolder Strasse 189                      *
 *               33604 Bielefeld                            *
@@ -11,7 +11,7 @@
 * network.c                                                *
 ***********************************************************/
 
-#include "libgame/libgame.h"
+#include "libgame/platform.h"
 
 #if defined(PLATFORM_UNIX)
 
@@ -24,9 +24,7 @@
 #include <arpa/inet.h>
 #include <netdb.h>
 
-#if 0
 #include "libgame/libgame.h"
-#endif
 
 #include "network.h"
 #include "netserv.h"
@@ -240,9 +238,9 @@ void SendToServer_StartPlaying()
   buffer[8] = (unsigned char)((new_random_seed >>  8) & 0xff);
   buffer[9] = (unsigned char)((new_random_seed >>  0) & 0xff);
 
-  strcpy((char *)&buffer[10], leveldir_current->filename);
+  strcpy((char *)&buffer[10], leveldir_current->identifier);
 
-  SendBufferToServer(10 + strlen(leveldir_current->filename) + 1);
+  SendBufferToServer(10 + strlen(leveldir_current->identifier) + 1);
 }
 
 void SendToServer_PausePlaying()
@@ -268,7 +266,7 @@ void SendToServer_StopPlaying()
 
 void SendToServer_MovePlayer(byte player_action)
 {
-  buffer[1] = OP_MOVE_FIGURE;
+  buffer[1] = OP_MOVE_PLAYER;
   buffer[2] = player_action;
 
   SendBufferToServer(3);
@@ -415,31 +413,32 @@ static void Handle_OP_PLAYER_DISCONNECTED()
 
 static void Handle_OP_START_PLAYING()
 {
-  struct LevelDirInfo *new_leveldir;
+  LevelDirTree *new_leveldir;
   int new_level_nr;
   int dummy;                           /* !!! HAS NO MEANING ANYMORE !!! */
   unsigned long new_random_seed;
-  char *new_leveldir_filename;
+  char *new_leveldir_identifier;
 
   new_level_nr = (buffer[2] << 8) + buffer[3];
   dummy = (buffer[4] << 8) + buffer[5];
   new_random_seed =
     (buffer[6] << 24) | (buffer[7] << 16) | (buffer[8] << 8) | (buffer[9]);
-  new_leveldir_filename = (char *)&buffer[10];
+  new_leveldir_identifier = (char *)&buffer[10];
 
-  new_leveldir = getLevelDirInfoFromFilename(new_leveldir_filename);
+  new_leveldir = getTreeInfoFromIdentifier(leveldir_first,
+                                          new_leveldir_identifier);
   if (new_leveldir == NULL)
   {
-    Error(ERR_WARN, "no such level directory: '%s'", new_leveldir_filename);
+    Error(ERR_WARN, "no such level identifier: '%s'", new_leveldir_identifier);
 
     new_leveldir = leveldir_first;
-    Error(ERR_WARN, "using default level directory: '%s'", new_leveldir->name);
+    Error(ERR_WARN, "using default level set: '%s'", new_leveldir->identifier);
   }
 
   printf("OP_START_PLAYING: %d\n", buffer[0]);
   Error(ERR_NETWORK_CLIENT,
-       "client %d starts game [level %d from leveldir '%s']\n",
-       buffer[0], new_level_nr, new_leveldir->name);
+       "client %d starts game [level %d from level identifier '%s']\n",
+       buffer[0], new_level_nr, new_leveldir->identifier);
 
   leveldir_current = new_leveldir;
   level_nr = new_level_nr;
@@ -456,7 +455,7 @@ static void Handle_OP_START_PLAYING()
 
   InitRND(new_random_seed);
 
-  game_status = PLAYING;
+  game_status = GAME_MODE_PLAYING;
   InitGame();
 }
 
@@ -483,11 +482,11 @@ static void Handle_OP_STOP_PLAYING()
   printf("OP_STOP_PLAYING: %d\n", buffer[0]);
   Error(ERR_NETWORK_CLIENT, "client %d stops game", buffer[0]);
 
-  game_status = MAINMENU;
+  game_status = GAME_MODE_MAIN;
   DrawMainMenu();
 }
 
-static void Handle_OP_MOVE_FIGURE(unsigned int len)
+static void Handle_OP_MOVE_PLAYER(unsigned int len)
 {
   int server_frame_counter;
   int i;
@@ -570,8 +569,8 @@ static void HandleNetworkingMessages()
        Handle_OP_STOP_PLAYING();
        break;
 
-      case OP_MOVE_FIGURE:
-       Handle_OP_MOVE_FIGURE(message_length);
+      case OP_MOVE_PLAYER:
+       Handle_OP_MOVE_PLAYER(message_length);
        break;
 
       case OP_BROADCAST_MESSAGE: