From acbdc62b142c08b9ea67341659a3067d110b8261 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Tue, 30 Mar 2021 07:31:33 +0200 Subject: [PATCH] Make sure we call View_AddEvent() _after_ Weapons_ViewAnimation() so the cache hack in the upstream Nuclide repo works. --- src/client/defs.h | 1 + src/shared/w_ak47.qc | 2 +- src/shared/w_aug.qc | 2 +- src/shared/w_elites.qc | 5 ++-- src/shared/w_g3sg1.qc | 2 +- src/shared/w_glock18.qc | 34 +++++++++++++-------------- src/shared/w_m3.qc | 25 +++++++++----------- src/shared/w_m4a1.qc | 2 +- src/shared/w_p90.qc | 2 +- src/shared/w_para.qc | 2 +- src/shared/w_scout.qc | 5 +--- src/shared/w_sg550.qc | 2 +- src/shared/w_sg552.qc | 2 +- src/shared/w_tmp.qc | 2 +- src/shared/w_ump45.qc | 26 ++++++++++----------- src/shared/w_usp45.qc | 52 ++++++++++++++++++++--------------------- src/shared/w_xm1014.qc | 25 +++++++++----------- 17 files changed, 91 insertions(+), 100 deletions(-) diff --git a/src/client/defs.h b/src/client/defs.h index f3032d8..dd645cd 100644 --- a/src/client/defs.h +++ b/src/client/defs.h @@ -63,6 +63,7 @@ struct void(void) m_pEventCall; float m_flEventTime; + float m_flEventFrame; int m_iLastWeapon; int m_iOldWeapon; diff --git a/src/shared/w_ak47.qc b/src/shared/w_ak47.qc index 53dc210..8738f16 100644 --- a/src/shared/w_ak47.qc +++ b/src/shared/w_ak47.qc @@ -159,7 +159,6 @@ w_ak47_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_rifle_ejectshell, 0.0f); int r = (float)input_sequence % 3; switch (r) { @@ -173,6 +172,7 @@ w_ak47_primary(void) Weapons_ViewAnimation(AK47_SHOOT3); break; } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(1); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47); diff --git a/src/shared/w_aug.qc b/src/shared/w_aug.qc index 6a10302..f626174 100644 --- a/src/shared/w_aug.qc +++ b/src/shared/w_aug.qc @@ -126,7 +126,6 @@ w_aug_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_rifle_ejectshell, 0.0f); int r = (float)input_sequence % 3; switch (r) { @@ -140,6 +139,7 @@ w_aug_primary(void) Weapons_ViewAnimation(AUG_SHOOT3); break; } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(1); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG); diff --git a/src/shared/w_elites.qc b/src/shared/w_elites.qc index 7427db0..14753d5 100644 --- a/src/shared/w_elites.qc +++ b/src/shared/w_elites.qc @@ -186,8 +186,6 @@ w_elites_primary(void) int r = (float)input_sequence % 5; if (pl.mode_temp) { - View_AddEvent(w_pistol_ejectshell_left, 0.0f); - if (pl.elites_mag <= 0) { Weapons_ViewAnimation(ELITES_SHOOT_LEFTLAST); } else { @@ -209,8 +207,8 @@ w_elites_primary(void) break; } } + View_AddEvent(w_pistol_ejectshell_left, 0.0f); } else { - View_AddEvent(w_pistol_ejectshell_right, 0.0f); if (pl.elites_mag <= 0) { Weapons_ViewAnimation(ELITES_SHOOT_RIGHTLAST); } else { @@ -232,6 +230,7 @@ w_elites_primary(void) break; } } + View_AddEvent(w_pistol_ejectshell_right, 0.0f); } #else TraceAttack_SetPenetrationPower(0); diff --git a/src/shared/w_g3sg1.qc b/src/shared/w_g3sg1.qc index 6a7aa0d..8fea89e 100644 --- a/src/shared/w_g3sg1.qc +++ b/src/shared/w_g3sg1.qc @@ -124,7 +124,6 @@ w_g3sg1_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_rifle_ejectshell, 0.0f); int r = (float)input_sequence % 2; switch (r) { @@ -135,6 +134,7 @@ w_g3sg1_primary(void) Weapons_ViewAnimation(SCOUT_SHOOT2); break; } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(2); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1); diff --git a/src/shared/w_glock18.qc b/src/shared/w_glock18.qc index 69988d1..05fafab 100644 --- a/src/shared/w_glock18.qc +++ b/src/shared/w_glock18.qc @@ -157,23 +157,6 @@ w_glock18_primary(void) #endif } -#ifdef CLIENT - View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_pistol_ejectshell, 0.0f); -#else - - if (pl.flags & FL_CROUCHING) - Animation_PlayerTopTemp(ANIM_SHOOT_ONEHAND, 0.45f); - else - Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_ONEHAND, 0.45f); - - if (pl.mode_glock18) { - Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.burstfire"); - } else { - Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.fire"); - } -#endif - if (pl.mode_glock18) { int r = (float)input_sequence % 2; switch (r) { @@ -193,6 +176,23 @@ w_glock18_primary(void) } pl.w_attack_next = 0.15f; } + +#ifdef CLIENT + View_SetMuzzleflash(MUZZLE_RIFLE); + View_AddEvent(w_pistol_ejectshell, 0.0f); +#else + if (pl.flags & FL_CROUCHING) + Animation_PlayerTopTemp(ANIM_SHOOT_ONEHAND, 0.45f); + else + Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_ONEHAND, 0.45f); + + if (pl.mode_glock18) { + Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.burstfire"); + } else { + Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.fire"); + } +#endif + pl.gflags |= GF_SEMI_TOGGLED; pl.w_idle_next = pl.w_attack_next; } diff --git a/src/shared/w_m3.qc b/src/shared/w_m3.qc index 403f65a..1681f65 100644 --- a/src/shared/w_m3.qc +++ b/src/shared/w_m3.qc @@ -168,20 +168,6 @@ w_m3_primary(void) float accuracy = Cstrike_CalculateAccuracy(pl, 200); pl.m3_mag--; -#ifdef CLIENT - View_SetMuzzleflash(MUZZLE_RIFLE); -#else - TraceAttack_SetPenetrationPower(0); - TraceAttack_FireBullets(9, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_M3); - - if (self.flags & FL_CROUCHING) - Animation_PlayerTopTemp(ANIM_SHOOT_SHOTGUN, 0.45f); - else - Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f); - - Sound_Play(pl, CHAN_WEAPON, "weapon_m3.fire"); -#endif - int r = (float)input_sequence % 2; switch (r) { case 0: @@ -193,7 +179,18 @@ w_m3_primary(void) } #ifdef CLIENT + View_SetMuzzleflash(MUZZLE_RIFLE); View_AddEvent(w_m3_ejectshell, 0.6f); +#else + TraceAttack_SetPenetrationPower(0); + TraceAttack_FireBullets(9, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_M3); + + if (self.flags & FL_CROUCHING) + Animation_PlayerTopTemp(ANIM_SHOOT_SHOTGUN, 0.45f); + else + Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f); + + Sound_Play(pl, CHAN_WEAPON, "weapon_m3.fire"); #endif pl.w_attack_next = 1.0f; diff --git a/src/shared/w_m4a1.qc b/src/shared/w_m4a1.qc index 4c0edd2..848acd7 100644 --- a/src/shared/w_m4a1.qc +++ b/src/shared/w_m4a1.qc @@ -146,7 +146,6 @@ w_m4a1_primary(void) } else { View_SetMuzzleflash(MUZZLE_RIFLE); } - View_AddEvent(w_rifle_ejectshell, 0.0f); /* this stuff is predicted */ int r = (float)input_sequence % 3; @@ -175,6 +174,7 @@ w_m4a1_primary(void) break; } } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else /* Different sounds without silencer */ if (pl.mode_m4a1 == 1) { diff --git a/src/shared/w_p90.qc b/src/shared/w_p90.qc index bd3e4a0..2a3c856 100644 --- a/src/shared/w_p90.qc +++ b/src/shared/w_p90.qc @@ -125,7 +125,6 @@ w_p90_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_pistol_ejectshell, 0.0f); int r = (float)input_sequence % 3; switch (r) { @@ -139,6 +138,7 @@ w_p90_primary(void) Weapons_ViewAnimation(P90_SHOOT3); break; } + View_AddEvent(w_pistol_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(0); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90); diff --git a/src/shared/w_para.qc b/src/shared/w_para.qc index 9eff45e..f66366c 100644 --- a/src/shared/w_para.qc +++ b/src/shared/w_para.qc @@ -124,7 +124,6 @@ w_para_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_rifle_ejectshell, 0.0f); int r = (float)input_sequence % 2; switch (r) { @@ -135,6 +134,7 @@ w_para_primary(void) Weapons_ViewAnimation(SCOUT_SHOOT2); break; } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(1); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA); diff --git a/src/shared/w_scout.qc b/src/shared/w_scout.qc index 34bf9ba..b739beb 100644 --- a/src/shared/w_scout.qc +++ b/src/shared/w_scout.qc @@ -191,6 +191,7 @@ w_scout_primary(void) Weapons_ViewAnimation(SCOUT_SHOOT2); break; } + View_AddEvent(w_rifle_ejectshell, 0.5f); #else TraceAttack_SetPenetrationPower(2); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT); @@ -203,10 +204,6 @@ w_scout_primary(void) Sound_Play(pl, CHAN_WEAPON, "weapon_scout.fire"); #endif -#ifdef CLIENT - View_AddEvent(w_rifle_ejectshell, 0.5f); -#endif - pl.w_attack_next = 1.25f; pl.w_idle_next = pl.w_attack_next; } diff --git a/src/shared/w_sg550.qc b/src/shared/w_sg550.qc index 28a887e..7c5f5f5 100644 --- a/src/shared/w_sg550.qc +++ b/src/shared/w_sg550.qc @@ -124,7 +124,6 @@ w_sg550_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_rifle_ejectshell, 0.0f); int r = (float)input_sequence % 2; switch (r) { @@ -135,6 +134,7 @@ w_sg550_primary(void) Weapons_ViewAnimation(SCOUT_SHOOT2); break; } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(1); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550); diff --git a/src/shared/w_sg552.qc b/src/shared/w_sg552.qc index 2038cf6..11a179d 100644 --- a/src/shared/w_sg552.qc +++ b/src/shared/w_sg552.qc @@ -125,7 +125,6 @@ w_sg552_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_rifle_ejectshell, 0.0f); int r = (float)input_sequence % 3; switch (r) { @@ -139,6 +138,7 @@ w_sg552_primary(void) Weapons_ViewAnimation(SG552_SHOOT3); break; } + View_AddEvent(w_rifle_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(1); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552); diff --git a/src/shared/w_tmp.qc b/src/shared/w_tmp.qc index 0b0d064..d2c35b8 100644 --- a/src/shared/w_tmp.qc +++ b/src/shared/w_tmp.qc @@ -127,7 +127,6 @@ w_tmp_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_pistol_ejectshell, 0.0f); int r = (float)input_sequence % 3; switch (r) { @@ -141,6 +140,7 @@ w_tmp_primary(void) Weapons_ViewAnimation(TMP_SHOOT3); break; } + View_AddEvent(w_pistol_ejectshell, 0.0f); #else TraceAttack_SetPenetrationPower(0); TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP); diff --git a/src/shared/w_ump45.qc b/src/shared/w_ump45.qc index dbf250f..1765b79 100644 --- a/src/shared/w_ump45.qc +++ b/src/shared/w_ump45.qc @@ -125,6 +125,19 @@ w_ump45_primary(void) float accuracy = Cstrike_CalculateAccuracy(pl, 210); pl.ump45_mag--; + int r = (float)input_sequence % 3; + switch (r) { + case 0: + Weapons_ViewAnimation(UMP45_SHOOT1); + break; + case 1: + Weapons_ViewAnimation(UMP45_SHOOT2); + break; + default: + Weapons_ViewAnimation(UMP45_SHOOT3); + break; + } + #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); View_AddEvent(w_pistol_ejectshell, 0.0f); @@ -140,19 +153,6 @@ w_ump45_primary(void) Sound_Play(pl, CHAN_WEAPON, "weapon_ump45.fire"); #endif - int r = (float)input_sequence % 3; - switch (r) { - case 0: - Weapons_ViewAnimation(UMP45_SHOOT1); - break; - case 1: - Weapons_ViewAnimation(UMP45_SHOOT2); - break; - default: - Weapons_ViewAnimation(UMP45_SHOOT3); - break; - } - pl.w_attack_next = 0.105f; pl.w_idle_next = pl.w_attack_next; } diff --git a/src/shared/w_usp45.qc b/src/shared/w_usp45.qc index 2a76a55..c37f80f 100644 --- a/src/shared/w_usp45.qc +++ b/src/shared/w_usp45.qc @@ -147,32 +147,6 @@ w_usp45_primary(void) float accuracy = Cstrike_CalculateAccuracy(pl, 200); pl.usp45_mag--; - /* actual firing */ -#ifdef CLIENT - if (pl.mode_usp45 == 1) { - View_SetMuzzleflash(0); - } else { - View_SetMuzzleflash(MUZZLE_SMALL); - } - - View_AddEvent(w_pistol_ejectshell, 0.0f); -#else - /* Different sounds without silencer */ - if (pl.mode_usp45 == 1) { - Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.silenced"); - } else { - Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.fire"); - } - - TraceAttack_SetPenetrationPower(0); - TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_USP45); - - if (self.flags & FL_CROUCHING) - Animation_PlayerTopTemp(ANIM_SHOOT_ONEHAND, 0.45f); - else - Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_ONEHAND, 0.45f); -#endif - /* this stuff is predicted */ int r = (float)input_sequence % 3; if (pl.mode_usp45 == 1) { @@ -209,6 +183,32 @@ w_usp45_primary(void) } } +#ifdef CLIENT + if (pl.mode_usp45 == 1) { + View_SetMuzzleflash(0); + } else { + View_SetMuzzleflash(MUZZLE_SMALL); + } + + View_AddEvent(w_pistol_ejectshell, 0.0f); +#else + /* Different sounds without silencer */ + if (pl.mode_usp45 == 1) { + Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.silenced"); + } else { + Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.fire"); + } + + /* actual firing */ + TraceAttack_SetPenetrationPower(0); + TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_USP45); + + if (self.flags & FL_CROUCHING) + Animation_PlayerTopTemp(ANIM_SHOOT_ONEHAND, 0.45f); + else + Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_ONEHAND, 0.45f); +#endif + pl.gflags |= GF_SEMI_TOGGLED; pl.w_attack_next = 0.15f; pl.w_idle_next = pl.w_attack_next; diff --git a/src/shared/w_xm1014.qc b/src/shared/w_xm1014.qc index 7701c77..6bcaab0 100644 --- a/src/shared/w_xm1014.qc +++ b/src/shared/w_xm1014.qc @@ -168,20 +168,6 @@ w_xm1014_primary(void) float accuracy = Cstrike_CalculateAccuracy(pl, 200); pl.xm1014_mag--; -#ifdef CLIENT - View_SetMuzzleflash(MUZZLE_RIFLE); -#else - TraceAttack_SetPenetrationPower(0); - TraceAttack_FireBullets(6, pl.origin + pl.view_ofs, 22, [accuracy,accuracy], WEAPON_XM1014); - - if (self.flags & FL_CROUCHING) - Animation_PlayerTopTemp(ANIM_SHOOT_SHOTGUN, 0.45f); - else - Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f); - - Sound_Play(pl, CHAN_WEAPON, "weapon_xm1014.fire"); -#endif - int r = (float)input_sequence % 3; switch (r) { case 0: @@ -193,7 +179,18 @@ w_xm1014_primary(void) } #ifdef CLIENT + View_SetMuzzleflash(MUZZLE_RIFLE); View_AddEvent(w_xm1014_ejectshell, 0.0f); +#else + TraceAttack_SetPenetrationPower(0); + TraceAttack_FireBullets(6, pl.origin + pl.view_ofs, 22, [accuracy,accuracy], WEAPON_XM1014); + + if (self.flags & FL_CROUCHING) + Animation_PlayerTopTemp(ANIM_SHOOT_SHOTGUN, 0.45f); + else + Animation_PlayerTopTemp(ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f); + + Sound_Play(pl, CHAN_WEAPON, "weapon_xm1014.fire"); #endif pl.w_attack_next = 0.25f;