about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-18 20:33:34 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-18 20:33:34 +0000
commit723057e8c9b4de4fff782fba543e87ef7577ca1c (patch)
tree048c984b96c015107c99110276f5eff90c585bc9
parente988e3c1615a18f0abdaec9b3d5a3467c38a882a (diff)
downloadzcatch-723057e8c9b4de4fff782fba543e87ef7577ca1c.tar.gz
zcatch-723057e8c9b4de4fff782fba543e87ef7577ca1c.zip
fixed fullauto on shotgun and rockets. fixed animation problem with 25 snaprate on hammer
-rw-r--r--src/game/client/gc_client.cpp5
-rw-r--r--src/game/server/gs_server.cpp8
2 files changed, 9 insertions, 4 deletions
diff --git a/src/game/client/gc_client.cpp b/src/game/client/gc_client.cpp
index 139181bb..5409549c 100644
--- a/src/game/client/gc_client.cpp
+++ b/src/game/client/gc_client.cpp
@@ -1358,6 +1358,7 @@ static void render_player(
 	obj_player_info info = *player_info;
 
 	float intratick = client_intratick();
+	float ticktime = client_ticktime();
 
 	if(player.health < 0) // dont render dead players
 		return;
@@ -1405,12 +1406,12 @@ static void render_player(
 
 	if (player.weapon == WEAPON_HAMMER)
 	{
-		float a = clamp((client_tick()-player.attacktick+intratick)/10.0f, 0.0f, 1.0f);
+		float a = clamp((client_tick()-player.attacktick+ticktime)/10.0f, 0.0f, 1.0f);
 		anim_eval_add(&state, &data->animations[ANIM_HAMMER_SWING], a, 1.0f);
 	}
 	if (player.weapon == WEAPON_NINJA)
 	{
-		float a = clamp((client_tick()-player.attacktick+intratick)/40.0f, 0.0f, 1.0f);
+		float a = clamp((client_tick()-player.attacktick+ticktime)/40.0f, 0.0f, 1.0f);
 		anim_eval_add(&state, &data->animations[ANIM_NINJA_SWING], a, 1.0f);
 	}
 
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp
index 530727f6..a45e52ab 100644
--- a/src/game/server/gs_server.cpp
+++ b/src/game/server/gs_server.cpp
@@ -920,9 +920,13 @@ int player::handle_weapons()
 		return handle_sniper();
 	*/
 
-	if(count_input(previnput.fire, input.fire).presses) //previnput.fire != input.fire && (input.fire&1))
+	if(reload_timer == 0)
 	{
-		if(reload_timer == 0)
+		bool fullauto = false;
+		if(active_weapon == WEAPON_ROCKET || active_weapon == WEAPON_SHOTGUN)
+			fullauto = true;
+		
+		if(count_input(previnput.fire, input.fire).presses || (fullauto && input.fire&1))
 		{
 			// fire!
 			if(weapons[active_weapon].ammo)