about summary refs log tree commit diff
path: root/src/game/client/gameclient.cpp
diff options
context:
space:
mode:
authorAlfred Eriksson <somerunce@gmail.com>2009-01-11 10:40:14 +0000
committerAlfred Eriksson <somerunce@gmail.com>2009-01-11 10:40:14 +0000
commit39a12060d68b1a5169d643a8c6f56df3d82ac4c1 (patch)
treebb104b9b446a00687e533924b5765ff3918780cc /src/game/client/gameclient.cpp
parent371e8623161095b8f74d51d37f3de368b5cd584c (diff)
downloadzcatch-39a12060d68b1a5169d643a8c6f56df3d82ac4c1.tar.gz
zcatch-39a12060d68b1a5169d643a8c6f56df3d82ac4c1.zip
removed the tuning filtering and warning. modded servers can use tuning for free. added pure server checking - ctf, dm and tdm gametypes are not allowed to have different tuning.
Diffstat (limited to 'src/game/client/gameclient.cpp')
-rw-r--r--src/game/client/gameclient.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp
index ec3ad78d..6b3f3492 100644
--- a/src/game/client/gameclient.cpp
+++ b/src/game/client/gameclient.cpp
@@ -1,3 +1,4 @@
+#include <string.h>
 #include <engine/e_client_interface.h>
 #include <engine/e_demorec.h>
 
@@ -214,6 +215,7 @@ void GAMECLIENT::on_init()
 	int64 end = time_get();
 	dbg_msg("", "%f.2ms", ((end-start)*1000)/(float)time_freq());
 	
+	servermode = SERVERMODE_PURE;
 }
 
 void GAMECLIENT::on_save()
@@ -273,6 +275,11 @@ void GAMECLIENT::on_connected()
 		all.components[i]->on_reset();
 	}
 	
+	SERVER_INFO current_server_info;
+	client_serverinfo(&current_server_info);
+	
+	servermode = SERVERMODE_PURE;
+	
 	// send the inital info
 	send_info(true);
 }
@@ -393,6 +400,8 @@ void GAMECLIENT::on_message(int msgtype)
 		// check for unpacking errors
 		if(msg_unpack_error())
 			return;
+		
+		servermode = SERVERMODE_PURE;
 			
 		// apply new tuning
 		tuning = new_tuning;
@@ -638,6 +647,20 @@ void GAMECLIENT::on_snapshot()
 	}
 	else
 		snap.spectate = true;
+	
+	TUNING_PARAMS standard_tuning;
+	SERVER_INFO current_server_info;
+	client_serverinfo(&current_server_info);
+	if(current_server_info.gametype[0] != '0')
+	{
+		if(strcmp(current_server_info.gametype, "DM") != 0 && strcmp(current_server_info.gametype, "TDM") != 0 && strcmp(current_server_info.gametype, "CTF") != 0)
+			servermode = SERVERMODE_MOD;
+		else if(memcmp(&standard_tuning, &tuning, sizeof(TUNING_PARAMS)) == 0)
+			servermode = SERVERMODE_PURE;
+		else
+			servermode = SERVERMODE_PUREMOD;
+	}
+	
 
 	// update render info
 	for(int i = 0; i < MAX_CLIENTS; i++)