From 3803ab18ecd2986cdca034418c23abd7dfce8705 Mon Sep 17 00:00:00 2001 From: voloved <36523934+voloved@users.noreply.github.com> Date: Sun, 16 Apr 2023 00:34:23 -0400 Subject: [PATCH] Simplified CheckPlayerHasSecretBase --- Make-Multiple-Secret-Bases.md | 44 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/Make-Multiple-Secret-Bases.md b/Make-Multiple-Secret-Bases.md index 591d4d3..6599ec0 100644 --- a/Make-Multiple-Secret-Bases.md +++ b/Make-Multiple-Secret-Bases.md @@ -38,34 +38,32 @@ index 1a4a0ac9cd..3bace19de3 100644 } } -+static u16 GetHighestOwnedSecretBaseIdx(void) -+{ -+ u16 idx; -+ for (idx = SECRET_BASES_COUNT - 1; idx >= 0; idx--) -+ { -+ if (FlagGet(FLAG_SECRET_BASE_OWNED_00 + idx)) -+ return idx + 1; -+ } -+ return 0; -+} -+ void CheckPlayerHasSecretBase(void) { -- // The player's secret base is always the first in the array. -- if (gSaveBlock1Ptr->secretBases[0].secretBaseId) -+ if (GetHighestOwnedSecretBaseIdx() == 0) -+ gSpecialVar_Result = FALSE; -+ else -+ gSpecialVar_Result = TRUE; -+} -+ +- // The player's secret base is always the first in the array. +- if (gSaveBlock1Ptr->secretBases[0].secretBaseId) +- gSpecialVar_Result = TRUE; +- else +- gSpecialVar_Result = FALSE; ++ u16 i; ++ for (i = 0; i < SECRET_BASES_COUNT; i++) ++ { ++ if (FlagGet(FLAG_SECRET_BASE_OWNED_00 + i)){ ++ gSpecialVar_Result = TRUE; ++ return; ++ } ++ } ++ gSpecialVar_Result = FALSE; + } + +void CheckNoMoreSecretBases(void) +{ + if (FindAvailableSecretBaseIndex() == -1) // If we're out of Secret Bases - gSpecialVar_Result = TRUE; - else - gSpecialVar_Result = FALSE; - } ++ gSpecialVar_Result = TRUE; ++ else ++ gSpecialVar_Result = FALSE; ++} ++ @@ -361,18 +381,22 @@ static u8 GetNameLength(const u8 *secretBaseOwnerName) }