(svn r8372) -Fix (8361): NUM_LANDSCAPE comes (via some detour) from openttd.h, which does not exist in the masterserver/updater.
authorrubidium
Tue, 23 Jan 2007 14:47:38 +0000
changeset 6061 e1e35dd62309
parent 6060 8388a1bcb7c8
child 6062 104e61574219
(svn r8372) -Fix (8361): NUM_LANDSCAPE comes (via some detour) from openttd.h, which does not exist in the masterserver/updater.
src/network/core/config.h
src/network/core/udp.cpp
src/network/network.cpp
--- a/src/network/core/config.h	Tue Jan 23 13:26:12 2007 +0000
+++ b/src/network/core/config.h	Tue Jan 23 14:47:38 2007 +0000
@@ -42,6 +42,15 @@
 	NETWORK_MAX_GRF_COUNT         =   55,
 
 	NETWORK_NUM_LANGUAGES         =    4, ///< Number of known languages (to the network protocol) + 1 for 'any'.
+	/**
+	 * The number of landscapes in OpenTTD.
+	 * This number must be equal to NUM_LANDSCAPE, but as this number is used
+	 * within the network code and that the network code is shared with the
+	 * masterserver/updater, it has to be declared in here too. In network.cpp
+	 * there is a compile assertion to check that this NUM_LANDSCAPE is equal
+	 * to NETWORK_NUM_LANDSCAPES.
+	 */
+	NETWORK_NUM_LANDSCAPES        =    4,
 };
 
 #endif /* ENABLE_NETWORK */
--- a/src/network/core/udp.cpp	Tue Jan 23 13:26:12 2007 +0000
+++ b/src/network/core/udp.cpp	Tue Jan 23 14:47:38 2007 +0000
@@ -300,8 +300,8 @@
 			info->map_set        = NetworkRecv_uint8 (this, p);
 			info->dedicated      = (NetworkRecv_uint8(this, p) != 0);
 
-			if (info->server_lang >= NETWORK_NUM_LANGUAGES) info->server_lang = 0;
-			if (info->map_set     >= NUM_LANDSCAPE)         info->map_set     = 0;
+			if (info->server_lang >= NETWORK_NUM_LANGUAGES)  info->server_lang = 0;
+			if (info->map_set     >= NETWORK_NUM_LANDSCAPES) info->map_set     = 0;
 	}
 }
 
--- a/src/network/network.cpp	Tue Jan 23 13:26:12 2007 +0000
+++ b/src/network/network.cpp	Tue Jan 23 14:47:38 2007 +0000
@@ -38,6 +38,9 @@
 #include <stdarg.h> /* va_list */
 #include "../md5.h"
 
+/* Check whether NETWORK_NUM_LANDSCAPES is still in sync with NUM_LANDSCAPE */
+assert_compile((int)NETWORK_NUM_LANDSCAPES == (int)NUM_LANDSCAPE);
+
 // global variables (declared in network_data.h)
 CommandPacket *_local_command_queue;