summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-01-02 19:22:51 -0600
committercamthesaxman <cameronghall@cox.net>2018-01-02 19:22:51 -0600
commita2e854bb7cda3d4de0b4f2d1fc9e7bd88a471980 (patch)
tree66e01bd43d5b1784d54e33455830f19335c1022e
parent8a14021bf25ffd7bf0d6a1ce808f29d3528bf111 (diff)
decompile sub_80E7324 - sub_80E7AD4
-rw-r--r--asm/easy_chat.s1084
-rw-r--r--include/easy_chat.h2
-rw-r--r--src/easy_chat_before.c418
3 files changed, 396 insertions, 1108 deletions
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index b019ab00a..708881567 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -5,1090 +5,6 @@
.text
- thumb_func_start sub_80E7324
-sub_80E7324: @ 80E7324
- push {lr}
- ldr r0, _080E733C @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E73C6
- lsls r0, r1, 2
- ldr r1, _080E7340 @ =_080E7344
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E733C: .4byte gSharedMem + 0x1000
-_080E7340: .4byte _080E7344
- .align 2, 0
-_080E7344:
- .4byte _080E7358
- .4byte _080E737C
- .4byte _080E7384
- .4byte _080E738A
- .4byte _080E73A4
-_080E7358:
- bl sub_80E7DD0
- lsls r0, 24
- cmp r0, 0
- bne _080E7370
- ldr r0, _080E736C @ =sub_80E7294
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E736C: .4byte sub_80E7294
-_080E7370:
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E87CC
- b _080E7394
-_080E737C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E73C6
-_080E7384:
- bl sub_80E9E98
- b _080E7394
-_080E738A:
- bl sub_80EA184
- lsls r0, 24
- cmp r0, 0
- beq _080E73C6
-_080E7394:
- ldr r1, _080E73A0 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E73C6
- .align 2, 0
-_080E73A0: .4byte gSharedMem + 0x1000
-_080E73A4:
- ldrb r0, [r2, 0x8]
- cmp r0, 0x6
- bne _080E73C0
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E73C0
- ldr r0, _080E73BC @ =sub_80E6D7C
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E73BC: .4byte sub_80E6D7C
-_080E73C0:
- ldr r0, _080E73CC @ =sub_80E6AC4
- bl sub_80E682C
-_080E73C6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E73CC: .4byte sub_80E6AC4
- thumb_func_end sub_80E7324
-
- thumb_func_start sub_80E73D0
-sub_80E73D0: @ 80E73D0
- push {lr}
- ldr r0, _080E73E4 @ =gSharedMem + 0x1000
- ldrh r0, [r0, 0x24]
- cmp r0, 0x4
- bhi _080E744E
- lsls r0, 2
- ldr r1, _080E73E8 @ =_080E73EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E73E4: .4byte gSharedMem + 0x1000
-_080E73E8: .4byte _080E73EC
- .align 2, 0
-_080E73EC:
- .4byte _080E7400
- .4byte _080E740C
- .4byte _080E7416
- .4byte _080E742C
- .4byte _080E7444
-_080E7400:
- movs r0, 0
- bl sub_80E87CC
- bl sub_80E88F0
- b _080E7436
-_080E740C:
- bl sub_80E9AD4
- bl sub_80E9E98
- b _080E7436
-_080E7416:
- bl sub_80EA0E4
- lsls r0, 24
- cmp r0, 0
- beq _080E744E
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E9A14
- b _080E7436
-_080E742C:
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
-_080E7436:
- ldr r1, _080E7440 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E744E
- .align 2, 0
-_080E7440: .4byte gSharedMem + 0x1000
-_080E7444:
- bl sub_80E9974
- ldr r0, _080E7454 @ =sub_80E6FC8
- bl sub_80E682C
-_080E744E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7454: .4byte sub_80E6FC8
- thumb_func_end sub_80E73D0
-
- thumb_func_start sub_80E7458
-sub_80E7458: @ 80E7458
- push {r4,r5,lr}
- ldr r4, _080E7468 @ =gSharedMem + 0x1000
- ldrh r5, [r4, 0x24]
- cmp r5, 0
- beq _080E746C
- cmp r5, 0x1
- beq _080E74A4
- b _080E7518
- .align 2, 0
-_080E7468: .4byte gSharedMem + 0x1000
-_080E746C:
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E7480 @ =sub_80E6FC8
- cmp r1, r0
- bne _080E7484
- bl sub_80E9D7C
- b _080E7488
- .align 2, 0
-_080E7480: .4byte sub_80E6FC8
-_080E7484:
- bl sub_80E9D00
-_080E7488:
- ldr r4, _080E74A0 @ =gSharedMem + 0x1000
- movs r2, 0xDF
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80E9E08
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7518
- .align 2, 0
-_080E74A0: .4byte gSharedMem + 0x1000
-_080E74A4:
- bl sub_80E9E54
- lsls r0, 24
- cmp r0, 0
- beq _080E7518
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E74DC @ =sub_80E6FC8
- cmp r1, r0
- bne _080E74E4
- bl sub_80E9D7C
- ldr r2, _080E74E0 @ =0x000001b5
- adds r1, r4, r2
- adds r2, 0xB
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7A98
- adds r0, r4, 0
- adds r0, 0x96
- b _080E74FE
- .align 2, 0
-_080E74DC: .4byte sub_80E6FC8
-_080E74E0: .4byte 0x000001b5
-_080E74E4:
- ldr r0, _080E7520 @ =0x00009a29
- adds r1, r4, r0
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7D30
- ldr r1, _080E7524 @ =0x000001b9
- adds r0, r4, r1
-_080E74FE:
- strb r5, [r0]
- ldr r1, _080E7528 @ =gSharedMem + 0x1000
- movs r0, 0xDF
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0x2
- strb r0, [r2]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- bl sub_80E682C
-_080E7518:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7520: .4byte 0x00009a29
-_080E7524: .4byte 0x000001b9
-_080E7528: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7458
-
- thumb_func_start sub_80E752C
-sub_80E752C: @ 80E752C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080E7540 @ =gSharedMem + 0x1000
- ldrh r1, [r4, 0x24]
- cmp r1, 0
- beq _080E7544
- cmp r1, 0x1
- beq _080E755C
- b _080E756C
- .align 2, 0
-_080E7540: .4byte gSharedMem + 0x1000
-_080E7544:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E756C
-_080E755C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E756C
- ldr r0, [r4]
- bl SetMainCallback2
-_080E756C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E752C
-
- thumb_func_start sub_80E7574
-sub_80E7574: @ 80E7574
- push {r4,r5,lr}
- ldr r4, _080E75B8 @ =gSharedMem + 0x1000
- ldrb r5, [r4, 0x8]
- cmp r5, 0x1
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r4, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- lsls r0, 1
- subs r1, 0x72
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- beq _080E75BC
- adds r0, r4, 0
- adds r0, 0x7D
- strb r5, [r0]
- adds r1, r4, 0
- b _080E75C6
- .align 2, 0
-_080E75B8: .4byte gSharedMem + 0x1000
-_080E75BC:
- ldr r1, _080E75D4 @ =gSharedMem + 0x1000
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0
- strb r0, [r2]
-_080E75C6:
- adds r1, 0x7D
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E75D4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7574
-
- thumb_func_start sub_80E75D8
-sub_80E75D8: @ 80E75D8
- push {r4-r6,lr}
- movs r4, 0
- ldr r2, _080E75FC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7604
- ldr r1, _080E7600 @ =gSharedMem + 0x1000
- adds r0, r1, 0
- adds r0, 0x84
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x86
- strb r0, [r2]
- adds r1, 0x85
- movs r0, 0x2
- b _080E768E
- .align 2, 0
-_080E75FC: .4byte gMain
-_080E7600: .4byte gSharedMem + 0x1000
-_080E7604:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E7630
- ldr r2, _080E762C @ =gSharedMem + 0x1000
- adds r1, r2, 0
- adds r1, 0x86
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E765C
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- strb r0, [r1]
- b _080E765C
- .align 2, 0
-_080E762C: .4byte gSharedMem + 0x1000
-_080E7630:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E7658
- ldr r0, _080E7684 @ =gSharedMem + 0x1000
- adds r3, r0, 0
- adds r3, 0x86
- ldrb r1, [r3]
- adds r1, 0x1
- strb r1, [r3]
- adds r0, 0x84
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- ble _080E7656
- strb r4, [r3]
-_080E7656:
- movs r4, 0x1
-_080E7658:
- cmp r4, 0
- beq _080E76EA
-_080E765C:
- ldr r2, _080E7684 @ =gSharedMem + 0x1000
- ldrb r3, [r2, 0x9]
- cmp r3, 0x2
- bne _080E7692
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7688
- adds r0, r2, 0
- adds r0, 0x85
- strb r3, [r0]
- b _080E77BC
- .align 2, 0
-_080E7684: .4byte gSharedMem + 0x1000
-_080E7688:
- adds r1, r2, 0
- adds r1, 0x85
- movs r0, 0
-_080E768E:
- strb r0, [r1]
- b _080E77BC
-_080E7692:
- movs r0, 0x85
- adds r0, r2
- mov r12, r0
- adds r4, r2, 0
- adds r4, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrb r3, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _080E76B0
- subs r0, r3, 0x1
- mov r1, r12
- strb r0, [r1]
-_080E76B0:
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r3, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- beq _080E77BC
- ldrb r0, [r4]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, 0
- mov r5, r12
- ldrb r5, [r5]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
- mov r6, r12
- strb r0, [r6]
- b _080E77BC
-_080E76EA:
- ldrh r2, [r2, 0x30]
- movs r0, 0x20
- ands r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080E7744
- ldr r2, _080E7728 @ =gSharedMem + 0x1000
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bge _080E77BC
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r4, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E772C
- movs r0, 0x2
- b _080E77BA
- .align 2, 0
-_080E7728: .4byte gSharedMem + 0x1000
-_080E772C:
- adds r0, r2, 0
- adds r0, 0x83
- ldrb r0, [r0]
- subs r1, r0, 0x1
- strb r1, [r3]
- adds r5, r4, 0
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0
- lsls r1, 24
- lsrs r0, r1, 24
- b _080E77B2
-_080E7744:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080E77C0
- ldr r2, _080E777C @ =gSharedMem + 0x1000
- adds r5, r2, 0
- adds r5, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- movs r1, 0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7780
- adds r1, r2, 0
- adds r1, 0x85
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- ble _080E77BC
- strb r4, [r1]
- b _080E77BC
- .align 2, 0
-_080E777C: .4byte gSharedMem + 0x1000
-_080E7780:
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r6, 0x83
- adds r6, r2
- mov r12, r6
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- blt _080E779E
- strb r4, [r3]
-_080E779E:
- ldrb r1, [r5]
- mov r4, r12
- ldrb r0, [r4]
- adds r5, r0, 0
- muls r5, r1
- adds r0, r5, 0
- ldrb r6, [r3]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
-_080E77B2:
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
-_080E77BA:
- strb r0, [r3]
-_080E77BC:
- movs r0, 0x1
- b _080E77C2
-_080E77C0:
- movs r0, 0
-_080E77C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E75D8
-
- thumb_func_start sub_80E77C8
-sub_80E77C8: @ 80E77C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r1, _080E780C @ =gSharedMem + 0x1000
- ldr r2, _080E7810 @ =0x000001b7
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r1, 0
- cmp r0, 0
- beq _080E783E
- ldr r1, _080E7814 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7818
- movs r4, 0xD4
- lsls r4, 1
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- ble _080E7806
- b _080E7948
-_080E7806:
- movs r0, 0x3
- strb r0, [r1]
- b _080E7948
- .align 2, 0
-_080E780C: .4byte gSharedMem + 0x1000
-_080E7810: .4byte 0x000001b7
-_080E7814: .4byte gMain
-_080E7818:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- bne _080E7822
- b _080E7950
-_080E7822:
- movs r5, 0xD4
- lsls r5, 1
- adds r1, r3, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080E7838
- b _080E7948
-_080E7838:
- movs r0, 0x1
- strb r0, [r1]
- b _080E7948
-_080E783E:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E789A
- movs r4, 0
- ldr r1, _080E7870 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7874
- movs r6, 0xD4
- lsls r6, 1
- adds r1, r3, r6
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E7944
- movs r0, 0x3
- strb r0, [r1]
- b _080E7944
- .align 2, 0
-_080E7870: .4byte gMain
-_080E7874:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E7894
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E7892
- strb r7, [r1]
-_080E7892:
- movs r4, 0x1
-_080E7894:
- cmp r4, 0
- beq _080E7950
- b _080E7944
-_080E789A:
- movs r4, 0
- movs r1, 0xE0
- lsls r1, 1
- adds r5, r3, r1
- strb r7, [r5]
- ldr r1, _080E78E0 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E78E8
- movs r2, 0xD4
- lsls r2, 1
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E78C4
- b _080E7A88
-_080E78C4:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E78E4 @ =0x000001b5
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7932
- movs r0, 0xFF
- strb r0, [r5]
- b _080E7932
- .align 2, 0
-_080E78E0: .4byte gMain
-_080E78E4: .4byte 0x000001b5
-_080E78E8:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E792E
- movs r0, 0xD4
- lsls r0, 1
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- movs r4, 0xDB
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E790E
- b _080E7A88
-_080E790E:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E794C @ =0x000001b5
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x3
- cmp r1, r0
- ble _080E792C
- movs r0, 0x1
- strb r0, [r5]
-_080E792C:
- movs r4, 0x1
-_080E792E:
- cmp r4, 0
- beq _080E7950
-_080E7932:
- movs r4, 0xE0
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7944
- b _080E7A88
-_080E7944:
- bl sub_80E7A98
-_080E7948:
- movs r0, 0x1
- b _080E7A8A
- .align 2, 0
-_080E794C: .4byte 0x000001b5
-_080E7950:
- ldrh r1, [r6, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _080E7992
- ldr r5, _080E7974 @ =0x000001a9
- adds r2, r3, r5
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080E7978
- subs r0, r1, 0x1
- strb r0, [r2]
- b _080E79E6
- .align 2, 0
-_080E7974: .4byte 0x000001a9
-_080E7978:
- movs r6, 0xD4
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r4, 0xD5
- lsls r4, 1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- b _080E79E6
-_080E7992:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E79E2
- ldr r5, _080E79D4 @ =0x000001b7
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E79CC
- ldr r0, _080E79D8 @ =0x000001a9
- adds r4, r3, r0
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD5
- lsls r2, 1
- adds r0, r3, r2
- adds r1, r0
- ldrb r5, [r4]
- movs r2, 0
- ldrsb r2, [r4, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E79DC
-_080E79CC:
- ldr r4, _080E79D8 @ =0x000001a9
- adds r0, r3, r4
- strb r6, [r0]
- b _080E79E0
- .align 2, 0
-_080E79D4: .4byte 0x000001b7
-_080E79D8: .4byte 0x000001a9
-_080E79DC:
- adds r0, r5, 0x1
- strb r0, [r4]
-_080E79E0:
- movs r7, 0x1
-_080E79E2:
- cmp r7, 0
- beq _080E7A88
-_080E79E6:
- adds r2, r3, 0
- ldr r5, _080E7A48 @ =0x000001b7
- adds r7, r2, r5
- ldrb r6, [r7]
- mov r9, r6
- movs r1, 0
- ldr r0, _080E7A4C @ =0x000001a9
- adds r0, r2
- mov r12, r0
- subs r5, 0xF
- adds r4, r2, r5
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r6, 0xD5
- lsls r6, 1
- adds r6, r2
- mov r8, r6
- add r0, r8
- mov r6, r12
- movs r5, 0
- ldrsb r5, [r6, r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E7A1C
- movs r1, 0x1
-_080E7A1C:
- strb r1, [r7]
- cmp r1, 0
- beq _080E7A58
- ldr r0, _080E7A50 @ =0x000001b5
- adds r1, r2, r0
- ldrb r0, [r4]
- ldrb r1, [r1]
- subs r0, r1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- beq _080E7A36
- b _080E7948
-_080E7A36:
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080E7A54 @ =0x000001ab
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r2, r12
- strb r0, [r2]
- b _080E7948
- .align 2, 0
-_080E7A48: .4byte 0x000001b7
-_080E7A4C: .4byte 0x000001a9
-_080E7A50: .4byte 0x000001b5
-_080E7A54: .4byte 0x000001ab
-_080E7A58:
- mov r6, r9
- cmp r6, 0
- bne _080E7A60
- b _080E7948
-_080E7A60:
- ldr r1, _080E7A84 @ =0x000001b5
- adds r0, r3, r1
- ldrb r0, [r0]
- ldrb r2, [r4]
- adds r0, r2
- strb r0, [r4]
- cmp r5, 0
- bne _080E7A72
- b _080E7948
-_080E7A72:
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r0, r8
- ldrb r0, [r0]
- subs r0, 0x1
- mov r4, r12
- strb r0, [r4]
- b _080E7948
- .align 2, 0
-_080E7A84: .4byte 0x000001b5
-_080E7A88:
- movs r0, 0
-_080E7A8A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E77C8
-
- thumb_func_start sub_80E7A98
-sub_80E7A98: @ 80E7A98
- push {lr}
- ldr r1, _080E7ACC @ =gSharedMem + 0x1000
- ldr r0, _080E7AD0 @ =0x000001a9
- adds r3, r1, r0
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0x2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r3, r1]
- ldrb r2, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080E7AC6
- subs r0, r2, 0x1
- strb r0, [r3]
-_080E7AC6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7ACC: .4byte gSharedMem + 0x1000
-_080E7AD0: .4byte 0x000001a9
- thumb_func_end sub_80E7A98
-
- thumb_func_start sub_80E7AD4
-sub_80E7AD4: @ 80E7AD4
- push {lr}
- ldr r3, _080E7B08 @ =gSharedMem + 0x1000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7B10
- ldr r1, _080E7B0C @ =0x000001a9
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x2A
- adds r1, r0
- ldrb r1, [r1]
- adds r2, 0x10
- b _080E7B34
- .align 2, 0
-_080E7B08: .4byte gSharedMem + 0x1000
-_080E7B0C: .4byte 0x000001a9
-_080E7B10:
- ldr r1, _080E7B3C @ =0x000001a9
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r1, 0x1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r3, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r1, [r2]
- movs r2, 0xDC
- lsls r2, 1
-_080E7B34:
- adds r0, r3, r2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B3C: .4byte 0x000001a9
- thumb_func_end sub_80E7AD4
-
thumb_func_start sub_80E7B40
sub_80E7B40: @ 80E7B40
push {r4-r7,lr}
diff --git a/include/easy_chat.h b/include/easy_chat.h
index 541a697be..a752720a6 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -3,7 +3,7 @@
extern u8 gUnknown_020388AC;
-void sub_80E62A0(u8 arg0, u16 *arg1, void *arg2, u8 arg3);
+void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3);
u16 sub_80EB72C(u16 group);
void sub_80EB6FC(u16 *, u16);
void InitEasyChatPhrases(void);
diff --git a/src/easy_chat_before.c b/src/easy_chat_before.c
index d71fad303..9d6989612 100644
--- a/src/easy_chat_before.c
+++ b/src/easy_chat_before.c
@@ -21,15 +21,13 @@ extern void sub_80546B8(void);
struct Shared1000
{
- void *unk0; // callback
+ void (*unk0)(void); // main cb 2
u16 *unk4;
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
- u16 unkC;
- u16 unkE;
- u8 filler10[0x20-0x10];
+ u16 unkC[(0x20-0xC)/2]; // unknown length
void (*unk20)(void);
u16 unk24;
u8 unk26;
@@ -37,12 +35,15 @@ struct Shared1000
u16 unk28;
u8 unk2A[11][2]; // unknown length
u8 unk40[4][14];
- u8 unk78[0x83-0x78]; // unknown length
- u8 unk83;
+ u8 unk78[0x7D - 0x78]; // unknown length
+ u8 unk7D;
+ u8 unk7E[0x83-0x7E];
+ s8 unk83; // s8?
+ //u8 unk83; // s8?
s8 unk84;
s8 unk85;
s8 unk86;
- u8 unk87;
+ bool8 unk87;
u16 unk88;
u16 unk8A;
u8 filler8C[0x96-0x8C];
@@ -50,8 +51,8 @@ struct Shared1000
u8 filler97[0x1A8-0x97];
s8 unk1A8;
s8 unk1A9;
- u8 unk1AA[0xB5-0xAA]; // unknown length
- u8 unk1B5;
+ s8 unk1AA[0xB5-0xAA]; // unknown length
+ s8 unk1B5;
s8 unk1B6;
s8 unk1B7;
u8 unk1B8;
@@ -89,7 +90,7 @@ struct Shared1000
#define static_assert(cond) \
typedef char test_[(cond) ? 1 : -1]
-//static_assert(offsetof(struct Shared1000, unk4142) == 0x4142);
+static_assert(offsetof(struct Shared1000, unk20) == 0x20);
#define shared1000 (*(struct Shared1000 *)(gSharedMem + 0x1000))
@@ -204,12 +205,15 @@ void sub_80E73D0(void);
void sub_80E7458(void);
void sub_80E752C(void);
void sub_80E7574(void);
-u8 sub_80E75D8(void);
-u8 sub_80E77C8(void);
+bool8 sub_80E75D8(void);
+bool8 sub_80E77C8(void);
+void sub_80E7A98(void);
void sub_80E7AD4(void);
u8 sub_80E7B40(void);
+void sub_80E7D30(void);
void sub_80E7D6C(void);
void sub_80E7D9C(void);
+u8 sub_80E7DD0(void);
void sub_80E7E50(void);
void sub_80E7F00();
u8 sub_80E7FA8(void);
@@ -236,20 +240,28 @@ void sub_80E95A4(void);
void sub_80E9744(void);
void sub_80E98C4(void);
void sub_80E9974(void);
+void sub_80E9A14(void);
void sub_80E9A4C(void);
void sub_80E9AD4(void);
+void sub_80E9D00(void);
+void sub_80E9D7C(void);
+void sub_80E9E08();
+u8 sub_80E9E54(void);
void sub_80E9E98(void);
u8 sub_80E9EA8(void);
u8 sub_80E9F50(void);
u8 sub_80E9FD4(void);
u8 sub_80EA014(void);
u8 sub_80EA050(void);
+u8 sub_80EA0E4(void);
+u8 sub_80EA184(void);
void sub_80EAC5C(void);
void sub_80EAD08(void);
u8 sub_80EAD7C(u8);
void sub_80EAECC(void);
void sub_80EB040(void);
void sub_80EB0B0(void);
+u16 sub_80EB2D4();
bool8 sub_80EB680(u16 *, u16, u16, u16);
void sub_80E9C94(void);
@@ -331,7 +343,7 @@ void sub_80E60D8(void)
sub_80E62A0(gSpecialVar_0x8004, r1, sub_80546B8, r4);
}
-void sub_80E62A0(u8 a, u16 *b, void *c, u8 d)
+void sub_80E62A0(u8 a, u16 *b, void (*c)(void), u8 d)
{
shared1000.unk0 = c;
shared1000.unk4 = b;
@@ -766,14 +778,11 @@ void sub_80E6AC4(void)
void sub_80E6AE4(void)
{
shared1000.unk87 = sub_80E75D8();
- if (shared1000.unk87 != 0)
+ if (shared1000.unk87)
PlaySE(SE_SELECT);
if (gMain.newKeys & A_BUTTON)
{
- u8 r2;
-
PlaySE(SE_SELECT);
- r2 = shared1000.unk86;
if (shared1000.unk86 == shared1000.unk84)
{
switch (shared1000.unk85)
@@ -791,7 +800,7 @@ void sub_80E6AE4(void)
}
else
{
- shared1000.unk27 = shared1000.unk83 * r2 + shared1000.unk85;
+ shared1000.unk27 = shared1000.unk86 * shared1000.unk83 + shared1000.unk85;
sub_80E7574();
sub_80E682C(sub_80E6F68);
return;
@@ -805,8 +814,6 @@ void sub_80E6AE4(void)
void sub_80E6BC0(void)
{
- //s8 selection;
-
switch (shared1000.unk24)
{
case 0:
@@ -928,7 +935,7 @@ void sub_80E6D7C(void)
shared1000.unk24 = 10;
break;
}
- if (shared1000.unkC == 0xFFFF || shared1000.unkE == 0xFFFF)
+ if (shared1000.unkC[0] == 0xFFFF || shared1000.unkC[1] == 0xFFFF)
{
sub_80E91D4(9);
shared1000.unk24 = 10;
@@ -963,7 +970,7 @@ void sub_80E6D7C(void)
}
if (shared1000.unk8 == 13)
{
- if (shared1000.unkC == 0xFFFF || shared1000.unkE == 0xFFFF)
+ if (shared1000.unkC[0] == 0xFFFF || shared1000.unkC[1] == 0xFFFF)
gSpecialVar_Result = 0;
gSpecialVar_0x8004 = sub_80E810C();
}
@@ -1040,7 +1047,7 @@ void sub_80E6FC8(void)
}
else
{
- if (shared1000.unk96 != 0)
+ if (shared1000.unk96)
PlaySE(SE_SELECT);
if (gMain.newKeys & A_BUTTON)
{
@@ -1205,4 +1212,369 @@ void sub_80E7294(void)
}
}
+void sub_80E7324(void)
+{
+ switch (shared1000.unk24)
+ {
+ case 0:
+ if (sub_80E7DD0() == 0)
+ {
+ sub_80E682C(sub_80E7294);
+ }
+ else
+ {
+ sub_80E88F0();
+ sub_80E87CC(0);
+ shared1000.unk24++;
+ }
+ break;
+ case 1:
+ shared1000.unk24++;
+ break;
+ case 2:
+ sub_80E9E98();
+ shared1000.unk24++;
+ break;
+ case 3:
+ if (sub_80EA184() != 0)
+ shared1000.unk24++;
+ break;
+ case 4:
+ if (shared1000.unk8 == 6 && sub_80E7FA8() != 0)
+ sub_80E682C(sub_80E6D7C);
+ else
+ sub_80E682C(sub_80E6AC4);
+ break;
+ }
+}
+
+void sub_80E73D0(void)
+{
+ switch (shared1000.unk24)
+ {
+ case 0:
+ sub_80E87CC(0);
+ sub_80E88F0();
+ shared1000.unk24++;
+ break;
+ case 1:
+ sub_80E9AD4();
+ sub_80E9E98();
+ shared1000.unk24++;
+ break;
+ case 2:
+ if (sub_80EA0E4() != 0)
+ {
+ sub_80E8D8C(1);
+ sub_80E9A14();
+ shared1000.unk24++;
+ }
+ break;
+ case 3:
+ sub_80E8420();
+ sub_80E8958(0);
+ shared1000.unk24++;
+ break;
+ case 4:
+ sub_80E9974();
+ sub_80E682C(sub_80E6FC8);
+ break;
+ }
+}
+
+void sub_80E7458(void)
+{
+ switch (shared1000.unk24)
+ {
+ case 0:
+ if (shared1000.unk1C4 == sub_80E6FC8)
+ sub_80E9D7C();
+ else
+ sub_80E9D00();
+ sub_80E9E08(shared1000.unk1BE);
+ shared1000.unk24++;
+ break;
+ case 1:
+ if (sub_80E9E54() != 0)
+ {
+ if (shared1000.unk1C4 == sub_80E6FC8)
+ {
+ sub_80E9D7C();
+ shared1000.unk1B5 += shared1000.unk1C0;
+ sub_80E7A98();
+ shared1000.unk96 = TRUE;
+ }
+ else
+ {
+ shared1000.unk9A29 += shared1000.unk1C0;
+ sub_80E7D30();
+ shared1000.unk1B9 = 1;
+ }
+ shared1000.unk1BE = 2;
+ sub_80E682C(shared1000.unk1C4);
+ }
+ break;
+ }
+}
+
+void sub_80E752C(void)
+{
+ switch (shared1000.unk24)
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ shared1000.unk24++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ SetMainCallback2(shared1000.unk0);
+ break;
+ }
+}
+
+void sub_80E7574(void)
+{
+ if (shared1000.unk8 == 1
+ && shared1000.unk7E[shared1000.unk86] == 2
+ && sub_80EB2D4(shared1000.unkC[shared1000.unk27]) != 7)
+ shared1000.unk7D = 1;
+ else
+ shared1000.unk7D = 0;
+ shared1000.unk7D = 0; // What the hell?
+}
+
+bool8 sub_80E75D8(void)
+{
+ bool8 pressedUpDown = FALSE;
+ u8 r0;
+
+ if (gMain.newKeys & START_BUTTON)
+ {
+ shared1000.unk86 = shared1000.unk84;
+ shared1000.unk85 = 2;
+ return TRUE;
+ }
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ shared1000.unk86--;
+ if (shared1000.unk86 < 0)
+ shared1000.unk86 = shared1000.unk84;
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ shared1000.unk86++;
+ if (shared1000.unk86 > shared1000.unk84)
+ shared1000.unk86 = 0;
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ if (shared1000.unk9 == 2)
+ {
+ if (shared1000.unk86 == shared1000.unk84)
+ shared1000.unk85 = 2;
+ else
+ shared1000.unk85 = 0;
+ return TRUE;
+ }
+ else
+ {
+ if (shared1000.unk85 >= shared1000.unk83)
+ shared1000.unk85 = shared1000.unk83 - 1;
+ if (shared1000.unk86 != shared1000.unk84)
+ {
+ r0 = shared1000.unk86 * shared1000.unk83 + shared1000.unk85;
+ if (r0 >= shared1000.unkA)
+ shared1000.unk85 = r0 - shared1000.unkA;
+ }
+ return TRUE;
+ }
+ }
+ else
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (--shared1000.unk85 < 0)
+ {
+ if (shared1000.unk86 == shared1000.unk84)
+ {
+ shared1000.unk85 = 2;
+ }
+ else
+ {
+ shared1000.unk85 = shared1000.unk83 - 1;
+ r0 = shared1000.unk86 * shared1000.unk83 + shared1000.unk85;
+ if (r0 >= shared1000.unkA)
+ shared1000.unk85 = r0 - shared1000.unkA;
+ }
+ }
+ return TRUE;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (shared1000.unk86 == shared1000.unk84)
+ {
+ if (++shared1000.unk85 > 2)
+ shared1000.unk85 = 0;
+ }
+ else
+ {
+ if (++shared1000.unk85 >= shared1000.unk83)
+ shared1000.unk85 = 0;
+ r0 = shared1000.unk86 * shared1000.unk83 + shared1000.unk85;
+ if (r0 >= shared1000.unkA)
+ shared1000.unk85 = r0 - shared1000.unkA;
+ }
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_80E77C8(void)
+{
+ bool8 pressedLeftRight = FALSE;
+ bool8 pressedUpDown;
+
+ if (shared1000.unk1B7 != 0)
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ shared1000.unk1A8--;
+ if (shared1000.unk1A8 < 1)
+ shared1000.unk1A8 = 3;
+ return TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ shared1000.unk1A8++;
+ if (shared1000.unk1A8 > 3)
+ shared1000.unk1A8 = 1;
+ return TRUE;
+ }
+ }
+ else
+ {
+ if (shared1000.unk26 == 1)
+ {
+ pressedUpDown = FALSE;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ shared1000.unk1A8--;
+ if (shared1000.unk1A8 < 0)
+ shared1000.unk1A8 = 3;
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ shared1000.unk1A8++;
+ if (shared1000.unk1A8 > 3)
+ shared1000.unk1A8 = 0;
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ sub_80E7A98();
+ return TRUE;
+ }
+ }
+ else
+ {
+ pressedUpDown = FALSE;
+ shared1000.unk1C0 = 0;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (shared1000.unk1A8 == 0)
+ return FALSE;
+ shared1000.unk1A8--;
+ if (shared1000.unk1A8 < shared1000.unk1B5)
+ shared1000.unk1C0 = -1;
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (shared1000.unk1A8 >= shared1000.unk1B6 - 1)
+ return FALSE;
+ shared1000.unk1A8++;
+ if (shared1000.unk1A8 > shared1000.unk1B5 + 3)
+ shared1000.unk1C0 = 1;
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ if (shared1000.unk1C0 == 0)
+ {
+ sub_80E7A98();
+ return TRUE;
+ }
+ return FALSE;
+ }
+ }
+ }
+
+ if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (shared1000.unk1A9 != 0)
+ shared1000.unk1A9--;
+ else
+ shared1000.unk1A9 = shared1000.unk1AA[shared1000.unk1A8];
+ pressedLeftRight = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (shared1000.unk1B7 != 0
+ || shared1000.unk1A9 == shared1000.unk1AA[shared1000.unk1A8])
+ shared1000.unk1A9 = 0;
+ else
+ shared1000.unk1A9++;
+ pressedLeftRight = TRUE;
+ }
+
+ if (pressedLeftRight)
+ {
+ s8 r9 = shared1000.unk1B7;
+
+ shared1000.unk1B7 = (shared1000.unk1A9 == shared1000.unk1AA[shared1000.unk1A8]);
+ if (shared1000.unk1B7 != 0)
+ {
+ shared1000.unk1A8 -= shared1000.unk1B5;
+ if (shared1000.unk1A8 == 0)
+ {
+ shared1000.unk1A8 = 1;
+ shared1000.unk1A9 = shared1000.unk1AA[shared1000.unk1A8];
+ }
+ }
+ else if (r9 != 0)
+ {
+ shared1000.unk1A8 += shared1000.unk1B5;
+ if (shared1000.unk1A9 != 0)
+ shared1000.unk1A9 = shared1000.unk1AA[shared1000.unk1A8] - 1;
+ }
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_80E7A98(void)
+{
+ if (shared1000.unk1A9 >= shared1000.unk1AA[shared1000.unk1A8])
+ shared1000.unk1A9 = shared1000.unk1AA[shared1000.unk1A8] - 1;
+}
+
+void sub_80E7AD4(void)
+{
+ if (shared1000.unk26 == 0)
+ shared1000.unk1B8 = shared1000.unk2A[shared1000.unk1A8][shared1000.unk1A9];
+ else
+ shared1000.unk1B8 = shared1000.unk40[shared1000.unk1A8][shared1000.unk1A9];
+}
+
#endif