about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-04-06 14:32:56 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-04-06 14:32:56 +0000
commit6ecc2efaecdf70ed6a754bc089c7e0e4606df398 (patch)
treede81f3402de0c924acf10c2f71e4dbc721444890 /src/game/client
parentd15bef7ede6b07dbbc2f6b6a3e23b1ed83e6b6ea (diff)
downloadzcatch-6ecc2efaecdf70ed6a754bc089c7e0e4606df398.tar.gz
zcatch-6ecc2efaecdf70ed6a754bc089c7e0e4606df398.zip
more loads of changes for 0.5.0
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/gc_client.cpp2
-rw-r--r--src/game/client/gc_client.h2
-rw-r--r--src/game/client/gc_console.cpp4
-rw-r--r--src/game/client/gc_hooks.cpp18
4 files changed, 16 insertions, 10 deletions
diff --git a/src/game/client/gc_client.cpp b/src/game/client/gc_client.cpp
index 005e9026..2aeb28b9 100644
--- a/src/game/client/gc_client.cpp
+++ b/src/game/client/gc_client.cpp
@@ -29,6 +29,8 @@ int64 debug_firedelay = 0;
 
 NETOBJ_PLAYER_INPUT input_data = {0};
 int input_target_lock = 0;
+int input_direction_left = 0;
+int input_direction_right = 0;
 
 int chat_mode = CHATMODE_NONE;
 bool menu_active = false;
diff --git a/src/game/client/gc_client.h b/src/game/client/gc_client.h
index 2ab558f3..15df5dc2 100644
--- a/src/game/client/gc_client.h
+++ b/src/game/client/gc_client.h
@@ -51,6 +51,8 @@ extern player_core predicted_player;
 
 // input
 extern NETOBJ_PLAYER_INPUT input_data;
+extern int input_direction_left;
+extern int input_direction_right;
 
 // debug
 extern int64 debug_firedelay;
diff --git a/src/game/client/gc_console.cpp b/src/game/client/gc_console.cpp
index 935aac91..76bf7218 100644
--- a/src/game/client/gc_console.cpp
+++ b/src/game/client/gc_console.cpp
@@ -424,8 +424,8 @@ void client_console_init()
 	MACRO_REGISTER_COMMAND("emote", "i", con_emote, 0);
 
 	// game commands
-	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("+left", "", con_key_input_state, &input_direction_left);
+	MACRO_REGISTER_COMMAND("+right", "", con_key_input_state, &input_direction_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);
diff --git a/src/game/client/gc_hooks.cpp b/src/game/client/gc_hooks.cpp
index 81090ca4..36e166d4 100644
--- a/src/game/client/gc_hooks.cpp
+++ b/src/game/client/gc_hooks.cpp
@@ -375,8 +375,7 @@ extern "C" int modc_snap_input(int *data)
 	// we freeze the input if chat or menu is activated
 	if(menu_active || chat_mode != CHATMODE_NONE || console_active())
 	{
-		last_data.left = 0;
-		last_data.right = 0;
+		last_data.direction = 0;
 		last_data.hook = 0;
 		last_data.jump = 0;
 		
@@ -390,7 +389,13 @@ extern "C" int modc_snap_input(int *data)
 	input_data.target_y = (int)mouse_pos.y;
 	if(!input_data.target_x && !input_data.target_y)
 		input_data.target_y = 1;
-	
+		
+	// set direction
+	input_data.direction = 0;
+	if(input_direction_left && !input_direction_right)
+		input_data.direction = -1;
+	if(!input_direction_left && input_direction_right)
+		input_data.direction = 1;
 
 	// stress testing
 	if(config.dbg_stress)
@@ -398,8 +403,7 @@ extern "C" int modc_snap_input(int *data)
 		float t = client_localtime();
 		mem_zero(&input_data, sizeof(input_data));
 
-		input_data.left = ((int)t/2)&1;
-		input_data.right = ((int)t/2+1)&1;
+		input_data.direction = ((int)t/2)&1;
 		input_data.jump = ((int)t);
 		input_data.fire = ((int)(t*10));
 		input_data.hook = ((int)(t*2))&1;
@@ -410,9 +414,7 @@ extern "C" int modc_snap_input(int *data)
 
 	// check if we need to send input
 	bool send = false;
-	if(input_data.left != last_data.left) send = true;
-	else if(input_data.left != last_data.left) send = true;
-	else if(input_data.right != last_data.right) send = true;
+	if(input_data.direction != last_data.direction) send = true;
 	else if(input_data.jump != last_data.jump) send = true;
 	else if(input_data.fire != last_data.fire) send = true;
 	else if(input_data.hook != last_data.hook) send = true;