From 2979bd82f1fe8abae5bd11c39b1e5e4c7c7aee00 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Mon, 14 Mar 2022 12:00:22 -0700 Subject: [PATCH] WEAPON_MP5: shell ejection is now done here instead of inheriting the WEAPON_GLOCK shell ejection. Results in mods like They Hunger also looking snazzier. --- src/shared/w_mp5.qc | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/shared/w_mp5.qc b/src/shared/w_mp5.qc index e161ca0..ca364e7 100644 --- a/src/shared/w_mp5.qc +++ b/src/shared/w_mp5.qc @@ -50,6 +50,39 @@ enum MP5_FIRE3 }; +#ifdef CLIENT +void w_mp5_ejectshell(void) +{ + static void w_mp5_ejectshell_death(void) { + remove(self); + } + static void w_mp5_ejectshell_touch(void) { + if (other == world) + Sound_Play(self, CHAN_BODY, "modelevent_shell.land"); + } + entity eShell = spawn(); + setmodel(eShell, "models/shell.mdl"); + eShell.solid = SOLID_BBOX; + eShell.movetype = MOVETYPE_BOUNCE; + eShell.drawmask = MASK_ENGINE; + eShell.angles = [pSeat->m_eViewModel.angles[0], pSeat->m_eViewModel.angles[1], 0]; + eShell.velocity = pSeat->m_vecPredictedVelocity; + + float r = random(0.0, 50.0); + makevectors(pSeat->m_eViewModel.angles); + eShell.velocity += (v_forward * 0); + eShell.velocity += (v_right * 45); + eShell.velocity += (v_up * (145 + r)); + eShell.touch = w_mp5_ejectshell_touch; + + eShell.avelocity = [0,45,900]; + eShell.think = w_mp5_ejectshell_death; + eShell.nextthink = time + 2.5f; + setsize(eShell, [0,0,0], [0,0,0]); + setorigin(eShell, pSeat->m_eViewModel.origin + (v_forward * 30) + (v_right * 8) + (v_up * -15)); +} +#endif + void w_mp5_precache(void) { @@ -151,7 +184,7 @@ w_mp5_primary(void) #ifdef CLIENT View_SetMuzzleflash(MUZZLE_RIFLE); - View_AddEvent(w_glock_ejectshell, 0.0f); + View_AddEvent(w_mp5_ejectshell, 0.0f); #else /* singleplayer is more accurate */ if (cvar("sv_playerslots") == 1) {