X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fcasings.qc;h=a43d1726fcdce42a09aa30356391dc25cca57ac1;hb=2edeb8354bb93aae319d75077a44c0fd0b4f6ca2;hp=860e8296f700cb94562b9efb3775895ed1b8fefd;hpb=1eadc66440474af5c3d2b2f7e5a24935da3ffbdf;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/casings.qc b/qcsrc/client/casings.qc index 860e8296f..a43d1726f 100644 --- a/qcsrc/client/casings.qc +++ b/qcsrc/client/casings.qc @@ -15,6 +15,8 @@ void Casing_Draw() } Movetype_Physics_MatchTicrate(autocvar_cl_casings_ticrate, autocvar_cl_casings_sloppy); + if(wasfreed(self)) + return; // deleted by touch function self.renderflags = 0; self.alpha = bound(0, self.cnt - time, 1); @@ -55,7 +57,7 @@ void Casing_Touch() break; } - sound (self, CHAN_PROJECTILE, s, VOL_BASE, ATTN_NORM); + sound (self, CH_SHOTS, s, VOL_BASE, ATTN_LARGE); } } } @@ -107,23 +109,28 @@ void Ent_Casing(float isNew) casing.cnt = time + autocvar_cl_casings_shell_time; break; default: - setmodel(casing, "models/casing_bronze.mdl"); + setmodel(casing, "models/casing_bronze.iqm"); casing.cnt = time + autocvar_cl_casings_bronze_time; break; } setsize(casing, '0 0 -1', '0 0 -1'); - } - else - Casing_Delete(); - RubbleLimit("casing", autocvar_cl_casings_maxcount, Casing_Delete); + RubbleLimit("casing", autocvar_cl_casings_maxcount, Casing_Delete); + } + else + { + entity oldself = self; + self = casing; + Casing_Delete(); // yes, this IS stupid, but I don't need to duplicate all the read* stuff then + self = oldself; + } } void Casings_Precache() { precache_model("models/casing_shell.mdl"); - precache_model("models/casing_bronze.mdl"); + precache_model("models/casing_bronze.iqm"); precache_sound("weapons/brass1.wav"); precache_sound("weapons/brass2.wav"); precache_sound("weapons/brass3.wav");