- fixed: The newly added checks for printing weapon obituaries failed if the weapon used a puff with a special damage type. To handle this, P_DamageMobj will now pass the damage flags to AActor::Die and from there to ClientObituary so that P_LineAttack - which is a better place to decide this - can flag an attack as coming from a player weapon.

- fixed: The same rules that are used for deciding if a weapon attack took place should be used when checking the PIERCEARMOR flag in P_LineAttack: It should be ignored if the attack doesn't originate from the weapon.

SVN r3649 (trunk)
This commit is contained in:
Christoph Oelckers 2012-05-13 07:54:44 +00:00
commit 3a24790056
12 changed files with 35 additions and 27 deletions

View file

@ -580,7 +580,7 @@ void AMorphedMonster::Destroy ()
Super::Destroy ();
}
void AMorphedMonster::Die (AActor *source, AActor *inflictor)
void AMorphedMonster::Die (AActor *source, AActor *inflictor, int dmgflags)
{
// Dead things don't unmorph
// flags3 |= MF3_STAYMORPHED;
@ -588,11 +588,11 @@ void AMorphedMonster::Die (AActor *source, AActor *inflictor)
// But they can now, so that line above has been
// moved into P_MorphedDeath() and is now set by
// that function if and only if it is needed.
Super::Die (source, inflictor);
Super::Die (source, inflictor, dmgflags);
if (UnmorphedMe != NULL && (UnmorphedMe->flags & MF_UNMORPHED))
{
UnmorphedMe->health = health;
UnmorphedMe->Die (source, inflictor);
UnmorphedMe->Die (source, inflictor, dmgflags);
}
}