diff --git a/src/p_saveg.c b/src/p_saveg.c index 37f6dd80b..16863ae33 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -3180,6 +3180,13 @@ static void P_RelinkPointers(void) if (!P_SetTarget(&mobj->player->awayviewmobj, P_FindNewPosition(temp))) CONS_Debug(DBG_GAMELOGIC, "awayviewmobj not found on %d\n", mobj->type); } + if (mobj->player->follower) + { + temp = (UINT32)(size_t)mobj->player->follower; + mobj->player->follower = NULL; + if (!P_SetTarget(&mobj->player->follower, P_FindNewPosition(temp))) + CONS_Debug(DBG_GAMELOGIC, "follower not found on %d\n", mobj->type); + } if (mobj->player->nextwaypoint) { temp = (UINT32)(size_t)mobj->player->nextwaypoint; diff --git a/src/r_things.c b/src/r_things.c index 369bdfafe..5a428afc8 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -3099,7 +3099,7 @@ void SetFollower(INT32 playernum, INT32 skinnum) } P_RemoveMobj(player->follower); - player->follower = NULL; + P_SetTarget(&player->follower, NULL); } player->followerskin = skinnum;