X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmapobjects%2Ffunc%2Fbreakable.qc;h=6064603591492332ac4089011059b7e6f708bcbd;hb=323105d51f8eb6dea47c063965be5e34ad57f987;hp=e92af677cc565dabd71a4177c94b17983f0ab6a0;hpb=185c7b56bb0d8bbb204cbbf0696dd96c069fffc3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mapobjects/func/breakable.qc b/qcsrc/common/mapobjects/func/breakable.qc index e92af677c..606460359 100644 --- a/qcsrc/common/mapobjects/func/breakable.qc +++ b/qcsrc/common/mapobjects/func/breakable.qc @@ -1,7 +1,7 @@ #include "breakable.qh" #ifdef SVQC -#include +#include #include #include #include @@ -50,7 +50,7 @@ void func_breakable_damage(entity this, entity inflictor, entity attacker, float // void LaunchDebris (entity this, string debrisname, vector force) { - entity dbr = spawn(); + entity dbr = new(debris); vector org = this.absmin + '1 0 0' * random() * (this.absmax.x - this.absmin.x) + '0 1 0' * random() * (this.absmax.y - this.absmin.y) @@ -187,7 +187,7 @@ void func_breakable_init_for_player(entity this, entity player) if (this.noise1 && this.state == STATE_ALIVE && IS_REAL_CLIENT(player)) { msg_entity = player; - soundto (MSG_ONE, this, CH_TRIGGER_SINGLE, this.noise1, VOL_BASE, ATTEN_NORM); + soundto (MSG_ONE, this, CH_TRIGGER_SINGLE, this.noise1, VOL_BASE, ATTEN_NORM, 0); } } @@ -311,8 +311,7 @@ void func_breakable_reset(entity this) func_breakable_behave_restore(this); } -// destructible walls that can be used to trigger target_objective_decrease -spawnfunc(func_breakable) +void func_breakable_setup(entity this) { float n, i; if(!GetResource(this, RES_HEALTH)) @@ -355,6 +354,7 @@ spawnfunc(func_breakable) this.takedamage = DAMAGE_NO; this.event_damage = func_null; this.bot_attack = false; + this.monster_attack = false; } // precache all the models @@ -375,6 +375,9 @@ spawnfunc(func_breakable) this.reset = func_breakable_reset; this.reset(this); + if(this.monster_attack) + IL_PUSH(g_monster_targets, this); + IL_PUSH(g_initforplayer, this); this.init_for_player = func_breakable_init_for_player; @@ -382,7 +385,8 @@ spawnfunc(func_breakable) } // for use in maps with a "model" key set -spawnfunc(misc_breakablemodel) { - spawnfunc_func_breakable(this); -} +spawnfunc(misc_breakablemodel) { func_breakable_setup(this); } + +// destructible walls that can be used to trigger target_objective_decrease +spawnfunc(func_breakable) { func_breakable_setup(this); } #endif