X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Fbuffs%2Fsv_buffs.qc;fp=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Fbuffs%2Fsv_buffs.qc;h=dbe43ace3b7ab002bf2f957aab568e8b76c1fb46;hp=88fd6aa73128469763ef254fb227682798a0425a;hb=d24e46b65c1fe73fae4cf8034f4e7f318a17053a;hpb=824dde5a5388816a57e8a9897b3b612a380a482c diff --git a/qcsrc/common/mutators/mutator/buffs/sv_buffs.qc b/qcsrc/common/mutators/mutator/buffs/sv_buffs.qc index 88fd6aa731..dbe43ace3b 100644 --- a/qcsrc/common/mutators/mutator/buffs/sv_buffs.qc +++ b/qcsrc/common/mutators/mutator/buffs/sv_buffs.qc @@ -3,7 +3,6 @@ #include #include #include -#include void buffs_DelayedInit(entity this); @@ -45,7 +44,7 @@ bool buffs_BuffModel_Customize(entity this, entity client) void buffs_BuffModel_Spawn(entity player) { - player.buff_model = spawn(); + player.buff_model = new(buff_model); setmodel(player.buff_model, MDL_BUFF); setsize(player.buff_model, '0 0 -40', '0 0 40'); setattachment(player.buff_model, player, ""); @@ -57,6 +56,13 @@ void buffs_BuffModel_Spawn(entity player) setcefc(player.buff_model, buffs_BuffModel_Customize); } +void buffs_BuffModel_Remove(entity player) +{ + if(player.buff_model) + delete(player.buff_model); + player.buff_model = NULL; +} + vector buff_GlowColor(entity buff) { //if(buff.team_forced) { return Team_ColorRGB(buff.team_forced); } @@ -499,7 +505,7 @@ MUTATOR_HOOKFUNCTION(buffs, Damage_Calculate) if(frag_attacker != frag_target) if(!ITEM_DAMAGE_NEEDKILL(frag_deathtype)) { - entity dmgent = spawn(); + entity dmgent = new(dmgent); dmgent.dmg = frag_damage * autocvar_g_buffs_vengeance_damage_multiplier; dmgent.enemy = frag_attacker; @@ -582,6 +588,7 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerSpawn) { entity player = M_ARGV(0, entity); + buffs_BuffModel_Remove(player); player.oldbuffs = 0; // reset timers here to prevent them continuing after re-spawn player.buff_disability_time = 0; @@ -632,11 +639,7 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerDies) STAT(BUFFS, frag_target) = 0; STAT(BUFF_TIME, frag_target) = 0; - if(frag_target.buff_model) - { - delete(frag_target.buff_model); - frag_target.buff_model = NULL; - } + buffs_BuffModel_Remove(frag_target); } } @@ -742,11 +745,7 @@ MUTATOR_HOOKFUNCTION(buffs, ForbidThrowCurrentWeapon) bool buffs_RemovePlayer(entity player) { - if(player.buff_model) - { - delete(player.buff_model); - player.buff_model = NULL; - } + buffs_BuffModel_Remove(player); // also reset timers here to prevent them continuing after spectating player.buff_disability_time = 0; @@ -999,9 +998,7 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerPreThink) } else { - if(player.buff_model) - delete(player.buff_model); - player.buff_model = NULL; + buffs_BuffModel_Remove(player); player.effects &= ~(EF_NOSHADOW); }