NSMonster: Add TriggerCondition for death of an NSMonster.

This commit is contained in:
Marco Cawthorne 2022-01-10 13:18:25 -08:00
parent e4b7d55b3c
commit 11c37f789d
Signed by: eukara
GPG Key ID: C196CD8BA993248A
2 changed files with 25 additions and 0 deletions

View File

@ -259,6 +259,10 @@ class NSMonster:NSSurfacePropEntity
virtual int(void) AnimRun;
virtual void(float) AnimPlay;
/* TriggerTarget/Condition */
virtual int(void) GetTriggerCondition;
virtual void(void) TriggerTargets;
virtual float(entity, float) SendEntity;
#else
virtual void(void) customphysics;

View File

@ -15,6 +15,24 @@
*/
#ifdef SERVER
int
NSMonster::GetTriggerCondition(void)
{
return m_iTriggerCondition;
}
void
NSMonster::TriggerTargets(void)
{
for (entity f = world; (f = find(f, ::targetname, m_strTriggerTarget));) {
NSTrigger trigger = (NSTrigger)f;
if (trigger.Trigger != __NULL__) {
trigger.Trigger(this, TRIG_TOGGLE);
}
}
}
void
NSMonster::Save(float handle)
{
@ -560,6 +578,9 @@ NSMonster::Death(void)
SetSolid(SOLID_CORPSE);
health = 50 + health;
style = MONSTER_DEAD;
if (GetTriggerCondition() == MTRIG_DEATH)
TriggerTargets();
}
void