- Fixed: PCD_MORPHACTOR and P_MorphMonster() needed NULL pointer checks.

SVN r4141 (trunk)
This commit is contained in:
Randy Heit 2013-02-19 01:51:07 +00:00
parent e434ccc3f6
commit 87dbfb68e9
2 changed files with 7 additions and 18 deletions

View file

@ -366,7 +366,7 @@ bool P_MorphMonster (AActor *actor, const PClass *spawntype, int duration, int s
{ {
AMorphedMonster *morphed; AMorphedMonster *morphed;
if (actor->player || spawntype == NULL || if (actor == NULL || actor->player || spawntype == NULL ||
actor->flags3 & MF3_DONTMORPH || actor->flags3 & MF3_DONTMORPH ||
!(actor->flags3 & MF3_ISMONSTER) || !(actor->flags3 & MF3_ISMONSTER) ||
!spawntype->IsDescendantOf (RUNTIME_CLASS(AMorphedMonster))) !spawntype->IsDescendantOf (RUNTIME_CLASS(AMorphedMonster)))

View file

@ -7175,19 +7175,13 @@ scriptwait:
if (tag == 0) if (tag == 0)
{ {
if (activator->player) if (activator != NULL && activator->player)
{ {
if (P_MorphPlayer(activator->player, activator->player, playerclass, duration, style, morphflash, unmorphflash)) changes += P_MorphPlayer(activator->player, activator->player, playerclass, duration, style, morphflash, unmorphflash);
{
changes++;
}
} }
else else
{ {
if (P_MorphMonster(activator, monsterclass, duration, style, morphflash, unmorphflash)) changes += P_MorphMonster(activator, monsterclass, duration, style, morphflash, unmorphflash);
{
changes++;
}
} }
} }
else else
@ -7199,17 +7193,12 @@ scriptwait:
{ {
if (actor->player) if (actor->player)
{ {
if (P_MorphPlayer(activator->player, actor->player, playerclass, duration, style, morphflash, unmorphflash)) changes += P_MorphPlayer(activator == NULL ? NULL : activator->player,
{ actor->player, playerclass, duration, style, morphflash, unmorphflash);
changes++;
}
} }
else else
{ {
if (P_MorphMonster(actor, monsterclass, duration, style, morphflash, unmorphflash)) changes += P_MorphMonster(actor, monsterclass, duration, style, morphflash, unmorphflash);
{
changes++;
}
} }
} }
} }