mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 04:04:17 +01:00
Pokenav unk 1 almost done
This commit is contained in:
parent
2b740b46e8
commit
8338e29279
@ -3,247 +3,6 @@
|
||||
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start sub_81C963C
|
||||
sub_81C963C: @ 81C963C
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
bl sub_81C9814
|
||||
adds r3, r0, 0
|
||||
cmp r3, 0
|
||||
beq _081C964E
|
||||
movs r0, 0x1
|
||||
b _081C96F6
|
||||
_081C964E:
|
||||
ldr r2, =gMain
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
adds r6, r2, 0
|
||||
cmp r0, 0
|
||||
beq _081C96B8
|
||||
ldr r5, =gUnknown_0861FC59
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
ldrh r2, [r4]
|
||||
lsls r1, r2, 1
|
||||
adds r1, r2
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
adds r0, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x6
|
||||
beq _081C968E
|
||||
cmp r0, 0x6
|
||||
bgt _081C9688
|
||||
cmp r0, 0x5
|
||||
beq _081C96A4
|
||||
b _081C96B8
|
||||
.pool
|
||||
_081C9688:
|
||||
cmp r0, 0x7
|
||||
beq _081C96E4
|
||||
b _081C96B8
|
||||
_081C968E:
|
||||
movs r0, 0x4
|
||||
strh r0, [r4]
|
||||
strh r3, [r4, 0x2]
|
||||
ldrb r0, [r5, 0x18]
|
||||
strh r0, [r4, 0x4]
|
||||
ldr r0, =sub_81C96FC
|
||||
str r0, [r4, 0xC]
|
||||
movs r0, 0x4
|
||||
b _081C96F6
|
||||
.pool
|
||||
_081C96A4:
|
||||
strh r3, [r4, 0x6]
|
||||
ldr r1, =0x000186a7
|
||||
adds r0, r4, 0
|
||||
bl sub_81C97B0
|
||||
movs r0, 0x8
|
||||
b _081C96F6
|
||||
.pool
|
||||
_081C96B8:
|
||||
ldrh r1, [r6, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081C96F4
|
||||
movs r0, 0x2
|
||||
ldrsh r2, [r4, r0]
|
||||
ldr r1, =gUnknown_0861FC54
|
||||
ldrh r0, [r4]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r2, r0
|
||||
beq _081C96E4
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r0, =sub_81C9798
|
||||
str r0, [r4, 0xC]
|
||||
movs r0, 0x1
|
||||
b _081C96F6
|
||||
.pool
|
||||
_081C96E4:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
adds r0, r4, 0
|
||||
bl sub_81C97C0
|
||||
movs r0, 0x3
|
||||
b _081C96F6
|
||||
_081C96F4:
|
||||
movs r0, 0
|
||||
_081C96F6:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81C963C
|
||||
|
||||
thumb_func_start sub_81C96FC
|
||||
sub_81C96FC: @ 81C96FC
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl sub_81C9814
|
||||
cmp r0, 0
|
||||
beq _081C970C
|
||||
movs r0, 0x1
|
||||
b _081C9792
|
||||
_081C970C:
|
||||
ldr r0, =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081C9754
|
||||
ldr r3, =gUnknown_0861FC59
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrh r2, [r4]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
adds r1, r3
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xD
|
||||
beq _081C9780
|
||||
subs r0, 0x8
|
||||
bl sub_81C7694
|
||||
ldr r1, =0x000186a8
|
||||
adds r0, r4, 0
|
||||
bl sub_81C97B0
|
||||
movs r0, 0x3
|
||||
strh r0, [r4, 0x6]
|
||||
movs r0, 0x8
|
||||
b _081C9792
|
||||
.pool
|
||||
_081C9754:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081C9790
|
||||
movs r0, 0x2
|
||||
ldrsh r2, [r4, r0]
|
||||
ldr r1, =gUnknown_0861FC54
|
||||
ldrh r0, [r4]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r2, r0
|
||||
beq _081C9780
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r0, =sub_81C97A4
|
||||
str r0, [r4, 0xC]
|
||||
movs r0, 0x1
|
||||
b _081C9792
|
||||
.pool
|
||||
_081C9780:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
adds r0, r4, 0
|
||||
bl sub_81C97F8
|
||||
movs r0, 0x5
|
||||
b _081C9792
|
||||
_081C9790:
|
||||
movs r0, 0
|
||||
_081C9792:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81C96FC
|
||||
|
||||
thumb_func_start sub_81C9798
|
||||
sub_81C9798: @ 81C9798
|
||||
push {lr}
|
||||
bl sub_81C97C0
|
||||
movs r0, 0x3
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81C9798
|
||||
|
||||
thumb_func_start sub_81C97A4
|
||||
sub_81C97A4: @ 81C97A4
|
||||
push {lr}
|
||||
bl sub_81C97F8
|
||||
movs r0, 0x5
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81C97A4
|
||||
|
||||
thumb_func_start sub_81C97B0
|
||||
sub_81C97B0: @ 81C97B0
|
||||
str r1, [r0, 0x8]
|
||||
ldr r1, =sub_81C97BC
|
||||
str r1, [r0, 0xC]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_81C97B0
|
||||
|
||||
thumb_func_start sub_81C97BC
|
||||
sub_81C97BC: @ 81C97BC
|
||||
ldr r0, [r0, 0x8]
|
||||
bx lr
|
||||
thumb_func_end sub_81C97BC
|
||||
|
||||
thumb_func_start sub_81C97C0
|
||||
sub_81C97C0: @ 81C97C0
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl sub_81C9268
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4]
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r2, =gUnknown_0861FC59
|
||||
ldrh r1, [r4]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 1
|
||||
adds r0, 0x1
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
strh r0, [r4, 0x4]
|
||||
ldr r0, =sub_81C943C
|
||||
str r0, [r4, 0xC]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C97C0
|
||||
|
||||
thumb_func_start sub_81C97F8
|
||||
sub_81C97F8: @ 81C97F8
|
||||
movs r1, 0x3
|
||||
strh r1, [r0]
|
||||
movs r1, 0x1
|
||||
strh r1, [r0, 0x2]
|
||||
ldr r1, =gUnknown_0861FC59
|
||||
ldrb r1, [r1, 0x13]
|
||||
strh r1, [r0, 0x4]
|
||||
ldr r1, =sub_81C963C
|
||||
str r1, [r0, 0xC]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_81C97F8
|
||||
|
||||
thumb_func_start sub_81C9814
|
||||
sub_81C9814: @ 81C9814
|
||||
push {r4,r5,lr}
|
||||
|
@ -17,11 +17,17 @@ struct Pokenav1Struct
|
||||
|
||||
|
||||
extern u32 sub_81C76AC(void);
|
||||
extern u32 sub_81C963C(struct Pokenav1Struct *a0);
|
||||
extern u32 sub_81C96FC(struct Pokenav1Struct *a0);
|
||||
extern u32 sub_81C9814(void);
|
||||
extern void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1);
|
||||
extern void sub_81C7694(u32 a0);
|
||||
|
||||
u32 sub_81C9814(void);
|
||||
void sub_81C97F8(struct Pokenav1Struct *a0);
|
||||
void sub_81C97C0(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C97BC(struct Pokenav1Struct *a0);
|
||||
void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1);
|
||||
u32 sub_81C97A4(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C9798(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C96FC(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C963C(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C9600(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C9588(struct Pokenav1Struct *a0);
|
||||
u32 sub_81C9520(struct Pokenav1Struct *a0);
|
||||
@ -29,6 +35,7 @@ u32 sub_81C943C(struct Pokenav1Struct *a0);
|
||||
u32 (*sub_81C93EC(void))(struct Pokenav1Struct*);
|
||||
void sub_81C939C(struct Pokenav1Struct *state);
|
||||
|
||||
extern u8 gUnknown_0861FC54[];
|
||||
extern u8 gUnknown_0861FC59[];
|
||||
|
||||
u8 sub_81C9268(void)
|
||||
@ -294,3 +301,127 @@ u32 sub_81C9600(struct Pokenav1Struct *a0)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_81C963C(struct Pokenav1Struct *a0)
|
||||
{
|
||||
u32 v0 = sub_81C9814();
|
||||
if (v0)
|
||||
return 1;
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
switch (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6])
|
||||
{
|
||||
case 6:
|
||||
a0->unk0 = 4;
|
||||
a0->unk2 = v0;
|
||||
a0->unk4 = gUnknown_0861FC59[24];
|
||||
a0->unkC = sub_81C96FC;
|
||||
return 4;
|
||||
case 5:
|
||||
a0->unk6 = v0;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 7);
|
||||
return 8;
|
||||
case 7:
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81C97C0(a0);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
if (a0->unk2 != gUnknown_0861FC54[a0->unk0])
|
||||
{
|
||||
a0->unk2 = gUnknown_0861FC54[a0->unk0];
|
||||
a0->unkC = sub_81C9798;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81C97C0(a0);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_81C96FC(struct Pokenav1Struct *a0)
|
||||
{
|
||||
if (sub_81C9814())
|
||||
return 1;
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
u8 v0 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
|
||||
if (v0 != 13)
|
||||
{
|
||||
sub_81C7694(v0 - 8);
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 8);
|
||||
a0->unk6 = 3;
|
||||
return 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81C97F8(a0);
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
if (a0->unk2 != gUnknown_0861FC54[a0->unk0])
|
||||
{
|
||||
a0->unk2 = gUnknown_0861FC54[a0->unk0];
|
||||
a0->unkC = sub_81C97A4;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81C97F8(a0);
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_81C9798(struct Pokenav1Struct *a0)
|
||||
{
|
||||
sub_81C97C0(a0);
|
||||
return 3;
|
||||
}
|
||||
|
||||
u32 sub_81C97A4(struct Pokenav1Struct *a0)
|
||||
{
|
||||
sub_81C97F8(a0);
|
||||
return 5;
|
||||
}
|
||||
|
||||
void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1)
|
||||
{
|
||||
a0->unk8 = a1;
|
||||
a0->unkC = sub_81C97BC;
|
||||
}
|
||||
|
||||
u32 sub_81C97BC(struct Pokenav1Struct *a0)
|
||||
{
|
||||
return a0->unk8;
|
||||
}
|
||||
|
||||
void sub_81C97C0(struct Pokenav1Struct *a0)
|
||||
{
|
||||
a0->unk0 = sub_81C9268();
|
||||
a0->unk2 = 1;
|
||||
a0->unk4 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
|
||||
a0->unkC = sub_81C943C;
|
||||
}
|
||||
|
||||
void sub_81C97F8(struct Pokenav1Struct *a0)
|
||||
{
|
||||
a0->unk0 = 3;
|
||||
a0->unk2 = 1;
|
||||
a0->unk4 = gUnknown_0861FC59[19];
|
||||
a0->unkC = sub_81C963C;
|
||||
}
|
Loading…
Reference in New Issue
Block a user