about summary refs log tree commit diff
path: root/src/game
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-14 23:39:52 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-14 23:39:52 +0000
commit41b8f4f16596df47d30707b1eedaf83836f7d4a1 (patch)
tree5e1daca5d9e0e5621b0551a463e9d789d0bf51dc /src/game
parent9e84f8d01f87efe5cc79d46d56e26325a09449c0 (diff)
downloadzcatch-41b8f4f16596df47d30707b1eedaf83836f7d4a1.tar.gz
zcatch-41b8f4f16596df47d30707b1eedaf83836f7d4a1.zip
redone the console parsing to be more userfriendly
Diffstat (limited to 'src/game')
-rw-r--r--src/game/client/gc_console.cpp80
-rw-r--r--src/game/server/gs_server.cpp37
2 files changed, 41 insertions, 76 deletions
diff --git a/src/game/client/gc_console.cpp b/src/game/client/gc_console.cpp
index dd8b7e4d..d0714009 100644
--- a/src/game/client/gc_console.cpp
+++ b/src/game/client/gc_console.cpp
@@ -202,23 +202,17 @@ void console_rcon_print(const char *line)
 
 static void con_team(void *result, void *user_data)
 {
-	int new_team;
-	console_result_int(result, 1, &new_team);
-	send_switch_team(new_team);
+	send_switch_team(console_arg_int(result, 0));
 }
 
 static void con_say(void *result, void *user_data)
 {
-	const char *str;
-	console_result_string(result, 1, &str);
-	chat_say(0, str);
+	chat_say(0, console_arg_string(result, 0));
 }
 
 static void con_sayteam(void *result, void *user_data)
 {
-	const char *str;
-	console_result_string(result, 1, &str);
-	chat_say(1, str);
+	chat_say(1, console_arg_string(result, 0));
 }
 
 void send_kill(int client_id);
@@ -267,10 +261,7 @@ static int get_key_id(const char *key_name)
 
 static void con_binds_set(void *result, void *user_data)
 {
-	const char *key_name;
-	const char *bind_str;
-	console_result_string(result, 1, &key_name);
-	console_result_string(result, 2, &bind_str);
+	const char *key_name = console_arg_string(result, 0);
 	int id = get_key_id(key_name);
 	
 	if(!id)
@@ -279,14 +270,13 @@ static void con_binds_set(void *result, void *user_data)
 		return;
 	}
 	
-	binds_set(id, bind_str);
+	binds_set(id, console_arg_string(result, 1));
 }
 
 
 static void con_binds_remove(void *result, void *user_data)
 {
-	const char *key_name;
-	console_result_string(result, 1, &key_name);
+	const char *key_name = console_arg_string(result, 0);
 	int id = get_key_id(key_name);
 	
 	if(!id)
@@ -315,24 +305,20 @@ void binds_save()
 	{
 		if(keybindings[i][0] == 0)
 			continue;
-		str_format(buffer, sizeof(buffer), "binds_set %s \"%s\"", inp_key_name(i), keybindings[i]);
+		str_format(buffer, sizeof(buffer), "binds_set %s %s", inp_key_name(i), keybindings[i]);
 		client_save_line(buffer);
 	}
 }
 
 static void con_key_input_state(void *result, void *user_data)
 {
-	int i;
-	console_result_int(result, 1, &i);
-	((int *)user_data)[0] = i;
+	((int *)user_data)[0] = console_arg_int(result, 0);
 }
 
 static void con_key_input_counter(void *result, void *user_data)
 {
-	int stroke;
 	int *v = (int *)user_data;
-	console_result_int(result, 1, &stroke);
-	if(((*v)&1) != stroke)
+	if(((*v)&1) != console_arg_int(result, 0))
 		(*v)++;
 	*v &= INPUT_STATE_MASK;
 }
@@ -340,16 +326,13 @@ static void con_key_input_counter(void *result, void *user_data)
 static void con_key_input_weapon(void *result, void *user_data)
 {
 	int w = (char *)user_data - (char *)0;
-	int stroke;
-	console_result_int(result, 1, &stroke);
-	if(stroke)
+	if(console_arg_int(result, 0))
 		input_data.wanted_weapon = w;
 }
 
 static void con_chat(void *result, void *user_data)
 {
-	const char *mode;
-	console_result_string(result, 1, &mode);
+	const char *mode = console_arg_string(result, 0);
 	if(strcmp(mode, "all") == 0)
 		chat_enable_mode(0);
 	else if(strcmp(mode, "team") == 0)
@@ -368,12 +351,9 @@ static void con_toggle_remote_console(void *result, void *user_data)
 	console_toggle(1);
 }
 
-
 static void con_emote(void *result, void *user_data)
 {
-	int emote;
-	console_result_int(result, 1, &emote);
-	send_emoticon(emote);
+	send_emoticon(console_arg_int(result, 0));
 }
 
 void client_console_init()
@@ -389,33 +369,33 @@ void client_console_init()
 	MACRO_REGISTER_COMMAND("kill", "", con_kill, 0x0);
 	
 	// bindings
-	MACRO_REGISTER_COMMAND("binds_set", "ss", con_binds_set, 0x0);
+	MACRO_REGISTER_COMMAND("binds_set", "sr", con_binds_set, 0x0);
 	MACRO_REGISTER_COMMAND("binds_remove", "s", con_binds_remove, 0x0);
 	MACRO_REGISTER_COMMAND("binds_dump", "", con_binds_dump, 0x0);
 
 	// chatting
-	MACRO_REGISTER_COMMAND("say", "s", con_say, 0x0);
-	MACRO_REGISTER_COMMAND("say_team", "s", con_sayteam, 0x0);
+	MACRO_REGISTER_COMMAND("say", "r", con_say, 0x0);
+	MACRO_REGISTER_COMMAND("say_team", "r", con_sayteam, 0x0);
 	MACRO_REGISTER_COMMAND("chat", "s", con_chat, 0x0);
 	MACRO_REGISTER_COMMAND("emote", "i", con_emote, 0);
 
 	// game commands
-	MACRO_REGISTER_COMMAND("+left", "i", con_key_input_state, &input_data.left);
-	MACRO_REGISTER_COMMAND("+right", "i", con_key_input_state, &input_data.right);
-	MACRO_REGISTER_COMMAND("+jump", "i", con_key_input_state, &input_data.jump);
-	MACRO_REGISTER_COMMAND("+hook", "i", con_key_input_state, &input_data.hook);
-	MACRO_REGISTER_COMMAND("+fire", "i", con_key_input_counter, &input_data.fire);
-	MACRO_REGISTER_COMMAND("+weapon1", "i", con_key_input_weapon, (void *)1);
-	MACRO_REGISTER_COMMAND("+weapon2", "i", con_key_input_weapon, (void *)2);
-	MACRO_REGISTER_COMMAND("+weapon3", "i", con_key_input_weapon, (void *)3);
-	MACRO_REGISTER_COMMAND("+weapon4", "i", con_key_input_weapon, (void *)4);
-	MACRO_REGISTER_COMMAND("+weapon5", "i", con_key_input_weapon, (void *)5);
-
-	MACRO_REGISTER_COMMAND("+nextweapon", "i", con_key_input_counter, &input_data.next_weapon);
-	MACRO_REGISTER_COMMAND("+prevweapon", "i", con_key_input_counter, &input_data.prev_weapon);
+	MACRO_REGISTER_COMMAND("+left", "", con_key_input_state, &input_data.left);
+	MACRO_REGISTER_COMMAND("+right", "", con_key_input_state, &input_data.right);
+	MACRO_REGISTER_COMMAND("+jump", "", con_key_input_state, &input_data.jump);
+	MACRO_REGISTER_COMMAND("+hook", "", con_key_input_state, &input_data.hook);
+	MACRO_REGISTER_COMMAND("+fire", "", con_key_input_counter, &input_data.fire);
+	MACRO_REGISTER_COMMAND("+weapon1", "", con_key_input_weapon, (void *)1);
+	MACRO_REGISTER_COMMAND("+weapon2", "", con_key_input_weapon, (void *)2);
+	MACRO_REGISTER_COMMAND("+weapon3", "", con_key_input_weapon, (void *)3);
+	MACRO_REGISTER_COMMAND("+weapon4", "", con_key_input_weapon, (void *)4);
+	MACRO_REGISTER_COMMAND("+weapon5", "", con_key_input_weapon, (void *)5);
+
+	MACRO_REGISTER_COMMAND("+nextweapon", "", con_key_input_counter, &input_data.next_weapon);
+	MACRO_REGISTER_COMMAND("+prevweapon", "", con_key_input_counter, &input_data.prev_weapon);
 	
-	MACRO_REGISTER_COMMAND("+emote", "i", con_key_input_state, &emoticon_selector_active);
-	MACRO_REGISTER_COMMAND("+scoreboard", "i", con_key_input_state, &scoreboard_active);
+	MACRO_REGISTER_COMMAND("+emote", "", con_key_input_state, &emoticon_selector_active);
+	MACRO_REGISTER_COMMAND("+scoreboard", "", con_key_input_state, &scoreboard_active);
 	
 	// set default key bindings
 	binds_set(KEY_F1, "toggle_local_console");
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp
index a4e11428..f674ecfd 100644
--- a/src/game/server/gs_server.cpp
+++ b/src/game/server/gs_server.cpp
@@ -2235,26 +2235,16 @@ extern unsigned char internal_data[];
 
 static void con_tune_param(void *result, void *user_data)
 {
-	const char *param_name;
-	float new_value;
+	const char *param_name = console_arg_string(result, 0);
+	float new_value = console_arg_float(result, 1);
 
-	if(console_result_string(result, 1, &param_name) == 0)
+	if(tuning.set(param_name, new_value))
 	{
-		if(console_result_float(result, 2, &new_value) == 0)
-		{
-			if(tuning.set(param_name, new_value))
-			{
-				dbg_msg("tuning", "%s changed to %.2f", param_name, new_value);
-				send_tuning_params(-1);
-			}
-			else
-				console_print("No such tuning parameter");
-		}
-		else
-		{
-			//console_print("");
-		}
+		dbg_msg("tuning", "%s changed to %.2f", param_name, new_value);
+		send_tuning_params(-1);
 	}
+	else
+		console_print("No such tuning parameter");
 }
 
 static void con_tune_reset(void *result, void *user_data)
@@ -2278,20 +2268,15 @@ static void con_tune_dump(void *result, void *user_data)
 
 static void con_restart(void *result, void *user_data)
 {
-	int time = 0;
-	console_result_int(result, 1, &time);
-
-	if(time)
-		gameobj->do_warmup(time);
+	if(console_arg_num(result))
+		gameobj->do_warmup(console_arg_int(result, 0));
 	else
 		gameobj->startround();
 }
 
 static void con_broadcast(void *result, void *user_data)
 {
-	const char *message;
-	console_result_string(result, 1, &message);
-	send_chat(-1, -1, message);
+	send_chat(-1, -1, console_arg_string(result, 0));
 }
 
 void mods_console_init()
@@ -2301,7 +2286,7 @@ void mods_console_init()
 	MACRO_REGISTER_COMMAND("tune_dump", "", con_tune_dump, 0);
 
 	MACRO_REGISTER_COMMAND("restart", "?i", con_restart, 0);
-	MACRO_REGISTER_COMMAND("broadcast", "s", con_broadcast, 0);
+	MACRO_REGISTER_COMMAND("broadcast", "r", con_broadcast, 0);
 }
 
 void mods_init()