summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-10-27 20:57:46 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-10-27 20:57:46 -0400
commit5aaa4c099b077df27ae0a04369c8493a5923334b (patch)
treebdc315c73eb026dca3f9de5e01e65d0a55e23899 /src
parentd60ae05cbb801fe9e94de7f520e9726aec614679 (diff)
DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords
Diffstat (limited to 'src')
-rw-r--r--src/secret_base.c51
1 files changed, 46 insertions, 5 deletions
diff --git a/src/secret_base.c b/src/secret_base.c
index 0434190d6..508ea429f 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -79,7 +79,7 @@ extern const struct YesNoFuncTable gUnknown_0858D058;
// .text
-void sub_80E8AF0(struct SecretBaseRecord *sbr)
+void ClearSecretBase(struct SecretBaseRecord *sbr)
{
u16 i;
@@ -96,7 +96,7 @@ void ResetSecretBases(void)
for (i = 0; i < 20; i ++)
{
- sub_80E8AF0(&gSaveBlock1Ptr->secretBases[i]);
+ ClearSecretBase(&gSaveBlock1Ptr->secretBases[i]);
}
}
@@ -881,7 +881,7 @@ void sub_80E9A90(void)
u16 sbr_e;
sbr_e = gSaveBlock1Ptr->secretBases[0].sbr_field_e;
- sub_80E8AF0(&gSaveBlock1Ptr->secretBases[0]);
+ ClearSecretBase(&gSaveBlock1Ptr->secretBases[0]);
gSaveBlock1Ptr->secretBases[0].sbr_field_e = sbr_e;
sub_80E9728();
}
@@ -926,7 +926,7 @@ void sub_80E9B70(void)
sub_80E9AD0();
IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
sbr_e = gSaveBlock1Ptr->secretBases[0].sbr_field_e;
- sub_80E8AF0(&gSaveBlock1Ptr->secretBases[0]);
+ ClearSecretBase(&gSaveBlock1Ptr->secretBases[0]);
gSaveBlock1Ptr->secretBases[0].sbr_field_e = sbr_e;
}
@@ -1613,7 +1613,7 @@ void sub_80EABA4(u32 *args, u8 b)
}
}
-bool8 sub_80EABDC(struct SecretBaseRecord *secretBase)
+bool8 DoesSecretBaseBelongToPlayer(struct SecretBaseRecord *secretBase)
{
u8 i;
@@ -1638,3 +1638,44 @@ bool8 sub_80EABDC(struct SecretBaseRecord *secretBase)
return TRUE;
}
+
+void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBaseRecord *basesA, struct SecretBaseRecord *basesB, struct SecretBaseRecord *basesC)
+{
+ u8 i;
+ u8 sbFlags = 0x0;
+
+ for (i = 0; i < 20; i++)
+ {
+ if (!(sbFlags & 0x1)) // 001
+ {
+ if (DoesSecretBaseBelongToPlayer(&basesA[i]) == TRUE)
+ {
+ ClearSecretBase(&basesA[i]);
+ sbFlags |= 1;
+ }
+ }
+
+ if (!(sbFlags & 0x2)) // 010
+ {
+ if (DoesSecretBaseBelongToPlayer(&basesB[i]) == TRUE)
+ {
+ ClearSecretBase(&basesB[i]);
+ sbFlags |= 2;
+ }
+ }
+
+ if (!(sbFlags & 0x4)) // 100
+ {
+ if (DoesSecretBaseBelongToPlayer(&basesC[i]) == TRUE)
+ {
+ ClearSecretBase(&basesC[i]);
+ sbFlags |= 4;
+ }
+ }
+
+ if (sbFlags == 0x7) // 111
+ {
+ break;
+ }
+ }
+}