diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-27 21:17:17 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-27 21:17:17 -0400 |
commit | 8634537b8b099f0bb60f15406c2bdfacf715e455 (patch) | |
tree | ca38bacf53e1731f18dd398acabf810fcf0cd50e /src | |
parent | 6341dbf61f8a96fa65c581cf5d552e5beb11cd0c (diff) |
through sub_80EAEF4
Diffstat (limited to 'src')
-rw-r--r-- | src/secret_base.c | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/src/secret_base.c b/src/secret_base.c index f21f85937..7a443e91e 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -44,6 +44,12 @@ struct SecretBaseListMenuBuffer { u8 names[11][32]; }; +struct SecretBaseRecordMixer { + struct SecretBaseRecord *records; + u32 version; + u32 language; +}; + // Static RAM declarations EWRAM_DATA u8 sCurSecretBaseId = 0; EWRAM_DATA u8 gUnknown_0203A01D = 0; @@ -1600,15 +1606,15 @@ void sub_80EAAF4(void) } } -void sub_80EABA4(u32 *args, u8 b) +void sub_80EABA4(struct SecretBaseRecordMixer *mixer, u8 b) { u16 i; for (i = 1; i < 20; i ++) { - if (((struct SecretBaseRecord *)args[0])[i].sbr_field_1_6 == b) + if (mixer->records[i].sbr_field_1_6 == b) { - sub_80EAA64(&((struct SecretBaseRecord *)args[0])[i], args[1], args[2]); + sub_80EAA64(&mixer->records[i], mixer->version, mixer->language); } } } @@ -1758,3 +1764,40 @@ void sub_80EAD94(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases } } } + +void sub_80EAE90(struct SecretBaseRecord *base, u32 version, u32 language) +{ + if (base->sbr_field_1_0 == 1) + { + sub_80EAA64(base, version, language); + ClearSecretBase(base); + } +} + +void sub_80EAEB4(struct SecretBaseRecordMixer *mixer) +{ + u16 i; + + for (i = 0; i < 20; i ++) + { + sub_80EAE90(&mixer[0].records[i], mixer[0].version, mixer[0].language); + sub_80EAE90(&mixer[1].records[i], mixer[1].version, mixer[1].language); + sub_80EAE90(&mixer[2].records[i], mixer[2].version, mixer[2].language); + } +} + +void sub_80EAEF4(struct SecretBaseRecordMixer *mixer) +{ + DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(mixer[0].records, mixer[1].records, mixer[2].records); + sub_80EAD94(gSaveBlock1Ptr->secretBases, mixer[0].records, mixer[1].records, mixer[2].records); + sub_80EAEB4(mixer); + sub_80EAA64(mixer[0].records, mixer[0].version, mixer[0].language); + sub_80EAA64(mixer[1].records, mixer[1].version, mixer[1].language); + sub_80EAA64(mixer[2].records, mixer[2].version, mixer[2].language); + sub_80EABA4(&mixer[0], 1); + sub_80EABA4(&mixer[1], 1); + sub_80EABA4(&mixer[2], 1); + sub_80EABA4(&mixer[0], 0); + sub_80EABA4(&mixer[1], 0); + sub_80EABA4(&mixer[2], 0); +} |