about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-11 08:48:48 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-11 08:48:48 +0000
commit0883fc3dfd51d8dda9a9dc055400871057cfe3a2 (patch)
tree0997e2fd46fdbd68c701c6dc5b500882091faaa9
parent1d98b33ec21827aab21a5afef27c8abf6c510507 (diff)
downloadzcatch-0883fc3dfd51d8dda9a9dc055400871057cfe3a2.tar.gz
zcatch-0883fc3dfd51d8dda9a9dc055400871057cfe3a2.zip
cleaned up some console stuff
-rw-r--r--src/engine/e_config_variables.h5
-rw-r--r--src/engine/server/es_server.c54
-rw-r--r--src/game/client/gc_client.cpp2
-rw-r--r--src/game/client/gc_hooks.cpp2
-rw-r--r--src/game/client/gc_menu.cpp12
-rw-r--r--src/game/g_variables.h8
-rw-r--r--src/game/server/gs_server.cpp47
7 files changed, 62 insertions, 68 deletions
diff --git a/src/engine/e_config_variables.h b/src/engine/e_config_variables.h
index c5624444..ead4b7e1 100644
--- a/src/engine/e_config_variables.h
+++ b/src/engine/e_config_variables.h
@@ -5,11 +5,9 @@
 MACRO_CONFIG_STR(player_name, 32, "nameless tee")
 MACRO_CONFIG_STR(clan_name, 32, "")
 MACRO_CONFIG_STR(password, 32, "")
-
 MACRO_CONFIG_STR(logfile, 128, "")
 
 MACRO_CONFIG_INT(cl_cpu_throttle, 0, 0, 1)
-/*MACRO_CONFIG_STR(cl_connect, 32, "")*/
 MACRO_CONFIG_INT(cl_editor, 0, 0, 1)
 
 MACRO_CONFIG_STR(b_filter_string, 64, "")
@@ -51,10 +49,8 @@ MACRO_CONFIG_STR(sv_bindaddr, 128, "")
 MACRO_CONFIG_INT(sv_port, 8303, 0, 0)
 MACRO_CONFIG_INT(sv_external_port, 0, 0, 0)
 MACRO_CONFIG_STR(sv_map, 128, "dm1")
-MACRO_CONFIG_INT(sv_map_reload, 0, 0, 1)
 MACRO_CONFIG_INT(sv_max_clients, 8, 1, 12)
 MACRO_CONFIG_INT(sv_high_bandwidth, 0, 0, 1)
-MACRO_CONFIG_INT(sv_status, 0, 0, 1)
 MACRO_CONFIG_INT(sv_register, 1, 0, 1)
 MACRO_CONFIG_STR(sv_rcon_password, 32, "")
 
@@ -65,3 +61,4 @@ MACRO_CONFIG_INT(dbg_graphs, 0, 0, 1)
 MACRO_CONFIG_INT(dbg_hitch, 0, 0, 0)
 MACRO_CONFIG_STR(dbg_stress_server, 32, "localhost")
 
+MACRO_CONFIG_INT(sv_map_reload, 0, 0, 1)
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c
index abf6bf21..cf747716 100644
--- a/src/engine/server/es_server.c
+++ b/src/engine/server/es_server.c
@@ -803,27 +803,6 @@ static void server_send_serverinfo(NETADDR4 *addr, int lan)
 	netserver_send(net, &packet);
 }
 
-static void server_dump_status()
-{
-	int i;
-	NETADDR4 addr;
-	dbg_msg("server", "-- status --");
-	for(i = 0; i < MAX_CLIENTS; i++)
-	{
-		if(clients[i].state == SRVCLIENT_STATE_INGAME)
-		{
-			netserver_client_addr(net, i, &addr);
-			dbg_msg("server", "id=%d addr=%d.%d.%d.%d:%d name='%s' score=%d",
-				i, addr.ip[0], addr.ip[1], addr.ip[2], addr.ip[3], addr.port,
-				clients[i].name, clients[i].score);
-		}
-	}
-	dbg_msg("server", "-- end status --");
-
-	config.sv_status = 0;
-}
-			
-
 extern int register_process_packet(NETPACKET *packet);
 extern int register_update();
 
@@ -1073,12 +1052,6 @@ static int server_run()
 				reporttime += time_freq()*reportinterval;
 			}
 			
-			if(config.sv_status)
-			{
-				server_dump_status();
-				config.sv_status = 0;
-			}
-			
 			/* wait for incomming data */
 			net_socket_read_wait(netserver_socket(net), 5);
 		}
@@ -1090,10 +1063,33 @@ static int server_run()
 	return 0;
 }
 
+static void con_kick(void *result, void *user_data)
+{
+	int cid;
+	console_result_int(result, 1, &cid);
+	server_kick(cid, "kicked by console");
+}
+
+static void con_status(void *result, void *user_data)
+{
+	int i;
+	NETADDR4 addr;
+	for(i = 0; i < MAX_CLIENTS; i++)
+	{
+		if(clients[i].state == SRVCLIENT_STATE_INGAME)
+		{
+			netserver_client_addr(net, i, &addr);
+			dbg_msg("server", "id=%d addr=%d.%d.%d.%d:%d name='%s' score=%d",
+				i, addr.ip[0], addr.ip[1], addr.ip[2], addr.ip[3], addr.port,
+				clients[i].name, clients[i].score);
+		}
+	}
+}
+
 static void server_register_commands()
 {
-	/* kick */
-	/* status */
+	MACRO_REGISTER_COMMAND("kick", "i", con_kick, 0);
+	MACRO_REGISTER_COMMAND("status", "", con_status, 0);
 }
 
 int main(int argc, char **argv)
diff --git a/src/game/client/gc_client.cpp b/src/game/client/gc_client.cpp
index fec01294..7b191fbf 100644
--- a/src/game/client/gc_client.cpp
+++ b/src/game/client/gc_client.cpp
@@ -851,6 +851,8 @@ void render_game()
 		else
 		{
 			float l = length(mouse_pos);
+			if(l != l) l = 0; // detect division by zero
+			
 			if(l > mouse_max)
 			{
 				mouse_pos = normalize(mouse_pos)*mouse_max;
diff --git a/src/game/client/gc_hooks.cpp b/src/game/client/gc_hooks.cpp
index 0074bab7..73dde8f2 100644
--- a/src/game/client/gc_hooks.cpp
+++ b/src/game/client/gc_hooks.cpp
@@ -467,7 +467,7 @@ extern "C" void modc_message(int msg)
 		const char *message = msg_unpack_string();
 
 		/* check for errors and invalid inputs */
-		if(msg_unpack_error() || cid < 0 || cid >= MAX_CLIENTS)
+		if(msg_unpack_error() || cid < -1 || cid >= MAX_CLIENTS)
 			return;
 			
 		dbg_msg("message", "chat cid=%d team=%d msg='%s'", cid, team, message);
diff --git a/src/game/client/gc_menu.cpp b/src/game/client/gc_menu.cpp
index d0789d77..e6a3d6c5 100644
--- a/src/game/client/gc_menu.cpp
+++ b/src/game/client/gc_menu.cpp
@@ -1163,13 +1163,19 @@ static void menu2_render_settings_player(RECT main_view)
 		ui_hsplit_t(&main_view, 20.0f, &button, &main_view);
 		if(ui_do_button(&dynamic_camera_button, "Dynamic Camera", config.cl_mouse_deadzone != 0, &button, ui_draw_checkbox, 0))
 		{
-			config.cl_mouse_followfactor = 60;
-			config.cl_mouse_max_distance = 400;
 			
 			if(config.cl_mouse_deadzone)
+			{
+				config.cl_mouse_followfactor = 0;
+				config.cl_mouse_max_distance = 400;
 				config.cl_mouse_deadzone = 0;
+			}
 			else
-				config.cl_mouse_deadzone = 200;
+			{
+				config.cl_mouse_followfactor = 60;
+				config.cl_mouse_max_distance = 1000;
+				config.cl_mouse_deadzone = 300;
+			}
 		}
 
 		ui_hsplit_t(&main_view, 20.0f, &button, &main_view);
diff --git a/src/game/g_variables.h b/src/game/g_variables.h
index ce544ea1..b7ab3b8e 100644
--- a/src/game/g_variables.h
+++ b/src/game/g_variables.h
@@ -12,7 +12,7 @@ MACRO_CONFIG_INT(cl_warning_tuning, 1, 0, 1)
 
 MACRO_CONFIG_INT(cl_mouse_deadzone, 200, 0, 0)
 MACRO_CONFIG_INT(cl_mouse_followfactor, 60, 0, 200)
-MACRO_CONFIG_INT(cl_mouse_max_distance, 400, 0, 0)
+MACRO_CONFIG_INT(cl_mouse_max_distance, 800, 0, 0)
 
 
 MACRO_CONFIG_INT(cl_flow, 0, 0, 1)
@@ -48,9 +48,3 @@ MACRO_CONFIG_INT(sv_scorelimit, 20, 0, 1000)
 MACRO_CONFIG_INT(sv_timelimit, 0, 0, 1000)
 MACRO_CONFIG_STR(sv_gametype, 32, "dm")
 MACRO_CONFIG_INT(sv_tournament_mode, 0, 0, 1)
-
-
-/* should be removed as they are commands and not variables */
-MACRO_CONFIG_INT(sv_restart, 0, 0, 120)
-MACRO_CONFIG_STR(sv_msg, 512, "")
-MACRO_CONFIG_INT(sv_kick, -1, 0, 0)
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp
index bb1b40bb..a4e11428 100644
--- a/src/game/server/gs_server.cpp
+++ b/src/game/server/gs_server.cpp
@@ -2016,28 +2016,6 @@ void mods_tick()
 
 	if(world->paused) // make sure that the game object always updates
 		gameobj->tick();
-
-	if(config.sv_restart)
-	{
-		if(config.sv_restart > 1)
-			gameobj->do_warmup(config.sv_restart);
-		else
-			gameobj->startround();
-
-		config.sv_restart = 0;
-	}
-
-	if(config.sv_msg[0] != 0)
-	{
-		send_chat(-1, -1, config.sv_msg);
-		config.sv_msg[0] = 0;
-	}
-	
-	if(config.sv_kick != -1)
-	{
-		server_kick(config.sv_kick, "kicked");
-		config.sv_kick = -1;
-	}
 }
 
 void mods_snap(int client_id)
@@ -2138,8 +2116,8 @@ void mods_connected(int client_id)
 		else
 			players[client_id].team = gameobj->getteam(client_id);
 	}
-	
-	
+
+	// send motd	
 	msg_pack_start(MSG_MOTD, MSGFLAG_VITAL);
 	msg_pack_string(config.sv_motd, 900);
 	msg_pack_end();
@@ -2298,11 +2276,32 @@ 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);
+	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);
+}
+
 void mods_console_init()
 {
 	MACRO_REGISTER_COMMAND("tune", "s?i", con_tune_param, 0);
 	MACRO_REGISTER_COMMAND("tune_reset", "", con_tune_reset, 0);
 	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);
 }
 
 void mods_init()