tm_case through sub_813226C

This commit is contained in:
PikalaxALT
2019-04-14 16:39:07 -04:00
parent ef00905bd7
commit ae4e94dd73
4 changed files with 56 additions and 181 deletions
-178
View File
@@ -5,184 +5,6 @@
.text
thumb_func_start sub_8132170
sub_8132170: @ 8132170
push {r4-r6,lr}
ldr r0, _081321CC @ =gUnknown_203B10C
ldrh r1, [r0, 0x8]
adds r6, r0, 0
cmp r1, 0x3
bls _081321C4
movs r4, 0
ldrh r0, [r6, 0x8]
subs r0, 0x3
cmp r4, r0
bgt _081321C4
ldrh r1, [r6, 0xA]
ldr r5, _081321D0 @ =gUnknown_203B118
ldr r2, [r5]
ldrb r0, [r2, 0x5]
adds r1, r0
ldrb r0, [r2, 0x6]
adds r0, 0x1
cmp r1, r0
beq _081321C4
adds r3, r6, 0
_0813219A:
ldrh r0, [r3, 0x8]
subs r0, 0x1
strh r0, [r3, 0x8]
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrh r0, [r3, 0x8]
subs r0, 0x3
cmp r4, r0
bgt _081321C4
ldrh r1, [r6, 0xA]
ldr r2, [r5]
ldrb r0, [r2, 0x5]
adds r1, r0
ldrb r0, [r2, 0x6]
adds r0, 0x1
cmp r1, r0
bne _0813219A
_081321C4:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081321CC: .4byte gUnknown_203B10C
_081321D0: .4byte gUnknown_203B118
thumb_func_end sub_8132170
thumb_func_start sub_81321D4
sub_81321D4: @ 81321D4
push {lr}
ldr r0, _0813221C @ =gUnknown_203B118
ldr r0, [r0]
cmp r0, 0
beq _081321E2
bl Free
_081321E2:
ldr r0, _08132220 @ =gUnknown_203B120
ldr r0, [r0]
cmp r0, 0
beq _081321EE
bl Free
_081321EE:
ldr r0, _08132224 @ =gUnknown_203B124
ldr r0, [r0]
cmp r0, 0
beq _081321FA
bl Free
_081321FA:
ldr r0, _08132228 @ =gUnknown_203B128
ldr r0, [r0]
cmp r0, 0
beq _08132206
bl Free
_08132206:
ldr r0, _0813222C @ =gUnknown_203B12C
ldr r0, [r0]
cmp r0, 0
beq _08132212
bl Free
_08132212:
bl FreeAllWindowBuffers
pop {r0}
bx r0
.align 2, 0
_0813221C: .4byte gUnknown_203B118
_08132220: .4byte gUnknown_203B120
_08132224: .4byte gUnknown_203B124
_08132228: .4byte gUnknown_203B128
_0813222C: .4byte gUnknown_203B12C
thumb_func_end sub_81321D4
thumb_func_start sub_8132230
sub_8132230: @ 8132230
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
negs r0, r0
movs r1, 0x2
negs r1, r1
movs r2, 0
str r2, [sp]
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _08132264 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _08132268 @ =sub_813226C
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08132264: .4byte gTasks
_08132268: .4byte sub_813226C
thumb_func_end sub_8132230
thumb_func_start sub_813226C
sub_813226C: @ 813226C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _081322A4 @ =gTasks+0x8
adds r2, r0, r1
ldr r0, _081322A8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081322CC
ldrb r0, [r2]
ldr r4, _081322AC @ =gUnknown_203B10C + 10
subs r2, r4, 0x2
adds r1, r4, 0
bl sub_810713C
ldr r0, _081322B0 @ =gUnknown_203B118
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0
beq _081322B4
bl SetMainCallback2
b _081322BE
.align 2, 0
_081322A4: .4byte gTasks+0x8
_081322A8: .4byte gPaletteFade
_081322AC: .4byte gUnknown_203B10C + 10
_081322B0: .4byte gUnknown_203B118
_081322B4:
adds r0, r4, 0
subs r0, 0xA
ldr r0, [r0]
bl SetMainCallback2
_081322BE:
bl sub_813208C
bl sub_81321D4
adds r0, r5, 0
bl DestroyTask
_081322CC:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_813226C
thumb_func_start sub_81322D4
sub_81322D4: @ 81322D4
push {r4-r7,lr}
+1 -1
View File
@@ -56,7 +56,7 @@ u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
void sub_810713C(u8, u8, u8);
void sub_810713C(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
#endif //GUARD_LIST_MENU_H
+1 -1
View File
@@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId)
FreeQuestionMarkSpriteResources();
FreeListMenuSelectorArrowPairResources();
SetMainCallback2(sFameCheckerData->savedCallback);
sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0);
sub_810713C(sFameCheckerData->listMenuTaskId, NULL, NULL);
Free(sBg3TilemapBuffer);
Free(sBg1TilemapBuffer);
Free(sBg2TilemapBuffer);
+54 -1
View File
@@ -32,7 +32,7 @@ struct UnkStruct_203B10C
struct UnkStruct_203B118
{
u32 unk_00;
void (* unk_00)(void);
u8 unk_04;
u8 unk_05;
u8 unk_06;
@@ -76,6 +76,7 @@ void sub_8132018(void);
void sub_81320BC(void);
void sub_8132120(void);
void sub_8132170(void);
void sub_813226C(u8 taskId);
void sub_81322D4(u8 taskId);
void sub_8132F20(u8 taskId);
void sub_8133244(void);
@@ -512,3 +513,55 @@ void sub_8132120(void)
gUnknown_203B10C.unk_08 = gUnknown_203B118->unk_06;
}
}
void sub_8132170(void)
{
u8 i;
if (gUnknown_203B10C.unk_08 > 3)
{
for (i = 0; i <= gUnknown_203B10C.unk_08 - 3 && gUnknown_203B10C.unk_0a + gUnknown_203B118->unk_05 != gUnknown_203B118->unk_06 + 1; i++)
{
do {} while (0);
gUnknown_203B10C.unk_08--;
gUnknown_203B10C.unk_0a++;
}
}
}
void sub_81321D4(void)
{
if (gUnknown_203B118 != NULL)
Free(gUnknown_203B118);
if (gUnknown_203B120 != NULL)
Free(gUnknown_203B120);
if (gUnknown_203B124 != NULL)
Free(gUnknown_203B124);
if (gUnknown_203B128 != NULL)
Free(gUnknown_203B128);
if (gUnknown_203B12C != NULL)
Free(gUnknown_203B12C);
FreeAllWindowBuffers();
}
void sub_8132230(u8 taskId)
{
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
gTasks[taskId].func = sub_813226C;
}
void sub_813226C(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (!gPaletteFade.active)
{
sub_810713C(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08);
if (gUnknown_203B118->unk_00 != NULL)
SetMainCallback2(gUnknown_203B118->unk_00);
else
SetMainCallback2(gUnknown_203B10C.unk_00);
sub_813208C();
sub_81321D4();
DestroyTask(taskId);
}
}