]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/buffs/sv_buffs.qc
Merge branch 'master' into bones_was_here/q3compat
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / buffs / sv_buffs.qc
index 88fd6aa73128469763ef254fb227682798a0425a..dbe43ace3b7ab002bf2f957aab568e8b76c1fb46 100644 (file)
@@ -3,7 +3,6 @@
 #include <common/mapobjects/target/music.qh>
 #include <common/gamemodes/_mod.qh>
 #include <server/items/items.qh>
-#include <server/main.qh>
 
 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);
                }