From 0d203f5dbbe5f22cf192437541f30559a7227782 Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 23 Apr 2023 21:31:51 +0100 Subject: [PATCH] K_GetEffectiveFollowerColor: Handle playercolor being default/NONE in a cleaner, more direct fashion Fixes the FOLLOWERCOLOR_OPPOSITE handling being wrong in this circumstance --- src/k_follower.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/k_follower.c b/src/k_follower.c index df9735000..aa3b0cef1 100644 --- a/src/k_follower.c +++ b/src/k_follower.c @@ -250,17 +250,23 @@ UINT16 K_GetEffectiveFollowerColor(UINT16 followercolor, follower_t *follower, U return followercolor; } + if (playercolor == SKINCOLOR_NONE) // get default color + { + if (playerskin == NULL) + { + // Nothing from this line down is valid if playerskin is invalid, just guess Eggman? + playerskin = &skins[0]; + } + + playercolor = playerskin->prefcolor; + } + if (followercolor == FOLLOWERCOLOR_OPPOSITE) // "Opposite" { return skincolors[playercolor].invcolor; } // "Match" - if (playercolor == SKINCOLOR_NONE && playerskin != NULL) - { - return playerskin->prefcolor; - } - return playercolor; }