summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_tower.s2
-rw-r--r--asm/berry_crush_3.s4
-rw-r--r--asm/easy_chat.s1863
-rw-r--r--asm/link_rfu.s26
-rw-r--r--asm/mon_markings.s6
-rw-r--r--asm/pokemon_size_record.s482
-rw-r--r--baserom.ipsbin521722 -> 492807 bytes
-rw-r--r--data/battle_anim_effects_misc.s202
-rw-r--r--data/bike.s33
-rw-r--r--data/data_835B488.s1187
-rw-r--r--data/event_scripts.s4
-rw-r--r--data/field_effect.s145
-rw-r--r--data/fldeff_cut.s13
-rw-r--r--data/item_use.s15
-rw-r--r--data/map_name_popup.s10
-rw-r--r--data/mon_markings.s31
-rw-r--r--data/naming_screen.s159
-rw-r--r--data/option_menu.s43
-rw-r--r--data/pokemon_storage_system.s133
-rw-r--r--data/region_map.s333
-rw-r--r--data/shop.s40
-rw-r--r--data/specials.inc2
-rw-r--r--data/strings.s27
-rw-r--r--data/trainer_card.s160
-rw-r--r--include/constants/easy_chat.h10
-rw-r--r--include/easy_chat.h67
-rw-r--r--include/global.h8
-rw-r--r--include/mevent.h1
-rw-r--r--include/pokemon_size_record.h4
-rw-r--r--include/strings.h24
-rw-r--r--ld_script.txt26
-rw-r--r--src/berry.c920
-rw-r--r--src/data/easy_chat/easy_chat_group_actions.h472
-rw-r--r--src/data/easy_chat/easy_chat_group_adjectives.h220
-rw-r--r--src/data/easy_chat/easy_chat_group_battle.h382
-rw-r--r--src/data/easy_chat/easy_chat_group_conditions.h418
-rw-r--r--src/data/easy_chat/easy_chat_group_endings.h418
-rw-r--r--src/data/easy_chat/easy_chat_group_events.h172
-rw-r--r--src/data/easy_chat/easy_chat_group_feelings.h418
-rw-r--r--src/data/easy_chat/easy_chat_group_greetings.h256
-rw-r--r--src/data/easy_chat/easy_chat_group_hobbies.h328
-rw-r--r--src/data/easy_chat/easy_chat_group_lifestyle.h274
-rw-r--r--src/data/easy_chat/easy_chat_group_misc.h256
-rw-r--r--src/data/easy_chat/easy_chat_group_move_1.h158
-rw-r--r--src/data/easy_chat/easy_chat_group_move_2.h204
-rw-r--r--src/data/easy_chat/easy_chat_group_people.h454
-rw-r--r--src/data/easy_chat/easy_chat_group_pokemon.h206
-rw-r--r--src/data/easy_chat/easy_chat_group_pokemon2.h255
-rw-r--r--src/data/easy_chat/easy_chat_group_speech.h364
-rw-r--r--src/data/easy_chat/easy_chat_group_status.h658
-rw-r--r--src/data/easy_chat/easy_chat_group_time.h274
-rw-r--r--src/data/easy_chat/easy_chat_group_trainer.h160
-rw-r--r--src/data/easy_chat/easy_chat_group_trendy_saying.h202
-rw-r--r--src/data/easy_chat/easy_chat_group_voices.h382
-rw-r--r--src/data/easy_chat/easy_chat_groups.h137
-rw-r--r--src/data/easy_chat/easy_chat_words_by_letter.h2075
-rw-r--r--src/data/ingame_trades.h2
-rw-r--r--src/easy_chat.c742
-rw-r--r--src/mail.c6
-rw-r--r--src/mevent.c4
-rw-r--r--src/new_game.c4
-rw-r--r--src/pokemon_size_record.c221
-rw-r--r--src/trade_scene.c3
-rw-r--r--sym_bss.txt22
-rw-r--r--sym_ewram.txt13
65 files changed, 12498 insertions, 3642 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index fe6aac664..0f33b5cd6 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -1863,7 +1863,7 @@ sub_80E678C: @ 80E678C
movs r1, 0x3
movs r2, 0x2
movs r3, 0x12
- bl sub_80BD974
+ bl EC_DoesEasyChatStringFitOnLine
lsls r0, 24
cmp r0, 0
beq _080E67E4
diff --git a/asm/berry_crush_3.s b/asm/berry_crush_3.s
index 51657f296..fa7e038cb 100644
--- a/asm/berry_crush_3.s
+++ b/asm/berry_crush_3.s
@@ -1537,7 +1537,7 @@ _0814E21A:
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
- ldr r0, _0814E294 @ =sBerries
+ ldr r0, _0814E294 @ =gBerries
adds r1, r0
ldr r0, _0814E298 @ =gStringVar1
bl StringCopy
@@ -1591,7 +1591,7 @@ _0814E27E:
bl StringCopy
b _0814E2B8
.align 2, 0
-_0814E294: .4byte sBerries
+_0814E294: .4byte gBerries
_0814E298: .4byte gStringVar1
_0814E29C: .4byte gUnknown_846F4B8
_0814E2A0: .4byte gStringVar4
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
deleted file mode 100644
index 0daa8b2bc..000000000
--- a/asm/easy_chat.s
+++ /dev/null
@@ -1,1863 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BD718
-sub_80BD718: @ 80BD718
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x14
- beq _080BD73E
- cmp r0, 0x14
- bgt _080BD738
- cmp r0, 0x11
- blt _080BD74C
- ldr r0, _080BD734 @ =0x0000082c
- bl FlagGet
- b _080BD746
- .align 2, 0
-_080BD734: .4byte 0x0000082c
-_080BD738:
- cmp r1, 0x15
- beq _080BD742
- b _080BD74C
-_080BD73E:
- movs r0, 0
- b _080BD74E
-_080BD742:
- bl sub_80BDCA8
-_080BD746:
- lsls r0, 24
- lsrs r0, 24
- b _080BD74E
-_080BD74C:
- movs r0, 0x1
-_080BD74E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BD718
-
- thumb_func_start start_menu_is_selected_item_valid
-start_menu_is_selected_item_valid: @ 80BD754
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x15
- bne _080BD76C
- movs r0, 0
- bl GetNationalPokedexCount
- lsls r0, 16
- lsrs r0, 16
- b _080BD782
-_080BD76C:
- bl sub_80BD718
- lsls r0, 24
- cmp r0, 0
- bne _080BD77A
- movs r0, 0
- b _080BD782
-_080BD77A:
- ldr r0, _080BD788 @ =gUnknown_83ECED4
- lsls r1, r4, 3
- adds r1, r0
- ldrh r0, [r1, 0x6]
-_080BD782:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BD788: .4byte gUnknown_83ECED4
- thumb_func_end start_menu_is_selected_item_valid
-
- thumb_func_start sub_80BD78C
-sub_80BD78C: @ 80BD78C
- push {r4,r5,lr}
- lsls r2, r0, 16
- lsrs r1, r2, 16
- ldr r0, _080BD7B8 @ =0x0000ffff
- cmp r1, r0
- beq _080BD7EC
- lsrs r3, r2, 25
- ldr r5, _080BD7BC @ =0x000001ff
- ands r5, r1
- cmp r3, 0x15
- bhi _080BD7F0
- ldr r0, _080BD7C0 @ =gUnknown_83ECED4
- lsls r2, r3, 3
- adds r1, r2, r0
- ldrh r4, [r1, 0x4]
- cmp r3, 0x13
- bgt _080BD7C4
- cmp r3, 0x12
- bge _080BD7C8
- cmp r3, 0
- beq _080BD7C8
- b _080BD7E8
- .align 2, 0
-_080BD7B8: .4byte 0x0000ffff
-_080BD7BC: .4byte 0x000001ff
-_080BD7C0: .4byte gUnknown_83ECED4
-_080BD7C4:
- cmp r3, 0x15
- bne _080BD7E8
-_080BD7C8:
- adds r0, r2, r0
- ldr r2, [r0]
- movs r1, 0
- cmp r1, r4
- bcs _080BD7F0
-_080BD7D2:
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- beq _080BD7EC
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bcc _080BD7D2
- b _080BD7F0
-_080BD7E8:
- cmp r5, r4
- bcs _080BD7F0
-_080BD7EC:
- movs r0, 0
- b _080BD7F2
-_080BD7F0:
- movs r0, 0x1
-_080BD7F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD78C
-
- thumb_func_start GetEasyChatWord
-GetEasyChatWord: @ 80BD7F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r0, 0x13
- bgt _080BD810
- cmp r0, 0x12
- bge _080BD824
- cmp r0, 0
- beq _080BD814
- b _080BD834
-_080BD810:
- cmp r0, 0x15
- bne _080BD834
-_080BD814:
- movs r0, 0xB
- muls r0, r2
- ldr r1, _080BD820 @ =gSpeciesNames
- adds r0, r1
- b _080BD846
- .align 2, 0
-_080BD820: .4byte gSpeciesNames
-_080BD824:
- movs r0, 0xD
- muls r0, r2
- ldr r1, _080BD830 @ =gMoveNames
- adds r0, r1
- b _080BD846
- .align 2, 0
-_080BD830: .4byte gMoveNames
-_080BD834:
- ldr r1, _080BD84C @ =gUnknown_83ECED4
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_080BD846:
- pop {r1}
- bx r1
- .align 2, 0
-_080BD84C: .4byte gUnknown_83ECED4
- thumb_func_end GetEasyChatWord
-
- thumb_func_start CopyEasyChatWord
-CopyEasyChatWord: @ 80BD850
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r0, r6, 16
- adds r4, r0, 0
- bl sub_80BD78C
- lsls r0, 24
- cmp r0, 0
- beq _080BD86C
- ldr r1, _080BD868 @ =gUnknown_841E093
- b _080BD87E
- .align 2, 0
-_080BD868: .4byte gUnknown_841E093
-_080BD86C:
- ldr r0, _080BD888 @ =0x0000ffff
- cmp r4, r0
- beq _080BD890
- ldr r1, _080BD88C @ =0x000001ff
- ands r1, r4
- lsrs r0, r6, 25
- bl GetEasyChatWord
- adds r1, r0, 0
-_080BD87E:
- adds r0, r5, 0
- bl StringCopy
- b _080BD896
- .align 2, 0
-_080BD888: .4byte 0x0000ffff
-_080BD88C: .4byte 0x000001ff
-_080BD890:
- movs r0, 0xFF
- strb r0, [r5]
- adds r0, r5, 0
-_080BD896:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CopyEasyChatWord
-
- thumb_func_start ConvertEasyChatWordsToString
-ConvertEasyChatWordsToString: @ 80BD89C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- ldr r0, _080BD924 @ =0xffff0000
- adds r2, r0
- lsrs r7, r2, 16
- movs r0, 0
- cmp r0, r9
- bcs _080BD90C
-_080BD8BE:
- movs r6, 0
- adds r0, 0x1
- mov r8, r0
- cmp r6, r7
- bcs _080BD8F0
- ldr r2, _080BD928 @ =0x0000ffff
-_080BD8CA:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl CopyEasyChatWord
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080BD8E4
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080BD8E4:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080BD8CA
-_080BD8F0:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl CopyEasyChatWord
- adds r4, r0, 0
- movs r0, 0xFE
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r8
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r9
- bcc _080BD8BE
-_080BD90C:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080BD924: .4byte 0xffff0000
-_080BD928: .4byte 0x0000ffff
- thumb_func_end ConvertEasyChatWordsToString
-
- thumb_func_start sub_80BD92C
-sub_80BD92C: @ 80BD92C
- push {r4,r5,lr}
- lsls r5, r0, 16
- lsrs r0, r5, 16
- adds r4, r0, 0
- ldr r0, _080BD940 @ =0x0000ffff
- cmp r4, r0
- bne _080BD944
- movs r0, 0
- b _080BD96A
- .align 2, 0
-_080BD940: .4byte 0x0000ffff
-_080BD944:
- adds r0, r4, 0
- bl sub_80BD78C
- lsls r0, 24
- cmp r0, 0
- bne _080BD960
- ldr r1, _080BD95C @ =0x000001ff
- ands r1, r4
- lsrs r0, r5, 25
- bl GetEasyChatWord
- b _080BD962
- .align 2, 0
-_080BD95C: .4byte 0x000001ff
-_080BD960:
- ldr r0, _080BD970 @ =gUnknown_841E093
-_080BD962:
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
-_080BD96A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BD970: .4byte gUnknown_841E093
- thumb_func_end sub_80BD92C
-
- thumb_func_start sub_80BD974
-sub_80BD974: @ 80BD974
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- movs r7, 0
- cmp r7, r8
- bcs _080BD9D6
- subs r0, r1, 0x1
- lsls r0, 16
- mov r9, r0
-_080BD99E:
- mov r0, r9
- lsrs r4, r0, 16
- movs r5, 0
- cmp r5, r1
- bcs _080BD9C4
-_080BD9A8:
- ldrh r0, [r6]
- adds r6, 0x2
- str r1, [sp]
- bl sub_80BD92C
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, [sp]
- cmp r5, r1
- bcc _080BD9A8
-_080BD9C4:
- cmp r4, r10
- bls _080BD9CC
- movs r0, 0x1
- b _080BD9D8
-_080BD9CC:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _080BD99E
-_080BD9D6:
- movs r0, 0
-_080BD9D8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD974
-
- thumb_func_start sub_80BD9E8
-sub_80BD9E8: @ 80BD9E8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- ldr r2, _080BDA38 @ =gUnknown_83ECED4
- lsls r1, r4, 3
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x4]
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- beq _080BDA16
- cmp r4, 0x15
- beq _080BDA16
- cmp r4, 0x12
- beq _080BDA16
- cmp r4, 0x13
- bne _080BDA24
-_080BDA16:
- ldr r1, _080BDA38 @ =gUnknown_83ECED4
- lsls r0, r4, 3
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r2, [r0]
-_080BDA24:
- movs r0, 0x7F
- ands r0, r4
- lsls r0, 9
- ldr r1, _080BDA3C @ =0x000001ff
- ands r2, r1
- orrs r0, r2
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BDA38: .4byte gUnknown_83ECED4
-_080BDA3C: .4byte 0x000001ff
- thumb_func_end sub_80BD9E8
-
- thumb_func_start sub_80BDA40
-sub_80BDA40: @ 80BDA40
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0, 0
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BD718
- lsls r0, 24
- cmp r0, 0
- bne _080BDA60
- ldr r0, _080BDA5C @ =0x0000ffff
- b _080BDA74
- .align 2, 0
-_080BDA5C: .4byte 0x0000ffff
-_080BDA60:
- cmp r4, 0x15
- beq _080BDA6C
- adds r0, r4, 0
- bl sub_80BD9E8
- b _080BDA70
-_080BDA6C:
- bl sub_80BDCB8
-_080BDA70:
- lsls r0, 16
- lsrs r0, 16
-_080BDA74:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BDA40
-
- thumb_func_start sub_80BDA7C
-sub_80BDA7C: @ 80BDA7C
- push {r4,r5,lr}
- ldr r0, _080BDA90 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BDAB4
- cmp r0, 0x1
- bgt _080BDA94
- cmp r0, 0
- beq _080BDA9E
- b _080BDB08
- .align 2, 0
-_080BDA90: .4byte gSpecialVar_0x8004
-_080BDA94:
- cmp r0, 0x2
- beq _080BDADC
- cmp r0, 0x3
- beq _080BDAEC
- b _080BDB08
-_080BDA9E:
- ldr r0, _080BDAAC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _080BDAB0 @ =0x00002ca0
- adds r5, r0, r1
- movs r2, 0x2
- b _080BDAF6
- .align 2, 0
-_080BDAAC: .4byte gSaveBlock1Ptr
-_080BDAB0: .4byte 0x00002ca0
-_080BDAB4:
- ldr r0, _080BDAD4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _080BDAD8 @ =0x00002cac
- adds r5, r0, r1
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x12
- bl sub_80BD974
- lsls r0, 24
- cmp r0, 0
- beq _080BDAF4
- movs r2, 0x2
- movs r3, 0x3
- b _080BDAF8
- .align 2, 0
-_080BDAD4: .4byte gSaveBlock1Ptr
-_080BDAD8: .4byte 0x00002cac
-_080BDADC:
- ldr r0, _080BDAE4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _080BDAE8 @ =0x00002cb8
- b _080BDAF2
- .align 2, 0
-_080BDAE4: .4byte gSaveBlock1Ptr
-_080BDAE8: .4byte 0x00002cb8
-_080BDAEC:
- ldr r0, _080BDB10 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _080BDB14 @ =0x00002cc4
-_080BDAF2:
- adds r5, r0, r1
-_080BDAF4:
- movs r2, 0x3
-_080BDAF6:
- movs r3, 0x2
-_080BDAF8:
- ldr r4, _080BDB18 @ =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldAutoScrollMessage
-_080BDB08:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDB10: .4byte gSaveBlock1Ptr
-_080BDB14: .4byte 0x00002cc4
-_080BDB18: .4byte gStringVar4
- thumb_func_end sub_80BDA7C
-
- thumb_func_start BufferRandomHobbyOrLifestyleString
-BufferRandomHobbyOrLifestyleString: @ 80BDB1C
- push {lr}
- bl Random
- movs r1, 0x1
- ands r1, r0
- movs r0, 0xC
- cmp r1, 0
- beq _080BDB2E
- movs r0, 0xD
-_080BDB2E:
- bl sub_80BDA40
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _080BDB44 @ =gStringVar2
- bl CopyEasyChatWord
- pop {r0}
- bx r0
- .align 2, 0
-_080BDB44: .4byte gStringVar2
- thumb_func_end BufferRandomHobbyOrLifestyleString
-
- thumb_func_start sub_80BDB48
-sub_80BDB48: @ 80BDB48
- lsls r0, 24
- lsrs r2, r0, 27
- movs r1, 0xE0
- lsls r1, 19
- ands r1, r0
- lsrs r1, 24
- ldr r0, _080BDB68 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, _080BDB6C @ =0x00002f10
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_080BDB68: .4byte gSaveBlock1Ptr
-_080BDB6C: .4byte 0x00002f10
- thumb_func_end sub_80BDB48
-
- thumb_func_start EnableRareWord
-EnableRareWord: @ 80BDB70
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x20
- bhi _080BDB94
- lsrs r3, r0, 27
- movs r2, 0x7
- ands r2, r1
- ldr r0, _080BDB98 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, _080BDB9C @ =0x00002f10
- adds r1, r0
- adds r1, r3
- movs r0, 0x1
- lsls r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
-_080BDB94:
- pop {r0}
- bx r0
- .align 2, 0
-_080BDB98: .4byte gSaveBlock1Ptr
-_080BDB9C: .4byte 0x00002f10
- thumb_func_end EnableRareWord
-
- thumb_func_start sub_80BDBA0
-sub_80BDBA0: @ 80BDBA0
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_080BDBA6:
- adds r0, r4, 0
- bl sub_80BDB48
- lsls r0, 24
- cmp r0, 0
- beq _080BDBB8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BDBB8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x20
- bls _080BDBA6
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BDBA0
-
- thumb_func_start sub_80BDBCC
-sub_80BDBCC: @ 80BDBCC
- push {r4-r6,lr}
- bl sub_80BDBA0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x21
- bne _080BDBF8
- b _080BDC32
-_080BDBDC:
- adds r0, r5, 0
- bl EnableRareWord
- ldr r0, _080BDBF4 @ =0x000001ff
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080BDC34
- .align 2, 0
-_080BDBF4: .4byte 0x000001ff
-_080BDBF8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x21
- subs r1, r4
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
-_080BDC0E:
- lsls r0, r4, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80BDB48
- lsls r0, 24
- cmp r0, 0
- bne _080BDC28
- cmp r6, 0
- beq _080BDBDC
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080BDC28:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080BDC0E
-_080BDC32:
- ldr r0, _080BDC3C @ =0x0000ffff
-_080BDC34:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BDC3C: .4byte 0x0000ffff
- thumb_func_end sub_80BDBCC
-
- thumb_func_start sub_80BDC40
-sub_80BDC40: @ 80BDC40
- push {r4,r5,lr}
- bl sub_80BDBA0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BDC64
- b _080BDC9A
-_080BDC50:
- ldr r0, _080BDC60 @ =0x000001ff
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080BDC9C
- .align 2, 0
-_080BDC60: .4byte 0x000001ff
-_080BDC64:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_080BDC78:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BDB48
- lsls r0, 24
- cmp r0, 0
- beq _080BDC90
- cmp r5, 0
- beq _080BDC50
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080BDC90:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080BDC78
-_080BDC9A:
- ldr r0, _080BDCA4 @ =0x0000ffff
-_080BDC9C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BDCA4: .4byte 0x0000ffff
- thumb_func_end sub_80BDC40
-
- thumb_func_start sub_80BDCA8
-sub_80BDCA8: @ 80BDCA8
- push {lr}
- bl IsNationalPokedexEnabled
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80BDCA8
-
- thumb_func_start sub_80BDCB8
-sub_80BDCB8: @ 80BDCB8
- push {r4-r7,lr}
- movs r0, 0
- bl start_menu_is_selected_item_valid
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080BDCD8
- b _080BDD22
-_080BDCCA:
- ldrh r1, [r5]
- ldr r0, _080BDCD4 @ =0x000001ff
- ands r0, r1
- b _080BDD24
- .align 2, 0
-_080BDCD4: .4byte 0x000001ff
-_080BDCD8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080BDD2C @ =gUnknown_83ECED4
- ldr r5, [r0]
- ldrh r7, [r0, 0x4]
- movs r6, 0
- cmp r6, r7
- bcs _080BDD22
-_080BDCF6:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _080BDD16
- cmp r4, 0
- beq _080BDCCA
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080BDD16:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080BDCF6
-_080BDD22:
- ldr r0, _080BDD30 @ =0x0000ffff
-_080BDD24:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080BDD2C: .4byte gUnknown_83ECED4
-_080BDD30: .4byte 0x0000ffff
- thumb_func_end sub_80BDCB8
-
- thumb_func_start InitEasyChatPhrases
-InitEasyChatPhrases: @ 80BDD34
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _080BDE00 @ =gSaveBlock1Ptr
- ldr r3, _080BDE04 @ =0x00002ca0
- ldr r2, _080BDE08 @ =gUnknown_83EDFF0
-_080BDD3E:
- ldr r1, [r5]
- lsls r0, r4, 1
- adds r1, r3
- adds r1, r0
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080BDD3E
- movs r4, 0
- ldr r5, _080BDE00 @ =gSaveBlock1Ptr
- ldr r3, _080BDE0C @ =0x00002cac
- ldr r2, _080BDE10 @ =gUnknown_83EDFF8
-_080BDD5E:
- ldr r1, [r5]
- lsls r0, r4, 1
- adds r1, r3
- adds r1, r0
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _080BDD5E
- movs r4, 0
- ldr r0, _080BDE00 @ =gSaveBlock1Ptr
- mov r12, r0
- ldr r7, _080BDE14 @ =0x00002cb8
- ldr r0, _080BDE18 @ =0x0000ffff
- adds r5, r0, 0
- ldr r6, _080BDE1C @ =0x00002cc4
-_080BDD84:
- mov r0, r12
- ldr r2, [r0]
- lsls r3, r4, 1
- adds r1, r2, r7
- adds r1, r3
- ldrh r0, [r1]
- orrs r0, r5
- strh r0, [r1]
- adds r2, r6
- adds r2, r3
- ldrh r0, [r2]
- orrs r0, r5
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _080BDD84
- movs r4, 0
- ldr r7, _080BDE00 @ =gSaveBlock1Ptr
- ldr r6, _080BDE20 @ =0x00002cd0
- ldr r0, _080BDE18 @ =0x0000ffff
- adds r5, r0, 0
-_080BDDB2:
- movs r2, 0
- lsls r0, r4, 3
- adds r0, r4
- lsls r3, r0, 2
-_080BDDBA:
- ldr r1, [r7]
- lsls r0, r2, 1
- adds r0, r3
- adds r1, r6
- adds r1, r0
- ldrh r0, [r1]
- orrs r0, r5
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x8
- bls _080BDDBA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080BDDB2
- movs r4, 0
- ldr r3, _080BDE00 @ =gSaveBlock1Ptr
- ldr r2, _080BDE24 @ =0x00002f10
- movs r1, 0
-_080BDDE6:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _080BDDE6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDE00: .4byte gSaveBlock1Ptr
-_080BDE04: .4byte 0x00002ca0
-_080BDE08: .4byte gUnknown_83EDFF0
-_080BDE0C: .4byte 0x00002cac
-_080BDE10: .4byte gUnknown_83EDFF8
-_080BDE14: .4byte 0x00002cb8
-_080BDE18: .4byte 0x0000ffff
-_080BDE1C: .4byte 0x00002cc4
-_080BDE20: .4byte 0x00002cd0
-_080BDE24: .4byte 0x00002f10
- thumb_func_end InitEasyChatPhrases
-
- thumb_func_start sub_80BDE28
-sub_80BDE28: @ 80BDE28
- push {lr}
- bl sub_8143DA8
- ldr r1, _080BDE40 @ =0x0000ffff
- adds r2, r1, 0
- adds r1, r0, 0x6
-_080BDE34:
- strh r2, [r1]
- subs r1, 0x2
- cmp r1, r0
- bge _080BDE34
- pop {r0}
- bx r0
- .align 2, 0
-_080BDE40: .4byte 0x0000ffff
- thumb_func_end sub_80BDE28
-
- thumb_func_start sub_80BDE44
-sub_80BDE44: @ 80BDE44
- push {r4,lr}
- ldr r4, _080BDE60 @ =gUnknown_20399BC
- ldr r0, _080BDE64 @ =0x00003ba4
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _080BDE68
- bl sub_80BDE88
- bl sub_80BDFF8
- movs r0, 0x1
- b _080BDE6A
- .align 2, 0
-_080BDE60: .4byte gUnknown_20399BC
-_080BDE64: .4byte 0x00003ba4
-_080BDE68:
- movs r0, 0
-_080BDE6A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BDE44
-
- thumb_func_start sub_80BDE70
-sub_80BDE70: @ 80BDE70
- push {lr}
- ldr r0, _080BDE84 @ =gUnknown_20399BC
- ldr r0, [r0]
- cmp r0, 0
- beq _080BDE7E
- bl Free
-_080BDE7E:
- pop {r0}
- bx r0
- .align 2, 0
-_080BDE84: .4byte gUnknown_20399BC
- thumb_func_end sub_80BDE70
-
- thumb_func_start sub_80BDE88
-sub_80BDE88: @ 80BDE88
- push {r4,lr}
- ldr r4, _080BDF30 @ =gUnknown_20399BC
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1]
- bl GetNationalPokedexCount
- lsls r0, 16
- cmp r0, 0
- beq _080BDEB0
- ldr r0, [r4]
- ldrh r1, [r0]
- adds r2, r1, 0x1
- strh r2, [r0]
- lsls r1, 16
- lsrs r1, 15
- adds r0, 0x2
- adds r0, r1
- movs r1, 0x15
- strh r1, [r0]
-_080BDEB0:
- movs r3, 0x1
-_080BDEB2:
- ldr r0, [r4]
- ldrh r2, [r0]
- adds r1, r2, 0x1
- strh r1, [r0]
- lsls r2, 16
- lsrs r2, 15
- adds r0, 0x2
- adds r0, r2
- strh r3, [r0]
- adds r3, 0x1
- cmp r3, 0x10
- ble _080BDEB2
- ldr r0, _080BDF34 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BDF0C
- ldr r0, _080BDF30 @ =gUnknown_20399BC
- ldr r2, [r0]
- ldrh r0, [r2]
- adds r1, r0, 0x1
- strh r1, [r2]
- lsls r0, 16
- lsrs r0, 15
- adds r3, r2, 0x2
- adds r0, r3, r0
- movs r1, 0x11
- strh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0, 0x1
- strh r1, [r2]
- lsls r0, 16
- lsrs r0, 15
- adds r0, r3, r0
- movs r1, 0x12
- strh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0, 0x1
- strh r1, [r2]
- lsls r0, 16
- lsrs r0, 15
- adds r3, r0
- movs r0, 0x13
- strh r0, [r3]
-_080BDF0C:
- bl IsNationalPokedexEnabled
- cmp r0, 0
- beq _080BDF2A
- ldr r0, _080BDF30 @ =gUnknown_20399BC
- ldr r0, [r0]
- ldrh r1, [r0]
- adds r2, r1, 0x1
- strh r2, [r0]
- lsls r1, 16
- lsrs r1, 15
- adds r0, 0x2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
-_080BDF2A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDF30: .4byte gUnknown_20399BC
-_080BDF34: .4byte 0x0000082c
- thumb_func_end sub_80BDE88
-
- thumb_func_start sub_80BDF38
-sub_80BDF38: @ 80BDF38
- ldr r0, _080BDF40 @ =gUnknown_20399BC
- ldr r0, [r0]
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080BDF40: .4byte gUnknown_20399BC
- thumb_func_end sub_80BDF38
-
- thumb_func_start sub_80BDF44
-sub_80BDF44: @ 80BDF44
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BDF60 @ =gUnknown_20399BC
- ldr r1, [r0]
- ldrh r0, [r1]
- cmp r2, r0
- bcs _080BDF64
- lsls r0, r2, 1
- adds r1, 0x2
- adds r1, r0
- ldrb r0, [r1]
- b _080BDF66
- .align 2, 0
-_080BDF60: .4byte gUnknown_20399BC
-_080BDF64:
- movs r0, 0x16
-_080BDF66:
- pop {r1}
- bx r1
- thumb_func_end sub_80BDF44
-
- thumb_func_start sub_80BDF6C
-sub_80BDF6C: @ 80BDF6C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsls r2, 16
- lsrs r5, r2, 16
- ldr r0, _080BDFAC @ =gUnknown_83EDF98
- lsrs r1, 22
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl StringCopy
- adds r1, r0, 0
- subs r4, r1, r4
- lsls r4, 16
- lsrs r0, r4, 16
- cmp r0, r5
- bcs _080BDFA0
- movs r2, 0
-_080BDF92:
- strb r2, [r1]
- adds r1, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080BDF92
-_080BDFA0:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BDFAC: .4byte gUnknown_83EDF98
- thumb_func_end sub_80BDF6C
-
- thumb_func_start sub_80BDFB0
-sub_80BDFB0: @ 80BDFB0
- lsls r0, 24
- ldr r1, _080BDFBC @ =gUnknown_83EDF98
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080BDFBC: .4byte gUnknown_83EDF98
- thumb_func_end sub_80BDFB0
-
- thumb_func_start CopyEasyChatWordPadded
-CopyEasyChatWordPadded: @ 80BDFC0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- bl CopyEasyChatWord
- adds r1, r0, 0
- subs r4, r1, r4
- lsls r4, 16
- lsrs r0, r4, 16
- cmp r0, r5
- bcs _080BDFEC
- movs r2, 0
-_080BDFDE:
- strb r2, [r1]
- adds r1, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080BDFDE
-_080BDFEC:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CopyEasyChatWordPadded
-
- thumb_func_start sub_80BDFF8
-sub_80BDFF8: @ 80BDFF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _080BE06C @ =gUnknown_300116C
- movs r0, 0
- str r0, [r1]
- mov r10, r0
-_080BE00A:
- ldr r3, _080BE070 @ =gUnknown_83EDEC0
- ldr r2, [r1]
- lsls r1, r2, 3
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r4, [r0]
- ldr r0, _080BE074 @ =gUnknown_300117C
- str r4, [r0]
- adds r1, r3
- ldr r0, [r1]
- ldr r1, _080BE078 @ =gUnknown_3001184
- str r0, [r1]
- ldr r0, _080BE07C @ =gUnknown_20399BC
- ldr r0, [r0]
- lsls r2, 1
- adds r0, 0x2E
- adds r0, r2
- mov r2, r10
- strh r2, [r0]
- ldr r5, _080BE080 @ =gUnknown_3001178
- mov r3, r10
- str r3, [r5]
- ldr r0, _080BE084 @ =gUnknown_3001170
- str r3, [r0]
- cmp r10, r4
- blt _080BE040
- b _080BE13C
-_080BE040:
- ldr r1, _080BE088 @ =gUnknown_3001180
- mov r9, r1
- adds r2, r0, 0
- mov r8, r2
-_080BE048:
- ldr r3, _080BE078 @ =gUnknown_3001184
- ldr r2, [r3]
- ldrh r0, [r2]
- ldr r1, _080BE08C @ =0x0000ffff
- cmp r0, r1
- bne _080BE0E4
- adds r1, r2, 0x2
- str r1, [r3]
- ldrh r0, [r2, 0x2]
- mov r2, r9
- str r0, [r2]
- adds r1, 0x2
- str r1, [r3]
- mov r3, r8
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- b _080BE0EA
- .align 2, 0
-_080BE06C: .4byte gUnknown_300116C
-_080BE070: .4byte gUnknown_83EDEC0
-_080BE074: .4byte gUnknown_300117C
-_080BE078: .4byte gUnknown_3001184
-_080BE07C: .4byte gUnknown_20399BC
-_080BE080: .4byte gUnknown_3001178
-_080BE084: .4byte gUnknown_3001170
-_080BE088: .4byte gUnknown_3001180
-_080BE08C: .4byte 0x0000ffff
-_080BE090:
- ldr r0, _080BE0D4 @ =gUnknown_20399BC
- ldr r4, [r0]
- ldr r0, _080BE0D8 @ =gUnknown_3001178
- ldr r5, [r0]
- lsls r1, r5, 1
- ldr r0, _080BE0DC @ =gUnknown_300116C
- ldr r3, [r0]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 3
- subs r0, r3
- lsls r0, 2
- adds r1, r0
- adds r2, r4, 0
- adds r2, 0x64
- adds r2, r1
- ldr r0, [r6]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- adds r5, 0x1
- ldr r1, _080BE0D8 @ =gUnknown_3001178
- str r5, [r1]
- lsls r3, 1
- adds r4, 0x2E
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r4, _080BE0E0 @ =gUnknown_3001180
- b _080BE120
- .align 2, 0
-_080BE0D4: .4byte gUnknown_20399BC
-_080BE0D8: .4byte gUnknown_3001178
-_080BE0DC: .4byte gUnknown_300116C
-_080BE0E0: .4byte gUnknown_3001180
-_080BE0E4:
- movs r0, 0x1
- mov r2, r9
- str r0, [r2]
-_080BE0EA:
- ldr r4, _080BE158 @ =gUnknown_3001180
- ldr r1, _080BE15C @ =gUnknown_3001174
- mov r3, r10
- str r3, [r1]
- ldr r0, [r4]
- cmp r10, r0
- bge _080BE120
- adds r6, r1, 0
- ldr r7, _080BE160 @ =gUnknown_3001184
- ldr r4, _080BE158 @ =gUnknown_3001180
-_080BE0FE:
- ldr r0, [r6]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80BE440
- lsls r0, 24
- cmp r0, 0
- bne _080BE090
- ldr r1, [r6]
- adds r1, 0x1
- str r1, [r6]
- mov r2, r9
- ldr r0, [r2]
- cmp r1, r0
- blt _080BE0FE
-_080BE120:
- ldr r2, [r4]
- lsls r1, r2, 1
- ldr r3, _080BE160 @ =gUnknown_3001184
- ldr r0, [r3]
- adds r0, r1
- str r0, [r3]
- mov r0, r8
- ldr r1, [r0]
- adds r1, r2
- str r1, [r0]
- ldr r0, _080BE164 @ =gUnknown_300117C
- ldr r0, [r0]
- cmp r1, r0
- blt _080BE048
-_080BE13C:
- ldr r1, _080BE168 @ =gUnknown_300116C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x1A
- bgt _080BE14A
- b _080BE00A
-_080BE14A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE158: .4byte gUnknown_3001180
-_080BE15C: .4byte gUnknown_3001174
-_080BE160: .4byte gUnknown_3001184
-_080BE164: .4byte gUnknown_300117C
-_080BE168: .4byte gUnknown_300116C
- thumb_func_end sub_80BDFF8
-
- thumb_func_start sub_80BE16C
-sub_80BE16C: @ 80BE16C
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r0, 0
- bne _080BE17E
- adds r0, r1, 0
- bl sub_80BE1E8
- b _080BE184
-_080BE17E:
- adds r0, r1, 0
- bl sub_80BE2F8
-_080BE184:
- ldr r1, _080BE194 @ =gUnknown_20399BC
- ldr r1, [r1]
- ldr r2, _080BE198 @ =0x00003ba0
- adds r1, r2
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BE194: .4byte gUnknown_20399BC
-_080BE198: .4byte 0x00003ba0
- thumb_func_end sub_80BE16C
-
- thumb_func_start sub_80BE19C
-sub_80BE19C: @ 80BE19C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080BE1BC @ =gUnknown_20399BC
- ldr r1, [r0]
- ldr r3, _080BE1C0 @ =0x00003ba0
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r2, r0
- bcs _080BE1C8
- lsls r0, r2, 1
- ldr r2, _080BE1C4 @ =0x00003984
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- b _080BE1CA
- .align 2, 0
-_080BE1BC: .4byte gUnknown_20399BC
-_080BE1C0: .4byte 0x00003ba0
-_080BE1C4: .4byte 0x00003984
-_080BE1C8:
- ldr r0, _080BE1D0 @ =0x0000ffff
-_080BE1CA:
- pop {r1}
- bx r1
- .align 2, 0
-_080BE1D0: .4byte 0x0000ffff
- thumb_func_end sub_80BE19C
-
- thumb_func_start sub_80BE1D4
-sub_80BE1D4: @ 80BE1D4
- ldr r0, _080BE1E0 @ =gUnknown_20399BC
- ldr r0, [r0]
- ldr r1, _080BE1E4 @ =0x00003ba0
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_080BE1E0: .4byte gUnknown_20399BC
-_080BE1E4: .4byte 0x00003ba0
- thumb_func_end sub_80BE1D4
-
- thumb_func_start sub_80BE1E8
-sub_80BE1E8: @ 80BE1E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _080BE270 @ =gUnknown_83ECED4
- lsls r0, r2, 3
- adds r0, r1
- ldrh r7, [r0, 0x4]
- cmp r2, 0
- beq _080BE20E
- cmp r2, 0x15
- beq _080BE20E
- cmp r2, 0x12
- beq _080BE20E
- cmp r2, 0x13
- bne _080BE280
-_080BE20E:
- lsls r0, r2, 3
- adds r0, r1
- ldr r0, [r0]
- mov r10, r0
- movs r5, 0
- movs r6, 0
- cmp r6, r7
- bcs _080BE2DC
- movs r0, 0x7F
- ands r0, r2
- lsls r0, 9
- mov r9, r0
- lsls r2, 24
- mov r8, r2
-_080BE22A:
- lsls r0, r5, 1
- mov r1, r10
- adds r4, r0, r1
- ldrh r0, [r4]
- mov r2, r8
- lsrs r1, r2, 24
- bl sub_80BE3A4
- lsls r0, 24
- cmp r0, 0
- beq _080BE262
- ldr r0, _080BE274 @ =gUnknown_20399BC
- ldr r2, [r0]
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- ldr r3, _080BE278 @ =0x00003984
- adds r2, r3
- adds r2, r1
- ldrh r0, [r4]
- ldr r3, _080BE27C @ =0x000001ff
- adds r1, r3, 0
- ands r0, r1
- mov r1, r9
- orrs r0, r1
- strh r0, [r2]
-_080BE262:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r7
- bcc _080BE22A
- b _080BE2DC
- .align 2, 0
-_080BE270: .4byte gUnknown_83ECED4
-_080BE274: .4byte gUnknown_20399BC
-_080BE278: .4byte 0x00003984
-_080BE27C: .4byte 0x000001ff
-_080BE280:
- ldr r0, [r0]
- mov r10, r0
- movs r5, 0
- movs r6, 0
- cmp r6, r7
- bcs _080BE2DC
- movs r0, 0x7F
- ands r0, r2
- lsls r0, 9
- mov r9, r0
- lsls r2, 24
- mov r8, r2
-_080BE298:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- add r0, r10
- ldrh r4, [r0, 0x4]
- adds r0, r4, 0
- mov r2, r8
- lsrs r1, r2, 24
- bl sub_80BE3A4
- lsls r0, 24
- cmp r0, 0
- beq _080BE2D2
- ldr r0, _080BE2EC @ =gUnknown_20399BC
- ldr r2, [r0]
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- ldr r3, _080BE2F0 @ =0x00003984
- adds r2, r3
- adds r2, r1
- ldr r1, _080BE2F4 @ =0x000001ff
- adds r0, r1, 0
- ands r4, r0
- mov r3, r9
- orrs r4, r3
- strh r4, [r2]
-_080BE2D2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r7
- bcc _080BE298
-_080BE2DC:
- adds r0, r6, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080BE2EC: .4byte gUnknown_20399BC
-_080BE2F0: .4byte 0x00003984
-_080BE2F4: .4byte 0x000001ff
- thumb_func_end sub_80BE1E8
-
- thumb_func_start sub_80BE2F8
-sub_80BE2F8: @ 80BE2F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r4, 0
- movs r6, 0
- ldr r3, _080BE364 @ =gUnknown_20399BC
- ldr r0, [r3]
- lsls r5, r1, 1
- adds r0, 0x2E
- adds r0, r5
- ldrh r0, [r0]
- cmp r6, r0
- bcs _080BE358
- mov r8, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 3
- subs r0, r1
- lsls r7, r0, 2
- ldr r0, _080BE368 @ =0x00003984
- mov r12, r0
-_080BE326:
- mov r0, r8
- ldr r3, [r0]
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- mov r0, r12
- adds r2, r3, r0
- adds r2, r1
- lsls r1, r4, 1
- adds r1, r7
- adds r0, r3, 0
- adds r0, 0x64
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r3, 0x2E
- adds r3, r5
- ldrh r3, [r3]
- cmp r4, r3
- bcc _080BE326
-_080BE358:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080BE364: .4byte gUnknown_20399BC
-_080BE368: .4byte 0x00003984
- thumb_func_end sub_80BE2F8
-
- thumb_func_start sub_80BE36C
-sub_80BE36C: @ 80BE36C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _080BE390 @ =gUnknown_20399BC
- ldr r0, [r0]
- ldrh r1, [r0]
- cmp r2, r1
- bge _080BE39C
- adds r4, r3, 0
- adds r3, r1, 0
- adds r1, r0, 0x2
-_080BE384:
- ldrh r0, [r1]
- cmp r0, r4
- bne _080BE394
- movs r0, 0x1
- b _080BE39E
- .align 2, 0
-_080BE390: .4byte gUnknown_20399BC
-_080BE394:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r3
- blt _080BE384
-_080BE39C:
- movs r0, 0
-_080BE39E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BE36C
-
- thumb_func_start sub_80BE3A4
-sub_80BE3A4: @ 80BE3A4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x13
- bgt _080BE3BC
- cmp r0, 0x12
- bge _080BE3F6
- cmp r0, 0
- beq _080BE3D6
- b _080BE3FA
-_080BE3BC:
- cmp r0, 0x15
- bne _080BE3FA
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- lsls r0, 24
- lsrs r0, 24
- b _080BE40C
-_080BE3D6:
- adds r0, r4, 0
- bl sub_80BE418
- cmp r0, 0
- beq _080BE3F6
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- lsls r0, 24
- lsrs r0, 24
- b _080BE40C
-_080BE3F6:
- movs r0, 0x1
- b _080BE40C
-_080BE3FA:
- ldr r1, _080BE414 @ =gUnknown_83ECED4
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
-_080BE40C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BE414: .4byte gUnknown_83ECED4
- thumb_func_end sub_80BE3A4
-
- thumb_func_start sub_80BE418
-sub_80BE418: @ 80BE418
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _080BE42C @ =gUnknown_83EE004
-_080BE422:
- ldrh r0, [r1]
- cmp r0, r3
- bne _080BE430
- movs r0, 0x1
- b _080BE43A
- .align 2, 0
-_080BE42C: .4byte gUnknown_83EE004
-_080BE430:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0
- beq _080BE422
- movs r0, 0
-_080BE43A:
- pop {r1}
- bx r1
- thumb_func_end sub_80BE418
-
- thumb_func_start sub_80BE440
-sub_80BE440: @ 80BE440
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 25
- lsls r0, 7
- lsrs r4, r0, 23
- adds r0, r5, 0
- bl sub_80BE36C
- lsls r0, 24
- cmp r0, 0
- beq _080BE464
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BE3A4
- lsls r0, 24
- lsrs r0, 24
- b _080BE466
-_080BE464:
- movs r0, 0
-_080BE466:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BE440
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index c6918f6ad..eac887f61 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -3443,7 +3443,7 @@ _080FEDC0:
bl ResetPaletteFade
b _080FEE16
_080FEDD4:
- bl sub_80BDE44
+ bl InitEasyChatSelection
b _080FEDF2
_080FEDDA:
ldrb r4, [r6, 0x2]
@@ -3490,7 +3490,7 @@ _080FEE1E:
sub_80FEE24: @ 80FEE24
push {r4,lr}
adds r4, r0, 0
- bl sub_80BDE70
+ bl DestroyEasyChatSelectionData
bl sub_80FF010
bl sub_810011C
bl FreeAllWindowBuffers
@@ -3701,7 +3701,7 @@ _080FEFE0:
ldrb r2, [r0, 0x7]
adds r0, r6, 0
bl CpuSet
- bl sub_80BDF38
+ bl GetNumDisplayableGroups
ldr r2, [r4]
lsls r0, 24
lsrs r0, 24
@@ -4565,12 +4565,12 @@ sub_80FF5FC: @ 80FF5FC
bl sub_80FFB8C
lsls r0, 24
lsrs r0, 24
- bl sub_80BDF44
+ bl GetSelectedGroupByIndex
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0
- bl sub_80BE16C
+ bl GetUnlockedECWords
b _080FF638
.align 2, 0
_080FF624: .4byte gUnknown_203ACE8
@@ -4580,9 +4580,9 @@ _080FF628:
lsls r1, 16
lsrs r1, 16
movs r0, 0x1
- bl sub_80BE16C
+ bl GetUnlockedECWords
_080FF638:
- bl sub_80BE1D4
+ bl GetNumDisplayedWords
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -4673,7 +4673,7 @@ sub_80FF6C8: @ 80FF6C8
bl sub_80FFBE4
lsls r0, 16
lsrs r0, 16
- bl sub_80BE19C
+ bl GetDisplayedWordByIndex
lsls r0, 16
lsrs r0, 16
bl sub_80FF768
@@ -5506,7 +5506,7 @@ sub_80FFC6C: @ 80FFC6C
bne _080FFC9C
bl sub_80FFB8C
adds r4, r0, 0
- bl sub_80BDF38
+ bl GetNumDisplayableGroups
movs r1, 0
lsls r0, 24
lsls r4, 16
@@ -5546,7 +5546,7 @@ sub_80FFCC0: @ 80FFCC0
push {r4,lr}
bl sub_80FFBE4
adds r4, r0, 0
- bl sub_80BE1D4
+ bl GetNumDisplayedWords
movs r1, 0
lsls r4, 16
lsls r0, 16
@@ -8492,12 +8492,12 @@ _0810134A:
lsls r0, r5, 24
lsrs r0, 24
adds r5, 0x1
- bl sub_80BDF44
+ bl GetSelectedGroupByIndex
lsls r0, 24
lsrs r0, 24
cmp r0, 0x16
beq _0810138A
- bl sub_80BDFB0
+ bl GetEasyChatWordGroupName
adds r2, r0, 0
movs r0, 0x54
adds r3, r4, 0
@@ -8708,7 +8708,7 @@ _081014E6:
lsls r0, r4, 16
lsrs r0, 16
adds r4, 0x1
- bl sub_80BE19C
+ bl GetDisplayedWordByIndex
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _08101554 @ =0x0000ffff
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index 5408a70be..a0dad2280 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -981,4 +981,10 @@ sub_80BEBD0: @ 80BEBD0
_080BEBE8: .4byte gUnknown_83EE028
thumb_func_end sub_80BEBD0
+ .section ewram_data
+ .align 2, 0
+gUnknown_20399C0:
+ .4byte 0
+
+ .text
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_size_record.s b/asm/pokemon_size_record.s
deleted file mode 100644
index e14bdc51d..000000000
--- a/asm/pokemon_size_record.s
+++ /dev/null
@@ -1,482 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetMonSizeHash
-GetMonSizeHash: @ 80A069C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r1, 0
- bl GetMonData
- lsls r0, 16
- str r0, [sp, 0x4]
- lsrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x27
- bl GetMonData
- adds r7, r0, 0
- movs r6, 0xF
- ands r7, r6
- adds r0, r5, 0
- movs r1, 0x28
- bl GetMonData
- mov r8, r0
- mov r1, r8
- ands r1, r6
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0x29
- bl GetMonData
- mov r9, r0
- mov r3, r9
- ands r3, r6
- mov r9, r3
- adds r0, r5, 0
- movs r1, 0x2A
- bl GetMonData
- mov r10, r0
- ands r0, r6
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x2B
- bl GetMonData
- adds r4, r0, 0
- ands r4, r6
- adds r0, r5, 0
- movs r1, 0x2C
- bl GetMonData
- adds r2, r0, 0
- ands r2, r6
- mov r1, r8
- mov r3, r9
- eors r1, r3
- mov r8, r1
- mov r0, r8
- muls r0, r7
- movs r1, 0xFF
- ldr r3, [sp]
- ands r3, r1
- eors r0, r3
- eors r4, r2
- mov r1, r10
- muls r1, r4
- ldr r3, [sp, 0x4]
- lsrs r2, r3, 24
- eors r1, r2
- lsls r0, 8
- adds r0, r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetMonSizeHash
-
- thumb_func_start TranslateBigMonSizeTableIndex
-TranslateBigMonSizeTableIndex: @ 80A0740
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x1
- ldr r3, _080A075C @ =gUnknown_83E272C
-_080A074A:
- lsls r0, r1, 3
- adds r0, r3
- ldrh r0, [r0, 0x4]
- cmp r2, r0
- bcs _080A0760
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _080A076C
- .align 2, 0
-_080A075C: .4byte gUnknown_83E272C
-_080A0760:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080A074A
- adds r0, r1, 0
-_080A076C:
- pop {r1}
- bx r1
- thumb_func_end TranslateBigMonSizeTableIndex
-
- thumb_func_start GetMonSize
-GetMonSize: @ 80A0770
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r6, 16
- lsrs r6, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetPokedexHeightWeight
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- bl TranslateBigMonSizeTableIndex
- lsls r0, 24
- ldr r1, _080A07E0 @ =gUnknown_83E272C
- lsrs r0, 21
- adds r0, r1
- ldrh r1, [r0]
- str r1, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldrb r2, [r0, 0x2]
- movs r3, 0
- ldrh r4, [r0, 0x4]
- movs r5, 0
- adds r0, r6, 0
- movs r1, 0
- subs r0, r4
- sbcs r1, r5
- bl __udivdi3
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- adds r2, r0
- adcs r3, r1
- str r2, [sp]
- str r3, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- bl __muldi3
- movs r2, 0xA
- movs r3, 0
- bl __udivdi3
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A07E0: .4byte gUnknown_83E272C
- thumb_func_end GetMonSize
-
- thumb_func_start sub_80A07E4
-sub_80A07E4: @ 80A07E4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x64
- muls r0, r1
- movs r1, 0xFE
- bl __udivsi3
- adds r5, r0, 0
- movs r1, 0xA
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- ldr r1, _080A0828 @ =gUnknown_8417FB9
- bl StringAppend
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0828: .4byte gUnknown_8417FB9
- thumb_func_end sub_80A07E4
-
- thumb_func_start sub_80A082C
-sub_80A082C: @ 80A082C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080A0844 @ =gSpecialVar_Result
- ldrh r0, [r1]
- cmp r0, 0x5
- bls _080A0848
- movs r0, 0
- b _080A08C4
- .align 2, 0
-_080A0844: .4byte gSpecialVar_Result
-_080A0848:
- ldrh r1, [r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080A0870 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080A086A
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, r6
- beq _080A0874
-_080A086A:
- movs r0, 0x1
- b _080A08C4
- .align 2, 0
-_080A0870: .4byte gPlayerParty
-_080A0874:
- mov r4, sp
- adds r0, r5, 0
- bl GetMonSizeHash
- strh r0, [r4]
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r6, 0
- bl GetMonSize
- adds r5, r0, 0
- ldrh r1, [r7]
- adds r0, r6, 0
- bl GetMonSize
- adds r4, r0, 0
- ldr r0, _080A08AC @ =gStringVar3
- adds r1, r4, 0
- bl sub_80A07E4
- ldr r0, _080A08B0 @ =gStringVar2
- adds r1, r5, 0
- bl sub_80A07E4
- cmp r5, r4
- bne _080A08B4
- movs r0, 0x4
- b _080A08C4
- .align 2, 0
-_080A08AC: .4byte gStringVar3
-_080A08B0: .4byte gStringVar2
-_080A08B4:
- cmp r5, r4
- bcc _080A08C2
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r7]
- movs r0, 0x3
- b _080A08C4
-_080A08C2:
- movs r0, 0x2
-_080A08C4:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A082C
-
- thumb_func_start sub_80A08CC
-sub_80A08CC: @ 80A08CC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r1, [r1]
- adds r0, r4, 0
- bl GetMonSize
- adds r1, r0, 0
- ldr r0, _080A08F8 @ =gStringVar3
- bl sub_80A07E4
- ldr r0, _080A08FC @ =gStringVar1
- movs r1, 0xB
- muls r1, r4
- ldr r2, _080A0900 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A08F8: .4byte gStringVar3
-_080A08FC: .4byte gStringVar1
-_080A0900: .4byte gSpeciesNames
- thumb_func_end sub_80A08CC
-
- thumb_func_start sub_80A0904
-sub_80A0904: @ 80A0904
- push {lr}
- ldr r0, _080A0914 @ =0x0000403d
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080A0914: .4byte 0x0000403d
- thumb_func_end sub_80A0904
-
- thumb_func_start GetHeracrossSizeRecordInfo
-GetHeracrossSizeRecordInfo: @ 80A0918
- push {lr}
- ldr r0, _080A092C @ =0x0000403d
- bl GetVarPointer
- adds r1, r0, 0
- movs r0, 0xD6
- bl sub_80A08CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A092C: .4byte 0x0000403d
- thumb_func_end GetHeracrossSizeRecordInfo
-
- thumb_func_start CompareHeracrossSize
-CompareHeracrossSize: @ 80A0930
- push {r4,lr}
- ldr r0, _080A0950 @ =0x0000403d
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080A0954 @ =gSpecialVar_Result
- movs r0, 0xD6
- bl sub_80A082C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0950: .4byte 0x0000403d
-_080A0954: .4byte gSpecialVar_Result
- thumb_func_end CompareHeracrossSize
-
- thumb_func_start sub_80A0958
-sub_80A0958: @ 80A0958
- push {lr}
- ldr r0, _080A0968 @ =0x00004040
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080A0968: .4byte 0x00004040
- thumb_func_end sub_80A0958
-
- thumb_func_start GetMagikarpSizeRecordInfo
-GetMagikarpSizeRecordInfo: @ 80A096C
- push {lr}
- ldr r0, _080A0980 @ =0x00004040
- bl GetVarPointer
- adds r1, r0, 0
- movs r0, 0x81
- bl sub_80A08CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A0980: .4byte 0x00004040
- thumb_func_end GetMagikarpSizeRecordInfo
-
- thumb_func_start CompareMagikarpSize
-CompareMagikarpSize: @ 80A0984
- push {r4,lr}
- ldr r0, _080A09A4 @ =0x00004040
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080A09A8 @ =gSpecialVar_Result
- movs r0, 0x81
- bl sub_80A082C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A09A4: .4byte 0x00004040
-_080A09A8: .4byte gSpecialVar_Result
- thumb_func_end CompareMagikarpSize
-
- thumb_func_start GiveGiftRibbonToParty
-GiveGiftRibbonToParty: @ 80A09AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r7, 0
- add r4, sp, 0x8
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080A0A34 @ =gUnknown_83E27AC
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r8, r4
- cmp r6, 0xA
- bhi _080A0A28
- cmp r5, 0x40
- bhi _080A0A28
- ldr r0, _080A0A38 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _080A0A3C @ =0x0000309c
- adds r0, r1
- adds r0, r6
- strb r5, [r0]
- movs r5, 0
-_080A09E6:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080A0A40 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080A0A18
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _080A0A18
- mov r1, sp
- adds r0, r1, r6
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r8
- bl SetMonData
- movs r7, 0x1
-_080A0A18:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080A09E6
- cmp r7, 0
- beq _080A0A28
- ldr r0, _080A0A44 @ =0x0000083b
- bl FlagSet
-_080A0A28:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A34: .4byte gUnknown_83E27AC
-_080A0A38: .4byte gSaveBlock1Ptr
-_080A0A3C: .4byte 0x0000309c
-_080A0A40: .4byte gPlayerParty
-_080A0A44: .4byte 0x0000083b
- thumb_func_end GiveGiftRibbonToParty
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/baserom.ips b/baserom.ips
index a73fe2991..9fbf21b95 100644
--- a/baserom.ips
+++ b/baserom.ips
Binary files differ
diff --git a/data/battle_anim_effects_misc.s b/data/battle_anim_effects_misc.s
new file mode 100644
index 000000000..6eed66f09
--- /dev/null
+++ b/data/battle_anim_effects_misc.s
@@ -0,0 +1,202 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83E2964:: @ 83E2964
+ .incbin "baserom.gba", 0x3E2964, 0x74
+
+gAnimCmd_83E29D8::
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+gAnimCmd_83E29E0::
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+gAnimCmd_83E29E8::
+ obj_image_anim_frame 2, 1
+ obj_image_anim_end
+
+gAnimCmd_83E29F0::
+ obj_image_anim_frame 3, 1
+ obj_image_anim_end
+
+gAnimCmd_83E29F8::
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+gAnimCmd_83E2A00::
+ obj_image_anim_frame 5, 1
+ obj_image_anim_end
+
+gAnimCmd_83E2A08::
+ obj_image_anim_frame 6, 1
+ obj_image_anim_end
+
+gAnimCmd_83E2A10::
+ obj_image_anim_frame 7, 1
+ obj_image_anim_end
+
+gAnimCmd_83E2A18::
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+gSpriteAnimTable_83E2A20::
+ .4byte gAnimCmd_83E29D8
+ .4byte gAnimCmd_83E29E0
+ .4byte gAnimCmd_83E29E8
+ .4byte gAnimCmd_83E29F0
+ .4byte gAnimCmd_83E29F8
+ .4byte gAnimCmd_83E2A00
+ .4byte gAnimCmd_83E2A08
+
+gSpriteAnimTable_83E2A3C::
+ .4byte gAnimCmd_83E2A10
+
+gSpriteAnimTable_83E2A40::
+ .4byte gAnimCmd_83E2A18
+
+gAffineAnimCmd_83E2A44::
+ obj_rot_scal_anim_frame -5, -5, 0, 1
+ obj_rot_scal_anim_jump 0
+
+gSpriteAffineAnimTable_83E2A54::
+ .4byte gAffineAnimCmd_83E2A44
+
+gUnknown_83E2A58::
+ spr_template 10147, 10147, gOamData_83ACB50, gSpriteAnimTable_83E2A40, NULL, gSpriteAffineAnimTable_83E2A54, sub_80A2388
+
+gUnknown_83E2A70::
+ spr_template 10147, 10147, gOamData_83AC9C8, gSpriteAnimTable_83E2A20, NULL, gDummySpriteAffineAnimTable, sub_80A23D8
+
+gUnknown_83E2A88:: @ 83E2A88
+ spr_template 10147, 10147, gOamData_83AC9C8, gSpriteAnimTable_83E2A3C, NULL, gDummySpriteAffineAnimTable, sub_80A2430
+
+ .incbin "baserom.gba", 0x3E2AA0, 0x4D8
+
+gUnknown_83E2F78:: @ 83E2F78
+ .incbin "baserom.gba", 0x3E2F78, 0x78
+
+gUnknown_83E2FF0:: @ 83E2FF0
+ .incbin "baserom.gba", 0x3E2FF0, 0x100
+
+gUnknown_83E30F0:: @ 83E30F0
+ .incbin "baserom.gba", 0x3E30F0, 0x458
+
+gUnknown_83E3548:: @ 83E3548
+ .incbin "baserom.gba", 0x3E3548, 0x1EC
+
+gUnknown_83E3734:: @ 83E3734
+ .incbin "baserom.gba", 0x3E3734, 0x30
+
+gUnknown_83E3764:: @ 83E3764
+ .incbin "baserom.gba", 0x3E3764, 0x134
+
+gUnknown_83E3898:: @ 83E3898
+ .incbin "baserom.gba", 0x3E3898, 0xF4
+
+gUnknown_83E398C:: @ 83E398C
+ .incbin "baserom.gba", 0x3E398C, 0x29C
+
+gUnknown_83E3C28:: @ 83E3C28
+ .incbin "baserom.gba", 0x3E3C28, 0xF0
+
+gUnknown_83E3D18:: @ 83E3D18
+ .incbin "baserom.gba", 0x3E3D18, 0x148
+
+gUnknown_83E3E60:: @ 83E3E60
+ .incbin "baserom.gba", 0x3E3E60, 0x20
+
+gUnknown_83E3E80:: @ 83E3E80
+ .incbin "baserom.gba", 0x3E3E80, 0x9C
+
+gUnknown_83E3F1C:: @ 83E3F1C
+ .incbin "baserom.gba", 0x3E3F1C, 0x20C
+
+gUnknown_83E4128:: @ 83E4128
+ .incbin "baserom.gba", 0x3E4128, 0x2C
+
+gUnknown_83E4154:: @ 83E4154
+ .incbin "baserom.gba", 0x3E4154, 0x18
+
+gUnknown_83E416C:: @ 83E416C
+ .incbin "baserom.gba", 0x3E416C, 0x5C
+
+gUnknown_83E41C8:: @ 83E41C8
+ .incbin "baserom.gba", 0x3E41C8, 0x38
+
+gUnknown_83E4200:: @ 83E4200
+ .incbin "baserom.gba", 0x3E4200, 0x210
+
+gUnknown_83E4410:: @ 83E4410
+ .incbin "baserom.gba", 0x3E4410, 0x1488
+
+gUnknown_83E5898:: @ 83E5898
+ .incbin "baserom.gba", 0x3E5898, 0xC0
+
+gUnknown_83E5958:: @ 83E5958
+ .incbin "baserom.gba", 0x3E5958, 0x188
+
+gUnknown_83E5AE0:: @ 83E5AE0
+ .incbin "baserom.gba", 0x3E5AE0, 0xA8
+
+gUnknown_83E5B88:: @ 83E5B88
+ .incbin "baserom.gba", 0x3E5B88, 0x1C0
+
+gUnknown_83E5D48:: @ 83E5D48
+ .incbin "baserom.gba", 0x3E5D48, 0xE4
+
+gUnknown_83E5E2C:: @ 83E5E2C
+ .incbin "baserom.gba", 0x3E5E2C, 0x18
+
+gUnknown_83E5E44:: @ 83E5E44
+ .incbin "baserom.gba", 0x3E5E44, 0x2
+
+gUnknown_83E5E46:: @ 83E5E46
+ .incbin "baserom.gba", 0x3E5E46, 0xB6
+
+gUnknown_83E5EFC:: @ 83E5EFC
+ .incbin "baserom.gba", 0x3E5EFC, 0x10
+
+gUnknown_83E5F0C:: @ 83E5F0C
+ .incbin "baserom.gba", 0x3E5F0C, 0x2C
+
+gUnknown_83E5F38:: @ 83E5F38
+ .incbin "baserom.gba", 0x3E5F38, 0x168
+
+gUnknown_83E60A0:: @ 83E60A0
+ .incbin "baserom.gba", 0x3E60A0, 0x18
+
+gUnknown_83E60B8:: @ 83E60B8
+ .incbin "baserom.gba", 0x3E60B8, 0x18
+
+gUnknown_83E60D0:: @ 83E60D0
+ .incbin "baserom.gba", 0x3E60D0, 0x50
+
+gUnknown_83E6120:: @ 83E6120
+ .incbin "baserom.gba", 0x3E6120, 0x158
+
+gUnknown_83E6278:: @ 83E6278
+ .incbin "baserom.gba", 0x3E6278, 0x30
+
+gUnknown_83E62A8:: @ 83E62A8
+ .incbin "baserom.gba", 0x3E62A8, 0x138
+
+gUnknown_83E63E0:: @ 83E63E0
+ .incbin "baserom.gba", 0x3E63E0, 0xF4
+
+gUnknown_83E64D4:: @ 83E64D4
+ .incbin "baserom.gba", 0x3E64D4, 0x2C
+
+gUnknown_83E6500:: @ 83E6500
+ .incbin "baserom.gba", 0x3E6500, 0x2C
+
+gUnknown_83E652C:: @ 83E652C
+ .incbin "baserom.gba", 0x3E652C, 0x78
+
+gUnknown_83E65A4:: @ 83E65A4
+ .incbin "baserom.gba", 0x3E65A4, 0x544
diff --git a/data/bike.s b/data/bike.s
new file mode 100644
index 000000000..0245f0206
--- /dev/null
+++ b/data/bike.s
@@ -0,0 +1,33 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83E7CFC:: @ 83E7CFC
+ .4byte sub_80BD27C
+ .4byte sub_80BD28C
+ .4byte sub_80BD2C8
+ .4byte sub_80BD358
+ .4byte sub_80BD380
+
+gUnknown_83E7D10:: @ 83E7D10
+ .4byte sub_80BD100
+ .4byte sub_80BD1C8
+ .4byte sub_80BD1E8
+
+gUnknown_83E7D1C:: @ 83E7D1C
+ .2byte 0x0001, 0x0002, 0x0004
+
+gUnknown_83E7D22::
+ .byte 4
+
+ .align 2
+gUnknown_83E7D24::
+ .4byte 1, 2, 15, 15, gUnknown_83E7D22, gUnknown_83E7D22, 1
+ .4byte 2, 2, 15, 15, gUnknown_83E7D22, gUnknown_83E7D22, 2
+ .4byte 3, 2, 15, 15, gUnknown_83E7D22, gUnknown_83E7D22, 3
+ .4byte 4, 2, 15, 15, gUnknown_83E7D22, gUnknown_83E7D22, 4
+
diff --git a/data/data_835B488.s b/data/data_835B488.s
deleted file mode 100644
index 623c252c6..000000000
--- a/data/data_835B488.s
+++ /dev/null
@@ -1,1187 +0,0 @@
-#include "constants/maps.h"
-#include "constants/species.h"
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2
-
- .incbin "baserom.gba", 0x3CA770, 0xE80
-
-gUnknown_83CB5F0:: @ 83CB5F0
- .incbin "baserom.gba", 0x3CB5F0, 0x200
-
-gUnknown_83CB7F0:: @ 83CB7F0
- .incbin "baserom.gba", 0x3CB7F0, 0x20
-
-gUnknown_83CB810:: @ 83CB810
- .incbin "baserom.gba", 0x3CB810, 0x280
-
-gUnknown_83CBA90:: @ 83CBA90
- .incbin "baserom.gba", 0x3CBA90, 0x80
-
-gUnknown_83CBB10:: @ 83CBB10
- .incbin "baserom.gba", 0x3CBB10, 0x20
-
-gUnknown_83CBB30:: @ 83CBB30
- .incbin "baserom.gba", 0x3CBB30, 0x300
-
-gUnknown_83CBE30:: @ 83CBE30
- .incbin "baserom.gba", 0x3CBE30, 0x20
-
-gUnknown_83CBE50:: @ 83CBE50
- .incbin "baserom.gba", 0x3CBE50, 0x20
-
-gUnknown_83CBE70:: @ 83CBE70
- .incbin "baserom.gba", 0x3CBE70, 0x14
-
-gUnknown_83CBE84:: @ 83CBE84
- .incbin "baserom.gba", 0x3CBE84, 0x104
-
-gUnknown_83CBF88:: @ 83CBF88
- .incbin "baserom.gba", 0x3CBF88, 0x18
-
-gUnknown_83CBFA0:: @ 83CBFA0
- .incbin "baserom.gba", 0x3CBFA0, 0x18
-
-gUnknown_83CBFB8:: @ 83CBFB8
- .incbin "baserom.gba", 0x3CBFB8, 0x18
-
-gUnknown_83CBFD0:: @ 83CBFD0
- .incbin "baserom.gba", 0x3CBFD0, 0x10
-
-gUnknown_83CBFE0:: @ 83CBFE0
- .incbin "baserom.gba", 0x3CBFE0, 0x10
-
-gUnknown_83CBFF0:: @ 83CBFF0
- .incbin "baserom.gba", 0x3CBFF0, 0x20
-
-gUnknown_83CC010:: @ 83CC010
- .incbin "baserom.gba", 0x3CC010, 0x18
-
-gUnknown_83CC028:: @ 83CC028
- .incbin "baserom.gba", 0x3CC028, 0x4
-
-gUnknown_83CC02C:: @ 83CC02C
- .incbin "baserom.gba", 0x3CC02C, 0x4
-
-gUnknown_83CC030:: @ 83CC030
- .incbin "baserom.gba", 0x3CC030, 0x4
-
-gUnknown_83CC034:: @ 83CC034
- .incbin "baserom.gba", 0x3CC034, 0x1C
-
-gUnknown_83CC050:: @ 83CC050
- .incbin "baserom.gba", 0x3CC050, 0x18
-
-gUnknown_83CC068:: @ 83CC068
- .incbin "baserom.gba", 0x3CC068, 0x1C
-
-gUnknown_83CC084:: @ 83CC084
- .incbin "baserom.gba", 0x3CC084, 0x14
-
-gUnknown_83CC098:: @ 83CC098
- .incbin "baserom.gba", 0x3CC098, 0xC
-
-gUnknown_83CC0A4:: @ 83CC0A4
- .incbin "baserom.gba", 0x3CC0A4, 0x18
-
-gUnknown_83CC0BC:: @ 83CC0BC
- .incbin "baserom.gba", 0x3CC0BC, 0x10
-
-gUnknown_83CC0CC:: @ 83CC0CC
- .incbin "baserom.gba", 0x3CC0CC, 0x14
-
-gUnknown_83CC0E0:: @ 83CC0E0
- .incbin "baserom.gba", 0x3CC0E0, 0x8
-
-gUnknown_83CC0E8:: @ 83CC0E8
- .incbin "baserom.gba", 0x3CC0E8, 0x8
-
-gUnknown_83CC0F0:: @ 83CC0F0
- .incbin "baserom.gba", 0x3CC0F0, 0x8
-
-gUnknown_83CC0F8:: @ 83CC0F8
- .incbin "baserom.gba", 0x3CC0F8, 0x10
-
-gUnknown_83CC108:: @ 83CC108
- .incbin "baserom.gba", 0x3CC108, 0x8
-
-gUnknown_83CC110:: @ 83CC110
- .incbin "baserom.gba", 0x3CC110, 0xC
-
-gUnknown_83CC11C:: @ 83CC11C
- .incbin "baserom.gba", 0x3CC11C, 0x1C
-
-gUnknown_83CC138:: @ 83CC138
- .incbin "baserom.gba", 0x3CC138, 0x1C
-
-gUnknown_83CC154:: @ 83CC154
- .incbin "baserom.gba", 0x3CC154, 0x14
-
-gUnknown_83CC168:: @ 83CC168
- .incbin "baserom.gba", 0x3CC168, 0x10
-
-gUnknown_83CC178:: @ 83CC178
- .incbin "baserom.gba", 0x3CC178, 0x54
-
-gUnknown_83CC1CC:: @ 83CC1CC
- .incbin "baserom.gba", 0x3CC1CC, 0x8
-
-gUnknown_83CC1D4:: @ 83CC1D4
- .incbin "baserom.gba", 0x3CC1D4, 0x1C
-
-gUnknown_83CC1F0:: @ 83CC1F0
- .incbin "baserom.gba", 0x3CC1F0, 0x4C
-
-gUnknown_83CC23C:: @ 83CC23C
- .incbin "baserom.gba", 0x3CC23C, 0x8
-
-gUnknown_83CC244:: @ 83CC244
- .incbin "baserom.gba", 0x3CC244, 0x5C
-
-gUnknown_83CC2A0:: @ 83CC2A0
- .incbin "baserom.gba", 0x3CC2A0, 0x18
-
-gUnknown_83CC2B8:: @ 83CC2B8
- .incbin "baserom.gba", 0x3CC2B8, 0x20
-
-gUnknown_83CC2D8:: @ 83CC2D8
- .incbin "baserom.gba", 0x3CC2D8, 0xC
-
-gUnknown_83CC2E4:: @ 83CC2E4
- .incbin "baserom.gba", 0x3CC2E4, 0x20
-
-gUnknown_83CC304:: @ 83CC304
- .incbin "baserom.gba", 0x3CC304, 0x10
-
-gUnknown_83CC314:: @ 83CC314
- .incbin "baserom.gba", 0x3CC314, 0x1C
-
-gUnknown_83CC330:: @ 83CC330
- .incbin "baserom.gba", 0x3CC330, 0xC
-
-gUnknown_83CC33C:: @ 83CC33C
- .incbin "baserom.gba", 0x3CC33C, 0x8
-
-gUnknown_83CC344:: @ 83CC344
- .incbin "baserom.gba", 0x3CC344, 0x8
-
-gUnknown_83CC34C:: @ 83CC34C
- .incbin "baserom.gba", 0x3CC34C, 0x8
-
-gUnknown_83CC354:: @ 83CC354
- .incbin "baserom.gba", 0x3CC354, 0xC
-
-gUnknown_83CC360:: @ 83CC360
- .incbin "baserom.gba", 0x3CC360, 0x3
-
-gUnknown_83CC363:: @ 83CC363
- .incbin "baserom.gba", 0x3CC363, 0x5
-
-gUnknown_83CC368:: @ 83CC368
- .incbin "baserom.gba", 0x3CC368, 0x174
-
-gUnknown_83CC4DC:: @ 83CC4DC
- .incbin "baserom.gba", 0x3CC4DC, 0x214
-
-gUnknown_83CC6F0:: @ 83CC6F0
- .incbin "baserom.gba", 0x3CC6F0, 0x1B8
-
-gUnknown_83CC8A8:: @ 83CC8A8
- .incbin "baserom.gba", 0x3CC8A8, 0xDC
-
-gUnknown_83CC984:: @ 83CC984
- .incbin "baserom.gba", 0x3CC984, 0x12C
-
-gUnknown_83CCAB0:: @ 83CCAB0
- .incbin "baserom.gba", 0x3CCAB0, 0x1F4
-
-gUnknown_83CCCA4:: @ 83CCCA4
- .incbin "baserom.gba", 0x3CCCA4, 0x18C
-
-gUnknown_83CCE30:: @ 83CCE30
- .incbin "baserom.gba", 0x3CCE30, 0x98
-
-gUnknown_83CCEC8:: @ 83CCEC8
- .incbin "baserom.gba", 0x3CCEC8, 0x3B8
-
-gUnknown_83CD280:: @ 83CD280
- .incbin "baserom.gba", 0x3CD280, 0x20
-
-gUnknown_83CD2A0:: @ 83CD2A0
- .incbin "baserom.gba", 0x3CD2A0, 0x20
-
-gUnknown_83CD2C0:: @ 83CD2C0
- .incbin "baserom.gba", 0x3CD2C0, 0x20
-
-gUnknown_83CD2E0:: @ 83CD2E0
- .incbin "baserom.gba", 0x3CD2E0, 0x20
-
-gUnknown_83CD300:: @ 83CD300
- .incbin "baserom.gba", 0x3CD300, 0x20
-
-gUnknown_83CD320:: @ 83CD320
- .incbin "baserom.gba", 0x3CD320, 0x20
-
-gUnknown_83CD340:: @ 83CD340
- .incbin "baserom.gba", 0x3CD340, 0x20
-
-gUnknown_83CD360:: @ 83CD360
- .incbin "baserom.gba", 0x3CD360, 0x20
-
-gUnknown_83CD380:: @ 83CD380
- .incbin "baserom.gba", 0x3CD380, 0x268
-
-gUnknown_83CD5E8:: @ 83CD5E8
- .incbin "baserom.gba", 0x3CD5E8, 0x2A0
-
-gUnknown_83CD888:: @ 83CD888
- .incbin "baserom.gba", 0x3CD888, 0x10
-
-gUnknown_83CD898:: @ 83CD898
- .incbin "baserom.gba", 0x3CD898, 0x20
-
-gUnknown_83CD8B8:: @ 83CD8B8
- .incbin "baserom.gba", 0x3CD8B8, 0x14
-
-gUnknown_83CD8CC:: @ 83CD8CC
- .incbin "baserom.gba", 0x3CD8CC, 0x14
-
-gUnknown_83CD8E0:: @ 83CD8E0
- .incbin "baserom.gba", 0x3CD8E0, 0x3
-
-gUnknown_83CD8E3:: @ 83CD8E3
- .incbin "baserom.gba", 0x3CD8E3, 0x6
-
-gUnknown_83CD8E9:: @ 83CD8E9
- .incbin "baserom.gba", 0x3CD8E9, 0x3
-
-gUnknown_83CD8EC:: @ 83CD8EC
- .incbin "baserom.gba", 0x3CD8EC, 0x8
-
-gUnknown_83CD8F4:: @ 83CD8F4
- .incbin "baserom.gba", 0x3CD8F4, 0x4
-
-gUnknown_83CD8F8:: @ 83CD8F8
- .incbin "baserom.gba", 0x3CD8F8, 0x10
-
-gUnknown_83CD908:: @ 83CD908
- .incbin "baserom.gba", 0x3CD908, 0x18
-
-gUnknown_83CD920:: @ 83CD920
- .incbin "baserom.gba", 0x3CD920, 0x2
-
-gUnknown_83CD922:: @ 83CD922
- .incbin "baserom.gba", 0x3CD922, 0x2
-
-gUnknown_83CD924:: @ 83CD924
- .incbin "baserom.gba", 0x3CD924, 0x2
-
-gUnknown_83CD926:: @ 83CD926
- .incbin "baserom.gba", 0x3CD926, 0x2
-
-gUnknown_83CD928:: @ 83CD928
- .incbin "baserom.gba", 0x3CD928, 0x8
-
-gUnknown_83CD930:: @ 83CD930
- .incbin "baserom.gba", 0x3CD930, 0x2
-
-gUnknown_83CD932:: @ 83CD932
- .incbin "baserom.gba", 0x3CD932, 0x2
-
-gUnknown_83CD934:: @ 83CD934
- .incbin "baserom.gba", 0x3CD934, 0x2
-
-gUnknown_83CD936:: @ 83CD936
- .incbin "baserom.gba", 0x3CD936, 0x2
-
-gUnknown_83CD938:: @ 83CD938
- .incbin "baserom.gba", 0x3CD938, 0x2
-
-gUnknown_83CD93A:: @ 83CD93A
- .incbin "baserom.gba", 0x3CD93A, 0x2
-
-gUnknown_83CD93C:: @ 83CD93C
- .incbin "baserom.gba", 0x3CD93C, 0x2
-
-gUnknown_83CD93E:: @ 83CD93E
- .incbin "baserom.gba", 0x3CD93E, 0x2
-
-gUnknown_83CD940:: @ 83CD940
- .incbin "baserom.gba", 0x3CD940, 0x4
-
-gUnknown_83CD944:: @ 83CD944
- .incbin "baserom.gba", 0x3CD944, 0x8
-
-gUnknown_83CD94C:: @ 83CD94C
- .incbin "baserom.gba", 0x3CD94C, 0x6
-
-gUnknown_83CD952:: @ 83CD952
- .incbin "baserom.gba", 0x3CD952, 0x6
-
-gUnknown_83CD958:: @ 83CD958
- .incbin "baserom.gba", 0x3CD958, 0x4
-
-gUnknown_83CD95C:: @ 83CD95C
- .incbin "baserom.gba", 0x3CD95C, 0x4
-
-gUnknown_83CD960:: @ 83CD960
- .incbin "baserom.gba", 0x3CD960, 0x60
-
-gUnknown_83CD9C0:: @ 83CD9C0
- .incbin "baserom.gba", 0x3CD9C0, 0x60
-
-gUnknown_83CDA20:: @ 83CDA20
- .incbin "baserom.gba", 0x3CDA20, 0x28
-
-gUnknown_83CDA48:: @ 83CDA48
- .incbin "baserom.gba", 0x3CDA48, 0x28
-
-gUnknown_83CDA70:: @ 83CDA70
- .incbin "baserom.gba", 0x3CDA70, 0x24
-
-gUnknown_83CDA94:: @ 83CDA94
- .incbin "baserom.gba", 0x3CDA94, 0x4
-
-gUnknown_83CDA98:: @ 83CDA98
- .incbin "baserom.gba", 0x3CDA98, 0x20
-
-gUnknown_83CDAB8:: @ 83CDAB8
- .incbin "baserom.gba", 0x3CDAB8, 0x800
-
-gUnknown_83CE2B8:: @ 83CE2B8
- .incbin "baserom.gba", 0x3CE2B8, 0x180
-
-gUnknown_83CE438:: @ 83CE438
- .incbin "baserom.gba", 0x3CE438, 0x98
-
-gUnknown_83CE4D0:: @ 83CE4D0
- .incbin "baserom.gba", 0x3CE4D0, 0x12C
-
-gUnknown_83CE5FC:: @ 83CE5FC
- .incbin "baserom.gba", 0x3CE5FC, 0xFC
-
-gUnknown_83CE6F8:: @ 83CE6F8
- .incbin "baserom.gba", 0x3CE6F8, 0x40
-
-gUnknown_83CE738:: @ 83CE738
- .incbin "baserom.gba", 0x3CE738, 0x20
-
-gUnknown_83CE758:: @ 83CE758
- .incbin "baserom.gba", 0x3CE758, 0x20
-
-gUnknown_83CE778:: @ 83CE778
- .incbin "baserom.gba", 0x3CE778, 0x48
-
-gUnknown_83CE7C0:: @ 83CE7C0
- .incbin "baserom.gba", 0x3CE7C0, 0x18
-
-gUnknown_83CE7D8:: @ 83CE7D8
- .incbin "baserom.gba", 0x3CE7D8, 0x238
-
-gUnknown_83CEA10:: @ 83CEA10
- .incbin "baserom.gba", 0x3CEA10, 0x20
-
-gUnknown_83CEA30:: @ 83CEA30
- .incbin "baserom.gba", 0x3CEA30, 0x20
-
-gUnknown_83CEA50:: @ 83CEA50
- .incbin "baserom.gba", 0x3CEA50, 0x10
-
-gUnknown_83CEA60:: @ 83CEA60
- .incbin "baserom.gba", 0x3CEA60, 0x8
-
-gUnknown_83CEA68:: @ 83CEA68
- .incbin "baserom.gba", 0x3CEA68, 0x8
-
-gUnknown_83CEA70:: @ 83CEA70
- .incbin "baserom.gba", 0x3CEA70, 0x18
-
-gUnknown_83CEA88:: @ 83CEA88
- .incbin "baserom.gba", 0x3CEA88, 0xF8
-
-gUnknown_83CEB80:: @ 83CEB80
- .incbin "baserom.gba", 0x3CEB80, 0x58
-
-gUnknown_83CEBD8:: @ 83CEBD8
- .incbin "baserom.gba", 0x3CEBD8, 0x18
-
-gUnknown_83CEBF0:: @ 83CEBF0
- .incbin "baserom.gba", 0x3CEBF0, 0x48
-
-gUnknown_83CEC38:: @ 83CEC38
- .incbin "baserom.gba", 0x3CEC38, 0x3D98
-
-gUnknown_83D29D0:: @ 83D29D0
- .incbin "baserom.gba", 0x3D29D0, 0x40
-
-gUnknown_83D2A10:: @ 83D2A10
- .incbin "baserom.gba", 0x3D2A10, 0x144
-
-gUnknown_83D2B54:: @ 83D2B54
- .incbin "baserom.gba", 0x3D2B54, 0x28
-
-gUnknown_83D2B7C:: @ 83D2B7C
- .incbin "baserom.gba", 0x3D2B7C, 0x38
-
-gUnknown_83D2BB4:: @ 83D2BB4
- .incbin "baserom.gba", 0x3D2BB4, 0x8B8
-
-gUnknown_83D346C:: @ 83D346C
- .incbin "baserom.gba", 0x3D346C, 0xC
-
-gUnknown_83D3478:: @ 83D3478
- .incbin "baserom.gba", 0x3D3478, 0x28
-
-gUnknown_83D34A0:: @ 83D34A0
- .incbin "baserom.gba", 0x3D34A0, 0x18
-
-gUnknown_83D34B8:: @ 83D34B8
- .incbin "baserom.gba", 0x3D34B8, 0x54
-
-gUnknown_83D350C:: @ 83D350C
- .incbin "baserom.gba", 0x3D350C, 0x18
-
-gUnknown_83D3524:: @ 83D3524
- .incbin "baserom.gba", 0x3D3524, 0x18
-
-gUnknown_83D353C:: @ 83D353C
- .incbin "baserom.gba", 0x3D353C, 0x98
-
-gUnknown_83D35D4:: @ 83D35D4
- .incbin "baserom.gba", 0x3D35D4, 0x8
-
-gUnknown_83D35DC:: @ 83D35DC
- .incbin "baserom.gba", 0x3D35DC, 0x14C
-
-gUnknown_83D3728:: @ 83D3728
- .incbin "baserom.gba", 0x3D3728, 0x18
-
- @ pokemon_icon
- .section .rodata.83D4100
- .align 2
- @ fldeff_cut
-gUnknown_83D4100:: @ 83D4100
- .incbin "baserom.gba", 0x3D4100, 0x4C
-
-gUnknown_83D414C:: @ 83D414C
- .incbin "baserom.gba", 0x3D414C, 0x18
-
-gUnknown_83D4164:: @ 83D4164
- .incbin "baserom.gba", 0x3D4164, 0x8
-
- .section .rodata.83DF09C
-gUnknown_83DF09C:: @ 83DF09C
- .incbin "baserom.gba", 0x3DF09C, 0x18
-
-gUnknown_83DF0B4:: @ 83DF0B4
- .incbin "baserom.gba", 0x3DF0B4, 0x8
-
-gUnknown_83DF0BC:: @ 83DF0BC
- .incbin "baserom.gba", 0x3DF0BC, 0x8
-
-gUnknown_83DF0C4:: @ 83DF0C4
- .incbin "baserom.gba", 0x3DF0C4, 0x10
-
-gUnknown_83DF0D4:: @ 83DF0D4
- .incbin "baserom.gba", 0x3DF0D4, 0x6
-
-gUnknown_83DF0DA:: @ 83DF0DA
- .incbin "baserom.gba", 0x3DF0DA, 0x6
-
-gUnknown_83DF0E0:: @ 83DF0E0
- .incbin "baserom.gba", 0x3DF0E0, 0x6
-
-gUnknown_83DF0E6:: @ 83DF0E6
- .incbin "baserom.gba", 0x3DF0E6, 0x6
-
-gUnknown_83DF0EC:: @ 83DF0EC
- .incbin "baserom.gba", 0x3DF0EC, 0x6
-
-gUnknown_83DF0F2:: @ 83DF0F2
- .incbin "baserom.gba", 0x3DF0F2, 0x6
-
-gUnknown_83DF0F8:: @ 83DF0F8
- .incbin "baserom.gba", 0x3DF0F8, 0x6F0
-
-sBerries:: @ 83DF7E8
- .incbin "baserom.gba", 0x3DF7E8, 0x4B4
-
-gUnknown_83DFC9C:: @ 83DFC9C
- .incbin "baserom.gba", 0x3DFC9C, 0xB4
-
- .section .rodata.83E2280
- .incbin "baserom.gba", 0x3E1800, 0xA80
-
-gUnknown_83E2280:: @ 83E2280
- .incbin "baserom.gba", 0x3E2280, 0x10
-
-gUnknown_83E2290:: @ 83E2290
- .incbin "baserom.gba", 0x3E2290, 0x10
-
-gUnknown_83E22A0:: @ 83E22A0
- .incbin "baserom.gba", 0x3E22A0, 0x30
-
-gUnknown_83E22D0:: @ 83E22D0
- .incbin "baserom.gba", 0x3E22D0, 0x60
-
-gUnknown_83E2330:: @ 83E2330
- .incbin "baserom.gba", 0x3E2330, 0x3
-
-gUnknown_83E2333:: @ 83E2333
- .incbin "baserom.gba", 0x3E2333, 0x18
-
-gUnknown_83E234B:: @ 83E234B
- .incbin "baserom.gba", 0x3E234B, 0x3
-
-gUnknown_83E234E:: @ 83E234E
- .incbin "baserom.gba", 0x3E234E, 0x3
-
-gUnknown_83E2351:: @ 83E2351
- .incbin "baserom.gba", 0x3E2351, 0x3
-
-gUnknown_83E2354:: @ 83E2354
- .incbin "baserom.gba", 0x3E2354, 0x10
-
-gUnknown_83E2364:: @ 83E2364
- .incbin "baserom.gba", 0x3E2364, 0x8
-
-gUnknown_83E236C:: @ 83E236C
- .incbin "baserom.gba", 0x3E236C, 0x8
-
-gUnknown_83E2374:: @ 83E2374
- .incbin "baserom.gba", 0x3E2374, 0x4
-
-gUnknown_83E2378:: @ 83E2378
- .incbin "baserom.gba", 0x3E2378, 0x10
-
-gUnknown_83E2388:: @ 83E2388
- .incbin "baserom.gba", 0x3E2388, 0x6
-
-gUnknown_83E238E:: @ 83E238E
- .incbin "baserom.gba", 0x3E238E, 0x6
-
-gUnknown_83E2394:: @ 83E2394
- .incbin "baserom.gba", 0x3E2394, 0x28
-
-gUnknown_83E23BC:: @ 83E23BC
- .incbin "baserom.gba", 0x3E23BC, 0x4
-
-gUnknown_83E23C0:: @ 83E23C0
- .incbin "baserom.gba", 0x3E23C0, 0x8
-
-gUnknown_83E23C8:: @ 83E23C8
- .incbin "baserom.gba", 0x3E23C8, 0x8
-
-gUnknown_83E23D0:: @ 83E23D0
- .incbin "baserom.gba", 0x3E23D0, 0x10
-
-gUnknown_83E23E0:: @ 83E23E0
- .incbin "baserom.gba", 0x3E23E0, 0x8
-
-gUnknown_83E23E8:: @ 83E23E8
- .incbin "baserom.gba", 0x3E23E8, 0xA
-
-gUnknown_83E23F2:: @ 83E23F2
- .incbin "baserom.gba", 0x3E23F2, 0xA
-
-gUnknown_83E23FC:: @ 83E23FC
- .incbin "baserom.gba", 0x3E23FC, 0x8
-
-gUnknown_83E2404:: @ 83E2404
- .incbin "baserom.gba", 0x3E2404, 0x8
-
-gUnknown_83E240C:: @ 83E240C
- .incbin "baserom.gba", 0x3E240C, 0x14
-
-gUnknown_83E2420:: @ 83E2420
- .incbin "baserom.gba", 0x3E2420, 0x8
-
-gUnknown_83E2428:: @ 83E2428
- .incbin "baserom.gba", 0x3E2428, 0x14
-
-gUnknown_83E243C:: @ 83E243C
- .incbin "baserom.gba", 0x3E243C, 0x4
-
-gUnknown_83E2440:: @ 83E2440
- .incbin "baserom.gba", 0x3E2440, 0xC
-
-gUnknown_83E244C:: @ 83E244C
- .incbin "baserom.gba", 0x3E244C, 0xC
-
-gUnknown_83E2458:: @ 83E2458
- .incbin "baserom.gba", 0x3E2458, 0x34
-
-gUnknown_83E248C:: @ 83E248C
- .incbin "baserom.gba", 0x3E248C, 0x78
-
-gUnknown_83E2504:: @ 83E2504
- .incbin "baserom.gba", 0x3E2504, 0x8
-
-gUnknown_83E250C:: @ 83E250C
- .incbin "baserom.gba", 0x3E250C, 0x18
-
-gUnknown_83E2524:: @ 83E2524
- .incbin "baserom.gba", 0x3E2524, 0x8
-
-gUnknown_83E252C:: @ 83E252C
- .incbin "baserom.gba", 0x3E252C, 0x48
-
-gUnknown_83E2574:: @ 83E2574
- .incbin "baserom.gba", 0x3E2574, 0x18
-
-gUnknown_83E258C:: @ 83E258C
- .incbin "baserom.gba", 0x3E258C, 0x18
-
-gUnknown_83E25A4:: @ 83E25A4
- .incbin "baserom.gba", 0x3E25A4, 0x18
-
-gUnknown_83E25BC:: @ 83E25BC
- .incbin "baserom.gba", 0x3E25BC, 0x18
-
-gUnknown_83E25D4:: @ 83E25D4
- .incbin "baserom.gba", 0x3E25D4, 0x18
-
-gUnknown_83E25EC:: @ 83E25EC
- .incbin "baserom.gba", 0x3E25EC, 0x18
-
-gUnknown_83E2604:: @ 83E2604
- .incbin "baserom.gba", 0x3E2604, 0x18
-
-gUnknown_83E261C:: @ 83E261C
- .incbin "baserom.gba", 0x3E261C, 0x18
-
-gUnknown_83E2634:: @ 83E2634
- .incbin "baserom.gba", 0x3E2634, 0x18
-
-gUnknown_83E264C:: @ 83E264C
- .incbin "baserom.gba", 0x3E264C, 0x30
-
-gUnknown_83E267C:: @ 83E267C
- .incbin "baserom.gba", 0x3E267C, 0x68
-
-gUnknown_83E26E4:: @ 83E26E4
- .incbin "baserom.gba", 0x3E26E4, 0x48
-
-gUnknown_83E272C:: @ 83E272C
- .incbin "baserom.gba", 0x3E272C, 0x80
-
-gUnknown_83E27AC:: @ 83E27AC
- .incbin "baserom.gba", 0x3E27AC, 0x1A8
-
-gUnknown_83E2954:: @ 83E2954
- .4byte sub_8124C8C
- .4byte CB2_ReturnToField
- .4byte NULL
- .4byte NULL
-
-gUnknown_83E2964:: @ 83E2964
- .incbin "baserom.gba", 0x3E2964, 0x124
-
-gUnknown_83E2A88:: @ 83E2A88
- .incbin "baserom.gba", 0x3E2A88, 0x4F0
-
-gUnknown_83E2F78:: @ 83E2F78
- .incbin "baserom.gba", 0x3E2F78, 0x78
-
-gUnknown_83E2FF0:: @ 83E2FF0
- .incbin "baserom.gba", 0x3E2FF0, 0x100
-
-gUnknown_83E30F0:: @ 83E30F0
- .incbin "baserom.gba", 0x3E30F0, 0x458
-
-gUnknown_83E3548:: @ 83E3548
- .incbin "baserom.gba", 0x3E3548, 0x1EC
-
-gUnknown_83E3734:: @ 83E3734
- .incbin "baserom.gba", 0x3E3734, 0x30
-
-gUnknown_83E3764:: @ 83E3764
- .incbin "baserom.gba", 0x3E3764, 0x134
-
-gUnknown_83E3898:: @ 83E3898
- .incbin "baserom.gba", 0x3E3898, 0xF4
-
-gUnknown_83E398C:: @ 83E398C
- .incbin "baserom.gba", 0x3E398C, 0x29C
-
-gUnknown_83E3C28:: @ 83E3C28
- .incbin "baserom.gba", 0x3E3C28, 0xF0
-
-gUnknown_83E3D18:: @ 83E3D18
- .incbin "baserom.gba", 0x3E3D18, 0x148
-
-gUnknown_83E3E60:: @ 83E3E60
- .incbin "baserom.gba", 0x3E3E60, 0x20
-
-gUnknown_83E3E80:: @ 83E3E80
- .incbin "baserom.gba", 0x3E3E80, 0x9C
-
-gUnknown_83E3F1C:: @ 83E3F1C
- .incbin "baserom.gba", 0x3E3F1C, 0x20C
-
-gUnknown_83E4128:: @ 83E4128
- .incbin "baserom.gba", 0x3E4128, 0x2C
-
-gUnknown_83E4154:: @ 83E4154
- .incbin "baserom.gba", 0x3E4154, 0x18
-
-gUnknown_83E416C:: @ 83E416C
- .incbin "baserom.gba", 0x3E416C, 0x5C
-
-gUnknown_83E41C8:: @ 83E41C8
- .incbin "baserom.gba", 0x3E41C8, 0x38
-
-gUnknown_83E4200:: @ 83E4200
- .incbin "baserom.gba", 0x3E4200, 0x210
-
-gUnknown_83E4410:: @ 83E4410
- .incbin "baserom.gba", 0x3E4410, 0x1488
-
-gUnknown_83E5898:: @ 83E5898
- .incbin "baserom.gba", 0x3E5898, 0xC0
-
-gUnknown_83E5958:: @ 83E5958
- .incbin "baserom.gba", 0x3E5958, 0x188
-
-gUnknown_83E5AE0:: @ 83E5AE0
- .incbin "baserom.gba", 0x3E5AE0, 0xA8
-
-gUnknown_83E5B88:: @ 83E5B88
- .incbin "baserom.gba", 0x3E5B88, 0x1C0
-
-gUnknown_83E5D48:: @ 83E5D48
- .incbin "baserom.gba", 0x3E5D48, 0xE4
-
-gUnknown_83E5E2C:: @ 83E5E2C
- .incbin "baserom.gba", 0x3E5E2C, 0x18
-
-gUnknown_83E5E44:: @ 83E5E44
- .incbin "baserom.gba", 0x3E5E44, 0x2
-
-gUnknown_83E5E46:: @ 83E5E46
- .incbin "baserom.gba", 0x3E5E46, 0xB6
-
-gUnknown_83E5EFC:: @ 83E5EFC
- .incbin "baserom.gba", 0x3E5EFC, 0x10
-
-gUnknown_83E5F0C:: @ 83E5F0C
- .incbin "baserom.gba", 0x3E5F0C, 0x2C
-
-gUnknown_83E5F38:: @ 83E5F38
- .incbin "baserom.gba", 0x3E5F38, 0x168
-
-gUnknown_83E60A0:: @ 83E60A0
- .incbin "baserom.gba", 0x3E60A0, 0x18
-
-gUnknown_83E60B8:: @ 83E60B8
- .incbin "baserom.gba", 0x3E60B8, 0x18
-
-gUnknown_83E60D0:: @ 83E60D0
- .incbin "baserom.gba", 0x3E60D0, 0x50
-
-gUnknown_83E6120:: @ 83E6120
- .incbin "baserom.gba", 0x3E6120, 0x158
-
-gUnknown_83E6278:: @ 83E6278
- .incbin "baserom.gba", 0x3E6278, 0x30
-
-gUnknown_83E62A8:: @ 83E62A8
- .incbin "baserom.gba", 0x3E62A8, 0x138
-
-gUnknown_83E63E0:: @ 83E63E0
- .incbin "baserom.gba", 0x3E63E0, 0xF4
-
-gUnknown_83E64D4:: @ 83E64D4
- .incbin "baserom.gba", 0x3E64D4, 0x2C
-
-gUnknown_83E6500:: @ 83E6500
- .incbin "baserom.gba", 0x3E6500, 0x2C
-
-gUnknown_83E652C:: @ 83E652C
- .incbin "baserom.gba", 0x3E652C, 0x78
-
-gUnknown_83E65A4:: @ 83E65A4
- .incbin "baserom.gba", 0x3E65A4, 0x544
-
- .section .rodata.83E7CFC
-
-gUnknown_83E7CFC:: @ 83E7CFC
- .incbin "baserom.gba", 0x3E7CFC, 0x14
-
-gUnknown_83E7D10:: @ 83E7D10
- .incbin "baserom.gba", 0x3E7D10, 0xC
-
-gUnknown_83E7D1C:: @ 83E7D1C
- .incbin "baserom.gba", 0x3E7D1C, 0x51B8
-
-gUnknown_83ECED4:: @ 83ECED4
- .incbin "baserom.gba", 0x3ECED4, 0xFEC
-
-gUnknown_83EDEC0:: @ 83EDEC0
- .incbin "baserom.gba", 0x3EDEC0, 0xD8
-
-gUnknown_83EDF98:: @ 83EDF98
- .incbin "baserom.gba", 0x3EDF98, 0x58
-
-gUnknown_83EDFF0:: @ 83EDFF0
- .incbin "baserom.gba", 0x3EDFF0, 0x8
-
-gUnknown_83EDFF8:: @ 83EDFF8
- .incbin "baserom.gba", 0x3EDFF8, 0xC
-
-gUnknown_83EE004:: @ 83EE004
- .incbin "baserom.gba", 0x3EE004, 0x4
-
-gUnknown_83EE008:: @ 83EE008
- .incbin "baserom.gba", 0x3EE008, 0x20
-
-gUnknown_83EE028:: @ 83EE028
- .incbin "baserom.gba", 0x3EE028, 0x808
-
-gUnknown_83EE830:: @ 83EE830
- .incbin "baserom.gba", 0x3EE830, 0x8
-
-gUnknown_83EE838:: @ 83EE838
- .incbin "baserom.gba", 0x3EE838, 0x58
-
-gUnknown_83EE890:: @ 83EE890
- .incbin "baserom.gba", 0x3EE890, 0x38
-
-gUnknown_83EE8C8:: @ 83EE8C8
- .incbin "baserom.gba", 0x3EE8C8, 0x8
-
-gUnknown_83EE8D0:: @ 83EE8D0
- .incbin "baserom.gba", 0x3EE8D0, 0x88
-
-gUnknown_83EE958:: @ 83EE958
- .incbin "baserom.gba", 0x3EE958, 0x40
-
- .section .rodata.83EEC98
-
- .include "data/text/map_section_names.inc"
-
-gUnknown_83EF23C:: @ 83EF23C
- .incbin "baserom.gba", 0x3EF23C, 0x1E
-
-gUnknown_83EF25A:: @ 83EF25A
- .incbin "baserom.gba", 0x3EF25A, 0x2
-
-gUnknown_83EF25C:: @ 83EF25C
- .incbin "baserom.gba", 0x3EF25C, 0x20
-
-gUnknown_83EF27C:: @ 83EF27C
- .incbin "baserom.gba", 0x3EF27C, 0x20
-
-gUnknown_83EF29C:: @ 83EF29C
- .incbin "baserom.gba", 0x3EF29C, 0x20
-
-gUnknown_83EF2BC:: @ 83EF2BC
- .incbin "baserom.gba", 0x3EF2BC, 0x20
-
-gUnknown_83EF2DC:: @ 83EF2DC
- .incbin "baserom.gba", 0x3EF2DC, 0x40
-
-gUnknown_83EF31C:: @ 83EF31C
- .incbin "baserom.gba", 0x3EF31C, 0x68
-
-gUnknown_83EF384:: @ 83EF384
- .incbin "baserom.gba", 0x3EF384, 0x20
-
-gUnknown_83EF3A4:: @ 83EF3A4
- .incbin "baserom.gba", 0x3EF3A4, 0x20
-
-gUnknown_83EF3C4:: @ 83EF3C4
- .incbin "baserom.gba", 0x3EF3C4, 0x8C
-
-gUnknown_83EF450:: @ 83EF450
- .incbin "baserom.gba", 0x3EF450, 0x90
-
-gUnknown_83EF4E0:: @ 83EF4E0
- .incbin "baserom.gba", 0x3EF4E0, 0x44
-
-gUnknown_83EF524:: @ 83EF524
- .incbin "baserom.gba", 0x3EF524, 0x78
-
-gUnknown_83EF59C:: @ 83EF59C
- .incbin "baserom.gba", 0x3EF59C, 0x80
-
-gUnknown_83EF61C:: @ 83EF61C
- .incbin "baserom.gba", 0x3EF61C, 0xD14
-
-gUnknown_83F0330:: @ 83F0330
- .incbin "baserom.gba", 0x3F0330, 0x250
-
-gUnknown_83F0580:: @ 83F0580
- .incbin "baserom.gba", 0x3F0580, 0x31C
-
-gUnknown_83F089C:: @ 83F089C
- .incbin "baserom.gba", 0x3F089C, 0x260
-
-gUnknown_83F0AFC:: @ 83F0AFC
- .incbin "baserom.gba", 0x3F0AFC, 0x110
-
-gUnknown_83F0C0C:: @ 83F0C0C
- .incbin "baserom.gba", 0x3F0C0C, 0xE4
-
-gUnknown_83F0CF0:: @ 83F0CF0
- .incbin "baserom.gba", 0x3F0CF0, 0x11C
-
-gUnknown_83F0E0C:: @ 83F0E0C
- .incbin "baserom.gba", 0x3F0E0C, 0x110
-
-gUnknown_83F0F1C:: @ 83F0F1C
- .incbin "baserom.gba", 0x3F0F1C, 0x168
-
-gUnknown_83F1084:: @ 83F1084
- .incbin "baserom.gba", 0x3F1084, 0x10C
-
-gUnknown_83F1190:: @ 83F1190
- .incbin "baserom.gba", 0x3F1190, 0x13C
-
-gUnknown_83F12CC:: @ 83F12CC
- .incbin "baserom.gba", 0x3F12CC, 0x120
-
-gUnknown_83F13EC:: @ 83F13EC
- .incbin "baserom.gba", 0x3F13EC, 0x164
-
-gUnknown_83F1550:: @ 83F1550
- .incbin "baserom.gba", 0x3F1550, 0xF0
-
-gUnknown_83F1640:: @ 83F1640
- .incbin "baserom.gba", 0x3F1640, 0xF8
-
-gUnknown_83F1738:: @ 83F1738
- .incbin "baserom.gba", 0x3F1738, 0xCC
-
-gUnknown_83F1804:: @ 83F1804
- .incbin "baserom.gba", 0x3F1804, 0xD4
-
-gUnknown_83F18D8:: @ 83F18D8
- .incbin "baserom.gba", 0x3F18D8, 0x30
-
-gUnknown_83F1908:: @ 83F1908
- .incbin "baserom.gba", 0x3F1908, 0x70
-
-gUnknown_83F1978:: @ 83F1978
- .incbin "baserom.gba", 0x3F1978, 0x28
-
-gUnknown_83F19A0:: @ 83F19A0
- .incbin "baserom.gba", 0x3F19A0, 0xB0
-
-gUnknown_83F1A50:: @ 83F1A50
- .incbin "baserom.gba", 0x3F1A50, 0x10
-
-gUnknown_83F1A60:: @ 83F1A60
- .incbin "baserom.gba", 0x3F1A60, 0x30
-
-gUnknown_83F1A90:: @ 83F1A90
- .incbin "baserom.gba", 0x3F1A90, 0x4
-
-gUnknown_83F1A94:: @ 83F1A94
- .incbin "baserom.gba", 0x3F1A94, 0x8
-
-gUnknown_83F1A9C:: @ 83F1A9C
- .incbin "baserom.gba", 0x3F1A9C, 0x8
-
-gUnknown_83F1AA4:: @ 83F1AA4
- .incbin "baserom.gba", 0x3F1AA4, 0x5C
-
-gUnknown_83F1B00:: @ 83F1B00
- .incbin "baserom.gba", 0x3F1B00, 0xC
-
-gUnknown_83F1B0C:: @ 83F1B0C
- .incbin "baserom.gba", 0x3F1B0C, 0x8
-
-gUnknown_83F1B14:: @ 83F1B14
- .incbin "baserom.gba", 0x3F1B14, 0x8
-
-gUnknown_83F1B1C:: @ 83F1B1C
- .incbin "baserom.gba", 0x3F1B1C, 0x8
-
-gUnknown_83F1B24:: @ 83F1B24
- .incbin "baserom.gba", 0x3F1B24, 0x14
-
-gUnknown_83F1B38:: @ 83F1B38
- .incbin "baserom.gba", 0x3F1B38, 0x4
-
-gUnknown_83F1B3C:: @ 83F1B3C
- .incbin "baserom.gba", 0x3F1B3C, 0xE4
-
-gUnknown_83F1C20:: @ 83F1C20
- .incbin "baserom.gba", 0x3F1C20, 0x10
-
-gUnknown_83F1C30:: @ 83F1C30
- .incbin "baserom.gba", 0x3F1C30, 0x4
-
-gUnknown_83F1C34:: @ 83F1C34
- .incbin "baserom.gba", 0x3F1C34, 0x8
-
-gUnknown_83F1C3C:: @ 83F1C3C
- .incbin "baserom.gba", 0x3F1C3C, 0x14
-
-gUnknown_83F1C50:: @ 83F1C50
- .incbin "baserom.gba", 0x3F1C50, 0x4
-
-gUnknown_83F1C54:: @ 83F1C54
- .incbin "baserom.gba", 0x3F1C54, 0x10
-
-gUnknown_83F1C64:: @ 83F1C64
- .incbin "baserom.gba", 0x3F1C64, 0x4
-
-gUnknown_83F1C68:: @ 83F1C68
- .incbin "baserom.gba", 0x3F1C68, 0x8
-
-gUnknown_83F1C70:: @ 83F1C70
- .incbin "baserom.gba", 0x3F1C70, 0x24
-
-gUnknown_83F1C94:: @ 83F1C94
- .incbin "baserom.gba", 0x3F1C94, 0x4
-
-gUnknown_83F1C98:: @ 83F1C98
- .incbin "baserom.gba", 0x3F1C98, 0x8
-
-gUnknown_83F1CA0:: @ 83F1CA0
- .incbin "baserom.gba", 0x3F1CA0, 0x4
-
-gUnknown_83F1CA4:: @ 83F1CA4
- .incbin "baserom.gba", 0x3F1CA4, 0x4
-
-gUnknown_83F1CA8:: @ 83F1CA8
- .incbin "baserom.gba", 0x3F1CA8, 0x4
-
-gUnknown_83F1CAC:: @ 83F1CAC
- .4byte gMapSecName_PalletTown
- .4byte gMapSecName_ViridianCity
- .4byte gMapSecName_PewterCity
- .4byte gMapSecName_CeruleanCity
- .4byte gMapSecName_LavenderTown
- .4byte gMapSecName_VermilionCity
- .4byte gMapSecName_CeladonCity
- .4byte gMapSecName_FuchsiaCity
- .4byte gMapSecName_CinnabarIsland
- .4byte gMapSecName_IndigoPlateau
- .4byte gMapSecName_SaffronCity
- .4byte gMapSecName_Route4
- .4byte gMapSecName_Route10
- .4byte gMapSecName_Route1
- .4byte gMapSecName_Route2
- .4byte gMapSecName_Route3
- .4byte gMapSecName_Route4_2
- .4byte gMapSecName_Route5
- .4byte gMapSecName_Route6
- .4byte gMapSecName_Route7
- .4byte gMapSecName_Route8
- .4byte gMapSecName_Route9
- .4byte gMapSecName_Route10_2
- .4byte gMapSecName_Route11
- .4byte gMapSecName_Route12
- .4byte gMapSecName_Route13
- .4byte gMapSecName_Route14
- .4byte gMapSecName_Route15
- .4byte gMapSecName_Route16
- .4byte gMapSecName_Route17
- .4byte gMapSecName_Route18
- .4byte gMapSecName_Route19
- .4byte gMapSecName_Route20
- .4byte gMapSecName_Route21
- .4byte gMapSecName_Route22
- .4byte gMapSecName_Route23
- .4byte gMapSecName_Route24
- .4byte gMapSecName_Route25
- .4byte gMapSecName_ViridianForest
- .4byte gMapSecName_MtMoon
- .4byte gMapSecName_SSAnne
- .4byte gMapSecName_UndergroundPath
- .4byte gMapSecName_UndergroundPath_2
- .4byte gMapSecName_DiglettsCave
- .4byte gMapSecName_VictoryRoad
- .4byte gMapSecName_RocketHideout
- .4byte gMapSecName_SilphCo
- .4byte gMapSecName_PokemonMansion
- .4byte gMapSecName_SafariZone
- .4byte gMapSecName_PokemonLeague
- .4byte gMapSecName_RockTunnel
- .4byte gMapSecName_SeafoamIslands
- .4byte gMapSecName_PokemonTower
- .4byte gMapSecName_CeruleanCave
- .4byte gMapSecName_PowerPlant
- .4byte gMapSecName_OneIsland
- .4byte gMapSecName_TwoIsland
- .4byte gMapSecName_ThreeIsland
- .4byte gMapSecName_FourIsland
- .4byte gMapSecName_FiveIsland
- .4byte gMapSecName_SevenIsland
- .4byte gMapSecName_SixIsland
- .4byte gMapSecName_KindleRoad
- .4byte gMapSecName_TreasureBeach
- .4byte gMapSecName_CapeBrink
- .4byte gMapSecName_BondBridge
- .4byte gMapSecName_ThreeIslePort
- .4byte gMapSecName_SeviiIsle6
- .4byte gMapSecName_SeviiIsle7
- .4byte gMapSecName_SeviiIsle8
- .4byte gMapSecName_SeviiIsle9
- .4byte gMapSecName_ResortGorgeous
- .4byte gMapSecName_WaterLabyrinth
- .4byte gMapSecName_FiveIsleMeadow
- .4byte gMapSecName_MemorialPillar
- .4byte gMapSecName_OutcastIsland
- .4byte gMapSecName_GreenPath
- .4byte gMapSecName_WaterPath
- .4byte gMapSecName_RuinValley
- .4byte gMapSecName_TrainerTower
- .4byte gMapSecName_CanyonEntrance
- .4byte gMapSecName_SevaultCanyon
- .4byte gMapSecName_TanobyRuins
- .4byte gMapSecName_SeviiIsle22
- .4byte gMapSecName_SeviiIsle23
- .4byte gMapSecName_SeviiIsle24
- .4byte gMapSecName_NavelRock
- .4byte gMapSecName_MtEmber
- .4byte gMapSecName_BerryForest
- .4byte gMapSecName_IcefallCave
- .4byte gMapSecName_RocketWarehouse
- .4byte gMapSecName_TrainerTower_2
- .4byte gMapSecName_DottedHole
- .4byte gMapSecName_LostCave
- .4byte gMapSecName_PatternBush
- .4byte gMapSecName_AlteringCave
- .4byte gMapSecName_TanobyChambers
- .4byte gMapSecName_ThreeIslePath
- .4byte gMapSecName_TanobyKey
- .4byte gMapSecName_BirthIsland
- .4byte gMapSecName_MoneanChamber
- .4byte gMapSecName_LiptooChamber
- .4byte gMapSecName_WeepthChamber
- .4byte gMapSecName_DilfordChamber
- .4byte gMapSecName_ScufibChamber
- .4byte gMapSecName_RixyChamber
- .4byte gMapSecName_ViapoisChamber
- .4byte gMapSecName_EmberSpa
- .4byte gMapSecName_CeladonDept
-
-gUnknown_83F1E60:: @ 83F1E60
- .incbin "baserom.gba", 0x3F1E60, 0x318
-
-gUnknown_83F2178:: @ 83F2178
- .incbin "baserom.gba", 0x3F2178, 0x318
-
-gUnknown_83F2490:: @ 83F2490
- .incbin "baserom.gba", 0x3F2490, 0x294
-
-gUnknown_83F2724:: @ 83F2724
- .incbin "baserom.gba", 0x3F2724, 0x294
-
-gUnknown_83F29B8:: @ 83F29B8
- .incbin "baserom.gba", 0x3F29B8, 0x294
-
-gUnknown_83F2C4C:: @ 83F2C4C
- .incbin "baserom.gba", 0x3F2C4C, 0x294
-
-gUnknown_83F2EE0:: @ 83F2EE0
- .incbin "baserom.gba", 0x3F2EE0, 0x144
-
-gUnknown_83F3024:: @ 83F3024
- .incbin "baserom.gba", 0x3F3024, 0x2580
diff --git a/data/event_scripts.s b/data/event_scripts.s
index eb2c8ed60..78a039926 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -11329,7 +11329,7 @@ EventScript_1BEE9E:: @ 81BEE9E
EventScript_1BEEA8:: @ 81BEEA8
setvar VAR_0x4001, 1
setvar VAR_0x8004, 0
- special sub_80BDA7C
+ special Special_BufferEasyChatMessage
waitmessage
delay 80
msgbox gUnknown_81BF28E
@@ -11376,7 +11376,7 @@ EventScript_1BEF35:: @ 81BEF35
EventScript_1BEF3F:: @ 81BEF3F
setvar VAR_0x4001, 1
setvar VAR_0x8004, 0
- special sub_80BDA7C
+ special Special_BufferEasyChatMessage
waitmessage
delay 80
msgbox gUnknown_81BF30D
diff --git a/data/field_effect.s b/data/field_effect.s
new file mode 100644
index 000000000..0ae0ba95d
--- /dev/null
+++ b/data/field_effect.s
@@ -0,0 +1,145 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+ .incbin "baserom.gba", 0x3CA770, 0xE80
+
+gUnknown_83CB5F0:: @ 83CB5F0
+ .incbin "baserom.gba", 0x3CB5F0, 0x200
+
+gUnknown_83CB7F0:: @ 83CB7F0
+ .incbin "baserom.gba", 0x3CB7F0, 0x20
+
+gUnknown_83CB810:: @ 83CB810
+ .incbin "baserom.gba", 0x3CB810, 0x280
+
+gUnknown_83CBA90:: @ 83CBA90
+ .incbin "baserom.gba", 0x3CBA90, 0x80
+
+gUnknown_83CBB10:: @ 83CBB10
+ .incbin "baserom.gba", 0x3CBB10, 0x20
+
+gUnknown_83CBB30:: @ 83CBB30
+ .incbin "baserom.gba", 0x3CBB30, 0x300
+
+gUnknown_83CBE30:: @ 83CBE30
+ .incbin "baserom.gba", 0x3CBE30, 0x20
+
+gUnknown_83CBE50:: @ 83CBE50
+ .incbin "baserom.gba", 0x3CBE50, 0x20
+
+gUnknown_83CBE70:: @ 83CBE70
+ .incbin "baserom.gba", 0x3CBE70, 0x14
+
+gUnknown_83CBE84:: @ 83CBE84
+ .incbin "baserom.gba", 0x3CBE84, 0x18
+ .incbin "baserom.gba", 0x3CBE9C, 0xEC
+
+gUnknown_83CBF88:: @ 83CBF88
+ .incbin "baserom.gba", 0x3CBF88, 0x18
+
+gUnknown_83CBFA0:: @ 83CBFA0
+ .incbin "baserom.gba", 0x3CBFA0, 0x18
+
+gUnknown_83CBFB8:: @ 83CBFB8
+ .incbin "baserom.gba", 0x3CBFB8, 0x18
+
+gUnknown_83CBFD0:: @ 83CBFD0
+ .incbin "baserom.gba", 0x3CBFD0, 0x10
+
+gUnknown_83CBFE0:: @ 83CBFE0
+ .incbin "baserom.gba", 0x3CBFE0, 0x10
+
+gUnknown_83CBFF0:: @ 83CBFF0
+ .incbin "baserom.gba", 0x3CBFF0, 0x20
+
+gUnknown_83CC010:: @ 83CC010
+ .incbin "baserom.gba", 0x3CC010, 0x18
+
+gUnknown_83CC028:: @ 83CC028
+ .incbin "baserom.gba", 0x3CC028, 0x4
+
+gUnknown_83CC02C:: @ 83CC02C
+ .incbin "baserom.gba", 0x3CC02C, 0x4
+
+gUnknown_83CC030:: @ 83CC030
+ .incbin "baserom.gba", 0x3CC030, 0x4
+
+gUnknown_83CC034:: @ 83CC034
+ .incbin "baserom.gba", 0x3CC034, 0x1C
+
+gUnknown_83CC050:: @ 83CC050
+ .incbin "baserom.gba", 0x3CC050, 0x18
+
+gUnknown_83CC068:: @ 83CC068
+ .incbin "baserom.gba", 0x3CC068, 0x1C
+
+gUnknown_83CC084:: @ 83CC084
+ .incbin "baserom.gba", 0x3CC084, 0x14
+
+gUnknown_83CC098:: @ 83CC098
+ .incbin "baserom.gba", 0x3CC098, 0xC
+
+gUnknown_83CC0A4:: @ 83CC0A4
+ .incbin "baserom.gba", 0x3CC0A4, 0x18
+
+gUnknown_83CC0BC:: @ 83CC0BC
+ .incbin "baserom.gba", 0x3CC0BC, 0x10
+
+gUnknown_83CC0CC:: @ 83CC0CC
+ .incbin "baserom.gba", 0x3CC0CC, 0x14
+
+gUnknown_83CC0E0:: @ 83CC0E0
+ .incbin "baserom.gba", 0x3CC0E0, 0x8
+
+gUnknown_83CC0E8:: @ 83CC0E8
+ .incbin "baserom.gba", 0x3CC0E8, 0x8
+
+gUnknown_83CC0F0:: @ 83CC0F0
+ .incbin "baserom.gba", 0x3CC0F0, 0x8
+
+gUnknown_83CC0F8:: @ 83CC0F8
+ .incbin "baserom.gba", 0x3CC0F8, 0x10
+
+gUnknown_83CC108:: @ 83CC108
+ .incbin "baserom.gba", 0x3CC108, 0x8
+
+gUnknown_83CC110:: @ 83CC110
+ .incbin "baserom.gba", 0x3CC110, 0xC
+
+gUnknown_83CC11C:: @ 83CC11C
+ .incbin "baserom.gba", 0x3CC11C, 0x1C
+
+gUnknown_83CC138:: @ 83CC138
+ .incbin "baserom.gba", 0x3CC138, 0x1C
+
+gUnknown_83CC154:: @ 83CC154
+ .incbin "baserom.gba", 0x3CC154, 0x14
+
+gUnknown_83CC168:: @ 83CC168
+ .incbin "baserom.gba", 0x3CC168, 0x10
+
+gUnknown_83CC178:: @ 83CC178
+ .incbin "baserom.gba", 0x3CC178, 0x54
+
+gUnknown_83CC1CC:: @ 83CC1CC
+ .incbin "baserom.gba", 0x3CC1CC, 0x8
+
+gUnknown_83CC1D4:: @ 83CC1D4
+ .incbin "baserom.gba", 0x3CC1D4, 0x1C
+
+gUnknown_83CC1F0:: @ 83CC1F0
+ .incbin "baserom.gba", 0x3CC1F0, 0x4C
+
+gUnknown_83CC23C:: @ 83CC23C
+ .incbin "baserom.gba", 0x3CC23C, 0x8
+
+gUnknown_83CC244:: @ 83CC244
+ .incbin "baserom.gba", 0x3CC244, 0x5C
+
+gUnknown_83CC2A0:: @ 83CC2A0
+ .incbin "baserom.gba", 0x3CC2A0, 0x18
diff --git a/data/fldeff_cut.s b/data/fldeff_cut.s
new file mode 100644
index 000000000..ee162cf40
--- /dev/null
+++ b/data/fldeff_cut.s
@@ -0,0 +1,13 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83D4100:: @ 83D4100
+ .incbin "baserom.gba", 0x3D4100, 0x4C
+
+gUnknown_83D414C:: @ 83D414C
+ .incbin "baserom.gba", 0x3D414C, 0x18
diff --git a/data/item_use.s b/data/item_use.s
new file mode 100644
index 000000000..aa78ac919
--- /dev/null
+++ b/data/item_use.s
@@ -0,0 +1,15 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+ .incbin "baserom.gba", 0x3E27B4, 0x1A0
+
+gUnknown_83E2954:: @ 83E2954
+ .4byte sub_8124C8C
+ .4byte CB2_ReturnToField
+ .4byte NULL
+ .4byte NULL
diff --git a/data/map_name_popup.s b/data/map_name_popup.s
new file mode 100644
index 000000000..6509df895
--- /dev/null
+++ b/data/map_name_popup.s
@@ -0,0 +1,10 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83D4164:: @ 83D4164
+ .incbin "baserom.gba", 0x3D4164, 0x8
diff --git a/data/mon_markings.s b/data/mon_markings.s
new file mode 100644
index 000000000..ff9529e50
--- /dev/null
+++ b/data/mon_markings.s
@@ -0,0 +1,31 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83EE008:: @ 83EE008
+ .incbin "baserom.gba", 0x3EE008, 0x20
+
+gUnknown_83EE028:: @ 83EE028
+ .incbin "baserom.gba", 0x3EE028, 0x808
+
+gUnknown_83EE830:: @ 83EE830
+ .incbin "baserom.gba", 0x3EE830, 0x8
+
+gUnknown_83EE838:: @ 83EE838
+ .incbin "baserom.gba", 0x3EE838, 0x58
+
+gUnknown_83EE890:: @ 83EE890
+ .incbin "baserom.gba", 0x3EE890, 0x38
+
+gUnknown_83EE8C8:: @ 83EE8C8
+ .incbin "baserom.gba", 0x3EE8C8, 0x8
+
+gUnknown_83EE8D0:: @ 83EE8D0
+ .incbin "baserom.gba", 0x3EE8D0, 0x88
+
+gUnknown_83EE958:: @ 83EE958
+ .incbin "baserom.gba", 0x3EE958, 0x40
diff --git a/data/naming_screen.s b/data/naming_screen.s
new file mode 100644
index 000000000..5d49b2581
--- /dev/null
+++ b/data/naming_screen.s
@@ -0,0 +1,159 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+ .incbin "baserom.gba", 0x3E1800, 0xA80
+
+gUnknown_83E2280:: @ 83E2280
+ .incbin "baserom.gba", 0x3E2280, 0x10
+
+gUnknown_83E2290:: @ 83E2290
+ .incbin "baserom.gba", 0x3E2290, 0x10
+
+gUnknown_83E22A0:: @ 83E22A0
+ .incbin "baserom.gba", 0x3E22A0, 0x30
+
+gUnknown_83E22D0:: @ 83E22D0
+ .incbin "baserom.gba", 0x3E22D0, 0x60
+
+gUnknown_83E2330:: @ 83E2330
+ .incbin "baserom.gba", 0x3E2330, 0x3
+
+gUnknown_83E2333:: @ 83E2333
+ .incbin "baserom.gba", 0x3E2333, 0x18
+
+gUnknown_83E234B:: @ 83E234B
+ .incbin "baserom.gba", 0x3E234B, 0x3
+
+gUnknown_83E234E:: @ 83E234E
+ .incbin "baserom.gba", 0x3E234E, 0x3
+
+gUnknown_83E2351:: @ 83E2351
+ .incbin "baserom.gba", 0x3E2351, 0x3
+
+gUnknown_83E2354:: @ 83E2354
+ .incbin "baserom.gba", 0x3E2354, 0x10
+
+gUnknown_83E2364:: @ 83E2364
+ .incbin "baserom.gba", 0x3E2364, 0x8
+
+gUnknown_83E236C:: @ 83E236C
+ .incbin "baserom.gba", 0x3E236C, 0x8
+
+gUnknown_83E2374:: @ 83E2374
+ .incbin "baserom.gba", 0x3E2374, 0x4
+
+gUnknown_83E2378:: @ 83E2378
+ .incbin "baserom.gba", 0x3E2378, 0x10
+
+gUnknown_83E2388:: @ 83E2388
+ .incbin "baserom.gba", 0x3E2388, 0x6
+
+gUnknown_83E238E:: @ 83E238E
+ .incbin "baserom.gba", 0x3E238E, 0x6
+
+gUnknown_83E2394:: @ 83E2394
+ .incbin "baserom.gba", 0x3E2394, 0x28
+
+gUnknown_83E23BC:: @ 83E23BC
+ .incbin "baserom.gba", 0x3E23BC, 0x4
+
+gUnknown_83E23C0:: @ 83E23C0
+ .incbin "baserom.gba", 0x3E23C0, 0x8
+
+gUnknown_83E23C8:: @ 83E23C8
+ .incbin "baserom.gba", 0x3E23C8, 0x8
+
+gUnknown_83E23D0:: @ 83E23D0
+ .incbin "baserom.gba", 0x3E23D0, 0x10
+
+gUnknown_83E23E0:: @ 83E23E0
+ .incbin "baserom.gba", 0x3E23E0, 0x8
+
+gUnknown_83E23E8:: @ 83E23E8
+ .incbin "baserom.gba", 0x3E23E8, 0xA
+
+gUnknown_83E23F2:: @ 83E23F2
+ .incbin "baserom.gba", 0x3E23F2, 0xA
+
+gUnknown_83E23FC:: @ 83E23FC
+ .incbin "baserom.gba", 0x3E23FC, 0x8
+
+gUnknown_83E2404:: @ 83E2404
+ .incbin "baserom.gba", 0x3E2404, 0x8
+
+gUnknown_83E240C:: @ 83E240C
+ .incbin "baserom.gba", 0x3E240C, 0x14
+
+gUnknown_83E2420:: @ 83E2420
+ .incbin "baserom.gba", 0x3E2420, 0x8
+
+gUnknown_83E2428:: @ 83E2428
+ .incbin "baserom.gba", 0x3E2428, 0x14
+
+gUnknown_83E243C:: @ 83E243C
+ .incbin "baserom.gba", 0x3E243C, 0x4
+
+gUnknown_83E2440:: @ 83E2440
+ .incbin "baserom.gba", 0x3E2440, 0xC
+
+gUnknown_83E244C:: @ 83E244C
+ .incbin "baserom.gba", 0x3E244C, 0xC
+
+gUnknown_83E2458:: @ 83E2458
+ .incbin "baserom.gba", 0x3E2458, 0x34
+
+gUnknown_83E248C:: @ 83E248C
+ .incbin "baserom.gba", 0x3E248C, 0x78
+
+gUnknown_83E2504:: @ 83E2504
+ .incbin "baserom.gba", 0x3E2504, 0x8
+
+gUnknown_83E250C:: @ 83E250C
+ .incbin "baserom.gba", 0x3E250C, 0x18
+
+gUnknown_83E2524:: @ 83E2524
+ .incbin "baserom.gba", 0x3E2524, 0x8
+
+gUnknown_83E252C:: @ 83E252C
+ .incbin "baserom.gba", 0x3E252C, 0x48
+
+gUnknown_83E2574:: @ 83E2574
+ .incbin "baserom.gba", 0x3E2574, 0x18
+
+gUnknown_83E258C:: @ 83E258C
+ .incbin "baserom.gba", 0x3E258C, 0x18
+
+gUnknown_83E25A4:: @ 83E25A4
+ .incbin "baserom.gba", 0x3E25A4, 0x18
+
+gUnknown_83E25BC:: @ 83E25BC
+ .incbin "baserom.gba", 0x3E25BC, 0x18
+
+gUnknown_83E25D4:: @ 83E25D4
+ .incbin "baserom.gba", 0x3E25D4, 0x18
+
+gUnknown_83E25EC:: @ 83E25EC
+ .incbin "baserom.gba", 0x3E25EC, 0x18
+
+gUnknown_83E2604:: @ 83E2604
+ .incbin "baserom.gba", 0x3E2604, 0x18
+
+gUnknown_83E261C:: @ 83E261C
+ .incbin "baserom.gba", 0x3E261C, 0x18
+
+gUnknown_83E2634:: @ 83E2634
+ .incbin "baserom.gba", 0x3E2634, 0x18
+
+gUnknown_83E264C:: @ 83E264C
+ .incbin "baserom.gba", 0x3E264C, 0x30
+
+gUnknown_83E267C:: @ 83E267C
+ .incbin "baserom.gba", 0x3E267C, 0x68
+
+gUnknown_83E26E4:: @ 83E26E4
+ .incbin "baserom.gba", 0x3E26E4, 0x48
diff --git a/data/option_menu.s b/data/option_menu.s
new file mode 100644
index 000000000..098e76f31
--- /dev/null
+++ b/data/option_menu.s
@@ -0,0 +1,43 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83CC2B8:: @ 83CC2B8
+ .incbin "baserom.gba", 0x3CC2B8, 0x20
+
+gUnknown_83CC2D8:: @ 83CC2D8
+ .incbin "baserom.gba", 0x3CC2D8, 0xC
+
+gUnknown_83CC2E4:: @ 83CC2E4
+ .incbin "baserom.gba", 0x3CC2E4, 0x20
+
+gUnknown_83CC304:: @ 83CC304
+ .incbin "baserom.gba", 0x3CC304, 0x10
+
+gUnknown_83CC314:: @ 83CC314
+ .incbin "baserom.gba", 0x3CC314, 0x1C
+
+gUnknown_83CC330:: @ 83CC330
+ .incbin "baserom.gba", 0x3CC330, 0xC
+
+gUnknown_83CC33C:: @ 83CC33C
+ .incbin "baserom.gba", 0x3CC33C, 0x8
+
+gUnknown_83CC344:: @ 83CC344
+ .incbin "baserom.gba", 0x3CC344, 0x8
+
+gUnknown_83CC34C:: @ 83CC34C
+ .incbin "baserom.gba", 0x3CC34C, 0x8
+
+gUnknown_83CC354:: @ 83CC354
+ .incbin "baserom.gba", 0x3CC354, 0xC
+
+gUnknown_83CC360:: @ 83CC360
+ .incbin "baserom.gba", 0x3CC360, 0x3
+
+gUnknown_83CC363:: @ 83CC363
+ .incbin "baserom.gba", 0x3CC363, 0x3
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
new file mode 100644
index 000000000..0196b3cb5
--- /dev/null
+++ b/data/pokemon_storage_system.s
@@ -0,0 +1,133 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83CDA20:: @ 83CDA20
+ .incbin "baserom.gba", 0x3CDA20, 0x28
+
+gUnknown_83CDA48:: @ 83CDA48
+ .incbin "baserom.gba", 0x3CDA48, 0x28
+
+gUnknown_83CDA70:: @ 83CDA70
+ .incbin "baserom.gba", 0x3CDA70, 0x24
+
+gUnknown_83CDA94:: @ 83CDA94
+ .incbin "baserom.gba", 0x3CDA94, 0x4
+
+gUnknown_83CDA98:: @ 83CDA98
+ .incbin "baserom.gba", 0x3CDA98, 0x20
+
+gUnknown_83CDAB8:: @ 83CDAB8
+ .incbin "baserom.gba", 0x3CDAB8, 0x800
+
+gUnknown_83CE2B8:: @ 83CE2B8
+ .incbin "baserom.gba", 0x3CE2B8, 0x180
+
+gUnknown_83CE438:: @ 83CE438
+ .incbin "baserom.gba", 0x3CE438, 0x98
+
+gUnknown_83CE4D0:: @ 83CE4D0
+ .incbin "baserom.gba", 0x3CE4D0, 0x12C
+
+gUnknown_83CE5FC:: @ 83CE5FC
+ .incbin "baserom.gba", 0x3CE5FC, 0xFC
+
+gUnknown_83CE6F8:: @ 83CE6F8
+ .incbin "baserom.gba", 0x3CE6F8, 0x40
+
+gUnknown_83CE738:: @ 83CE738
+ .incbin "baserom.gba", 0x3CE738, 0x20
+
+gUnknown_83CE758:: @ 83CE758
+ .incbin "baserom.gba", 0x3CE758, 0x20
+
+gUnknown_83CE778:: @ 83CE778
+ .incbin "baserom.gba", 0x3CE778, 0x48
+
+gUnknown_83CE7C0:: @ 83CE7C0
+ .incbin "baserom.gba", 0x3CE7C0, 0x18
+
+gUnknown_83CE7D8:: @ 83CE7D8
+ .incbin "baserom.gba", 0x3CE7D8, 0x238
+
+gUnknown_83CEA10:: @ 83CEA10
+ .incbin "baserom.gba", 0x3CEA10, 0x20
+
+gUnknown_83CEA30:: @ 83CEA30
+ .incbin "baserom.gba", 0x3CEA30, 0x20
+
+gUnknown_83CEA50:: @ 83CEA50
+ .incbin "baserom.gba", 0x3CEA50, 0x10
+
+gUnknown_83CEA60:: @ 83CEA60
+ .incbin "baserom.gba", 0x3CEA60, 0x8
+
+gUnknown_83CEA68:: @ 83CEA68
+ .incbin "baserom.gba", 0x3CEA68, 0x8
+
+gUnknown_83CEA70:: @ 83CEA70
+ .incbin "baserom.gba", 0x3CEA70, 0x18
+
+gUnknown_83CEA88:: @ 83CEA88
+ .incbin "baserom.gba", 0x3CEA88, 0xF8
+
+gUnknown_83CEB80:: @ 83CEB80
+ .incbin "baserom.gba", 0x3CEB80, 0x58
+
+gUnknown_83CEBD8:: @ 83CEBD8
+ .incbin "baserom.gba", 0x3CEBD8, 0x18
+
+gUnknown_83CEBF0:: @ 83CEBF0
+ .incbin "baserom.gba", 0x3CEBF0, 0x48
+
+gUnknown_83CEC38:: @ 83CEC38
+ .incbin "baserom.gba", 0x3CEC38, 0x3D98
+
+gUnknown_83D29D0:: @ 83D29D0
+ .incbin "baserom.gba", 0x3D29D0, 0x40
+
+gUnknown_83D2A10:: @ 83D2A10
+ .incbin "baserom.gba", 0x3D2A10, 0x144
+
+gUnknown_83D2B54:: @ 83D2B54
+ .incbin "baserom.gba", 0x3D2B54, 0x28
+
+gUnknown_83D2B7C:: @ 83D2B7C
+ .incbin "baserom.gba", 0x3D2B7C, 0x38
+
+gUnknown_83D2BB4:: @ 83D2BB4
+ .incbin "baserom.gba", 0x3D2BB4, 0x8B8
+
+gUnknown_83D346C:: @ 83D346C
+ .incbin "baserom.gba", 0x3D346C, 0xC
+
+gUnknown_83D3478:: @ 83D3478
+ .incbin "baserom.gba", 0x3D3478, 0x28
+
+gUnknown_83D34A0:: @ 83D34A0
+ .incbin "baserom.gba", 0x3D34A0, 0x18
+
+gUnknown_83D34B8:: @ 83D34B8
+ .incbin "baserom.gba", 0x3D34B8, 0x54
+
+gUnknown_83D350C:: @ 83D350C
+ .incbin "baserom.gba", 0x3D350C, 0x18
+
+gUnknown_83D3524:: @ 83D3524
+ .incbin "baserom.gba", 0x3D3524, 0x18
+
+gUnknown_83D353C:: @ 83D353C
+ .incbin "baserom.gba", 0x3D353C, 0x98
+
+gUnknown_83D35D4:: @ 83D35D4
+ .incbin "baserom.gba", 0x3D35D4, 0x8
+
+gUnknown_83D35DC:: @ 83D35DC
+ .incbin "baserom.gba", 0x3D35DC, 0x14C
+
+gUnknown_83D3728:: @ 83D3728
+ .incbin "baserom.gba", 0x3D3728, 0x18
diff --git a/data/region_map.s b/data/region_map.s
new file mode 100644
index 000000000..610b09357
--- /dev/null
+++ b/data/region_map.s
@@ -0,0 +1,333 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+ .include "data/text/map_section_names.inc"
+
+gUnknown_83EF23C:: @ 83EF23C
+ .incbin "baserom.gba", 0x3EF23C, 0x1E
+
+gUnknown_83EF25A:: @ 83EF25A
+ .incbin "baserom.gba", 0x3EF25A, 0x2
+
+gUnknown_83EF25C:: @ 83EF25C
+ .incbin "baserom.gba", 0x3EF25C, 0x20
+
+gUnknown_83EF27C:: @ 83EF27C
+ .incbin "baserom.gba", 0x3EF27C, 0x20
+
+gUnknown_83EF29C:: @ 83EF29C
+ .incbin "baserom.gba", 0x3EF29C, 0x20
+
+gUnknown_83EF2BC:: @ 83EF2BC
+ .incbin "baserom.gba", 0x3EF2BC, 0x20
+
+gUnknown_83EF2DC:: @ 83EF2DC
+ .incbin "baserom.gba", 0x3EF2DC, 0x40
+
+gUnknown_83EF31C:: @ 83EF31C
+ .incbin "baserom.gba", 0x3EF31C, 0x68
+
+gUnknown_83EF384:: @ 83EF384
+ .incbin "baserom.gba", 0x3EF384, 0x20
+
+gUnknown_83EF3A4:: @ 83EF3A4
+ .incbin "baserom.gba", 0x3EF3A4, 0x20
+
+gUnknown_83EF3C4:: @ 83EF3C4
+ .incbin "baserom.gba", 0x3EF3C4, 0x8C
+
+gUnknown_83EF450:: @ 83EF450
+ .incbin "baserom.gba", 0x3EF450, 0x90
+
+gUnknown_83EF4E0:: @ 83EF4E0
+ .incbin "baserom.gba", 0x3EF4E0, 0x44
+
+gUnknown_83EF524:: @ 83EF524
+ .incbin "baserom.gba", 0x3EF524, 0x78
+
+gUnknown_83EF59C:: @ 83EF59C
+ .incbin "baserom.gba", 0x3EF59C, 0x80
+
+gUnknown_83EF61C:: @ 83EF61C
+ .incbin "baserom.gba", 0x3EF61C, 0xD14
+
+gUnknown_83F0330:: @ 83F0330
+ .incbin "baserom.gba", 0x3F0330, 0x250
+
+gUnknown_83F0580:: @ 83F0580
+ .incbin "baserom.gba", 0x3F0580, 0x31C
+
+gUnknown_83F089C:: @ 83F089C
+ .incbin "baserom.gba", 0x3F089C, 0x260
+
+gUnknown_83F0AFC:: @ 83F0AFC
+ .incbin "baserom.gba", 0x3F0AFC, 0x110
+
+gUnknown_83F0C0C:: @ 83F0C0C
+ .incbin "baserom.gba", 0x3F0C0C, 0xE4
+
+gUnknown_83F0CF0:: @ 83F0CF0
+ .incbin "baserom.gba", 0x3F0CF0, 0x11C
+
+gUnknown_83F0E0C:: @ 83F0E0C
+ .incbin "baserom.gba", 0x3F0E0C, 0x110
+
+gUnknown_83F0F1C:: @ 83F0F1C
+ .incbin "baserom.gba", 0x3F0F1C, 0x168
+
+gUnknown_83F1084:: @ 83F1084
+ .incbin "baserom.gba", 0x3F1084, 0x10C
+
+gUnknown_83F1190:: @ 83F1190
+ .incbin "baserom.gba", 0x3F1190, 0x13C
+
+gUnknown_83F12CC:: @ 83F12CC
+ .incbin "baserom.gba", 0x3F12CC, 0x120
+
+gUnknown_83F13EC:: @ 83F13EC
+ .incbin "baserom.gba", 0x3F13EC, 0x164
+
+gUnknown_83F1550:: @ 83F1550
+ .incbin "baserom.gba", 0x3F1550, 0xF0
+
+gUnknown_83F1640:: @ 83F1640
+ .incbin "baserom.gba", 0x3F1640, 0xF8
+
+gUnknown_83F1738:: @ 83F1738
+ .incbin "baserom.gba", 0x3F1738, 0xCC
+
+gUnknown_83F1804:: @ 83F1804
+ .incbin "baserom.gba", 0x3F1804, 0xD4
+
+gUnknown_83F18D8:: @ 83F18D8
+ .incbin "baserom.gba", 0x3F18D8, 0x30
+
+gUnknown_83F1908:: @ 83F1908
+ .incbin "baserom.gba", 0x3F1908, 0x70
+
+gUnknown_83F1978:: @ 83F1978
+ .incbin "baserom.gba", 0x3F1978, 0x28
+
+gUnknown_83F19A0:: @ 83F19A0
+ .incbin "baserom.gba", 0x3F19A0, 0xB0
+
+gUnknown_83F1A50:: @ 83F1A50
+ .incbin "baserom.gba", 0x3F1A50, 0x10
+
+gUnknown_83F1A60:: @ 83F1A60
+ .incbin "baserom.gba", 0x3F1A60, 0x30
+
+gUnknown_83F1A90:: @ 83F1A90
+ .incbin "baserom.gba", 0x3F1A90, 0x4
+
+gUnknown_83F1A94:: @ 83F1A94
+ .incbin "baserom.gba", 0x3F1A94, 0x8
+
+gUnknown_83F1A9C:: @ 83F1A9C
+ .incbin "baserom.gba", 0x3F1A9C, 0x8
+
+gUnknown_83F1AA4:: @ 83F1AA4
+ .incbin "baserom.gba", 0x3F1AA4, 0x5C
+
+gUnknown_83F1B00:: @ 83F1B00
+ .incbin "baserom.gba", 0x3F1B00, 0xC
+
+gUnknown_83F1B0C:: @ 83F1B0C
+ .incbin "baserom.gba", 0x3F1B0C, 0x8
+
+gUnknown_83F1B14:: @ 83F1B14
+ .incbin "baserom.gba", 0x3F1B14, 0x8
+
+gUnknown_83F1B1C:: @ 83F1B1C
+ .incbin "baserom.gba", 0x3F1B1C, 0x8
+
+gUnknown_83F1B24:: @ 83F1B24
+ .incbin "baserom.gba", 0x3F1B24, 0x14
+
+gUnknown_83F1B38:: @ 83F1B38
+ .incbin "baserom.gba", 0x3F1B38, 0x4
+
+gUnknown_83F1B3C:: @ 83F1B3C
+ .incbin "baserom.gba", 0x3F1B3C, 0xE4
+
+gUnknown_83F1C20:: @ 83F1C20
+ .incbin "baserom.gba", 0x3F1C20, 0x10
+
+gUnknown_83F1C30:: @ 83F1C30
+ .incbin "baserom.gba", 0x3F1C30, 0x4
+
+gUnknown_83F1C34:: @ 83F1C34
+ .incbin "baserom.gba", 0x3F1C34, 0x8
+
+gUnknown_83F1C3C:: @ 83F1C3C
+ .incbin "baserom.gba", 0x3F1C3C, 0x14
+
+gUnknown_83F1C50:: @ 83F1C50
+ .incbin "baserom.gba", 0x3F1C50, 0x4
+
+gUnknown_83F1C54:: @ 83F1C54
+ .incbin "baserom.gba", 0x3F1C54, 0x10
+
+gUnknown_83F1C64:: @ 83F1C64
+ .incbin "baserom.gba", 0x3F1C64, 0x4
+
+gUnknown_83F1C68:: @ 83F1C68
+ .incbin "baserom.gba", 0x3F1C68, 0x8
+
+gUnknown_83F1C70:: @ 83F1C70
+ .incbin "baserom.gba", 0x3F1C70, 0x24
+
+gUnknown_83F1C94:: @ 83F1C94
+ .incbin "baserom.gba", 0x3F1C94, 0x4
+
+gUnknown_83F1C98:: @ 83F1C98
+ .incbin "baserom.gba", 0x3F1C98, 0x8
+
+gUnknown_83F1CA0:: @ 83F1CA0
+ .incbin "baserom.gba", 0x3F1CA0, 0x4
+
+gUnknown_83F1CA4:: @ 83F1CA4
+ .incbin "baserom.gba", 0x3F1CA4, 0x4
+
+gUnknown_83F1CA8:: @ 83F1CA8
+ .incbin "baserom.gba", 0x3F1CA8, 0x4
+
+gUnknown_83F1CAC:: @ 83F1CAC
+ .4byte gMapSecName_PalletTown
+ .4byte gMapSecName_ViridianCity
+ .4byte gMapSecName_PewterCity
+ .4byte gMapSecName_CeruleanCity
+ .4byte gMapSecName_LavenderTown
+ .4byte gMapSecName_VermilionCity
+ .4byte gMapSecName_CeladonCity
+ .4byte gMapSecName_FuchsiaCity
+ .4byte gMapSecName_CinnabarIsland
+ .4byte gMapSecName_IndigoPlateau
+ .4byte gMapSecName_SaffronCity
+ .4byte gMapSecName_Route4
+ .4byte gMapSecName_Route10
+ .4byte gMapSecName_Route1
+ .4byte gMapSecName_Route2
+ .4byte gMapSecName_Route3
+ .4byte gMapSecName_Route4_2
+ .4byte gMapSecName_Route5
+ .4byte gMapSecName_Route6
+ .4byte gMapSecName_Route7
+ .4byte gMapSecName_Route8
+ .4byte gMapSecName_Route9
+ .4byte gMapSecName_Route10_2
+ .4byte gMapSecName_Route11
+ .4byte gMapSecName_Route12
+ .4byte gMapSecName_Route13
+ .4byte gMapSecName_Route14
+ .4byte gMapSecName_Route15
+ .4byte gMapSecName_Route16
+ .4byte gMapSecName_Route17
+ .4byte gMapSecName_Route18
+ .4byte gMapSecName_Route19
+ .4byte gMapSecName_Route20
+ .4byte gMapSecName_Route21
+ .4byte gMapSecName_Route22
+ .4byte gMapSecName_Route23
+ .4byte gMapSecName_Route24
+ .4byte gMapSecName_Route25
+ .4byte gMapSecName_ViridianForest
+ .4byte gMapSecName_MtMoon
+ .4byte gMapSecName_SSAnne
+ .4byte gMapSecName_UndergroundPath
+ .4byte gMapSecName_UndergroundPath_2
+ .4byte gMapSecName_DiglettsCave
+ .4byte gMapSecName_VictoryRoad
+ .4byte gMapSecName_RocketHideout
+ .4byte gMapSecName_SilphCo
+ .4byte gMapSecName_PokemonMansion
+ .4byte gMapSecName_SafariZone
+ .4byte gMapSecName_PokemonLeague
+ .4byte gMapSecName_RockTunnel
+ .4byte gMapSecName_SeafoamIslands
+ .4byte gMapSecName_PokemonTower
+ .4byte gMapSecName_CeruleanCave
+ .4byte gMapSecName_PowerPlant
+ .4byte gMapSecName_OneIsland
+ .4byte gMapSecName_TwoIsland
+ .4byte gMapSecName_ThreeIsland
+ .4byte gMapSecName_FourIsland
+ .4byte gMapSecName_FiveIsland
+ .4byte gMapSecName_SevenIsland
+ .4byte gMapSecName_SixIsland
+ .4byte gMapSecName_KindleRoad
+ .4byte gMapSecName_TreasureBeach
+ .4byte gMapSecName_CapeBrink
+ .4byte gMapSecName_BondBridge
+ .4byte gMapSecName_ThreeIslePort
+ .4byte gMapSecName_SeviiIsle6
+ .4byte gMapSecName_SeviiIsle7
+ .4byte gMapSecName_SeviiIsle8
+ .4byte gMapSecName_SeviiIsle9
+ .4byte gMapSecName_ResortGorgeous
+ .4byte gMapSecName_WaterLabyrinth
+ .4byte gMapSecName_FiveIsleMeadow
+ .4byte gMapSecName_MemorialPillar
+ .4byte gMapSecName_OutcastIsland
+ .4byte gMapSecName_GreenPath
+ .4byte gMapSecName_WaterPath
+ .4byte gMapSecName_RuinValley
+ .4byte gMapSecName_TrainerTower
+ .4byte gMapSecName_CanyonEntrance
+ .4byte gMapSecName_SevaultCanyon
+ .4byte gMapSecName_TanobyRuins
+ .4byte gMapSecName_SeviiIsle22
+ .4byte gMapSecName_SeviiIsle23
+ .4byte gMapSecName_SeviiIsle24
+ .4byte gMapSecName_NavelRock
+ .4byte gMapSecName_MtEmber
+ .4byte gMapSecName_BerryForest
+ .4byte gMapSecName_IcefallCave
+ .4byte gMapSecName_RocketWarehouse
+ .4byte gMapSecName_TrainerTower_2
+ .4byte gMapSecName_DottedHole
+ .4byte gMapSecName_LostCave
+ .4byte gMapSecName_PatternBush
+ .4byte gMapSecName_AlteringCave
+ .4byte gMapSecName_TanobyChambers
+ .4byte gMapSecName_ThreeIslePath
+ .4byte gMapSecName_TanobyKey
+ .4byte gMapSecName_BirthIsland
+ .4byte gMapSecName_MoneanChamber
+ .4byte gMapSecName_LiptooChamber
+ .4byte gMapSecName_WeepthChamber
+ .4byte gMapSecName_DilfordChamber
+ .4byte gMapSecName_ScufibChamber
+ .4byte gMapSecName_RixyChamber
+ .4byte gMapSecName_ViapoisChamber
+ .4byte gMapSecName_EmberSpa
+ .4byte gMapSecName_CeladonDept
+
+gUnknown_83F1E60:: @ 83F1E60
+ .incbin "baserom.gba", 0x3F1E60, 0x318
+
+gUnknown_83F2178:: @ 83F2178
+ .incbin "baserom.gba", 0x3F2178, 0x318
+
+gUnknown_83F2490:: @ 83F2490
+ .incbin "baserom.gba", 0x3F2490, 0x294
+
+gUnknown_83F2724:: @ 83F2724
+ .incbin "baserom.gba", 0x3F2724, 0x294
+
+gUnknown_83F29B8:: @ 83F29B8
+ .incbin "baserom.gba", 0x3F29B8, 0x294
+
+gUnknown_83F2C4C:: @ 83F2C4C
+ .incbin "baserom.gba", 0x3F2C4C, 0x294
+
+gUnknown_83F2EE0:: @ 83F2EE0
+ .incbin "baserom.gba", 0x3F2EE0, 0x144
+
+gUnknown_83F3024:: @ 83F3024
+ .incbin "baserom.gba", 0x3F3024, 0x2580
diff --git a/data/shop.s b/data/shop.s
new file mode 100644
index 000000000..c7f60813f
--- /dev/null
+++ b/data/shop.s
@@ -0,0 +1,40 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83DF09C:: @ 83DF09C
+ .incbin "baserom.gba", 0x3DF09C, 0x18
+
+gUnknown_83DF0B4:: @ 83DF0B4
+ .incbin "baserom.gba", 0x3DF0B4, 0x8
+
+gUnknown_83DF0BC:: @ 83DF0BC
+ .incbin "baserom.gba", 0x3DF0BC, 0x8
+
+gUnknown_83DF0C4:: @ 83DF0C4
+ .incbin "baserom.gba", 0x3DF0C4, 0x10
+
+gUnknown_83DF0D4:: @ 83DF0D4
+ .incbin "baserom.gba", 0x3DF0D4, 0x6
+
+gUnknown_83DF0DA:: @ 83DF0DA
+ .incbin "baserom.gba", 0x3DF0DA, 0x6
+
+gUnknown_83DF0E0:: @ 83DF0E0
+ .incbin "baserom.gba", 0x3DF0E0, 0x6
+
+gUnknown_83DF0E6:: @ 83DF0E6
+ .incbin "baserom.gba", 0x3DF0E6, 0x6
+
+gUnknown_83DF0EC:: @ 83DF0EC
+ .incbin "baserom.gba", 0x3DF0EC, 0x6
+
+gUnknown_83DF0F2:: @ 83DF0F2
+ .incbin "baserom.gba", 0x3DF0F2, 0x6
+
+gUnknown_83DF0F8:: @ 83DF0F8
+ .incbin "baserom.gba", 0x3DF0F8, 0x8
diff --git a/data/specials.inc b/data/specials.inc
index 9da9bdfc7..6a0707184 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -104,7 +104,7 @@ gSpecials:: @ 815FD60
def_special Field_AskSaveTheGame
def_special nullsub_56
def_special sub_80FEE44
- def_special sub_80BDA7C
+ def_special Special_BufferEasyChatMessage
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
diff --git a/data/strings.s b/data/strings.s
index d81f72bac..5599847de 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -1822,7 +1822,7 @@ gUnknown_8417FB2:: @ 0x8417FB2
gUnknown_8417FB6:: @ 0x8417FB6
.string "かい$"
-gUnknown_8417FB9:: @ 8417FB9
+gText_DecimalPoint:: @ 8417FB9
.string ".$"
gText_BigGuy:: @ 8417FBB
@@ -4301,53 +4301,74 @@ gUnknown_841DFBE:: @ 841DFBE
gUnknown_841DFC9:: @ 841DFC9
.string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}CANCEL$"
- @ easy chat categories
+gEasyChatGroupName_Pokemon:: @ 841E08A @ easy chat categories
.string "POKéMON$"
+gEasyChatGroupName_Trainer:: @ 841DFE6
.string "TRAINER$"
+gEasyChatGroupName_Status:: @ 841DFEE
.string "STATUS$"
+gEasyChatGroupName_Battle:: @ 841DFF5
.string "BATTLE$"
+gEasyChatGroupName_Greetings:: @ 841DFFC
.string "GREETINGS$"
+gEasyChatGroupName_People:: @ 841E006
.string "PEOPLE$"
+gEasyChatGroupName_Voices:: @ 841E00D
.string "VOICES$"
+gEasyChatGroupName_Speech:: @ 841E014
.string "SPEECH$"
+gEasyChatGroupName_Endings:: @ 841E01B
.string "ENDINGS$"
+gEasyChatGroupName_Feelings:: @ 841E023
.string "FEELINGS$"
+gEasyChatGroupName_Conditions:: @ 841E02C
.string "CONDITIONS$"
+gEasyChatGroupName_Actions:: @ 841E037
.string "ACTIONS$"
+gEasyChatGroupName_Lifestyle:: @ 841E03F
.string "LIFESTYLE$"
+gEasyChatGroupName_Hobbies:: @ 841E049
.string "HOBBIES$"
+gEasyChatGroupName_Time:: @ 841E051
.string "TIME$"
+gEasyChatGroupName_Misc:: @ 841E056
.string "MISC.$"
+gEasyChatGroupName_Adjectives:: @ 841E05C
.string "ADJECTIVES$"
+gEasyChatGroupName_Events:: @ 841E067
.string "EVENTS$"
+gEasyChatGroupName_Move1:: @ 841E06E
.string "MOVE 1$"
+gEasyChatGroupName_Move2:: @ 841E075
.string "MOVE 2$"
+gEasyChatGroupName_TrendySaying:: @ 841E07C
.string "TRENDY SAYING$"
+gEasyChatGroupName_Pokemon2:: @ 841DFDE
.string "POKéMON2$"
@ trade-related
-gUnknown_841E093:: @ 841E093
+gText_ThreeQuestionMarks:: @ 841E093
.string "???$"
.string "$"
diff --git a/data/trainer_card.s b/data/trainer_card.s
new file mode 100644
index 000000000..446e2f4ac
--- /dev/null
+++ b/data/trainer_card.s
@@ -0,0 +1,160 @@
+#include "constants/maps.h"
+#include "constants/species.h"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83CC368:: @ 83CC368
+ .incbin "baserom.gba", 0x3CC368, 0x174
+
+gUnknown_83CC4DC:: @ 83CC4DC
+ .incbin "baserom.gba", 0x3CC4DC, 0x214
+
+gUnknown_83CC6F0:: @ 83CC6F0
+ .incbin "baserom.gba", 0x3CC6F0, 0x1B8
+
+gUnknown_83CC8A8:: @ 83CC8A8
+ .incbin "baserom.gba", 0x3CC8A8, 0xDC
+
+gUnknown_83CC984:: @ 83CC984
+ .incbin "baserom.gba", 0x3CC984, 0x12C
+
+gUnknown_83CCAB0:: @ 83CCAB0
+ .incbin "baserom.gba", 0x3CCAB0, 0x1F4
+
+gUnknown_83CCCA4:: @ 83CCCA4
+ .incbin "baserom.gba", 0x3CCCA4, 0x18C
+
+gUnknown_83CCE30:: @ 83CCE30
+ .incbin "baserom.gba", 0x3CCE30, 0x98
+
+gUnknown_83CCEC8:: @ 83CCEC8
+ .incbin "baserom.gba", 0x3CCEC8, 0x3B8
+
+gUnknown_83CD280:: @ 83CD280
+ .incbin "baserom.gba", 0x3CD280, 0x20
+
+gUnknown_83CD2A0:: @ 83CD2A0
+ .incbin "baserom.gba", 0x3CD2A0, 0x20
+
+gUnknown_83CD2C0:: @ 83CD2C0
+ .incbin "baserom.gba", 0x3CD2C0, 0x20
+
+gUnknown_83CD2E0:: @ 83CD2E0
+ .incbin "baserom.gba", 0x3CD2E0, 0x20
+
+gUnknown_83CD300:: @ 83CD300
+ .incbin "baserom.gba", 0x3CD300, 0x20
+
+gUnknown_83CD320:: @ 83CD320
+ .incbin "baserom.gba", 0x3CD320, 0x20
+
+gUnknown_83CD340:: @ 83CD340
+ .incbin "baserom.gba", 0x3CD340, 0x20
+
+gUnknown_83CD360:: @ 83CD360
+ .incbin "baserom.gba", 0x3CD360, 0x20
+
+gUnknown_83CD380:: @ 83CD380
+ .incbin "baserom.gba", 0x3CD380, 0x268
+
+gUnknown_83CD5E8:: @ 83CD5E8
+ .incbin "baserom.gba", 0x3CD5E8, 0x2A0
+
+gUnknown_83CD888:: @ 83CD888
+ .incbin "baserom.gba", 0x3CD888, 0x10
+
+gUnknown_83CD898:: @ 83CD898
+ .incbin "baserom.gba", 0x3CD898, 0x20
+
+gUnknown_83CD8B8:: @ 83CD8B8
+ .incbin "baserom.gba", 0x3CD8B8, 0x14
+
+gUnknown_83CD8CC:: @ 83CD8CC
+ .incbin "baserom.gba", 0x3CD8CC, 0x14
+
+gUnknown_83CD8E0:: @ 83CD8E0
+ .incbin "baserom.gba", 0x3CD8E0, 0x3
+
+gUnknown_83CD8E3:: @ 83CD8E3
+ .incbin "baserom.gba", 0x3CD8E3, 0x6
+
+gUnknown_83CD8E9:: @ 83CD8E9
+ .incbin "baserom.gba", 0x3CD8E9, 0x3
+
+gUnknown_83CD8EC:: @ 83CD8EC
+ .incbin "baserom.gba", 0x3CD8EC, 0x8
+
+gUnknown_83CD8F4:: @ 83CD8F4
+ .incbin "baserom.gba", 0x3CD8F4, 0x4
+
+gUnknown_83CD8F8:: @ 83CD8F8
+ .incbin "baserom.gba", 0x3CD8F8, 0x10
+
+gUnknown_83CD908:: @ 83CD908
+ .incbin "baserom.gba", 0x3CD908, 0x18
+
+gUnknown_83CD920:: @ 83CD920
+ .incbin "baserom.gba", 0x3CD920, 0x2
+
+gUnknown_83CD922:: @ 83CD922
+ .incbin "baserom.gba", 0x3CD922, 0x2
+
+gUnknown_83CD924:: @ 83CD924
+ .incbin "baserom.gba", 0x3CD924, 0x2
+
+gUnknown_83CD926:: @ 83CD926
+ .incbin "baserom.gba", 0x3CD926, 0x2
+
+gUnknown_83CD928:: @ 83CD928
+ .incbin "baserom.gba", 0x3CD928, 0x8
+
+gUnknown_83CD930:: @ 83CD930
+ .incbin "baserom.gba", 0x3CD930, 0x2
+
+gUnknown_83CD932:: @ 83CD932
+ .incbin "baserom.gba", 0x3CD932, 0x2
+
+gUnknown_83CD934:: @ 83CD934
+ .incbin "baserom.gba", 0x3CD934, 0x2
+
+gUnknown_83CD936:: @ 83CD936
+ .incbin "baserom.gba", 0x3CD936, 0x2
+
+gUnknown_83CD938:: @ 83CD938
+ .incbin "baserom.gba", 0x3CD938, 0x2
+
+gUnknown_83CD93A:: @ 83CD93A
+ .incbin "baserom.gba", 0x3CD93A, 0x2
+
+gUnknown_83CD93C:: @ 83CD93C
+ .incbin "baserom.gba", 0x3CD93C, 0x2
+
+gUnknown_83CD93E:: @ 83CD93E
+ .incbin "baserom.gba", 0x3CD93E, 0x2
+
+gUnknown_83CD940:: @ 83CD940
+ .incbin "baserom.gba", 0x3CD940, 0x4
+
+gUnknown_83CD944:: @ 83CD944
+ .incbin "baserom.gba", 0x3CD944, 0x8
+
+gUnknown_83CD94C:: @ 83CD94C
+ .incbin "baserom.gba", 0x3CD94C, 0x6
+
+gUnknown_83CD952:: @ 83CD952
+ .incbin "baserom.gba", 0x3CD952, 0x6
+
+gUnknown_83CD958:: @ 83CD958
+ .incbin "baserom.gba", 0x3CD958, 0x4
+
+gUnknown_83CD95C:: @ 83CD95C
+ .incbin "baserom.gba", 0x3CD95C, 0x4
+
+gUnknown_83CD960:: @ 83CD960
+ .incbin "baserom.gba", 0x3CD960, 0x60
+
+gUnknown_83CD9C0:: @ 83CD9C0
+ .incbin "baserom.gba", 0x3CD9C0, 0x60
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
index 2c437c88e..746f10679 100644
--- a/include/constants/easy_chat.h
+++ b/include/constants/easy_chat.h
@@ -1,7 +1,7 @@
#ifndef GUARD_CONSTANTS_EASY_CHAT_H
#define GUARD_CONSTANTS_EASY_CHAT_H
-#define EC_GROUP_POKEMON 0x0
+#define EC_GROUP_POKEMON_2 0x0
#define EC_GROUP_TRAINER 0x1
#define EC_GROUP_STATUS 0x2
#define EC_GROUP_BATTLE 0x3
@@ -22,7 +22,8 @@
#define EC_GROUP_MOVE_1 0x12
#define EC_GROUP_MOVE_2 0x13
#define EC_GROUP_TRENDY_SAYING 0x14
-#define EC_GROUP_POKEMON_2 0x15
+#define EC_GROUP_POKEMON 0x15
+#define EC_NUM_GROUPS 0x16
// TRAINER
#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
@@ -51,7 +52,6 @@
#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17
#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18
#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19
-#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a
// STATUS
#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0
@@ -1031,7 +1031,6 @@
#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19
#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a
#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b
-#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c
// TRENDY_SAYING
#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0
@@ -1075,5 +1074,8 @@
#define EC_GROUP(word) ((word) >> 9)
#define EC_INDEX(word) ((word) & 0x1FF)
+#define EC_WORD(groupId, index) ((((groupId) & 0x7F) << 9) | ((index) & 0x1FF))
+
+#define EC_WORD_UNDEFINED (0xFFFF)
#endif // GUARD_CONSTANTS_EASY_CHAT_H
diff --git a/include/easy_chat.h b/include/easy_chat.h
index a487c9456..6c3947ea9 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -2,43 +2,48 @@
#define GUARD_EASYCHAT_H
#include "global.h"
+#include "constants/easy_chat.h"
-// Taken from Pokeruby, check if it's correct
-enum
+struct EasyChatWordInfo
{
- EC_GROUP_POKEMON,
- EC_GROUP_TRAINER,
- EC_GROUP_STATUS,
- EC_GROUP_BATTLE,
- EC_GROUP_GREETINGS,
- EC_GROUP_PEOPLE,
- EC_GROUP_VOICES,
- EC_GROUP_SPEECH,
- EC_GROUP_ENDINGS,
- EC_GROUP_FEELINGS,
- EC_GROUP_CONDITIONS,
- EC_GROUP_ACTIONS,
- EC_GROUP_LIFESTYLE,
- EC_GROUP_HOBBIES,
- EC_GROUP_TIME,
- EC_GROUP_MISC,
- EC_GROUP_ADJECTIVES,
- EC_GROUP_EVENTS,
- EC_GROUP_MOVE_1,
- EC_GROUP_MOVE_2,
- EC_GROUP_TRENDY_SAYING,
- EC_GROUP_POKEMON_2,
+ const u8 *text;
+ int alphabeticalOrder;
+ int enabled;
+};
+
+typedef union
+{
+ const u16 *valueList;
+ const struct EasyChatWordInfo *words;
+} EasyChatGroupWordData;
+
+struct EasyChatGroup
+{
+ EasyChatGroupWordData wordData;
+ u16 numWords;
+ u16 numEnabledWords;
+};
+
+struct EasyChatWordsByLetter
+{
+ const u16 *words;
+ int numWords;
};
void InitEasyChatPhrases(void);
-void easy_chat_input_maybe(void);
-void CopyEasyChatWord(u8 *dest, u16 word);
-bool32 sub_811F8D8(u16 word);
-void InitializeEasyChatWordArray(u16 *words, u16 length);
-void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
-bool8 ECWord_CheckIfOutsideOfValidRange(u16 word);
-void sub_80BDE28(void);
+u8 *CopyEasyChatWord(u8 *dest, u16 word);
+u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
+bool8 EC_DoesEasyChatStringFitOnLine(const u16 *easyChatWords, u8 columns, u8 rows, u16 maxLength);
+void ResetSomeMEventECBuffer_3120_338(void);
void InitEasyChatPhrases(void);
void EnableRareWord(u8);
+bool8 InitEasyChatSelection(void);
+void DestroyEasyChatSelectionData(void);
+u8 GetSelectedGroupByIndex(u8);
+void GetUnlockedECWords(bool32 isAlphabetical, u16 groupId);
+u16 GetDisplayedWordByIndex(u16 index);
+u16 GetNumDisplayedWords(void);
+const u8 *GetEasyChatWordGroupName(u8);
+u8 *CopyEasyChatWordPadded(u8 *, u16, u16);
#endif // GUARD_EASYCHAT_H
diff --git a/include/global.h b/include/global.h
index 9588deae3..22faa7b1c 100644
--- a/include/global.h
+++ b/include/global.h
@@ -754,10 +754,10 @@ struct SaveBlock1
/*0x1000*/ u16 vars[VARS_COUNT];
/*0x1200*/ u32 gameStats[NUM_GAME_STATS];
/*0x1300*/ struct QuestLog questLog[4];
- /*0x2CA0*/ u16 unk2CA0[6];
- /*0x2CAC*/ u16 unk2CAC[6];
- /*0x2CB8*/ u16 unk2CB8[6];
- /*0x2CC4*/ u16 unk2CC4[6];
+ /*0x2CA0*/ u16 easyChatProfile[6];
+ /*0x2CAC*/ u16 easyChatBattleStart[6];
+ /*0x2CB8*/ u16 easyChatBattleWon[6];
+ /*0x2CC4*/ u16 easyChatBattleLost[6];
/*0x2CD0*/ struct MailStruct mail[MAIL_COUNT];
/*0x2F10*/ u8 additionalPhrases[EASY_CHAT_EXTRA_PHRASES_SIZE];
/*0x2F18*/ OldMan oldMan; // unused
diff --git a/include/mevent.h b/include/mevent.h
index 6b67aa27c..31ab9e421 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -69,5 +69,6 @@ u32 MENews_GetInput(u16 input);
void sub_8143D24(void);
u16 sub_81445C0(u32 command);
void sub_8144714(u32 a0, u32 a1);
+u16 *sub_8143DA8(void);
#endif //GUARD_MEVENT_H
diff --git a/include/pokemon_size_record.h b/include/pokemon_size_record.h
index d62ced51d..8324f44bf 100644
--- a/include/pokemon_size_record.h
+++ b/include/pokemon_size_record.h
@@ -11,8 +11,8 @@ void InitLotadSizeRecord(void);
void GetLotadSizeRecordInfo(void);
void CompareLotadSize(void);
-void sub_80A0904(void);
-void sub_80A0958(void);
+void InitHeracrossSizeRecord(void);
+void InitMagikarpSizeRecord(void);
void GiveGiftRibbonToParty(u8 index, u8 ribbonId);
diff --git a/include/strings.h b/include/strings.h
index 7231755c5..45f228e19 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -686,4 +686,28 @@ extern const u8 gUnknown_84170E0[];
extern const u8 gUnknown_84170FC[];
extern const u8 gUnknown_841E09F[];
+extern const u8 gEasyChatGroupName_Pokemon[];
+extern const u8 gEasyChatGroupName_Trainer[];
+extern const u8 gEasyChatGroupName_Status[];
+extern const u8 gEasyChatGroupName_Battle[];
+extern const u8 gEasyChatGroupName_Greetings[];
+extern const u8 gEasyChatGroupName_People[];
+extern const u8 gEasyChatGroupName_Voices[];
+extern const u8 gEasyChatGroupName_Speech[];
+extern const u8 gEasyChatGroupName_Endings[];
+extern const u8 gEasyChatGroupName_Feelings[];
+extern const u8 gEasyChatGroupName_Conditions[];
+extern const u8 gEasyChatGroupName_Actions[];
+extern const u8 gEasyChatGroupName_Lifestyle[];
+extern const u8 gEasyChatGroupName_Hobbies[];
+extern const u8 gEasyChatGroupName_Time[];
+extern const u8 gEasyChatGroupName_Misc[];
+extern const u8 gEasyChatGroupName_Adjectives[];
+extern const u8 gEasyChatGroupName_Events[];
+extern const u8 gEasyChatGroupName_Move1[];
+extern const u8 gEasyChatGroupName_Move2[];
+extern const u8 gEasyChatGroupName_TrendySaying[];
+extern const u8 gEasyChatGroupName_Pokemon2[];
+extern const u8 gText_ThreeQuestionMarks[];
+
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index a8919e9b2..4955916e3 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -147,7 +147,7 @@ SECTIONS {
src/money.o(.text);
asm/script_pokemon_util_80A0058.o(.text);
src/field_poison.o(.text);
- asm/pokemon_size_record.o(.text);
+ src/pokemon_size_record.o(.text);
asm/pc_screen_effect.o(.text);
src/fldeff_poison.o(.text);
src/fldeff_berrytree.o(.text);
@@ -174,7 +174,7 @@ SECTIONS {
src/battle_anim_utility_funcs.o(.text);
src/battle_intro.o(.text);
asm/bike.o(.text);
- asm/easy_chat.o(.text);
+ src/easy_chat.o(.text);
asm/mon_markings.o(.text);
src/mail.o(.text);
src/menu_helpers.o(.text);
@@ -431,15 +431,23 @@ SECTIONS {
data/cable_club.o(.rodata);
data/trainer_see.o(.rodata);
src/wild_encounter.o(.rodata);
- data/data_835B488.o(.rodata);
+ data/field_effect.o(.rodata);
+ data/option_menu.o(.rodata);
+ data/trainer_card.o(.rodata);
+ data/pokemon_storage_system.o(.rodata);
src/pokemon_icon.o(.rodata);
- data/data_835B488.o(.rodata.83D4100);
+ data/fldeff_cut.o(.rodata);
+ data/map_name_popup.o(.rodata);
src/item_menu_icons.o(.rodata);
src/battle_anim_mon_movement.o(.rodata);
src/item.o(.rodata);
- data/data_835B488.o(.rodata.83DF09C);
+ data/shop.o(.rodata);
+ src/berry.o(.rodata);
src/script_menu.o(.rodata);
- data/data_835B488.o(.rodata.83E2280);
+ data/naming_screen.o(.rodata);
+ src/pokemon_size_record.o(.rodata);
+ data/item_use.o(.rodata);
+ data/battle_anim_effects_misc.o(.rodata);
src/flying.o(.rodata);
src/psychic.o(.rodata);
src/bug.o(.rodata);
@@ -451,10 +459,12 @@ SECTIONS {
src/normal.o(.rodata);
src/battle_anim_utility_funcs.o(.rodata);
src/battle_intro.o(.rodata);
- data/data_835B488.o(.rodata.83E7CFC);
+ data/bike.o(.rodata);
+ src/easy_chat.o(.rodata);
+ data/mon_markings.o(.rodata);
src/mail.o(.rodata);
src/heal_location.o(.rodata);
- data/data_835B488.o(.rodata.83EEC98);
+ data/region_map.o(.rodata);
src/battle_ai_script_commands.o(.rodata);
data/data_83F5738.o(.rodata);
src/field_specials.o(.rodata);
diff --git a/src/berry.c b/src/berry.c
index d349109d2..b92a41ed4 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -3,9 +3,923 @@
#include "text.h"
#include "constants/items.h"
-extern const struct Berry sBerries[];
+static const u8 sBerryDescriptionPart1_Cheri[] = _("とても かわいい はなが さく.");
+static const u8 sBerryDescriptionPart2_Cheri[] = _("まっかな みは とても からい.");
+static const u8 sBerryDescriptionPart1_Chesto[] = _("そとの かわの ぶぶんも なかみも すべてが");
+static const u8 sBerryDescriptionPart2_Chesto[] = _("かたい. どこを たべても しぶい.");
+static const u8 sBerryDescriptionPart1_Pecha[] = _("とても あまくて おいしい.");
+static const u8 sBerryDescriptionPart2_Pecha[] = _("やわらかいので はこぶときは ちゅうい.");
+static const u8 sBerryDescriptionPart1_Rawst[] = _("はっぱの ぶぶんが ながく まるまっていると");
+static const u8 sBerryDescriptionPart2_Rawst[] = _("みが とても にがく なるらしい.");
+static const u8 sBerryDescriptionPart1_Aspear[] = _("かたい みの なかには すいぶんが とても");
+static const u8 sBerryDescriptionPart2_Aspear[] = _("おおく ふくまれている. かなり すっぱい.");
+static const u8 sBerryDescriptionPart1_Leppa[] = _("クラボなどに くらべて すこし そだつのが");
+static const u8 sBerryDescriptionPart2_Leppa[] = _("おそい. みが ちいさいほど おいしい.");
+static const u8 sBerryDescriptionPart1_Oran[] = _("いろいろな あじが まざった ふしぎな み.");
+static const u8 sBerryDescriptionPart2_Oran[] = _("みを つけるのに はんにち かかる.");
+static const u8 sBerryDescriptionPart1_Persim[] = _("たいようが だいすき. ひに あたると");
+static const u8 sBerryDescriptionPart2_Persim[] = _("どんどん いろが あざやかに なる.");
+static const u8 sBerryDescriptionPart1_Lum[] = _("そだつのに じかんが かかるが たいせつに");
+static const u8 sBerryDescriptionPart2_Lum[] = _("そだてると みが 2つ つくことも ある.");
+static const u8 sBerryDescriptionPart1_Sitrus[] = _("オレンとは きょうだいの ような そんざい.");
+static const u8 sBerryDescriptionPart2_Sitrus[] = _("おおきくて あじも ととのっている.");
+static const u8 sBerryDescriptionPart1_Figy[] = _("たべられた あとのような かたちの なかには");
+static const u8 sBerryDescriptionPart2_Figy[] = _("からい せいぶんが つまっている.");
+static const u8 sBerryDescriptionPart1_Wiki[] = _("まわりに ついている イボイボは ポケモンが");
+static const u8 sBerryDescriptionPart2_Wiki[] = _("もちやすいように できたと いわれている.");
+static const u8 sBerryDescriptionPart1_Mago[] = _("おおきく なれば なるほど みが まがる.");
+static const u8 sBerryDescriptionPart2_Mago[] = _("まがるほど あまくて おいしい.");
+static const u8 sBerryDescriptionPart1_Aguav[] = _("ちいさい サイズの はなで しかも ひかりを");
+static const u8 sBerryDescriptionPart2_Aguav[] = _("ひつようと しない めずらしい きのみ.");
+static const u8 sBerryDescriptionPart1_Iapapa[] = _("とても おおきな すっぱい きのみ.");
+static const u8 sBerryDescriptionPart2_Iapapa[] = _("そだてるには みじかくても 1にち かかる.");
+static const u8 sBerryDescriptionPart1_Razz[] = _("あかい みは たべると ちょっぴり からい.");
+static const u8 sBerryDescriptionPart2_Razz[] = _("そだつのが はやく 4じかんで みを つける");
+static const u8 sBerryDescriptionPart1_Bluk[] = _("そとがわは あおいいろだが たべると");
+static const u8 sBerryDescriptionPart2_Bluk[] = _("くちの なかが まっくろに なる.");
+static const u8 sBerryDescriptionPart1_Nanab[] = _("せかいで 7ばんめに はっけん されたので");
+static const u8 sBerryDescriptionPart2_Nanab[] = _("ナナという せつが ゆうりょく. あまい.");
+static const u8 sBerryDescriptionPart1_Wepear[] = _("ちいさな しろい はなが さく. にがさと");
+static const u8 sBerryDescriptionPart2_Wepear[] = _("すっぱさが まざりあった びみょうな あじ.");
+static const u8 sBerryDescriptionPart1_Pinap[] = _("かぜに よわく さむさにも よわい.");
+static const u8 sBerryDescriptionPart2_Pinap[] = _("みの なかが からく そとがわが すっぱい.");
+static const u8 sBerryDescriptionPart1_Pomeg[] = _("どんなに みずを あげても えいようが");
+static const u8 sBerryDescriptionPart2_Pomeg[] = _("あっても 6つの み しか つけない.");
+static const u8 sBerryDescriptionPart1_Kelpsy[] = _("ねっこの ような かたちの めずらしい");
+static const u8 sBerryDescriptionPart2_Kelpsy[] = _("しゅるい. とても おおきな はなが さく.");
+static const u8 sBerryDescriptionPart1_Qualot[] = _("みずが だいすき. ずっと あめが ふる");
+static const u8 sBerryDescriptionPart2_Qualot[] = _("ばしょでも しっかりと そだつ.");
+static const u8 sBerryDescriptionPart1_Hondew[] = _("とても こうかで なかなか めに することが");
+static const u8 sBerryDescriptionPart2_Hondew[] = _("できない きのみ. とても おいしい.");
+static const u8 sBerryDescriptionPart1_Grepa[] = _("やわらかさと まるい かたちからは");
+static const u8 sBerryDescriptionPart2_Grepa[] = _("そうぞうが できないほど すっぱい.");
+static const u8 sBerryDescriptionPart1_Tamato[] = _("くちびるが まがって しまうほど からい.");
+static const u8 sBerryDescriptionPart2_Tamato[] = _("そだてるにも じかんが かかる.");
+static const u8 sBerryDescriptionPart1_Cornn[] = _("おおむかしから はえていた. たくさん");
+static const u8 sBerryDescriptionPart2_Cornn[] = _("うえないと みが つかないときも ある.");
+static const u8 sBerryDescriptionPart1_Magost[] = _("とても あじの バランスが よいと");
+static const u8 sBerryDescriptionPart2_Magost[] = _("ひょうばんの きのみ.");
+static const u8 sBerryDescriptionPart1_Rabuta[] = _("たくさんの けが はえている めずらしい");
+static const u8 sBerryDescriptionPart2_Rabuta[] = _("しゅるい. かなり にがい.");
+static const u8 sBerryDescriptionPart1_Nomel[] = _("かなり すっぱい. 1くち たべると");
+static const u8 sBerryDescriptionPart2_Nomel[] = _("3にちかん ほかの あじが しなくなる.");
+static const u8 sBerryDescriptionPart1_Spelon[] = _("まっかになった みは とてつもなく からい.");
+static const u8 sBerryDescriptionPart2_Spelon[] = _("イボからも からい せいぶんが でている.");
+static const u8 sBerryDescriptionPart1_Pamtre[] = _("どこからともなく うみを ただよってくる.");
+static const u8 sBerryDescriptionPart2_Pamtre[] = _("せかいの どこかで そだっている らしい.");
+static const u8 sBerryDescriptionPart1_Watmel[] = _("とても おおきく 50センチを こえるものも");
+static const u8 sBerryDescriptionPart2_Watmel[] = _("はっけん された. ものすごく あまい.");
+static const u8 sBerryDescriptionPart1_Durin[] = _("みただけで にがい. あまりにも にがいので");
+static const u8 sBerryDescriptionPart2_Durin[] = _("そのままで たべたひとは だれもいない.");
+static const u8 sBerryDescriptionPart1_Belue[] = _("つるつるとして おいしそうだが とてつもなく");
+static const u8 sBerryDescriptionPart2_Belue[] = _("すっぱい. そだてるにも じかんが かかる.");
+static const u8 sBerryDescriptionPart1_Liechi[] = _("なぞのタネ. チイラのみには うみの");
+static const u8 sBerryDescriptionPart2_Liechi[] = _("ちからが やどるという うわさが ある.");
+static const u8 sBerryDescriptionPart1_Ganlon[] = _("なぞのタネ. リュガのみには りくの");
+static const u8 sBerryDescriptionPart2_Ganlon[] = _("ちからが やどるという うわさが ある.");
+static const u8 sBerryDescriptionPart1_Salac[] = _("なぞのタネ. カムラのみには そらの");
+static const u8 sBerryDescriptionPart2_Salac[] = _("ちからが やどるという うわさが ある.");
+static const u8 sBerryDescriptionPart1_Petaya[] = _("なぞのタネ. ヤタピのみには すべての");
+static const u8 sBerryDescriptionPart2_Petaya[] = _("いきものの ちからが やどると いわれている");
+static const u8 sBerryDescriptionPart1_Apicot[] = _("ふしぎな ふしぎな きのみ. なにが");
+static const u8 sBerryDescriptionPart2_Apicot[] = _("おこるのか なにが できるのか わからない.");
+static const u8 sBerryDescriptionPart1_Lansat[] = _("でんせつのみ と いわれている. この みを");
+static const u8 sBerryDescriptionPart2_Lansat[] = _("もつと とても しあわせに なるらしい.");
+static const u8 sBerryDescriptionPart1_Starf[] = _("あまりにも ちからが つよすぎるため");
+static const u8 sBerryDescriptionPart2_Starf[] = _("せかいの はてに すてた まぼろしのみ.");
+static const u8 sBerryDescriptionPart1_Enigma[] = _("しょうたい ふめいの きのみ.");
+static const u8 sBerryDescriptionPart2_Enigma[] = _("ほしの ちからを もっている らしい.");
-#define ENIGMA_BERRY_STRUCT ({const struct Berry2 *berries = (const struct Berry2 *)sBerries;berries[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX];})
+const struct Berry gBerries[] = {
+ [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("CHERI"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 20,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Cheri,
+ .description2 = sBerryDescriptionPart2_Cheri,
+ .stageDuration = 3,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("CHESTO"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 80,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Chesto,
+ .description2 = sBerryDescriptionPart2_Chesto,
+ .stageDuration = 3,
+ .spicy = 0,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("PECHA"),
+ .firmness = BERRY_FIRMNESS_VERY_SOFT,
+ .size = 40,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Pecha,
+ .description2 = sBerryDescriptionPart2_Pecha,
+ .stageDuration = 3,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("RAWST"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 32,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Rawst,
+ .description2 = sBerryDescriptionPart2_Rawst,
+ .stageDuration = 3,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("ASPEAR"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 50,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Aspear,
+ .description2 = sBerryDescriptionPart2_Aspear,
+ .stageDuration = 3,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 10,
+ .smoothness = 25
+ },
+
+ [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("LEPPA"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 28,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Leppa,
+ .description2 = sBerryDescriptionPart2_Leppa,
+ .stageDuration = 4,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("ORAN"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 35,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Oran,
+ .description2 = sBerryDescriptionPart2_Oran,
+ .stageDuration = 3,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("PERSIM"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 47,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Persim,
+ .description2 = sBerryDescriptionPart2_Persim,
+ .stageDuration = 3,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("LUM"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 34,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Lum,
+ .description2 = sBerryDescriptionPart2_Lum,
+ .stageDuration = 12,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("SITRUS"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 95,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Sitrus,
+ .description2 = sBerryDescriptionPart2_Sitrus,
+ .stageDuration = 6,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("FIGY"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 100,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Figy,
+ .description2 = sBerryDescriptionPart2_Figy,
+ .stageDuration = 6,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("WIKI"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 115,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Wiki,
+ .description2 = sBerryDescriptionPart2_Wiki,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("MAGO"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 126,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Mago,
+ .description2 = sBerryDescriptionPart2_Mago,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("AGUAV"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 64,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Aguav,
+ .description2 = sBerryDescriptionPart2_Aguav,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 25
+ },
+
+ [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("IAPAPA"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 223,
+ .maxYield = 3,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Iapapa,
+ .description2 = sBerryDescriptionPart2_Iapapa,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 10,
+ .smoothness = 25
+ },
+
+ [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("RAZZ"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 120,
+ .maxYield = 6,
+ .minYield = 3,
+ .description1 = sBerryDescriptionPart1_Razz,
+ .description2 = sBerryDescriptionPart2_Razz,
+ .stageDuration = 1,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 20
+ },
+
+ [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("BLUK"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 108,
+ .maxYield = 6,
+ .minYield = 3,
+ .description1 = sBerryDescriptionPart1_Bluk,
+ .description2 = sBerryDescriptionPart2_Bluk,
+ .stageDuration = 1,
+ .spicy = 0,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 20
+ },
+
+ [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("NANAB"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 77,
+ .maxYield = 6,
+ .minYield = 3,
+ .description1 = sBerryDescriptionPart1_Nanab,
+ .description2 = sBerryDescriptionPart2_Nanab,
+ .stageDuration = 1,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 20
+ },
+
+ [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("WEPEAR"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 74,
+ .maxYield = 6,
+ .minYield = 3,
+ .description1 = sBerryDescriptionPart1_Wepear,
+ .description2 = sBerryDescriptionPart2_Wepear,
+ .stageDuration = 1,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("PINAP"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 80,
+ .maxYield = 6,
+ .minYield = 3,
+ .description1 = sBerryDescriptionPart1_Pinap,
+ .description2 = sBerryDescriptionPart2_Pinap,
+ .stageDuration = 1,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("POMEG"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 135,
+ .maxYield = 6,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Pomeg,
+ .description2 = sBerryDescriptionPart2_Pomeg,
+ .stageDuration = 3,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 20
+ },
+
+ [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("KELPSY"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 150,
+ .maxYield = 6,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Kelpsy,
+ .description2 = sBerryDescriptionPart2_Kelpsy,
+ .stageDuration = 3,
+ .spicy = 0,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("QUALOT"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 110,
+ .maxYield = 6,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Qualot,
+ .description2 = sBerryDescriptionPart2_Qualot,
+ .stageDuration = 3,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("HONDEW"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 162,
+ .maxYield = 6,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Hondew,
+ .description2 = sBerryDescriptionPart2_Hondew,
+ .stageDuration = 3,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 20
+ },
+
+ [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("GREPA"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 149,
+ .maxYield = 6,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Grepa,
+ .description2 = sBerryDescriptionPart2_Grepa,
+ .stageDuration = 3,
+ .spicy = 0,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 10,
+ .smoothness = 20
+ },
+
+ [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("TAMATO"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 200,
+ .maxYield = 4,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Tamato,
+ .description2 = sBerryDescriptionPart2_Tamato,
+ .stageDuration = 6,
+ .spicy = 20,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 30
+ },
+
+ [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("CORNN"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 75,
+ .maxYield = 4,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Cornn,
+ .description2 = sBerryDescriptionPart2_Cornn,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 20,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 30
+ },
+
+ [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("MAGOST"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 140,
+ .maxYield = 4,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Magost,
+ .description2 = sBerryDescriptionPart2_Magost,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 20,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 30
+ },
+
+ [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("RABUTA"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 226,
+ .maxYield = 4,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Rabuta,
+ .description2 = sBerryDescriptionPart2_Rabuta,
+ .stageDuration = 6,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 20,
+ .sour = 10,
+ .smoothness = 30
+ },
+
+ [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("NOMEL"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 285,
+ .maxYield = 4,
+ .minYield = 2,
+ .description1 = sBerryDescriptionPart1_Nomel,
+ .description2 = sBerryDescriptionPart2_Nomel,
+ .stageDuration = 6,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 20,
+ .smoothness = 30
+ },
+
+ [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("SPELON"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 133,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Spelon,
+ .description2 = sBerryDescriptionPart2_Spelon,
+ .stageDuration = 18,
+ .spicy = 40,
+ .dry = 10,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 70
+ },
+
+ [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("PAMTRE"),
+ .firmness = BERRY_FIRMNESS_VERY_SOFT,
+ .size = 244,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Pamtre,
+ .description2 = sBerryDescriptionPart2_Pamtre,
+ .stageDuration = 18,
+ .spicy = 0,
+ .dry = 40,
+ .sweet = 10,
+ .bitter = 0,
+ .sour = 0,
+ .smoothness = 70
+ },
+
+ [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("WATMEL"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 250,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Watmel,
+ .description2 = sBerryDescriptionPart2_Watmel,
+ .stageDuration = 18,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 40,
+ .bitter = 10,
+ .sour = 0,
+ .smoothness = 70
+ },
+
+ [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("DURIN"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 280,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Durin,
+ .description2 = sBerryDescriptionPart2_Durin,
+ .stageDuration = 18,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 40,
+ .sour = 10,
+ .smoothness = 70
+ },
+
+ [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("BELUE"),
+ .firmness = BERRY_FIRMNESS_VERY_SOFT,
+ .size = 300,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Belue,
+ .description2 = sBerryDescriptionPart2_Belue,
+ .stageDuration = 18,
+ .spicy = 10,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 40,
+ .smoothness = 70
+ },
+
+ [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("LIECHI"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 111,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Liechi,
+ .description2 = sBerryDescriptionPart2_Liechi,
+ .stageDuration = 24,
+ .spicy = 40,
+ .dry = 0,
+ .sweet = 40,
+ .bitter = 0,
+ .sour = 10,
+ .smoothness = 80
+ },
+
+ [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("GANLON"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 33,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Ganlon,
+ .description2 = sBerryDescriptionPart2_Ganlon,
+ .stageDuration = 24,
+ .spicy = 0,
+ .dry = 40,
+ .sweet = 0,
+ .bitter = 40,
+ .sour = 0,
+ .smoothness = 80
+ },
+
+ [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("SALAC"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 95,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Salac,
+ .description2 = sBerryDescriptionPart2_Salac,
+ .stageDuration = 24,
+ .spicy = 0,
+ .dry = 0,
+ .sweet = 40,
+ .bitter = 0,
+ .sour = 40,
+ .smoothness = 80
+ },
+
+ [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("PETAYA"),
+ .firmness = BERRY_FIRMNESS_VERY_HARD,
+ .size = 237,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Petaya,
+ .description2 = sBerryDescriptionPart2_Petaya,
+ .stageDuration = 24,
+ .spicy = 40,
+ .dry = 0,
+ .sweet = 0,
+ .bitter = 40,
+ .sour = 0,
+ .smoothness = 80
+ },
+
+ [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("APICOT"),
+ .firmness = BERRY_FIRMNESS_HARD,
+ .size = 75,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Apicot,
+ .description2 = sBerryDescriptionPart2_Apicot,
+ .stageDuration = 24,
+ .spicy = 0,
+ .dry = 40,
+ .sweet = 0,
+ .bitter = 0,
+ .sour = 40,
+ .smoothness = 80
+ },
+
+ [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("LANSAT"),
+ .firmness = BERRY_FIRMNESS_SOFT,
+ .size = 97,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Lansat,
+ .description2 = sBerryDescriptionPart2_Lansat,
+ .stageDuration = 24,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 30
+ },
+
+ [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("STARF"),
+ .firmness = BERRY_FIRMNESS_SUPER_HARD,
+ .size = 153,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Starf,
+ .description2 = sBerryDescriptionPart2_Starf,
+ .stageDuration = 24,
+ .spicy = 10,
+ .dry = 10,
+ .sweet = 10,
+ .bitter = 10,
+ .sour = 10,
+ .smoothness = 30
+ },
+
+ [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] =
+ {
+ .name = _("ENIGMA"),
+ .firmness = BERRY_FIRMNESS_UNKNOWN,
+ .size = 0,
+ .maxYield = 2,
+ .minYield = 1,
+ .description1 = sBerryDescriptionPart1_Enigma,
+ .description2 = sBerryDescriptionPart2_Enigma,
+ .stageDuration = 24,
+ .spicy = 40,
+ .dry = 40,
+ .sweet = 40,
+ .bitter = 40,
+ .sour = 40,
+ .smoothness = 40
+ },
+
+};
+
+const struct UnkStruct_0858AB24 gUnknown_83DFC9C[] = {
+ { 50, 20},
+ { 50, 20},
+ { 50, 20},
+ { 50, 20},
+ { 50, 20},
+ { 50, 30},
+ { 50, 30},
+ { 50, 30},
+ { 50, 30},
+ { 50, 30},
+ { 60, 50},
+ { 60, 50},
+ { 60, 50},
+ { 60, 50},
+ { 60, 50},
+ { 80, 70},
+ { 80, 70},
+ { 80, 70},
+ { 80, 70},
+ { 80, 70},
+ {100, 100},
+ {100, 100},
+ {100, 100},
+ {100, 100},
+ {100, 100},
+ {130, 150},
+ {130, 150},
+ {130, 150},
+ {130, 150},
+ {130, 150},
+ {160, 250},
+ {160, 250},
+ {160, 250},
+ {160, 250},
+ {160, 250},
+ {180, 500},
+ {180, 500},
+ {180, 500},
+ {180, 500},
+ {180, 500},
+ {200, 750},
+ {200, 750},
+ {150, 200}
+};
+
+// Leftover from R/S
+const struct BerryTree gBlankBerryTree = {};
+
+#define ENIGMA_BERRY_STRUCT ({ \
+ const struct Berry2 * berries = (const struct Berry2 *)gBerries; \
+ berries[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX]; \
+})
void sub_809C718(void)
{
@@ -142,7 +1056,7 @@ const struct Berry * GetBerryInfo(u8 berryIdx)
if (berryIdx == 0 || berryIdx > ITEM_TO_BERRY(ITEM_ENIGMA_BERRY))
berryIdx = 1;
- return &sBerries[berryIdx - 1];
+ return &gBerries[berryIdx - 1];
}
u8 ItemIdToBerryType(u16 itemId)
diff --git a/src/data/easy_chat/easy_chat_group_actions.h b/src/data/easy_chat/easy_chat_group_actions.h
new file mode 100644
index 000000000..26fe74ed0
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_actions.h
@@ -0,0 +1,472 @@
+
+static const u8 sEasyChatWord_Meets[] = _("MEETS");
+static const u8 sEasyChatWord_Concede[] = _("CONCEDE");
+static const u8 sEasyChatWord_Give[] = _("GIVE");
+static const u8 sEasyChatWord_Gives[] = _("GIVES");
+static const u8 sEasyChatWord_Played[] = _("PLAYED");
+static const u8 sEasyChatWord_Plays[] = _("PLAYS");
+static const u8 sEasyChatWord_Collect[] = _("COLLECT");
+static const u8 sEasyChatWord_Walking[] = _("WALKING");
+static const u8 sEasyChatWord_Walks[] = _("WALKS");
+static const u8 sEasyChatWord_Says[] = _("SAYS");
+static const u8 sEasyChatWord_Went[] = _("WENT");
+static const u8 sEasyChatWord_Said[] = _("SAID");
+static const u8 sEasyChatWord_WakeUp[] = _("WAKE UP");
+static const u8 sEasyChatWord_WakesUp[] = _("WAKES UP");
+static const u8 sEasyChatWord_Angers[] = _("ANGERS");
+static const u8 sEasyChatWord_Teach[] = _("TEACH");
+static const u8 sEasyChatWord_Teaches[] = _("TEACHES");
+static const u8 sEasyChatWord_Please[] = _("PLEASE");
+static const u8 sEasyChatWord_Learn[] = _("LEARN");
+static const u8 sEasyChatWord_Change[] = _("CHANGE");
+static const u8 sEasyChatWord_Story[] = _("STORY");
+static const u8 sEasyChatWord_Trust[] = _("TRUST");
+static const u8 sEasyChatWord_Lavish[] = _("LAVISH");
+static const u8 sEasyChatWord_Listens[] = _("LISTENS");
+static const u8 sEasyChatWord_Hearing[] = _("HEARING");
+static const u8 sEasyChatWord_Trains[] = _("TRAINS");
+static const u8 sEasyChatWord_Choose[] = _("CHOOSE");
+static const u8 sEasyChatWord_Come[] = _("COME");
+static const u8 sEasyChatWord_Came[] = _("CAME");
+static const u8 sEasyChatWord_Search[] = _("SEARCH");
+static const u8 sEasyChatWord_Make[] = _("MAKE");
+static const u8 sEasyChatWord_Cause[] = _("CAUSE");
+static const u8 sEasyChatWord_Know[] = _("KNOW");
+static const u8 sEasyChatWord_Knows[] = _("KNOWS");
+static const u8 sEasyChatWord_Refuse[] = _("REFUSE");
+static const u8 sEasyChatWord_Stores[] = _("STORES");
+static const u8 sEasyChatWord_Brag[] = _("BRAG");
+static const u8 sEasyChatWord_Ignorant[] = _("IGNORANT");
+static const u8 sEasyChatWord_Thinks[] = _("THINKS");
+static const u8 sEasyChatWord_Believe[] = _("BELIEVE");
+static const u8 sEasyChatWord_Slide[] = _("SLIDE");
+static const u8 sEasyChatWord_Eats[] = _("EATS");
+static const u8 sEasyChatWord_Use[] = _("USE");
+static const u8 sEasyChatWord_Uses[] = _("USES");
+static const u8 sEasyChatWord_Using[] = _("USING");
+static const u8 sEasyChatWord_Couldnt[] = _("COULDN'T");
+static const u8 sEasyChatWord_Capable[] = _("CAPABLE");
+static const u8 sEasyChatWord_Disappear[] = _("DISAPPEAR");
+static const u8 sEasyChatWord_Appear[] = _("APPEAR");
+static const u8 sEasyChatWord_Throw[] = _("THROW");
+static const u8 sEasyChatWord_Worry[] = _("WORRY");
+static const u8 sEasyChatWord_Slept[] = _("SLEPT");
+static const u8 sEasyChatWord_Sleep[] = _("SLEEP");
+static const u8 sEasyChatWord_Release[] = _("RELEASE");
+static const u8 sEasyChatWord_Drinks[] = _("DRINKS");
+static const u8 sEasyChatWord_Runs[] = _("RUNS");
+static const u8 sEasyChatWord_Run[] = _("RUN");
+static const u8 sEasyChatWord_Works[] = _("WORKS");
+static const u8 sEasyChatWord_Working[] = _("WORKING");
+static const u8 sEasyChatWord_Talking[] = _("TALKING");
+static const u8 sEasyChatWord_Talk[] = _("TALK");
+static const u8 sEasyChatWord_Sink[] = _("SINK");
+static const u8 sEasyChatWord_Smack[] = _("SMACK");
+static const u8 sEasyChatWord_Pretend[] = _("PRETEND");
+static const u8 sEasyChatWord_Praise[] = _("PRAISE");
+static const u8 sEasyChatWord_Overdo[] = _("OVERDO");
+static const u8 sEasyChatWord_Show[] = _("SHOW");
+static const u8 sEasyChatWord_Looks[] = _("LOOKS");
+static const u8 sEasyChatWord_Sees[] = _("SEES");
+static const u8 sEasyChatWord_Seek[] = _("SEEK");
+static const u8 sEasyChatWord_Own[] = _("OWN");
+static const u8 sEasyChatWord_Take[] = _("TAKE");
+static const u8 sEasyChatWord_Allow[] = _("ALLOW");
+static const u8 sEasyChatWord_Forget[] = _("FORGET");
+static const u8 sEasyChatWord_Forgets[] = _("FORGETS");
+static const u8 sEasyChatWord_Appears[] = _("APPEARS");
+static const u8 sEasyChatWord_Faint[] = _("FAINT");
+static const u8 sEasyChatWord_Fainted[] = _("FAINTED");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Actions[] = {
+ {
+ .text = sEasyChatWord_Meets,
+ .alphabeticalOrder = 72,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Concede,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Give,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gives,
+ .alphabeticalOrder = 75,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Played,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Plays,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Collect,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Walking,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Walks,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Says,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Went,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Said,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WakeUp,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WakesUp,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Angers,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Teach,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Teaches,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Please,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Learn,
+ .alphabeticalOrder = 76,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Change,
+ .alphabeticalOrder = 77,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Story,
+ .alphabeticalOrder = 73,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Trust,
+ .alphabeticalOrder = 74,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lavish,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Listens,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hearing,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Trains,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Choose,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Come,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Came,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Search,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Make,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cause,
+ .alphabeticalOrder = 67,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Know,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Knows,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Refuse,
+ .alphabeticalOrder = 65,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Stores,
+ .alphabeticalOrder = 70,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Brag,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ignorant,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thinks,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Believe,
+ .alphabeticalOrder = 64,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Slide,
+ .alphabeticalOrder = 63,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Eats,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Use,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Uses,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Using,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Couldnt,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Capable,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Disappear,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Appear,
+ .alphabeticalOrder = 69,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Throw,
+ .alphabeticalOrder = 68,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Worry,
+ .alphabeticalOrder = 66,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Slept,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sleep,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Release,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Drinks,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Runs,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Run,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Works,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Working,
+ .alphabeticalOrder = 71,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Talking,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Talk,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sink,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Smack,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pretend,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Praise,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Overdo,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Show,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Looks,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sees,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Seek,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Own,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Take,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Allow,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Forget,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Forgets,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Appears,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Faint,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fainted,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_adjectives.h b/src/data/easy_chat/easy_chat_group_adjectives.h
new file mode 100644
index 000000000..612f41c64
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_adjectives.h
@@ -0,0 +1,220 @@
+
+static const u8 sEasyChatWord_Wandering[] = _("WANDERING");
+static const u8 sEasyChatWord_Rickety[] = _("RICKETY");
+static const u8 sEasyChatWord_RockSolid[] = _("ROCK-SOLID");
+static const u8 sEasyChatWord_Hungry[] = _("HUNGRY");
+static const u8 sEasyChatWord_Tight[] = _("TIGHT");
+static const u8 sEasyChatWord_Ticklish[] = _("TICKLISH");
+static const u8 sEasyChatWord_Twirling[] = _("TWIRLING");
+static const u8 sEasyChatWord_Spiraling[] = _("SPIRALING");
+static const u8 sEasyChatWord_Thirsty[] = _("THIRSTY");
+static const u8 sEasyChatWord_Lolling[] = _("LOLLING");
+static const u8 sEasyChatWord_Silky[] = _("SILKY");
+static const u8 sEasyChatWord_Sadly[] = _("SADLY");
+static const u8 sEasyChatWord_Hopeless[] = _("HOPELESS");
+static const u8 sEasyChatWord_Useless[] = _("USELESS");
+static const u8 sEasyChatWord_Drooling[] = _("DROOLING");
+static const u8 sEasyChatWord_Exciting[] = _("EXCITING");
+static const u8 sEasyChatWord_Thick[] = _("THICK");
+static const u8 sEasyChatWord_Smooth[] = _("SMOOTH");
+static const u8 sEasyChatWord_Slimy[] = _("SLIMY");
+static const u8 sEasyChatWord_Thin[] = _("THIN");
+static const u8 sEasyChatWord_Break[] = _("BREAK");
+static const u8 sEasyChatWord_Voracious[] = _("VORACIOUS");
+static const u8 sEasyChatWord_Scatter[] = _("SCATTER");
+static const u8 sEasyChatWord_Awesome[] = _("AWESOME");
+static const u8 sEasyChatWord_Wimpy[] = _("WIMPY");
+static const u8 sEasyChatWord_Wobbly[] = _("WOBBLY");
+static const u8 sEasyChatWord_Shaky[] = _("SHAKY");
+static const u8 sEasyChatWord_Ripped[] = _("RIPPED");
+static const u8 sEasyChatWord_Shredded[] = _("SHREDDED");
+static const u8 sEasyChatWord_Increasing[] = _("INCREASING");
+static const u8 sEasyChatWord_Yet[] = _("YET");
+static const u8 sEasyChatWord_Destroyed[] = _("DESTROYED");
+static const u8 sEasyChatWord_Fiery[] = _("FIERY");
+static const u8 sEasyChatWord_LoveyDovey[] = _("LOVEY-DOVEY");
+static const u8 sEasyChatWord_Happily[] = _("HAPPILY");
+static const u8 sEasyChatWord_Anticipation[] = _("ANTICIPATION");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Adjectives[] = {
+ {
+ .text = sEasyChatWord_Wandering,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rickety,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_RockSolid,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hungry,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tight,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ticklish,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Twirling,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Spiraling,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thirsty,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lolling,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Silky,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sadly,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hopeless,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Useless,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Drooling,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Exciting,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thick,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Smooth,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Slimy,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thin,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Break,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Voracious,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Scatter,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Awesome,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wimpy,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wobbly,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Shaky,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ripped,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Shredded,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Increasing,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yet,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Destroyed,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fiery,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_LoveyDovey,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Happily,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Anticipation,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_battle.h b/src/data/easy_chat/easy_chat_group_battle.h
new file mode 100644
index 000000000..11d01bee2
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_battle.h
@@ -0,0 +1,382 @@
+
+static const u8 sEasyChatWord_MatchUp[] = _("MATCH UP");
+static const u8 sEasyChatWord_Go[] = _("GO");
+static const u8 sEasyChatWord_No1[] = _("NO. 1");
+static const u8 sEasyChatWord_Decide[] = _("DECIDE");
+static const u8 sEasyChatWord_LetMeWin[] = _("LET ME WIN");
+static const u8 sEasyChatWord_Wins[] = _("WINS");
+static const u8 sEasyChatWord_Win[] = _("WIN");
+static const u8 sEasyChatWord_Won[] = _("WON");
+static const u8 sEasyChatWord_IfIWin[] = _("IF I WIN");
+static const u8 sEasyChatWord_WhenIWin[] = _("WHEN I WIN");
+static const u8 sEasyChatWord_CantWin[] = _("CAN'T WIN");
+static const u8 sEasyChatWord_CanWin[] = _("CAN WIN");
+static const u8 sEasyChatWord_NoMatch[] = _("NO MATCH");
+static const u8 sEasyChatWord_Spirit[] = _("SPIRIT");
+static const u8 sEasyChatWord_Decided[] = _("DECIDED");
+static const u8 sEasyChatWord_TrumpCard[] = _("TRUMP CARD");
+static const u8 sEasyChatWord_TakeThat[] = _("TAKE THAT");
+static const u8 sEasyChatWord_ComeOn[] = _("COME ON");
+static const u8 sEasyChatWord_Attack[] = _("ATTACK");
+static const u8 sEasyChatWord_Surrender[] = _("SURRENDER");
+static const u8 sEasyChatWord_Gutsy[] = _("GUTSY");
+static const u8 sEasyChatWord_Talent[] = _("TALENT");
+static const u8 sEasyChatWord_Strategy[] = _("STRATEGY");
+static const u8 sEasyChatWord_Smite[] = _("SMITE");
+static const u8 sEasyChatWord_Match[] = _("MATCH");
+static const u8 sEasyChatWord_Victory[] = _("VICTORY");
+static const u8 sEasyChatWord_Offensive[] = _("OFFENSIVE");
+static const u8 sEasyChatWord_Sense[] = _("SENSE");
+static const u8 sEasyChatWord_Versus[] = _("VERSUS");
+static const u8 sEasyChatWord_Fights[] = _("FIGHTS");
+static const u8 sEasyChatWord_Power[] = _("POWER");
+static const u8 sEasyChatWord_Challenge[] = _("CHALLENGE");
+static const u8 sEasyChatWord_Strong[] = _("STRONG");
+static const u8 sEasyChatWord_TooStrong[] = _("TOO STRONG");
+static const u8 sEasyChatWord_GoEasy[] = _("GO EASY");
+static const u8 sEasyChatWord_Foe[] = _("FOE");
+static const u8 sEasyChatWord_Genius[] = _("GENIUS");
+static const u8 sEasyChatWord_Legend[] = _("LEGEND");
+static const u8 sEasyChatWord_Escape[] = _("ESCAPE");
+static const u8 sEasyChatWord_Aim[] = _("AIM");
+static const u8 sEasyChatWord_Battle[] = _("BATTLE");
+static const u8 sEasyChatWord_Fight[] = _("FIGHT");
+static const u8 sEasyChatWord_Resuscitate[] = _("RESUSCITATE");
+static const u8 sEasyChatWord_Points[] = _("POINTS");
+static const u8 sEasyChatWord_Serious[] = _("SERIOUS");
+static const u8 sEasyChatWord_GiveUp[] = _("GIVE UP");
+static const u8 sEasyChatWord_Loss[] = _("LOSS");
+static const u8 sEasyChatWord_IfILose[] = _("IF I LOSE");
+static const u8 sEasyChatWord_Lost[] = _("LOST");
+static const u8 sEasyChatWord_Lose[] = _("LOSE");
+static const u8 sEasyChatWord_Guard[] = _("GUARD");
+static const u8 sEasyChatWord_Partner[] = _("PARTNER");
+static const u8 sEasyChatWord_Reject[] = _("REJECT");
+static const u8 sEasyChatWord_Accept[] = _("ACCEPT");
+static const u8 sEasyChatWord_Invincible[] = _("INVINCIBLE");
+static const u8 sEasyChatWord_Received[] = _("RECEIVED");
+static const u8 sEasyChatWord_Easy[] = _("EASY");
+static const u8 sEasyChatWord_Weak[] = _("WEAK");
+static const u8 sEasyChatWord_TooWeak[] = _("TOO WEAK");
+static const u8 sEasyChatWord_Pushover[] = _("PUSHOVER");
+static const u8 sEasyChatWord_Leader[] = _("LEADER");
+static const u8 sEasyChatWord_Rule[] = _("RULE");
+static const u8 sEasyChatWord_Move[] = _("MOVE");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Battle[] = {
+ {
+ .text = sEasyChatWord_MatchUp,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Go,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_No1,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Decide,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_LetMeWin,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wins,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Win,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Won,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IfIWin,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WhenIWin,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_CantWin,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_CanWin,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_NoMatch,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Spirit,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Decided,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TrumpCard,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TakeThat,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ComeOn,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Attack,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Surrender,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gutsy,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Talent,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Strategy,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Smite,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Match,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Victory,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Offensive,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sense,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Versus,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fights,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Power,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Challenge,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Strong,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TooStrong,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_GoEasy,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Foe,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Genius,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Legend,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Escape,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Aim,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Battle,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fight,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Resuscitate,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Points,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Serious,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_GiveUp,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Loss,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IfILose,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lost,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lose,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Guard,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Partner,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Reject,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Accept,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Invincible,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Received,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Easy,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Weak,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TooWeak,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pushover,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Leader,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rule,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Move,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_conditions.h b/src/data/easy_chat/easy_chat_group_conditions.h
new file mode 100644
index 000000000..cfb47a725
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_conditions.h
@@ -0,0 +1,418 @@
+
+static const u8 sEasyChatWord_Hot[] = _("HOT");
+static const u8 sEasyChatWord_Exists[] = _("EXISTS");
+static const u8 sEasyChatWord_Excess[] = _("EXCESS");
+static const u8 sEasyChatWord_Approved[] = _("APPROVED");
+static const u8 sEasyChatWord_Has[] = _("HAS");
+static const u8 sEasyChatWord_Good[] = _("GOOD");
+static const u8 sEasyChatWord_Less[] = _("LESS");
+static const u8 sEasyChatWord_Momentum[] = _("MOMENTUM");
+static const u8 sEasyChatWord_Going[] = _("GOING");
+static const u8 sEasyChatWord_Weird[] = _("WEIRD");
+static const u8 sEasyChatWord_Busy[] = _("BUSY");
+static const u8 sEasyChatWord_Together[] = _("TOGETHER");
+static const u8 sEasyChatWord_Full[] = _("FULL");
+static const u8 sEasyChatWord_Absent[] = _("ABSENT");
+static const u8 sEasyChatWord_Being[] = _("BEING");
+static const u8 sEasyChatWord_Need[] = _("NEED");
+static const u8 sEasyChatWord_Tasty[] = _("TASTY");
+static const u8 sEasyChatWord_Skilled[] = _("SKILLED");
+static const u8 sEasyChatWord_Noisy[] = _("NOISY");
+static const u8 sEasyChatWord_Big[] = _("BIG");
+static const u8 sEasyChatWord_Late[] = _("LATE");
+static const u8 sEasyChatWord_Close[] = _("CLOSE");
+static const u8 sEasyChatWord_Docile[] = _("DOCILE");
+static const u8 sEasyChatWord_Amusing[] = _("AMUSING");
+static const u8 sEasyChatWord_Entertaining[] = _("ENTERTAINING");
+static const u8 sEasyChatWord_Perfection[] = _("PERFECTION");
+static const u8 sEasyChatWord_Pretty[] = _("PRETTY");
+static const u8 sEasyChatWord_Healthy[] = _("HEALTHY");
+static const u8 sEasyChatWord_Excellent[] = _("EXCELLENT");
+static const u8 sEasyChatWord_UpsideDown[] = _("UPSIDE DOWN");
+static const u8 sEasyChatWord_Cold[] = _("COLD");
+static const u8 sEasyChatWord_Refreshing[] = _("REFRESHING");
+static const u8 sEasyChatWord_Unavoidable[] = _("UNAVOIDABLE");
+static const u8 sEasyChatWord_Much[] = _("MUCH");
+static const u8 sEasyChatWord_Overwhelming[] = _("OVERWHELMING");
+static const u8 sEasyChatWord_Fabulous[] = _("FABULOUS");
+static const u8 sEasyChatWord_Else[] = _("ELSE");
+static const u8 sEasyChatWord_Expensive[] = _("EXPENSIVE");
+static const u8 sEasyChatWord_Correct[] = _("CORRECT");
+static const u8 sEasyChatWord_Impossible[] = _("IMPOSSIBLE");
+static const u8 sEasyChatWord_Small[] = _("SMALL");
+static const u8 sEasyChatWord_Different[] = _("DIFFERENT");
+static const u8 sEasyChatWord_Tired[] = _("TIRED");
+static const u8 sEasyChatWord_Skill[] = _("SKILL");
+static const u8 sEasyChatWord_Top[] = _("TOP");
+static const u8 sEasyChatWord_NonStop[] = _("NON-STOP");
+static const u8 sEasyChatWord_Preposterous[] = _("PREPOSTEROUS");
+static const u8 sEasyChatWord_None[] = _("NONE");
+static const u8 sEasyChatWord_Nothing[] = _("NOTHING");
+static const u8 sEasyChatWord_Natural[] = _("NATURAL");
+static const u8 sEasyChatWord_Becomes[] = _("BECOMES");
+static const u8 sEasyChatWord_Lukewarm[] = _("LUKEWARM");
+static const u8 sEasyChatWord_Fast[] = _("FAST");
+static const u8 sEasyChatWord_Low[] = _("LOW");
+static const u8 sEasyChatWord_Awful[] = _("AWFUL");
+static const u8 sEasyChatWord_Alone[] = _("ALONE");
+static const u8 sEasyChatWord_Bored[] = _("BORED");
+static const u8 sEasyChatWord_Secret[] = _("SECRET");
+static const u8 sEasyChatWord_Mystery[] = _("MYSTERY");
+static const u8 sEasyChatWord_Lacks[] = _("LACKS");
+static const u8 sEasyChatWord_Best[] = _("BEST");
+static const u8 sEasyChatWord_Lousy[] = _("LOUSY");
+static const u8 sEasyChatWord_Mistake[] = _("MISTAKE");
+static const u8 sEasyChatWord_Kind[] = _("KIND");
+static const u8 sEasyChatWord_Well[] = _("WELL");
+static const u8 sEasyChatWord_Weakened[] = _("WEAKENED");
+static const u8 sEasyChatWord_Simple[] = _("SIMPLE");
+static const u8 sEasyChatWord_Seems[] = _("SEEMS");
+static const u8 sEasyChatWord_Badly[] = _("BADLY");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Conditions[] = {
+ {
+ .text = sEasyChatWord_Hot,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Exists,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Excess,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Approved,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Has,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Good,
+ .alphabeticalOrder = 68,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Less,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Momentum,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Going,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Weird,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Busy,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Together,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Full,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Absent,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Being,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Need,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tasty,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Skilled,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Noisy,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Big,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Late,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Close,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Docile,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Amusing,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Entertaining,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Perfection,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pretty,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Healthy,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Excellent,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_UpsideDown,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cold,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Refreshing,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Unavoidable,
+ .alphabeticalOrder = 63,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Much,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Overwhelming,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fabulous,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Else,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Expensive,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Correct,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Impossible,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Small,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Different,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tired,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Skill,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Top,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_NonStop,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Preposterous,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_None,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nothing,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Natural,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Becomes,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lukewarm,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fast,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Low,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Awful,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Alone,
+ .alphabeticalOrder = 67,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Bored,
+ .alphabeticalOrder = 66,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Secret,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mystery,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lacks,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Best,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lousy,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mistake,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Kind,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Well,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Weakened,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Simple,
+ .alphabeticalOrder = 65,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Seems,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Badly,
+ .alphabeticalOrder = 64,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_endings.h b/src/data/easy_chat/easy_chat_group_endings.h
new file mode 100644
index 000000000..400877621
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_endings.h
@@ -0,0 +1,418 @@
+
+static const u8 sEasyChatWord_Will[] = _("WILL");
+static const u8 sEasyChatWord_WillBeHere[] = _("WILL BE HERE");
+static const u8 sEasyChatWord_Or[] = _("OR");
+static const u8 sEasyChatWord_Times[] = _("TIMES");
+static const u8 sEasyChatWord_Wonder[] = _("WONDER");
+static const u8 sEasyChatWord_IsItQues[] = _("IS IT?");
+static const u8 sEasyChatWord_Be[] = _("BE");
+static const u8 sEasyChatWord_Gimme[] = _("GIMME");
+static const u8 sEasyChatWord_Could[] = _("COULD");
+static const u8 sEasyChatWord_LikelyTo[] = _("LIKELY TO");
+static const u8 sEasyChatWord_Would[] = _("WOULD");
+static const u8 sEasyChatWord_Is[] = _("IS");
+static const u8 sEasyChatWord_IsntItQues[] = _("ISN'T IT?");
+static const u8 sEasyChatWord_Lets[] = _("LET'S");
+static const u8 sEasyChatWord_Other[] = _("OTHER");
+static const u8 sEasyChatWord_Are[] = _("ARE");
+static const u8 sEasyChatWord_Was[] = _("WAS");
+static const u8 sEasyChatWord_Were[] = _("WERE");
+static const u8 sEasyChatWord_Those[] = _("THOSE");
+static const u8 sEasyChatWord_Isnt[] = _("ISN'T");
+static const u8 sEasyChatWord_Wont[] = _("WON'T");
+static const u8 sEasyChatWord_Cant[] = _("CAN'T");
+static const u8 sEasyChatWord_Can[] = _("CAN");
+static const u8 sEasyChatWord_Dont[] = _("DON'T");
+static const u8 sEasyChatWord_Do[] = _("DO");
+static const u8 sEasyChatWord_Does[] = _("DOES");
+static const u8 sEasyChatWord_Whom[] = _("WHOM");
+static const u8 sEasyChatWord_Which[] = _("WHICH");
+static const u8 sEasyChatWord_Wasnt[] = _("WASN'T");
+static const u8 sEasyChatWord_Werent[] = _("WEREN'T");
+static const u8 sEasyChatWord_Have[] = _("HAVE");
+static const u8 sEasyChatWord_Havent[] = _("HAVEN'T");
+static const u8 sEasyChatWord_A[] = _("A");
+static const u8 sEasyChatWord_An[] = _("AN");
+static const u8 sEasyChatWord_Not[] = _("NOT");
+static const u8 sEasyChatWord_There[] = _("THERE");
+static const u8 sEasyChatWord_OkQues[] = _("OK?");
+static const u8 sEasyChatWord_So[] = _("SO");
+static const u8 sEasyChatWord_Maybe[] = _("MAYBE");
+static const u8 sEasyChatWord_About[] = _("ABOUT");
+static const u8 sEasyChatWord_Over[] = _("OVER");
+static const u8 sEasyChatWord_It[] = _("IT");
+static const u8 sEasyChatWord_All[] = _("ALL");
+static const u8 sEasyChatWord_For[] = _("FOR");
+static const u8 sEasyChatWord_On[] = _("ON");
+static const u8 sEasyChatWord_Off[] = _("OFF");
+static const u8 sEasyChatWord_As[] = _("AS");
+static const u8 sEasyChatWord_To[] = _("TO");
+static const u8 sEasyChatWord_With[] = _("WITH");
+static const u8 sEasyChatWord_Better[] = _("BETTER");
+static const u8 sEasyChatWord_Ever[] = _("EVER");
+static const u8 sEasyChatWord_Since[] = _("SINCE");
+static const u8 sEasyChatWord_Of[] = _("OF");
+static const u8 sEasyChatWord_BelongsTo[] = _("BELONGS TO");
+static const u8 sEasyChatWord_At[] = _("AT");
+static const u8 sEasyChatWord_In[] = _("IN");
+static const u8 sEasyChatWord_Out[] = _("OUT");
+static const u8 sEasyChatWord_Too[] = _("TOO");
+static const u8 sEasyChatWord_Like[] = _("LIKE");
+static const u8 sEasyChatWord_Did[] = _("DID");
+static const u8 sEasyChatWord_Didnt[] = _("DIDN'T");
+static const u8 sEasyChatWord_Doesnt[] = _("DOESN'T");
+static const u8 sEasyChatWord_Without[] = _("WITHOUT");
+static const u8 sEasyChatWord_After[] = _("AFTER");
+static const u8 sEasyChatWord_Before[] = _("BEFORE");
+static const u8 sEasyChatWord_While[] = _("WHILE");
+static const u8 sEasyChatWord_Than[] = _("THAN");
+static const u8 sEasyChatWord_Once[] = _("ONCE");
+static const u8 sEasyChatWord_Anywhere[] = _("ANYWHERE");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Endings[] = {
+ {
+ .text = sEasyChatWord_Will,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WillBeHere,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Or,
+ .alphabeticalOrder = 63,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Times,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wonder,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IsItQues,
+ .alphabeticalOrder = 68,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Be,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gimme,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Could,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_LikelyTo,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Would,
+ .alphabeticalOrder = 64,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Is,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IsntItQues,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lets,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Other,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Are,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Was,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Were,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Those,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Isnt,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wont,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cant,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Can,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dont,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Do,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Does,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Whom,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Which,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wasnt,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Werent,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Have,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Havent,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_A,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_An,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Not,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_There,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OkQues,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_So,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Maybe,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_About,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Over,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_It,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_All,
+ .alphabeticalOrder = 67,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_For,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_On,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Off,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_As,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_To,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_With,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Better,
+ .alphabeticalOrder = 66,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ever,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Since,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Of,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_BelongsTo,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_At,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_In,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Out,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Too,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Like,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Did,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Didnt,
+ .alphabeticalOrder = 65,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Doesnt,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Without,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_After,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Before,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_While,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Than,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Once,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Anywhere,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_events.h b/src/data/easy_chat/easy_chat_group_events.h
new file mode 100644
index 000000000..30151b312
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_events.h
@@ -0,0 +1,172 @@
+
+static const u8 sEasyChatWord_Appeal[] = _("APPEAL");
+static const u8 sEasyChatWord_Events[] = _("EVENTS");
+static const u8 sEasyChatWord_StayAtHome[] = _("STAY-AT-HOME");
+static const u8 sEasyChatWord_Berry[] = _("BERRY");
+static const u8 sEasyChatWord_Contest[] = _("CONTEST");
+static const u8 sEasyChatWord_Mc[] = _("MC");
+static const u8 sEasyChatWord_Judge[] = _("JUDGE");
+static const u8 sEasyChatWord_Super[] = _("SUPER");
+static const u8 sEasyChatWord_Stage[] = _("STAGE");
+static const u8 sEasyChatWord_HallOfFame[] = _("HALL OF FAME");
+static const u8 sEasyChatWord_Evolution[] = _("EVOLUTION");
+static const u8 sEasyChatWord_Hyper[] = _("HYPER");
+static const u8 sEasyChatWord_BattleTower[] = _("BATTLE TOWER");
+static const u8 sEasyChatWord_Leaders[] = _("LEADERS");
+static const u8 sEasyChatWord_BattleRoom[] = _("BATTLE ROOM");
+static const u8 sEasyChatWord_Hidden[] = _("HIDDEN");
+static const u8 sEasyChatWord_SecretBase[] = _("SECRET BASE");
+static const u8 sEasyChatWord_Blend[] = _("BLEND");
+static const u8 sEasyChatWord_POKEBLOCK[] = _("{POKEBLOCK}");
+static const u8 sEasyChatWord_Master[] = _("MASTER");
+static const u8 sEasyChatWord_Rank[] = _("RANK");
+static const u8 sEasyChatWord_Ribbon[] = _("RIBBON");
+static const u8 sEasyChatWord_Crush[] = _("CRUSH");
+static const u8 sEasyChatWord_Direct[] = _("DIRECT");
+static const u8 sEasyChatWord_Tower[] = _("TOWER");
+static const u8 sEasyChatWord_Union[] = _("UNION");
+static const u8 sEasyChatWord_Room[] = _("ROOM");
+static const u8 sEasyChatWord_Wireless[] = _("WIRELESS");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Events[] = {
+ {
+ .text = sEasyChatWord_Appeal,
+ .alphabeticalOrder = 0,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Events,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_StayAtHome,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Berry,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Contest,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mc,
+ .alphabeticalOrder = 4,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Judge,
+ .alphabeticalOrder = 22,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Super,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Stage,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HallOfFame,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Evolution,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hyper,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_BattleTower,
+ .alphabeticalOrder = 11,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Leaders,
+ .alphabeticalOrder = 6,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_BattleRoom,
+ .alphabeticalOrder = 13,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Hidden,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SecretBase,
+ .alphabeticalOrder = 5,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Blend,
+ .alphabeticalOrder = 18,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_POKEBLOCK,
+ .alphabeticalOrder = 20,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Master,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rank,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ribbon,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Crush,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Direct,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tower,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Union,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Room,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wireless,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_feelings.h b/src/data/easy_chat/easy_chat_group_feelings.h
new file mode 100644
index 000000000..32eee14de
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_feelings.h
@@ -0,0 +1,418 @@
+
+static const u8 sEasyChatWord_Meet[] = _("MEET");
+static const u8 sEasyChatWord_Play[] = _("PLAY");
+static const u8 sEasyChatWord_Hurried[] = _("HURRIED");
+static const u8 sEasyChatWord_Goes[] = _("GOES");
+static const u8 sEasyChatWord_Giddy[] = _("GIDDY");
+static const u8 sEasyChatWord_Happy[] = _("HAPPY");
+static const u8 sEasyChatWord_Happiness[] = _("HAPPINESS");
+static const u8 sEasyChatWord_Excite[] = _("EXCITE");
+static const u8 sEasyChatWord_Important[] = _("IMPORTANT");
+static const u8 sEasyChatWord_Funny[] = _("FUNNY");
+static const u8 sEasyChatWord_Got[] = _("GOT");
+static const u8 sEasyChatWord_GoHome[] = _("GO HOME");
+static const u8 sEasyChatWord_Disappointed[] = _("DISAPPOINTED");
+static const u8 sEasyChatWord_Disappoints[] = _("DISAPPOINTS");
+static const u8 sEasyChatWord_Sad[] = _("SAD");
+static const u8 sEasyChatWord_Try[] = _("TRY");
+static const u8 sEasyChatWord_Tries[] = _("TRIES");
+static const u8 sEasyChatWord_Hears[] = _("HEARS");
+static const u8 sEasyChatWord_Think[] = _("THINK");
+static const u8 sEasyChatWord_Hear[] = _("HEAR");
+static const u8 sEasyChatWord_Wants[] = _("WANTS");
+static const u8 sEasyChatWord_Misheard[] = _("MISHEARD");
+static const u8 sEasyChatWord_Dislike[] = _("DISLIKE");
+static const u8 sEasyChatWord_Angry[] = _("ANGRY");
+static const u8 sEasyChatWord_Anger[] = _("ANGER");
+static const u8 sEasyChatWord_Scary[] = _("SCARY");
+static const u8 sEasyChatWord_Lonesome[] = _("LONESOME");
+static const u8 sEasyChatWord_Disappoint[] = _("DISAPPOINT");
+static const u8 sEasyChatWord_Joy[] = _("JOY");
+static const u8 sEasyChatWord_Gets[] = _("GETS");
+static const u8 sEasyChatWord_Never[] = _("NEVER");
+static const u8 sEasyChatWord_Darn[] = _("DARN");
+static const u8 sEasyChatWord_Downcast[] = _("DOWNCAST");
+static const u8 sEasyChatWord_Incredible[] = _("INCREDIBLE");
+static const u8 sEasyChatWord_Likes[] = _("LIKES");
+static const u8 sEasyChatWord_Dislikes[] = _("DISLIKES");
+static const u8 sEasyChatWord_Boring[] = _("BORING");
+static const u8 sEasyChatWord_Care[] = _("CARE");
+static const u8 sEasyChatWord_Cares[] = _("CARES");
+static const u8 sEasyChatWord_AllRight[] = _("ALL RIGHT");
+static const u8 sEasyChatWord_Adore[] = _("ADORE");
+static const u8 sEasyChatWord_Disaster[] = _("DISASTER");
+static const u8 sEasyChatWord_Enjoy[] = _("ENJOY");
+static const u8 sEasyChatWord_Enjoys[] = _("ENJOYS");
+static const u8 sEasyChatWord_Eat[] = _("EAT");
+static const u8 sEasyChatWord_Lacking[] = _("LACKING");
+static const u8 sEasyChatWord_Bad[] = _("BAD");
+static const u8 sEasyChatWord_Hard[] = _("HARD");
+static const u8 sEasyChatWord_Terrible[] = _("TERRIBLE");
+static const u8 sEasyChatWord_Should[] = _("SHOULD");
+static const u8 sEasyChatWord_Nice[] = _("NICE");
+static const u8 sEasyChatWord_Drink[] = _("DRINK");
+static const u8 sEasyChatWord_Surprise[] = _("SURPRISE");
+static const u8 sEasyChatWord_Fear[] = _("FEAR");
+static const u8 sEasyChatWord_Want[] = _("WANT");
+static const u8 sEasyChatWord_Wait[] = _("WAIT");
+static const u8 sEasyChatWord_Satisfied[] = _("SATISFIED");
+static const u8 sEasyChatWord_See[] = _("SEE");
+static const u8 sEasyChatWord_Rare[] = _("RARE");
+static const u8 sEasyChatWord_Negative[] = _("NEGATIVE");
+static const u8 sEasyChatWord_Done[] = _("DONE");
+static const u8 sEasyChatWord_Danger[] = _("DANGER");
+static const u8 sEasyChatWord_Defeated[] = _("DEFEATED");
+static const u8 sEasyChatWord_Beat[] = _("BEAT");
+static const u8 sEasyChatWord_Great[] = _("GREAT");
+static const u8 sEasyChatWord_Romantic[] = _("ROMANTIC");
+static const u8 sEasyChatWord_Question[] = _("QUESTION");
+static const u8 sEasyChatWord_Understand[] = _("UNDERSTAND");
+static const u8 sEasyChatWord_Understands[] = _("UNDERSTANDS");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Feelings[] = {
+ {
+ .text = sEasyChatWord_Meet,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Play,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hurried,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Goes,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Giddy,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Happy,
+ .alphabeticalOrder = 63,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Happiness,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Excite,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Important,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Funny,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Got,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_GoHome,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Disappointed,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Disappoints,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sad,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Try,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tries,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hears,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Think,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hear,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wants,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Misheard,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dislike,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Angry,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Anger,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Scary,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lonesome,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Disappoint,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Joy,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gets,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Never,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Darn,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Downcast,
+ .alphabeticalOrder = 64,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Incredible,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Likes,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dislikes,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Boring,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Care,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cares,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_AllRight,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Adore,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Disaster,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Enjoy,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Enjoys,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Eat,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lacking,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Bad,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hard,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Terrible,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Should,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nice,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Drink,
+ .alphabeticalOrder = 66,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Surprise,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fear,
+ .alphabeticalOrder = 65,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Want,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wait,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Satisfied,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_See,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rare,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Negative,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Done,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Danger,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Defeated,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Beat,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Great,
+ .alphabeticalOrder = 67,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Romantic,
+ .alphabeticalOrder = 68,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Question,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Understand,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Understands,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_greetings.h b/src/data/easy_chat/easy_chat_group_greetings.h
new file mode 100644
index 000000000..0483adb74
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_greetings.h
@@ -0,0 +1,256 @@
+
+static const u8 sEasyChatWord_Thanks[] = _("THANKS");
+static const u8 sEasyChatWord_Yes[] = _("YES");
+static const u8 sEasyChatWord_HereGoes[] = _("HERE GOES");
+static const u8 sEasyChatWord_HereICome[] = _("HERE I COME");
+static const u8 sEasyChatWord_HereItIs[] = _("HERE IT IS");
+static const u8 sEasyChatWord_Yeah[] = _("YEAH");
+static const u8 sEasyChatWord_Welcome[] = _("WELCOME");
+static const u8 sEasyChatWord_Oi[] = _("OI");
+static const u8 sEasyChatWord_HowDo[] = _("HOW DO");
+static const u8 sEasyChatWord_Congrats[] = _("CONGRATS");
+static const u8 sEasyChatWord_GiveMe[] = _("GIVE ME");
+static const u8 sEasyChatWord_Sorry[] = _("SORRY");
+static const u8 sEasyChatWord_Apologize[] = _("APOLOGIZE");
+static const u8 sEasyChatWord_Forgive[] = _("FORGIVE");
+static const u8 sEasyChatWord_HeyThere[] = _("HEY, THERE");
+static const u8 sEasyChatWord_Hello[] = _("HELLO");
+static const u8 sEasyChatWord_GoodBye[] = _("GOOD-BYE");
+static const u8 sEasyChatWord_ThankYou[] = _("THANK YOU");
+static const u8 sEasyChatWord_IveArrived[] = _("I'VE ARRIVED");
+static const u8 sEasyChatWord_Pardon[] = _("PARDON");
+static const u8 sEasyChatWord_Excuse[] = _("EXCUSE");
+static const u8 sEasyChatWord_SeeYa[] = _("SEE YA");
+static const u8 sEasyChatWord_ExcuseMe[] = _("EXCUSE ME");
+static const u8 sEasyChatWord_WellThen[] = _("WELL, THEN");
+static const u8 sEasyChatWord_GoAhead[] = _("GO AHEAD");
+static const u8 sEasyChatWord_Appreciate[] = _("APPRECIATE");
+static const u8 sEasyChatWord_HeyQues[] = _("HEY?");
+static const u8 sEasyChatWord_WhatsUpQues[] = _("WHAT'S UP?");
+static const u8 sEasyChatWord_HuhQues[] = _("HUH?");
+static const u8 sEasyChatWord_No[] = _("NO");
+static const u8 sEasyChatWord_Hi[] = _("HI");
+static const u8 sEasyChatWord_YeahYeah[] = _("YEAH, YEAH");
+static const u8 sEasyChatWord_ByeBye[] = _("BYE-BYE");
+static const u8 sEasyChatWord_MeetYou[] = _("MEET YOU");
+static const u8 sEasyChatWord_Hey[] = _("HEY");
+static const u8 sEasyChatWord_Smell[] = _("SMELL");
+static const u8 sEasyChatWord_Listening[] = _("LISTENING");
+static const u8 sEasyChatWord_HooHah[] = _("HOO-HAH");
+static const u8 sEasyChatWord_Yahoo[] = _("YAHOO");
+static const u8 sEasyChatWord_Yo[] = _("YO");
+static const u8 sEasyChatWord_ComeOver[] = _("COME OVER");
+static const u8 sEasyChatWord_CountOn[] = _("COUNT ON");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Greetings[] = {
+ {
+ .text = sEasyChatWord_Thanks,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yes,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HereGoes,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HereICome,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HereItIs,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yeah,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Welcome,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Oi,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HowDo,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Congrats,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_GiveMe,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sorry,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Apologize,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Forgive,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HeyThere,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hello,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_GoodBye,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThankYou,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IveArrived,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pardon,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Excuse,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SeeYa,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ExcuseMe,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WellThen,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_GoAhead,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Appreciate,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HeyQues,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WhatsUpQues,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HuhQues,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_No,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hi,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_YeahYeah,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ByeBye,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_MeetYou,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hey,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Smell,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Listening,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HooHah,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yahoo,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yo,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ComeOver,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_CountOn,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_hobbies.h b/src/data/easy_chat/easy_chat_group_hobbies.h
new file mode 100644
index 000000000..12ef3ceb7
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_hobbies.h
@@ -0,0 +1,328 @@
+
+static const u8 sEasyChatWord_Idol[] = _("IDOL");
+static const u8 sEasyChatWord_Anime[] = _("ANIME");
+static const u8 sEasyChatWord_Song[] = _("SONG");
+static const u8 sEasyChatWord_Movie[] = _("MOVIE");
+static const u8 sEasyChatWord_Sweets[] = _("SWEETS");
+static const u8 sEasyChatWord_Chat[] = _("CHAT");
+static const u8 sEasyChatWord_ChildsPlay[] = _("CHILD'S PLAY");
+static const u8 sEasyChatWord_Toys[] = _("TOYS");
+static const u8 sEasyChatWord_Music[] = _("MUSIC");
+static const u8 sEasyChatWord_Cards[] = _("CARDS");
+static const u8 sEasyChatWord_Shopping[] = _("SHOPPING");
+static const u8 sEasyChatWord_Camera[] = _("CAMERA");
+static const u8 sEasyChatWord_Viewing[] = _("VIEWING");
+static const u8 sEasyChatWord_Spectator[] = _("SPECTATOR");
+static const u8 sEasyChatWord_Gourmet[] = _("GOURMET");
+static const u8 sEasyChatWord_Game[] = _("GAME");
+static const u8 sEasyChatWord_Rpg[] = _("RPG");
+static const u8 sEasyChatWord_Collection[] = _("COLLECTION");
+static const u8 sEasyChatWord_Complete[] = _("COMPLETE");
+static const u8 sEasyChatWord_Magazine[] = _("MAGAZINE");
+static const u8 sEasyChatWord_Walk[] = _("WALK");
+static const u8 sEasyChatWord_Bike[] = _("BIKE");
+static const u8 sEasyChatWord_Hobby[] = _("HOBBY");
+static const u8 sEasyChatWord_Sports[] = _("SPORTS");
+static const u8 sEasyChatWord_Software[] = _("SOFTWARE");
+static const u8 sEasyChatWord_Songs[] = _("SONGS");
+static const u8 sEasyChatWord_Diet[] = _("DIET");
+static const u8 sEasyChatWord_Treasure[] = _("TREASURE");
+static const u8 sEasyChatWord_Travel[] = _("TRAVEL");
+static const u8 sEasyChatWord_Dance[] = _("DANCE");
+static const u8 sEasyChatWord_Channel[] = _("CHANNEL");
+static const u8 sEasyChatWord_Making[] = _("MAKING");
+static const u8 sEasyChatWord_Fishing[] = _("FISHING");
+static const u8 sEasyChatWord_Date[] = _("DATE");
+static const u8 sEasyChatWord_Design[] = _("DESIGN");
+static const u8 sEasyChatWord_Locomotive[] = _("LOCOMOTIVE");
+static const u8 sEasyChatWord_PlushDoll[] = _("PLUSH DOLL");
+static const u8 sEasyChatWord_Pc[] = _("PC");
+static const u8 sEasyChatWord_Flowers[] = _("FLOWERS");
+static const u8 sEasyChatWord_Hero[] = _("HERO");
+static const u8 sEasyChatWord_Nap[] = _("NAP");
+static const u8 sEasyChatWord_Heroine[] = _("HEROINE");
+static const u8 sEasyChatWord_Fashion[] = _("FASHION");
+static const u8 sEasyChatWord_Adventure[] = _("ADVENTURE");
+static const u8 sEasyChatWord_Board[] = _("BOARD");
+static const u8 sEasyChatWord_Ball[] = _("BALL");
+static const u8 sEasyChatWord_Book[] = _("BOOK");
+static const u8 sEasyChatWord_Festival[] = _("FESTIVAL");
+static const u8 sEasyChatWord_Comics[] = _("COMICS");
+static const u8 sEasyChatWord_Holiday[] = _("HOLIDAY");
+static const u8 sEasyChatWord_Plans[] = _("PLANS");
+static const u8 sEasyChatWord_Trendy[] = _("TRENDY");
+static const u8 sEasyChatWord_Vacation[] = _("VACATION");
+static const u8 sEasyChatWord_Look[] = _("LOOK");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Hobbies[] = {
+ {
+ .text = sEasyChatWord_Idol,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Anime,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Song,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Movie,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sweets,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Chat,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ChildsPlay,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Toys,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Music,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cards,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Shopping,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Camera,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Viewing,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Spectator,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gourmet,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Game,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rpg,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Collection,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Complete,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Magazine,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Walk,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Bike,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hobby,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sports,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Software,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Songs,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Diet,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Treasure,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Travel,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dance,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Channel,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Making,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fishing,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Date,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Design,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Locomotive,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_PlushDoll,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pc,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Flowers,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hero,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nap,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Heroine,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fashion,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Adventure,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Board,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ball,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Book,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Festival,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Comics,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Holiday,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Plans,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Trendy,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Vacation,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Look,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_lifestyle.h b/src/data/easy_chat/easy_chat_group_lifestyle.h
new file mode 100644
index 000000000..1265f88b9
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_lifestyle.h
@@ -0,0 +1,274 @@
+
+static const u8 sEasyChatWord_Chores[] = _("CHORES");
+static const u8 sEasyChatWord_Home[] = _("HOME");
+static const u8 sEasyChatWord_Money[] = _("MONEY");
+static const u8 sEasyChatWord_Allowance[] = _("ALLOWANCE");
+static const u8 sEasyChatWord_Bath[] = _("BATH");
+static const u8 sEasyChatWord_Conversation[] = _("CONVERSATION");
+static const u8 sEasyChatWord_School[] = _("SCHOOL");
+static const u8 sEasyChatWord_Commemorate[] = _("COMMEMORATE");
+static const u8 sEasyChatWord_Habit[] = _("HABIT");
+static const u8 sEasyChatWord_Group[] = _("GROUP");
+static const u8 sEasyChatWord_Word[] = _("WORD");
+static const u8 sEasyChatWord_Store[] = _("STORE");
+static const u8 sEasyChatWord_Service[] = _("SERVICE");
+static const u8 sEasyChatWord_Work[] = _("WORK");
+static const u8 sEasyChatWord_System[] = _("SYSTEM");
+static const u8 sEasyChatWord_Train[] = _("TRAIN");
+static const u8 sEasyChatWord_Class[] = _("CLASS");
+static const u8 sEasyChatWord_Lessons[] = _("LESSONS");
+static const u8 sEasyChatWord_Information[] = _("INFORMATION");
+static const u8 sEasyChatWord_Living[] = _("LIVING");
+static const u8 sEasyChatWord_Teacher[] = _("TEACHER");
+static const u8 sEasyChatWord_Tournament[] = _("TOURNAMENT");
+static const u8 sEasyChatWord_Letter[] = _("LETTER");
+static const u8 sEasyChatWord_Event[] = _("EVENT");
+static const u8 sEasyChatWord_Digital[] = _("DIGITAL");
+static const u8 sEasyChatWord_Test[] = _("TEST");
+static const u8 sEasyChatWord_DeptStore[] = _("DEPT. STORE");
+static const u8 sEasyChatWord_Television[] = _("TELEVISION");
+static const u8 sEasyChatWord_Phone[] = _("PHONE");
+static const u8 sEasyChatWord_Item[] = _("ITEM");
+static const u8 sEasyChatWord_Name[] = _("NAME");
+static const u8 sEasyChatWord_News[] = _("NEWS");
+static const u8 sEasyChatWord_Popular[] = _("POPULAR");
+static const u8 sEasyChatWord_Party[] = _("PARTY");
+static const u8 sEasyChatWord_Study[] = _("STUDY");
+static const u8 sEasyChatWord_Machine[] = _("MACHINE");
+static const u8 sEasyChatWord_Mail[] = _("MAIL");
+static const u8 sEasyChatWord_Message[] = _("MESSAGE");
+static const u8 sEasyChatWord_Promise[] = _("PROMISE");
+static const u8 sEasyChatWord_Dream[] = _("DREAM");
+static const u8 sEasyChatWord_Kindergarten[] = _("KINDERGARTEN");
+static const u8 sEasyChatWord_Life[] = _("LIFE");
+static const u8 sEasyChatWord_Radio[] = _("RADIO");
+static const u8 sEasyChatWord_Rental[] = _("RENTAL");
+static const u8 sEasyChatWord_World[] = _("WORLD");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Lifestyle[] = {
+ {
+ .text = sEasyChatWord_Chores,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Home,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Money,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Allowance,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Bath,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Conversation,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_School,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Commemorate,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Habit,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Group,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Word,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Store,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Service,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Work,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_System,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Train,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Class,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lessons,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Information,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Living,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Teacher,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tournament,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Letter,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Event,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Digital,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Test,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_DeptStore,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Television,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Phone,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Item,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Name,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_News,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Popular,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Party,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Study,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Machine,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mail,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Message,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Promise,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dream,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Kindergarten,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Life,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Radio,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rental,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_World,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_misc.h b/src/data/easy_chat/easy_chat_group_misc.h
new file mode 100644
index 000000000..d4ffb8a5e
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_misc.h
@@ -0,0 +1,256 @@
+
+static const u8 sEasyChatWord_Highs[] = _("HIGHS");
+static const u8 sEasyChatWord_Lows[] = _("LOWS");
+static const u8 sEasyChatWord_Um[] = _("UM");
+static const u8 sEasyChatWord_Rear[] = _("REAR");
+static const u8 sEasyChatWord_Things[] = _("THINGS");
+static const u8 sEasyChatWord_Thing[] = _("THING");
+static const u8 sEasyChatWord_Below[] = _("BELOW");
+static const u8 sEasyChatWord_Above[] = _("ABOVE");
+static const u8 sEasyChatWord_Back[] = _("BACK");
+static const u8 sEasyChatWord_High[] = _("HIGH");
+static const u8 sEasyChatWord_Here[] = _("HERE");
+static const u8 sEasyChatWord_Inside[] = _("INSIDE");
+static const u8 sEasyChatWord_Outside[] = _("OUTSIDE");
+static const u8 sEasyChatWord_Beside[] = _("BESIDE");
+static const u8 sEasyChatWord_ThisIsItExcl[] = _("THIS IS IT!");
+static const u8 sEasyChatWord_This[] = _("THIS");
+static const u8 sEasyChatWord_Every[] = _("EVERY");
+static const u8 sEasyChatWord_These[] = _("THESE");
+static const u8 sEasyChatWord_TheseWere[] = _("THESE WERE");
+static const u8 sEasyChatWord_Down[] = _("DOWN");
+static const u8 sEasyChatWord_That[] = _("THAT");
+static const u8 sEasyChatWord_ThoseAre[] = _("THOSE ARE");
+static const u8 sEasyChatWord_ThoseWere[] = _("THOSE WERE");
+static const u8 sEasyChatWord_ThatsItExcl[] = _("THAT'S IT!");
+static const u8 sEasyChatWord_Am[] = _("AM");
+static const u8 sEasyChatWord_ThatWas[] = _("THAT WAS");
+static const u8 sEasyChatWord_Front[] = _("FRONT");
+static const u8 sEasyChatWord_Up[] = _("UP");
+static const u8 sEasyChatWord_Choice[] = _("CHOICE");
+static const u8 sEasyChatWord_Far[] = _("FAR");
+static const u8 sEasyChatWord_Away[] = _("AWAY");
+static const u8 sEasyChatWord_Near[] = _("NEAR");
+static const u8 sEasyChatWord_Where[] = _("WHERE");
+static const u8 sEasyChatWord_When[] = _("WHEN");
+static const u8 sEasyChatWord_What[] = _("WHAT");
+static const u8 sEasyChatWord_Deep[] = _("DEEP");
+static const u8 sEasyChatWord_Shallow[] = _("SHALLOW");
+static const u8 sEasyChatWord_Why[] = _("WHY");
+static const u8 sEasyChatWord_Confused[] = _("CONFUSED");
+static const u8 sEasyChatWord_Opposite[] = _("OPPOSITE");
+static const u8 sEasyChatWord_Left[] = _("LEFT");
+static const u8 sEasyChatWord_Right[] = _("RIGHT");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Misc[] = {
+ {
+ .text = sEasyChatWord_Highs,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lows,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Um,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rear,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Things,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thing,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Below,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Above,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Back,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_High,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Here,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Inside,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Outside,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Beside,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThisIsItExcl,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_This,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Every,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_These,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TheseWere,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Down,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_That,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThoseAre,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThoseWere,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThatsItExcl,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Am,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThatWas,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Front,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Up,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Choice,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Far,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Away,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Near,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Where,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_When,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_What,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Deep,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Shallow,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Why,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Confused,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Opposite,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Left,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Right,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_move_1.h b/src/data/easy_chat/easy_chat_group_move_1.h
new file mode 100644
index 000000000..cb58fb2b7
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_move_1.h
@@ -0,0 +1,158 @@
+#include "constants/moves.h"
+
+static const u16 sEasyChatGroup_Move1[] = {
+ MOVE_ABSORB,
+ MOVE_AEROBLAST,
+ MOVE_AGILITY,
+ MOVE_AIR_CUTTER,
+ MOVE_ANCIENT_POWER,
+ MOVE_AROMATHERAPY,
+ MOVE_ASTONISH,
+ MOVE_AURORA_BEAM,
+ MOVE_BIDE,
+ MOVE_BIND,
+ MOVE_BITE,
+ MOVE_BRICK_BREAK,
+ MOVE_BUBBLE,
+ MOVE_CHARGE,
+ MOVE_CHARM,
+ MOVE_CLAMP,
+ MOVE_CONFUSE_RAY,
+ MOVE_CONSTRICT,
+ MOVE_COSMIC_POWER,
+ MOVE_COUNTER,
+ MOVE_CRABHAMMER,
+ MOVE_CROSS_CHOP,
+ MOVE_CRUNCH,
+ MOVE_CUT,
+ MOVE_DIG,
+ MOVE_DISABLE,
+ MOVE_DOUBLE_TEAM,
+ MOVE_DOUBLE_EDGE,
+ MOVE_DOUBLE_SLAP,
+ MOVE_EARTHQUAKE,
+ MOVE_ENCORE,
+ MOVE_ENDEAVOR,
+ MOVE_ENDURE,
+ MOVE_EXTRASENSORY,
+ MOVE_EXTREME_SPEED,
+ MOVE_FACADE,
+ MOVE_FAKE_TEARS,
+ MOVE_FISSURE,
+ MOVE_FLAIL,
+ MOVE_FLAME_WHEEL,
+ MOVE_FLAMETHROWER,
+ MOVE_FLATTER,
+ MOVE_FLY,
+ MOVE_FOCUS_ENERGY,
+ MOVE_FOCUS_PUNCH,
+ MOVE_FOLLOW_ME,
+ MOVE_GIGA_DRAIN,
+ MOVE_GRASS_WHISTLE,
+ MOVE_GROWTH,
+ MOVE_GRUDGE,
+ MOVE_GUST,
+ MOVE_HAIL,
+ MOVE_HARDEN,
+ MOVE_HAZE,
+ MOVE_HEADBUTT,
+ MOVE_HEAL_BELL,
+ MOVE_HYPNOSIS,
+ MOVE_ICE_BALL,
+ MOVE_ICY_WIND,
+ MOVE_IRON_TAIL,
+ MOVE_KARATE_CHOP,
+ MOVE_KINESIS,
+ MOVE_LEECH_LIFE,
+ MOVE_LICK,
+ MOVE_LOVELY_KISS,
+ MOVE_LOW_KICK,
+ MOVE_MEAN_LOOK,
+ MOVE_MEMENTO,
+ MOVE_METAL_SOUND,
+ MOVE_METEOR_MASH,
+ MOVE_MIND_READER,
+ MOVE_MIRROR_MOVE,
+ MOVE_MIST,
+ MOVE_MORNING_SUN,
+ MOVE_NATURE_POWER,
+ MOVE_NIGHTMARE,
+ MOVE_OCTAZOOKA,
+ MOVE_ODOR_SLEUTH,
+ MOVE_OUTRAGE,
+ MOVE_OVERHEAT,
+ MOVE_PAIN_SPLIT,
+ MOVE_POWDER_SNOW,
+ MOVE_PSYBEAM,
+ MOVE_PSYCH_UP,
+ MOVE_PSYCHIC,
+ MOVE_PSYCHO_BOOST,
+ MOVE_PSYWAVE,
+ MOVE_PURSUIT,
+ MOVE_RAGE,
+ MOVE_RAIN_DANCE,
+ MOVE_RAPID_SPIN,
+ MOVE_RAZOR_WIND,
+ MOVE_RECOVER,
+ MOVE_RETURN,
+ MOVE_REVERSAL,
+ MOVE_ROCK_SLIDE,
+ MOVE_ROCK_SMASH,
+ MOVE_ROCK_THROW,
+ MOVE_ROCK_TOMB,
+ MOVE_ROLLOUT,
+ MOVE_SACRED_FIRE,
+ MOVE_SAFEGUARD,
+ MOVE_SAND_TOMB,
+ MOVE_SAND_ATTACK,
+ MOVE_SANDSTORM,
+ MOVE_SCARY_FACE,
+ MOVE_SCREECH,
+ MOVE_SELF_DESTRUCT,
+ MOVE_SHADOW_BALL,
+ MOVE_SHADOW_PUNCH,
+ MOVE_SHARPEN,
+ MOVE_SHEER_COLD,
+ MOVE_SIGNAL_BEAM,
+ MOVE_SILVER_WIND,
+ MOVE_SING,
+ MOVE_SKETCH,
+ MOVE_SKILL_SWAP,
+ MOVE_SKY_ATTACK,
+ MOVE_SKY_UPPERCUT,
+ MOVE_SLASH,
+ MOVE_SMELLING_SALT,
+ MOVE_SMOG,
+ MOVE_SMOKESCREEN,
+ MOVE_SNORE,
+ MOVE_SOLAR_BEAM,
+ MOVE_SONIC_BOOM,
+ MOVE_SPARK,
+ MOVE_SPIDER_WEB,
+ MOVE_SPITE,
+ MOVE_SPORE,
+ MOVE_STRENGTH,
+ MOVE_STRING_SHOT,
+ MOVE_STUN_SPORE,
+ MOVE_SUBMISSION,
+ MOVE_SUPER_FANG,
+ MOVE_SWAGGER,
+ MOVE_SWEET_SCENT,
+ MOVE_SWIFT,
+ MOVE_SYNTHESIS,
+ MOVE_TAIL_WHIP,
+ MOVE_THRASH,
+ MOVE_THUNDER,
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_PUNCH,
+ MOVE_TICKLE,
+ MOVE_TORMENT,
+ MOVE_UPROAR,
+ MOVE_VITAL_THROW,
+ MOVE_WATER_SPOUT,
+ MOVE_WEATHER_BALL,
+ MOVE_WHIRLPOOL,
+ MOVE_WILL_O_WISP,
+ MOVE_WITHDRAW,
+ MOVE_YAWN,
+};
diff --git a/src/data/easy_chat/easy_chat_group_move_2.h b/src/data/easy_chat/easy_chat_group_move_2.h
new file mode 100644
index 000000000..c4358efda
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_move_2.h
@@ -0,0 +1,204 @@
+#include "constants/moves.h"
+
+static const u16 sEasyChatGroup_Move2[] = {
+ MOVE_ACID,
+ MOVE_ACID_ARMOR,
+ MOVE_AERIAL_ACE,
+ MOVE_AMNESIA,
+ MOVE_ARM_THRUST,
+ MOVE_ASSIST,
+ MOVE_ATTRACT,
+ MOVE_BARRAGE,
+ MOVE_BARRIER,
+ MOVE_BATON_PASS,
+ MOVE_BEAT_UP,
+ MOVE_BELLY_DRUM,
+ MOVE_BLAST_BURN,
+ MOVE_BLAZE_KICK,
+ MOVE_BLIZZARD,
+ MOVE_BLOCK,
+ MOVE_BODY_SLAM,
+ MOVE_BONE_CLUB,
+ MOVE_BONE_RUSH,
+ MOVE_BONEMERANG,
+ MOVE_BOUNCE,
+ MOVE_BUBBLE_BEAM,
+ MOVE_BULK_UP,
+ MOVE_BULLET_SEED,
+ MOVE_CALM_MIND,
+ MOVE_CAMOUFLAGE,
+ MOVE_COMET_PUNCH,
+ MOVE_CONFUSION,
+ MOVE_CONVERSION,
+ MOVE_CONVERSION_2,
+ MOVE_COTTON_SPORE,
+ MOVE_COVET,
+ MOVE_CRUSH_CLAW,
+ MOVE_CURSE,
+ MOVE_DEFENSE_CURL,
+ MOVE_DESTINY_BOND,
+ MOVE_DETECT,
+ MOVE_DIVE,
+ MOVE_DIZZY_PUNCH,
+ MOVE_DOOM_DESIRE,
+ MOVE_DOUBLE_KICK,
+ MOVE_DRAGON_CLAW,
+ MOVE_DRAGON_DANCE,
+ MOVE_DRAGON_RAGE,
+ MOVE_DRAGON_BREATH,
+ MOVE_DREAM_EATER,
+ MOVE_DRILL_PECK,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_EGG_BOMB,
+ MOVE_EMBER,
+ MOVE_ERUPTION,
+ MOVE_EXPLOSION,
+ MOVE_FAINT_ATTACK,
+ MOVE_FAKE_OUT,
+ MOVE_FALSE_SWIPE,
+ MOVE_FEATHER_DANCE,
+ MOVE_FIRE_BLAST,
+ MOVE_FIRE_PUNCH,
+ MOVE_FIRE_SPIN,
+ MOVE_FLASH,
+ MOVE_FORESIGHT,
+ MOVE_FRENZY_PLANT,
+ MOVE_FRUSTRATION,
+ MOVE_FURY_ATTACK,
+ MOVE_FURY_CUTTER,
+ MOVE_FURY_SWIPES,
+ MOVE_FUTURE_SIGHT,
+ MOVE_GLARE,
+ MOVE_GROWL,
+ MOVE_GUILLOTINE,
+ MOVE_HEAT_WAVE,
+ MOVE_HELPING_HAND,
+ MOVE_HI_JUMP_KICK,
+ MOVE_HIDDEN_POWER,
+ MOVE_HORN_ATTACK,
+ MOVE_HORN_DRILL,
+ MOVE_HOWL,
+ MOVE_HYDRO_CANNON,
+ MOVE_HYDRO_PUMP,
+ MOVE_HYPER_BEAM,
+ MOVE_HYPER_FANG,
+ MOVE_HYPER_VOICE,
+ MOVE_ICE_BEAM,
+ MOVE_ICE_PUNCH,
+ MOVE_ICICLE_SPEAR,
+ MOVE_IMPRISON,
+ MOVE_INGRAIN,
+ MOVE_IRON_DEFENSE,
+ MOVE_JUMP_KICK,
+ MOVE_KNOCK_OFF,
+ MOVE_LEAF_BLADE,
+ MOVE_LEECH_SEED,
+ MOVE_LEER,
+ MOVE_LIGHT_SCREEN,
+ MOVE_LOCK_ON,
+ MOVE_LUSTER_PURGE,
+ MOVE_MACH_PUNCH,
+ MOVE_MAGIC_COAT,
+ MOVE_MAGICAL_LEAF,
+ MOVE_MAGNITUDE,
+ MOVE_MEDITATE,
+ MOVE_MEGA_DRAIN,
+ MOVE_MEGA_KICK,
+ MOVE_MEGA_PUNCH,
+ MOVE_MEGAHORN,
+ MOVE_METAL_CLAW,
+ MOVE_METRONOME,
+ MOVE_MILK_DRINK,
+ MOVE_MIMIC,
+ MOVE_MINIMIZE,
+ MOVE_MIRROR_COAT,
+ MOVE_MIST_BALL,
+ MOVE_MOONLIGHT,
+ MOVE_MUD_SHOT,
+ MOVE_MUD_SPORT,
+ MOVE_MUD_SLAP,
+ MOVE_MUDDY_WATER,
+ MOVE_NEEDLE_ARM,
+ MOVE_NIGHT_SHADE,
+ MOVE_PAY_DAY,
+ MOVE_PECK,
+ MOVE_PERISH_SONG,
+ MOVE_PETAL_DANCE,
+ MOVE_PIN_MISSILE,
+ MOVE_POISON_FANG,
+ MOVE_POISON_GAS,
+ MOVE_POISON_STING,
+ MOVE_POISON_TAIL,
+ MOVE_POISON_POWDER,
+ MOVE_POUND,
+ MOVE_PRESENT,
+ MOVE_PROTECT,
+ MOVE_QUICK_ATTACK,
+ MOVE_RAZOR_LEAF,
+ MOVE_RECYCLE,
+ MOVE_REFLECT,
+ MOVE_REFRESH,
+ MOVE_REST,
+ MOVE_REVENGE,
+ MOVE_ROAR,
+ MOVE_ROCK_BLAST,
+ MOVE_ROLE_PLAY,
+ MOVE_ROLLING_KICK,
+ MOVE_SCRATCH,
+ MOVE_SECRET_POWER,
+ MOVE_SEISMIC_TOSS,
+ MOVE_SHOCK_WAVE,
+ MOVE_SKULL_BASH,
+ MOVE_SLACK_OFF,
+ MOVE_SLAM,
+ MOVE_SLEEP_POWDER,
+ MOVE_SLEEP_TALK,
+ MOVE_SLUDGE,
+ MOVE_SLUDGE_BOMB,
+ MOVE_SNATCH,
+ MOVE_SOFT_BOILED,
+ MOVE_SPIKE_CANNON,
+ MOVE_SPIKES,
+ MOVE_SPIT_UP,
+ MOVE_SPLASH,
+ MOVE_STEEL_WING,
+ MOVE_STOCKPILE,
+ MOVE_STOMP,
+ MOVE_STRUGGLE,
+ MOVE_SUBSTITUTE,
+ MOVE_SUNNY_DAY,
+ MOVE_SUPERPOWER,
+ MOVE_SUPERSONIC,
+ MOVE_SURF,
+ MOVE_SWALLOW,
+ MOVE_SWEET_KISS,
+ MOVE_SWORDS_DANCE,
+ MOVE_TACKLE,
+ MOVE_TAIL_GLOW,
+ MOVE_TAKE_DOWN,
+ MOVE_TAUNT,
+ MOVE_TEETER_DANCE,
+ MOVE_TELEPORT,
+ MOVE_THIEF,
+ MOVE_THUNDER_WAVE,
+ MOVE_THUNDER_SHOCK,
+ MOVE_TOXIC,
+ MOVE_TRANSFORM,
+ MOVE_TRI_ATTACK,
+ MOVE_TRICK,
+ MOVE_TRIPLE_KICK,
+ MOVE_TWINEEDLE,
+ MOVE_TWISTER,
+ MOVE_VICE_GRIP,
+ MOVE_VINE_WHIP,
+ MOVE_VOLT_TACKLE,
+ MOVE_WATER_GUN,
+ MOVE_WATER_PULSE,
+ MOVE_WATER_SPORT,
+ MOVE_WATERFALL,
+ MOVE_WHIRLWIND,
+ MOVE_WING_ATTACK,
+ MOVE_WISH,
+ MOVE_WRAP,
+ MOVE_ZAP_CANNON,
+};
diff --git a/src/data/easy_chat/easy_chat_group_people.h b/src/data/easy_chat/easy_chat_group_people.h
new file mode 100644
index 000000000..3ae1de4fe
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_people.h
@@ -0,0 +1,454 @@
+
+static const u8 sEasyChatWord_Opponent[] = _("OPPONENT");
+static const u8 sEasyChatWord_I[] = _("I");
+static const u8 sEasyChatWord_You[] = _("YOU");
+static const u8 sEasyChatWord_Yours[] = _("YOURS");
+static const u8 sEasyChatWord_Son[] = _("SON");
+static const u8 sEasyChatWord_Your[] = _("YOUR");
+static const u8 sEasyChatWord_Youre[] = _("YOU'RE");
+static const u8 sEasyChatWord_Youve[] = _("YOU'VE");
+static const u8 sEasyChatWord_Mother[] = _("MOTHER");
+static const u8 sEasyChatWord_Grandfather[] = _("GRANDFATHER");
+static const u8 sEasyChatWord_Uncle[] = _("UNCLE");
+static const u8 sEasyChatWord_Father[] = _("FATHER");
+static const u8 sEasyChatWord_Boy[] = _("BOY");
+static const u8 sEasyChatWord_Adult[] = _("ADULT");
+static const u8 sEasyChatWord_Brother[] = _("BROTHER");
+static const u8 sEasyChatWord_Sister[] = _("SISTER");
+static const u8 sEasyChatWord_Grandmother[] = _("GRANDMOTHER");
+static const u8 sEasyChatWord_Aunt[] = _("AUNT");
+static const u8 sEasyChatWord_Parent[] = _("PARENT");
+static const u8 sEasyChatWord_Man[] = _("MAN");
+static const u8 sEasyChatWord_Me[] = _("ME");
+static const u8 sEasyChatWord_Girl[] = _("GIRL");
+static const u8 sEasyChatWord_Babe[] = _("BABE");
+static const u8 sEasyChatWord_Family[] = _("FAMILY");
+static const u8 sEasyChatWord_Her[] = _("HER");
+static const u8 sEasyChatWord_Him[] = _("HIM");
+static const u8 sEasyChatWord_He[] = _("HE");
+static const u8 sEasyChatWord_Place[] = _("PLACE");
+static const u8 sEasyChatWord_Daughter[] = _("DAUGHTER");
+static const u8 sEasyChatWord_His[] = _("HIS");
+static const u8 sEasyChatWord_Hes[] = _("HE'S");
+static const u8 sEasyChatWord_Arent[] = _("AREN'T");
+static const u8 sEasyChatWord_Siblings[] = _("SIBLINGS");
+static const u8 sEasyChatWord_Kid[] = _("KID");
+static const u8 sEasyChatWord_Children[] = _("CHILDREN");
+static const u8 sEasyChatWord_Mr[] = _("MR.");
+static const u8 sEasyChatWord_Mrs[] = _("MRS.");
+static const u8 sEasyChatWord_Myself[] = _("MYSELF");
+static const u8 sEasyChatWord_IWas[] = _("I WAS");
+static const u8 sEasyChatWord_ToMe[] = _("TO ME");
+static const u8 sEasyChatWord_My[] = _("MY");
+static const u8 sEasyChatWord_IAm[] = _("I AM");
+static const u8 sEasyChatWord_Ive[] = _("I'VE");
+static const u8 sEasyChatWord_Who[] = _("WHO");
+static const u8 sEasyChatWord_Someone[] = _("SOMEONE");
+static const u8 sEasyChatWord_WhoWas[] = _("WHO WAS");
+static const u8 sEasyChatWord_ToWhom[] = _("TO WHOM");
+static const u8 sEasyChatWord_Whose[] = _("WHOSE");
+static const u8 sEasyChatWord_WhoIs[] = _("WHO IS");
+static const u8 sEasyChatWord_Its[] = _("IT'S");
+static const u8 sEasyChatWord_Lady[] = _("LADY");
+static const u8 sEasyChatWord_Friend[] = _("FRIEND");
+static const u8 sEasyChatWord_Ally[] = _("ALLY");
+static const u8 sEasyChatWord_Person[] = _("PERSON");
+static const u8 sEasyChatWord_Dude[] = _("DUDE");
+static const u8 sEasyChatWord_They[] = _("THEY");
+static const u8 sEasyChatWord_TheyWere[] = _("THEY WERE");
+static const u8 sEasyChatWord_ToThem[] = _("TO THEM");
+static const u8 sEasyChatWord_Their[] = _("THEIR");
+static const u8 sEasyChatWord_Theyre[] = _("THEY'RE");
+static const u8 sEasyChatWord_Theyve[] = _("THEY'VE");
+static const u8 sEasyChatWord_We[] = _("WE");
+static const u8 sEasyChatWord_Been[] = _("BEEN");
+static const u8 sEasyChatWord_ToUs[] = _("TO US");
+static const u8 sEasyChatWord_Our[] = _("OUR");
+static const u8 sEasyChatWord_WeAre[] = _("WE'RE");
+static const u8 sEasyChatWord_Rival[] = _("RIVAL");
+static const u8 sEasyChatWord_Weve[] = _("WE'VE");
+static const u8 sEasyChatWord_Woman[] = _("WOMAN");
+static const u8 sEasyChatWord_She[] = _("SHE");
+static const u8 sEasyChatWord_SheWas[] = _("SHE WAS");
+static const u8 sEasyChatWord_ToHer[] = _("TO HER");
+static const u8 sEasyChatWord_Hers[] = _("HERS");
+static const u8 sEasyChatWord_SheIs[] = _("SHE IS");
+static const u8 sEasyChatWord_Some[] = _("SOME");
+
+static const struct EasyChatWordInfo sEasyChatGroup_People[] = {
+ {
+ .text = sEasyChatWord_Opponent,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_I,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_You,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yours,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Son,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Your,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Youre,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Youve,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mother,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Grandfather,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Uncle,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Father,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Boy,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Adult,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Brother,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sister,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Grandmother,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Aunt,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Parent,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Man,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Me,
+ .alphabeticalOrder = 72,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Girl,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Babe,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Family,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Her,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Him,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_He,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Place,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Daughter,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_His,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hes,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Arent,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Siblings,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Kid,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Children,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mr,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mrs,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Myself,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IWas,
+ .alphabeticalOrder = 64,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ToMe,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_My,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_IAm,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ive,
+ .alphabeticalOrder = 66,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Who,
+ .alphabeticalOrder = 69,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Someone,
+ .alphabeticalOrder = 73,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WhoWas,
+ .alphabeticalOrder = 70,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ToWhom,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Whose,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WhoIs,
+ .alphabeticalOrder = 74,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Its,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lady,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Friend,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ally,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Person,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dude,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_They,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TheyWere,
+ .alphabeticalOrder = 71,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ToThem,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Their,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Theyre,
+ .alphabeticalOrder = 63,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Theyve,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_We,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Been,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ToUs,
+ .alphabeticalOrder = 65,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Our,
+ .alphabeticalOrder = 67,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WeAre,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rival,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Weve,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Woman,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_She,
+ .alphabeticalOrder = 68,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SheWas,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ToHer,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hers,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SheIs,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Some,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_pokemon.h b/src/data/easy_chat/easy_chat_group_pokemon.h
new file mode 100644
index 000000000..15a182889
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_pokemon.h
@@ -0,0 +1,206 @@
+#include "constants/species.h"
+
+static const u16 sEasyChatGroup_Pokemon[] = {
+ SPECIES_ABRA,
+ SPECIES_ABSOL,
+ SPECIES_AGGRON,
+ SPECIES_ALAKAZAM,
+ SPECIES_ALTARIA,
+ SPECIES_ANORITH,
+ SPECIES_ARMALDO,
+ SPECIES_ARON,
+ SPECIES_AZUMARILL,
+ SPECIES_AZURILL,
+ SPECIES_BAGON,
+ SPECIES_BALTOY,
+ SPECIES_BANETTE,
+ SPECIES_BARBOACH,
+ SPECIES_BEAUTIFLY,
+ SPECIES_BELDUM,
+ SPECIES_BELLOSSOM,
+ SPECIES_BLAZIKEN,
+ SPECIES_BRELOOM,
+ SPECIES_CACNEA,
+ SPECIES_CACTURNE,
+ SPECIES_CAMERUPT,
+ SPECIES_CARVANHA,
+ SPECIES_CASCOON,
+ SPECIES_CASTFORM,
+ SPECIES_CHIMECHO,
+ SPECIES_CHINCHOU,
+ SPECIES_CLAMPERL,
+ SPECIES_CLAYDOL,
+ SPECIES_COMBUSKEN,
+ SPECIES_CORPHISH,
+ SPECIES_CORSOLA,
+ SPECIES_CRADILY,
+ SPECIES_CRAWDAUNT,
+ SPECIES_CROBAT,
+ SPECIES_DELCATTY,
+ SPECIES_DEOXYS,
+ SPECIES_DODRIO,
+ SPECIES_DODUO,
+ SPECIES_DONPHAN,
+ SPECIES_DUSCLOPS,
+ SPECIES_DUSKULL,
+ SPECIES_DUSTOX,
+ SPECIES_ELECTRIKE,
+ SPECIES_ELECTRODE,
+ SPECIES_EXPLOUD,
+ SPECIES_FEEBAS,
+ SPECIES_FLYGON,
+ SPECIES_GARDEVOIR,
+ SPECIES_GEODUDE,
+ SPECIES_GIRAFARIG,
+ SPECIES_GLALIE,
+ SPECIES_GLOOM,
+ SPECIES_GOLBAT,
+ SPECIES_GOLDEEN,
+ SPECIES_GOLDUCK,
+ SPECIES_GOLEM,
+ SPECIES_GOREBYSS,
+ SPECIES_GRAVELER,
+ SPECIES_GRIMER,
+ SPECIES_GROUDON,
+ SPECIES_GROVYLE,
+ SPECIES_GRUMPIG,
+ SPECIES_GULPIN,
+ SPECIES_GYARADOS,
+ SPECIES_HARIYAMA,
+ SPECIES_HERACROSS,
+ SPECIES_HORSEA,
+ SPECIES_HUNTAIL,
+ SPECIES_IGGLYBUFF,
+ SPECIES_ILLUMISE,
+ SPECIES_JIGGLYPUFF,
+ SPECIES_JIRACHI,
+ SPECIES_KADABRA,
+ SPECIES_KECLEON,
+ SPECIES_KINGDRA,
+ SPECIES_KIRLIA,
+ SPECIES_KOFFING,
+ SPECIES_KYOGRE,
+ SPECIES_LAIRON,
+ SPECIES_LANTURN,
+ SPECIES_LATIAS,
+ SPECIES_LATIOS,
+ SPECIES_LILEEP,
+ SPECIES_LINOONE,
+ SPECIES_LOMBRE,
+ SPECIES_LOTAD,
+ SPECIES_LOUDRED,
+ SPECIES_LUDICOLO,
+ SPECIES_LUNATONE,
+ SPECIES_LUVDISC,
+ SPECIES_MACHAMP,
+ SPECIES_MACHOKE,
+ SPECIES_MACHOP,
+ SPECIES_MAGCARGO,
+ SPECIES_MAGIKARP,
+ SPECIES_MAGNEMITE,
+ SPECIES_MAGNETON,
+ SPECIES_MAKUHITA,
+ SPECIES_MANECTRIC,
+ SPECIES_MARILL,
+ SPECIES_MARSHTOMP,
+ SPECIES_MASQUERAIN,
+ SPECIES_MAWILE,
+ SPECIES_MEDICHAM,
+ SPECIES_MEDITITE,
+ SPECIES_METAGROSS,
+ SPECIES_METANG,
+ SPECIES_MIGHTYENA,
+ SPECIES_MILOTIC,
+ SPECIES_MINUN,
+ SPECIES_MUDKIP,
+ SPECIES_MUK,
+ SPECIES_NATU,
+ SPECIES_NINCADA,
+ SPECIES_NINETALES,
+ SPECIES_NINJASK,
+ SPECIES_NOSEPASS,
+ SPECIES_NUMEL,
+ SPECIES_NUZLEAF,
+ SPECIES_ODDISH,
+ SPECIES_PELIPPER,
+ SPECIES_PHANPY,
+ SPECIES_PICHU,
+ SPECIES_PIKACHU,
+ SPECIES_PINSIR,
+ SPECIES_PLUSLE,
+ SPECIES_POOCHYENA,
+ SPECIES_PSYDUCK,
+ SPECIES_RAICHU,
+ SPECIES_RALTS,
+ SPECIES_RAYQUAZA,
+ SPECIES_REGICE,
+ SPECIES_REGIROCK,
+ SPECIES_REGISTEEL,
+ SPECIES_RELICANTH,
+ SPECIES_RHYDON,
+ SPECIES_RHYHORN,
+ SPECIES_ROSELIA,
+ SPECIES_SABLEYE,
+ SPECIES_SALAMENCE,
+ SPECIES_SANDSHREW,
+ SPECIES_SANDSLASH,
+ SPECIES_SCEPTILE,
+ SPECIES_SEADRA,
+ SPECIES_SEAKING,
+ SPECIES_SEALEO,
+ SPECIES_SEEDOT,
+ SPECIES_SEVIPER,
+ SPECIES_SHARPEDO,
+ SPECIES_SHEDINJA,
+ SPECIES_SHELGON,
+ SPECIES_SHIFTRY,
+ SPECIES_SHROOMISH,
+ SPECIES_SHUPPET,
+ SPECIES_SILCOON,
+ SPECIES_SKARMORY,
+ SPECIES_SKITTY,
+ SPECIES_SLAKING,
+ SPECIES_SLAKOTH,
+ SPECIES_SLUGMA,
+ SPECIES_SNORUNT,
+ SPECIES_SOLROCK,
+ SPECIES_SPHEAL,
+ SPECIES_SPINDA,
+ SPECIES_SPOINK,
+ SPECIES_STARMIE,
+ SPECIES_STARYU,
+ SPECIES_SURSKIT,
+ SPECIES_SWABLU,
+ SPECIES_SWALOT,
+ SPECIES_SWAMPERT,
+ SPECIES_SWELLOW,
+ SPECIES_TAILLOW,
+ SPECIES_TENTACOOL,
+ SPECIES_TENTACRUEL,
+ SPECIES_TORCHIC,
+ SPECIES_TORKOAL,
+ SPECIES_TRAPINCH,
+ SPECIES_TREECKO,
+ SPECIES_TROPIUS,
+ SPECIES_VIBRAVA,
+ SPECIES_VIGOROTH,
+ SPECIES_VILEPLUME,
+ SPECIES_VOLBEAT,
+ SPECIES_VOLTORB,
+ SPECIES_VULPIX,
+ SPECIES_WAILMER,
+ SPECIES_WAILORD,
+ SPECIES_WALREIN,
+ SPECIES_WEEZING,
+ SPECIES_WHISCASH,
+ SPECIES_WHISMUR,
+ SPECIES_WIGGLYTUFF,
+ SPECIES_WINGULL,
+ SPECIES_WOBBUFFET,
+ SPECIES_WURMPLE,
+ SPECIES_WYNAUT,
+ SPECIES_XATU,
+ SPECIES_ZANGOOSE,
+ SPECIES_ZIGZAGOON,
+ SPECIES_ZUBAT,
+};
diff --git a/src/data/easy_chat/easy_chat_group_pokemon2.h b/src/data/easy_chat/easy_chat_group_pokemon2.h
new file mode 100644
index 000000000..fbd3c0564
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_pokemon2.h
@@ -0,0 +1,255 @@
+#include "constants/species.h"
+
+static const u16 sEasyChatGroup_Pokemon2[] = {
+ SPECIES_ABRA,
+ SPECIES_AERODACTYL,
+ SPECIES_AIPOM,
+ SPECIES_ALAKAZAM,
+ SPECIES_AMPHAROS,
+ SPECIES_ARBOK,
+ SPECIES_ARCANINE,
+ SPECIES_ARIADOS,
+ SPECIES_ARTICUNO,
+ SPECIES_AZUMARILL,
+ SPECIES_BAYLEEF,
+ SPECIES_BEEDRILL,
+ SPECIES_BELLOSSOM,
+ SPECIES_BELLSPROUT,
+ SPECIES_BLASTOISE,
+ SPECIES_BLISSEY,
+ SPECIES_BULBASAUR,
+ SPECIES_BUTTERFREE,
+ SPECIES_CATERPIE,
+ SPECIES_CELEBI,
+ SPECIES_CHANSEY,
+ SPECIES_CHARIZARD,
+ SPECIES_CHARMANDER,
+ SPECIES_CHARMELEON,
+ SPECIES_CHIKORITA,
+ SPECIES_CHINCHOU,
+ SPECIES_CLEFABLE,
+ SPECIES_CLEFAIRY,
+ SPECIES_CLEFFA,
+ SPECIES_CLOYSTER,
+ SPECIES_CORSOLA,
+ SPECIES_CROBAT,
+ SPECIES_CROCONAW,
+ SPECIES_CUBONE,
+ SPECIES_CYNDAQUIL,
+ SPECIES_DELIBIRD,
+ SPECIES_DEWGONG,
+ SPECIES_DIGLETT,
+ SPECIES_DITTO,
+ SPECIES_DODRIO,
+ SPECIES_DODUO,
+ SPECIES_DONPHAN,
+ SPECIES_DRAGONAIR,
+ SPECIES_DRAGONITE,
+ SPECIES_DRATINI,
+ SPECIES_DROWZEE,
+ SPECIES_DUGTRIO,
+ SPECIES_DUNSPARCE,
+ SPECIES_EEVEE,
+ SPECIES_EKANS,
+ SPECIES_ELECTABUZZ,
+ SPECIES_ELECTRODE,
+ SPECIES_ELEKID,
+ SPECIES_ENTEI,
+ SPECIES_ESPEON,
+ SPECIES_EXEGGCUTE,
+ SPECIES_EXEGGUTOR,
+ SPECIES_FARFETCHD,
+ SPECIES_FEAROW,
+ SPECIES_FERALIGATR,
+ SPECIES_FLAAFFY,
+ SPECIES_FLAREON,
+ SPECIES_FORRETRESS,
+ SPECIES_FURRET,
+ SPECIES_GASTLY,
+ SPECIES_GENGAR,
+ SPECIES_GEODUDE,
+ SPECIES_GIRAFARIG,
+ SPECIES_GLIGAR,
+ SPECIES_GLOOM,
+ SPECIES_GOLBAT,
+ SPECIES_GOLDEEN,
+ SPECIES_GOLDUCK,
+ SPECIES_GOLEM,
+ SPECIES_GRANBULL,
+ SPECIES_GRAVELER,
+ SPECIES_GRIMER,
+ SPECIES_GROWLITHE,
+ SPECIES_GYARADOS,
+ SPECIES_HAUNTER,
+ SPECIES_HERACROSS,
+ SPECIES_HITMONCHAN,
+ SPECIES_HITMONLEE,
+ SPECIES_HITMONTOP,
+ SPECIES_HO_OH,
+ SPECIES_HOOTHOOT,
+ SPECIES_HOPPIP,
+ SPECIES_HORSEA,
+ SPECIES_HOUNDOOM,
+ SPECIES_HOUNDOUR,
+ SPECIES_HYPNO,
+ SPECIES_IGGLYBUFF,
+ SPECIES_IVYSAUR,
+ SPECIES_JIGGLYPUFF,
+ SPECIES_JOLTEON,
+ SPECIES_JUMPLUFF,
+ SPECIES_JYNX,
+ SPECIES_KABUTO,
+ SPECIES_KABUTOPS,
+ SPECIES_KADABRA,
+ SPECIES_KAKUNA,
+ SPECIES_KANGASKHAN,
+ SPECIES_KINGDRA,
+ SPECIES_KINGLER,
+ SPECIES_KOFFING,
+ SPECIES_KRABBY,
+ SPECIES_LANTURN,
+ SPECIES_LAPRAS,
+ SPECIES_LARVITAR,
+ SPECIES_LEDIAN,
+ SPECIES_LEDYBA,
+ SPECIES_LICKITUNG,
+ SPECIES_LUGIA,
+ SPECIES_MACHAMP,
+ SPECIES_MACHOKE,
+ SPECIES_MACHOP,
+ SPECIES_MAGBY,
+ SPECIES_MAGCARGO,
+ SPECIES_MAGIKARP,
+ SPECIES_MAGMAR,
+ SPECIES_MAGNEMITE,
+ SPECIES_MAGNETON,
+ SPECIES_MANKEY,
+ SPECIES_MANTINE,
+ SPECIES_MAREEP,
+ SPECIES_MARILL,
+ SPECIES_MAROWAK,
+ SPECIES_MEGANIUM,
+ SPECIES_MEOWTH,
+ SPECIES_METAPOD,
+ SPECIES_MEW,
+ SPECIES_MEWTWO,
+ SPECIES_MILTANK,
+ SPECIES_MISDREAVUS,
+ SPECIES_MOLTRES,
+ SPECIES_MR_MIME,
+ SPECIES_MUK,
+ SPECIES_MURKROW,
+ SPECIES_NATU,
+ SPECIES_NIDOKING,
+ SPECIES_NIDOQUEEN,
+ SPECIES_NIDORAN_F,
+ SPECIES_NIDORAN_M,
+ SPECIES_NIDORINA,
+ SPECIES_NIDORINO,
+ SPECIES_NINETALES,
+ SPECIES_NOCTOWL,
+ SPECIES_OCTILLERY,
+ SPECIES_ODDISH,
+ SPECIES_OMANYTE,
+ SPECIES_OMASTAR,
+ SPECIES_ONIX,
+ SPECIES_PARAS,
+ SPECIES_PARASECT,
+ SPECIES_PERSIAN,
+ SPECIES_PHANPY,
+ SPECIES_PICHU,
+ SPECIES_PIDGEOT,
+ SPECIES_PIDGEOTTO,
+ SPECIES_PIDGEY,
+ SPECIES_PIKACHU,
+ SPECIES_PILOSWINE,
+ SPECIES_PINECO,
+ SPECIES_PINSIR,
+ SPECIES_POLITOED,
+ SPECIES_POLIWAG,
+ SPECIES_POLIWHIRL,
+ SPECIES_POLIWRATH,
+ SPECIES_PONYTA,
+ SPECIES_PORYGON,
+ SPECIES_PORYGON2,
+ SPECIES_PRIMEAPE,
+ SPECIES_PSYDUCK,
+ SPECIES_PUPITAR,
+ SPECIES_QUAGSIRE,
+ SPECIES_QUILAVA,
+ SPECIES_QWILFISH,
+ SPECIES_RAICHU,
+ SPECIES_RAIKOU,
+ SPECIES_RAPIDASH,
+ SPECIES_RATICATE,
+ SPECIES_RATTATA,
+ SPECIES_REMORAID,
+ SPECIES_RHYDON,
+ SPECIES_RHYHORN,
+ SPECIES_SANDSHREW,
+ SPECIES_SANDSLASH,
+ SPECIES_SCIZOR,
+ SPECIES_SCYTHER,
+ SPECIES_SEADRA,
+ SPECIES_SEAKING,
+ SPECIES_SEEL,
+ SPECIES_SENTRET,
+ SPECIES_SHELLDER,
+ SPECIES_SHUCKLE,
+ SPECIES_SKARMORY,
+ SPECIES_SKIPLOOM,
+ SPECIES_SLOWBRO,
+ SPECIES_SLOWKING,
+ SPECIES_SLOWPOKE,
+ SPECIES_SLUGMA,
+ SPECIES_SMEARGLE,
+ SPECIES_SMOOCHUM,
+ SPECIES_SNEASEL,
+ SPECIES_SNORLAX,
+ SPECIES_SNUBBULL,
+ SPECIES_SPEAROW,
+ SPECIES_SPINARAK,
+ SPECIES_SQUIRTLE,
+ SPECIES_STANTLER,
+ SPECIES_STARMIE,
+ SPECIES_STARYU,
+ SPECIES_STEELIX,
+ SPECIES_SUDOWOODO,
+ SPECIES_SUICUNE,
+ SPECIES_SUNFLORA,
+ SPECIES_SUNKERN,
+ SPECIES_SWINUB,
+ SPECIES_TANGELA,
+ SPECIES_TAUROS,
+ SPECIES_TEDDIURSA,
+ SPECIES_TENTACOOL,
+ SPECIES_TENTACRUEL,
+ SPECIES_TOGEPI,
+ SPECIES_TOGETIC,
+ SPECIES_TOTODILE,
+ SPECIES_TYPHLOSION,
+ SPECIES_TYRANITAR,
+ SPECIES_TYROGUE,
+ SPECIES_UMBREON,
+ SPECIES_UNOWN,
+ SPECIES_URSARING,
+ SPECIES_VAPOREON,
+ SPECIES_VENOMOTH,
+ SPECIES_VENONAT,
+ SPECIES_VENUSAUR,
+ SPECIES_VICTREEBEL,
+ SPECIES_VILEPLUME,
+ SPECIES_VOLTORB,
+ SPECIES_VULPIX,
+ SPECIES_WARTORTLE,
+ SPECIES_WEEDLE,
+ SPECIES_WEEPINBELL,
+ SPECIES_WEEZING,
+ SPECIES_WIGGLYTUFF,
+ SPECIES_WOBBUFFET,
+ SPECIES_WOOPER,
+ SPECIES_XATU,
+ SPECIES_YANMA,
+ SPECIES_ZAPDOS,
+ SPECIES_ZUBAT,
+};
diff --git a/src/data/easy_chat/easy_chat_group_speech.h b/src/data/easy_chat/easy_chat_group_speech.h
new file mode 100644
index 000000000..f76c7e06a
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_speech.h
@@ -0,0 +1,364 @@
+
+static const u8 sEasyChatWord_Listen[] = _("LISTEN");
+static const u8 sEasyChatWord_NotVery[] = _("NOT VERY");
+static const u8 sEasyChatWord_Mean[] = _("MEAN");
+static const u8 sEasyChatWord_Lie[] = _("LIE");
+static const u8 sEasyChatWord_Lay[] = _("LAY");
+static const u8 sEasyChatWord_Recommend[] = _("RECOMMEND");
+static const u8 sEasyChatWord_Nitwit[] = _("NITWIT");
+static const u8 sEasyChatWord_Quite[] = _("QUITE");
+static const u8 sEasyChatWord_From[] = _("FROM");
+static const u8 sEasyChatWord_Feeling[] = _("FEELING");
+static const u8 sEasyChatWord_But[] = _("BUT");
+static const u8 sEasyChatWord_However[] = _("HOWEVER");
+static const u8 sEasyChatWord_Case[] = _("CASE");
+static const u8 sEasyChatWord_The[] = _("THE");
+static const u8 sEasyChatWord_Miss[] = _("MISS");
+static const u8 sEasyChatWord_How[] = _("HOW");
+static const u8 sEasyChatWord_Hit[] = _("HIT");
+static const u8 sEasyChatWord_Enough[] = _("ENOUGH");
+static const u8 sEasyChatWord_ALot[] = _("A LOT");
+static const u8 sEasyChatWord_ALittle[] = _("A LITTLE");
+static const u8 sEasyChatWord_Absolutely[] = _("ABSOLUTELY");
+static const u8 sEasyChatWord_And[] = _("AND");
+static const u8 sEasyChatWord_Only[] = _("ONLY");
+static const u8 sEasyChatWord_Around[] = _("AROUND");
+static const u8 sEasyChatWord_Probably[] = _("PROBABLY");
+static const u8 sEasyChatWord_If[] = _("IF");
+static const u8 sEasyChatWord_Very[] = _("VERY");
+static const u8 sEasyChatWord_ATinyBit[] = _("A TINY BIT");
+static const u8 sEasyChatWord_Wild[] = _("WILD");
+static const u8 sEasyChatWord_Thats[] = _("THAT'S");
+static const u8 sEasyChatWord_Just[] = _("JUST");
+static const u8 sEasyChatWord_EvenSo[] = _("EVEN SO,");
+static const u8 sEasyChatWord_MustBe[] = _("MUST BE");
+static const u8 sEasyChatWord_Naturally[] = _("NATURALLY");
+static const u8 sEasyChatWord_ForNow[] = _("FOR NOW,");
+static const u8 sEasyChatWord_Understood[] = _("UNDERSTOOD");
+static const u8 sEasyChatWord_Joking[] = _("JOKING");
+static const u8 sEasyChatWord_Ready[] = _("READY");
+static const u8 sEasyChatWord_Something[] = _("SOMETHING");
+static const u8 sEasyChatWord_Somehow[] = _("SOMEHOW");
+static const u8 sEasyChatWord_Although[] = _("ALTHOUGH");
+static const u8 sEasyChatWord_Also[] = _("ALSO");
+static const u8 sEasyChatWord_Perfect[] = _("PERFECT");
+static const u8 sEasyChatWord_AsMuchAs[] = _("AS MUCH AS");
+static const u8 sEasyChatWord_Really[] = _("REALLY");
+static const u8 sEasyChatWord_Truly[] = _("TRULY");
+static const u8 sEasyChatWord_Seriously[] = _("SERIOUSLY");
+static const u8 sEasyChatWord_Totally[] = _("TOTALLY");
+static const u8 sEasyChatWord_Until[] = _("UNTIL");
+static const u8 sEasyChatWord_AsIf[] = _("AS IF");
+static const u8 sEasyChatWord_Mood[] = _("MOOD");
+static const u8 sEasyChatWord_Rather[] = _("RATHER");
+static const u8 sEasyChatWord_Awfully[] = _("AWFULLY");
+static const u8 sEasyChatWord_Mode[] = _("MODE");
+static const u8 sEasyChatWord_More[] = _("MORE");
+static const u8 sEasyChatWord_TooLate[] = _("TOO LATE");
+static const u8 sEasyChatWord_Finally[] = _("FINALLY");
+static const u8 sEasyChatWord_Any[] = _("ANY");
+static const u8 sEasyChatWord_Instead[] = _("INSTEAD");
+static const u8 sEasyChatWord_Fantastic[] = _("FANTASTIC");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Speech[] = {
+ {
+ .text = sEasyChatWord_Listen,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_NotVery,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mean,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lie,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lay,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Recommend,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nitwit,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Quite,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_From,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Feeling,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_But,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_However,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Case,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_The,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Miss,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_How,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hit,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Enough,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ALot,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ALittle,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Absolutely,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_And,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Only,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Around,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Probably,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_If,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Very,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ATinyBit,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wild,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thats,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Just,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_EvenSo,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_MustBe,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Naturally,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ForNow,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Understood,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Joking,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ready,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Something,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Somehow,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Although,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Also,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Perfect,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_AsMuchAs,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Really,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Truly,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Seriously,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Totally,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Until,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_AsIf,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mood,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rather,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Awfully,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mode,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_More,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_TooLate,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Finally,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Any,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Instead,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fantastic,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_status.h b/src/data/easy_chat/easy_chat_group_status.h
new file mode 100644
index 000000000..e9317dfd4
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_status.h
@@ -0,0 +1,658 @@
+
+static const u8 sEasyChatWord_Dark[] = _("DARK");
+static const u8 sEasyChatWord_Stench[] = _("STENCH");
+static const u8 sEasyChatWord_ThickFat[] = _("THICK FAT");
+static const u8 sEasyChatWord_RainDish[] = _("RAIN DISH");
+static const u8 sEasyChatWord_Drizzle[] = _("DRIZZLE");
+static const u8 sEasyChatWord_ArenaTrap[] = _("ARENA TRAP");
+static const u8 sEasyChatWord_Intimidate[] = _("INTIMIDATE");
+static const u8 sEasyChatWord_RockHead[] = _("ROCK HEAD");
+static const u8 sEasyChatWord_Color[] = _("COLOR");
+static const u8 sEasyChatWord_AltColor[] = _("ALT. COLOR");
+static const u8 sEasyChatWord_Rock[] = _("ROCK");
+static const u8 sEasyChatWord_Beautiful[] = _("BEAUTIFUL");
+static const u8 sEasyChatWord_Beauty[] = _("BEAUTY");
+static const u8 sEasyChatWord_AirLock[] = _("AIR LOCK");
+static const u8 sEasyChatWord_Psychic[] = _("PSYCHIC");
+static const u8 sEasyChatWord_HyperCutter[] = _("HYPER CUTTER");
+static const u8 sEasyChatWord_Fighting[] = _("FIGHTING");
+static const u8 sEasyChatWord_ShadowTag[] = _("SHADOW TAG");
+static const u8 sEasyChatWord_Smart[] = _("SMART");
+static const u8 sEasyChatWord_Smartness[] = _("SMARTNESS");
+static const u8 sEasyChatWord_SpeedBoost[] = _("SPEED BOOST");
+static const u8 sEasyChatWord_Cool[] = _("COOL");
+static const u8 sEasyChatWord_Coolness[] = _("COOLNESS");
+static const u8 sEasyChatWord_BattleArmor[] = _("BATTLE ARMOR");
+static const u8 sEasyChatWord_Cute[] = _("CUTE");
+static const u8 sEasyChatWord_Cuteness[] = _("CUTENESS");
+static const u8 sEasyChatWord_Sturdy[] = _("STURDY");
+static const u8 sEasyChatWord_SuctionCups[] = _("SUCTION CUPS");
+static const u8 sEasyChatWord_Grass[] = _("GRASS");
+static const u8 sEasyChatWord_ClearBody[] = _("CLEAR BODY");
+static const u8 sEasyChatWord_Torrent[] = _("TORRENT");
+static const u8 sEasyChatWord_Ghost[] = _("GHOST");
+static const u8 sEasyChatWord_Ice[] = _("ICE");
+static const u8 sEasyChatWord_Guts[] = _("GUTS");
+static const u8 sEasyChatWord_RoughSkin[] = _("ROUGH SKIN");
+static const u8 sEasyChatWord_ShellArmor[] = _("SHELL ARMOR");
+static const u8 sEasyChatWord_NaturalCure[] = _("NATURAL CURE");
+static const u8 sEasyChatWord_Damp[] = _("DAMP");
+static const u8 sEasyChatWord_Ground[] = _("GROUND");
+static const u8 sEasyChatWord_Limber[] = _("LIMBER");
+static const u8 sEasyChatWord_MagnetPull[] = _("MAGNET PULL");
+static const u8 sEasyChatWord_WhiteSmoke[] = _("WHITE SMOKE");
+static const u8 sEasyChatWord_Synchronize[] = _("SYNCHRONIZE");
+static const u8 sEasyChatWord_Overgrow[] = _("OVERGROW");
+static const u8 sEasyChatWord_SwiftSwim[] = _("SWIFT SWIM");
+static const u8 sEasyChatWord_SandStream[] = _("SAND STREAM");
+static const u8 sEasyChatWord_SandVeil[] = _("SAND VEIL");
+static const u8 sEasyChatWord_KeenEye[] = _("KEEN EYE");
+static const u8 sEasyChatWord_InnerFocus[] = _("INNER FOCUS");
+static const u8 sEasyChatWord_Static[] = _("STATIC");
+static const u8 sEasyChatWord_Type[] = _("TYPE");
+static const u8 sEasyChatWord_Tough[] = _("TOUGH");
+static const u8 sEasyChatWord_Toughness[] = _("TOUGHNESS");
+static const u8 sEasyChatWord_ShedSkin[] = _("SHED SKIN");
+static const u8 sEasyChatWord_HugePower[] = _("HUGE POWER");
+static const u8 sEasyChatWord_VoltAbsorb[] = _("VOLT ABSORB");
+static const u8 sEasyChatWord_WaterAbsorb[] = _("WATER ABSORB");
+static const u8 sEasyChatWord_Electric[] = _("ELECTRIC");
+static const u8 sEasyChatWord_Forecast[] = _("FORECAST");
+static const u8 sEasyChatWord_SereneGrace[] = _("SERENE GRACE");
+static const u8 sEasyChatWord_Poison[] = _("POISON");
+static const u8 sEasyChatWord_PoisonPoint[] = _("POISON POINT");
+static const u8 sEasyChatWord_Dragon[] = _("DRAGON");
+static const u8 sEasyChatWord_Trace[] = _("TRACE");
+static const u8 sEasyChatWord_Oblivious[] = _("OBLIVIOUS");
+static const u8 sEasyChatWord_Truant[] = _("TRUANT");
+static const u8 sEasyChatWord_RunAway[] = _("RUN AWAY");
+static const u8 sEasyChatWord_StickyHold[] = _("STICKY HOLD");
+static const u8 sEasyChatWord_CloudNine[] = _("CLOUD NINE");
+static const u8 sEasyChatWord_Normal[] = _("NORMAL");
+static const u8 sEasyChatWord_Steel[] = _("STEEL");
+static const u8 sEasyChatWord_Illuminate[] = _("ILLUMINATE");
+static const u8 sEasyChatWord_EarlyBird[] = _("EARLY BIRD");
+static const u8 sEasyChatWord_Hustle[] = _("HUSTLE");
+static const u8 sEasyChatWord_Shine[] = _("SHINE");
+static const u8 sEasyChatWord_Flying[] = _("FLYING");
+static const u8 sEasyChatWord_Drought[] = _("DROUGHT");
+static const u8 sEasyChatWord_Lightningrod[] = _("LIGHTNINGROD");
+static const u8 sEasyChatWord_Compoundeyes[] = _("COMPOUNDEYES");
+static const u8 sEasyChatWord_MarvelScale[] = _("MARVEL SCALE");
+static const u8 sEasyChatWord_WonderGuard[] = _("WONDER GUARD");
+static const u8 sEasyChatWord_Insomnia[] = _("INSOMNIA");
+static const u8 sEasyChatWord_Levitate[] = _("LEVITATE");
+static const u8 sEasyChatWord_Plus[] = _("PLUS");
+static const u8 sEasyChatWord_Pressure[] = _("PRESSURE");
+static const u8 sEasyChatWord_LiquidOoze[] = _("LIQUID OOZE");
+static const u8 sEasyChatWord_ColorChange[] = _("COLOR CHANGE");
+static const u8 sEasyChatWord_Soundproof[] = _("SOUNDPROOF");
+static const u8 sEasyChatWord_EffectSpore[] = _("EFFECT SPORE");
+static const u8 sEasyChatWord_Pkrs[] = _("{PK}RS");
+static const u8 sEasyChatWord_Fire[] = _("FIRE");
+static const u8 sEasyChatWord_FlameBody[] = _("FLAME BODY");
+static const u8 sEasyChatWord_Minus[] = _("MINUS");
+static const u8 sEasyChatWord_OwnTempo[] = _("OWN TEMPO");
+static const u8 sEasyChatWord_MagmaArmor[] = _("MAGMA ARMOR");
+static const u8 sEasyChatWord_Water[] = _("WATER");
+static const u8 sEasyChatWord_WaterVeil[] = _("WATER VEIL");
+static const u8 sEasyChatWord_Bug[] = _("BUG");
+static const u8 sEasyChatWord_Swarm[] = _("SWARM");
+static const u8 sEasyChatWord_CuteCharm[] = _("CUTE CHARM");
+static const u8 sEasyChatWord_Immunity[] = _("IMMUNITY");
+static const u8 sEasyChatWord_Blaze[] = _("BLAZE");
+static const u8 sEasyChatWord_Pickup[] = _("PICKUP");
+static const u8 sEasyChatWord_Pattern[] = _("PATTERN");
+static const u8 sEasyChatWord_FlashFire[] = _("FLASH FIRE");
+static const u8 sEasyChatWord_VitalSpirit[] = _("VITAL SPIRIT");
+static const u8 sEasyChatWord_Chlorophyll[] = _("CHLOROPHYLL");
+static const u8 sEasyChatWord_PurePower[] = _("PURE POWER");
+static const u8 sEasyChatWord_ShieldDust[] = _("SHIELD DUST");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Status[] = {
+ {
+ .text = sEasyChatWord_Dark,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Stench,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ThickFat,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_RainDish,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Drizzle,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ArenaTrap,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Intimidate,
+ .alphabeticalOrder = 101,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_RockHead,
+ .alphabeticalOrder = 97,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Color,
+ .alphabeticalOrder = 106,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_AltColor,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Rock,
+ .alphabeticalOrder = 68,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Beautiful,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Beauty,
+ .alphabeticalOrder = 86,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_AirLock,
+ .alphabeticalOrder = 78,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Psychic,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HyperCutter,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fighting,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ShadowTag,
+ .alphabeticalOrder = 99,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Smart,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Smartness,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SpeedBoost,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cool,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Coolness,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_BattleArmor,
+ .alphabeticalOrder = 76,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cute,
+ .alphabeticalOrder = 72,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cuteness,
+ .alphabeticalOrder = 88,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sturdy,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SuctionCups,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Grass,
+ .alphabeticalOrder = 90,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ClearBody,
+ .alphabeticalOrder = 91,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Torrent,
+ .alphabeticalOrder = 104,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ghost,
+ .alphabeticalOrder = 75,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ice,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Guts,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_RoughSkin,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ShellArmor,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_NaturalCure,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Damp,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ground,
+ .alphabeticalOrder = 73,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Limber,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_MagnetPull,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WhiteSmoke,
+ .alphabeticalOrder = 71,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Synchronize,
+ .alphabeticalOrder = 100,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Overgrow,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SwiftSwim,
+ .alphabeticalOrder = 81,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SandStream,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SandVeil,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_KeenEye,
+ .alphabeticalOrder = 82,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_InnerFocus,
+ .alphabeticalOrder = 77,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Static,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Type,
+ .alphabeticalOrder = 85,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tough,
+ .alphabeticalOrder = 94,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Toughness,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ShedSkin,
+ .alphabeticalOrder = 79,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_HugePower,
+ .alphabeticalOrder = 92,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_VoltAbsorb,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WaterAbsorb,
+ .alphabeticalOrder = 69,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Electric,
+ .alphabeticalOrder = 64,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Forecast,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SereneGrace,
+ .alphabeticalOrder = 93,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Poison,
+ .alphabeticalOrder = 103,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_PoisonPoint,
+ .alphabeticalOrder = 102,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dragon,
+ .alphabeticalOrder = 89,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Trace,
+ .alphabeticalOrder = 83,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Oblivious,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Truant,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_RunAway,
+ .alphabeticalOrder = 84,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_StickyHold,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_CloudNine,
+ .alphabeticalOrder = 107,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Normal,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Steel,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Illuminate,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_EarlyBird,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hustle,
+ .alphabeticalOrder = 66,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Shine,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Flying,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Drought,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lightningrod,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Compoundeyes,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_MarvelScale,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WonderGuard,
+ .alphabeticalOrder = 108,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Insomnia,
+ .alphabeticalOrder = 74,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Levitate,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Plus,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pressure,
+ .alphabeticalOrder = 87,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_LiquidOoze,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ColorChange,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Soundproof,
+ .alphabeticalOrder = 70,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_EffectSpore,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pkrs,
+ .alphabeticalOrder = 67,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fire,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_FlameBody,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Minus,
+ .alphabeticalOrder = 98,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OwnTempo,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_MagmaArmor,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Water,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WaterVeil,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Bug,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Swarm,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_CuteCharm,
+ .alphabeticalOrder = 63,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Immunity,
+ .alphabeticalOrder = 65,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Blaze,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pickup,
+ .alphabeticalOrder = 105,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pattern,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_FlashFire,
+ .alphabeticalOrder = 95,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_VitalSpirit,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Chlorophyll,
+ .alphabeticalOrder = 96,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_PurePower,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ShieldDust,
+ .alphabeticalOrder = 80,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_time.h b/src/data/easy_chat/easy_chat_group_time.h
new file mode 100644
index 000000000..45d24c6f1
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_time.h
@@ -0,0 +1,274 @@
+
+static const u8 sEasyChatWord_Fall[] = _("FALL");
+static const u8 sEasyChatWord_Morning[] = _("MORNING");
+static const u8 sEasyChatWord_Tomorrow[] = _("TOMORROW");
+static const u8 sEasyChatWord_Last[] = _("LAST");
+static const u8 sEasyChatWord_Day[] = _("DAY");
+static const u8 sEasyChatWord_Sometime[] = _("SOMETIME");
+static const u8 sEasyChatWord_Always[] = _("ALWAYS");
+static const u8 sEasyChatWord_Current[] = _("CURRENT");
+static const u8 sEasyChatWord_Forever[] = _("FOREVER");
+static const u8 sEasyChatWord_Days[] = _("DAYS");
+static const u8 sEasyChatWord_End[] = _("END");
+static const u8 sEasyChatWord_Tuesday[] = _("TUESDAY");
+static const u8 sEasyChatWord_Yesterday[] = _("YESTERDAY");
+static const u8 sEasyChatWord_Today[] = _("TODAY");
+static const u8 sEasyChatWord_Friday[] = _("FRIDAY");
+static const u8 sEasyChatWord_Monday[] = _("MONDAY");
+static const u8 sEasyChatWord_Later[] = _("LATER");
+static const u8 sEasyChatWord_Earlier[] = _("EARLIER");
+static const u8 sEasyChatWord_Another[] = _("ANOTHER");
+static const u8 sEasyChatWord_Time[] = _("TIME");
+static const u8 sEasyChatWord_Finish[] = _("FINISH");
+static const u8 sEasyChatWord_Wednesday[] = _("WEDNESDAY");
+static const u8 sEasyChatWord_Soon[] = _("SOON");
+static const u8 sEasyChatWord_Start[] = _("START");
+static const u8 sEasyChatWord_Month[] = _("MONTH");
+static const u8 sEasyChatWord_Stop[] = _("STOP");
+static const u8 sEasyChatWord_Now[] = _("NOW");
+static const u8 sEasyChatWord_Final[] = _("FINAL");
+static const u8 sEasyChatWord_Next[] = _("NEXT");
+static const u8 sEasyChatWord_Age[] = _("AGE");
+static const u8 sEasyChatWord_Saturday[] = _("SATURDAY");
+static const u8 sEasyChatWord_Summer[] = _("SUMMER");
+static const u8 sEasyChatWord_Sunday[] = _("SUNDAY");
+static const u8 sEasyChatWord_Beginning[] = _("BEGINNING");
+static const u8 sEasyChatWord_Spring[] = _("SPRING");
+static const u8 sEasyChatWord_Daytime[] = _("DAYTIME");
+static const u8 sEasyChatWord_Winter[] = _("WINTER");
+static const u8 sEasyChatWord_Daily[] = _("DAILY");
+static const u8 sEasyChatWord_Olden[] = _("OLDEN");
+static const u8 sEasyChatWord_Almost[] = _("ALMOST");
+static const u8 sEasyChatWord_Nearly[] = _("NEARLY");
+static const u8 sEasyChatWord_Thursday[] = _("THURSDAY");
+static const u8 sEasyChatWord_Nighttime[] = _("NIGHTTIME");
+static const u8 sEasyChatWord_Night[] = _("NIGHT");
+static const u8 sEasyChatWord_Week[] = _("WEEK");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Time[] = {
+ {
+ .text = sEasyChatWord_Fall,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Morning,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tomorrow,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Last,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Day,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sometime,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Always,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Current,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Forever,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Days,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_End,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tuesday,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yesterday,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Today,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Friday,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Monday,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Later,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Earlier,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Another,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Time,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Finish,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wednesday,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Soon,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Start,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Month,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Stop,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Now,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Final,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Next,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Age,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Saturday,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Summer,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sunday,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Beginning,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Spring,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Daytime,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Winter,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Daily,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Olden,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Almost,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nearly,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Thursday,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nighttime,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Night,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Week,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_trainer.h b/src/data/easy_chat/easy_chat_group_trainer.h
new file mode 100644
index 000000000..cee304fe0
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_trainer.h
@@ -0,0 +1,160 @@
+
+static const u8 sEasyChatWord_IChooseYou[] = _("I CHOOSE YOU");
+static const u8 sEasyChatWord_Gotcha[] = _("GOTCHA");
+static const u8 sEasyChatWord_Trade[] = _("TRADE");
+static const u8 sEasyChatWord_Sapphire[] = _("SAPPHIRE");
+static const u8 sEasyChatWord_Evolve[] = _("EVOLVE");
+static const u8 sEasyChatWord_Encyclopedia[] = _("ENCYCLOPEDIA");
+static const u8 sEasyChatWord_Nature[] = _("NATURE");
+static const u8 sEasyChatWord_Center[] = _("CENTER");
+static const u8 sEasyChatWord_Egg[] = _("EGG");
+static const u8 sEasyChatWord_Link[] = _("LINK");
+static const u8 sEasyChatWord_SpAbility[] = _("SP. ABILITY");
+static const u8 sEasyChatWord_Trainer[] = _("TRAINER");
+static const u8 sEasyChatWord_Version[] = _("VERSION");
+static const u8 sEasyChatWord_Pokenav[] = _("POKéNAV");
+static const u8 sEasyChatWord_Pokemon[] = _("POKéMON");
+static const u8 sEasyChatWord_Get[] = _("GET");
+static const u8 sEasyChatWord_Pokedex[] = _("POKéDEX");
+static const u8 sEasyChatWord_Ruby[] = _("RUBY");
+static const u8 sEasyChatWord_Level[] = _("LEVEL");
+static const u8 sEasyChatWord_Red[] = _("RED");
+static const u8 sEasyChatWord_Green[] = _("GREEN");
+static const u8 sEasyChatWord_Bag[] = _("BAG");
+static const u8 sEasyChatWord_Flame[] = _("FLAME");
+static const u8 sEasyChatWord_Gold[] = _("GOLD");
+static const u8 sEasyChatWord_Leaf[] = _("LEAF");
+static const u8 sEasyChatWord_Silver[] = _("SILVER");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Trainer[] = {
+ {
+ .text = sEasyChatWord_IChooseYou,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gotcha,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Trade,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sapphire,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Evolve,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Encyclopedia,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nature,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Center,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Egg,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Link,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_SpAbility,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Trainer,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Version,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pokenav,
+ .alphabeticalOrder = 9,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Pokemon,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Get,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Pokedex,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ruby,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Level,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Red,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Green,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Bag,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Flame,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gold,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Leaf,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Silver,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_trendy_saying.h b/src/data/easy_chat/easy_chat_group_trendy_saying.h
new file mode 100644
index 000000000..24fa6bffa
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_trendy_saying.h
@@ -0,0 +1,202 @@
+
+static const u8 sEasyChatWord_KthxBye[] = _("KTHX, BYE.");
+static const u8 sEasyChatWord_YesSirExcl[] = _("YES, SIR!");
+static const u8 sEasyChatWord_AvantGarde[] = _("AVANT GARDE");
+static const u8 sEasyChatWord_Couple[] = _("COUPLE");
+static const u8 sEasyChatWord_MuchObliged[] = _("MUCH OBLIGED");
+static const u8 sEasyChatWord_YeehawExcl[] = _("YEEHAW!");
+static const u8 sEasyChatWord_Mega[] = _("MEGA");
+static const u8 sEasyChatWord_1HitKOExcl[] = _("1-HIT KO!");
+static const u8 sEasyChatWord_Destiny[] = _("DESTINY");
+static const u8 sEasyChatWord_Cancel[] = _("CANCEL");
+static const u8 sEasyChatWord_New[] = _("NEW");
+static const u8 sEasyChatWord_Flatten[] = _("FLATTEN");
+static const u8 sEasyChatWord_Kidding[] = _("KIDDING");
+static const u8 sEasyChatWord_Loser[] = _("LOSER");
+static const u8 sEasyChatWord_Losing[] = _("LOSING");
+static const u8 sEasyChatWord_Happening[] = _("HAPPENING");
+static const u8 sEasyChatWord_HipAnd[] = _("HIP AND");
+static const u8 sEasyChatWord_Shake[] = _("SHAKE");
+static const u8 sEasyChatWord_Shady[] = _("SHADY");
+static const u8 sEasyChatWord_Upbeat[] = _("UPBEAT");
+static const u8 sEasyChatWord_Modern[] = _("MODERN");
+static const u8 sEasyChatWord_SmellYa[] = _("SMELL YA");
+static const u8 sEasyChatWord_Bang[] = _("BANG");
+static const u8 sEasyChatWord_Knockout[] = _("KNOCKOUT");
+static const u8 sEasyChatWord_Hassle[] = _("HASSLE");
+static const u8 sEasyChatWord_Winner[] = _("WINNER");
+static const u8 sEasyChatWord_Fever[] = _("FEVER");
+static const u8 sEasyChatWord_Wannabe[] = _("WANNABE");
+static const u8 sEasyChatWord_Baby[] = _("BABY");
+static const u8 sEasyChatWord_Heart[] = _("HEART");
+static const u8 sEasyChatWord_Old[] = _("OLD");
+static const u8 sEasyChatWord_Young[] = _("YOUNG");
+static const u8 sEasyChatWord_Ugly[] = _("UGLY");
+
+static const struct EasyChatWordInfo sEasyChatGroup_TrendySaying[] = {
+ {
+ .text = sEasyChatWord_KthxBye,
+ .alphabeticalOrder = 7,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_YesSirExcl,
+ .alphabeticalOrder = 2,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_AvantGarde,
+ .alphabeticalOrder = 28,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Couple,
+ .alphabeticalOrder = 22,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_MuchObliged,
+ .alphabeticalOrder = 9,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_YeehawExcl,
+ .alphabeticalOrder = 3,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Mega,
+ .alphabeticalOrder = 8,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_1HitKOExcl,
+ .alphabeticalOrder = 26,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Destiny,
+ .alphabeticalOrder = 11,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Cancel,
+ .alphabeticalOrder = 15,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_New,
+ .alphabeticalOrder = 24,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Flatten,
+ .alphabeticalOrder = 29,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Kidding,
+ .alphabeticalOrder = 16,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Loser,
+ .alphabeticalOrder = 12,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Losing,
+ .alphabeticalOrder = 23,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Happening,
+ .alphabeticalOrder = 0,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_HipAnd,
+ .alphabeticalOrder = 13,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Shake,
+ .alphabeticalOrder = 14,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Shady,
+ .alphabeticalOrder = 6,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Upbeat,
+ .alphabeticalOrder = 20,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Modern,
+ .alphabeticalOrder = 4,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_SmellYa,
+ .alphabeticalOrder = 10,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Bang,
+ .alphabeticalOrder = 30,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Knockout,
+ .alphabeticalOrder = 18,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Hassle,
+ .alphabeticalOrder = 17,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Winner,
+ .alphabeticalOrder = 21,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Fever,
+ .alphabeticalOrder = 32,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Wannabe,
+ .alphabeticalOrder = 19,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Baby,
+ .alphabeticalOrder = 27,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Heart,
+ .alphabeticalOrder = 25,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Old,
+ .alphabeticalOrder = 5,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Young,
+ .alphabeticalOrder = 1,
+ .enabled = FALSE
+ },
+ {
+ .text = sEasyChatWord_Ugly,
+ .alphabeticalOrder = 31,
+ .enabled = FALSE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_group_voices.h b/src/data/easy_chat/easy_chat_group_voices.h
new file mode 100644
index 000000000..e58b86894
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_group_voices.h
@@ -0,0 +1,382 @@
+
+static const u8 sEasyChatWord_Excl[] = _("!");
+static const u8 sEasyChatWord_ExclExcl[] = _("!!");
+static const u8 sEasyChatWord_QuesExcl[] = _("?!");
+static const u8 sEasyChatWord_Ques[] = _("?");
+static const u8 sEasyChatWord_Ellipsis[] = _("…");
+static const u8 sEasyChatWord_EllipsisExcl[] = _("…!");
+static const u8 sEasyChatWord_EllipsisEllipsisEllipsis[] = _("………");
+static const u8 sEasyChatWord_Dash[] = _("-");
+static const u8 sEasyChatWord_DashDashDash[] = _("- - -");
+static const u8 sEasyChatWord_UhOh[] = _("UH-OH");
+static const u8 sEasyChatWord_Waaah[] = _("WAAAH");
+static const u8 sEasyChatWord_Ahaha[] = _("AHAHA");
+static const u8 sEasyChatWord_OhQues[] = _("OH?");
+static const u8 sEasyChatWord_Nope[] = _("NOPE");
+static const u8 sEasyChatWord_Urgh[] = _("URGH");
+static const u8 sEasyChatWord_Hmm[] = _("HMM");
+static const u8 sEasyChatWord_Whoah[] = _("WHOAH");
+static const u8 sEasyChatWord_WroooaarExcl[] = _("WROOOAAR!");
+static const u8 sEasyChatWord_Wow[] = _("WOW");
+static const u8 sEasyChatWord_Giggle[] = _("GIGGLE");
+static const u8 sEasyChatWord_Sigh[] = _("SIGH");
+static const u8 sEasyChatWord_Unbelievable[] = _("UNBELIEVABLE");
+static const u8 sEasyChatWord_Cries[] = _("CRIES");
+static const u8 sEasyChatWord_Agree[] = _("AGREE");
+static const u8 sEasyChatWord_EhQues[] = _("EH?");
+static const u8 sEasyChatWord_Cry[] = _("CRY");
+static const u8 sEasyChatWord_Ehehe[] = _("EHEHE");
+static const u8 sEasyChatWord_OiOiOi[] = _("OI, OI, OI");
+static const u8 sEasyChatWord_OhYeah[] = _("OH, YEAH");
+static const u8 sEasyChatWord_Oh[] = _("OH");
+static const u8 sEasyChatWord_Oops[] = _("OOPS");
+static const u8 sEasyChatWord_Shocked[] = _("SHOCKED");
+static const u8 sEasyChatWord_Eek[] = _("EEK");
+static const u8 sEasyChatWord_Graaah[] = _("GRAAAH");
+static const u8 sEasyChatWord_Gwahahaha[] = _("GWAHAHAHA");
+static const u8 sEasyChatWord_Way[] = _("WAY");
+static const u8 sEasyChatWord_Tch[] = _("TCH");
+static const u8 sEasyChatWord_Hehe[] = _("HEHE");
+static const u8 sEasyChatWord_Hah[] = _("HAH");
+static const u8 sEasyChatWord_Yup[] = _("YUP");
+static const u8 sEasyChatWord_Hahaha[] = _("HAHAHA");
+static const u8 sEasyChatWord_Aiyeeh[] = _("AIYEEH");
+static const u8 sEasyChatWord_Hiyah[] = _("HIYAH");
+static const u8 sEasyChatWord_Fufufu[] = _("FUFUFU");
+static const u8 sEasyChatWord_Lol[] = _("LOL");
+static const u8 sEasyChatWord_Snort[] = _("SNORT");
+static const u8 sEasyChatWord_Humph[] = _("HUMPH");
+static const u8 sEasyChatWord_Hehehe[] = _("HEHEHE");
+static const u8 sEasyChatWord_Heh[] = _("HEH");
+static const u8 sEasyChatWord_Hohoho[] = _("HOHOHO");
+static const u8 sEasyChatWord_UhHuh[] = _("UH-HUH");
+static const u8 sEasyChatWord_OhDear[] = _("OH, DEAR");
+static const u8 sEasyChatWord_Arrgh[] = _("ARRGH");
+static const u8 sEasyChatWord_Mufufu[] = _("MUFUFU");
+static const u8 sEasyChatWord_Mmm[] = _("MMM");
+static const u8 sEasyChatWord_OhKay[] = _("OH-KAY");
+static const u8 sEasyChatWord_Okay[] = _("OKAY");
+static const u8 sEasyChatWord_Lalala[] = _("LALALA");
+static const u8 sEasyChatWord_Yay[] = _("YAY");
+static const u8 sEasyChatWord_Aww[] = _("AWW");
+static const u8 sEasyChatWord_Wowee[] = _("WOWEE");
+static const u8 sEasyChatWord_Gwah[] = _("GWAH");
+static const u8 sEasyChatWord_Wahahaha[] = _("WAHAHAHA");
+
+static const struct EasyChatWordInfo sEasyChatGroup_Voices[] = {
+ {
+ .text = sEasyChatWord_Excl,
+ .alphabeticalOrder = 0,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_ExclExcl,
+ .alphabeticalOrder = 1,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_QuesExcl,
+ .alphabeticalOrder = 7,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ques,
+ .alphabeticalOrder = 8,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ellipsis,
+ .alphabeticalOrder = 4,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_EllipsisExcl,
+ .alphabeticalOrder = 5,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_EllipsisEllipsisEllipsis,
+ .alphabeticalOrder = 6,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Dash,
+ .alphabeticalOrder = 3,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_DashDashDash,
+ .alphabeticalOrder = 2,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_UhOh,
+ .alphabeticalOrder = 23,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Waaah,
+ .alphabeticalOrder = 11,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ahaha,
+ .alphabeticalOrder = 41,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OhQues,
+ .alphabeticalOrder = 52,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Nope,
+ .alphabeticalOrder = 59,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Urgh,
+ .alphabeticalOrder = 22,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hmm,
+ .alphabeticalOrder = 25,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Whoah,
+ .alphabeticalOrder = 32,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_WroooaarExcl,
+ .alphabeticalOrder = 24,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wow,
+ .alphabeticalOrder = 26,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Giggle,
+ .alphabeticalOrder = 43,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Sigh,
+ .alphabeticalOrder = 19,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Unbelievable,
+ .alphabeticalOrder = 33,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cries,
+ .alphabeticalOrder = 61,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Agree,
+ .alphabeticalOrder = 34,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_EhQues,
+ .alphabeticalOrder = 38,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Cry,
+ .alphabeticalOrder = 40,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Ehehe,
+ .alphabeticalOrder = 48,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OiOiOi,
+ .alphabeticalOrder = 37,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OhYeah,
+ .alphabeticalOrder = 47,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Oh,
+ .alphabeticalOrder = 42,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Oops,
+ .alphabeticalOrder = 15,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Shocked,
+ .alphabeticalOrder = 49,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Eek,
+ .alphabeticalOrder = 46,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Graaah,
+ .alphabeticalOrder = 57,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gwahahaha,
+ .alphabeticalOrder = 44,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Way,
+ .alphabeticalOrder = 54,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Tch,
+ .alphabeticalOrder = 53,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hehe,
+ .alphabeticalOrder = 13,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hah,
+ .alphabeticalOrder = 29,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yup,
+ .alphabeticalOrder = 51,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hahaha,
+ .alphabeticalOrder = 28,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Aiyeeh,
+ .alphabeticalOrder = 55,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hiyah,
+ .alphabeticalOrder = 12,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Fufufu,
+ .alphabeticalOrder = 27,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lol,
+ .alphabeticalOrder = 56,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Snort,
+ .alphabeticalOrder = 30,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Humph,
+ .alphabeticalOrder = 31,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hehehe,
+ .alphabeticalOrder = 20,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Heh,
+ .alphabeticalOrder = 45,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Hohoho,
+ .alphabeticalOrder = 36,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_UhHuh,
+ .alphabeticalOrder = 50,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OhDear,
+ .alphabeticalOrder = 9,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Arrgh,
+ .alphabeticalOrder = 21,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mufufu,
+ .alphabeticalOrder = 14,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Mmm,
+ .alphabeticalOrder = 10,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_OhKay,
+ .alphabeticalOrder = 62,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Okay,
+ .alphabeticalOrder = 35,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Lalala,
+ .alphabeticalOrder = 16,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Yay,
+ .alphabeticalOrder = 18,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Aww,
+ .alphabeticalOrder = 60,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wowee,
+ .alphabeticalOrder = 17,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Gwah,
+ .alphabeticalOrder = 58,
+ .enabled = TRUE
+ },
+ {
+ .text = sEasyChatWord_Wahahaha,
+ .alphabeticalOrder = 39,
+ .enabled = TRUE
+ }
+};
diff --git a/src/data/easy_chat/easy_chat_groups.h b/src/data/easy_chat/easy_chat_groups.h
new file mode 100644
index 000000000..362098205
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_groups.h
@@ -0,0 +1,137 @@
+#include "easy_chat.h"
+
+#include "easy_chat_group_pokemon.h"
+#include "easy_chat_group_trainer.h"
+#include "easy_chat_group_status.h"
+#include "easy_chat_group_battle.h"
+#include "easy_chat_group_greetings.h"
+#include "easy_chat_group_people.h"
+#include "easy_chat_group_voices.h"
+#include "easy_chat_group_speech.h"
+#include "easy_chat_group_endings.h"
+#include "easy_chat_group_feelings.h"
+#include "easy_chat_group_conditions.h"
+#include "easy_chat_group_actions.h"
+#include "easy_chat_group_lifestyle.h"
+#include "easy_chat_group_hobbies.h"
+#include "easy_chat_group_time.h"
+#include "easy_chat_group_misc.h"
+#include "easy_chat_group_adjectives.h"
+#include "easy_chat_group_events.h"
+#include "easy_chat_group_move_1.h"
+#include "easy_chat_group_move_2.h"
+#include "easy_chat_group_trendy_saying.h"
+#include "easy_chat_group_pokemon2.h"
+
+static const struct EasyChatGroup sEasyChatGroups[] = {
+ {
+ .wordData = {.valueList = sEasyChatGroup_Pokemon},
+ .numWords = 202,
+ .numEnabledWords = 202
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Trainer},
+ .numWords = 26,
+ .numEnabledWords = 25
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Status},
+ .numWords = 109,
+ .numEnabledWords = 109
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Battle},
+ .numWords = 63,
+ .numEnabledWords = 63
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Greetings},
+ .numWords = 42,
+ .numEnabledWords = 42
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_People},
+ .numWords = 75,
+ .numEnabledWords = 75
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Voices},
+ .numWords = 63,
+ .numEnabledWords = 63
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Speech},
+ .numWords = 60,
+ .numEnabledWords = 60
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Endings},
+ .numWords = 69,
+ .numEnabledWords = 69
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Feelings},
+ .numWords = 69,
+ .numEnabledWords = 69
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Conditions},
+ .numWords = 69,
+ .numEnabledWords = 69
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Actions},
+ .numWords = 78,
+ .numEnabledWords = 78
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Lifestyle},
+ .numWords = 45,
+ .numEnabledWords = 45
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Hobbies},
+ .numWords = 54,
+ .numEnabledWords = 54
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Time},
+ .numWords = 45,
+ .numEnabledWords = 45
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Misc},
+ .numWords = 42,
+ .numEnabledWords = 42
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Adjectives},
+ .numWords = 36,
+ .numEnabledWords = 36
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_Events},
+ .numWords = 28,
+ .numEnabledWords = 19
+ },
+ {
+ .wordData = {.valueList = sEasyChatGroup_Move1},
+ .numWords = 154,
+ .numEnabledWords = 154
+ },
+ {
+ .wordData = {.valueList = sEasyChatGroup_Move2},
+ .numWords = 200,
+ .numEnabledWords = 200
+ },
+ {
+ .wordData = {.words = sEasyChatGroup_TrendySaying},
+ .numWords = 33,
+ .numEnabledWords = 0
+ },
+ {
+ .wordData = {.valueList = sEasyChatGroup_Pokemon2},
+ .numWords = 251,
+ .numEnabledWords = 251
+ },
+};
diff --git a/src/data/easy_chat/easy_chat_words_by_letter.h b/src/data/easy_chat/easy_chat_words_by_letter.h
new file mode 100644
index 000000000..cfb81cc3d
--- /dev/null
+++ b/src/data/easy_chat/easy_chat_words_by_letter.h
@@ -0,0 +1,2075 @@
+#include "easy_chat.h"
+#include "constants/easy_chat.h"
+
+static const u16 sEasyChatWordsByLetter_Others[] = {
+ EC_WORD_EXCL,
+ EC_WORD_EXCL_EXCL,
+ EC_WORD_DASH,
+ EC_WORD_DASH_DASH_DASH,
+ EC_WORD_ELLIPSIS,
+ EC_WORD_ELLIPSIS_EXCL,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_1_HIT_KO_EXCL,
+ EC_WORD_QUES,
+ EC_WORD_QUES_EXCL,
+};
+
+static const u16 sEasyChatWordsByLetter_A[] = {
+ EC_WORD_A,
+ EC_WORD_A_LITTLE,
+ EC_WORD_A_LOT,
+ EC_WORD_A_TINY_BIT,
+ EC_WORD_ABOUT,
+ EC_WORD_ABOVE,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(ABRA),
+ EC_POKEMON(ABRA),
+ EC_WORD_ABSENT,
+ EC_POKEMON2(ABSOL),
+ EC_WORD_ABSOLUTELY,
+ EC_MOVE(ABSORB),
+ EC_WORD_ACCEPT,
+ EC_MOVE2(ACID),
+ EC_MOVE2(ACID_ARMOR),
+ EC_WORD_ADORE,
+ EC_WORD_ADULT,
+ EC_WORD_ADVENTURE,
+ EC_MOVE2(AERIAL_ACE),
+ EC_MOVE(AEROBLAST),
+ EC_POKEMON(AERODACTYL),
+ EC_WORD_AFTER,
+ EC_WORD_AGE,
+ EC_POKEMON2(AGGRON),
+ EC_MOVE(AGILITY),
+ EC_WORD_AGREE,
+ EC_WORD_AHAHA,
+ EC_WORD_AIM,
+ EC_POKEMON(AIPOM),
+ EC_MOVE(AIR_CUTTER),
+ EC_WORD_AIR_LOCK,
+ EC_WORD_AIYEEH,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(ALAKAZAM),
+ EC_POKEMON(ALAKAZAM),
+ EC_WORD_ALL,
+ EC_WORD_ALL_RIGHT,
+ EC_WORD_ALLOW,
+ EC_WORD_ALLOWANCE,
+ EC_WORD_ALLY,
+ EC_WORD_ALMOST,
+ EC_WORD_ALONE,
+ EC_WORD_ALSO,
+ EC_WORD_ALT_COLOR,
+ EC_POKEMON2(ALTARIA),
+ EC_WORD_ALTHOUGH,
+ EC_WORD_ALWAYS,
+ EC_WORD_AM,
+ EC_MOVE2(AMNESIA),
+ EC_POKEMON(AMPHAROS),
+ EC_WORD_AMUSING,
+ EC_WORD_AN,
+ EC_MOVE(ANCIENT_POWER),
+ EC_WORD_AND,
+ EC_WORD_ANGER,
+ EC_WORD_ANGERS,
+ EC_WORD_ANGRY,
+ EC_WORD_ANIME,
+ EC_POKEMON2(ANORITH),
+ EC_WORD_ANOTHER,
+ EC_WORD_ANTICIPATION,
+ EC_WORD_ANY,
+ EC_WORD_ANYWHERE,
+ EC_WORD_APOLOGIZE,
+ EC_WORD_APPEAL,
+ EC_WORD_APPEAR,
+ EC_WORD_APPEARS,
+ EC_WORD_APPRECIATE,
+ EC_WORD_APPROVED,
+ EC_POKEMON(ARBOK),
+ EC_POKEMON(ARCANINE),
+ EC_WORD_ARE,
+ EC_WORD_AREN_T,
+ EC_WORD_ARENA_TRAP,
+ EC_POKEMON(ARIADOS),
+ EC_MOVE2(ARM_THRUST),
+ EC_POKEMON2(ARMALDO),
+ EC_MOVE(AROMATHERAPY),
+ EC_POKEMON2(ARON),
+ EC_WORD_AROUND,
+ EC_WORD_ARRGH,
+ EC_POKEMON(ARTICUNO),
+ EC_WORD_AS,
+ EC_WORD_AS_IF,
+ EC_WORD_AS_MUCH_AS,
+ EC_MOVE2(ASSIST),
+ EC_MOVE(ASTONISH),
+ EC_WORD_AT,
+ EC_WORD_ATTACK,
+ EC_MOVE2(ATTRACT),
+ EC_WORD_AUNT,
+ EC_MOVE(AURORA_BEAM),
+ EC_WORD_AVANT_GARDE,
+ EC_WORD_AWAY,
+ EC_WORD_AWESOME,
+ EC_WORD_AWFUL,
+ EC_WORD_AWFULLY,
+ EC_WORD_AWW,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(AZUMARILL),
+ EC_POKEMON(AZUMARILL),
+ EC_POKEMON2(AZURILL),
+};
+
+static const u16 sEasyChatWordsByLetter_B[] = {
+ EC_WORD_BABE,
+ EC_WORD_BABY,
+ EC_WORD_BACK,
+ EC_WORD_BAD,
+ EC_WORD_BADLY,
+ EC_WORD_BAG,
+ EC_POKEMON2(BAGON),
+ EC_WORD_BALL,
+ EC_POKEMON2(BALTOY),
+ EC_POKEMON2(BANETTE),
+ EC_WORD_BANG,
+ EC_POKEMON2(BARBOACH),
+ EC_MOVE2(BARRAGE),
+ EC_MOVE2(BARRIER),
+ EC_WORD_BATH,
+ EC_MOVE2(BATON_PASS),
+ EC_WORD_BATTLE,
+ EC_WORD_BATTLE_ARMOR,
+ EC_WORD_BATTLE_ROOM,
+ EC_WORD_BATTLE_TOWER,
+ EC_POKEMON(BAYLEEF),
+ EC_WORD_BE,
+ EC_WORD_BEAT,
+ EC_MOVE2(BEAT_UP),
+ EC_POKEMON2(BEAUTIFLY),
+ EC_WORD_BEAUTIFUL,
+ EC_WORD_BEAUTY,
+ EC_WORD_BECOMES,
+ EC_POKEMON(BEEDRILL),
+ EC_WORD_BEEN,
+ EC_WORD_BEFORE,
+ EC_WORD_BEGINNING,
+ EC_WORD_BEING,
+ EC_POKEMON2(BELDUM),
+ EC_WORD_BELIEVE,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(BELLOSSOM),
+ EC_POKEMON(BELLOSSOM),
+ EC_POKEMON(BELLSPROUT),
+ EC_MOVE2(BELLY_DRUM),
+ EC_WORD_BELONGS_TO,
+ EC_WORD_BELOW,
+ EC_WORD_BERRY,
+ EC_WORD_BESIDE,
+ EC_WORD_BEST,
+ EC_WORD_BETTER,
+ EC_MOVE(BIDE),
+ EC_WORD_BIG,
+ EC_WORD_BIKE,
+ EC_MOVE(BIND),
+ EC_MOVE(BITE),
+ EC_MOVE2(BLAST_BURN),
+ EC_POKEMON(BLASTOISE),
+ EC_WORD_BLAZE,
+ EC_MOVE2(BLAZE_KICK),
+ EC_POKEMON2(BLAZIKEN),
+ EC_WORD_BLEND,
+ EC_POKEMON(BLISSEY),
+ EC_MOVE2(BLIZZARD),
+ EC_MOVE2(BLOCK),
+ EC_WORD_BOARD,
+ EC_MOVE2(BODY_SLAM),
+ EC_MOVE2(BONE_CLUB),
+ EC_MOVE2(BONE_RUSH),
+ EC_MOVE2(BONEMERANG),
+ EC_WORD_BOOK,
+ EC_WORD_BORED,
+ EC_WORD_BORING,
+ EC_MOVE2(BOUNCE),
+ EC_WORD_BOY,
+ EC_WORD_BRAG,
+ EC_WORD_BREAK,
+ EC_POKEMON2(BRELOOM),
+ EC_MOVE(BRICK_BREAK),
+ EC_WORD_BROTHER,
+ EC_MOVE(BUBBLE),
+ EC_MOVE2(BUBBLE_BEAM),
+ EC_WORD_BUG,
+ EC_POKEMON(BULBASAUR),
+ EC_MOVE2(BULK_UP),
+ EC_MOVE2(BULLET_SEED),
+ EC_WORD_BUSY,
+ EC_WORD_BUT,
+ EC_POKEMON(BUTTERFREE),
+ EC_WORD_BYE_BYE,
+};
+
+static const u16 sEasyChatWordsByLetter_C[] = {
+ EC_POKEMON2(CACNEA),
+ EC_POKEMON2(CACTURNE),
+ EC_MOVE2(CALM_MIND),
+ EC_WORD_CAME,
+ EC_WORD_CAMERA,
+ EC_POKEMON2(CAMERUPT),
+ EC_MOVE2(CAMOUFLAGE),
+ EC_WORD_CAN,
+ EC_WORD_CAN_WIN,
+ EC_WORD_CAN_T,
+ EC_WORD_CAN_T_WIN,
+ EC_WORD_CANCEL,
+ EC_WORD_CAPABLE,
+ EC_WORD_CARDS,
+ EC_WORD_CARE,
+ EC_WORD_CARES,
+ EC_POKEMON2(CARVANHA),
+ EC_POKEMON2(CASCOON),
+ EC_WORD_CASE,
+ EC_POKEMON2(CASTFORM),
+ EC_POKEMON(CATERPIE),
+ EC_WORD_CAUSE,
+ EC_POKEMON(CELEBI),
+ EC_WORD_CENTER,
+ EC_WORD_CHALLENGE,
+ EC_WORD_CHANGE,
+ EC_WORD_CHANNEL,
+ EC_POKEMON(CHANSEY),
+ EC_MOVE(CHARGE),
+ EC_POKEMON(CHARIZARD),
+ EC_MOVE(CHARM),
+ EC_POKEMON(CHARMANDER),
+ EC_POKEMON(CHARMELEON),
+ EC_WORD_CHAT,
+ EC_POKEMON(CHIKORITA),
+ EC_WORD_CHILD_S_PLAY,
+ EC_WORD_CHILDREN,
+ EC_POKEMON2(CHIMECHO),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(CHINCHOU),
+ EC_POKEMON(CHINCHOU),
+ EC_WORD_CHLOROPHYLL,
+ EC_WORD_CHOICE,
+ EC_WORD_CHOOSE,
+ EC_WORD_CHORES,
+ EC_MOVE(CLAMP),
+ EC_POKEMON2(CLAMPERL),
+ EC_WORD_CLASS,
+ EC_POKEMON2(CLAYDOL),
+ EC_WORD_CLEAR_BODY,
+ EC_POKEMON(CLEFABLE),
+ EC_POKEMON(CLEFAIRY),
+ EC_POKEMON(CLEFFA),
+ EC_WORD_CLOSE,
+ EC_WORD_CLOUD_NINE,
+ EC_POKEMON(CLOYSTER),
+ EC_WORD_COLD,
+ EC_WORD_COLLECT,
+ EC_WORD_COLLECTION,
+ EC_WORD_COLOR,
+ EC_WORD_COLOR_CHANGE,
+ EC_POKEMON2(COMBUSKEN),
+ EC_WORD_COME,
+ EC_WORD_COME_ON,
+ EC_WORD_COME_OVER,
+ EC_MOVE2(COMET_PUNCH),
+ EC_WORD_COMICS,
+ EC_WORD_COMMEMORATE,
+ EC_WORD_COMPLETE,
+ EC_WORD_COMPOUNDEYES,
+ EC_WORD_CONCEDE,
+ EC_MOVE(CONFUSE_RAY),
+ EC_WORD_CONFUSED,
+ EC_MOVE2(CONFUSION),
+ EC_WORD_CONGRATS,
+ EC_MOVE(CONSTRICT),
+ EC_WORD_CONTEST,
+ EC_WORD_CONVERSATION,
+ EC_MOVE2(CONVERSION),
+ EC_MOVE2(CONVERSION_2),
+ EC_WORD_COOL,
+ EC_WORD_COOLNESS,
+ EC_POKEMON2(CORPHISH),
+ EC_WORD_CORRECT,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(CORSOLA),
+ EC_POKEMON(CORSOLA),
+ EC_MOVE(COSMIC_POWER),
+ EC_MOVE2(COTTON_SPORE),
+ EC_WORD_COULD,
+ EC_WORD_COULDN_T,
+ EC_WORD_COUNT_ON,
+ EC_MOVE(COUNTER),
+ EC_WORD_COUPLE,
+ EC_MOVE2(COVET),
+ EC_MOVE(CRABHAMMER),
+ EC_POKEMON2(CRADILY),
+ EC_POKEMON2(CRAWDAUNT),
+ EC_WORD_CRIES,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(CROBAT),
+ EC_POKEMON(CROBAT),
+ EC_POKEMON(CROCONAW),
+ EC_MOVE(CROSS_CHOP),
+ EC_MOVE(CRUNCH),
+ EC_WORD_CRUSH,
+ EC_MOVE2(CRUSH_CLAW),
+ EC_WORD_CRY,
+ EC_POKEMON(CUBONE),
+ EC_WORD_CURRENT,
+ EC_MOVE2(CURSE),
+ EC_MOVE(CUT),
+ EC_WORD_CUTE,
+ EC_WORD_CUTE_CHARM,
+ EC_WORD_CUTENESS,
+ EC_POKEMON(CYNDAQUIL),
+};
+
+static const u16 sEasyChatWordsByLetter_D[] = {
+ EC_WORD_DAILY,
+ EC_WORD_DAMP,
+ EC_WORD_DANCE,
+ EC_WORD_DANGER,
+ EC_WORD_DARK,
+ EC_WORD_DARN,
+ EC_WORD_DATE,
+ EC_WORD_DAUGHTER,
+ EC_WORD_DAY,
+ EC_WORD_DAYS,
+ EC_WORD_DAYTIME,
+ EC_WORD_DECIDE,
+ EC_WORD_DECIDED,
+ EC_WORD_DEEP,
+ EC_WORD_DEFEATED,
+ EC_MOVE2(DEFENSE_CURL),
+ EC_POKEMON2(DELCATTY),
+ EC_POKEMON(DELIBIRD),
+ EC_POKEMON2(DEOXYS),
+ EC_WORD_DEPT_STORE,
+ EC_WORD_DESIGN,
+ EC_WORD_DESTINY,
+ EC_MOVE2(DESTINY_BOND),
+ EC_WORD_DESTROYED,
+ EC_MOVE2(DETECT),
+ EC_POKEMON(DEWGONG),
+ EC_WORD_DID,
+ EC_WORD_DIDN_T,
+ EC_WORD_DIET,
+ EC_WORD_DIFFERENT,
+ EC_MOVE(DIG),
+ EC_WORD_DIGITAL,
+ EC_POKEMON(DIGLETT),
+ EC_WORD_DIRECT,
+ EC_MOVE(DISABLE),
+ EC_WORD_DISAPPEAR,
+ EC_WORD_DISAPPOINT,
+ EC_WORD_DISAPPOINTED,
+ EC_WORD_DISAPPOINTS,
+ EC_WORD_DISASTER,
+ EC_WORD_DISLIKE,
+ EC_WORD_DISLIKES,
+ EC_POKEMON(DITTO),
+ EC_MOVE2(DIVE),
+ EC_MOVE2(DIZZY_PUNCH),
+ EC_WORD_DO,
+ EC_WORD_DOCILE,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(DODRIO),
+ EC_POKEMON(DODRIO),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(DODUO),
+ EC_POKEMON(DODUO),
+ EC_WORD_DOES,
+ EC_WORD_DOESN_T,
+ EC_WORD_DON_T,
+ EC_WORD_DONE,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(DONPHAN),
+ EC_POKEMON(DONPHAN),
+ EC_MOVE2(DOOM_DESIRE),
+ EC_MOVE2(DOUBLE_KICK),
+ EC_MOVE(DOUBLE_TEAM),
+ EC_MOVE(DOUBLE_EDGE),
+ EC_MOVE(DOUBLE_SLAP),
+ EC_WORD_DOWN,
+ EC_WORD_DOWNCAST,
+ EC_WORD_DRAGON,
+ EC_MOVE2(DRAGON_CLAW),
+ EC_MOVE2(DRAGON_DANCE),
+ EC_MOVE2(DRAGON_RAGE),
+ EC_POKEMON(DRAGONAIR),
+ EC_MOVE2(DRAGON_BREATH),
+ EC_POKEMON(DRAGONITE),
+ EC_POKEMON(DRATINI),
+ EC_WORD_DREAM,
+ EC_MOVE2(DREAM_EATER),
+ EC_MOVE2(DRILL_PECK),
+ EC_WORD_DRINK,
+ EC_WORD_DRINKS,
+ EC_WORD_DRIZZLE,
+ EC_WORD_DROOLING,
+ EC_WORD_DROUGHT,
+ EC_POKEMON(DROWZEE),
+ EC_WORD_DUDE,
+ EC_POKEMON(DUGTRIO),
+ EC_POKEMON(DUNSPARCE),
+ EC_POKEMON2(DUSCLOPS),
+ EC_POKEMON2(DUSKULL),
+ EC_POKEMON2(DUSTOX),
+ EC_MOVE2(DYNAMIC_PUNCH),
+};
+
+static const u16 sEasyChatWordsByLetter_E[] = {
+ EC_WORD_EARLIER,
+ EC_WORD_EARLY_BIRD,
+ EC_MOVE(EARTHQUAKE),
+ EC_WORD_EASY,
+ EC_WORD_EAT,
+ EC_WORD_EATS,
+ EC_WORD_EEK,
+ EC_POKEMON(EEVEE),
+ EC_WORD_EFFECT_SPORE,
+ EC_WORD_EGG,
+ EC_MOVE2(EGG_BOMB),
+ EC_WORD_EH_QUES,
+ EC_WORD_EHEHE,
+ EC_POKEMON(EKANS),
+ EC_POKEMON(ELECTABUZZ),
+ EC_WORD_ELECTRIC,
+ EC_POKEMON2(ELECTRIKE),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(ELECTRODE),
+ EC_POKEMON(ELECTRODE),
+ EC_POKEMON(ELEKID),
+ EC_WORD_ELSE,
+ EC_MOVE2(EMBER),
+ EC_MOVE(ENCORE),
+ EC_WORD_ENCYCLOPEDIA,
+ EC_WORD_END,
+ EC_MOVE(ENDEAVOR),
+ EC_MOVE(ENDURE),
+ EC_WORD_ENJOY,
+ EC_WORD_ENJOYS,
+ EC_WORD_ENOUGH,
+ EC_POKEMON(ENTEI),
+ EC_WORD_ENTERTAINING,
+ EC_MOVE2(ERUPTION),
+ EC_WORD_ESCAPE,
+ EC_POKEMON(ESPEON),
+ EC_WORD_EVEN_SO,
+ EC_WORD_EVENT,
+ EC_WORD_EVENTS,
+ EC_WORD_EVER,
+ EC_WORD_EVERY,
+ EC_WORD_EVOLUTION,
+ EC_WORD_EVOLVE,
+ EC_WORD_EXCELLENT,
+ EC_WORD_EXCESS,
+ EC_WORD_EXCITE,
+ EC_WORD_EXCITING,
+ EC_WORD_EXCUSE,
+ EC_WORD_EXCUSE_ME,
+ EC_POKEMON(EXEGGCUTE),
+ EC_POKEMON(EXEGGUTOR),
+ EC_WORD_EXISTS,
+ EC_WORD_EXPENSIVE,
+ EC_MOVE2(EXPLOSION),
+ EC_POKEMON2(EXPLOUD),
+ EC_MOVE(EXTRASENSORY),
+ EC_MOVE(EXTREME_SPEED),
+};
+
+static const u16 sEasyChatWordsByLetter_F[] = {
+ EC_WORD_FABULOUS,
+ EC_MOVE(FACADE),
+ EC_WORD_FAINT,
+ EC_MOVE2(FAINT_ATTACK),
+ EC_WORD_FAINTED,
+ EC_MOVE2(FAKE_OUT),
+ EC_MOVE(FAKE_TEARS),
+ EC_WORD_FALL,
+ EC_MOVE2(FALSE_SWIPE),
+ EC_WORD_FAMILY,
+ EC_WORD_FANTASTIC,
+ EC_WORD_FAR,
+ EC_POKEMON(FARFETCHD),
+ EC_WORD_FASHION,
+ EC_WORD_FAST,
+ EC_WORD_FATHER,
+ EC_WORD_FEAR,
+ EC_POKEMON(FEAROW),
+ EC_MOVE2(FEATHER_DANCE),
+ EC_POKEMON2(FEEBAS),
+ EC_WORD_FEELING,
+ EC_POKEMON(FERALIGATR),
+ EC_WORD_FESTIVAL,
+ EC_WORD_FEVER,
+ EC_WORD_FIERY,
+ EC_WORD_FIGHT,
+ EC_WORD_FIGHTING,
+ EC_WORD_FIGHTS,
+ EC_WORD_FINAL,
+ EC_WORD_FINALLY,
+ EC_WORD_FINISH,
+ EC_WORD_FIRE,
+ EC_MOVE2(FIRE_BLAST),
+ EC_MOVE2(FIRE_PUNCH),
+ EC_MOVE2(FIRE_SPIN),
+ EC_WORD_FISHING,
+ EC_MOVE(FISSURE),
+ EC_POKEMON(FLAAFFY),
+ EC_MOVE(FLAIL),
+ EC_WORD_FLAME,
+ EC_WORD_FLAME_BODY,
+ EC_MOVE(FLAME_WHEEL),
+ EC_MOVE(FLAMETHROWER),
+ EC_POKEMON(FLAREON),
+ EC_MOVE2(FLASH),
+ EC_WORD_FLASH_FIRE,
+ EC_WORD_FLATTEN,
+ EC_MOVE(FLATTER),
+ EC_WORD_FLOWERS,
+ EC_MOVE(FLY),
+ EC_POKEMON2(FLYGON),
+ EC_WORD_FLYING,
+ EC_MOVE(FOCUS_ENERGY),
+ EC_MOVE(FOCUS_PUNCH),
+ EC_WORD_FOE,
+ EC_MOVE(FOLLOW_ME),
+ EC_WORD_FOR,
+ EC_WORD_FOR_NOW,
+ EC_WORD_FORECAST,
+ EC_MOVE2(FORESIGHT),
+ EC_WORD_FOREVER,
+ EC_WORD_FORGET,
+ EC_WORD_FORGETS,
+ EC_WORD_FORGIVE,
+ EC_POKEMON(FORRETRESS),
+ EC_MOVE2(FRENZY_PLANT),
+ EC_WORD_FRIDAY,
+ EC_WORD_FRIEND,
+ EC_WORD_FROM,
+ EC_WORD_FRONT,
+ EC_MOVE2(FRUSTRATION),
+ EC_WORD_FUFUFU,
+ EC_WORD_FULL,
+ EC_WORD_FUNNY,
+ EC_POKEMON(FURRET),
+ EC_MOVE2(FURY_ATTACK),
+ EC_MOVE2(FURY_CUTTER),
+ EC_MOVE2(FURY_SWIPES),
+ EC_MOVE2(FUTURE_SIGHT),
+};
+
+static const u16 sEasyChatWordsByLetter_G[] = {
+ EC_WORD_GAME,
+ EC_POKEMON2(GARDEVOIR),
+ EC_POKEMON(GASTLY),
+ EC_POKEMON(GENGAR),
+ EC_WORD_GENIUS,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GEODUDE),
+ EC_POKEMON(GEODUDE),
+ EC_WORD_GET,
+ EC_WORD_GETS,
+ EC_WORD_GHOST,
+ EC_WORD_GIDDY,
+ EC_MOVE(GIGA_DRAIN),
+ EC_WORD_GIGGLE,
+ EC_WORD_GIMME,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GIRAFARIG),
+ EC_POKEMON(GIRAFARIG),
+ EC_WORD_GIRL,
+ EC_WORD_GIVE,
+ EC_WORD_GIVE_ME,
+ EC_WORD_GIVE_UP,
+ EC_WORD_GIVES,
+ EC_POKEMON2(GLALIE),
+ EC_MOVE2(GLARE),
+ EC_POKEMON(GLIGAR),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GLOOM),
+ EC_POKEMON(GLOOM),
+ EC_WORD_GO,
+ EC_WORD_GO_AHEAD,
+ EC_WORD_GO_EASY,
+ EC_WORD_GO_HOME,
+ EC_WORD_GOES,
+ EC_WORD_GOING,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GOLBAT),
+ EC_POKEMON(GOLBAT),
+ EC_WORD_GOLD,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GOLDEEN),
+ EC_POKEMON(GOLDEEN),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GOLDUCK),
+ EC_POKEMON(GOLDUCK),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GOLEM),
+ EC_POKEMON(GOLEM),
+ EC_WORD_GOOD,
+ EC_WORD_GOOD_BYE,
+ EC_POKEMON2(GOREBYSS),
+ EC_WORD_GOT,
+ EC_WORD_GOTCHA,
+ EC_WORD_GOURMET,
+ EC_WORD_GRAAAH,
+ EC_POKEMON(GRANBULL),
+ EC_WORD_GRANDFATHER,
+ EC_WORD_GRANDMOTHER,
+ EC_WORD_GRASS,
+ EC_MOVE(GRASS_WHISTLE),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GRAVELER),
+ EC_POKEMON(GRAVELER),
+ EC_WORD_GREAT,
+ EC_WORD_GREEN,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GRIMER),
+ EC_POKEMON(GRIMER),
+ EC_POKEMON2(GROUDON),
+ EC_WORD_GROUND,
+ EC_WORD_GROUP,
+ EC_POKEMON2(GROVYLE),
+ EC_MOVE2(GROWL),
+ EC_POKEMON(GROWLITHE),
+ EC_MOVE(GROWTH),
+ EC_MOVE(GRUDGE),
+ EC_POKEMON2(GRUMPIG),
+ EC_WORD_GUARD,
+ EC_MOVE2(GUILLOTINE),
+ EC_POKEMON2(GULPIN),
+ EC_MOVE(GUST),
+ EC_WORD_GUTS,
+ EC_WORD_GUTSY,
+ EC_WORD_GWAH,
+ EC_WORD_GWAHAHAHA,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(GYARADOS),
+ EC_POKEMON(GYARADOS),
+};
+
+static const u16 sEasyChatWordsByLetter_H[] = {
+ EC_WORD_HABIT,
+ EC_WORD_HAH,
+ EC_WORD_HAHAHA,
+ EC_MOVE(HAIL),
+ EC_WORD_HALL_OF_FAME,
+ EC_WORD_HAPPENING,
+ EC_WORD_HAPPILY,
+ EC_WORD_HAPPINESS,
+ EC_WORD_HAPPY,
+ EC_WORD_HARD,
+ EC_MOVE(HARDEN),
+ EC_POKEMON2(HARIYAMA),
+ EC_WORD_HAS,
+ EC_WORD_HASSLE,
+ EC_POKEMON(HAUNTER),
+ EC_WORD_HAVE,
+ EC_WORD_HAVEN_T,
+ EC_MOVE(HAZE),
+ EC_WORD_HE,
+ EC_WORD_HE_S,
+ EC_MOVE(HEADBUTT),
+ EC_MOVE(HEAL_BELL),
+ EC_WORD_HEALTHY,
+ EC_WORD_HEAR,
+ EC_WORD_HEARING,
+ EC_WORD_HEARS,
+ EC_WORD_HEART,
+ EC_MOVE2(HEAT_WAVE),
+ EC_WORD_HEH,
+ EC_WORD_HEHE,
+ EC_WORD_HEHEHE,
+ EC_WORD_HELLO,
+ EC_MOVE2(HELPING_HAND),
+ EC_WORD_HER,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(HERACROSS),
+ EC_POKEMON(HERACROSS),
+ EC_WORD_HERE,
+ EC_WORD_HERE_GOES,
+ EC_WORD_HERE_I_COME,
+ EC_WORD_HERE_IT_IS,
+ EC_WORD_HERO,
+ EC_WORD_HEROINE,
+ EC_WORD_HERS,
+ EC_WORD_HEY,
+ EC_WORD_HEY_THERE,
+ EC_WORD_HEY_QUES,
+ EC_WORD_HI,
+ EC_MOVE2(HI_JUMP_KICK),
+ EC_WORD_HIDDEN,
+ EC_MOVE2(HIDDEN_POWER),
+ EC_WORD_HIGH,
+ EC_WORD_HIGHS,
+ EC_WORD_HIM,
+ EC_WORD_HIP_AND,
+ EC_WORD_HIS,
+ EC_WORD_HIT,
+ EC_POKEMON(HITMONCHAN),
+ EC_POKEMON(HITMONLEE),
+ EC_POKEMON(HITMONTOP),
+ EC_WORD_HIYAH,
+ EC_WORD_HMM,
+ EC_POKEMON(HO_OH),
+ EC_WORD_HOBBY,
+ EC_WORD_HOHOHO,
+ EC_WORD_HOLIDAY,
+ EC_WORD_HOME,
+ EC_WORD_HOO_HAH,
+ EC_POKEMON(HOOTHOOT),
+ EC_WORD_HOPELESS,
+ EC_POKEMON(HOPPIP),
+ EC_MOVE2(HORN_ATTACK),
+ EC_MOVE2(HORN_DRILL),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(HORSEA),
+ EC_POKEMON(HORSEA),
+ EC_WORD_HOT,
+ EC_POKEMON(HOUNDOOM),
+ EC_POKEMON(HOUNDOUR),
+ EC_WORD_HOW,
+ EC_WORD_HOW_DO,
+ EC_WORD_HOWEVER,
+ EC_MOVE2(HOWL),
+ EC_WORD_HUGE_POWER,
+ EC_WORD_HUH_QUES,
+ EC_WORD_HUMPH,
+ EC_WORD_HUNGRY,
+ EC_POKEMON2(HUNTAIL),
+ EC_WORD_HURRIED,
+ EC_WORD_HUSTLE,
+ EC_MOVE2(HYDRO_CANNON),
+ EC_MOVE2(HYDRO_PUMP),
+ EC_WORD_HYPER,
+ EC_MOVE2(HYPER_BEAM),
+ EC_WORD_HYPER_CUTTER,
+ EC_MOVE2(HYPER_FANG),
+ EC_MOVE2(HYPER_VOICE),
+ EC_POKEMON(HYPNO),
+ EC_MOVE(HYPNOSIS),
+};
+
+static const u16 sEasyChatWordsByLetter_I[] = {
+ EC_WORD_I,
+ EC_WORD_I_AM,
+ EC_WORD_I_CHOOSE_YOU,
+ EC_WORD_I_WAS,
+ EC_WORD_I_VE,
+ EC_WORD_I_VE_ARRIVED,
+ EC_WORD_ICE,
+ EC_MOVE(ICE_BALL),
+ EC_MOVE2(ICE_BEAM),
+ EC_MOVE2(ICE_PUNCH),
+ EC_MOVE2(ICICLE_SPEAR),
+ EC_MOVE(ICY_WIND),
+ EC_WORD_IDOL,
+ EC_WORD_IF,
+ EC_WORD_IF_I_LOSE,
+ EC_WORD_IF_I_WIN,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(IGGLYBUFF),
+ EC_POKEMON(IGGLYBUFF),
+ EC_WORD_IGNORANT,
+ EC_WORD_ILLUMINATE,
+ EC_POKEMON2(ILLUMISE),
+ EC_WORD_IMMUNITY,
+ EC_WORD_IMPORTANT,
+ EC_WORD_IMPOSSIBLE,
+ EC_MOVE2(IMPRISON),
+ EC_WORD_IN,
+ EC_WORD_INCREASING,
+ EC_WORD_INCREDIBLE,
+ EC_WORD_INFORMATION,
+ EC_MOVE2(INGRAIN),
+ EC_WORD_INNER_FOCUS,
+ EC_WORD_INSIDE,
+ EC_WORD_INSOMNIA,
+ EC_WORD_INSTEAD,
+ EC_WORD_INTIMIDATE,
+ EC_WORD_INVINCIBLE,
+ EC_MOVE2(IRON_DEFENSE),
+ EC_MOVE(IRON_TAIL),
+ EC_WORD_IS,
+ EC_WORD_IS_IT_QUES,
+ EC_WORD_ISN_T,
+ EC_WORD_ISN_T_IT_QUES,
+ EC_WORD_IT,
+ EC_WORD_IT_S,
+ EC_WORD_ITEM,
+ EC_POKEMON(IVYSAUR),
+};
+
+static const u16 sEasyChatWordsByLetter_J[] = {
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(JIGGLYPUFF),
+ EC_POKEMON(JIGGLYPUFF),
+ EC_POKEMON2(JIRACHI),
+ EC_WORD_JOKING,
+ EC_POKEMON(JOLTEON),
+ EC_WORD_JOY,
+ EC_WORD_JUDGE,
+ EC_MOVE2(JUMP_KICK),
+ EC_POKEMON(JUMPLUFF),
+ EC_WORD_JUST,
+ EC_POKEMON(JYNX),
+};
+
+static const u16 sEasyChatWordsByLetter_K[] = {
+ EC_POKEMON(KABUTO),
+ EC_POKEMON(KABUTOPS),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(KADABRA),
+ EC_POKEMON(KADABRA),
+ EC_POKEMON(KAKUNA),
+ EC_POKEMON(KANGASKHAN),
+ EC_MOVE(KARATE_CHOP),
+ EC_POKEMON2(KECLEON),
+ EC_WORD_KEEN_EYE,
+ EC_WORD_KID,
+ EC_WORD_KIDDING,
+ EC_WORD_KIND,
+ EC_WORD_KINDERGARTEN,
+ EC_MOVE(KINESIS),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(KINGDRA),
+ EC_POKEMON(KINGDRA),
+ EC_POKEMON(KINGLER),
+ EC_POKEMON2(KIRLIA),
+ EC_MOVE2(KNOCK_OFF),
+ EC_WORD_KNOCKOUT,
+ EC_WORD_KNOW,
+ EC_WORD_KNOWS,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(KOFFING),
+ EC_POKEMON(KOFFING),
+ EC_POKEMON(KRABBY),
+ EC_WORD_KTHX_BYE,
+ EC_POKEMON2(KYOGRE),
+};
+
+static const u16 sEasyChatWordsByLetter_L[] = {
+ EC_WORD_LACKING,
+ EC_WORD_LACKS,
+ EC_WORD_LADY,
+ EC_POKEMON2(LAIRON),
+ EC_WORD_LALALA,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(LANTURN),
+ EC_POKEMON(LANTURN),
+ EC_POKEMON(LAPRAS),
+ EC_POKEMON(LARVITAR),
+ EC_WORD_LAST,
+ EC_WORD_LATE,
+ EC_WORD_LATER,
+ EC_POKEMON2(LATIAS),
+ EC_POKEMON2(LATIOS),
+ EC_WORD_LAVISH,
+ EC_WORD_LAY,
+ EC_WORD_LEADER,
+ EC_WORD_LEADERS,
+ EC_WORD_LEAF,
+ EC_MOVE2(LEAF_BLADE),
+ EC_WORD_LEARN,
+ EC_POKEMON(LEDIAN),
+ EC_POKEMON(LEDYBA),
+ EC_MOVE(LEECH_LIFE),
+ EC_MOVE2(LEECH_SEED),
+ EC_MOVE2(LEER),
+ EC_WORD_LEFT,
+ EC_WORD_LEGEND,
+ EC_WORD_LESS,
+ EC_WORD_LESSONS,
+ EC_WORD_LET_ME_WIN,
+ EC_WORD_LET_S,
+ EC_WORD_LETTER,
+ EC_WORD_LEVEL,
+ EC_WORD_LEVITATE,
+ EC_MOVE(LICK),
+ EC_POKEMON(LICKITUNG),
+ EC_WORD_LIE,
+ EC_WORD_LIFE,
+ EC_MOVE2(LIGHT_SCREEN),
+ EC_WORD_LIGHTNINGROD,
+ EC_WORD_LIKE,
+ EC_WORD_LIKELY_TO,
+ EC_WORD_LIKES,
+ EC_POKEMON2(LILEEP),
+ EC_WORD_LIMBER,
+ EC_WORD_LINK,
+ EC_POKEMON2(LINOONE),
+ EC_WORD_LIQUID_OOZE,
+ EC_WORD_LISTEN,
+ EC_WORD_LISTENING,
+ EC_WORD_LISTENS,
+ EC_WORD_LIVING,
+ EC_MOVE2(LOCK_ON),
+ EC_WORD_LOCOMOTIVE,
+ EC_WORD_LOL,
+ EC_WORD_LOLLING,
+ EC_POKEMON2(LOMBRE),
+ EC_WORD_LONESOME,
+ EC_WORD_LOOK,
+ EC_WORD_LOOKS,
+ EC_WORD_LOSE,
+ EC_WORD_LOSER,
+ EC_WORD_LOSING,
+ EC_WORD_LOSS,
+ EC_WORD_LOST,
+ EC_POKEMON2(LOTAD),
+ EC_POKEMON2(LOUDRED),
+ EC_WORD_LOUSY,
+ EC_MOVE(LOVELY_KISS),
+ EC_WORD_LOVEY_DOVEY,
+ EC_WORD_LOW,
+ EC_MOVE(LOW_KICK),
+ EC_WORD_LOWS,
+ EC_POKEMON2(LUDICOLO),
+ EC_POKEMON(LUGIA),
+ EC_WORD_LUKEWARM,
+ EC_POKEMON2(LUNATONE),
+ EC_MOVE2(LUSTER_PURGE),
+ EC_POKEMON2(LUVDISC),
+};
+
+static const u16 sEasyChatWordsByLetter_M[] = {
+ EC_MOVE2(MACH_PUNCH),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MACHAMP),
+ EC_POKEMON(MACHAMP),
+ EC_WORD_MACHINE,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MACHOKE),
+ EC_POKEMON(MACHOKE),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MACHOP),
+ EC_POKEMON(MACHOP),
+ EC_WORD_MAGAZINE,
+ EC_POKEMON(MAGBY),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MAGCARGO),
+ EC_POKEMON(MAGCARGO),
+ EC_MOVE2(MAGIC_COAT),
+ EC_MOVE2(MAGICAL_LEAF),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MAGIKARP),
+ EC_POKEMON(MAGIKARP),
+ EC_WORD_MAGMA_ARMOR,
+ EC_POKEMON(MAGMAR),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MAGNEMITE),
+ EC_POKEMON(MAGNEMITE),
+ EC_WORD_MAGNET_PULL,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MAGNETON),
+ EC_POKEMON(MAGNETON),
+ EC_MOVE2(MAGNITUDE),
+ EC_WORD_MAIL,
+ EC_WORD_MAKE,
+ EC_WORD_MAKING,
+ EC_POKEMON2(MAKUHITA),
+ EC_WORD_MAN,
+ EC_POKEMON2(MANECTRIC),
+ EC_POKEMON(MANKEY),
+ EC_POKEMON(MANTINE),
+ EC_POKEMON(MAREEP),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MARILL),
+ EC_POKEMON(MARILL),
+ EC_POKEMON(MAROWAK),
+ EC_POKEMON2(MARSHTOMP),
+ EC_WORD_MARVEL_SCALE,
+ EC_POKEMON2(MASQUERAIN),
+ EC_WORD_MASTER,
+ EC_WORD_MATCH,
+ EC_WORD_MATCH_UP,
+ EC_POKEMON2(MAWILE),
+ EC_WORD_MAYBE,
+ EC_WORD_MC,
+ EC_WORD_ME,
+ EC_WORD_MEAN,
+ EC_MOVE(MEAN_LOOK),
+ EC_POKEMON2(MEDICHAM),
+ EC_MOVE2(MEDITATE),
+ EC_POKEMON2(MEDITITE),
+ EC_WORD_MEET,
+ EC_WORD_MEET_YOU,
+ EC_WORD_MEETS,
+ EC_WORD_MEGA,
+ EC_MOVE2(MEGA_DRAIN),
+ EC_MOVE2(MEGA_KICK),
+ EC_MOVE2(MEGA_PUNCH),
+ EC_MOVE2(MEGAHORN),
+ EC_POKEMON(MEGANIUM),
+ EC_MOVE(MEMENTO),
+ EC_POKEMON(MEOWTH),
+ EC_WORD_MESSAGE,
+ EC_POKEMON2(METAGROSS),
+ EC_MOVE2(METAL_CLAW),
+ EC_MOVE(METAL_SOUND),
+ EC_POKEMON2(METANG),
+ EC_POKEMON(METAPOD),
+ EC_MOVE(METEOR_MASH),
+ EC_MOVE2(METRONOME),
+ EC_POKEMON(MEW),
+ EC_POKEMON(MEWTWO),
+ EC_POKEMON2(MIGHTYENA),
+ EC_MOVE2(MILK_DRINK),
+ EC_POKEMON2(MILOTIC),
+ EC_POKEMON(MILTANK),
+ EC_MOVE2(MIMIC),
+ EC_MOVE(MIND_READER),
+ EC_MOVE2(MINIMIZE),
+ EC_POKEMON2(MINUN),
+ EC_WORD_MINUS,
+ EC_MOVE2(MIRROR_COAT),
+ EC_MOVE(MIRROR_MOVE),
+ EC_POKEMON(MISDREAVUS),
+ EC_WORD_MISHEARD,
+ EC_WORD_MISS,
+ EC_MOVE(MIST),
+ EC_MOVE2(MIST_BALL),
+ EC_WORD_MISTAKE,
+ EC_WORD_MMM,
+ EC_WORD_MODE,
+ EC_WORD_MODERN,
+ EC_POKEMON(MOLTRES),
+ EC_WORD_MOMENTUM,
+ EC_WORD_MONDAY,
+ EC_WORD_MONEY,
+ EC_WORD_MONTH,
+ EC_WORD_MOOD,
+ EC_MOVE2(MOONLIGHT),
+ EC_WORD_MORE,
+ EC_WORD_MORNING,
+ EC_MOVE(MORNING_SUN),
+ EC_WORD_MOTHER,
+ EC_WORD_MOVE,
+ EC_WORD_MOVIE,
+ EC_WORD_MR,
+ EC_POKEMON(MR_MIME),
+ EC_WORD_MRS,
+ EC_WORD_MUCH,
+ EC_WORD_MUCH_OBLIGED,
+ EC_MOVE2(MUD_SHOT),
+ EC_MOVE2(MUD_SPORT),
+ EC_MOVE2(MUD_SLAP),
+ EC_MOVE2(MUDDY_WATER),
+ EC_POKEMON2(MUDKIP),
+ EC_WORD_MUFUFU,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(MUK),
+ EC_POKEMON(MUK),
+ EC_POKEMON(MURKROW),
+ EC_WORD_MUSIC,
+ EC_WORD_MUST_BE,
+ EC_WORD_MY,
+ EC_WORD_MYSELF,
+ EC_WORD_MYSTERY,
+};
+
+static const u16 sEasyChatWordsByLetter_N[] = {
+ EC_WORD_NAME,
+ EC_WORD_NAP,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(NATU),
+ EC_POKEMON(NATU),
+ EC_WORD_NATURAL,
+ EC_WORD_NATURAL_CURE,
+ EC_WORD_NATURALLY,
+ EC_WORD_NATURE,
+ EC_MOVE(NATURE_POWER),
+ EC_WORD_NEAR,
+ EC_WORD_NEARLY,
+ EC_WORD_NEED,
+ EC_MOVE2(NEEDLE_ARM),
+ EC_WORD_NEGATIVE,
+ EC_WORD_NEVER,
+ EC_WORD_NEW,
+ EC_WORD_NEWS,
+ EC_WORD_NEXT,
+ EC_WORD_NICE,
+ EC_POKEMON(NIDOKING),
+ EC_POKEMON(NIDOQUEEN),
+ EC_POKEMON(NIDORAN_F),
+ EC_POKEMON(NIDORAN_M),
+ EC_POKEMON(NIDORINA),
+ EC_POKEMON(NIDORINO),
+ EC_WORD_NIGHT,
+ EC_MOVE2(NIGHT_SHADE),
+ EC_MOVE(NIGHTMARE),
+ EC_WORD_NIGHTTIME,
+ EC_POKEMON2(NINCADA),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(NINETALES),
+ EC_POKEMON(NINETALES),
+ EC_POKEMON2(NINJASK),
+ EC_WORD_NITWIT,
+ EC_WORD_NO,
+ EC_WORD_NO_MATCH,
+ EC_WORD_NO_1,
+ EC_POKEMON(NOCTOWL),
+ EC_WORD_NOISY,
+ EC_WORD_NON_STOP,
+ EC_WORD_NONE,
+ EC_WORD_NOPE,
+ EC_WORD_NORMAL,
+ EC_POKEMON2(NOSEPASS),
+ EC_WORD_NOT,
+ EC_WORD_NOT_VERY,
+ EC_WORD_NOTHING,
+ EC_WORD_NOW,
+ EC_POKEMON2(NUMEL),
+ EC_POKEMON2(NUZLEAF),
+};
+
+static const u16 sEasyChatWordsByLetter_O[] = {
+ EC_WORD_OBLIVIOUS,
+ EC_MOVE(OCTAZOOKA),
+ EC_POKEMON(OCTILLERY),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(ODDISH),
+ EC_POKEMON(ODDISH),
+ EC_MOVE(ODOR_SLEUTH),
+ EC_WORD_OF,
+ EC_WORD_OFF,
+ EC_WORD_OFFENSIVE,
+ EC_WORD_OH,
+ EC_WORD_OH_DEAR,
+ EC_WORD_OH_YEAH,
+ EC_WORD_OH_KAY,
+ EC_WORD_OH_QUES,
+ EC_WORD_OI,
+ EC_WORD_OI_OI_OI,
+ EC_WORD_OK_QUES,
+ EC_WORD_OKAY,
+ EC_WORD_OLD,
+ EC_WORD_OLDEN,
+ EC_POKEMON(OMANYTE),
+ EC_POKEMON(OMASTAR),
+ EC_WORD_ON,
+ EC_WORD_ONCE,
+ EC_POKEMON(ONIX),
+ EC_WORD_ONLY,
+ EC_WORD_OOPS,
+ EC_WORD_OPPONENT,
+ EC_WORD_OPPOSITE,
+ EC_WORD_OR,
+ EC_WORD_OTHER,
+ EC_WORD_OUR,
+ EC_WORD_OUT,
+ EC_MOVE(OUTRAGE),
+ EC_WORD_OUTSIDE,
+ EC_WORD_OVER,
+ EC_WORD_OVERDO,
+ EC_WORD_OVERGROW,
+ EC_MOVE(OVERHEAT),
+ EC_WORD_OVERWHELMING,
+ EC_WORD_OWN,
+ EC_WORD_OWN_TEMPO,
+};
+
+static const u16 sEasyChatWordsByLetter_P[] = {
+ EC_MOVE(PAIN_SPLIT),
+ EC_POKEMON(PARAS),
+ EC_POKEMON(PARASECT),
+ EC_WORD_PARDON,
+ EC_WORD_PARENT,
+ EC_WORD_PARTNER,
+ EC_WORD_PARTY,
+ EC_WORD_PATTERN,
+ EC_MOVE2(PAY_DAY),
+ EC_WORD_PC,
+ EC_MOVE2(PECK),
+ EC_POKEMON2(PELIPPER),
+ EC_WORD_PERFECT,
+ EC_WORD_PERFECTION,
+ EC_MOVE2(PERISH_SONG),
+ EC_POKEMON(PERSIAN),
+ EC_WORD_PERSON,
+ EC_MOVE2(PETAL_DANCE),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(PHANPY),
+ EC_POKEMON(PHANPY),
+ EC_WORD_PHONE,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(PICHU),
+ EC_POKEMON(PICHU),
+ EC_WORD_PICKUP,
+ EC_POKEMON(PIDGEOT),
+ EC_POKEMON(PIDGEOTTO),
+ EC_POKEMON(PIDGEY),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(PIKACHU),
+ EC_POKEMON(PIKACHU),
+ EC_POKEMON(PILOSWINE),
+ EC_MOVE2(PIN_MISSILE),
+ EC_POKEMON(PINECO),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(PINSIR),
+ EC_POKEMON(PINSIR),
+ EC_WORD_PKRS,
+ EC_WORD_PLACE,
+ EC_WORD_PLANS,
+ EC_WORD_PLAY,
+ EC_WORD_PLAYED,
+ EC_WORD_PLAYS,
+ EC_WORD_PLEASE,
+ EC_WORD_PLUS,
+ EC_WORD_PLUSH_DOLL,
+ EC_POKEMON2(PLUSLE),
+ EC_WORD_POINTS,
+ EC_WORD_POISON,
+ EC_MOVE2(POISON_FANG),
+ EC_MOVE2(POISON_GAS),
+ EC_WORD_POISON_POINT,
+ EC_MOVE2(POISON_STING),
+ EC_MOVE2(POISON_TAIL),
+ EC_MOVE2(POISON_POWDER),
+ EC_WORD_POKEBLOCK,
+ EC_WORD_POKEDEX,
+ EC_WORD_POKEMON,
+ EC_WORD_POKENAV,
+ EC_POKEMON(POLITOED),
+ EC_POKEMON(POLIWAG),
+ EC_POKEMON(POLIWHIRL),
+ EC_POKEMON(POLIWRATH),
+ EC_POKEMON(PONYTA),
+ EC_POKEMON2(POOCHYENA),
+ EC_WORD_POPULAR,
+ EC_POKEMON(PORYGON),
+ EC_POKEMON(PORYGON2),
+ EC_MOVE2(POUND),
+ EC_MOVE(POWDER_SNOW),
+ EC_WORD_POWER,
+ EC_WORD_PRAISE,
+ EC_WORD_PREPOSTEROUS,
+ EC_MOVE2(PRESENT),
+ EC_WORD_PRESSURE,
+ EC_WORD_PRETEND,
+ EC_WORD_PRETTY,
+ EC_POKEMON(PRIMEAPE),
+ EC_WORD_PROBABLY,
+ EC_WORD_PROMISE,
+ EC_MOVE2(PROTECT),
+ EC_MOVE(PSYBEAM),
+ EC_MOVE(PSYCH_UP),
+ -1, 2, // Doubled pokemon species name
+ EC_WORD_PSYCHIC,
+ EC_MOVE(PSYCHIC),
+ EC_MOVE(PSYCHO_BOOST),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(PSYDUCK),
+ EC_POKEMON(PSYDUCK),
+ EC_MOVE(PSYWAVE),
+ EC_POKEMON(PUPITAR),
+ EC_WORD_PURE_POWER,
+ EC_MOVE(PURSUIT),
+ EC_WORD_PUSHOVER,
+};
+
+static const u16 sEasyChatWordsByLetter_Q[] = {
+ EC_POKEMON(QUAGSIRE),
+ EC_WORD_QUESTION,
+ EC_MOVE2(QUICK_ATTACK),
+ EC_POKEMON(QUILAVA),
+ EC_WORD_QUITE,
+ EC_POKEMON(QWILFISH),
+};
+
+static const u16 sEasyChatWordsByLetter_R[] = {
+ EC_WORD_RADIO,
+ EC_MOVE(RAGE),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(RAICHU),
+ EC_POKEMON(RAICHU),
+ EC_POKEMON(RAIKOU),
+ EC_MOVE(RAIN_DANCE),
+ EC_WORD_RAIN_DISH,
+ EC_POKEMON2(RALTS),
+ EC_WORD_RANK,
+ EC_MOVE(RAPID_SPIN),
+ EC_POKEMON(RAPIDASH),
+ EC_WORD_RARE,
+ EC_WORD_RATHER,
+ EC_POKEMON(RATICATE),
+ EC_POKEMON(RATTATA),
+ EC_POKEMON2(RAYQUAZA),
+ EC_MOVE2(RAZOR_LEAF),
+ EC_MOVE(RAZOR_WIND),
+ EC_WORD_READY,
+ EC_WORD_REALLY,
+ EC_WORD_REAR,
+ EC_WORD_RECEIVED,
+ EC_WORD_RECOMMEND,
+ EC_MOVE(RECOVER),
+ EC_MOVE2(RECYCLE),
+ EC_WORD_RED,
+ EC_MOVE2(REFLECT),
+ EC_MOVE2(REFRESH),
+ EC_WORD_REFRESHING,
+ EC_WORD_REFUSE,
+ EC_POKEMON2(REGICE),
+ EC_POKEMON2(REGIROCK),
+ EC_POKEMON2(REGISTEEL),
+ EC_WORD_REJECT,
+ EC_WORD_RELEASE,
+ EC_POKEMON2(RELICANTH),
+ EC_POKEMON(REMORAID),
+ EC_WORD_RENTAL,
+ EC_MOVE2(REST),
+ EC_WORD_RESUSCITATE,
+ EC_MOVE(RETURN),
+ EC_MOVE2(REVENGE),
+ EC_MOVE(REVERSAL),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(RHYDON),
+ EC_POKEMON(RHYDON),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(RHYHORN),
+ EC_POKEMON(RHYHORN),
+ EC_WORD_RIBBON,
+ EC_WORD_RICKETY,
+ EC_WORD_RIGHT,
+ EC_WORD_RIPPED,
+ EC_WORD_RIVAL,
+ EC_MOVE2(ROAR),
+ EC_WORD_ROCK,
+ EC_MOVE2(ROCK_BLAST),
+ EC_WORD_ROCK_HEAD,
+ EC_MOVE(ROCK_SLIDE),
+ EC_MOVE(ROCK_SMASH),
+ EC_MOVE(ROCK_THROW),
+ EC_MOVE(ROCK_TOMB),
+ EC_WORD_ROCK_SOLID,
+ EC_MOVE2(ROLE_PLAY),
+ EC_MOVE2(ROLLING_KICK),
+ EC_MOVE(ROLLOUT),
+ EC_WORD_ROMANTIC,
+ EC_WORD_ROOM,
+ EC_POKEMON2(ROSELIA),
+ EC_WORD_ROUGH_SKIN,
+ EC_WORD_RPG,
+ EC_WORD_RUBY,
+ EC_WORD_RULE,
+ EC_WORD_RUN,
+ EC_WORD_RUN_AWAY,
+ EC_WORD_RUNS,
+};
+
+static const u16 sEasyChatWordsByLetter_S[] = {
+ EC_POKEMON2(SABLEYE),
+ EC_MOVE(SACRED_FIRE),
+ EC_WORD_SAD,
+ EC_WORD_SADLY,
+ EC_MOVE(SAFEGUARD),
+ EC_WORD_SAID,
+ EC_POKEMON2(SALAMENCE),
+ EC_WORD_SAND_STREAM,
+ EC_MOVE(SAND_TOMB),
+ EC_WORD_SAND_VEIL,
+ EC_MOVE(SAND_ATTACK),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(SANDSHREW),
+ EC_POKEMON(SANDSHREW),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(SANDSLASH),
+ EC_POKEMON(SANDSLASH),
+ EC_MOVE(SANDSTORM),
+ EC_WORD_SAPPHIRE,
+ EC_WORD_SATISFIED,
+ EC_WORD_SATURDAY,
+ EC_WORD_SAYS,
+ EC_WORD_SCARY,
+ EC_MOVE(SCARY_FACE),
+ EC_WORD_SCATTER,
+ EC_POKEMON2(SCEPTILE),
+ EC_WORD_SCHOOL,
+ EC_POKEMON(SCIZOR),
+ EC_MOVE2(SCRATCH),
+ EC_MOVE(SCREECH),
+ EC_POKEMON(SCYTHER),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(SEADRA),
+ EC_POKEMON(SEADRA),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(SEAKING),
+ EC_POKEMON(SEAKING),
+ EC_POKEMON2(SEALEO),
+ EC_WORD_SEARCH,
+ EC_WORD_SECRET,
+ EC_WORD_SECRET_BASE,
+ EC_MOVE2(SECRET_POWER),
+ EC_WORD_SEE,
+ EC_WORD_SEE_YA,
+ EC_POKEMON2(SEEDOT),
+ EC_WORD_SEEK,
+ EC_POKEMON(SEEL),
+ EC_WORD_SEEMS,
+ EC_WORD_SEES,
+ EC_MOVE2(SEISMIC_TOSS),
+ EC_MOVE(SELF_DESTRUCT),
+ EC_WORD_SENSE,
+ EC_POKEMON(SENTRET),
+ EC_WORD_SERENE_GRACE,
+ EC_WORD_SERIOUS,
+ EC_WORD_SERIOUSLY,
+ EC_WORD_SERVICE,
+ EC_POKEMON2(SEVIPER),
+ EC_MOVE(SHADOW_BALL),
+ EC_MOVE(SHADOW_PUNCH),
+ EC_WORD_SHADOW_TAG,
+ EC_WORD_SHADY,
+ EC_WORD_SHAKE,
+ EC_WORD_SHAKY,
+ EC_WORD_SHALLOW,
+ EC_POKEMON2(SHARPEDO),
+ EC_MOVE(SHARPEN),
+ EC_WORD_SHE,
+ EC_WORD_SHE_IS,
+ EC_WORD_SHE_WAS,
+ EC_WORD_SHED_SKIN,
+ EC_POKEMON2(SHEDINJA),
+ EC_MOVE(SHEER_COLD),
+ EC_POKEMON2(SHELGON),
+ EC_WORD_SHELL_ARMOR,
+ EC_POKEMON(SHELLDER),
+ EC_WORD_SHIELD_DUST,
+ EC_POKEMON2(SHIFTRY),
+ EC_WORD_SHINE,
+ EC_MOVE2(SHOCK_WAVE),
+ EC_WORD_SHOCKED,
+ EC_WORD_SHOPPING,
+ EC_WORD_SHOULD,
+ EC_WORD_SHOW,
+ EC_WORD_SHREDDED,
+ EC_POKEMON2(SHROOMISH),
+ EC_POKEMON(SHUCKLE),
+ EC_POKEMON2(SHUPPET),
+ EC_WORD_SIBLINGS,
+ EC_WORD_SIGH,
+ EC_MOVE(SIGNAL_BEAM),
+ EC_POKEMON2(SILCOON),
+ EC_WORD_SILKY,
+ EC_WORD_SILVER,
+ EC_MOVE(SILVER_WIND),
+ EC_WORD_SIMPLE,
+ EC_WORD_SINCE,
+ EC_MOVE(SING),
+ EC_WORD_SINK,
+ EC_WORD_SISTER,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(SKARMORY),
+ EC_POKEMON(SKARMORY),
+ EC_MOVE(SKETCH),
+ EC_WORD_SKILL,
+ EC_MOVE(SKILL_SWAP),
+ EC_WORD_SKILLED,
+ EC_POKEMON(SKIPLOOM),
+ EC_POKEMON2(SKITTY),
+ EC_MOVE2(SKULL_BASH),
+ EC_MOVE(SKY_ATTACK),
+ EC_MOVE(SKY_UPPERCUT),
+ EC_MOVE2(SLACK_OFF),
+ EC_POKEMON2(SLAKING),
+ EC_POKEMON2(SLAKOTH),
+ EC_MOVE2(SLAM),
+ EC_MOVE(SLASH),
+ EC_WORD_SLEEP,
+ EC_MOVE2(SLEEP_POWDER),
+ EC_MOVE2(SLEEP_TALK),
+ EC_WORD_SLEPT,
+ EC_WORD_SLIDE,
+ EC_WORD_SLIMY,
+ EC_POKEMON(SLOWBRO),
+ EC_POKEMON(SLOWKING),
+ EC_POKEMON(SLOWPOKE),
+ EC_MOVE2(SLUDGE),
+ EC_MOVE2(SLUDGE_BOMB),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(SLUGMA),
+ EC_POKEMON(SLUGMA),
+ EC_WORD_SMACK,
+ EC_WORD_SMALL,
+ EC_WORD_SMART,
+ EC_WORD_SMARTNESS,
+ EC_POKEMON(SMEARGLE),
+ EC_WORD_SMELL,
+ EC_WORD_SMELL_YA,
+ EC_MOVE(SMELLING_SALT),
+ EC_WORD_SMITE,
+ EC_MOVE(SMOG),
+ EC_MOVE(SMOKESCREEN),
+ EC_POKEMON(SMOOCHUM),
+ EC_WORD_SMOOTH,
+ EC_MOVE2(SNATCH),
+ EC_POKEMON(SNEASEL),
+ EC_MOVE(SNORE),
+ EC_POKEMON(SNORLAX),
+ EC_WORD_SNORT,
+ EC_POKEMON2(SNORUNT),
+ EC_POKEMON(SNUBBULL),
+ EC_WORD_SO,
+ EC_MOVE2(SOFT_BOILED),
+ EC_WORD_SOFTWARE,
+ EC_MOVE(SOLAR_BEAM),
+ EC_POKEMON2(SOLROCK),
+ EC_WORD_SOME,
+ EC_WORD_SOMEHOW,
+ EC_WORD_SOMEONE,
+ EC_WORD_SOMETHING,
+ EC_WORD_SOMETIME,
+ EC_WORD_SON,
+ EC_WORD_SONG,
+ EC_WORD_SONGS,
+ EC_MOVE(SONIC_BOOM),
+ EC_WORD_SOON,
+ EC_WORD_SORRY,
+ EC_WORD_SOUNDPROOF,
+ EC_WORD_SP_ABILITY,
+ EC_MOVE(SPARK),
+ EC_POKEMON(SPEAROW),
+ EC_WORD_SPECTATOR,
+ EC_WORD_SPEED_BOOST,
+ EC_POKEMON2(SPHEAL),
+ EC_MOVE(SPIDER_WEB),
+ EC_MOVE2(SPIKE_CANNON),
+ EC_MOVE2(SPIKES),
+ EC_POKEMON(SPINARAK),
+ EC_POKEMON2(SPINDA),
+ EC_WORD_SPIRALING,
+ EC_WORD_SPIRIT,
+ EC_MOVE2(SPIT_UP),
+ EC_MOVE(SPITE),
+ EC_MOVE2(SPLASH),
+ EC_POKEMON2(SPOINK),
+ EC_MOVE(SPORE),
+ EC_WORD_SPORTS,
+ EC_WORD_SPRING,
+ EC_POKEMON(SQUIRTLE),
+ EC_WORD_STAGE,
+ EC_POKEMON(STANTLER),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(STARMIE),
+ EC_POKEMON(STARMIE),
+ EC_WORD_START,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(STARYU),
+ EC_POKEMON(STARYU),
+ EC_WORD_STATIC,
+ EC_WORD_STAY_AT_HOME,
+ EC_WORD_STEEL,
+ EC_MOVE2(STEEL_WING),
+ EC_POKEMON(STEELIX),
+ EC_WORD_STENCH,
+ EC_WORD_STICKY_HOLD,
+ EC_MOVE2(STOCKPILE),
+ EC_MOVE2(STOMP),
+ EC_WORD_STOP,
+ EC_WORD_STORE,
+ EC_WORD_STORES,
+ EC_WORD_STORY,
+ EC_WORD_STRATEGY,
+ EC_MOVE(STRENGTH),
+ EC_MOVE(STRING_SHOT),
+ EC_WORD_STRONG,
+ EC_MOVE2(STRUGGLE),
+ EC_WORD_STUDY,
+ EC_MOVE(STUN_SPORE),
+ EC_WORD_STURDY,
+ EC_MOVE(SUBMISSION),
+ EC_MOVE2(SUBSTITUTE),
+ EC_WORD_SUCTION_CUPS,
+ EC_POKEMON(SUDOWOODO),
+ EC_POKEMON(SUICUNE),
+ EC_WORD_SUMMER,
+ EC_WORD_SUNDAY,
+ EC_POKEMON(SUNFLORA),
+ EC_POKEMON(SUNKERN),
+ EC_MOVE2(SUNNY_DAY),
+ EC_WORD_SUPER,
+ EC_MOVE(SUPER_FANG),
+ EC_MOVE2(SUPERPOWER),
+ EC_MOVE2(SUPERSONIC),
+ EC_MOVE2(SURF),
+ EC_WORD_SURPRISE,
+ EC_WORD_SURRENDER,
+ EC_POKEMON2(SURSKIT),
+ EC_POKEMON2(SWABLU),
+ EC_MOVE(SWAGGER),
+ EC_MOVE2(SWALLOW),
+ EC_POKEMON2(SWALOT),
+ EC_POKEMON2(SWAMPERT),
+ EC_WORD_SWARM,
+ EC_MOVE2(SWEET_KISS),
+ EC_MOVE(SWEET_SCENT),
+ EC_WORD_SWEETS,
+ EC_POKEMON2(SWELLOW),
+ EC_MOVE(SWIFT),
+ EC_WORD_SWIFT_SWIM,
+ EC_POKEMON(SWINUB),
+ EC_MOVE2(SWORDS_DANCE),
+ EC_WORD_SYNCHRONIZE,
+ EC_MOVE(SYNTHESIS),
+ EC_WORD_SYSTEM,
+};
+
+static const u16 sEasyChatWordsByLetter_T[] = {
+ EC_MOVE2(TACKLE),
+ EC_MOVE2(TAIL_GLOW),
+ EC_MOVE(TAIL_WHIP),
+ EC_POKEMON2(TAILLOW),
+ EC_WORD_TAKE,
+ EC_MOVE2(TAKE_DOWN),
+ EC_WORD_TAKE_THAT,
+ EC_WORD_TALENT,
+ EC_WORD_TALK,
+ EC_WORD_TALKING,
+ EC_POKEMON(TANGELA),
+ EC_WORD_TASTY,
+ EC_MOVE2(TAUNT),
+ EC_POKEMON(TAUROS),
+ EC_WORD_TCH,
+ EC_WORD_TEACH,
+ EC_WORD_TEACHER,
+ EC_WORD_TEACHES,
+ EC_POKEMON(TEDDIURSA),
+ EC_MOVE2(TEETER_DANCE),
+ EC_MOVE2(TELEPORT),
+ EC_WORD_TELEVISION,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(TENTACOOL),
+ EC_POKEMON(TENTACOOL),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(TENTACRUEL),
+ EC_POKEMON(TENTACRUEL),
+ EC_WORD_TERRIBLE,
+ EC_WORD_TEST,
+ EC_WORD_THAN,
+ EC_WORD_THANK_YOU,
+ EC_WORD_THANKS,
+ EC_WORD_THAT,
+ EC_WORD_THAT_WAS,
+ EC_WORD_THAT_S,
+ EC_WORD_THAT_S_IT_EXCL,
+ EC_WORD_THE,
+ EC_WORD_THEIR,
+ EC_WORD_THERE,
+ EC_WORD_THESE,
+ EC_WORD_THESE_WERE,
+ EC_WORD_THEY,
+ EC_WORD_THEY_WERE,
+ EC_WORD_THEY_RE,
+ EC_WORD_THEY_VE,
+ EC_WORD_THICK,
+ EC_WORD_THICK_FAT,
+ EC_MOVE2(THIEF),
+ EC_WORD_THIN,
+ EC_WORD_THING,
+ EC_WORD_THINGS,
+ EC_WORD_THINK,
+ EC_WORD_THINKS,
+ EC_WORD_THIRSTY,
+ EC_WORD_THIS,
+ EC_WORD_THIS_IS_IT_EXCL,
+ EC_WORD_THOSE,
+ EC_WORD_THOSE_ARE,
+ EC_WORD_THOSE_WERE,
+ EC_MOVE(THRASH),
+ EC_WORD_THROW,
+ EC_MOVE(THUNDER),
+ EC_MOVE2(THUNDER_WAVE),
+ EC_MOVE(THUNDERBOLT),
+ EC_MOVE(THUNDER_PUNCH),
+ EC_MOVE2(THUNDER_SHOCK),
+ EC_WORD_THURSDAY,
+ EC_MOVE(TICKLE),
+ EC_WORD_TICKLISH,
+ EC_WORD_TIGHT,
+ EC_WORD_TIME,
+ EC_WORD_TIMES,
+ EC_WORD_TIRED,
+ EC_WORD_TO,
+ EC_WORD_TO_HER,
+ EC_WORD_TO_ME,
+ EC_WORD_TO_THEM,
+ EC_WORD_TO_US,
+ EC_WORD_TO_WHOM,
+ EC_WORD_TODAY,
+ EC_POKEMON(TOGEPI),
+ EC_WORD_TOGETHER,
+ EC_POKEMON(TOGETIC),
+ EC_WORD_TOMORROW,
+ EC_WORD_TOO,
+ EC_WORD_TOO_LATE,
+ EC_WORD_TOO_STRONG,
+ EC_WORD_TOO_WEAK,
+ EC_WORD_TOP,
+ EC_POKEMON2(TORCHIC),
+ EC_POKEMON2(TORKOAL),
+ EC_MOVE(TORMENT),
+ EC_WORD_TORRENT,
+ EC_WORD_TOTALLY,
+ EC_POKEMON(TOTODILE),
+ EC_WORD_TOUGH,
+ EC_WORD_TOUGHNESS,
+ EC_WORD_TOURNAMENT,
+ EC_WORD_TOWER,
+ EC_MOVE2(TOXIC),
+ EC_WORD_TOYS,
+ EC_WORD_TRACE,
+ EC_WORD_TRADE,
+ EC_WORD_TRAIN,
+ EC_WORD_TRAINER,
+ EC_WORD_TRAINS,
+ EC_MOVE2(TRANSFORM),
+ EC_POKEMON2(TRAPINCH),
+ EC_WORD_TRAVEL,
+ EC_WORD_TREASURE,
+ EC_POKEMON2(TREECKO),
+ EC_WORD_TRENDY,
+ EC_MOVE2(TRI_ATTACK),
+ EC_MOVE2(TRICK),
+ EC_WORD_TRIES,
+ EC_MOVE2(TRIPLE_KICK),
+ EC_POKEMON2(TROPIUS),
+ EC_WORD_TRUANT,
+ EC_WORD_TRULY,
+ EC_WORD_TRUMP_CARD,
+ EC_WORD_TRUST,
+ EC_WORD_TRY,
+ EC_WORD_TUESDAY,
+ EC_MOVE2(TWINEEDLE),
+ EC_WORD_TWIRLING,
+ EC_MOVE2(TWISTER),
+ EC_WORD_TYPE,
+ EC_POKEMON(TYPHLOSION),
+ EC_POKEMON(TYRANITAR),
+ EC_POKEMON(TYROGUE),
+};
+
+static const u16 sEasyChatWordsByLetter_U[] = {
+ EC_WORD_UGLY,
+ EC_WORD_UH_HUH,
+ EC_WORD_UH_OH,
+ EC_WORD_UM,
+ EC_POKEMON(UMBREON),
+ EC_WORD_UNAVOIDABLE,
+ EC_WORD_UNBELIEVABLE,
+ EC_WORD_UNCLE,
+ EC_WORD_UNDERSTAND,
+ EC_WORD_UNDERSTANDS,
+ EC_WORD_UNDERSTOOD,
+ EC_WORD_UNION,
+ EC_POKEMON(UNOWN),
+ EC_WORD_UNTIL,
+ EC_WORD_UP,
+ EC_WORD_UPBEAT,
+ EC_MOVE(UPROAR),
+ EC_WORD_UPSIDE_DOWN,
+ EC_WORD_URGH,
+ EC_POKEMON(URSARING),
+ EC_WORD_USE,
+ EC_WORD_USELESS,
+ EC_WORD_USES,
+ EC_WORD_USING,
+};
+
+static const u16 sEasyChatWordsByLetter_V[] = {
+ EC_WORD_VACATION,
+ EC_POKEMON(VAPOREON),
+ EC_POKEMON(VENOMOTH),
+ EC_POKEMON(VENONAT),
+ EC_POKEMON(VENUSAUR),
+ EC_WORD_VERSION,
+ EC_WORD_VERSUS,
+ EC_WORD_VERY,
+ EC_POKEMON2(VIBRAVA),
+ EC_MOVE2(VICE_GRIP),
+ EC_WORD_VICTORY,
+ EC_POKEMON(VICTREEBEL),
+ EC_WORD_VIEWING,
+ EC_POKEMON2(VIGOROTH),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(VILEPLUME),
+ EC_POKEMON(VILEPLUME),
+ EC_MOVE2(VINE_WHIP),
+ EC_WORD_VITAL_SPIRIT,
+ EC_MOVE(VITAL_THROW),
+ EC_POKEMON2(VOLBEAT),
+ EC_WORD_VOLT_ABSORB,
+ EC_MOVE2(VOLT_TACKLE),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(VOLTORB),
+ EC_POKEMON(VOLTORB),
+ EC_WORD_VORACIOUS,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(VULPIX),
+ EC_POKEMON(VULPIX),
+};
+
+static const u16 sEasyChatWordsByLetter_W[] = {
+ EC_WORD_WAAAH,
+ EC_WORD_WAHAHAHA,
+ EC_POKEMON2(WAILMER),
+ EC_POKEMON2(WAILORD),
+ EC_WORD_WAIT,
+ EC_WORD_WAKE_UP,
+ EC_WORD_WAKES_UP,
+ EC_WORD_WALK,
+ EC_WORD_WALKING,
+ EC_WORD_WALKS,
+ EC_POKEMON2(WALREIN),
+ EC_WORD_WANDERING,
+ EC_WORD_WANNABE,
+ EC_WORD_WANT,
+ EC_WORD_WANTS,
+ EC_POKEMON(WARTORTLE),
+ EC_WORD_WAS,
+ EC_WORD_WASN_T,
+ EC_WORD_WATER,
+ EC_WORD_WATER_ABSORB,
+ EC_MOVE2(WATER_GUN),
+ EC_MOVE2(WATER_PULSE),
+ EC_MOVE2(WATER_SPORT),
+ EC_MOVE(WATER_SPOUT),
+ EC_WORD_WATER_VEIL,
+ EC_MOVE2(WATERFALL),
+ EC_WORD_WAY,
+ EC_WORD_WE,
+ EC_WORD_WE_RE,
+ EC_WORD_WE_VE,
+ EC_WORD_WEAK,
+ EC_WORD_WEAKENED,
+ EC_MOVE(WEATHER_BALL),
+ EC_WORD_WEDNESDAY,
+ EC_POKEMON(WEEDLE),
+ EC_WORD_WEEK,
+ EC_POKEMON(WEEPINBELL),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(WEEZING),
+ EC_POKEMON(WEEZING),
+ EC_WORD_WEIRD,
+ EC_WORD_WELCOME,
+ EC_WORD_WELL,
+ EC_WORD_WELL_THEN,
+ EC_WORD_WENT,
+ EC_WORD_WERE,
+ EC_WORD_WEREN_T,
+ EC_WORD_WHAT,
+ EC_WORD_WHAT_S_UP_QUES,
+ EC_WORD_WHEN,
+ EC_WORD_WHEN_I_WIN,
+ EC_WORD_WHERE,
+ EC_WORD_WHICH,
+ EC_WORD_WHILE,
+ EC_MOVE(WHIRLPOOL),
+ EC_MOVE2(WHIRLWIND),
+ EC_POKEMON2(WHISCASH),
+ EC_POKEMON2(WHISMUR),
+ EC_WORD_WHITE_SMOKE,
+ EC_WORD_WHO,
+ EC_WORD_WHO_IS,
+ EC_WORD_WHO_WAS,
+ EC_WORD_WHOAH,
+ EC_WORD_WHOM,
+ EC_WORD_WHOSE,
+ EC_WORD_WHY,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(WIGGLYTUFF),
+ EC_POKEMON(WIGGLYTUFF),
+ EC_WORD_WILD,
+ EC_WORD_WILL,
+ EC_WORD_WILL_BE_HERE,
+ EC_MOVE(WILL_O_WISP),
+ EC_WORD_WIMPY,
+ EC_WORD_WIN,
+ EC_MOVE2(WING_ATTACK),
+ EC_POKEMON2(WINGULL),
+ EC_WORD_WINNER,
+ EC_WORD_WINS,
+ EC_WORD_WINTER,
+ EC_WORD_WIRELESS,
+ EC_MOVE2(WISH),
+ EC_WORD_WITH,
+ EC_MOVE(WITHDRAW),
+ EC_WORD_WITHOUT,
+ EC_WORD_WOBBLY,
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(WOBBUFFET),
+ EC_POKEMON(WOBBUFFET),
+ EC_WORD_WOMAN,
+ EC_WORD_WON,
+ EC_WORD_WON_T,
+ EC_WORD_WONDER,
+ EC_WORD_WONDER_GUARD,
+ EC_POKEMON(WOOPER),
+ EC_WORD_WORD,
+ EC_WORD_WORK,
+ EC_WORD_WORKING,
+ EC_WORD_WORKS,
+ EC_WORD_WORLD,
+ EC_WORD_WORRY,
+ EC_WORD_WOULD,
+ EC_WORD_WOW,
+ EC_WORD_WOWEE,
+ EC_MOVE2(WRAP),
+ EC_WORD_WROOOAAR_EXCL,
+ EC_POKEMON2(WURMPLE),
+ EC_POKEMON2(WYNAUT),
+};
+
+static const u16 sEasyChatWordsByLetter_X[] = {
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(XATU),
+ EC_POKEMON(XATU),
+};
+
+static const u16 sEasyChatWordsByLetter_Y[] = {
+ EC_WORD_YAHOO,
+ EC_POKEMON(YANMA),
+ EC_MOVE(YAWN),
+ EC_WORD_YAY,
+ EC_WORD_YEAH,
+ EC_WORD_YEAH_YEAH,
+ EC_WORD_YEEHAW_EXCL,
+ EC_WORD_YES,
+ EC_WORD_YES_SIR_EXCL,
+ EC_WORD_YESTERDAY,
+ EC_WORD_YET,
+ EC_WORD_YO,
+ EC_WORD_YOU,
+ EC_WORD_YOU_RE,
+ EC_WORD_YOU_VE,
+ EC_WORD_YOUNG,
+ EC_WORD_YOUR,
+ EC_WORD_YOURS,
+ EC_WORD_YUP,
+};
+
+static const u16 sEasyChatWordsByLetter_Z[] = {
+ EC_POKEMON2(ZANGOOSE),
+ EC_MOVE2(ZAP_CANNON),
+ EC_POKEMON(ZAPDOS),
+ EC_POKEMON2(ZIGZAGOON),
+ -1, 2, // Doubled pokemon species name
+ EC_POKEMON2(ZUBAT),
+ EC_POKEMON(ZUBAT),
+};
+
+static const struct EasyChatWordsByLetter sEasyChatWordsByLetterPointers[] = {
+ {
+ .words = sEasyChatWordsByLetter_Others,
+ .numWords = 10,
+ },
+ {
+ .words = sEasyChatWordsByLetter_A,
+ .numWords = 106,
+ },
+ {
+ .words = sEasyChatWordsByLetter_B,
+ .numWords = 86,
+ },
+ {
+ .words = sEasyChatWordsByLetter_C,
+ .numWords = 119,
+ },
+ {
+ .words = sEasyChatWordsByLetter_D,
+ .numWords = 94,
+ },
+ {
+ .words = sEasyChatWordsByLetter_E,
+ .numWords = 58,
+ },
+ {
+ .words = sEasyChatWordsByLetter_F,
+ .numWords = 79,
+ },
+ {
+ .words = sEasyChatWordsByLetter_G,
+ .numWords = 98,
+ },
+ {
+ .words = sEasyChatWordsByLetter_H,
+ .numWords = 101,
+ },
+ {
+ .words = sEasyChatWordsByLetter_I,
+ .numWords = 48,
+ },
+ {
+ .words = sEasyChatWordsByLetter_J,
+ .numWords = 13,
+ },
+ {
+ .words = sEasyChatWordsByLetter_K,
+ .numWords = 33,
+ },
+ {
+ .words = sEasyChatWordsByLetter_L,
+ .numWords = 82,
+ },
+ {
+ .words = sEasyChatWordsByLetter_M,
+ .numWords = 142,
+ },
+ {
+ .words = sEasyChatWordsByLetter_N,
+ .numWords = 54,
+ },
+ {
+ .words = sEasyChatWordsByLetter_O,
+ .numWords = 44,
+ },
+ {
+ .words = sEasyChatWordsByLetter_P,
+ .numWords = 102,
+ },
+ {
+ .words = sEasyChatWordsByLetter_Q,
+ .numWords = 6,
+ },
+ {
+ .words = sEasyChatWordsByLetter_R,
+ .numWords = 80,
+ },
+ {
+ .words = sEasyChatWordsByLetter_S,
+ .numWords = 262,
+ },
+ {
+ .words = sEasyChatWordsByLetter_T,
+ .numWords = 133,
+ },
+ {
+ .words = sEasyChatWordsByLetter_U,
+ .numWords = 24,
+ },
+ {
+ .words = sEasyChatWordsByLetter_V,
+ .numWords = 33,
+ },
+ {
+ .words = sEasyChatWordsByLetter_W,
+ .numWords = 111,
+ },
+ {
+ .words = sEasyChatWordsByLetter_X,
+ .numWords = 4,
+ },
+ {
+ .words = sEasyChatWordsByLetter_Y,
+ .numWords = 19,
+ },
+ {
+ .words = sEasyChatWordsByLetter_Z,
+ .numWords = 8,
+ },
+};
diff --git a/src/data/ingame_trades.h b/src/data/ingame_trades.h
index 59304242b..25a5afbe3 100644
--- a/src/data/ingame_trades.h
+++ b/src/data/ingame_trades.h
@@ -134,7 +134,7 @@ static const u16 sInGameTradeMailMessages[][10] = {
EC_WORD_THAT_S,
EC_WORD_A,
EC_WORD_HEALTHY,
- EC_POKEMON2(JYNX),
+ EC_POKEMON(JYNX),
EC_WORD_EXCL,
EC_WORD_BE,
EC_WORD_KIND,
diff --git a/src/easy_chat.c b/src/easy_chat.c
new file mode 100644
index 000000000..fd96f6a30
--- /dev/null
+++ b/src/easy_chat.c
@@ -0,0 +1,742 @@
+#include "global.h"
+#include "malloc.h"
+#include "bg.h"
+#include "data.h"
+#include "decompress.h"
+#include "dynamic_placeholder_text_util.h"
+#include "easy_chat.h"
+#include "event_data.h"
+#include "field_message_box.h"
+#include "field_weather.h"
+#include "gpu_regs.h"
+#include "graphics.h"
+#include "main.h"
+#include "mevent.h"
+#include "menu.h"
+#include "mail.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokedex.h"
+#include "random.h"
+#include "sound.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text_window.h"
+#include "window.h"
+#include "constants/easy_chat.h"
+#include "constants/map_objects.h"
+#include "constants/flags.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+
+struct Unk203A120
+{
+ u16 numGroups;
+ u16 groups[EC_NUM_GROUPS];
+ u16 alphabeticalGroups[27];
+ u16 alphabeticalWordsByGroup[27][270];
+ u8 filler3958[0x2C];
+ u16 allWords[270];
+ u16 totalWords;
+}; /*size = 0x3BA4*/
+
+static EWRAM_DATA struct Unk203A120 * sEasyChatSelectionData = NULL;
+
+static bool8 EC_IsNationalPokedexEnabled(void);
+static u16 GetRandomECPokemon(void);
+static void PopulateECGroups(void);
+static void PopulateAlphabeticalGroups(void);
+static u16 GetUnlockedWordsInECGroup(u16);
+static u16 GetUnlockedWordsInAlphabeticalGroup(u16);
+static bool8 UnlockedECMonOrMove(u16, u8);
+static bool32 EC_IsDeoxys(u16 species);
+static bool8 IsWordUnlocked(u16 word);
+
+#include "data/easy_chat/easy_chat_groups.h"
+#include "data/easy_chat/easy_chat_words_by_letter.h"
+
+static const u8 *const sEasyChatGroupNamePointers[] = {
+ [EC_GROUP_POKEMON] = gEasyChatGroupName_Pokemon,
+ [EC_GROUP_TRAINER] = gEasyChatGroupName_Trainer,
+ [EC_GROUP_STATUS] = gEasyChatGroupName_Status,
+ [EC_GROUP_BATTLE] = gEasyChatGroupName_Battle,
+ [EC_GROUP_GREETINGS] = gEasyChatGroupName_Greetings,
+ [EC_GROUP_PEOPLE] = gEasyChatGroupName_People,
+ [EC_GROUP_VOICES] = gEasyChatGroupName_Voices,
+ [EC_GROUP_SPEECH] = gEasyChatGroupName_Speech,
+ [EC_GROUP_ENDINGS] = gEasyChatGroupName_Endings,
+ [EC_GROUP_FEELINGS] = gEasyChatGroupName_Feelings,
+ [EC_GROUP_CONDITIONS] = gEasyChatGroupName_Conditions,
+ [EC_GROUP_ACTIONS] = gEasyChatGroupName_Actions,
+ [EC_GROUP_LIFESTYLE] = gEasyChatGroupName_Lifestyle,
+ [EC_GROUP_HOBBIES] = gEasyChatGroupName_Hobbies,
+ [EC_GROUP_TIME] = gEasyChatGroupName_Time,
+ [EC_GROUP_MISC] = gEasyChatGroupName_Misc,
+ [EC_GROUP_ADJECTIVES] = gEasyChatGroupName_Adjectives,
+ [EC_GROUP_EVENTS] = gEasyChatGroupName_Events,
+ [EC_GROUP_MOVE_1] = gEasyChatGroupName_Move1,
+ [EC_GROUP_MOVE_2] = gEasyChatGroupName_Move2,
+ [EC_GROUP_TRENDY_SAYING] = gEasyChatGroupName_TrendySaying,
+ [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2,
+};
+
+static const u16 sDefaultProfileWords[] = {
+ EC_WORD_I_AM,
+ EC_WORD_A,
+ EC_WORD_POKEMON,
+ EC_WORD_FRIEND,
+};
+
+static const u16 sDefaultBattleStartWords[] = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_READY,
+ EC_WORD_QUES,
+ EC_WORD_HERE_I_COME,
+ EC_WORD_EXCL,
+};
+
+static const u16 sDeoxysValue[] = {
+ SPECIES_DEOXYS,
+};
+
+static bool8 IsECGroupUnlocked(u8 groupId)
+{
+ switch (groupId)
+ {
+ case EC_GROUP_TRENDY_SAYING:
+ return FALSE;
+ case EC_GROUP_EVENTS:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ return FlagGet(FLAG_SYS_GAME_CLEAR);
+ case EC_GROUP_POKEMON:
+ return EC_IsNationalPokedexEnabled();
+ default:
+ return TRUE;
+ }
+}
+
+static u16 EasyChat_GetNumWordsInGroup(u8 groupId)
+{
+ if (groupId == EC_GROUP_POKEMON)
+ return GetNationalPokedexCount(FLAG_GET_SEEN);
+
+ if (IsECGroupUnlocked(groupId))
+ return sEasyChatGroups[groupId].numEnabledWords;
+
+ return 0;
+}
+
+static bool8 IsECWordInvalid(u16 easyChatWord)
+{
+ u16 i;
+ u8 groupId;
+ u32 index;
+ u16 numWords;
+ const u16 *list;
+ if (easyChatWord == EC_WORD_UNDEFINED)
+ return FALSE;
+
+ groupId = EC_GROUP(easyChatWord);
+ index = EC_INDEX(easyChatWord);
+ if (groupId >= EC_NUM_GROUPS)
+ return TRUE;
+
+ numWords = sEasyChatGroups[groupId].numWords;
+ switch (groupId)
+ {
+ case EC_GROUP_POKEMON:
+ case EC_GROUP_POKEMON_2:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ list = sEasyChatGroups[groupId].wordData.valueList;
+ for (i = 0; i < numWords; i++)
+ {
+ if (index == list[i])
+ return FALSE;
+ }
+ return TRUE;
+ default:
+ if (index >= numWords)
+ return TRUE;
+ else
+ return FALSE;
+ }
+}
+
+static const u8 *GetEasyChatWord(u8 groupId, u16 index)
+{
+ switch (groupId)
+ {
+ case EC_GROUP_POKEMON:
+ case EC_GROUP_POKEMON_2:
+ return gSpeciesNames[index];
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ return gMoveNames[index];
+ default:
+ return sEasyChatGroups[groupId].wordData.words[index].text;
+ }
+}
+
+u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord)
+{
+ u8 *resultStr;
+ if (IsECWordInvalid(easyChatWord))
+ {
+ resultStr = StringCopy(dest, gText_ThreeQuestionMarks);
+ }
+ else if (easyChatWord != EC_WORD_UNDEFINED)
+ {
+ u16 index = EC_INDEX(easyChatWord);
+ u8 groupId = EC_GROUP(easyChatWord);
+ resultStr = StringCopy(dest, GetEasyChatWord(groupId, index));
+ }
+ else
+ {
+ *dest = EOS;
+ resultStr = dest;
+ }
+
+ return resultStr;
+}
+
+u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows)
+{
+ u16 i, j;
+ u16 numColumns = columns - 1;
+
+ for (i = 0; i < rows; i++)
+ {
+ for (j = 0; j < numColumns; j++)
+ {
+ dest = CopyEasyChatWord(dest, *src);
+ if (*src != EC_WORD_UNDEFINED)
+ {
+ *dest = CHAR_SPACE;
+ dest++;
+ }
+
+ src++;
+ }
+
+ dest = CopyEasyChatWord(dest, *(src++));
+ *dest = CHAR_NEWLINE;
+ dest++;
+ }
+
+ dest--;
+ *dest = EOS;
+ return dest;
+}
+
+static u16 GetEasyChatWordStringLength(u16 easyChatWord)
+{
+ if (easyChatWord == EC_WORD_UNDEFINED)
+ return 0;
+
+ if (IsECWordInvalid(easyChatWord))
+ {
+ return StringLength(gText_ThreeQuestionMarks);
+ }
+ else
+ {
+ u16 index = EC_INDEX(easyChatWord);
+ u8 groupId = EC_GROUP(easyChatWord);
+ return StringLength(GetEasyChatWord(groupId, index));
+ }
+}
+
+bool8 EC_DoesEasyChatStringFitOnLine(const u16 *easyChatWords, u8 columns, u8 rows, u16 maxLength)
+{
+ u8 i, j;
+
+ for (i = 0; i < rows; i++)
+ {
+ u16 totalLength = columns - 1;
+ for (j = 0; j < columns; j++)
+ totalLength += GetEasyChatWordStringLength(*(easyChatWords++));
+
+ if (totalLength > maxLength)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static u16 GetRandomWordFromGroup(u16 groupId)
+{
+ u16 index = Random() % sEasyChatGroups[groupId].numWords;
+ if (groupId == EC_GROUP_POKEMON_2
+ || groupId == EC_GROUP_POKEMON
+ || groupId == EC_GROUP_MOVE_1
+ || groupId == EC_GROUP_MOVE_2)
+ {
+ index = sEasyChatGroups[groupId].wordData.valueList[index];
+ }
+
+ return EC_WORD(groupId, index);
+}
+
+static u16 GetRandomWordFromAnyGroup(u16 groupId)
+{
+ if (!IsECGroupUnlocked(groupId))
+ return EC_WORD_UNDEFINED;
+
+ if (groupId == EC_GROUP_POKEMON)
+ return GetRandomECPokemon();
+
+ return GetRandomWordFromGroup(groupId);
+}
+
+void Special_BufferEasyChatMessage(void)
+{
+ u16 *easyChatWords;
+ int columns, rows;
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ easyChatWords = gSaveBlock1Ptr->easyChatProfile;
+ columns = 2;
+ rows = 2;
+ break;
+ case 1:
+ easyChatWords = gSaveBlock1Ptr->easyChatBattleStart;
+ if (EC_DoesEasyChatStringFitOnLine(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18))
+ {
+ columns = 2;
+ rows = 3;
+ }
+ else
+ {
+ columns = 3;
+ rows = 2;
+ }
+ break;
+ case 2:
+ easyChatWords = gSaveBlock1Ptr->easyChatBattleWon;
+ columns = 3;
+ rows = 2;
+ break;
+ case 3:
+ easyChatWords = gSaveBlock1Ptr->easyChatBattleLost;
+ columns = 3;
+ rows = 2;
+ break;
+ default:
+ return;
+ }
+
+ ConvertEasyChatWordsToString(gStringVar4, easyChatWords, columns, rows);
+ ShowFieldAutoScrollMessage(gStringVar4);
+}
+
+void BufferRandomHobbyOrLifestyleString(void)
+{
+ int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE;
+ u16 easyChatWord = GetRandomWordFromAnyGroup(groupId);
+ CopyEasyChatWord(gStringVar2, easyChatWord);
+}
+
+static bool8 IsTrendySayingUnlocked(u8 additionalPhraseId)
+{
+ int byteOffset = additionalPhraseId / 8;
+ int shift = additionalPhraseId % 8;
+ return (gSaveBlock1Ptr->additionalPhrases[byteOffset] >> shift) & 1;
+}
+
+void EnableRareWord(u8 additionalPhraseId)
+{
+ if (additionalPhraseId < 33)
+ {
+ int byteOffset = additionalPhraseId / 8;
+ int shift = additionalPhraseId % 8;
+ gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift;
+ }
+}
+
+static u8 GetNumUnlockedTrendySayings(void)
+{
+ u8 i;
+ u8 numAdditionalPhrasesUnlocked;
+
+ for (i = 0, numAdditionalPhrasesUnlocked = 0; i < 33; i++)
+ {
+ if (IsTrendySayingUnlocked(i))
+ numAdditionalPhrasesUnlocked++;
+ }
+
+ return numAdditionalPhrasesUnlocked;
+}
+
+static u16 UnlockRandomTrendySaying(void)
+{
+ u16 i;
+ u16 additionalPhraseId;
+ u8 numAdditionalPhrasesUnlocked = GetNumUnlockedTrendySayings();
+ if (numAdditionalPhrasesUnlocked == 33)
+ return EC_WORD_UNDEFINED;
+
+ additionalPhraseId = Random() % (33 - numAdditionalPhrasesUnlocked);
+ for (i = 0; i < 33; i++)
+ {
+ if (!IsTrendySayingUnlocked(i))
+ {
+ if (additionalPhraseId)
+ {
+ additionalPhraseId--;
+ }
+ else
+ {
+ EnableRareWord(i);
+ return EC_WORD(EC_GROUP_TRENDY_SAYING, i);
+ }
+ }
+ }
+
+ return EC_WORD_UNDEFINED;
+}
+
+static u16 GetRandomUnlockedTrendySaying(void)
+{
+ u16 i;
+ u16 additionalPhraseId = GetNumUnlockedTrendySayings();
+ if (additionalPhraseId == 0)
+ return EC_WORD_UNDEFINED;
+
+ additionalPhraseId = Random() % additionalPhraseId;
+ for (i = 0; i < 33; i++)
+ {
+ if (IsTrendySayingUnlocked(i))
+ {
+ if (additionalPhraseId)
+ additionalPhraseId--;
+ else
+ return EC_WORD(EC_GROUP_TRENDY_SAYING, i);
+ }
+ }
+
+ return EC_WORD_UNDEFINED;
+}
+
+static bool8 EC_IsNationalPokedexEnabled(void)
+{
+ return IsNationalPokedexEnabled();
+}
+
+static u16 GetRandomECPokemon(void)
+{
+ u16 i;
+ u16 numWords;
+ const u16 *species;
+ u16 index = EasyChat_GetNumWordsInGroup(EC_GROUP_POKEMON_2);
+ if (index == 0)
+ return EC_WORD_UNDEFINED;
+
+ index = Random() % index;
+ species = sEasyChatGroups[EC_GROUP_POKEMON_2].wordData.valueList;
+ numWords = sEasyChatGroups[EC_GROUP_POKEMON_2].numWords;
+ for (i = 0; i < numWords; i++)
+ {
+ u16 dexNum = SpeciesToNationalPokedexNum(*species);
+ if (GetSetPokedexFlag(dexNum, FLAG_GET_SEEN))
+ {
+ if (index)
+ index--;
+ else
+ return EC_WORD(EC_GROUP_POKEMON_2, *species);
+ }
+
+ species++;
+ }
+
+ return EC_WORD_UNDEFINED;
+}
+
+void InitEasyChatPhrases(void)
+{
+ u16 i, j;
+
+ for (i = 0; i < 4; i++)
+ gSaveBlock1Ptr->easyChatProfile[i] = sDefaultProfileWords[i];
+
+ for (i = 0; i < 6; i++)
+ gSaveBlock1Ptr->easyChatBattleStart[i] = sDefaultBattleStartWords[i];
+
+ for (i = 0; i < 6; i++)
+ {
+ gSaveBlock1Ptr->easyChatBattleWon[i] = EC_WORD_UNDEFINED;
+ gSaveBlock1Ptr->easyChatBattleLost[i] = EC_WORD_UNDEFINED;
+ }
+
+ for (i = 0; i < MAIL_COUNT; i++)
+ {
+ for (j = 0; j < MAIL_WORDS_COUNT; j++)
+ gSaveBlock1Ptr->mail[i].words[j] = EC_WORD_UNDEFINED;
+ }
+
+ // BUG: This is supposed to clear 64 bits, but this loop is clearing 64 bytes.
+ // However, this bug has no resulting effect on gameplay because only the
+ // Mauville old man data is corrupted, which is initialized directly after
+ // this function is called when starting a new game.
+ for (i = 0; i < 64; i++)
+ gSaveBlock1Ptr->additionalPhrases[i] = 0;
+}
+
+void ResetSomeMEventECBuffer_3120_338(void)
+{
+ s32 i;
+ u16 *ptr = sub_8143DA8();
+ for (i = 0; i < 4; i++)
+ ptr[i] = EC_WORD_UNDEFINED;
+}
+
+bool8 InitEasyChatSelection(void)
+{
+ sEasyChatSelectionData = Alloc(sizeof(*sEasyChatSelectionData));
+ if (sEasyChatSelectionData == NULL)
+ return FALSE;
+
+ PopulateECGroups();
+ PopulateAlphabeticalGroups();
+ return TRUE;
+}
+
+void DestroyEasyChatSelectionData(void)
+{
+ if (sEasyChatSelectionData != NULL)
+ Free(sEasyChatSelectionData);
+}
+
+static void PopulateECGroups(void)
+{
+ int i;
+
+ sEasyChatSelectionData->numGroups = 0;
+ if (GetNationalPokedexCount(FLAG_GET_SEEN))
+ sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_POKEMON;
+
+ for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++)
+ sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = i;
+
+ if (FlagGet(FLAG_SYS_GAME_CLEAR))
+ {
+ sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_EVENTS;
+ sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_MOVE_1;
+ sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_MOVE_2;
+ }
+
+ if (IsNationalPokedexEnabled())
+ sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_POKEMON_2;
+}
+
+u8 GetNumDisplayableGroups(void)
+{
+ return sEasyChatSelectionData->numGroups;
+}
+
+u8 GetSelectedGroupByIndex(u8 index)
+{
+ if (index >= sEasyChatSelectionData->numGroups)
+ return EC_NUM_GROUPS;
+ else
+ return sEasyChatSelectionData->groups[index];
+}
+
+static u8 *unref_sub_80BDF6C(u8 *dest, u8 groupId, u16 totalChars)
+{
+ u16 i;
+ u8 *str = StringCopy(dest, sEasyChatGroupNamePointers[groupId]);
+ for (i = str - dest; i < totalChars; i++)
+ {
+ *str = CHAR_SPACE;
+ str++;
+ }
+
+ *str = EOS;
+ return str;
+}
+
+const u8 *GetEasyChatWordGroupName(u8 groupId)
+{
+ return sEasyChatGroupNamePointers[groupId];
+}
+
+u8 *CopyEasyChatWordPadded(u8 *dest, u16 easyChatWord, u16 totalChars)
+{
+ u16 i;
+ u8 *str = CopyEasyChatWord(dest, easyChatWord);
+ for (i = str - dest; i < totalChars; i++)
+ {
+ *str = CHAR_SPACE;
+ str++;
+ }
+
+ *str = EOS;
+ return str;
+}
+
+static void PopulateAlphabeticalGroups(void)
+{
+ static int i;
+ static int j;
+ static int k;
+ static int index;
+ static int numWords;
+ static int numToProcess;
+ static const u16 *words;
+
+ for (i = 0; i < 27; i++)
+ {
+ numWords = sEasyChatWordsByLetterPointers[i].numWords;
+ words = sEasyChatWordsByLetterPointers[i].words;
+ sEasyChatSelectionData->alphabeticalGroups[i] = 0;
+ index = 0;
+ for (j = 0; j < numWords; )
+ {
+ if (*words == EC_WORD_UNDEFINED)
+ {
+ words++;
+ numToProcess = *words++;
+ j += 2;
+ }
+ else
+ {
+ numToProcess = 1;
+ }
+
+ for (k = 0; k < numToProcess; k++)
+ {
+ if (IsWordUnlocked(words[k]))
+ {
+ sEasyChatSelectionData->alphabeticalWordsByGroup[i][index++] = words[k];
+ sEasyChatSelectionData->alphabeticalGroups[i]++;
+ break;
+ }
+ }
+
+ words += numToProcess;
+ j += numToProcess;
+ }
+ }
+}
+
+void GetUnlockedECWords(bool32 isAlphabetical, u16 groupId)
+{
+ if (!isAlphabetical)
+ sEasyChatSelectionData->totalWords = GetUnlockedWordsInECGroup(groupId);
+ else
+ sEasyChatSelectionData->totalWords = GetUnlockedWordsInAlphabeticalGroup(groupId);
+}
+
+u16 GetDisplayedWordByIndex(u16 index)
+{
+ if (index >= sEasyChatSelectionData->totalWords)
+ return EC_WORD_UNDEFINED;
+ else
+ return sEasyChatSelectionData->allWords[index];
+}
+
+u16 GetNumDisplayedWords(void)
+{
+ return sEasyChatSelectionData->totalWords;
+}
+
+static u16 GetUnlockedWordsInECGroup(u16 groupId)
+{
+ u16 i;
+ u16 totalWords;
+ const u16 *list;
+ const struct EasyChatWordInfo * wordInfo;
+ u16 numWords = sEasyChatGroups[groupId].numWords;
+
+ if (groupId == EC_GROUP_POKEMON_2 || groupId == EC_GROUP_POKEMON
+ || groupId == EC_GROUP_MOVE_1 || groupId == EC_GROUP_MOVE_2)
+ {
+ list = sEasyChatGroups[groupId].wordData.valueList;
+ for (i = 0, totalWords = 0; i < numWords; i++)
+ {
+ if (UnlockedECMonOrMove(list[i], groupId))
+ sEasyChatSelectionData->allWords[totalWords++] = EC_WORD(groupId, list[i]);
+ }
+
+ return totalWords;
+ }
+ else
+ {
+ wordInfo = sEasyChatGroups[groupId].wordData.words;
+ for (i = 0, totalWords = 0; i < numWords; i++)
+ {
+ u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder;
+ if (UnlockedECMonOrMove(alphabeticalOrder, groupId))
+ sEasyChatSelectionData->allWords[totalWords++] = EC_WORD(groupId, alphabeticalOrder);
+ }
+
+ return totalWords;
+ }
+}
+
+static u16 GetUnlockedWordsInAlphabeticalGroup(u16 alphabeticalGroup)
+{
+ u16 i;
+ u16 totalWords;
+
+ for (i = 0, totalWords = 0; i < sEasyChatSelectionData->alphabeticalGroups[alphabeticalGroup]; i++)
+ sEasyChatSelectionData->allWords[totalWords++] = sEasyChatSelectionData->alphabeticalWordsByGroup[alphabeticalGroup][i];
+
+ return totalWords;
+}
+
+static bool8 IsGroupSelectable(u8 groupIdx)
+{
+ int i;
+ for (i = 0; i < sEasyChatSelectionData->numGroups; i++)
+ {
+ if (sEasyChatSelectionData->groups[i] == groupIdx)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static bool8 UnlockedECMonOrMove(u16 wordIndex, u8 groupId)
+{
+ switch (groupId)
+ {
+ case EC_GROUP_POKEMON:
+ return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN);
+ case EC_GROUP_POKEMON_2:
+ if (EC_IsDeoxys(wordIndex))
+ return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN);
+ return TRUE;
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ return TRUE;
+ default:
+ return sEasyChatGroups[groupId].wordData.words[wordIndex].enabled;
+ }
+}
+
+static bool32 EC_IsDeoxys(u16 species)
+{
+ u32 i;
+ for (i = 0; i < ARRAY_COUNT(sDeoxysValue); i++)
+ {
+ if (sDeoxysValue[i] == species)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static bool8 IsWordUnlocked(u16 easyChatWord)
+{
+ u8 groupId = EC_GROUP(easyChatWord);
+ u32 index = EC_INDEX(easyChatWord);
+ if (!IsGroupSelectable(groupId))
+ return FALSE;
+ else
+ return UnlockedECMonOrMove(index, groupId);
+}
diff --git a/src/mail.c b/src/mail.c
index a9cb66683..dbdf48ac7 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -62,7 +62,7 @@ struct MailViewResources {
u8 authorNameBuffer[12];
void (*savedCallback)(void);
void (*showMailCallback)(void);
- struct MailStruct *mail;
+ struct MailStruct * mail;
bool8 messageExists;
u8 nameX;
u8 mailType;
@@ -70,8 +70,8 @@ struct MailViewResources {
u8 monIconSpriteId;
u8 unused;
u8 mailArrangementType;
- void (*copyEasyChatWord)(u8 *dest, u16 word);
- void (*convertEasyChatWordsToString)(u8 *dest, const u16 *src, u16 length1, u16 length2);
+ u8 *(*copyEasyChatWord)(u8 *dest, u16 word);
+ u8 *(*convertEasyChatWordsToString)(u8 *dest, const u16 *src, u16 length1, u16 length2);
const struct MailAttrStruct * messageLayout;
u16 bg1TilemapBuffer[BG_SCREEN_SIZE];
u16 bg2TilemapBuffer[BG_SCREEN_SIZE];
diff --git a/src/mevent.c b/src/mevent.c
index dc8df05d0..00bffdfc3 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -487,7 +487,7 @@ void sub_8143D24(void)
{
CpuFill32(0, &gSaveBlock1Ptr->unk_3120, sizeof(gSaveBlock1Ptr->unk_3120));
sub_8143ED0();
- sub_80BDE28();
+ ResetSomeMEventECBuffer_3120_338();
}
struct MEventBuffer_3120_Sub * GetSavedWonderNews(void)
@@ -772,7 +772,7 @@ void sub_81442CC(struct MEventStruct_Unk1442CC * data)
CopyTrainerId(data->unk_4C, gSaveBlock2Ptr->playerTrainerId);
StringCopy(data->unk_45, gSaveBlock2Ptr->playerName);
for (i = 0; i < 6; i++)
- data->unk_50[i] = gSaveBlock1Ptr->unk2CA0[i];
+ data->unk_50[i] = gSaveBlock1Ptr->easyChatProfile[i];
memcpy(data->unk_5C, RomHeaderGameCode, 4);
data->unk_60 = RomHeaderSoftwareVersion;
}
diff --git a/src/new_game.c b/src/new_game.c
index 4c1dc2dbf..4b5432a95 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -130,8 +130,8 @@ void NewGameInitData(void)
SetMoney(&gSaveBlock1Ptr->money, 3000);
ResetGameStats();
ClearPlayerLinkBattleRecords();
- sub_80A0904();
- sub_80A0958();
+ InitHeracrossSizeRecord();
+ InitMagikarpSizeRecord();
sub_806E190();
gPlayerPartyCount = 0;
ZeroPlayerPartyMons();
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
new file mode 100644
index 000000000..06e23618d
--- /dev/null
+++ b/src/pokemon_size_record.c
@@ -0,0 +1,221 @@
+#include "global.h"
+#include "data.h"
+#include "event_data.h"
+#include "pokedex.h"
+#include "pokemon.h"
+#include "pokemon_size_record.h"
+#include "string_util.h"
+#include "text.h"
+#include "constants/species.h"
+
+#define DEFAULT_MAX_SIZE 0 // was 0x8100 in Ruby/Sapphire, 0x8000 in Emerald
+
+struct UnknownStruct
+{
+ u16 unk0;
+ u8 unk2;
+ u16 unk4;
+};
+
+static const struct UnknownStruct sBigMonSizeTable[] =
+{
+ { 290, 1, 0 },
+ { 300, 1, 10 },
+ { 400, 2, 110 },
+ { 500, 4, 310 },
+ { 600, 20, 710 },
+ { 700, 50, 2710 },
+ { 800, 100, 7710 },
+ { 900, 150, 17710 },
+ { 1000, 150, 32710 },
+ { 1100, 100, -17826 },
+ { 1200, 50, -7826 },
+ { 1300, 20, -2826 },
+ { 1400, 5, -826 },
+ { 1500, 2, -326 },
+ { 1600, 1, -126 },
+ { 1700, 1, -26 },
+};
+
+static const u8 sGiftRibbonsMonDataIds[] =
+{
+ MON_DATA_GIFT_RIBBON_1, MON_DATA_GIFT_RIBBON_2, MON_DATA_GIFT_RIBBON_3,
+ MON_DATA_GIFT_RIBBON_4, MON_DATA_GIFT_RIBBON_5, MON_DATA_GIFT_RIBBON_6,
+ MON_DATA_GIFT_RIBBON_7
+};
+
+extern const u8 gText_DecimalPoint[];
+
+#define CM_PER_INCH 2.54
+
+static u32 GetMonSizeHash(struct Pokemon * pkmn)
+{
+ u16 personality = GetMonData(pkmn, MON_DATA_PERSONALITY);
+ u16 hpIV = GetMonData(pkmn, MON_DATA_HP_IV) & 0xF;
+ u16 attackIV = GetMonData(pkmn, MON_DATA_ATK_IV) & 0xF;
+ u16 defenseIV = GetMonData(pkmn, MON_DATA_DEF_IV) & 0xF;
+ u16 speedIV = GetMonData(pkmn, MON_DATA_SPEED_IV) & 0xF;
+ u16 spAtkIV = GetMonData(pkmn, MON_DATA_SPATK_IV) & 0xF;
+ u16 spDefIV = GetMonData(pkmn, MON_DATA_SPDEF_IV) & 0xF;
+ u32 hibyte = ((attackIV ^ defenseIV) * hpIV) ^ (personality & 0xFF);
+ u32 lobyte = ((spAtkIV ^ spDefIV) * speedIV) ^ (personality >> 8);
+
+ return (hibyte << 8) + lobyte;
+}
+
+static u8 TranslateBigMonSizeTableIndex(u16 a)
+{
+ u8 i;
+
+ for (i = 1; i < 15; i++)
+ {
+ if (a < sBigMonSizeTable[i].unk4)
+ return i - 1;
+ }
+ return i;
+}
+
+static u32 GetMonSize(u16 species, u16 b)
+{
+ u64 unk2;
+ u64 unk4;
+ u64 unk0;
+ u32 height;
+ u32 var;
+
+ height = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(species), 0);
+ var = TranslateBigMonSizeTableIndex(b);
+ unk0 = sBigMonSizeTable[var].unk0;
+ unk2 = sBigMonSizeTable[var].unk2;
+ unk4 = sBigMonSizeTable[var].unk4;
+ unk0 += (b - unk4) / unk2;
+ return height * unk0 / 10;
+}
+
+static void FormatMonSizeRecord(u8 *string, u32 size)
+{
+#ifdef UNITS_IMPERIAL
+ //Convert size from centimeters to inches
+ //In the Hoenn games, this conversion was performed using floating point values
+ size = size * 100 / 254;
+#endif
+
+ string = ConvertIntToDecimalStringN(string, size / 10, STR_CONV_MODE_LEFT_ALIGN, 8);
+ string = StringAppend(string, gText_DecimalPoint);
+ ConvertIntToDecimalStringN(string, size % 10, STR_CONV_MODE_LEFT_ALIGN, 1);
+}
+
+static u8 CompareMonSize(u16 species, u16 *sizeRecord)
+{
+ if (gSpecialVar_Result >= PARTY_SIZE)
+ {
+ return 0;
+ }
+ else
+ {
+ struct Pokemon * pkmn = &gPlayerParty[gSpecialVar_Result];
+
+ if (GetMonData(pkmn, MON_DATA_IS_EGG) == TRUE || GetMonData(pkmn, MON_DATA_SPECIES) != species)
+ {
+ return 1;
+ }
+ else
+ {
+ u32 oldSize;
+ u32 newSize;
+ u16 sizeParams;
+
+ *(&sizeParams) = GetMonSizeHash(pkmn);
+ newSize = GetMonSize(species, sizeParams);
+ oldSize = GetMonSize(species, *sizeRecord);
+ FormatMonSizeRecord(gStringVar3, oldSize);
+ FormatMonSizeRecord(gStringVar2, newSize);
+ if (newSize == oldSize)
+ {
+ return 4;
+ }
+ else if (newSize < oldSize)
+ {
+ return 2;
+ }
+ else
+ {
+ *sizeRecord = sizeParams;
+ return 3;
+ }
+ }
+ }
+}
+
+// Stores species name in gStringVar1, trainer's name in gStringVar2, and size in gStringVar3
+static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord)
+{
+ u32 size = GetMonSize(species, *sizeRecord);
+
+ FormatMonSizeRecord(gStringVar3, size);
+ StringCopy(gStringVar1, gSpeciesNames[species]);
+}
+
+void InitHeracrossSizeRecord(void)
+{
+ VarSet(VAR_HERACROSS_SIZE_RECORD, DEFAULT_MAX_SIZE);
+}
+
+void GetHeracrossSizeRecordInfo(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_HERACROSS_SIZE_RECORD);
+
+ GetMonSizeRecordInfo(SPECIES_HERACROSS, sizeRecord);
+}
+
+void CompareHeracrossSize(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_HERACROSS_SIZE_RECORD);
+
+ gSpecialVar_Result = CompareMonSize(SPECIES_HERACROSS, sizeRecord);
+}
+
+void InitMagikarpSizeRecord(void)
+{
+ VarSet(VAR_MAGIKARP_SIZE_RECORD, DEFAULT_MAX_SIZE);
+}
+
+void GetMagikarpSizeRecordInfo(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_MAGIKARP_SIZE_RECORD);
+
+ GetMonSizeRecordInfo(SPECIES_MAGIKARP, sizeRecord);
+}
+
+void CompareMagikarpSize(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_MAGIKARP_SIZE_RECORD);
+
+ gSpecialVar_Result = CompareMonSize(SPECIES_MAGIKARP, sizeRecord);
+}
+
+void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
+{
+ s32 i;
+ bool32 gotRibbon = FALSE;
+ u8 data = 1;
+ u8 array[8];
+ memcpy(array, sGiftRibbonsMonDataIds, sizeof(sGiftRibbonsMonDataIds));
+
+ if (index < 11 && ribbonId < 65)
+ {
+ gSaveBlock1Ptr->giftRibbons[index] = ribbonId;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ struct Pokemon * mon = &gPlayerParty[i];
+
+ if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(mon, MON_DATA_SANITY_IS_EGG))
+ {
+ SetMonData(mon, array[index], &data);
+ gotRibbon = TRUE;
+ }
+ }
+ if (gotRibbon)
+ FlagSet(FLAG_SYS_RIBBON_GET);
+ }
+}
diff --git a/src/trade_scene.c b/src/trade_scene.c
index 94fdadd5d..7b738aa52 100644
--- a/src/trade_scene.c
+++ b/src/trade_scene.c
@@ -22,6 +22,7 @@
#include "script.h"
#include "event_data.h"
#include "string_util.h"
+#include "mail.h"
#include "mail_data.h"
#include "pokeball.h"
#include "evolution_scene.h"
@@ -2484,7 +2485,7 @@ static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx)
static void GetInGameTradeMail(struct MailStruct * mail, const struct InGameTrade * inGameTrade)
{
int i;
- for (i = 0; i < 9; i++)
+ for (i = 0; i < MAIL_WORDS_COUNT; i++)
mail->words[i] = sInGameTradeMailMessages[inGameTrade->mailNum][i];
StringCopy(mail->playerName, inGameTrade->otName);
mail->trainerId[0] = inGameTrade->otId >> 24;
diff --git a/sym_bss.txt b/sym_bss.txt
index 1f9f5b3d8..06502497e 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -68,26 +68,8 @@ gUnknown_3000FC8: @ 3000FC8
gUnknown_3000FE8: @ 3000FE8
.space 0x184
-gUnknown_300116C: @ 300116C
- .space 0x4
-
-gUnknown_3001170: @ 3001170
- .space 0x4
-
-gUnknown_3001174: @ 3001174
- .space 0x4
-
-gUnknown_3001178: @ 3001178
- .space 0x4
-
-gUnknown_300117C: @ 300117C
- .space 0x4
-
-gUnknown_3001180: @ 3001180
- .space 0x4
-
-gUnknown_3001184: @ 3001184
- .space 0x4
+ .align 2
+ .include "src/easy_chat.o"
gUnknown_3001188: @ 3001188
.space 0x8
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 51501e162..5d5cbaaeb 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -362,17 +362,16 @@ gUnknown_203998C: @ 203998C
gUnknown_203999C: @ 203999C
.space 0x8
+ .align 2
.include "src/dragon.o"
+ .align 2
.include "src/battle_anim_utility_funcs.o"
+ .align 2
.include "src/battle_intro.o"
-
.align 2
-gUnknown_20399BC: @ 20399BC
- .space 0x4
-
-gUnknown_20399C0: @ 20399C0
- .space 0x4
-
+ .include "src/easy_chat.o"
+ .align 2
+ .include "asm/mon_markings.o" @ TODO: Move to src
.align 2
.include "src/mail.o"
.align 2