summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokenav.s98
-rw-r--r--src/pokenav_before.c45
2 files changed, 44 insertions, 99 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s
index bcf612bda..96cc9b405 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -6,104 +6,6 @@
.text
- thumb_func_start sub_80EE58C
-sub_80EE58C: @ 80EE58C
- push {r4,r5,lr}
- ldr r5, _080EE5A8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EE624
- cmp r0, 0x1
- bgt _080EE5AC
- cmp r0, 0
- beq _080EE5B2
- b _080EE652
- .align 2, 0
-_080EE5A8: .4byte 0x02000000
-_080EE5AC:
- cmp r0, 0x2
- beq _080EE648
- b _080EE652
-_080EE5B2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EE5E4
- cmp r0, 0x2
- beq _080EE5FC
- ldr r0, _080EE5DC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EE608
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE5E0 @ =sub_80EE658
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE5DC: .4byte gMain
-_080EE5E0: .4byte sub_80EE658
-_080EE5E4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EE5F8 @ =0x0000876e
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080EE652
- .align 2, 0
-_080EE5F8: .4byte 0x0000876e
-_080EE5FC:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
-_080EE608:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE652
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE620 @ =sub_80EE8F4
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE620: .4byte sub_80EE8F4
-_080EE624:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EE652
- ldr r1, _080EE644 @ =0x0000876e
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
- .align 2, 0
-_080EE644: .4byte 0x0000876e
-_080EE648:
- bl sub_8055870
- cmp r0, 0
- bne _080EE652
-_080EE650:
- strh r0, [r4]
-_080EE652:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EE58C
-
thumb_func_start sub_80EE658
sub_80EE658: @ 80EE658
push {r4,r5,lr}
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index e43ff2857..0e28b72ba 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -41,7 +41,9 @@ struct UnknownPokenav0 {
/* 0x76AA */ u8 var76aa;
/* 0x76AB */ u8 fill76AB[0x10BD];
/* 0x8768 */ u32 var8768;
- /* 0x876C */ u8 fill876C[0x8];
+ /* 0x876C */ u8 fill876C[0x2];
+ /* 0x876E */ u8 var876E;
+ /* 0x876F */ u8 fill876F[0x5];
/* 0x8774 */ s16 var8774;
/* 0x8776 */ u8 fill8776[0x62];
/* 0x87D8 */ u8 var87D8;
@@ -2214,3 +2216,44 @@ void sub_80EE3D8() {
break;
}
}
+
+void sub_80F0FFC();
+void sub_80EE658();
+void sub_80EE8F4();
+
+void sub_80EE58C() {
+ switch (ewram0.var304) {
+ case 0:
+ switch (sub_80F5DD4()) {
+ case 1:
+ PlaySE(0x5);
+ sub_80F0FFC(ewram0.var876E);
+ break;
+ case 2:
+ PlaySE(0x5);
+ ewram0.var304++;
+ break;
+ default:
+ if (gMain.newKeys & A_BUTTON) {
+ PlaySE(0x5);
+ sub_80EBDBC(&sub_80EE658);
+ }
+ else if (gMain.newKeys & B_BUTTON) {
+ PlaySE(0x5);
+ sub_80EBDBC(&sub_80EE8F4);
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (sub_80F0718()) return;
+ sub_80F0FFC(ewram0.var876E);
+ sub_80F3264();
+ ewram0.var304++;
+ break;
+ case 2:
+ if (sub_8055870()) return;
+ ewram0.var304 = 0;
+ break;
+ }
+}