diff options
Diffstat (limited to 'src/matsuda_debug_menu.c')
-rw-r--r-- | src/matsuda_debug_menu.c | 228 |
1 files changed, 106 insertions, 122 deletions
diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c index 131369e91..6177d9edb 100644 --- a/src/matsuda_debug_menu.c +++ b/src/matsuda_debug_menu.c @@ -10,8 +10,8 @@ #include "string_util.h" #include "task.h" #include "text.h" - -#define BIT(n) (1 << (n)) +#include "contest.h" +#include "matsuda_debug_menu.h" extern u8 gUnknown_0203856C; extern u8 gUnknown_0203857D[][64]; @@ -63,24 +63,6 @@ extern u8* gMatsudaDebugMenuTextList2[]; extern u8* gMatsudaDebugMenuTextList3[]; extern u8 gMatsudaDebugMenuContestTopLeft[][2]; -struct ContestPokemon -{ - /* 0x00 */ u16 species; - /* 0x02 */ u8 nickname[POKEMON_NAME_LENGTH]; - /* 0x0D */ u8 trainerName[8]; - /* 0x15 */ u8 filler15[9]; - /* 0x1E */ u16 moves[4]; // moves - /* 0x26 */ u8 cool; // cool - /* 0x27 */ u8 beauty; // beauty - /* 0x28 */ u8 cute; // cute - /* 0x29 */ u8 smart; // smart - /* 0x2A */ u8 tough; // tough - /* 0x2B */ u8 sheen; // sheen - /* 0x2C */ u8 filler2C[20]; -}; - -extern struct ContestPokemon gContestMons[]; - extern bool8 gReceivedRemoteLinkPlayers; extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; @@ -103,7 +85,6 @@ static void sub_80AA10C(void); static void sub_80AA5BC(u8); static void sub_80AA614(u8, u8); static void sub_80AAD08(struct Sprite *, s8); -extern void sub_80AB184(void); extern void sub_80AB47C(void); extern int sub_80B2A7C(u8); //Don't know return type size @@ -120,8 +101,8 @@ u8 unref_sub_80A9B28(void) static bool8 sub_80A9B78(void) { s8 choice = ProcessMenuInput(); - - switch(choice) + + switch (choice) { case -2: return FALSE; @@ -143,11 +124,11 @@ s8 MatsudaDebugMenu_ContestResults(void) static void sub_80A9BE4(u8 taskId) { - if(!gPaletteFade.active) + if (!gPaletteFade.active) { DestroyTask(taskId); - if(!(gIsLinkContest & 1)) + if (!(gIsLinkContest & 1)) sub_80AF668(); sub_80C2358(); @@ -171,7 +152,7 @@ s8 MatsudaDebugMenu_CommTest(void) { u8 newTaskId; u8 newTaskId2; - + newTaskId = CreateTask(sub_80A9E3C, 0); SetTaskFuncWithFollowupFunc(newTaskId, sub_80A9E3C, sub_80A9C98); newTaskId2 = CreateTask(sub_80A9E04, 1); @@ -198,7 +179,7 @@ static void sub_80A9CDC(u8 taskId) static void sub_80A9CF8(u8 taskId) { - if(gReceivedRemoteLinkPlayers == FALSE) + if (gReceivedRemoteLinkPlayers == FALSE) { DestroyTask(gTasks[taskId].data[10]); DestroyTask(taskId); @@ -217,7 +198,7 @@ static void sub_80A9D58(u8 taskId) int i; u8 dest[4]; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) dest[i] = gTasks[taskId].data[5 + i]; gUnknown_0203869B = sub_80C4B34(dest); @@ -240,17 +221,17 @@ static void sub_80A9DD8(u8 taskId) static void sub_80A9E04(u8 taskId) { - if(gMain.newKeys == 2) + if (gMain.newKeys == 2) gTasks[(u8)gTasks[taskId].data[10]].func = sub_80A9D30; } static void sub_80A9E3C(u8 taskId) { u8 i; - + OpenLink(); - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) gBlockRecvBuffer[i][0] = 255; gTasks[taskId].data[0] = 0; @@ -261,15 +242,15 @@ static void sub_80A9E80(u8 taskId) { TaskFunc func; - if(gTasks[taskId].data[0] < 10) + if (gTasks[taskId].data[0] < 10) gTasks[taskId].data[0]++; else { - if(GetLinkPlayerCount_2() > 3) + if (GetLinkPlayerCount_2() > 3) { gTasks[taskId].data[0] = 0; - - if(IsLinkMaster()) + + if (IsLinkMaster()) { func = sub_80A9ED8; gTasks[taskId].func = (TaskFunc)func; @@ -286,7 +267,7 @@ static void sub_80A9E80(u8 taskId) static void sub_80A9ED8(u8 taskId) { gTasks[taskId].data[0] = gTasks[taskId].data[0] + 1; - if((gTasks[taskId].data[0]) == 101) + if ((gTasks[taskId].data[0]) == 101) { sub_8007F4C(); gTasks[taskId].data[0] = 0; @@ -296,10 +277,10 @@ static void sub_80A9ED8(u8 taskId) static void sub_80A9F10(u8 taskId) { - if(gReceivedRemoteLinkPlayers) + if (gReceivedRemoteLinkPlayers) { gContestPlayerMonIndex = GetMultiplayerId(); - if(GetLinkPlayerCount() == 4) + if (GetLinkPlayerCount() == 4) { gIsLinkContest = 1; SwitchTaskToFollowupFunc(taskId); @@ -334,18 +315,18 @@ static void sub_80A9FE4(void) u8 *addr; u32 i; u8 ptr[5]; - + memcpy(ptr, gMatsudaDebugMenu_UnknownByteArray, 5); addr = (void *)VRAM; i = VRAM_SIZE; - while(1) + while (1) { DmaFill32(3, 0, addr, 0x1000); addr += 0x1000; i -= 0x1000; - if(i <= 0x1000) + if (i <= 0x1000) { DmaFill32(3, 0, addr, i); break; @@ -361,7 +342,7 @@ static void sub_80AA064(void) BuildOamBuffer(); RunTasks(); UpdatePaletteFade(); - if(gMain.newKeys == 4) + if (gMain.newKeys == 4) SetMainCallback2(sub_805469C); } @@ -395,21 +376,21 @@ static void sub_80AA10C(void) ResetSpriteData(); ResetTasks(); FreeAllSpritePalettes(); - sub_80A9FE4(); + sub_80A9FE4(); SetVBlankCallback(sub_80AA090); SetMainCallback2(sub_80AA064); gPaletteFade.bufferTransferDisabled = 0; gUnknown_02038694 = 0; - if(!(gContestMons[0].nickname[0])) + if (!(gContestMons[0].nickname[0])) sub_80AE398(0, 0); sub_80AE098(gUnknown_02038694); - for(i = 0; i < 6; i++) + for (i = 0; i < 6; i++) { - sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i], - (0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0], + sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i], + (0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0], gMatsudaDebugMenuContestTopLeft[i][1]); } @@ -431,7 +412,7 @@ static void sub_80AA10C(void) gSprites[spriteId].data3 = zero; // only this assignment of zero is necessary. other replacements of 0 with zero do not change the asm, compiler will treat it the same. } -void sub_80AA280(u8 var) +void sub_80AA280(u8 var) // no? { u8 i; @@ -439,9 +420,9 @@ void sub_80AA280(u8 var) StringCopy(unk_2000000, gMatsudaDebugMenu_StartText); StringAppend(unk_2000000, &gUnknown_0203857D[var][0]); - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - if(var == i) + if (var == i) { sub_8003460(&gMenuWindow, unk_2000000, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]); } @@ -499,49 +480,49 @@ static void sub_80AA4F0(u8 var1, u8 var2) static void sub_80AA5BC(u8 var) { - sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12); + sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12); } void sub_80AA5E8(u8 var) { - sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4); + sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4); } static void sub_80AA614(u8 var1, u8 var2) { - u16 var = sub_80AE770(var1, var2); + u16 var = sub_80AE770(var1, var2); - ConvertIntToDecimalStringN(unk_2000000, var, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0xE2, 3, 0xC); + ConvertIntToDecimalStringN(unk_2000000, var, STR_CONV_MODE_RIGHT_ALIGN, 3); + sub_8003460(&gMenuWindow, unk_2000000, 0xE2, 3, 0xC); } void sub_80AA658(u8 var) { - u8 i; + u8 i; - sub_80AA340(var); - sub_80AA388(var); - sub_80AA3D0(var); - sub_80AA418(var); - sub_80AA460(var); - sub_80AA4A8(var); + sub_80AA340(var); + sub_80AA388(var); + sub_80AA3D0(var); + sub_80AA418(var); + sub_80AA460(var); + sub_80AA4A8(var); - for(i = 0; i < 4; i++) - sub_80AA4F0(var, i); + for (i = 0; i < 4; i++) + sub_80AA4F0(var, i); } void SetDebugMonForContest(void) { - SetMonData(&gPlayerParty[0], MON_DATA_COOL, &gContestMons[gContestPlayerMonIndex].cool); - SetMonData(&gPlayerParty[0], MON_DATA_CUTE, &gContestMons[gContestPlayerMonIndex].cute); - SetMonData(&gPlayerParty[0], MON_DATA_BEAUTY, &gContestMons[gContestPlayerMonIndex].beauty); - SetMonData(&gPlayerParty[0], MON_DATA_SMART, &gContestMons[gContestPlayerMonIndex].smart); - SetMonData(&gPlayerParty[0], MON_DATA_TOUGH, &gContestMons[gContestPlayerMonIndex].tough); - SetMonData(&gPlayerParty[0], MON_DATA_SHEEN, &gContestMons[gContestPlayerMonIndex].sheen); - SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[0]); - SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[1]); - SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[2]); - SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[3]); + SetMonData(&gPlayerParty[0], MON_DATA_COOL, &gContestMons[gContestPlayerMonIndex].cool); + SetMonData(&gPlayerParty[0], MON_DATA_CUTE, &gContestMons[gContestPlayerMonIndex].cute); + SetMonData(&gPlayerParty[0], MON_DATA_BEAUTY, &gContestMons[gContestPlayerMonIndex].beauty); + SetMonData(&gPlayerParty[0], MON_DATA_SMART, &gContestMons[gContestPlayerMonIndex].smart); + SetMonData(&gPlayerParty[0], MON_DATA_TOUGH, &gContestMons[gContestPlayerMonIndex].tough); + SetMonData(&gPlayerParty[0], MON_DATA_SHEEN, &gContestMons[gContestPlayerMonIndex].sheen); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[0]); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[1]); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[2]); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[3]); } void sub_80AA754(struct Sprite *sprite) @@ -590,32 +571,32 @@ void sub_80AA754(struct Sprite *sprite) static void sub_80AA8A0(struct Sprite *sprite, s8 var1, u8 var2) { - if(var1 == 1) - { - sprite->data2 = var2; - sub_80AA280(var2); - sub_80AA658(sprite->data2); - } + if (var1 == 1) + { + sprite->data2 = var2; + sub_80AA280(var2); + sub_80AA658(sprite->data2); + } } void sub_80AA8C8(struct Sprite *sprite, s8 var1) { - sub_80AA8A0(sprite, var1, 0); + sub_80AA8A0(sprite, var1, 0); } void sub_80AA8D8(struct Sprite *sprite, s8 var1) { - sub_80AA8A0(sprite, var1, 1); + sub_80AA8A0(sprite, var1, 1); } void sub_80AA8E8(struct Sprite *sprite, s8 var1) { - sub_80AA8A0(sprite, var1, 2); + sub_80AA8A0(sprite, var1, 2); } void sub_80AA8F8(struct Sprite *sprite, s8 var1) { - sub_80AA8A0(sprite, var1, 3); + sub_80AA8A0(sprite, var1, 3); } static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused. @@ -634,48 +615,48 @@ void sub_80AA930(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].cool = sub_80AA908(val, gContestMons[sprite->data2].cool, var2); - sub_80AA340(sprite->data2); + gContestMons[sprite->data2].cool = sub_80AA908(val, gContestMons[sprite->data2].cool, var2); + sub_80AA340(sprite->data2); } void sub_80AA974(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].cute = sub_80AA908(val, gContestMons[sprite->data2].cute, var2); - sub_80AA388(sprite->data2); + gContestMons[sprite->data2].cute = sub_80AA908(val, gContestMons[sprite->data2].cute, var2); + sub_80AA388(sprite->data2); } void sub_80AA9B8(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].beauty = sub_80AA908(val, gContestMons[sprite->data2].beauty, var2); - sub_80AA3D0(sprite->data2); + gContestMons[sprite->data2].beauty = sub_80AA908(val, gContestMons[sprite->data2].beauty, var2); + sub_80AA3D0(sprite->data2); } void sub_80AA9FC(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].smart = sub_80AA908(val, gContestMons[sprite->data2].smart, var2); - sub_80AA418(sprite->data2); + gContestMons[sprite->data2].smart = sub_80AA908(val, gContestMons[sprite->data2].smart, var2); + sub_80AA418(sprite->data2); } void sub_80AAA40(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].tough = sub_80AA908(val, gContestMons[sprite->data2].tough, var2); - sub_80AA460(sprite->data2); + gContestMons[sprite->data2].tough = sub_80AA908(val, gContestMons[sprite->data2].tough, var2); + sub_80AA460(sprite->data2); } void sub_80AAA84(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].sheen = sub_80AA908(val, gContestMons[sprite->data2].sheen, var2); - sub_80AA4A8(sprite->data2); + gContestMons[sprite->data2].sheen = sub_80AA908(val, gContestMons[sprite->data2].sheen, var2); + sub_80AA4A8(sprite->data2); } // a similar function is at 0x80AA908, however, it apparently returns the wrong type (u8 vs u16). @@ -695,39 +676,39 @@ void sub_80AAAF0(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[0], var2); - sub_80AA4F0(sprite->data2, 0); + gContestMons[sprite->data2].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[0], var2); + sub_80AA4F0(sprite->data2, 0); } void sub_80AAB30(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[1], var2); - sub_80AA4F0(sprite->data2, 1); + gContestMons[sprite->data2].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[1], var2); + sub_80AA4F0(sprite->data2, 1); } void sub_80AAB70(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[2], var2); - sub_80AA4F0(sprite->data2, 2); + gContestMons[sprite->data2].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[2], var2); + sub_80AA4F0(sprite->data2, 2); } void sub_80AABB0(struct Sprite *sprite, u8 var2) { u8 val = sprite->data2; - gContestMons[sprite->data2].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[3], var2); - sub_80AA4F0(sprite->data2, 3); + gContestMons[sprite->data2].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[3], var2); + sub_80AA4F0(sprite->data2, 3); } void sub_80AABF0(struct Sprite *sprite, s8 var2) { s8 a = (var2 > 0) ? 1 : -1; s8 r4 = sprite->data3 + a; - + if (r4 < 0) r4 = 0; else if (r4 > 4) @@ -781,7 +762,7 @@ void sub_80AAD44(struct Sprite *sprite, s8 var2) if (var2 == 1) { int i; - + SetDebugMonForContest(); for (i = 0; i < 4; i++) gUnknown_02038670[i] = sub_80AE770(i, gScriptContestCategory); @@ -799,22 +780,22 @@ void sub_80AAD84(u8 *string, u8 b, u8 c, u8 d) //u32 sp44; //u32 sp48; u32 sp58; - + gMain.state = 0; - + r5 = d + 1; //Could also be DmaClear32 DmaFill32(3, 0, (u8 *)VRAM + 0x18000 - r5 * 256, 0x100); - + r7 = StringLength(string); if (r7 > 8) r7 = 8; sp58 = d * 2; - + //More stuff - + r7_2 = 0x7C - sp58; - + } */ @@ -1000,7 +981,7 @@ void unref_sub_80AAEE8(s32 a, u8 b, u8 c, u8 d) { u8 string[12]; u8 offset = 0; - + if (a < 0) { string[0] = 0xAE; @@ -1013,19 +994,22 @@ void unref_sub_80AAEE8(s32 a, u8 b, u8 c, u8 d) void sub_80AAF30(void) { s32 i; - + gUnknown_0203856C = 1; gContestPlayerMonIndex = 3; sub_80AE098(0); + for (i = 3; i > -1; i--) gUnknown_02038690[i] = 3 - i; + for (i = 0; i < 3; i++) { gUnknown_02038670[i] = 0; gUnknown_02038680[i] = 0; gUnknown_02038678[i] = 0; - memcpy(&gContestMons[i], &gContestMons[3], 0x40); + memcpy(&gContestMons[i], &gContestMons[3], sizeof(struct ContestPokemon)); } + gUnknown_02038670[3] = 0x12C; gUnknown_02038680[3] = 0x190; gUnknown_02038678[3] = 0x190; @@ -1044,7 +1028,7 @@ int MatsudaDebugMenu_SetHighScore(void) int MatsudaDebugMenu_ResetHighScore(void) { s32 i; - + gUnknown_0203856C = 0; for (i = 0; i < 4; i++) { @@ -1060,7 +1044,7 @@ int MatsudaDebugMenu_ResetHighScore(void) int MatsudaDebugMenu_SetArtMuseumItems(void) { s32 i; - + gContestPlayerMonIndex = 3; sub_80AE098(0); for (i = 3; i > -1; i--) @@ -1076,7 +1060,7 @@ void unref_sub_80AB084(u8 *text) u16 savedIme; u8 *addr; size_t size; - + REG_BG0HOFS = 0; REG_BG0VOFS = 0; REG_BG1HOFS = 0; @@ -1090,7 +1074,7 @@ void unref_sub_80AB084(u8 *text) REG_WIN1H = 0; REG_WIN1V = 0; REG_DISPCNT = 0x1F40; - + savedIme = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; @@ -1099,15 +1083,15 @@ void unref_sub_80AB084(u8 *text) ResetTasks(); ResetSpriteData(); SetMainCallback2(sub_80AB184); - + addr = (void *)VRAM; size = 0x18000; - while(1) + while (1) { DmaFill32(3, 0, addr, 0x1000); addr += 0x1000; size -= 0x1000; - if(size <= 0x1000) + if (size <= 0x1000) { DmaFill32(3, 0, addr, size); break; |