diff options
-rw-r--r-- | asm/pokenav.s | 303 | ||||
-rw-r--r-- | src/pokenav_before.c | 135 |
2 files changed, 135 insertions, 303 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index 96cc9b405..ccd00414c 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -6,309 +6,6 @@ .text - thumb_func_start sub_80EE658 -sub_80EE658: @ 80EE658 - push {r4,r5,lr} - ldr r1, _080EE678 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EE66C - b _080EE8E8 -_080EE66C: - lsls r0, 2 - ldr r1, _080EE67C @ =_080EE680 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE678: .4byte 0x02000000 -_080EE67C: .4byte _080EE680 - .align 2, 0 -_080EE680: - .4byte _080EE6C8 - .4byte _080EE6DA - .4byte _080EE6F4 - .4byte _080EE708 - .4byte _080EE71C - .4byte _080EE730 - .4byte _080EE758 - .4byte _080EE76A - .4byte _080EE780 - .4byte _080EE820 - .4byte _080EE840 - .4byte _080EE854 - .4byte _080EE868 - .4byte _080EE86E - .4byte _080EE880 - .4byte _080EE898 - .4byte _080EE8B4 - .4byte _080EE8D4 -_080EE6C8: - movs r0, 0x1 - bl sub_80F3294 - movs r0, 0xA - bl sub_80EEFBC - bl sub_80F0B24 - b _080EE8BE -_080EE6DA: - bl sub_80F0B44 - lsls r0, 24 - cmp r0, 0 - beq _080EE6E6 - b _080EE8E8 -_080EE6E6: - ldr r1, _080EE6F0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE6F0: .4byte 0x02000000 -_080EE6F4: - bl sub_80F0F64 - ldr r1, _080EE704 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE704: .4byte 0x02000000 -_080EE708: - bl sub_80F0FEC - lsls r0, 24 - cmp r0, 0 - beq _080EE714 - b _080EE8E8 -_080EE714: - movs r0, 0x1 - bl sub_80F6FB8 - b _080EE8BE -_080EE71C: - bl sub_80F6DB8 - ldr r1, _080EE72C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE72C: .4byte 0x02000000 -_080EE730: - ldr r4, _080EE750 @ =0x02008788 - adds r0, r4, 0 - subs r0, 0x1A - ldrh r1, [r0] - adds r0, r4, 0 - bl sub_80F700C - adds r0, r4, 0 - bl sub_80F42C4 - ldr r1, _080EE754 @ =0xffff7b7c - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE8E8 - .align 2, 0 -_080EE750: .4byte 0x02008788 -_080EE754: .4byte 0xffff7b7c -_080EE758: - bl sub_80F0CD8 - ldr r1, _080EE77C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE76A: - bl sub_80F6E9C - lsls r0, 24 - cmp r0, 0 - beq _080EE776 - b _080EE8E8 -_080EE776: - bl sub_80F0D5C - b _080EE8B8 - .align 2, 0 -_080EE77C: .4byte 0x02000000 -_080EE780: - ldr r2, _080EE7B0 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE7B8 - ldr r1, _080EE7B4 @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE7B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F708C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE7E8 - .align 2, 0 -_080EE7B0: .4byte gMain -_080EE7B4: .4byte 0x000087dc -_080EE7B8: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE7F8 - ldr r1, _080EE7F0 @ =0x000087dc - adds r0, r4, r1 - ldr r2, _080EE7F4 @ =0x00008774 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE7F8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F708C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EE7E8: - movs r0, 0x10 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE7F0: .4byte 0x000087dc -_080EE7F4: .4byte 0x00008774 -_080EE7F8: - ldrh r1, [r3, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE8E8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4394 - bl sub_80F0EC0 - ldr r1, _080EE81C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE81C: .4byte 0x02000000 -_080EE820: - bl sub_80F6ED4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - bl sub_80F0EF4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - movs r0, 0 - bl sub_80F6FB8 - bl sub_80F2FB0 - b _080EE8BE -_080EE840: - bl sub_80F6134 - ldr r1, _080EE850 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE850: .4byte 0x02000000 -_080EE854: - bl sub_80F0FA0 - ldr r1, _080EE864 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE864: .4byte 0x02000000 -_080EE868: - bl sub_80F0FEC - b _080EE8B8 -_080EE86E: - bl sub_80F0C28 - ldr r1, _080EE87C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE87C: .4byte 0x02000000 -_080EE880: - bl sub_80F0C48 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - ldr r1, _080EE894 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE894: .4byte 0x02000000 -_080EE898: - movs r0, 0x9 - bl sub_80EEFBC - movs r0, 0 - bl sub_80F3294 - ldr r0, _080EE8B0 @ =sub_80EE58C - bl sub_80EBDBC - bl sub_80EED9C - b _080EE8E8 - .align 2, 0 -_080EE8B0: .4byte sub_80EE58C -_080EE8B4: - bl sub_80F70FC -_080EE8B8: - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 -_080EE8BE: - ldr r1, _080EE8D0 @ =0x02000000 - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 -_080EE8C6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE8D0: .4byte 0x02000000 -_080EE8D4: - bl sub_8055870 - cmp r0, 0 - bne _080EE8E8 - ldr r0, _080EE8F0 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] -_080EE8E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE8F0: .4byte 0x02000000 - thumb_func_end sub_80EE658 - thumb_func_start sub_80EE8F4 sub_80EE8F4: @ 80EE8F4 push {r4,lr} diff --git a/src/pokenav_before.c b/src/pokenav_before.c index 0e28b72ba..73567fc33 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -2257,3 +2257,138 @@ void sub_80EE58C() { break; } } + +void sub_80F3294(); +void sub_80F0B24(); +bool8 sub_80F0B44(); +void sub_80F0F64(); +bool8 sub_80F0FEC(); +void sub_80F6FB8(); +void sub_80F6DB8(); +void sub_80F0CD8(); +bool8 sub_80F6E9C(); +bool8 sub_80F0D5C(); +bool8 sub_80F6ED4(); +bool8 sub_80F0EF4(); +void sub_80F2FB0(); +void sub_80F0FA0(); +void sub_80F0C28(); +bool8 sub_80F0C48(); +bool8 sub_80F70FC(); +void sub_80F708C(u32); +void sub_80F4394(); +void sub_80F0EC0(); +void sub_80F700C(); +void sub_80F42C4(); + +void sub_80EE658() { + switch (ewram0.var304) { + case 0: + sub_80F3294(0x1); + sub_80EEFBC(0xA); + sub_80F0B24(); + ewram0.var304++; + break; + case 1: + if (sub_80F0B44()) return; + ewram0.var304++; + break; + case 2: + sub_80F0F64(); + ewram0.var304++; + break; + case 3: + if (sub_80F0FEC()) return; + sub_80F6FB8(0x1); + ewram0.var304++; + break; + case 4: + sub_80F6DB8(); + ewram0.var304++; + break; + case 5: + sub_80F700C((u8 *)(ewram + 0x8788), *(u16 *)(ewram + 0x8788 - 0x1A)); + sub_80F42C4((u8 *)(ewram + 0x8788)); + ewram0.var304++; + break; + case 6: + sub_80F0CD8(); + ewram0.var304++; + case 7: + if (sub_80F6E9C()) return; + if (sub_80F0D5C()) return; + ewram0.var304++; + break; + case 8: + if (gMain.heldKeys & 0x40) { + if (ewram0.var87DC) { + PlaySE(0x5); + sub_80F708C(-1); + ewram0.var304 = 0x10; + } + else goto label1; + } + else goto label1; + break; +label1: + if (gMain.heldKeys & 0x80) { + if (ewram0.var87DC < ewram0.var8774) { + PlaySE(0x5); + sub_80F708C(1); + ewram0.var304 = 0x10; + } + else goto label2; + } + else goto label2; + break; +label2: + if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80F4394(); + sub_80F0EC0(); + ewram0.var304++; + } + break; + case 9: + if (sub_80F6ED4()) return; + if (sub_80F0EF4()) return; + sub_80F6FB8(0); + sub_80F2FB0(); + ewram0.var304++; + break; + case 0xA: + sub_80F6134(); + ewram0.var304++; + break; + case 0xB: + sub_80F0FA0(); + ewram0.var304++; + break; + case 0xC: + if (sub_80F0FEC()) return; + ewram0.var304++; + break; + case 0xD: + sub_80F0C28(); + ewram0.var304++; + break; + case 0xE: + if (sub_80F0C48()) return; + ewram0.var304++; + break; + case 0xF: + sub_80EEFBC(0x9); + sub_80F3294(0); + sub_80EBDBC(&sub_80EE58C); + sub_80EED9C(); + break; + case 0x10: + if (sub_80F70FC()) return; + ewram0.var304++; + break; + case 0x11: + if (sub_8055870()) return; + ewram0.var304 = 0x8; + break; + } +} |