tm_case sub_8132F60

This commit is contained in:
PikalaxALT
2019-04-14 19:11:11 -04:00
parent 584bdbe5b5
commit c95740ab85
4 changed files with 133 additions and 331 deletions
-331
View File
@@ -5,337 +5,6 @@
.text
thumb_func_start sub_8132F60
sub_8132F60: @ 8132F60
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _08132FA4 @ =gTasks+0x8
adds r6, r0, r1
ldr r0, _08132FA8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08132F8E
movs r1, 0x10
ldrsh r0, [r6, r1]
cmp r0, 0x14
bgt _08132F8E
movs r0, 0x15
strh r0, [r6, 0x10]
bl sub_815AC20
_08132F8E:
movs r3, 0x10
ldrsh r0, [r6, r3]
cmp r0, 0x15
bls _08132F98
b _08133210
_08132F98:
lsls r0, 2
ldr r1, _08132FAC @ =_08132FB0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08132FA4: .4byte gTasks+0x8
_08132FA8: .4byte gMain
_08132FAC: .4byte _08132FB0
.align 2, 0
_08132FB0:
.4byte _08133008
.4byte _08133024
.4byte _08133050
.4byte _08133050
.4byte _08133050
.4byte _08133080
.4byte _08133080
.4byte _08133080
.4byte _081330B0
.4byte _081330E0
.4byte _081330F4
.4byte _08133024
.4byte _08133050
.4byte _08133050
.4byte _08133050
.4byte _08133080
.4byte _08133080
.4byte _08133080
.4byte _0813312C
.4byte _081330E0
.4byte _0813315C
.4byte _08133170
_08133008:
ldr r0, _08133020 @ =0xffff8405
movs r1, 0
str r1, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x6
bl BeginNormalPaletteFade
movs r0, 0x1
bl sub_8131F64
b _081331EA
.align 2, 0
_08133020: .4byte 0xffff8405
_08133024:
ldr r0, _0813304C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08133036
b _08133232
_08133036:
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bgt _08133046
b _08133232
_08133046:
strh r1, [r6, 0x12]
b _081331EA
.align 2, 0
_0813304C: .4byte gPaletteFade
_08133050:
movs r0, 0x12
ldrsh r1, [r6, r0]
cmp r1, 0
bne _08133066
ldr r0, _0813307C @ =gMain
strh r1, [r0, 0x2E]
movs r1, 0x80
strh r1, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
_08133066:
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bgt _08133076
b _08133232
_08133076:
movs r0, 0
strh r0, [r6, 0x12]
b _081331EA
.align 2, 0
_0813307C: .4byte gMain
_08133080:
movs r3, 0x12
ldrsh r1, [r6, r3]
cmp r1, 0
bne _08133096
ldr r0, _081330AC @ =gMain
strh r1, [r0, 0x2E]
movs r1, 0x40
strh r1, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
_08133096:
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bgt _081330A6
b _08133232
_081330A6:
movs r0, 0
strh r0, [r6, 0x12]
b _081331EA
.align 2, 0
_081330AC: .4byte gMain
_081330B0:
movs r0, 0x1
bl sub_8131F64
ldr r2, _081330D4 @ =gUnknown_841C587
adds r0, r4, 0
movs r1, 0x4
movs r3, 0
bl sub_813337C
ldr r1, _081330D8 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _081330DC @ =sub_8132F60
str r1, [r0]
b _081331EA
.align 2, 0
_081330D4: .4byte gUnknown_841C587
_081330D8: .4byte gTasks
_081330DC: .4byte sub_8132F60
_081330E0:
bl RunTextPrinters
movs r0, 0x6
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
beq _081330F2
b _08133232
_081330F2:
b _081331EA
_081330F4:
ldr r0, _08133128 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _08133102
b _08133232
_08133102:
movs r0, 0
bl sub_8131F64
movs r0, 0x80
lsls r0, 3
movs r1, 0
str r1, [sp]
movs r2, 0x6
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x6
movs r1, 0
bl sub_810F260
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
b _081331EA
.align 2, 0
_08133128: .4byte gMain
_0813312C:
movs r0, 0x1
bl sub_8131F64
ldr r2, _08133150 @ =gUnknown_841C693
adds r0, r4, 0
movs r1, 0x4
movs r3, 0
bl sub_813337C
ldr r1, _08133154 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _08133158 @ =sub_8132F60
str r1, [r0]
b _081331EA
.align 2, 0
_08133150: .4byte gUnknown_841C693
_08133154: .4byte gTasks
_08133158: .4byte sub_8132F60
_0813315C:
ldr r0, _0813316C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08133232
b _081331EA
.align 2, 0
_0813316C: .4byte gMain
_08133170:
ldr r0, _081331F4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0
bne _08133232
ldr r5, _081331F8 @ =gSaveBlock1Ptr
ldr r0, [r5]
ldr r1, _081331FC @ =0x00000464
adds r0, r1
ldr r4, _08133200 @ =gUnknown_203B11C
ldr r1, [r4]
movs r2, 0xE8
bl memcpy
ldr r0, [r5]
movs r3, 0xEE
lsls r3, 2
adds r0, r3
ldr r1, [r4]
adds r1, 0xE8
movs r2, 0x78
bl memcpy
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl sub_810713C
ldr r2, _08133204 @ =gUnknown_203B10C
ldr r0, [r4]
movs r3, 0xB0
lsls r3, 1
adds r1, r0, r3
ldrh r1, [r1]
strh r1, [r2, 0x8]
adds r3, 0x2
adds r1, r0, r3
ldrh r1, [r1]
strh r1, [r2, 0xA]
bl Free
ldr r0, _08133208 @ =gPlttBufferFaded
ldr r1, _0813320C @ =gPlttBufferUnfaded
movs r2, 0x80
lsls r2, 1
bl CpuFastSet
bl sub_8108CF0
movs r0, 0x1
negs r0, r0
movs r1, 0x2
negs r1, r1
str r7, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_081331EA:
ldrh r0, [r6, 0x10]
adds r0, 0x1
strh r0, [r6, 0x10]
b _08133232
.align 2, 0
_081331F4: .4byte gPaletteFade
_081331F8: .4byte gSaveBlock1Ptr
_081331FC: .4byte 0x00000464
_08133200: .4byte gUnknown_203B11C
_08133204: .4byte gUnknown_203B10C
_08133208: .4byte gPlttBufferFaded
_0813320C: .4byte gPlttBufferUnfaded
_08133210:
ldr r0, _0813323C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08133232
ldr r0, _08133240 @ =gUnknown_203B10C
ldr r0, [r0]
bl SetMainCallback2
bl sub_813208C
bl sub_81321D4
adds r0, r4, 0
bl DestroyTask
_08133232:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813323C: .4byte gPaletteFade
_08133240: .4byte gUnknown_203B10C
thumb_func_end sub_8132F60
thumb_func_start sub_8133244
sub_8133244: @ 8133244
push {r4,lr}
+1
View File
@@ -12,6 +12,7 @@ extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
void sub_8108CF0(void);
void UseFameCheckerFromMenu(void);
#endif //GUARD_ITEM_MENU_H
+1
View File
@@ -2,5 +2,6 @@
#define GUARD_TEACHY_TV_H
void sub_815ABFC(void);
void sub_815AC20(void);
#endif //GUARD_TEACHY_TV_H
+131
View File
@@ -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;
}
}