about summary refs log tree commit diff
path: root/src/game/client/gameclient.cpp
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2009-06-15 14:01:36 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2009-06-15 14:01:36 +0000
commit7b68ff42773976cafe39b59dc026350cda5c05fd (patch)
treea64ff77b56d62f3860e82513df4874436c353621 /src/game/client/gameclient.cpp
parent0160f2651448c2c2df332d2447629e23d5bd4a9a (diff)
downloadzcatch-7b68ff42773976cafe39b59dc026350cda5c05fd.tar.gz
zcatch-7b68ff42773976cafe39b59dc026350cda5c05fd.zip
fixed chaining of console commands, allows snatching updates of console variables. cleaned up some code
Diffstat (limited to 'src/game/client/gameclient.cpp')
-rw-r--r--src/game/client/gameclient.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp
index fc17b94f..fa2f4de0 100644
--- a/src/game/client/gameclient.cpp
+++ b/src/game/client/gameclient.cpp
@@ -248,7 +248,18 @@ void GAMECLIENT::on_console_init()
 	// let all the other components register their console commands
 	for(int i = 0; i < all.num; i++)
 		all.components[i]->on_console_init();
-		
+	
+	
+	//
+	{ static COMMANDCHAIN chain; console_chain_command("player_name", &chain, conchain_special_infoupdate, this); }
+	{ static COMMANDCHAIN chain; console_chain_command("player_use_custom_color", &chain, conchain_special_infoupdate, this); }
+	{ static COMMANDCHAIN chain; console_chain_command("player_color_body", &chain, conchain_special_infoupdate, this); }
+	{ static COMMANDCHAIN chain; console_chain_command("player_color_feet", &chain, conchain_special_infoupdate, this); }
+	{ static COMMANDCHAIN chain; console_chain_command("player_skin", &chain, conchain_special_infoupdate, this); }
+	
+	
+	
+	
 	//
 	suppress_events = false;
 }
@@ -954,3 +965,10 @@ void GAMECLIENT::con_kill(void *result, void *user_data)
 {
 	((GAMECLIENT*)user_data)->send_kill(-1);
 }
+
+void GAMECLIENT::conchain_special_infoupdate(void *result, void *user_data, CONSOLE_CALLBACK cb, void *cbuser)
+{
+	cb(result, cbuser);
+	if(console_arg_num(result))
+		((GAMECLIENT*)user_data)->send_info(false);
+}