Merge pull request #255 from DizzyEggg/decomp_record_mixing
Fix pika's Record Mixing PR Also closes #107.
This commit is contained in:
@@ -151,15 +151,14 @@ extern const u8 gText_Space[];
|
||||
extern const u8 gText_BlenderMaxSpeedRecord[];
|
||||
extern const u8 gText_234Players[];
|
||||
|
||||
extern void sub_81978B0(u16);
|
||||
extern void sub_800A418(void);
|
||||
extern u8 sub_800A9D8(void);
|
||||
extern bool8 sub_800A4D8(u8);
|
||||
extern void sub_809882C(u8, u16, u8);
|
||||
extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8);
|
||||
extern void sub_81AABF0(void (*callback)(void));
|
||||
extern void sub_800B4C0(void);
|
||||
extern void ClearLinkCallback(void);
|
||||
extern void sub_8009F8C(void);
|
||||
extern void sub_8153430(void);
|
||||
extern bool8 sub_8153474(void);
|
||||
extern void sub_80EECEC(void);
|
||||
|
||||
@@ -47,7 +47,7 @@ extern void sub_81B9328(void);
|
||||
extern void CB2_ReturnToField(void);
|
||||
|
||||
// this file's functions
|
||||
static void ClearDaycareMonMisc(struct DaycareMiscMon *misc);
|
||||
static void ClearDaycareMonMail(struct DayCareMail *mail);
|
||||
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
|
||||
static u8 GetDaycareCompatibilityScore(struct DayCare *daycare);
|
||||
static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y);
|
||||
@@ -179,13 +179,13 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar
|
||||
{
|
||||
u8 mailId;
|
||||
|
||||
StringCopy(daycareMon->misc.OT_name, gSaveBlock2Ptr->playerName);
|
||||
GetMonNick(mon, daycareMon->misc.monName);
|
||||
StripExtCtrlCodes(daycareMon->misc.monName);
|
||||
daycareMon->misc.gameLanguage = LANGUAGE_ENGLISH;
|
||||
daycareMon->misc.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE);
|
||||
StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName);
|
||||
GetMonNick(mon, daycareMon->mail.monName);
|
||||
StripExtCtrlCodes(daycareMon->mail.monName);
|
||||
daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH;
|
||||
daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE);
|
||||
mailId = GetMonData(mon, MON_DATA_MAIL);
|
||||
daycareMon->misc.mail = gSaveBlock1Ptr->mail[mailId];
|
||||
daycareMon->mail.message = gSaveBlock1Ptr->mail[mailId];
|
||||
TakeMailFromMon(mon);
|
||||
}
|
||||
|
||||
@@ -219,10 +219,10 @@ static void ShiftDaycareSlots(struct DayCare *daycare)
|
||||
daycare->mons[0].mon = daycare->mons[1].mon;
|
||||
ZeroBoxMonData(&daycare->mons[1].mon);
|
||||
|
||||
daycare->mons[0].misc = daycare->mons[1].misc;
|
||||
daycare->mons[0].mail = daycare->mons[1].mail;
|
||||
daycare->mons[0].steps = daycare->mons[1].steps;
|
||||
daycare->mons[1].steps = 0;
|
||||
ClearDaycareMonMisc(&daycare->mons[1].misc);
|
||||
ClearDaycareMonMail(&daycare->mons[1].mail);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,10 +277,10 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
|
||||
}
|
||||
|
||||
gPlayerParty[PARTY_SIZE - 1] = pokemon;
|
||||
if (daycareMon->misc.mail.itemId)
|
||||
if (daycareMon->mail.message.itemId)
|
||||
{
|
||||
GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycareMon->misc.mail);
|
||||
ClearDaycareMonMisc(&daycareMon->misc);
|
||||
GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycareMon->mail.message);
|
||||
ClearDaycareMonMail(&daycareMon->mail);
|
||||
}
|
||||
|
||||
ZeroBoxMonData(&daycareMon->mon);
|
||||
@@ -364,23 +364,23 @@ u8 GetNumLevelsGainedFromDaycare(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ClearDaycareMonMisc(struct DaycareMiscMon *misc)
|
||||
static void ClearDaycareMonMail(struct DayCareMail *mail)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < OT_NAME_LENGTH + 1; i++)
|
||||
misc->OT_name[i] = 0;
|
||||
mail->OT_name[i] = 0;
|
||||
for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
|
||||
misc->monName[i] = 0;
|
||||
mail->monName[i] = 0;
|
||||
|
||||
ClearMailStruct(&misc->mail);
|
||||
ClearMailStruct(&mail->message);
|
||||
}
|
||||
|
||||
static void ClearDaycareMon(struct DaycareMon *daycareMon)
|
||||
{
|
||||
ZeroBoxMonData(&daycareMon->mon);
|
||||
daycareMon->steps = 0;
|
||||
ClearDaycareMonMisc(&daycareMon->misc);
|
||||
ClearDaycareMonMail(&daycareMon->mail);
|
||||
}
|
||||
|
||||
static void ClearAllDaycareData(struct DayCare *daycare)
|
||||
|
||||
@@ -158,7 +158,7 @@ static void sub_8122804(struct EasyChatPair *s, u16 b, u8 c)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_812287C(void *a, u32 b, u8 unused)
|
||||
void ReceiveEasyChatPairsData(void *a, u32 b, u8 unused)
|
||||
{
|
||||
u16 i, j, r3, players;
|
||||
struct EasyChatPair *buffer1, *buffer2, *src, *dst, *foo_of_buffer2;
|
||||
|
||||
@@ -390,13 +390,13 @@ static bool8 sub_807158C(struct DayCare *daycare, u8 daycareId)
|
||||
struct DaycareMon *daycareMon = &daycare->mons[daycareId];
|
||||
|
||||
GetBoxMonNick(&daycareMon->mon, nick);
|
||||
if (daycareMon->misc.mail.itemId != 0
|
||||
&& (StringCompareWithoutExtCtrlCodes(nick, daycareMon->misc.monName) != 0
|
||||
|| StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->misc.OT_name) != 0))
|
||||
if (daycareMon->mail.message.itemId != 0
|
||||
&& (StringCompareWithoutExtCtrlCodes(nick, daycareMon->mail.monName) != 0
|
||||
|| StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->mail.OT_name) != 0))
|
||||
{
|
||||
StringCopy(gStringVar1, nick);
|
||||
TVShowConvertInternationalString(gStringVar2, daycareMon->misc.OT_name, daycareMon->misc.gameLanguage);
|
||||
TVShowConvertInternationalString(gStringVar3, daycareMon->misc.monName, daycareMon->misc.monLanguage);
|
||||
TVShowConvertInternationalString(gStringVar2, daycareMon->mail.OT_name, daycareMon->mail.gameLanguage);
|
||||
TVShowConvertInternationalString(gStringVar3, daycareMon->mail.monName, daycareMon->mail.monLanguage);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
@@ -801,26 +801,26 @@ void sub_818E564(void)
|
||||
EnableBothScriptContexts();
|
||||
}
|
||||
|
||||
void sub_818E570(const struct LilycoveLadyQuiz *quiz)
|
||||
void sub_818E570(const LilycoveLady *lilycoveLady)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
if (quiz->unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ)
|
||||
if (lilycoveLady->quiz.unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ)
|
||||
{
|
||||
for (i = 0; i < 4; i ++)
|
||||
{
|
||||
if (quiz->unk_02c != gUnknown_0203CD68->unk_02b)
|
||||
if (lilycoveLady->quiz.unk_02c != gUnknown_0203CD68->unk_02b)
|
||||
{
|
||||
break;
|
||||
}
|
||||
gUnknown_0203CD68->unk_02b = Random() % 16;
|
||||
}
|
||||
if (quiz->unk_02c == gUnknown_0203CD68->unk_02b)
|
||||
if (lilycoveLady->quiz.unk_02c == gUnknown_0203CD68->unk_02b)
|
||||
{
|
||||
gUnknown_0203CD68->unk_02b = (gUnknown_0203CD68->unk_02b + 1) % 16;
|
||||
}
|
||||
gUnknown_0203CD68->unk_02c = quiz->unk_02c;
|
||||
gUnknown_0203CD68->unk_02c = lilycoveLady->quiz.unk_02c;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -798,7 +798,7 @@ bool32 sub_800A040(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_800A064(void)
|
||||
bool32 Link_AnyPartnersPlayingRubyOrSapphire(void)
|
||||
{
|
||||
if (sub_8009FF8(VERSION_RUBY, VERSION_SAPPHIRE) >= 0)
|
||||
{
|
||||
|
||||
@@ -387,7 +387,7 @@ static void ResetStorytellerFlag(void)
|
||||
Storyteller_ResetFlag();
|
||||
}
|
||||
|
||||
void ResetMauvilleOldManFlag(void) // ResetMauvilleOldManFlag
|
||||
void ResetMauvilleOldManFlag(void)
|
||||
{
|
||||
switch (GetCurrentMauvilleOldMan())
|
||||
{
|
||||
@@ -793,11 +793,11 @@ void sub_8120C0C(union OldMan * oldMan, u32 r8, u32 r7, u32 r3)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8120CD0(union OldMan * oldMan, u32 unused, u32 a2)
|
||||
void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 version, u32 language)
|
||||
{
|
||||
u8 sp00[8];
|
||||
s32 i;
|
||||
if (oldMan->common.id == MAUVILLE_MAN_STORYTELLER && a2 == LANGUAGE_JAPANESE)
|
||||
if (oldMan->common.id == MAUVILLE_MAN_STORYTELLER && language == LANGUAGE_JAPANESE)
|
||||
{
|
||||
struct MauvilleManStoryteller * storyteller = &oldMan->storyteller;
|
||||
|
||||
@@ -816,9 +816,10 @@ void sub_8120CD0(union OldMan * oldMan, u32 unused, u32 a2)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 version, u32 language)
|
||||
{
|
||||
u32 r2 = (r1 == LANGUAGE_JAPANESE || r1 == LANGUAGE_ENGLISH) ? 1 : 0;
|
||||
bool32 isRuby = (version == VERSION_SAPPHIRE || version == VERSION_RUBY);
|
||||
|
||||
switch (oldMan->common.id)
|
||||
{
|
||||
case MAUVILLE_MAN_TRADER:
|
||||
@@ -826,7 +827,7 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
struct MauvilleOldManTrader * trader = &oldMan->trader;
|
||||
s32 i;
|
||||
|
||||
if (r2)
|
||||
if (isRuby)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
@@ -837,7 +838,7 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
trader->language[i] = LANGUAGE_JAPANESE;
|
||||
}
|
||||
else
|
||||
trader->language[i] = r6;
|
||||
trader->language[i] = language;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -858,12 +859,12 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
struct MauvilleManStoryteller * storyteller = &oldMan->storyteller;
|
||||
s32 i;
|
||||
|
||||
if (r2)
|
||||
if (isRuby)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (storyteller->gameStatIDs[i] != 0)
|
||||
storyteller->language[i] = r6;
|
||||
storyteller->language[i] = language;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -872,9 +873,9 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
{
|
||||
struct MauvilleManBard * bard = &oldMan->bard;
|
||||
|
||||
if (r2)
|
||||
if (isRuby)
|
||||
{
|
||||
bard->language = r6;
|
||||
bard->language = language;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -882,9 +883,9 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
{
|
||||
struct MauvilleManHipster * hipster = &oldMan->hipster;
|
||||
|
||||
if (r2)
|
||||
if (isRuby)
|
||||
{
|
||||
hipster->language = r6;
|
||||
hipster->language = language;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -892,9 +893,9 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
|
||||
{
|
||||
struct MauvilleManGiddy * giddy = &oldMan->giddy;
|
||||
|
||||
if (r2)
|
||||
if (isRuby)
|
||||
{
|
||||
giddy->language = r6;
|
||||
giddy->language = language;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -119,11 +119,10 @@ void ClearAllContestWinnerPics(void)
|
||||
void sub_8084400(void)
|
||||
{
|
||||
// probably clearing one struct for battle frontier
|
||||
CpuFill32(0, gSaveBlock2Ptr->field_64C, 2272);
|
||||
CpuFill32(0, &gSaveBlock2Ptr->battleTower, 2272);
|
||||
|
||||
// those look like strings
|
||||
gSaveBlock2Ptr->field_EE1 = 0xFF;
|
||||
gSaveBlock2Ptr->field_EE9 = 0xFF;
|
||||
gSaveBlock2Ptr->field_EE1[0][0] = EOS;
|
||||
gSaveBlock2Ptr->field_EE1[1][0] = EOS;
|
||||
}
|
||||
|
||||
void WarpToTruck(void)
|
||||
|
||||
2286
src/record_mixing.c
2286
src/record_mixing.c
File diff suppressed because it is too large
Load Diff
@@ -1673,7 +1673,7 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers)
|
||||
sub_80EABA4(&mixers[2], 0);
|
||||
}
|
||||
|
||||
void sub_80EAF80(void *records, size_t recordSize, u8 linkIdx)
|
||||
void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx)
|
||||
{
|
||||
struct SecretBaseRecordMixer mixers[3];
|
||||
u16 i;
|
||||
|
||||
4
src/tv.c
4
src/tv.c
@@ -3606,7 +3606,7 @@ void sub_80F01B8(void)
|
||||
FlagSet(0x396);
|
||||
}
|
||||
|
||||
void sub_80F01E8(void *src, u32 size, u8 masterIdx)
|
||||
void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx)
|
||||
{
|
||||
u8 i;
|
||||
u16 version;
|
||||
@@ -4434,7 +4434,7 @@ static void sub_80F0C04(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F0C7C(void *src, u32 size, u8 masterIdx)
|
||||
void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx)
|
||||
{
|
||||
u8 i;
|
||||
PokeNews (*rmBuffer2)[4][16];
|
||||
|
||||
Reference in New Issue
Block a user