diff --git a/src/g_game.cpp b/src/g_game.cpp index a967577c9b..e0752d96ad 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -1208,6 +1208,11 @@ void G_PlayerFinishLevel (int player, EFinishLevelType mode, int flags) p = &players[player]; + if (p->morphTics != 0) + { // Undo morph + P_UndoPlayerMorph (p, p, 0, true); + } + // Strip all current powers, unless moving in a hub and the power is okay to keep. item = p->mo->Inventory; while (item != NULL) @@ -1276,11 +1281,6 @@ void G_PlayerFinishLevel (int player, EFinishLevelType mode, int flags) } } - if (p->morphTics) - { // Undo morph - P_UndoPlayerMorph (p, p, 0, true); - } - // Resets player health to default if not dead. if ((flags & CHANGELEVEL_RESETHEALTH) && p->playerstate != PST_DEAD) {