From bed47c6eff1d11b0f9425acca9867f7b0e4a3253 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 30 Apr 2013 06:48:53 +0000 Subject: [PATCH] - A_KIllSiblings and A_DamageSiblings didn't check for a valid master. SVN r4242 (trunk) --- src/thingdef/thingdef_codeptr.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/thingdef/thingdef_codeptr.cpp b/src/thingdef/thingdef_codeptr.cpp index f17030162..304d57c07 100644 --- a/src/thingdef/thingdef_codeptr.cpp +++ b/src/thingdef/thingdef_codeptr.cpp @@ -2608,11 +2608,14 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_KillSiblings) TThinkerIterator it; AActor *mo; - while ( (mo = it.Next()) ) + if (self->master != NULL) { - if (mo->master == self->master && mo != self) + while ( (mo = it.Next()) ) { - P_DamageMobj(mo, self, self, mo->health, damagetype, DMG_NO_ARMOR | DMG_NO_FACTOR); + if (mo->master == self->master && mo != self) + { + P_DamageMobj(mo, self, self, mo->health, damagetype, DMG_NO_ARMOR | DMG_NO_FACTOR); + } } } } @@ -3501,18 +3504,21 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_DamageSiblings) ACTION_PARAM_INT(amount, 0); ACTION_PARAM_NAME(DamageType, 1); - while ( (mo = it.Next()) ) + if (self->master != NULL) { - if (mo->master == self->master && mo != self) + while ( (mo = it.Next()) ) { - if (amount > 0) + if (mo->master == self->master && mo != self) { - P_DamageMobj(mo, self, self, amount, DamageType, DMG_NO_ARMOR); - } - else if (amount < 0) - { - amount = -amount; - P_GiveBody(mo, amount); + if (amount > 0) + { + P_DamageMobj(mo, self, self, amount, DamageType, DMG_NO_ARMOR); + } + else if (amount < 0) + { + amount = -amount; + P_GiveBody(mo, amount); + } } } }