removed checking for debug mode when using debug logging
[rocksndiamonds.git] / src / network.c
index 2730c7b01967842e533a1e2a5b26df25323e93b1..b4ee83c37ae4d61da0b62567b835f041eede8a49 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // network.c
 // ============================================================================
@@ -90,7 +90,7 @@ static void DrawNetworkTextExt(char *message, int font_nr, boolean initialize)
       ypos = SY + ypos_2;
     }
 
-    Error(ERR_DEBUG, "========== %s ==========", message);
+    Debug("network:client", "========== %s ==========", message);
   }
   else
   {
@@ -104,7 +104,7 @@ static void DrawNetworkTextExt(char *message, int font_nr, boolean initialize)
 
     ypos += (num_lines_printed + num_lines_spacing) * font_height;
 
-    Error(ERR_DEBUG, "%s", message);
+    Debug("network:client", "%s", message);
   }
 
   BackToFront();
@@ -188,12 +188,9 @@ static void StartNetworkServer(int port)
   static int p;
 
   p = port;
-#if defined(TARGET_SDL2)
+
   server_thread = SDL_CreateThread(NetworkServerThread,
                                   "NetworkServerThread", &p);
-#else
-  server_thread = SDL_CreateThread(NetworkServerThread, &p);
-#endif
   network_server = TRUE;
 }
 
@@ -224,7 +221,7 @@ boolean ConnectToServer(char *hostname, int port)
       Error(ERR_EXIT, "SDLNet_AllocSocketSet() failed: %s"), SDLNet_GetError();
 
     udp = SDLNet_UDP_Open(0);
-    if(!udp)
+    if (!udp)
       Error(ERR_EXIT, "SDLNet_UDP_Open() failed: %s", SDLNet_GetError());
 
     if (SDLNet_UDP_AddSocket(udp_socket_set, udp) == -1)
@@ -335,7 +332,7 @@ boolean ConnectToServer(char *hostname, int port)
     SDLNet_Write16(port,        &ip.port);
   }
 
-  Error(ERR_DEBUG, "trying to connect to network server at %d.%d.%d.%d ...",
+  Debug("network:client", "trying to connect to network server at %d.%d.%d.%d ...",
         (server_host >> 24) & 0xff,
         (server_host >> 16) & 0xff,
         (server_host >>  8) & 0xff,
@@ -508,8 +505,8 @@ static void Handle_OP_BAD_PROTOCOL_VERSION(void)
   int protocol_version_major = getNetworkBuffer8BitInteger(read_buffer);
   int protocol_version_minor = getNetworkBuffer8BitInteger(read_buffer);
 
-  Error(ERR_WARN, "protocol version mismatch");
-  Error(ERR_WARN, "server expects %d.%d.x instead of %d.%d.%d",
+  Warn("protocol version mismatch");
+  Warn("server expects %d.%d.x instead of %d.%d.%d",
        protocol_version_major,
        protocol_version_minor,
        PROTOCOL_VERSION_MAJOR,
@@ -705,7 +702,7 @@ static void Handle_OP_START_PLAYING(void)
 
   if (!strEqual(new_leveldir_identifier, network_level.leveldir_identifier))
   {
-    Error(ERR_WARN, "no such level identifier: '%s'", new_leveldir_identifier);
+    Warn("no such level identifier: '%s'", new_leveldir_identifier);
 
     stop_network_game = TRUE;
 
@@ -811,11 +808,10 @@ static void Handle_OP_MOVE_PLAYER(void)
 
   if (server_frame_counter != FrameCounter)
   {
-    Error(ERR_INFO, "frame counters of client %d and server out of sync",
-         player_nr);
-    Error(ERR_INFO, "frame counter of client is %d", FrameCounter);
-    Error(ERR_INFO, "frame counter of server is %d", server_frame_counter);
-    Error(ERR_INFO, "this should not happen -- please debug");
+    Warn("frame counters of client %d and server out of sync", player_nr);
+    Warn("frame counter of client is %d", FrameCounter);
+    Warn("frame counter of server is %d", server_frame_counter);
+    Warn("this should not happen -- please debug");
 
     stop_network_game = TRUE;
 
@@ -873,7 +869,11 @@ static void Handle_OP_LEVEL_FILE(void)
   if (hasPathSeparator(file_info->basename))
     Error(ERR_EXIT, "protocol error: invalid filename from network client");
 
-  getNetworkBufferFile(read_buffer, file_info->filename);
+  int num_bytes = getNetworkBufferFile(read_buffer, file_info->filename);
+
+  // if received level file is empty, remove it (as being non-existent)
+  if (num_bytes == 0)
+    remove(file_info->filename);
 
   use_custom_template = getNetworkBuffer8BitInteger(read_buffer);
   if (use_custom_template)
@@ -887,6 +887,10 @@ static void Handle_OP_LEVEL_FILE(void)
       Error(ERR_EXIT, "protocol error: invalid filename from network client");
 
     getNetworkBufferFile(read_buffer, tmpl_info->filename);
+
+    // if received level file is empty, use level template file instead
+    if (num_bytes == 0)
+      setString(&file_info->filename,  tmpl_info->filename);
   }
 
   network_level.leveldir_identifier = leveldir_identifier;