sub_8136638

This commit is contained in:
scnorton
2017-06-28 18:20:16 -04:00
parent 7bb9c048b7
commit 7caa3fd85b
3 changed files with 125 additions and 239 deletions

View File

@@ -6,225 +6,6 @@
.text
thumb_func_start sub_8136638
sub_8136638: @ 8136638
push {r4,lr}
ldr r0, _08136654 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
ldrb r0, [r0]
cmp r0, 0x7
bls _08136648
b _081367FA
_08136648:
lsls r0, 2
ldr r1, _08136658 @ =_0813665C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08136654: .4byte gUnknown_02039304
_08136658: .4byte _0813665C
.align 2, 0
_0813665C:
.4byte _0813667C
.4byte _08136748
.4byte _08136754
.4byte _08136774
.4byte _081367FA
.4byte _08136780
.4byte _08136798
.4byte _081367E0
_0813667C:
ldr r2, _081366A4 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081366AC
movs r0, 0x5
bl PlaySE
movs r0, 0x1
bl sub_80F5060
bl move_anim_execute
ldr r0, _081366A8 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0x1
b _081367F8
.align 2, 0
_081366A4: .4byte gMain
_081366A8: .4byte gUnknown_02039304
_081366AC:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081366D4
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_80F5060
bl move_anim_execute
ldr r0, _081366D0 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0x1
b _081367F8
.align 2, 0
_081366D0: .4byte gUnknown_02039304
_081366D4:
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081366F4
movs r0, 0x5
bl PlaySE
ldr r0, _081366F0 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0x3
b _081367F8
.align 2, 0
_081366F0: .4byte gUnknown_02039304
_081366F4:
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _081366FE
b _081367FA
_081366FE:
movs r0, 0x5
bl PlaySE
ldr r0, _08136728 @ =gUnknown_083DFEC4
ldr r0, [r0]
ldr r2, _0813672C @ =0x000087dc
adds r1, r0, r2
movs r2, 0
ldrsh r1, [r1, r2]
ldr r2, _08136730 @ =0x000087da
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
subs r0, 0x1
cmp r1, r0
bne _08136738
ldr r0, _08136734 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0x3
b _081367F8
.align 2, 0
_08136728: .4byte gUnknown_083DFEC4
_0813672C: .4byte 0x000087dc
_08136730: .4byte 0x000087da
_08136734: .4byte gUnknown_02039304
_08136738:
ldr r0, _08136744 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0x5
b _081367F8
.align 2, 0
_08136744: .4byte gUnknown_02039304
_08136748:
bl gpu_sync_bg_show
lsls r0, 24
cmp r0, 0
bne _081367FA
b _08136784
_08136754:
bl sub_8055870
adds r4, r0, 0
cmp r4, 0
bne _081367FA
bl sub_80F1934
bl sub_80F3D00
ldr r0, _08136770 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
strb r4, [r0]
b _081367FA
.align 2, 0
_08136770: .4byte gUnknown_02039304
_08136774:
ldr r0, _0813677C @ =sub_8136B44
bl launch_c3_walk_stairs_and_run_once
b _081367FA
.align 2, 0
_0813677C: .4byte sub_8136B44
_08136780:
bl sub_8136BB8
_08136784:
ldr r0, _08136794 @ =gUnknown_02039304
ldr r1, [r0]
adds r1, 0x50
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _081367FA
.align 2, 0
_08136794: .4byte gUnknown_02039304
_08136798:
bl sub_8136C40
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _081367B8
cmp r1, 0
bgt _081367B2
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _081367F0
b _081367FA
_081367B2:
cmp r1, 0x1
bne _081367FA
b _081367F0
_081367B8:
bl sub_8137058
lsls r0, 24
cmp r0, 0
beq _081367D4
bl sub_8136D60
ldr r0, _081367D0 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0x7
b _081367F8
.align 2, 0
_081367D0: .4byte gUnknown_02039304
_081367D4:
ldr r0, _081367DC @ =sub_8136808
bl launch_c3_walk_stairs_and_run_once
b _081367FA
.align 2, 0
_081367DC: .4byte sub_8136808
_081367E0:
ldr r0, _08136800 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _081367FA
bl sub_8136D8C
_081367F0:
ldr r0, _08136804 @ =gUnknown_02039304
ldr r0, [r0]
adds r0, 0x50
movs r1, 0
_081367F8:
strb r1, [r0]
_081367FA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08136800: .4byte gMain
_08136804: .4byte gUnknown_02039304
thumb_func_end sub_8136638
thumb_func_start sub_8136808
sub_8136808: @ 8136808
push {r4,r5,lr}
@@ -1517,5 +1298,5 @@ _08137218:
.align 2, 0
_0813721C: .4byte gUnknown_02039304
thumb_func_end sub_81371DC
.align 2, 0 @ Don't pad with nop.

View File

@@ -28,26 +28,29 @@ struct UnkPokenavStruct {
/*0x0000*/ u8 filler030E[0x6a9e];
/*0x6DAC*/ u8 unk6DAC;
/*0x6DAD*/ u8 filler6DAD[0x8fd];
/*0x6DAD*/ u8 unk76AA;
/*0x6DAD*/ u8 filler76AB[0x10bd];
/*0x6DAD*/ struct UnkPokenavStruct_Sub2 *unk8768;
/*0x6DAD*/ u8 filler876C[0x74];
/*0x6DAD*/ void *unk87E0;
/*0x6DAD*/ u8 filler87E4[0x44];
/*0x6DAD*/ u8 unk8828;
/*0x6DAD*/ u8 filler8829[0x7c7];
/*0x6DAD*/ u8 unk8ff0;
/*0x6DAD*/ u8 filler8ff1[0x13];
/*0x6DAD*/ u8 unk9004;
/*0x6DAD*/ u8 filler9005[0x33f];
/*0x6DAD*/ u8 unk9344;
/*0x6DAD*/ u8 filler9345[0x3ba3];
/*0x76AA*/ u8 unk76AA;
/*0x76AB*/ u8 filler76AB[0x10bd];
/*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768;
/*0x876C*/ u8 filler876C[0x6e];
/*0x87DA*/ s16 unk87DA;
/*0x87DC*/ s16 unk87DC;
/*0x87DE*/ s16 unk87DE;
/*0x87E0*/ void *unk87E0;
/*0x87E4*/ u8 filler87E4[0x44];
/*0x8828*/ u8 unk8828;
/*0x8829*/ u8 filler8829[0x7c7];
/*0x8ff0*/ u8 unk8ff0;
/*0x8ff1*/ u8 filler8ff1[0x13];
/*0x9004*/ u8 unk9004;
/*0x9005*/ u8 filler9005[0x33f];
/*0x9344*/ u8 unk9344;
/*0x9345*/ u8 filler9345[0x3ba3];
/*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
/*0xD158*/ u16 unkD158;
/*0xd15a*/ u8 fillerD15A[6];
/*0xd162*/ u16 unkD160;
/*0xd162*/ u8 unkD162[2];
/*0xd164*/ struct UnkPokenavStruct_Sub1 unkD164;
/*0xD15A*/ u8 fillerD15A[6];
/*0xD162*/ u16 unkD160;
/*0xD162*/ u8 unkD162[2];
/*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
};
extern struct UnkPokenavStruct *const gUnknown_083DFEC4;
@@ -70,5 +73,8 @@ void sub_80F5B38(void);
bool8 sub_80F5B50(void);
void sub_80F5CDC(u8);
void sub_80EBA5C(void);
void sub_80F5060(bool8);
void move_anim_execute(void);
bool8 gpu_sync_bg_show(void);
#endif // GUARD_POKENAV_H

View File

@@ -10,6 +10,8 @@
#include "palette.h"
#include "text.h"
#include "menu.h"
#include "sound.h"
#include "songs.h"
#include "use_pokeblock.h"
asm(".text\n"
@@ -33,7 +35,14 @@ void sub_81365C8(void);
void sub_8136638(void);
void sub_81368A4(void);
void sub_8089668(void);
void sub_8136B44(void);
u8 sub_81370E4(u8);
void sub_8136BB8(void);
s8 sub_8136C40(void);
bool8 sub_8137058(void);
void sub_8136D60(void);
void sub_8136808(void);
void sub_8136D8C(void);
void sub_8136130(struct Pokeblock *pokeblock, MainCallback callback)
{
@@ -198,7 +207,7 @@ void sub_8136294(void)
gUnknown_02039304->unk50++;
break;
case 16:
DmaClear32(3, 0x600f800, 0x800);
DmaClear32(3, BG_SCREEN_ADDR(31), 0x800);
REG_BG1VOFS = 0;
REG_BG1HOFS = 0;
REG_BG1CNT = BGCNT_SCREENBASE(31);
@@ -267,3 +276,93 @@ void sub_81365C8(void)
break;
}
}
void sub_8136638(void)
{
switch (gUnknown_02039304->unk50)
{
case 0:
if (gMain.heldKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
sub_80F5060(TRUE);
move_anim_execute();
gUnknown_02039304->unk50 = 1;
}
else if (gMain.heldKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
sub_80F5060(FALSE);
move_anim_execute();
gUnknown_02039304->unk50 = 1;
}
else if (gMain.newKeys & B_BUTTON)
{
PlaySE(SE_SELECT);
gUnknown_02039304->unk50 = 3;
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
if (gUnknown_083DFEC4->unk87DC == gUnknown_083DFEC4->unk87DA - 1)
{
gUnknown_02039304->unk50 = 3;
}
else
{
gUnknown_02039304->unk50 = 5;
}
}
break;
case 1:
if (!gpu_sync_bg_show())
{
gUnknown_02039304->unk50++;
}
break;
case 2:
if (!sub_8055870())
{
sub_80F1934();
sub_80F3D00();
gUnknown_02039304->unk50 = 0;
}
break;
case 3:
launch_c3_walk_stairs_and_run_once(sub_8136B44);
break;
case 4:
break;
case 5:
sub_8136BB8();
gUnknown_02039304->unk50++;
break;
case 6:
switch (sub_8136C40())
{
case 1:
case -1:
gUnknown_02039304->unk50 = 0;
break;
case 0:
if (sub_8137058())
{
sub_8136D60();
gUnknown_02039304->unk50 = 7;
}
else
{
launch_c3_walk_stairs_and_run_once(sub_8136808);
}
break;
}
break;
case 7:
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
sub_8136D8C();
gUnknown_02039304->unk50 = 0;
}
break;
}
}