Fallback follower

Ring use animation broken atm
This commit is contained in:
Ashnal 2024-05-02 22:25:54 -04:00 committed by James R
parent f85cb8c400
commit 3b27feb533
2 changed files with 17 additions and 6 deletions

View file

@ -338,6 +338,8 @@ void K_HandleFollower(player_t *player)
angle_t destAngle; angle_t destAngle;
INT32 angleDiff; INT32 angleDiff;
boolean fallbackfollower;
if (player->followerready == false) if (player->followerready == false)
{ {
// we aren't ready to perform anything follower related yet. // we aren't ready to perform anything follower related yet.
@ -351,9 +353,14 @@ void K_HandleFollower(player_t *player)
player->followerskin = -1; player->followerskin = -1;
} }
if (player->pflags & PF_AUTORING && player->followerskin == -1)
fallbackfollower = true;
else
fallbackfollower = false;
// don't do anything if we can't have a follower to begin with. // don't do anything if we can't have a follower to begin with.
// (It gets removed under those conditions) // (It gets removed under those conditions)
if (player->spectator || player->followerskin < 0 if (player->spectator || player->followerskin < 0 && !fallbackfollower
|| player->mo == NULL || P_MobjWasRemoved(player->mo)) || player->mo == NULL || P_MobjWasRemoved(player->mo))
{ {
if (player->follower) if (player->follower)
@ -364,6 +371,9 @@ void K_HandleFollower(player_t *player)
} }
// Before we do anything, let's be sure of where we're supposed to be // Before we do anything, let's be sure of where we're supposed to be
if (fallbackfollower)
fl = &followers[K_FollowerAvailable("Goddess")];
else
fl = &followers[player->followerskin]; fl = &followers[player->followerskin];
an = player->mo->angle + fl->atangle; an = player->mo->angle + fl->atangle;
@ -417,6 +427,9 @@ void K_HandleFollower(player_t *player)
} }
// Set follower colour // Set follower colour
if (fallbackfollower)
color = fl->defaultcolor;
else
color = K_GetEffectiveFollowerColor(player->followercolor, fl, player->skincolor, &skins[player->skin]); color = K_GetEffectiveFollowerColor(player->followercolor, fl, player->skincolor, &skins[player->skin]);
if (player->follower == NULL || P_MobjWasRemoved(player->follower)) // follower doesn't exist / isn't valid if (player->follower == NULL || P_MobjWasRemoved(player->follower)) // follower doesn't exist / isn't valid

View file

@ -12663,9 +12663,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (player->autoring if (player->autoring
&& player->follower != NULL && player->follower != NULL
&& P_MobjWasRemoved(player->follower) == false && P_MobjWasRemoved(player->follower) == false)
&& player->followerskin >= 0
&& player->followerskin < numfollowers)
{ {
const follower_t *fl = &followers[player->followerskin]; const follower_t *fl = &followers[player->followerskin];