summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/easy_chat.s1510
-rw-r--r--include/easy_chat.h18
-rw-r--r--src/easy_chat_2.c311
-rw-r--r--src/unknown_task.c1
4 files changed, 326 insertions, 1514 deletions
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index f99c93a51..6469aaf62 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -5,1516 +5,6 @@
.text
- thumb_func_start sub_80EA1E0
-sub_80EA1E0: @ 80EA1E0
- push {r4-r6,lr}
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EA244
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EA228
- adds r5, r1, 0
- adds r6, r0, 0
-_080EA200:
- lsls r0, r4, 4
- adds r0, 0xC8
- adds r0, r5, r0
- bl sub_80EAC0C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- bl sub_80EAC48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EA200
-_080EA228:
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0xBC
- movs r0, 0x1
- strb r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080EA246
- .align 2, 0
-_080EA240: .4byte gUnknown_083DB694
-_080EA244:
- movs r0, 0x1
-_080EA246:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA1E0
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA340 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- ldr r1, _080EA344 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r6, 0x10
- str r6, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0x9
- mov r3, r8
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA340: .4byte gUnknown_083DB694
-_080EA344: .4byte 0x0000fffe
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA348
-sub_80EA348: @ 80EA348
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA49C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r5, 0xF
- str r5, [sp]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EA4A0 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0x2
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r5, 0x10
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r8
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0x2
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xE
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA49C: .4byte gUnknown_083DB694
-_080EA4A0: .4byte 0x0000fffe
- thumb_func_end sub_80EA348
-
- thumb_func_start sub_80EA4A4
-sub_80EA4A4: @ 80EA4A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA598 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r1, _080EA59C @ =0x0000ffff
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x10
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r6, 0x1
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA598: .4byte gUnknown_083DB694
-_080EA59C: .4byte 0x0000ffff
- thumb_func_end sub_80EA4A4
-
- thumb_func_start sub_80EA5A0
-sub_80EA5A0: @ 80EA5A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA6FC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EA700 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r1, r8
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x6
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6FC: .4byte gUnknown_083DB694
-_080EA700: .4byte 0x0000ffff
- thumb_func_end sub_80EA5A0
-
- thumb_func_start sub_80EA704
-sub_80EA704: @ 80EA704
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA75C @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r1, 0x14
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- ldr r3, _080EA760 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0xA
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xC2
- strh r5, [r0]
- adds r1, r6, 0
- adds r1, 0xC4
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA75C: .4byte gUnknown_083DB694
-_080EA760: .4byte 0x0000ffff
- thumb_func_end sub_80EA704
-
- thumb_func_start sub_80EA764
-sub_80EA764: @ 80EA764
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _080EA7EC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EA7F0 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1E
- movs r2, 0xC
- movs r3, 0x1F
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0xC
- adds r3, r5, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7EC: .4byte gUnknown_083DB694
-_080EA7F0: .4byte 0x0000ffff
- thumb_func_end sub_80EA764
-
- thumb_func_start sub_80EA7F4
-sub_80EA7F4: @ 80EA7F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r0, _080EA8B4 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x14
- movs r2, 0xA
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- ldr r3, _080EA8B8 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r2, r7
- mov r8, r2
- str r2, [sp, 0x4]
- movs r1, 0x19
- movs r2, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x3
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8B4: .4byte gUnknown_083DB694
-_080EA8B8: .4byte 0x0000ffff
- thumb_func_end sub_80EA7F4
-
- thumb_func_start sub_80EA8BC
-sub_80EA8BC: @ 80EA8BC
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA944 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA944: .4byte gUnknown_083DB694
- thumb_func_end sub_80EA8BC
-
- thumb_func_start sub_80EA948
-sub_80EA948: @ 80EA948
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EAA3C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EAA40 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x80
- adds r1, r7
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x5
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1A
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- movs r1, 0x1A
- movs r2, 0xA
- adds r3, r5, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x19
- movs r2, 0xA
- movs r3, 0x1A
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAA3C: .4byte gUnknown_083DB694
-_080EAA40: .4byte 0x0000ffff
- thumb_func_end sub_80EA948
-
- thumb_func_start sub_80EAA44
-sub_80EAA44: @ 80EAA44
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EAACC @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EAAD0 @ =0x0000ffff
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x17
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAACC: .4byte gUnknown_083DB694
-_080EAAD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAA44
-
- thumb_func_start sub_80EAAD4
-sub_80EAAD4: @ 80EAAD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EABCC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r1, 0xF
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r5, 0x1
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EABD0 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0
- movs r2, 0xF
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x68
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EABCC: .4byte gUnknown_083DB694
-_080EABD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAAD4
-
- thumb_func_start sub_80EABD4
-sub_80EABD4: @ 80EABD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r8, r7
- strh r1, [r0]
- strh r3, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r5, [r0, 0x6]
- strh r6, [r0, 0x8]
- strh r4, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r4, r8
- strh r4, [r0, 0xE]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD4
-
- thumb_func_start sub_80EAC0C
-sub_80EAC0C: @ 80EAC0C
- ldrh r1, [r0, 0x8]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0xA]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0xC]
- ldrh r2, [r0, 0x4]
- adds r1, r2
- strh r1, [r0, 0x4]
- ldrh r1, [r0, 0xE]
- ldrh r2, [r0, 0x6]
- adds r1, r2
- strh r1, [r0, 0x6]
- bx lr
- thumb_func_end sub_80EAC0C
-
- thumb_func_start sub_80EAC30
-sub_80EAC30: @ 80EAC30
- push {r4,r5,lr}
- ldr r4, [sp, 0xC]
- ldr r5, [sp, 0x10]
- strh r1, [r0]
- strh r2, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- str r5, [r0, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC30
-
- thumb_func_start sub_80EAC48
-sub_80EAC48: @ 80EAC48
- ldrh r1, [r0, 0x4]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0x6]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end sub_80EAC48
-
- thumb_func_start sub_80EAC5C
-sub_80EAC5C: @ 80EAC5C
- push {r4-r6,lr}
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EACAC
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EACA2
- adds r5, r1, 0
- adds r6, r0, 0
-_080EAC7C:
- lsls r1, r4, 4
- adds r1, 0xC8
- adds r1, r5, r1
- lsls r2, r4, 1
- adds r2, r4
- lsls r2, 2
- movs r0, 0xA4
- lsls r0, 1
- adds r2, r0
- adds r2, r5, r2
- ldr r0, _080EACB8 @ =0x06006800
- bl sub_80EACBC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EAC7C
-_080EACA2:
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBC
- movs r1, 0
- strb r1, [r0]
-_080EACAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EACB4: .4byte gUnknown_083DB694
-_080EACB8: .4byte 0x06006800
- thumb_func_end sub_80EAC5C
-
- thumb_func_start sub_80EACBC
-sub_80EACBC: @ 80EACBC
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- ldrh r2, [r3, 0x2]
- ldrh r0, [r3]
- subs r2, r0
- ldrh r0, [r3, 0x6]
- ldrh r1, [r3, 0x4]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r6, r2, 16
- cmp r6, 0
- ble _080EACFE
- lsls r5, r0, 16
- cmp r5, 0
- ble _080EACFE
- ldrh r1, [r3]
- ldrh r2, [r3, 0x4]
- ldr r3, [r4, 0x8]
- ldrh r0, [r4]
- str r0, [sp]
- ldrh r0, [r4, 0x2]
- str r0, [sp, 0x4]
- lsrs r0, r6, 16
- str r0, [sp, 0x8]
- lsrs r0, r5, 16
- str r0, [sp, 0xC]
- adds r0, r7, 0
- bl sub_809D104
-_080EACFE:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EACBC
-
- thumb_func_start sub_80EAD08
-sub_80EAD08: @ 80EAD08
- push {r4,r5,lr}
- ldr r0, _080EAD58 @ =gUnknown_03004DC0
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080EAD5C @ =gUnknown_03004DE0
- adds r4, r0, r1
- adds r4, 0xB0
- ldr r0, _080EAD60 @ =gUnknown_083DB694
- ldr r1, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- adds r2, r0, 0
- subs r2, 0x58
- movs r0, 0xFF
- ands r2, r0
- movs r3, 0
- movs r5, 0xFF
-_080EAD32:
- ldrh r0, [r1]
- adds r0, r3
- cmp r0, 0x80
- bne _080EAD42
- negs r0, r3
- adds r2, r0, 0
- subs r2, 0x58
- ands r2, r5
-_080EAD42:
- strh r2, [r4]
- adds r4, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080EAD32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD58: .4byte gUnknown_03004DC0
-_080EAD5C: .4byte gUnknown_03004DE0
-_080EAD60: .4byte gUnknown_083DB694
- thumb_func_end sub_80EAD08
-
- thumb_func_start sub_80EAD64
-sub_80EAD64: @ 80EAD64
- push {lr}
- lsls r1, 24
- ldr r2, _080EAD78 @ =gEasyChatGroupNames
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r1}
- bx r1
- .align 2, 0
-_080EAD78: .4byte gEasyChatGroupNames
- thumb_func_end sub_80EAD64
-
- thumb_func_start sub_80EAD7C
-sub_80EAD7C: @ 80EAD7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x14
- beq _080EADA2
- cmp r0, 0x14
- bgt _080EAD9C
- cmp r0, 0x11
- blt _080EADBA
- ldr r0, _080EAD98 @ =0x00000804
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EAD98: .4byte 0x00000804
-_080EAD9C:
- cmp r1, 0x15
- beq _080EADB0
- b _080EADBA
-_080EADA2:
- ldr r0, _080EADAC @ =0x00000806
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EADAC: .4byte 0x00000806
-_080EADB0:
- bl sub_80EB9C8
-_080EADB4:
- lsls r0, 24
- lsrs r0, 24
- b _080EADBC
-_080EADBA:
- movs r0, 0x1
-_080EADBC:
- pop {r1}
- bx r1
- thumb_func_end sub_80EAD7C
-
thumb_func_start sub_80EADC0
sub_80EADC0: @ 80EADC0
push {lr}
diff --git a/include/easy_chat.h b/include/easy_chat.h
index 7b3b849f0..2fe11dd11 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -3,6 +3,15 @@
struct Sprite;
+struct UnknownEasyChatStruct1
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ void *unk8;
+};
+
struct Shared1000
{
void (*unk0)(void); // main cb 2
@@ -21,7 +30,7 @@ struct Shared1000
u8 unk40[4][14];
u8 unk78[0x7D - 0x78]; // unknown length
u8 unk7D;
- u8 unk7E[0x83-0x7E];
+ u8 unk7E[5];
s8 unk83; // s8?
//u8 unk83; // s8?
s8 unk84;
@@ -43,7 +52,12 @@ struct Shared1000
u8 unkBC;
u8 fillerBD;
u16 unkBE;
- u8 fillerC0[0x1A8-0xC0];
+ u8 fillerC0[2];
+ u16 unkC2; // length of unkC8 and unk148 arrays
+ u16 unkC4;
+ u8 fillerC6[2];
+ u16 unkC8[(0x148-0xC8)/16][8];
+ struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12];
s8 unk1A8;
s8 unk1A9;
s8 unk1AA[0xB5-0xAA]; // unknown length
diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c
index bac1873cc..8fbc54458 100644
--- a/src/easy_chat_2.c
+++ b/src/easy_chat_2.c
@@ -1,17 +1,21 @@
#include "global.h"
+#include "constants/easy_chat.h"
#include "constants/map_objects.h"
#include "decompress.h"
#include "easy_chat.h"
+#include "event_data.h"
#include "field_map_obj.h"
#include "graphics.h"
#include "menu.h"
#include "palette.h"
#include "sprite.h"
+#include "string_util.h"
#include "strings.h"
#include "trig.h"
+#include "unknown_task.h"
extern void sub_8095C8C();
-extern void sub_809D104();
+extern void sub_809D104(void *, u16, u16, const void *, u16, u16, u16, u16);
void sub_80E8268(void);
void sub_80E82BC(struct Sprite *);
@@ -47,9 +51,15 @@ void sub_80EA8BC(void);
void sub_80EA948(void);
void sub_80EAA44(void);
void sub_80EAAD4(void);
-u8 *sub_80EAD64();
+void sub_80EABD4(u16 *, u16, u16, u16, u16, u16, u16, u16, u16);
+void sub_80EAC0C(u16 *);
+void sub_80EAC30(struct UnknownEasyChatStruct1 *, u16, u16, u16, u16, void *);
+void sub_80EAC48(struct UnknownEasyChatStruct1 *);
+void sub_80EACBC(void *, u16 *, struct UnknownEasyChatStruct1 *);
+u8 *sub_80EAD64(u8 *, u8, int);
u8 *sub_80EB218(u8 *, u16, u16);
u16 sub_80EB2D4(u16);
+u8 sub_80EB9C8(void);
const u16 InterviewPalette_0[] = INCBIN_U16("graphics/misc/interview_pal0.gbapal");
const u16 InterviewPalette_1[] = INCBIN_U16("graphics/misc/interview_pal1.gbapal");
@@ -1785,3 +1795,300 @@ bool8 sub_80EA184(void)
}
return FALSE;
}
+
+bool8 sub_80EA1E0(void)
+{
+ u16 i;
+
+ if (gUnknown_083DB694->unkC4 != 0)
+ {
+ for (i = 0; i < gUnknown_083DB694->unkC2; i++)
+ {
+ sub_80EAC0C(gUnknown_083DB694->unkC8[i]);
+ sub_80EAC48(&gUnknown_083DB694->unk148[i]);
+ }
+ gUnknown_083DB694->unkBC = 1;
+ gUnknown_083DB694->unkC4--;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_80EA24C(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 13, 14, 13, 15, -2, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 12, 14, 12, 15, 0, 0, 2, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 30, 0, -2, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 13, 15, 13, 16, -2, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 0, 9, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[3], 12, 15, 12, 16, 0, 0, 2, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[3], 30, 9, -2, 0, gUnknown_083DB694->unk6C8);
+
+ gUnknown_083DB694->unkC2 = 4;
+ gUnknown_083DB694->unkC4 = 6;
+}
+
+void sub_80EA348(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 1, 14, 13, 15, 2, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 12, 14, 24, 15, 0, 0, -2, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 18, 0, 2, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 1, 15, 13, 16, 2, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 0, 9, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[3], 12, 15, 24, 16, 0, 0, -2, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[3], 18, 9, 2, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[4], 1, 14, 1, 16, 0, 0, 2, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[4], 1, 14, 0, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[5], 24, 14, 24, 16, -2, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[5], 24, 14, -2, 0, gUnknown_083DB694->unk1C8);
+
+ gUnknown_083DB694->unkC2 = 6;
+ gUnknown_083DB694->unkC4 = 6;
+}
+
+void sub_80EA4A4(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 1, 14, 13, 15, 0, -1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 12, 14, 24, 15, 0, -1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 18, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 1, 15, 13, 16, 0, 0, 0, 1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 0, 9, 0, -1, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[3], 12, 15, 24, 16, 0, 0, 0, 1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[3], 18, 9, 0, -1, gUnknown_083DB694->unk6C8);
+
+ gUnknown_083DB694->unkC2 = 4;
+ gUnknown_083DB694->unkC4 = 4;
+}
+
+void sub_80EA5A0(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 1, 10, 13, 15, 0, 1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 12, 10, 24, 15, 0, 1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 18, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 1, 15, 13, 20, 0, 0, 0, -1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 0, 5, 0, 1, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[3], 12, 15, 24, 20, 0, 0, 0, -1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[3], 18, 5, 0, 1, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[4], 1, 10, 24, 10, 0, 0, 0, 1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[4], 1, 10, 0, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[5], 1, 20, 24, 20, 0, -1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[5], 1, 20, 0, -1, gUnknown_083DB694->unk1C8);
+
+ gUnknown_083DB694->unkC2 = 6;
+ gUnknown_083DB694->unkC4 = 4;
+}
+
+void sub_80EA704(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 24, 12, 25, 20, 0, 0, 1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 5, 10, -1, 0, gUnknown_083DB694->unk6C8);
+
+ gUnknown_083DB694->unkC2 = 1;
+ gUnknown_083DB694->unkC4 = 5;
+}
+
+void sub_80EA764(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 24, 12, 30, 20, 0, 0, -1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 10, 1, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 30, 12, 31, 20, -1, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 30, 12, -1, 0, gUnknown_083DB694->unk1C8);
+
+ gUnknown_083DB694->unkC2 = 2;
+ gUnknown_083DB694->unkC4 = 6;
+}
+
+void sub_80EA7F4(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 20, 10, 25, 20, 0, 0, 1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 25, 0, -1, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 0, 10, 1, 20, 0, 0, 1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 0, 10, 0, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 1, 10, 4, 20, 1, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ gUnknown_083DB694->unkC2 = 3;
+ gUnknown_083DB694->unkC4 = 2;
+}
+
+void sub_80EA8BC(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 3, 10, 4, 20, 0, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 0, 10, 2, 20, 0, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 0, 10, 0, 0, gUnknown_083DB694->unk1C8);
+
+ gUnknown_083DB694->unkC2 = 2;
+ gUnknown_083DB694->unkC4 = 1;
+}
+
+void sub_80EA948(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 0, 10, 2, 20, 0, 0, -1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 10, 0, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 3, 10, 5, 20, -1, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 26, 10, 30, 20, -1, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 26, 10, -1, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[3], 25, 10, 26, 20, -1, 0, -1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[3], 29, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ gUnknown_083DB694->unkC2 = 4;
+ gUnknown_083DB694->unkC4 = 2;
+}
+
+void sub_80EAA44(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 24, 10, 30, 20, 0, 0, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 24, 10, 0, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 23, 10, 24, 20, 0, 0, -1, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 29, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ gUnknown_083DB694->unkC2 = 2;
+ gUnknown_083DB694->unkC4 = 1;
+}
+
+void sub_80EAAD4(void)
+{
+ sub_80EABD4(gUnknown_083DB694->unkC8[0], 0, 10, 30, 15, 0, 1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[0], 0, 0, 0, 0, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[1], 0, 15, 30, 20, 0, 0, 0, -1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[1], 0, 5, 0, 1, gUnknown_083DB694->unk6C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[2], 0, 10, 30, 10, 0, 0, 0, 1);
+ sub_80EAC30(&gUnknown_083DB694->unk148[2], 0, 10, 0, 0, gUnknown_083DB694->unk1C8);
+
+ sub_80EABD4(gUnknown_083DB694->unkC8[3], 0, 20, 30, 20, 0, -1, 0, 0);
+ sub_80EAC30(&gUnknown_083DB694->unk148[3], 0, 20, 0, -1, gUnknown_083DB694->unk1C8);
+
+ gUnknown_083DB694->unkC2 = 4;
+ gUnknown_083DB694->unkC4 = 5;
+}
+
+void sub_80EABD4(u16 *a, u16 b, u16 c, u16 d, u16 e, u16 f, u16 g, u16 h, u16 i)
+{
+ a[0] = b;
+ a[1] = d;
+ a[2] = c;
+ a[3] = e;
+ a[4] = f;
+ a[5] = h;
+ a[6] = g;
+ a[7] = i;
+}
+
+void sub_80EAC0C(u16 *a)
+{
+ a[0] += a[4];
+ a[1] += a[5];
+ a[2] += a[6];
+ a[3] += a[7];
+}
+
+void sub_80EAC30(struct UnknownEasyChatStruct1 *a, u16 b, u16 c, u16 d, u16 e, void *f)
+{
+ a->unk0 = b;
+ a->unk2 = c;
+ a->unk4 = d;
+ a->unk6 = e;
+ a->unk8 = f;
+}
+
+void sub_80EAC48(struct UnknownEasyChatStruct1 *a)
+{
+ a->unk0 += a->unk4;
+ a->unk2 += a->unk6;
+}
+
+void sub_80EAC5C(void)
+{
+ u16 i;
+
+ if (gUnknown_083DB694->unkBC != 0)
+ {
+ for (i = 0; i < gUnknown_083DB694->unkC2; i++)
+ sub_80EACBC((void *)(VRAM + 0x6800), gUnknown_083DB694->unkC8[i], &gUnknown_083DB694->unk148[i]);
+ gUnknown_083DB694->unkBC = 0;
+ }
+}
+
+void sub_80EACBC(void *a, u16 *b, struct UnknownEasyChatStruct1 *c)
+{
+ s16 r6 = b[1] - b[0];
+ s16 r5 = b[3] - b[2];
+
+ if (r6 > 0 && r5 > 0)
+ sub_809D104(a, b[0], b[2], c->unk8, c->unk0, c->unk2, r6, r5);
+}
+
+// Strange...
+void sub_80EAD08(void)
+{
+ u16 *r4;
+ u16 r2;
+ u16 i;
+
+ r4 = gUnknown_03004DE0[gUnknown_03004DC0.srcBank];
+ r4 += 88;
+ r2 = (gUnknown_083DB694->unk1BA - 88) & 0xFF;
+
+ for (i = 0; i < 64; i++)
+ {
+ if (gUnknown_083DB694->unk1BA + i == 128)
+ r2 = (-i - 88) & 0xFF;
+ *r4++ = r2;
+ }
+}
+
+extern const u8 *const gEasyChatGroupNames[];
+
+u8 *sub_80EAD64(u8 *a, u8 b, int unused)
+{
+ return StringCopy(a, gEasyChatGroupNames[b]);
+}
+
+bool8 sub_80EAD7C(u8 group)
+{
+ switch (group)
+ {
+ case EC_GROUP_TRENDY_SAYING:
+ return FlagGet(FLAG_SYS_HIPSTER_MEET);
+ case EC_GROUP_EVENTS:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ return FlagGet(FLAG_SYS_GAME_CLEAR);
+ case EC_GROUP_POKEMON_2:
+ return sub_80EB9C8();
+ }
+ return TRUE;
+}
+
diff --git a/src/unknown_task.c b/src/unknown_task.c
index c9ba95d42..62245502a 100644
--- a/src/unknown_task.c
+++ b/src/unknown_task.c
@@ -20,6 +20,7 @@ extern u8 gUnknown_0202FFA4;
extern struct UnknownTaskStruct2 gUnknown_03004DC0;
+// Is this a struct?
extern u16 gUnknown_03004DE0[][0x3C0];
void remove_some_task(void)