From f7c55c0936246732db3e91a46cc7563f387e34de Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Tue, 9 Apr 2013 22:40:27 +0000 Subject: [PATCH] - Do copy a monster's special to its morphed version so that it can be properly restored when it unmorphs. SVN r4212 (trunk) --- src/g_shared/a_morph.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/g_shared/a_morph.cpp b/src/g_shared/a_morph.cpp index 8b76e2f66..211718ae8 100644 --- a/src/g_shared/a_morph.cpp +++ b/src/g_shared/a_morph.cpp @@ -394,8 +394,8 @@ bool P_MorphMonster (AActor *actor, const PClass *spawntype, int duration, int s morphed->MorphStyle = style; morphed->MorphExitFlash = (exit_flash) ? exit_flash : RUNTIME_CLASS(ATeleportFog); morphed->FlagsSave = actor->flags & ~MF_JUSTHIT; - //morphed->special = actor->special; - //memcpy (morphed->args, actor->args, sizeof(actor->args)); + morphed->special = actor->special; + memcpy (morphed->args, actor->args, sizeof(actor->args)); morphed->CopyFriendliness (actor, true); morphed->flags |= actor->flags & MF_SHADOW; morphed->flags3 |= actor->flags3 & MF3_GHOST; @@ -405,6 +405,7 @@ bool P_MorphMonster (AActor *actor, const PClass *spawntype, int duration, int s } morphed->AddToHash (); actor->RemoveFromHash (); + actor->special = 0; actor->tid = 0; actor->flags &= ~(MF_SOLID|MF_SHOOTABLE); actor->flags |= MF_UNMORPHED;