this.origin_z = floorZ;
}
_setmodel(this, this.mdl_dead);
+ ApplyMinMaxScaleAngles(this);
this.effects &= ~EF_NODRAW;
}
void func_breakable_look_restore(entity this)
{
_setmodel(this, this.mdl);
+ ApplyMinMaxScaleAngles(this);
this.effects &= ~EF_NODRAW;
if(this.mdl_dead != "") // only do this if we use mdl_dead, to behave better with misc_follow
{
this.health = this.max_health;
this.takedamage = DAMAGE_NO;
+ if(this.bot_attack)
+ IL_REMOVE(g_bot_targets, this);
this.bot_attack = false;
this.event_damage = func_null;
this.state = 1;
stopsound (this, CH_TRIGGER_SINGLE);
}
+void func_breakable_destroy(entity this, entity actor, entity trigger);
void func_breakable_behave_restore(entity this)
{
this.health = this.max_health;
if(!(this.spawnflags & 4))
{
this.takedamage = DAMAGE_AIM;
+ if(!this.bot_attack)
+ IL_PUSH(g_bot_targets, this);
this.bot_attack = true;
this.event_damage = func_breakable_damage;
}
+ if(this.spawnflags & 4)
+ this.use = func_breakable_destroy; // don't need to set it usually, as .use isn't reset
this.state = 0;
this.nextthink = 0; // cancel auto respawn
func_breakable_colormod(this);
this.reset = func_breakable_reset;
this.reset(this);
- this.init_for_player_needed = 1;
+ IL_PUSH(g_initforplayer, this);
this.init_for_player = func_breakable_init_for_player;
CSQCMODEL_AUTOINIT(this);