diff options
-rw-r--r-- | asm/pokenav.s | 98 | ||||
-rw-r--r-- | src/pokenav_before.c | 45 |
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; + } +} |