]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/triggers/func/breakable.qc
Merge branch 'master' into terencehill/hud_cleanups
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / func / breakable.qc
index 9875dc78ea7134983eda17ec7e5586239bb45d0e..4164f8341ac8feaa2969f18a879d635ae7433676 100644 (file)
@@ -1,12 +1,10 @@
 #ifdef SVQC
 
-#include "../../../server/_all.qh"
-
 #include "../../../server/g_subs.qh"
 #include "../../../server/g_damage.qh"
 #include "../../../server/bot/bot.qh"
 #include "../../../common/csqcmodel_settings.qh"
-#include "../../../csqcmodellib/sv_model.qh"
+#include "../../../lib/csqcmodel/sv_model.qh"
 #include "../../../server/weapons/common.qh"
 
 .entity sprite;
@@ -249,7 +247,20 @@ void func_breakable_damage(entity inflictor, entity attacker, float damage, int
        if(self.health <= 0)
        {
                debrisforce = force;
-               W_PrepareExplosionByDamage(attacker, func_breakable_destroy);
+
+               self.takedamage = DAMAGE_NO;
+               self.event_damage = func_null;
+
+               if(IS_CLIENT(attacker) && self.classname == "func_assault_destructible")
+               {
+                       self.owner = attacker;
+                       self.realowner = attacker;
+               }
+
+               // do not explode NOW but in the NEXT FRAME!
+               // because recursive calls to RadiusDamage are not allowed
+               self.nextthink = time;
+               self.think = func_breakable_destroy;
        }
 }