mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-24 11:24:29 -05:00
sub_8136638
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user