diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 19:11:11 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 19:11:11 -0400 |
commit | c95740ab85fbec74cbfb844f33e56bf879fee8c9 (patch) | |
tree | 8dc4c91bf3af3a4af13f04bc6c791541b5748d29 /src | |
parent | 584bdbe5b57b28fbb06c1e49235f12f7de8c79ed (diff) |
tm_case sub_8132F60
Diffstat (limited to 'src')
-rw-r--r-- | src/tm_case.c | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/src/tm_case.c b/src/tm_case.c index b63260aaf..0f709afea 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -131,6 +131,8 @@ extern const u8 gUnknown_84168F1[]; extern const u8 gUnknown_8416911[]; extern const u8 gUnknown_8416936[]; extern const u8 gUnknown_8416959[]; +extern const u8 gUnknown_841C587[]; +extern const u8 gUnknown_841C693[]; // my rodata extern const struct BgTemplate gUnknown_8463134[3]; @@ -1043,3 +1045,132 @@ void sub_8132F20(u8 taskId) gTasks[taskId].func = sub_8132F60; } } + +void sub_8132F60(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (JOY_NEW(B_BUTTON)) + { + if (data[8] < 21) + { + data[8] = 21; + sub_815AC20(); + } + } + + switch (data[8]) + { + case 0: + BeginNormalPaletteFade(0xFFFF8405, 4, 0, 6, 0); + sub_8131F64(1); + data[8]++; + break; + case 1: + case 11: + if (!gPaletteFade.active) + { + data[9]++; + if (data[9] > 0x65) + { + data[9] = 0; + data[8]++; + } + } + break; + case 2: + case 3: + case 4: + case 12: + case 13: + case 14: + if (data[9] == 0) + { + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_DOWN; + ListMenuHandleInput(data[0]); + } + data[9]++; + if (data[9] > 0x65) + { + data[9] = 0; + data[8]++; + } + break; + case 5: + case 6: + case 7: + case 15: + case 16: + case 17: + if (data[9] == 0) + { + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_UP; + ListMenuHandleInput(data[0]); + } + data[9]++; + if (data[9] > 0x65) + { + data[9] = 0; + data[8]++; + } + break; + case 8: + sub_8131F64(1); + sub_813337C(taskId, 4, gUnknown_841C587, 0); + gTasks[taskId].func = sub_8132F60; + data[8]++; + break; + case 9: + case 19: + RunTextPrinters(); + if (!IsTextPrinterActive(6)) + data[8]++; + break; + case 10: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + sub_8131F64(0); + BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0); + sub_810F260(6, 0); + schedule_bg_copy_tilemap_to_vram(1); + data[8]++; + } + break; + case 18: + sub_8131F64(1); + sub_813337C(taskId, 4, gUnknown_841C693, 0); + gTasks[taskId].func = sub_8132F60; + data[8]++; + break; + case 20: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + data[8]++; + break; + case 21: + if (!gPaletteFade.active) + { + memcpy(gSaveBlock1Ptr->bagPocket_TMHM, gUnknown_203B11C->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); + memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, gUnknown_203B11C->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); + sub_810713C(data[0], NULL, NULL); + gUnknown_203B10C.unk_08 = gUnknown_203B11C->unk_160; + gUnknown_203B10C.unk_0a = gUnknown_203B11C->unk_162; + Free(gUnknown_203B11C); + CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); + sub_8108CF0(); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); + data[8]++; + } + break; + default: + if (!gPaletteFade.active) + { + SetMainCallback2(gUnknown_203B10C.unk_00); + sub_813208C(); + sub_81321D4(); + DestroyTask(taskId); + } + break; + } +} |