diff options
Diffstat (limited to 'src/matsuda_debug_menu.c')
-rw-r--r-- | src/matsuda_debug_menu.c | 1113 |
1 files changed, 0 insertions, 1113 deletions
diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c deleted file mode 100644 index 3665cabd8..000000000 --- a/src/matsuda_debug_menu.c +++ /dev/null @@ -1,1113 +0,0 @@ -#include "global.h" -#include "matsuda_debug_menu.h" -#include "contest.h" -#include "contest_link_80C2020.h" -#include "contest_link_80C857C.h" -#include "data2.h" -#include "link.h" -#include "main.h" -#include "menu.h" -#include "palette.h" -#include "rom4.h" -#include "sprite.h" -#include "start_menu.h" -#include "string_util.h" -#include "task.h" -#include "text.h" -#include "unknown_task.h" - -extern u8 gUnknown_0203856C; -extern u8 gUnknown_0203857D[][64]; -extern u16 gUnknown_02038670[]; -extern u16 gUnknown_02038678[]; -extern u16 gUnknown_02038680[]; -extern u8 gUnknown_02038690[]; -extern u8 gUnknown_02038694; -extern u8 gIsLinkContest; -extern u8 gUnknown_0203869B; -extern u8 gContestPlayerMonIndex; -extern u16 gScriptContestCategory; -extern u16 gScriptContestRank; - -extern u16 gUnknown_030042A4; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042C0; -extern u16 gUnknown_030041B4; -extern u16 gUnknown_03004288; -extern u16 gUnknown_03004280; -extern u16 gUnknown_030041B0; -extern u16 gUnknown_030041B8; -extern struct Window gUnknown_03004210; -extern u8 (*gCallback_03004AE8)(void); - -extern u8 gUnknown_083C926E[][2]; -extern u8 gUnknown_083C9282[]; -extern const u8 gUnknown_083C928E[][2]; -extern u8 gUnknown_083C9296[]; -extern u8 gUnknown_083C92A8[]; -extern u8 unk_2000000[]; -extern u8 gMatsudaDebugMenu_GoBackText[]; -extern u8 gMatsudaDebugMenu_BattlePointsText[]; -extern u8 gMatsudaDebugMenu_StartText[]; - -extern struct SpritePalette gUnknown_083C92BC; -extern struct SpriteSheet gUnknown_083C92B4; -extern struct SpriteTemplate gSpriteTemplate_83C92CC; -extern void (*gUnknown_083C92E4[][2])(struct Sprite *, s8); -extern u32 gUnknown_083C9400[2]; - - -extern u8 gMatsudaDebugMenu_UnknownByteArray[]; -extern u8* gMatsudaDebugMenuTextList1[]; -extern u8* gMatsudaDebugMenuTextList2[]; -extern u8* gMatsudaDebugMenuTextList3[]; -extern u8 gMatsudaDebugMenuContestTopLeft[][2]; - -extern bool8 gReceivedRemoteLinkPlayers; - -extern struct MenuAction gMatsudaDebugMenuActions[]; - -static bool8 sub_80A9B78(void); -static void sub_80A9BE4(u8 taskId); -static void sub_80A9C98(u8); -static void sub_80A9CC0(u8); -static void sub_80A9CDC(u8); -static void sub_80A9D58(u8); -static void sub_80A9DBC(u8); -static void sub_80A9DD8(u8); -static void sub_80A9E04(u8 taskId); -static void sub_80A9E3C(u8 taskId); -static void sub_80A9E80(u8); -static void sub_80A9ED8(u8); -static void sub_80A9F10(u8); -static void sub_80AA10C(void); -static void sub_80AA5BC(u8); -static void sub_80AA614(u8, u8); -static void sub_80AAD08(struct Sprite *, s8); - -u8 unref_sub_80A9B28(void) -{ - MenuZeroFillScreen(); - MenuDrawTextWindow(0, 0, 17, 18); - PrintMenuItems(1, 1, 7, gMatsudaDebugMenuActions); - InitMenu(0, 1, 1, 7, 0, 16); - gCallback_03004AE8 = sub_80A9B78; - return 0; -} - -static bool8 sub_80A9B78(void) -{ - s8 choice = ProcessMenuInput(); - - switch (choice) - { - case -2: - return FALSE; - default: - gCallback_03004AE8 = gMatsudaDebugMenuActions[choice].func; - return FALSE; - case -1: - CloseMenu(); - return TRUE; - } -} - -s8 MatsudaDebugMenu_ContestResults(void) -{ - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - CreateTask(sub_80A9BE4, 0xFF); - return 1; -} - -static void sub_80A9BE4(u8 taskId) -{ - if (!gPaletteFade.active) - { - DestroyTask(taskId); - - if (!(gIsLinkContest & 1)) - sub_80AF668(); - - sub_80C2358(); - } -} - -s8 MatsudaDebugMenu_Contest(void) -{ - gIsLinkContest = 0; - sub_80AA10C(); - return 0; -} - -s8 MatsudaDebugMenu_ContestComm(void) -{ - sub_80AA10C(); - return 0; -} - -s8 MatsudaDebugMenu_CommTest(void) -{ - u8 newTaskId; - u8 newTaskId2; - - newTaskId = CreateTask(sub_80A9E3C, 0); - SetTaskFuncWithFollowupFunc(newTaskId, sub_80A9E3C, sub_80A9C98); - newTaskId2 = CreateTask(sub_80A9E04, 1); - gTasks[newTaskId2].data[10] = newTaskId; - gTasks[newTaskId].data[10] = newTaskId2; - return 1; -} - -static void sub_80A9C98(u8 taskId) -{ - sub_80AE098(0); - SetTaskFuncWithFollowupFunc(taskId, sub_80C8734, sub_80A9CC0); -} - -static void sub_80A9CC0(u8 taskId) -{ - SetTaskFuncWithFollowupFunc(taskId, sub_80C88AC, sub_80A9CDC); -} - -static void sub_80A9CDC(u8 taskId) -{ - SetTaskFuncWithFollowupFunc(taskId, sub_80C8E1C, sub_80A9D58); -} - -static void sub_80A9CF8(u8 taskId) -{ - if (gReceivedRemoteLinkPlayers == FALSE) - { - DestroyTask(gTasks[taskId].data[10]); - DestroyTask(taskId); - CloseMenu(); - } -} - -static void sub_80A9D30(u8 taskId) -{ - sub_800832C(); - gTasks[taskId].func = sub_80A9CF8; -} - -static void sub_80A9D58(u8 taskId) -{ - int i; - u8 dest[4]; - - for (i = 0; i < 4; i++) - dest[i] = gTasks[taskId].data[5 + i]; - - gUnknown_0203869B = sub_80C4B34(dest); - sub_80AE82C((u8)gScriptContestCategory); - sub_80B0F28(0); - SetTaskFuncWithFollowupFunc(taskId, sub_80C8EBC, sub_80A9DBC); -} - -static void sub_80A9DBC(u8 taskId) -{ - SetTaskFuncWithFollowupFunc(taskId, sub_80C8F34, sub_80A9DD8); -} - -static void sub_80A9DD8(u8 taskId) -{ - DestroyTask(gTasks[taskId].data[10]); - DestroyTask(taskId); - CloseMenu(); -} - -static void sub_80A9E04(u8 taskId) -{ - 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++) - gBlockRecvBuffer[i][0] = 255; - - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80A9E80; -} - -static void sub_80A9E80(u8 taskId) -{ - TaskFunc func; - - if (gTasks[taskId].data[0] < 10) - gTasks[taskId].data[0]++; - else - { - if (GetLinkPlayerCount_2() > 3) - { - gTasks[taskId].data[0] = 0; - - if (IsLinkMaster()) - { - func = sub_80A9ED8; - gTasks[taskId].func = (TaskFunc)func; - } - else - { - func = sub_80A9F10; - gTasks[taskId].func = (TaskFunc)func; - } - } - } -} - -static void sub_80A9ED8(u8 taskId) -{ - gTasks[taskId].data[0] = gTasks[taskId].data[0] + 1; - if ((gTasks[taskId].data[0]) == 101) - { - sub_8007F4C(); - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80A9F10; - } -} - -static void sub_80A9F10(u8 taskId) -{ - if (gReceivedRemoteLinkPlayers) - { - gContestPlayerMonIndex = GetMultiplayerId(); - if (GetLinkPlayerCount() == 4) - { - gIsLinkContest = 1; - SwitchTaskToFollowupFunc(taskId); - } - } -} - -static void sub_80A9F50(void) -{ - REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP; - REG_DISPCNT |= DISPCNT_OBJ_ON | DISPCNT_BG0_ON; - SetUpWindowConfig(&gWindowConfig_81E6C3C); - InitWindowFromConfig(&gMenuWindow, &gWindowConfig_81E6C3C); - REG_MOSAIC = 0; - REG_BLDCNT = 0; - REG_BLDALPHA = 0; - REG_BLDY = 0; - REG_BG0HOFS = 0; - REG_BG0VOFS = 0; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; - gUnknown_030042C0 = 0; - gUnknown_030041B4 = 0; - gUnknown_03004288 = 0; - gUnknown_03004280 = 0; - gUnknown_030041B0 = 0; - gUnknown_030041B8 = 0; -} - -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) - { - DmaFill32(3, 0, addr, 0x1000); - addr += 0x1000; - i -= 0x1000; - if (i <= 0x1000) - { - DmaFill32(3, 0, addr, i); - break; - } - } - sub_80034D4((void *)VRAM, ptr); - LoadFontDefaultPalette(&gWindowConfig_81E6C3C); -} - -static void sub_80AA064(void) -{ - AnimateSprites(); - BuildOamBuffer(); - RunTasks(); - UpdatePaletteFade(); - if (gMain.newKeys == 4) - SetMainCallback2(sub_805469C); -} - -static void sub_80AA090(void) -{ - REG_BG0HOFS = gUnknown_030042A4; - REG_BG0VOFS = gUnknown_030042A0; - REG_BG1HOFS = gUnknown_030042C0; - REG_BG1VOFS = gUnknown_030041B4; - REG_BG2HOFS = gUnknown_03004288; - REG_BG2VOFS = gUnknown_03004280; - REG_BG3HOFS = gUnknown_030041B0; - REG_BG3VOFS = gUnknown_030041B8; - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); - sub_8089668(); -} - -static void sub_80AA10C(void) -{ - u8 i; - u8 zero; - u8 spriteId; - - gPaletteFade.bufferTransferDisabled = 1; - SetVBlankCallback(0); - sub_80A9F50(); - dp12_8087EA4(); - ResetPaletteFade(); - ResetSpriteData(); - ResetTasks(); - FreeAllSpritePalettes(); - sub_80A9FE4(); - SetVBlankCallback(sub_80AA090); - SetMainCallback2(sub_80AA064); - gPaletteFade.bufferTransferDisabled = 0; - gUnknown_02038694 = 0; - - if (!(gContestMons[0].nickname[0])) - sub_80AE398(0, 0); - - sub_80AE098(gUnknown_02038694); - - for (i = 0; i < 6; i++) - { - sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i], - (0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0], - gMatsudaDebugMenuContestTopLeft[i][1]); - } - - gScriptContestCategory = gScriptContestRank = 0; - zero = 0; // it's possible this was some assignment that matsuda used to quickly edit and test things without changing whats passed to the later functions. - sub_80AA5BC(zero); - sub_80AA5E8(gScriptContestRank); - sub_8003460(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12); - sub_8003460(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC); - LoadSpriteSheet(&gUnknown_083C92B4); - LoadSpritePalette(&gUnknown_083C92BC); - sub_80AA280(3); - sub_80AA658(3); - sub_80AA614(3, zero); - spriteId = CreateSprite(&gSpriteTemplate_83C92CC, gUnknown_083C9296[3], gUnknown_083C92A8[1], 5); - gSprites[spriteId].data0 = 1; - gSprites[spriteId].data1 = 1; - gSprites[spriteId].data2 = 3; - 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) // no? -{ - u8 i; - - FillWindowRect_DefaultPalette(&gMenuWindow, 0, 0, 0, 0x1E, 3); - StringCopy(unk_2000000, gMatsudaDebugMenu_StartText); - StringAppend(unk_2000000, &gUnknown_0203857D[var][0]); - - for (i = 0; i < 4; i++) - { - if (var == i) - { - sub_8003460(&gMenuWindow, unk_2000000, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]); - } - else - { - u8 *ptr = gUnknown_0203857D[i]; - sub_8003460(&gMenuWindow, ptr, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]); - } - } -} - -static void sub_80AA340(u8 var) -{ - ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]); -} - -static void sub_80AA388(u8 var) -{ - ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]); -} - -static void sub_80AA3D0(u8 var) -{ - ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]); -} - -static void sub_80AA418(u8 var) -{ - ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]); -} - -static void sub_80AA460(u8 var) -{ - ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]); -} - -static void sub_80AA4A8(u8 var) -{ - ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3); - sub_8003460(&gMenuWindow, unk_2000000, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]); -} - -static void sub_80AA4F0(u8 var1, u8 var2) -{ - FillWindowRect_DefaultPalette(&gMenuWindow, 0, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1], gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1] + 1); - sub_8003460(&gMenuWindow, gMoveNames[gContestMons[var1].moves[var2]], 0x8A + var2 * 14, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1]); - ConvertIntToDecimalStringN(gStringVar1, gContestMons[var1].moves[var2], STR_CONV_MODE_LEADING_ZEROS, 3); - sub_8003460(&gMenuWindow, gStringVar1, 0xFA + var2 * 6, gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1]); -} - -static void sub_80AA5BC(u8 var) -{ - sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12); -} - -void sub_80AA5E8(u8 var) -{ - sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4); -} - -static void sub_80AA614(u8 var1, u8 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); -} - -void sub_80AA658(u8 var) -{ - u8 i; - - 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); -} - -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]); -} - -void sub_80AA754(struct Sprite *sprite) -{ - switch (gMain.newAndRepeatedKeys) - { - case DPAD_RIGHT: - case DPAD_LEFT: - sprite->data0 ^= 1; - break; - case DPAD_UP: - if (sprite->data1 == 0) - sprite->data1 = 8; - else - sprite->data1--; - break; - case DPAD_DOWN: - if (sprite->data1 == 8) - sprite->data1 = 0; - else - sprite->data1++; - break; - case A_BUTTON: - gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 1); - sub_80AA614(sprite->data2, sprite->data3); - break; - case B_BUTTON: - gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -1); - sub_80AA614(sprite->data2, sprite->data3); - break; - case R_BUTTON: - gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 10); - sub_80AA614(sprite->data2, sprite->data3); - break; - case L_BUTTON: - gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -10); - sub_80AA614(sprite->data2, sprite->data3); - break; - case START_BUTTON: - sub_80AAD08(sprite, 1); - break; - } - sprite->pos1.x = gUnknown_083C9296[sprite->data0 + sprite->data1 * 2]; - sprite->pos1.y = gUnknown_083C92A8[sprite->data1]; -} - -static void sub_80AA8A0(struct Sprite *sprite, s8 var1, u8 var2) -{ - 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); -} - -void sub_80AA8D8(struct Sprite *sprite, s8 var1) -{ - sub_80AA8A0(sprite, var1, 1); -} - -void sub_80AA8E8(struct Sprite *sprite, s8 var1) -{ - sub_80AA8A0(sprite, var1, 2); -} - -void sub_80AA8F8(struct Sprite *sprite, s8 var1) -{ - sub_80AA8A0(sprite, var1, 3); -} - -static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused. -{ - s16 val = a2 + a3; - - if (val > 255) - val = 255; - else if (val < 0) - val = 0; - - return val; -} - -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); -} - -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); -} - -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); -} - -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); -} - -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); -} - -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); -} - -// a similar function is at 0x80AA908, however, it apparently returns the wrong type (u8 vs u16). -static u16 sub_80AAAC8(u32 a1, u16 a2, s8 a3) // first param is unused. -{ - s16 val = a2 + a3; - - if (val > 354) - val = 1; - else if (val < 0) - val = 354; - - return val; -} - -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); -} - -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); -} - -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); -} - -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); -} - -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) - r4 = 4; - sub_80AA5BC(r4); - sprite->data3 = r4; - gScriptContestCategory = sprite->data3; - sub_80AE398(sprite->data3, gScriptContestRank); - sub_80AA280(sprite->data2); - sub_80AA658(sprite->data2); -} - -void sub_80AAC5C(struct Sprite *sprite, s8 var2) -{ - if (var2 > 0) - gScriptContestRank++; - else if (gScriptContestRank != 0) - gScriptContestRank--; - if (gScriptContestRank > 3) - gScriptContestRank = 3; - sub_80AA5E8(gScriptContestRank); - sub_80AE398(gScriptContestCategory, gScriptContestRank); - sub_80AA280(sprite->data2); - sub_80AA658(sprite->data2); -} - -void sub_80AACC4(void) -{ - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - SetDebugMonForContest(); - if (!(gIsLinkContest & 1)) - sub_80AE82C(unk_2000000[0]); - SetMainCallback2(sub_80AB47C); - } -} - -void sub_80AAD08(struct Sprite *sprite, s8 var2) -{ - if (var2 == 1) - { - unk_2000000[0] = sprite->data3; - SetMainCallback2(sub_80AACC4); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); - } -} - -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); - SetMainCallback2(sub_805469C); - } -} - -//Do this later -/* -void sub_80AAD84(u8 *string, u8 b, u8 c, u8 d) -{ - u32 r5; - u16 r7; - u8 r7_2; - //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; - -} -*/ - -__attribute__((naked)) -void sub_80AAD84(u8 *string, u8 b, u8 c, u8 d) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x64\n\ - mov r9, r0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - str r1, [sp, 0x48]\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x4C]\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - mov r10, r3\n\ - mov r5, r10\n\ - adds r5, 0x1\n\ - lsls r1, r5, 8\n\ - ldr r0, _080AAEC4 @ =0x06018000\n\ - subs r1, r0, r1\n\ - movs r0, 0\n\ - str r0, [sp, 0x44]\n\ - ldr r4, _080AAEC8 @ =0x040000d4\n\ - add r0, sp, 0x44\n\ - str r0, [r4]\n\ - str r1, [r4, 0x4]\n\ - ldr r0, _080AAECC @ =0x85000040\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - mov r0, r9\n\ - bl StringLength\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x8\n\ - bls _080AADD0\n\ - movs r7, 0x8\n\ -_080AADD0:\n\ - movs r6, 0\n\ - mov r8, r5\n\ - mov r1, r10\n\ - lsls r1, 1\n\ - str r1, [sp, 0x58]\n\ - ldr r2, [sp, 0x48]\n\ - adds r2, 0x20\n\ - str r2, [sp, 0x5C]\n\ - cmp r6, r7\n\ - bge _080AAE1E\n\ - add r5, sp, 0x40\n\ - add r0, sp, 0x20\n\ - mov r10, r0\n\ - ldr r2, _080AAEC4 @ =0x06018000\n\ -_080AADEC:\n\ - mov r1, r9\n\ - adds r0, r1, r6\n\ - ldrb r0, [r0]\n\ - strb r0, [r5]\n\ - movs r0, 0xFF\n\ - strb r0, [r5, 0x1]\n\ - mov r0, sp\n\ - adds r1, r5, 0\n\ - str r2, [sp, 0x60]\n\ - bl sub_80034D4\n\ - mov r1, r8\n\ - lsls r0, r1, 8\n\ - ldr r2, [sp, 0x60]\n\ - subs r0, r2, r0\n\ - mov r1, r10\n\ - str r1, [r4]\n\ - str r0, [r4, 0x4]\n\ - ldr r0, _080AAED0 @ =0x84000008\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - adds r2, 0x20\n\ - adds r6, 0x1\n\ - cmp r6, r7\n\ - blt _080AADEC\n\ -_080AAE1E:\n\ - movs r1, 0x7C\n\ - ldr r2, [sp, 0x58]\n\ - subs r1, r2\n\ - lsls r1, 24\n\ - lsrs r7, r1, 24\n\ - ldr r0, _080AAED4 @ =gMain\n\ - mov r9, r0\n\ - lsls r3, r7, 3\n\ - add r3, r9\n\ - ldr r0, _080AAED8 @ =gUnknown_083C9400\n\ - ldr r1, [r0]\n\ - ldr r2, [r0, 0x4]\n\ - str r1, [sp, 0x50]\n\ - str r2, [sp, 0x54]\n\ - str r1, [r3, 0x3C]\n\ - str r2, [r3, 0x40]\n\ - mov r2, r8\n\ - lsls r0, r2, 3\n\ - movs r1, 0x80\n\ - lsls r1, 3\n\ - adds r2, r1, 0\n\ - subs r2, r0\n\ - adds r6, r3, 0\n\ - adds r6, 0x40\n\ - ldr r0, _080AAEDC @ =0x000003ff\n\ - mov r8, r0\n\ - mov r1, r8\n\ - ands r2, r1\n\ - ldrh r5, [r6]\n\ - ldr r4, _080AAEE0 @ =0xfffffc00\n\ - adds r0, r4, 0\n\ - ands r0, r5\n\ - orrs r0, r2\n\ - strh r0, [r6]\n\ - ldrh r5, [r3, 0x3E]\n\ - ldr r2, _080AAEE4 @ =0xfffffe00\n\ - adds r0, r2, 0\n\ - ands r0, r5\n\ - ldr r1, [sp, 0x48]\n\ - orrs r0, r1\n\ - strh r0, [r3, 0x3E]\n\ - adds r3, 0x3C\n\ - add r0, sp, 0x4C\n\ - ldrb r0, [r0]\n\ - strb r0, [r3]\n\ - adds r1, r7, 0x1\n\ - lsls r1, 3\n\ - mov r0, r9\n\ - adds r7, r1, r0\n\ - ldr r0, [sp, 0x50]\n\ - ldr r1, [sp, 0x54]\n\ - str r0, [r7, 0x3C]\n\ - str r1, [r7, 0x40]\n\ - ldrh r0, [r6]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - adds r0, 0x4\n\ - adds r5, r7, 0\n\ - adds r5, 0x40\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldrh r3, [r5]\n\ - ands r4, r3\n\ - orrs r4, r0\n\ - strh r4, [r5]\n\ - ldrh r0, [r7, 0x3E]\n\ - ands r2, r0\n\ - ldr r0, [sp, 0x5C]\n\ - orrs r2, r0\n\ - strh r2, [r7, 0x3E]\n\ - adds r1, r7, 0\n\ - adds r1, 0x3C\n\ - add r2, sp, 0x4C\n\ - ldrb r2, [r2]\n\ - strb r2, [r1]\n\ - add sp, 0x64\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080AAEC4: .4byte 0x06018000\n\ -_080AAEC8: .4byte 0x040000d4\n\ -_080AAECC: .4byte 0x85000040\n\ -_080AAED0: .4byte 0x84000008\n\ -_080AAED4: .4byte gMain\n\ -_080AAED8: .4byte gUnknown_083C9400\n\ -_080AAEDC: .4byte 0x000003ff\n\ -_080AAEE0: .4byte 0xfffffc00\n\ -_080AAEE4: .4byte 0xfffffe00\n\ - .syntax divided\n"); -} - -void unref_sub_80AAEE8(s32 a, u8 b, u8 c, u8 d) -{ - u8 string[12]; - u8 offset = 0; - - if (a < 0) - { - string[0] = 0xAE; - offset = 1; - } - ConvertIntToDecimalStringN(string + offset, (a < 0) ? -a : a, 0, 8); - sub_80AAD84(string, b, c, 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], sizeof(struct ContestPokemon)); - } - - gUnknown_02038670[3] = 0x12C; - gUnknown_02038680[3] = 0x190; - gUnknown_02038678[3] = 0x190; - sub_80B2A7C(0xFE); -} - -//Don't know size of return type -int MatsudaDebugMenu_SetHighScore(void) -{ - sub_80AAF30(); - CloseMenu(); - return 1; -} - -//Don't know size of return type -int MatsudaDebugMenu_ResetHighScore(void) -{ - s32 i; - - gUnknown_0203856C = 0; - for (i = 0; i < 4; i++) - { - gUnknown_02038670[i] = 0; - gUnknown_02038680[i] = 0; - gUnknown_02038678[i] = 0; - } - CloseMenu(); - return 1; -} - -//Don't know size of return type -int MatsudaDebugMenu_SetArtMuseumItems(void) -{ - s32 i; - - gContestPlayerMonIndex = 3; - sub_80AE098(0); - for (i = 3; i > -1; i--) - gUnknown_02038690[i] = 3 - i; - for (gScriptContestCategory = 0; gScriptContestCategory < 5; gScriptContestCategory++) - sub_80B2A7C(0xFF); - CloseMenu(); - return 1; -} - -void unref_sub_80AB084(u8 *text) -{ - u16 savedIme; - u8 *addr; - size_t size; - - REG_BG0HOFS = 0; - REG_BG0VOFS = 0; - REG_BG1HOFS = 0; - REG_BG1VOFS = 0; - REG_BG2HOFS = 0; - REG_BG2VOFS = 0; - REG_BG3HOFS = 0; - REG_BG3VOFS = 0; - REG_WIN0H = 0; - REG_WIN0V = 0; - REG_WIN1H = 0; - REG_WIN1V = 0; - REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON; - - savedIme = REG_IME; - REG_IME = 0; - REG_IE |= INTR_FLAG_VBLANK; - REG_IME = savedIme; - REG_DISPSTAT = 8; - ResetTasks(); - ResetSpriteData(); - SetMainCallback2(sub_80AB184); - - addr = (void *)VRAM; - size = 0x18000; - while (1) - { - DmaFill32(3, 0, addr, 0x1000); - addr += 0x1000; - size -= 0x1000; - if (size <= 0x1000) - { - DmaFill32(3, 0, addr, size); - break; - } - } - SetUpWindowConfig(&gWindowConfig_81E6FD8); - InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6FD8); - LoadFontDefaultPalette(&gWindowConfig_81E6FD8); - sub_8003460(&gUnknown_03004210, text, 1, 9, 7); -} - -void sub_80AB184(void) -{ - REG_BG0HOFS = 0; - REG_BG0VOFS = 0; - REG_BG1HOFS = 0; - REG_BG1VOFS = 0; - REG_BG2HOFS = 0; - REG_BG2VOFS = 0; - REG_BG3HOFS = 0; - REG_BG3VOFS = 0; -} |