diff options
-rw-r--r-- | asm/pokenav.s | 177 | ||||
-rw-r--r-- | src/pokenav_before.c | 62 |
2 files changed, 59 insertions, 180 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index 543fc3392..d4544307d 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -6,183 +6,6 @@ .text - thumb_func_start sub_80ECC08 -sub_80ECC08: @ 80ECC08 - push {r4,r5,lr} - ldr r4, _080ECC20 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080ECC24 - cmp r0, 0x1 - bne _080ECC1E - b _080ECD64 -_080ECC1E: - b _080ECD74 - .align 2, 0 -_080ECC20: .4byte 0x02000000 -_080ECC24: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080ECC4C - movs r0, 0x5 - bl PlaySE - ldr r1, _080ECC48 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - bl sub_80EED9C - b _080ECD74 - .align 2, 0 -_080ECC48: .4byte 0x00006dad -_080ECC4C: - ldr r0, _080ECC78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080ECC5A - b _080ECD40 -_080ECC5A: - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECC7C @ =0x00006dad - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _080ECD0C - lsls r0, 2 - ldr r1, _080ECC80 @ =_080ECC84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECC78: .4byte gMain -_080ECC7C: .4byte 0x00006dad -_080ECC80: .4byte _080ECC84 - .align 2, 0 -_080ECC84: - .4byte _080ECC9C - .4byte _080ECCB0 - .4byte _080ECCC4 - .4byte _080ECCD8 - .4byte _080ECCEC - .4byte _080ECD00 -_080ECC9C: - ldr r0, _080ECCA8 @ =0x02000000 - ldr r3, _080ECCAC @ =0x000087d8 - adds r0, r3 - movs r1, 0x16 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCA8: .4byte 0x02000000 -_080ECCAC: .4byte 0x000087d8 -_080ECCB0: - ldr r0, _080ECCBC @ =0x02000000 - ldr r1, _080ECCC0 @ =0x000087d8 - adds r0, r1 - movs r1, 0x17 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCBC: .4byte 0x02000000 -_080ECCC0: .4byte 0x000087d8 -_080ECCC4: - ldr r0, _080ECCD0 @ =0x02000000 - ldr r2, _080ECCD4 @ =0x000087d8 - adds r0, r2 - movs r1, 0x18 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCD0: .4byte 0x02000000 -_080ECCD4: .4byte 0x000087d8 -_080ECCD8: - ldr r0, _080ECCE4 @ =0x02000000 - ldr r3, _080ECCE8 @ =0x000087d8 - adds r0, r3 - movs r1, 0x21 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCE4: .4byte 0x02000000 -_080ECCE8: .4byte 0x000087d8 -_080ECCEC: - ldr r0, _080ECCF8 @ =0x02000000 - ldr r1, _080ECCFC @ =0x000087d8 - adds r0, r1 - movs r1, 0x2F - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCF8: .4byte 0x02000000 -_080ECCFC: .4byte 0x000087d8 -_080ECD00: - ldr r0, _080ECD08 @ =sub_80EC9A8 - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD08: .4byte sub_80EC9A8 -_080ECD0C: - ldr r1, _080ECD2C @ =0x02000000 - ldr r2, _080ECD30 @ =0x00006dad - adds r0, r1, r2 - ldrb r2, [r0] - ldr r3, _080ECD34 @ =0x00006dfc - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080ECD38 @ =0x000076aa - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080ECD3C @ =sub_80ED01C - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD2C: .4byte 0x02000000 -_080ECD30: .4byte 0x00006dad -_080ECD34: .4byte 0x00006dfc -_080ECD38: .4byte 0x000076aa -_080ECD3C: .4byte sub_80ED01C -_080ECD40: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ECD74 - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECD60 @ =0x00006dad - adds r1, r4, r2 - movs r0, 0x5 - strb r0, [r1] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080ECD74 - .align 2, 0 -_080ECD60: .4byte 0x00006dad -_080ECD64: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080ECD74 - ldr r0, _080ECD7C @ =sub_80EC9A8 - bl sub_80EBDBC -_080ECD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECD7C: .4byte sub_80EC9A8 - thumb_func_end sub_80ECC08 - thumb_func_start sub_80ECD80 sub_80ECD80: @ 80ECD80 push {r4,lr} diff --git a/src/pokenav_before.c b/src/pokenav_before.c index 210aedf0e..f86b93ca1 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -31,13 +31,19 @@ struct UnknownPokenav0 { /* 0x6ddc */ s8 var6ddc; /* 0x6ddd */ u8 fill6ddd[0x13]; /* 0x6df0 */ s8 var6df0; - /* 0x6df1 */ u8 fill6df1[0x9f]; + /* 0x6df1 */ u8 fill6df1[0xB]; + /* 0x6dfc */ u8 var6dfc; + /* 0x6dfd */ u8 fill6dfd[0x93]; /* 0x6e90 */ u8 var6e90; /* 0x6e91 */ u8 fill6e91[0x4]; /* 0x6e95 */ u8 var6e95; - /* 0x6e96 */ u8 var6e96[0x18d2]; + /* 0x6e96 */ u8 var6e96[0x814]; + /* 0x76AA */ u8 var76aa; + /* 0x76AB */ u8 fill76AB[0x10BD]; /* 0x8768 */ u32 var8768; - /* 0x876C */ u8 fill876B[0x00bc]; + /* 0x876C */ u8 fill876B[0x6C]; + /* 0x87D8 */ u8 var87D8; + /* 0x87D9 */ u8 fill87D9[0x4F]; /* 0x8828 */ u8 var8828; /* 0x8829 */ u8 fill8829[0x07bf]; /* 0x8FE8 */ s8 var8fe8; @@ -823,3 +829,53 @@ void sub_80ECA10() { sub_80EBDBC(&sub_80EC86C); } } + +void sub_80ED01C(); + +void sub_80ECC08() { + switch (ewram0.var304) { + case 0: + if (sub_80EEC90()) { + PlaySE(0x5); + sub_80EF428(2, ewram0.var6dad); + sub_80EED9C(); + break; + } + if ((gMain.newKeys & A_BUTTON)) { + PlaySE(0x5); + switch ((s8)ewram0.var6dad) { + case 0: + ewram0.var87D8 = 22; + break; + case 1: + ewram0.var87D8 = 23; + break; + case 2: + ewram0.var87D8 = 24; + break; + case 3: + ewram0.var87D8 = 33; + break; + case 4: + ewram0.var87D8 = 47; + break; + case 5: + sub_80EBDBC(&sub_80EC9A8); + return; + } + ewram0.var6dfc = ewram0.var6dad; + ewram0.var76aa = 1; + sub_80EBDBC(&sub_80ED01C); + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + ewram0.var6dad = 0x5; + ewram0.var304++; + } + break; + case 1: + if (sub_80F1E6C()) return;; + sub_80EBDBC(&sub_80EC9A8); + break; + } +} |