- 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;
if (actor->player || spawntype == NULL ||
if (actor == NULL || actor->player || spawntype == NULL ||
actor->flags3 & MF3_DONTMORPH ||
!(actor->flags3 & MF3_ISMONSTER) ||
!spawntype->IsDescendantOf (RUNTIME_CLASS(AMorphedMonster)))

View File

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