Update to ZDoom r2024:

- Added a DMG_NO_FACTOR flag for P_DamageMobj(). A_KillChildren, A_KillMaster,
  and A_KillSiblings now use it.
- Added a damage type parameter to A_KillChildren, A_KillMaster, and
  A_KillSiblings. 


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@658 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2009-12-13 09:47:09 +00:00
parent 46af59e383
commit 02df598825
5 changed files with 37 additions and 24 deletions

View file

@ -1951,11 +1951,14 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_JumpIf)
// A_KillMaster
//
//===========================================================================
DEFINE_ACTION_FUNCTION(AActor, A_KillMaster)
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_KillMaster)
{
ACTION_PARAM_START(1);
ACTION_PARAM_NAME(damagetype, 0);
if (self->master != NULL)
{
P_DamageMobj(self->master, self, self, self->master->health, NAME_None, DMG_NO_ARMOR);
P_DamageMobj(self->master, self, self, self->master->health, damagetype, DMG_NO_ARMOR | DMG_NO_FACTOR);
}
}
@ -1964,16 +1967,19 @@ DEFINE_ACTION_FUNCTION(AActor, A_KillMaster)
// A_KillChildren
//
//===========================================================================
DEFINE_ACTION_FUNCTION(AActor, A_KillChildren)
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_KillChildren)
{
ACTION_PARAM_START(1);
ACTION_PARAM_NAME(damagetype, 0);
TThinkerIterator<AActor> it;
AActor * mo;
AActor *mo;
while ( (mo = it.Next()) )
{
if (mo->master == self)
{
P_DamageMobj(mo, self, self, mo->health, NAME_None, DMG_NO_ARMOR);
P_DamageMobj(mo, self, self, mo->health, damagetype, DMG_NO_ARMOR | DMG_NO_FACTOR);
}
}
}
@ -1983,16 +1989,19 @@ DEFINE_ACTION_FUNCTION(AActor, A_KillChildren)
// A_KillSiblings
//
//===========================================================================
DEFINE_ACTION_FUNCTION(AActor, A_KillSiblings)
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_KillSiblings)
{
ACTION_PARAM_START(1);
ACTION_PARAM_NAME(damagetype, 0);
TThinkerIterator<AActor> it;
AActor * mo;
AActor *mo;
while ( (mo = it.Next()) )
{
if (mo->master == self->master && mo != self)
{
P_DamageMobj(mo, self, self, mo->health, NAME_None, DMG_NO_ARMOR);
P_DamageMobj(mo, self, self, mo->health, damagetype, DMG_NO_ARMOR | DMG_NO_FACTOR);
}
}
}