diff options
Diffstat (limited to 'src')
51 files changed, 14615 insertions, 1252 deletions
diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index bb9fe8e28..e48dbd30b 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1183,7 +1183,7 @@ static void CB2_InitSelectScreen(void) break; case 5: if (sFactorySelectScreen->fromSummaryScreen == TRUE) - sFactorySelectScreen->cursorPos = gUnknown_0203CF20; + sFactorySelectScreen->cursorPos = gLastViewedMonIndex; Select_InitMonsData(); Select_InitAllSprites(); if (sFactorySelectScreen->fromSummaryScreen == TRUE) @@ -3172,7 +3172,7 @@ static void CB2_InitSwapScreen(void) break; case 5: if (sFactorySwapScreen->fromSummaryScreen == TRUE) - sFactorySwapScreen->cursorPos = gUnknown_0203CF20; + sFactorySwapScreen->cursorPos = gLastViewedMonIndex; gMain.state++; break; case 6: diff --git a/src/battle_interface.c b/src/battle_interface.c index 0eb494db4..4a6ac67f1 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -35,125 +35,126 @@ struct TestingBar }; enum -{ - HEALTHBOX_GFX_0, - HEALTHBOX_GFX_1, - HEALTHBOX_GFX_2, - HEALTHBOX_GFX_HP_BAR_GREEN, - HEALTHBOX_GFX_4, - HEALTHBOX_GFX_5, - HEALTHBOX_GFX_6, - HEALTHBOX_GFX_7, - HEALTHBOX_GFX_8, - HEALTHBOX_GFX_9, - HEALTHBOX_GFX_10, - HEALTHBOX_GFX_11, - HEALTHBOX_GFX_12, - HEALTHBOX_GFX_13, - HEALTHBOX_GFX_14, - HEALTHBOX_GFX_15, - HEALTHBOX_GFX_16, - HEALTHBOX_GFX_17, - HEALTHBOX_GFX_18, - HEALTHBOX_GFX_19, - HEALTHBOX_GFX_20, - HEALTHBOX_GFX_STATUS_PSN_BATTLER0, - HEALTHBOX_GFX_22, - HEALTHBOX_GFX_23, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, +{ // Corresponds to gHealthboxElementsGfxTable (and the tables after it) in graphics.c + // These are indexes into the tables, which are filled with 8x8 square pixel data. + HEALTHBOX_GFX_0, //hp bar [black section] + HEALTHBOX_GFX_1, //hp bar "H" + HEALTHBOX_GFX_2, //hp bar "P" + HEALTHBOX_GFX_HP_BAR_GREEN, //hp bar [0 pixels] + HEALTHBOX_GFX_4, //hp bar [1 pixels] + HEALTHBOX_GFX_5, //hp bar [2 pixels] + HEALTHBOX_GFX_6, //hp bar [3 pixels] + HEALTHBOX_GFX_7, //hp bar [4 pixels] + HEALTHBOX_GFX_8, //hp bar [5 pixels] + HEALTHBOX_GFX_9, //hp bar [6 pixels] + HEALTHBOX_GFX_10, //hp bar [7 pixels] + HEALTHBOX_GFX_11, //hp bar [8 pixels] + HEALTHBOX_GFX_12, //exp bar [0 pixels] + HEALTHBOX_GFX_13, //exp bar [1 pixels] + HEALTHBOX_GFX_14, //exp bar [2 pixels] + HEALTHBOX_GFX_15, //exp bar [3 pixels] + HEALTHBOX_GFX_16, //exp bar [4 pixels] + HEALTHBOX_GFX_17, //exp bar [5 pixels] + HEALTHBOX_GFX_18, //exp bar [6 pixels] + HEALTHBOX_GFX_19, //exp bar [7 pixels] + HEALTHBOX_GFX_20, //exp bar [8 pixels] + HEALTHBOX_GFX_STATUS_PSN_BATTLER0, //status psn "(P" + HEALTHBOX_GFX_22, //status psn "SN" + HEALTHBOX_GFX_23, //status psn "|)"" + HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, //status prz HEALTHBOX_GFX_25, HEALTHBOX_GFX_26, - HEALTHBOX_GFX_STATUS_SLP_BATTLER0, + HEALTHBOX_GFX_STATUS_SLP_BATTLER0, //status slp HEALTHBOX_GFX_28, HEALTHBOX_GFX_29, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, //status frz HEALTHBOX_GFX_31, HEALTHBOX_GFX_32, - HEALTHBOX_GFX_STATUS_BRN_BATTLER0, + HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status brn HEALTHBOX_GFX_34, HEALTHBOX_GFX_35, - HEALTHBOX_GFX_36, - HEALTHBOX_GFX_37, - HEALTHBOX_GFX_38, - HEALTHBOX_GFX_39, - HEALTHBOX_GFX_40, - HEALTHBOX_GFX_41, - HEALTHBOX_GFX_42, - HEALTHBOX_GFX_43, - HEALTHBOX_GFX_44, - HEALTHBOX_GFX_45, - HEALTHBOX_GFX_46, - HEALTHBOX_GFX_HP_BAR_YELLOW, - HEALTHBOX_GFX_48, - HEALTHBOX_GFX_49, - HEALTHBOX_GFX_50, - HEALTHBOX_GFX_51, - HEALTHBOX_GFX_52, - HEALTHBOX_GFX_53, - HEALTHBOX_GFX_54, - HEALTHBOX_GFX_55, - HEALTHBOX_GFX_HP_BAR_RED, - HEALTHBOX_GFX_57, - HEALTHBOX_GFX_58, - HEALTHBOX_GFX_59, - HEALTHBOX_GFX_60, - HEALTHBOX_GFX_61, - HEALTHBOX_GFX_62, - HEALTHBOX_GFX_63, - HEALTHBOX_GFX_64, - HEALTHBOX_GFX_65, - HEALTHBOX_GFX_66, - HEALTHBOX_GFX_67, - HEALTHBOX_GFX_68, - HEALTHBOX_GFX_69, - HEALTHBOX_GFX_70, - HEALTHBOX_GFX_STATUS_PSN_BATTLER1, + HEALTHBOX_GFX_36, //misc [Black section] + HEALTHBOX_GFX_37, //misc [Black section] + HEALTHBOX_GFX_38, //misc [Black section] + HEALTHBOX_GFX_39, //misc [Blank Health Window?] + HEALTHBOX_GFX_40, //misc [Blank Health Window?] + HEALTHBOX_GFX_41, //misc [Blank Health Window?] + HEALTHBOX_GFX_42, //misc [Blank Health Window?] + HEALTHBOX_GFX_43, //misc [Top of Health Window?] + HEALTHBOX_GFX_44, //misc [Top of Health Window?] + HEALTHBOX_GFX_45, //misc [Top of Health Window?] + HEALTHBOX_GFX_46, //misc [Blank Health Window?] + HEALTHBOX_GFX_HP_BAR_YELLOW, //hp bar yellow [0 pixels] + HEALTHBOX_GFX_48, //hp bar yellow [1 pixels] + HEALTHBOX_GFX_49, //hp bar yellow [2 pixels] + HEALTHBOX_GFX_50, //hp bar yellow [3 pixels] + HEALTHBOX_GFX_51, //hp bar yellow [4 pixels] + HEALTHBOX_GFX_52, //hp bar yellow [5 pixels] + HEALTHBOX_GFX_53, //hp bar yellow [6 pixels] + HEALTHBOX_GFX_54, //hp bar yellow [7 pixels] + HEALTHBOX_GFX_55, //hp bar yellow [8 pixels] + HEALTHBOX_GFX_HP_BAR_RED, //hp bar red [0 pixels] + HEALTHBOX_GFX_57, //hp bar red [1 pixels] + HEALTHBOX_GFX_58, //hp bar red [2 pixels] + HEALTHBOX_GFX_59, //hp bar red [3 pixels] + HEALTHBOX_GFX_60, //hp bar red [4 pixels] + HEALTHBOX_GFX_61, //hp bar red [5 pixels] + HEALTHBOX_GFX_62, //hp bar red [6 pixels] + HEALTHBOX_GFX_63, //hp bar red [7 pixels] + HEALTHBOX_GFX_64, //hp bar red [8 pixels] + HEALTHBOX_GFX_65, //hp bar frame end + HEALTHBOX_GFX_66, //status ball [full] + HEALTHBOX_GFX_67, //status ball [empty] + HEALTHBOX_GFX_68, //status ball [fainted] + HEALTHBOX_GFX_69, //status ball [statused] + HEALTHBOX_GFX_70, //status ball [unused extra] + HEALTHBOX_GFX_STATUS_PSN_BATTLER1, //status2 "PSN" HEALTHBOX_GFX_72, HEALTHBOX_GFX_73, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, + HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, //status2 "PRZ" HEALTHBOX_GFX_75, HEALTHBOX_GFX_76, - HEALTHBOX_GFX_STATUS_SLP_BATTLER1, + HEALTHBOX_GFX_STATUS_SLP_BATTLER1, //status2 "SLP" HEALTHBOX_GFX_78, HEALTHBOX_GFX_79, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, //status2 "FRZ" HEALTHBOX_GFX_81, HEALTHBOX_GFX_82, - HEALTHBOX_GFX_STATUS_BRN_BATTLER1, + HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2 "BRN" HEALTHBOX_GFX_84, HEALTHBOX_GFX_85, - HEALTHBOX_GFX_STATUS_PSN_BATTLER2, + HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3 "PSN" HEALTHBOX_GFX_87, HEALTHBOX_GFX_88, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, + HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, //status3 "PRZ" HEALTHBOX_GFX_90, HEALTHBOX_GFX_91, - HEALTHBOX_GFX_STATUS_SLP_BATTLER2, + HEALTHBOX_GFX_STATUS_SLP_BATTLER2, //status3 "SLP" HEALTHBOX_GFX_93, HEALTHBOX_GFX_94, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, //status3 "FRZ" HEALTHBOX_GFX_96, HEALTHBOX_GFX_97, - HEALTHBOX_GFX_STATUS_BRN_BATTLER2, + HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3 "BRN" HEALTHBOX_GFX_99, HEALTHBOX_GFX_100, - HEALTHBOX_GFX_STATUS_PSN_BATTLER3, + HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4 "PSN" HEALTHBOX_GFX_102, HEALTHBOX_GFX_103, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, + HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, //status4 "PRZ" HEALTHBOX_GFX_105, HEALTHBOX_GFX_106, - HEALTHBOX_GFX_STATUS_SLP_BATTLER3, + HEALTHBOX_GFX_STATUS_SLP_BATTLER3, //status4 "SLP" HEALTHBOX_GFX_108, HEALTHBOX_GFX_109, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, //status4 "FRZ" HEALTHBOX_GFX_111, HEALTHBOX_GFX_112, - HEALTHBOX_GFX_STATUS_BRN_BATTLER3, + HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4 "BRN" HEALTHBOX_GFX_114, HEALTHBOX_GFX_115, - HEALTHBOX_GFX_116, - HEALTHBOX_GFX_117, + HEALTHBOX_GFX_116, //unknown_D12FEC + HEALTHBOX_GFX_117, //unknown_D1300C }; extern const u8 *const gNatureNamePointers[]; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index a2fa4120f..340c17c59 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1590,7 +1590,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio layoutMap += mapLayout->width; } } - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); free(floorLayoutOffsets); } diff --git a/src/cable_car.c b/src/cable_car.c index 207a0c22d..420bdd30f 100755 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -358,7 +358,7 @@ static void CleanupCableCar(void) HideBg(3); sub_8150B6C(0); gSpriteCoordOffsetX = 0; - sub_80AB130(WEATHER_NONE); + SetCurrentAndNextWeatherNoDelay(WEATHER_NONE); for (i = 0; i < 20; i++) gWeatherPtr->sprites.s2.ashSprites[i] = NULL; @@ -394,7 +394,7 @@ static void sub_81503E4(u8 taskId) case 0: if (sCableCar->timer == sCableCar->unk4) { - ChangeWeather(sCableCar->weather); + SetNextWeather(sCableCar->weather); sCableCar->state = 1; } break; @@ -798,7 +798,7 @@ static void LoadCableCarSprites(void) gSprites[spriteId].data[1] = 99; sCableCar->weather = WEATHER_ASH; sCableCar->unk4 = 0x15e; - sub_80AB130(WEATHER_SUNNY); + SetCurrentAndNextWeatherNoDelay(WEATHER_SUNNY); break; case 1: CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x24, 24, 26, 12, 3, 17); @@ -822,7 +822,7 @@ static void LoadCableCarSprites(void) gSprites[spriteId].data[1] = 0x41; sCableCar->weather = WEATHER_SUNNY; sCableCar->unk4 = 0x109; - sub_80AB130(WEATHER_ASH); + SetCurrentAndNextWeatherNoDelay(WEATHER_ASH); break; } for (i = 0; i < 9; i++) diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 485065d71..c0a79af81 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -372,12 +372,12 @@ static void sub_80F5CE4(u8 taskId) sub_80DEDA8(0xFE); gUnknown_02039F5C = 1; gUnknown_02039F5D = sub_80DEFA8(0xFE, 0); - var = VarGet(VAR_0x4086); - VarSet(VAR_0x4086, 0); + var = VarGet(VAR_LINK_CONTEST_ROOM_STATE); + VarSet(VAR_LINK_CONTEST_ROOM_STATE, 0); SetContinueGameWarpStatusToDynamicWarp(); TrySavingData(SAVE_LINK); ClearContinueGameWarpStatus2(); - VarSet(VAR_0x4086, var); + VarSet(VAR_LINK_CONTEST_ROOM_STATE, var); gTasks[taskId].data[0]++; break; case 1: 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 100755 index 000000000..06a8e7303 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_actions.h @@ -0,0 +1,471 @@ +const u8 gEasyChatWord_Meets[] = _("MEETS"); +const u8 gEasyChatWord_Concede[] = _("CONCEDE"); +const u8 gEasyChatWord_Give[] = _("GIVE"); +const u8 gEasyChatWord_Gives[] = _("GIVES"); +const u8 gEasyChatWord_Played[] = _("PLAYED"); +const u8 gEasyChatWord_Plays[] = _("PLAYS"); +const u8 gEasyChatWord_Collect[] = _("COLLECT"); +const u8 gEasyChatWord_Walking[] = _("WALKING"); +const u8 gEasyChatWord_Walks[] = _("WALKS"); +const u8 gEasyChatWord_Says[] = _("SAYS"); +const u8 gEasyChatWord_Went[] = _("WENT"); +const u8 gEasyChatWord_Said[] = _("SAID"); +const u8 gEasyChatWord_WakeUp[] = _("WAKE UP"); +const u8 gEasyChatWord_WakesUp[] = _("WAKES UP"); +const u8 gEasyChatWord_Angers[] = _("ANGERS"); +const u8 gEasyChatWord_Teach[] = _("TEACH"); +const u8 gEasyChatWord_Teaches[] = _("TEACHES"); +const u8 gEasyChatWord_Please[] = _("PLEASE"); +const u8 gEasyChatWord_Learn[] = _("LEARN"); +const u8 gEasyChatWord_Change[] = _("CHANGE"); +const u8 gEasyChatWord_Story[] = _("STORY"); +const u8 gEasyChatWord_Trust[] = _("TRUST"); +const u8 gEasyChatWord_Lavish[] = _("LAVISH"); +const u8 gEasyChatWord_Listens[] = _("LISTENS"); +const u8 gEasyChatWord_Hearing[] = _("HEARING"); +const u8 gEasyChatWord_Trains[] = _("TRAINS"); +const u8 gEasyChatWord_Choose[] = _("CHOOSE"); +const u8 gEasyChatWord_Come[] = _("COME"); +const u8 gEasyChatWord_Came[] = _("CAME"); +const u8 gEasyChatWord_Search[] = _("SEARCH"); +const u8 gEasyChatWord_Make[] = _("MAKE"); +const u8 gEasyChatWord_Cause[] = _("CAUSE"); +const u8 gEasyChatWord_Know[] = _("KNOW"); +const u8 gEasyChatWord_Knows[] = _("KNOWS"); +const u8 gEasyChatWord_Refuse[] = _("REFUSE"); +const u8 gEasyChatWord_Stores[] = _("STORES"); +const u8 gEasyChatWord_Brag[] = _("BRAG"); +const u8 gEasyChatWord_Ignorant[] = _("IGNORANT"); +const u8 gEasyChatWord_Thinks[] = _("THINKS"); +const u8 gEasyChatWord_Believe[] = _("BELIEVE"); +const u8 gEasyChatWord_Slide[] = _("SLIDE"); +const u8 gEasyChatWord_Eats[] = _("EATS"); +const u8 gEasyChatWord_Use[] = _("USE"); +const u8 gEasyChatWord_Uses[] = _("USES"); +const u8 gEasyChatWord_Using[] = _("USING"); +const u8 gEasyChatWord_Couldnt[] = _("COULDN'T"); +const u8 gEasyChatWord_Capable[] = _("CAPABLE"); +const u8 gEasyChatWord_Disappear[] = _("DISAPPEAR"); +const u8 gEasyChatWord_Appear[] = _("APPEAR"); +const u8 gEasyChatWord_Throw[] = _("THROW"); +const u8 gEasyChatWord_Worry[] = _("WORRY"); +const u8 gEasyChatWord_Slept[] = _("SLEPT"); +const u8 gEasyChatWord_Sleep[] = _("SLEEP"); +const u8 gEasyChatWord_Release[] = _("RELEASE"); +const u8 gEasyChatWord_Drinks[] = _("DRINKS"); +const u8 gEasyChatWord_Runs[] = _("RUNS"); +const u8 gEasyChatWord_Run[] = _("RUN"); +const u8 gEasyChatWord_Works[] = _("WORKS"); +const u8 gEasyChatWord_Working[] = _("WORKING"); +const u8 gEasyChatWord_Talking[] = _("TALKING"); +const u8 gEasyChatWord_Talk[] = _("TALK"); +const u8 gEasyChatWord_Sink[] = _("SINK"); +const u8 gEasyChatWord_Smack[] = _("SMACK"); +const u8 gEasyChatWord_Pretend[] = _("PRETEND"); +const u8 gEasyChatWord_Praise[] = _("PRAISE"); +const u8 gEasyChatWord_Overdo[] = _("OVERDO"); +const u8 gEasyChatWord_Show[] = _("SHOW"); +const u8 gEasyChatWord_Looks[] = _("LOOKS"); +const u8 gEasyChatWord_Sees[] = _("SEES"); +const u8 gEasyChatWord_Seek[] = _("SEEK"); +const u8 gEasyChatWord_Own[] = _("OWN"); +const u8 gEasyChatWord_Take[] = _("TAKE"); +const u8 gEasyChatWord_Allow[] = _("ALLOW"); +const u8 gEasyChatWord_Forget[] = _("FORGET"); +const u8 gEasyChatWord_Forgets[] = _("FORGETS"); +const u8 gEasyChatWord_Appears[] = _("APPEARS"); +const u8 gEasyChatWord_Faint[] = _("FAINT"); +const u8 gEasyChatWord_Fainted[] = _("FAINTED"); + +const struct EasyChatWordInfo gEasyChatGroup_Actions[] = { + { + .text = gEasyChatWord_Meets, + .alphabeticalOrder = 72, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Concede, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Give, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gives, + .alphabeticalOrder = 75, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Played, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Plays, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Collect, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Walking, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Walks, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Says, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Went, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Said, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WakeUp, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WakesUp, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Angers, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Teach, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Teaches, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Please, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Learn, + .alphabeticalOrder = 76, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Change, + .alphabeticalOrder = 77, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Story, + .alphabeticalOrder = 73, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trust, + .alphabeticalOrder = 74, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lavish, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Listens, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hearing, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trains, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Choose, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Come, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Came, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Search, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Make, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cause, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Know, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Knows, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Refuse, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stores, + .alphabeticalOrder = 70, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Brag, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ignorant, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thinks, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Believe, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Slide, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Eats, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Use, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Uses, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Using, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Couldnt, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Capable, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappear, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Appear, + .alphabeticalOrder = 69, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Throw, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Worry, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Slept, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sleep, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Release, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drinks, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Runs, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Run, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Works, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Working, + .alphabeticalOrder = 71, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Talking, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Talk, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sink, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smack, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pretend, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Praise, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Overdo, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Show, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Looks, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sees, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Seek, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Own, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Take, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Allow, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forget, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forgets, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Appears, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Faint, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..1c7474118 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_adjectives.h @@ -0,0 +1,219 @@ +const u8 gEasyChatWord_Wandering[] = _("WANDERING"); +const u8 gEasyChatWord_Rickety[] = _("RICKETY"); +const u8 gEasyChatWord_RockSolid[] = _("ROCK-SOLID"); +const u8 gEasyChatWord_Hungry[] = _("HUNGRY"); +const u8 gEasyChatWord_Tight[] = _("TIGHT"); +const u8 gEasyChatWord_Ticklish[] = _("TICKLISH"); +const u8 gEasyChatWord_Twirling[] = _("TWIRLING"); +const u8 gEasyChatWord_Spiraling[] = _("SPIRALING"); +const u8 gEasyChatWord_Thirsty[] = _("THIRSTY"); +const u8 gEasyChatWord_Lolling[] = _("LOLLING"); +const u8 gEasyChatWord_Silky[] = _("SILKY"); +const u8 gEasyChatWord_Sadly[] = _("SADLY"); +const u8 gEasyChatWord_Hopeless[] = _("HOPELESS"); +const u8 gEasyChatWord_Useless[] = _("USELESS"); +const u8 gEasyChatWord_Drooling[] = _("DROOLING"); +const u8 gEasyChatWord_Exciting[] = _("EXCITING"); +const u8 gEasyChatWord_Thick[] = _("THICK"); +const u8 gEasyChatWord_Smooth[] = _("SMOOTH"); +const u8 gEasyChatWord_Slimy[] = _("SLIMY"); +const u8 gEasyChatWord_Thin[] = _("THIN"); +const u8 gEasyChatWord_Break[] = _("BREAK"); +const u8 gEasyChatWord_Voracious[] = _("VORACIOUS"); +const u8 gEasyChatWord_Scatter[] = _("SCATTER"); +const u8 gEasyChatWord_Awesome[] = _("AWESOME"); +const u8 gEasyChatWord_Wimpy[] = _("WIMPY"); +const u8 gEasyChatWord_Wobbly[] = _("WOBBLY"); +const u8 gEasyChatWord_Shaky[] = _("SHAKY"); +const u8 gEasyChatWord_Ripped[] = _("RIPPED"); +const u8 gEasyChatWord_Shredded[] = _("SHREDDED"); +const u8 gEasyChatWord_Increasing[] = _("INCREASING"); +const u8 gEasyChatWord_Yet[] = _("YET"); +const u8 gEasyChatWord_Destroyed[] = _("DESTROYED"); +const u8 gEasyChatWord_Fiery[] = _("FIERY"); +const u8 gEasyChatWord_LoveyDovey[] = _("LOVEY-DOVEY"); +const u8 gEasyChatWord_Happily[] = _("HAPPILY"); +const u8 gEasyChatWord_Anticipation[] = _("ANTICIPATION"); + +const struct EasyChatWordInfo gEasyChatGroup_Adjectives[] = { + { + .text = gEasyChatWord_Wandering, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rickety, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RockSolid, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hungry, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tight, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ticklish, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Twirling, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spiraling, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thirsty, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lolling, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Silky, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sadly, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hopeless, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Useless, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drooling, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Exciting, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thick, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smooth, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Slimy, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thin, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Break, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Voracious, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Scatter, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Awesome, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wimpy, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wobbly, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shaky, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ripped, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shredded, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Increasing, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yet, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Destroyed, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fiery, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LoveyDovey, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happily, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..0f97f50c9 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_battle.h @@ -0,0 +1,381 @@ +const u8 gEasyChatWord_MatchUp[] = _("MATCH UP"); +const u8 gEasyChatWord_Go[] = _("GO"); +const u8 gEasyChatWord_No1[] = _("NO. 1"); +const u8 gEasyChatWord_Decide[] = _("DECIDE"); +const u8 gEasyChatWord_LetMeWin[] = _("LET ME WIN"); +const u8 gEasyChatWord_Wins[] = _("WINS"); +const u8 gEasyChatWord_Win[] = _("WIN"); +const u8 gEasyChatWord_Won[] = _("WON"); +const u8 gEasyChatWord_IfIWin[] = _("IF I WIN"); +const u8 gEasyChatWord_WhenIWin[] = _("WHEN I WIN"); +const u8 gEasyChatWord_CantWin[] = _("CAN'T WIN"); +const u8 gEasyChatWord_CanWin[] = _("CAN WIN"); +const u8 gEasyChatWord_NoMatch[] = _("NO MATCH"); +const u8 gEasyChatWord_Spirit[] = _("SPIRIT"); +const u8 gEasyChatWord_Decided[] = _("DECIDED"); +const u8 gEasyChatWord_TrumpCard[] = _("TRUMP CARD"); +const u8 gEasyChatWord_TakeThat[] = _("TAKE THAT"); +const u8 gEasyChatWord_ComeOn[] = _("COME ON"); +const u8 gEasyChatWord_Attack[] = _("ATTACK"); +const u8 gEasyChatWord_Surrender[] = _("SURRENDER"); +const u8 gEasyChatWord_Gutsy[] = _("GUTSY"); +const u8 gEasyChatWord_Talent[] = _("TALENT"); +const u8 gEasyChatWord_Strategy[] = _("STRATEGY"); +const u8 gEasyChatWord_Smite[] = _("SMITE"); +const u8 gEasyChatWord_Match[] = _("MATCH"); +const u8 gEasyChatWord_Victory[] = _("VICTORY"); +const u8 gEasyChatWord_Offensive[] = _("OFFENSIVE"); +const u8 gEasyChatWord_Sense[] = _("SENSE"); +const u8 gEasyChatWord_Versus[] = _("VERSUS"); +const u8 gEasyChatWord_Fights[] = _("FIGHTS"); +const u8 gEasyChatWord_Power[] = _("POWER"); +const u8 gEasyChatWord_Challenge[] = _("CHALLENGE"); +const u8 gEasyChatWord_Strong[] = _("STRONG"); +const u8 gEasyChatWord_TooStrong[] = _("TOO STRONG"); +const u8 gEasyChatWord_GoEasy[] = _("GO EASY"); +const u8 gEasyChatWord_Foe[] = _("FOE"); +const u8 gEasyChatWord_Genius[] = _("GENIUS"); +const u8 gEasyChatWord_Legend[] = _("LEGEND"); +const u8 gEasyChatWord_Escape[] = _("ESCAPE"); +const u8 gEasyChatWord_Aim[] = _("AIM"); +const u8 gEasyChatWord_Battle[] = _("BATTLE"); +const u8 gEasyChatWord_Fight[] = _("FIGHT"); +const u8 gEasyChatWord_Resuscitate[] = _("RESUSCITATE"); +const u8 gEasyChatWord_Points[] = _("POINTS"); +const u8 gEasyChatWord_Serious[] = _("SERIOUS"); +const u8 gEasyChatWord_GiveUp[] = _("GIVE UP"); +const u8 gEasyChatWord_Loss[] = _("LOSS"); +const u8 gEasyChatWord_IfILose[] = _("IF I LOSE"); +const u8 gEasyChatWord_Lost[] = _("LOST"); +const u8 gEasyChatWord_Lose[] = _("LOSE"); +const u8 gEasyChatWord_Guard[] = _("GUARD"); +const u8 gEasyChatWord_Partner[] = _("PARTNER"); +const u8 gEasyChatWord_Reject[] = _("REJECT"); +const u8 gEasyChatWord_Accept[] = _("ACCEPT"); +const u8 gEasyChatWord_Invincible[] = _("INVINCIBLE"); +const u8 gEasyChatWord_Received[] = _("RECEIVED"); +const u8 gEasyChatWord_Easy[] = _("EASY"); +const u8 gEasyChatWord_Weak[] = _("WEAK"); +const u8 gEasyChatWord_TooWeak[] = _("TOO WEAK"); +const u8 gEasyChatWord_Pushover[] = _("PUSHOVER"); +const u8 gEasyChatWord_Leader[] = _("LEADER"); +const u8 gEasyChatWord_Rule[] = _("RULE"); +const u8 gEasyChatWord_Move[] = _("MOVE"); + +const struct EasyChatWordInfo gEasyChatGroup_Battle[] = { + { + .text = gEasyChatWord_MatchUp, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Go, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_No1, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Decide, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LetMeWin, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wins, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Win, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Won, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IfIWin, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhenIWin, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CantWin, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CanWin, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NoMatch, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spirit, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Decided, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TrumpCard, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TakeThat, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ComeOn, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Attack, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Surrender, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gutsy, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Talent, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Strategy, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smite, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Match, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Victory, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Offensive, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sense, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Versus, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fights, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Power, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Challenge, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Strong, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TooStrong, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoEasy, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Foe, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Genius, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Legend, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Escape, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aim, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Battle, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fight, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Resuscitate, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Points, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Serious, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GiveUp, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Loss, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IfILose, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lost, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lose, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Guard, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Partner, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Reject, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Accept, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Invincible, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Received, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Easy, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weak, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TooWeak, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pushover, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Leader, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rule, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..a8d8ee874 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_conditions.h @@ -0,0 +1,417 @@ +const u8 gEasyChatWord_Hot[] = _("HOT"); +const u8 gEasyChatWord_Exists[] = _("EXISTS"); +const u8 gEasyChatWord_Excess[] = _("EXCESS"); +const u8 gEasyChatWord_Approved[] = _("APPROVED"); +const u8 gEasyChatWord_Has[] = _("HAS"); +const u8 gEasyChatWord_Good[] = _("GOOD"); +const u8 gEasyChatWord_Less[] = _("LESS"); +const u8 gEasyChatWord_Momentum[] = _("MOMENTUM"); +const u8 gEasyChatWord_Going[] = _("GOING"); +const u8 gEasyChatWord_Weird[] = _("WEIRD"); +const u8 gEasyChatWord_Busy[] = _("BUSY"); +const u8 gEasyChatWord_Together[] = _("TOGETHER"); +const u8 gEasyChatWord_Full[] = _("FULL"); +const u8 gEasyChatWord_Absent[] = _("ABSENT"); +const u8 gEasyChatWord_Being[] = _("BEING"); +const u8 gEasyChatWord_Need[] = _("NEED"); +const u8 gEasyChatWord_Tasty[] = _("TASTY"); +const u8 gEasyChatWord_Skilled[] = _("SKILLED"); +const u8 gEasyChatWord_Noisy[] = _("NOISY"); +const u8 gEasyChatWord_Big[] = _("BIG"); +const u8 gEasyChatWord_Late[] = _("LATE"); +const u8 gEasyChatWord_Close[] = _("CLOSE"); +const u8 gEasyChatWord_Docile[] = _("DOCILE"); +const u8 gEasyChatWord_Amusing[] = _("AMUSING"); +const u8 gEasyChatWord_Entertaining[] = _("ENTERTAINING"); +const u8 gEasyChatWord_Perfection[] = _("PERFECTION"); +const u8 gEasyChatWord_Pretty[] = _("PRETTY"); +const u8 gEasyChatWord_Healthy[] = _("HEALTHY"); +const u8 gEasyChatWord_Excellent[] = _("EXCELLENT"); +const u8 gEasyChatWord_UpsideDown[] = _("UPSIDE DOWN"); +const u8 gEasyChatWord_Cold[] = _("COLD"); +const u8 gEasyChatWord_Refreshing[] = _("REFRESHING"); +const u8 gEasyChatWord_Unavoidable[] = _("UNAVOIDABLE"); +const u8 gEasyChatWord_Much[] = _("MUCH"); +const u8 gEasyChatWord_Overwhelming[] = _("OVERWHELMING"); +const u8 gEasyChatWord_Fabulous[] = _("FABULOUS"); +const u8 gEasyChatWord_Else[] = _("ELSE"); +const u8 gEasyChatWord_Expensive[] = _("EXPENSIVE"); +const u8 gEasyChatWord_Correct[] = _("CORRECT"); +const u8 gEasyChatWord_Impossible[] = _("IMPOSSIBLE"); +const u8 gEasyChatWord_Small[] = _("SMALL"); +const u8 gEasyChatWord_Different[] = _("DIFFERENT"); +const u8 gEasyChatWord_Tired[] = _("TIRED"); +const u8 gEasyChatWord_Skill[] = _("SKILL"); +const u8 gEasyChatWord_Top[] = _("TOP"); +const u8 gEasyChatWord_NonStop[] = _("NON-STOP"); +const u8 gEasyChatWord_Preposterous[] = _("PREPOSTEROUS"); +const u8 gEasyChatWord_None[] = _("NONE"); +const u8 gEasyChatWord_Nothing[] = _("NOTHING"); +const u8 gEasyChatWord_Natural[] = _("NATURAL"); +const u8 gEasyChatWord_Becomes[] = _("BECOMES"); +const u8 gEasyChatWord_Lukewarm[] = _("LUKEWARM"); +const u8 gEasyChatWord_Fast[] = _("FAST"); +const u8 gEasyChatWord_Low[] = _("LOW"); +const u8 gEasyChatWord_Awful[] = _("AWFUL"); +const u8 gEasyChatWord_Alone[] = _("ALONE"); +const u8 gEasyChatWord_Bored[] = _("BORED"); +const u8 gEasyChatWord_Secret[] = _("SECRET"); +const u8 gEasyChatWord_Mystery[] = _("MYSTERY"); +const u8 gEasyChatWord_Lacks[] = _("LACKS"); +const u8 gEasyChatWord_Best[] = _("BEST"); +const u8 gEasyChatWord_Lousy[] = _("LOUSY"); +const u8 gEasyChatWord_Mistake[] = _("MISTAKE"); +const u8 gEasyChatWord_Kind[] = _("KIND"); +const u8 gEasyChatWord_Well[] = _("WELL"); +const u8 gEasyChatWord_Weakened[] = _("WEAKENED"); +const u8 gEasyChatWord_Simple[] = _("SIMPLE"); +const u8 gEasyChatWord_Seems[] = _("SEEMS"); +const u8 gEasyChatWord_Badly[] = _("BADLY"); + +const struct EasyChatWordInfo gEasyChatGroup_Conditions[] = { + { + .text = gEasyChatWord_Hot, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Exists, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excess, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Approved, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Has, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Good, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Less, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Momentum, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Going, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weird, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Busy, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Together, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Full, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Absent, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Being, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Need, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tasty, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Skilled, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Noisy, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Big, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Late, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Close, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Docile, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Amusing, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Entertaining, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Perfection, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pretty, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Healthy, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excellent, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_UpsideDown, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cold, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Refreshing, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Unavoidable, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Much, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Overwhelming, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fabulous, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Else, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Expensive, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Correct, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Impossible, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Small, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Different, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tired, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Skill, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Top, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NonStop, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Preposterous, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_None, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nothing, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Natural, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Becomes, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lukewarm, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fast, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Low, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Awful, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Alone, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bored, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Secret, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mystery, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lacks, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Best, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lousy, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mistake, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kind, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Well, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weakened, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Simple, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Seems, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..afaea48cb --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_endings.h @@ -0,0 +1,417 @@ +const u8 gEasyChatWord_Will[] = _("WILL"); +const u8 gEasyChatWord_WillBeHere[] = _("WILL BE HERE"); +const u8 gEasyChatWord_Or[] = _("OR"); +const u8 gEasyChatWord_Times[] = _("TIMES"); +const u8 gEasyChatWord_Wonder[] = _("WONDER"); +const u8 gEasyChatWord_IsItQues[] = _("IS IT?"); +const u8 gEasyChatWord_Be[] = _("BE"); +const u8 gEasyChatWord_Gimme[] = _("GIMME"); +const u8 gEasyChatWord_Could[] = _("COULD"); +const u8 gEasyChatWord_LikelyTo[] = _("LIKELY TO"); +const u8 gEasyChatWord_Would[] = _("WOULD"); +const u8 gEasyChatWord_Is[] = _("IS"); +const u8 gEasyChatWord_IsntItQues[] = _("ISN'T IT?"); +const u8 gEasyChatWord_Lets[] = _("LET'S"); +const u8 gEasyChatWord_Other[] = _("OTHER"); +const u8 gEasyChatWord_Are[] = _("ARE"); +const u8 gEasyChatWord_Was[] = _("WAS"); +const u8 gEasyChatWord_Were[] = _("WERE"); +const u8 gEasyChatWord_Those[] = _("THOSE"); +const u8 gEasyChatWord_Isnt[] = _("ISN'T"); +const u8 gEasyChatWord_Wont[] = _("WON'T"); +const u8 gEasyChatWord_Cant[] = _("CAN'T"); +const u8 gEasyChatWord_Can[] = _("CAN"); +const u8 gEasyChatWord_Dont[] = _("DON'T"); +const u8 gEasyChatWord_Do[] = _("DO"); +const u8 gEasyChatWord_Does[] = _("DOES"); +const u8 gEasyChatWord_Whom[] = _("WHOM"); +const u8 gEasyChatWord_Which[] = _("WHICH"); +const u8 gEasyChatWord_Wasnt[] = _("WASN'T"); +const u8 gEasyChatWord_Werent[] = _("WEREN'T"); +const u8 gEasyChatWord_Have[] = _("HAVE"); +const u8 gEasyChatWord_Havent[] = _("HAVEN'T"); +const u8 gEasyChatWord_A[] = _("A"); +const u8 gEasyChatWord_An[] = _("AN"); +const u8 gEasyChatWord_Not[] = _("NOT"); +const u8 gEasyChatWord_There[] = _("THERE"); +const u8 gEasyChatWord_OkQues[] = _("OK?"); +const u8 gEasyChatWord_So[] = _("SO"); +const u8 gEasyChatWord_Maybe[] = _("MAYBE"); +const u8 gEasyChatWord_About[] = _("ABOUT"); +const u8 gEasyChatWord_Over[] = _("OVER"); +const u8 gEasyChatWord_It[] = _("IT"); +const u8 gEasyChatWord_All[] = _("ALL"); +const u8 gEasyChatWord_For[] = _("FOR"); +const u8 gEasyChatWord_On[] = _("ON"); +const u8 gEasyChatWord_Off[] = _("OFF"); +const u8 gEasyChatWord_As[] = _("AS"); +const u8 gEasyChatWord_To[] = _("TO"); +const u8 gEasyChatWord_With[] = _("WITH"); +const u8 gEasyChatWord_Better[] = _("BETTER"); +const u8 gEasyChatWord_Ever[] = _("EVER"); +const u8 gEasyChatWord_Since[] = _("SINCE"); +const u8 gEasyChatWord_Of[] = _("OF"); +const u8 gEasyChatWord_BelongsTo[] = _("BELONGS TO"); +const u8 gEasyChatWord_At[] = _("AT"); +const u8 gEasyChatWord_In[] = _("IN"); +const u8 gEasyChatWord_Out[] = _("OUT"); +const u8 gEasyChatWord_Too[] = _("TOO"); +const u8 gEasyChatWord_Like[] = _("LIKE"); +const u8 gEasyChatWord_Did[] = _("DID"); +const u8 gEasyChatWord_Didnt[] = _("DIDN'T"); +const u8 gEasyChatWord_Doesnt[] = _("DOESN'T"); +const u8 gEasyChatWord_Without[] = _("WITHOUT"); +const u8 gEasyChatWord_After[] = _("AFTER"); +const u8 gEasyChatWord_Before[] = _("BEFORE"); +const u8 gEasyChatWord_While[] = _("WHILE"); +const u8 gEasyChatWord_Than[] = _("THAN"); +const u8 gEasyChatWord_Once[] = _("ONCE"); +const u8 gEasyChatWord_Anywhere[] = _("ANYWHERE"); + +const struct EasyChatWordInfo gEasyChatGroup_Endings[] = { + { + .text = gEasyChatWord_Will, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WillBeHere, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Or, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Times, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wonder, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IsItQues, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Be, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gimme, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Could, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LikelyTo, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Would, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Is, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IsntItQues, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lets, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Other, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Are, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Was, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Were, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Those, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Isnt, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wont, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cant, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Can, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dont, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Do, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Does, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Whom, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Which, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wasnt, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Werent, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Have, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Havent, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_A, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_An, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Not, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_There, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OkQues, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_So, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Maybe, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_About, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Over, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_It, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_All, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_For, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_On, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Off, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_As, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_To, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_With, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Better, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ever, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Since, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Of, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BelongsTo, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_At, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_In, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Out, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Too, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Like, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Did, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Didnt, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Doesnt, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Without, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_After, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Before, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_While, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Than, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Once, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..8d9cf7e24 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_events.h @@ -0,0 +1,177 @@ +const u8 gEasyChatWord_Appeal[] = _("APPEAL"); +const u8 gEasyChatWord_Events[] = _("EVENTS"); +const u8 gEasyChatWord_StayAtHome[] = _("STAY-AT-HOME"); +const u8 gEasyChatWord_Berry[] = _("BERRY"); +const u8 gEasyChatWord_Contest[] = _("CONTEST"); +const u8 gEasyChatWord_Mc[] = _("MC"); +const u8 gEasyChatWord_Judge[] = _("JUDGE"); +const u8 gEasyChatWord_Super[] = _("SUPER"); +const u8 gEasyChatWord_Stage[] = _("STAGE"); +const u8 gEasyChatWord_HallOfFame[] = _("HALL OF FAME"); +const u8 gEasyChatWord_Evolution[] = _("EVOLUTION"); +const u8 gEasyChatWord_Hyper[] = _("HYPER"); +const u8 gEasyChatWord_BattleTower[] = _("BATTLE TOWER"); +const u8 gEasyChatWord_Leaders[] = _("LEADERS"); +const u8 gEasyChatWord_BattleRoom[] = _("BATTLE ROOM"); +const u8 gEasyChatWord_Hidden[] = _("HIDDEN"); +const u8 gEasyChatWord_SecretBase[] = _("SECRET BASE"); +const u8 gEasyChatWord_Blend[] = _("BLEND"); +const u8 gEasyChatWord_POKEBLOCK[] = _("{POKEBLOCK}"); +const u8 gEasyChatWord_Master[] = _("MASTER"); +const u8 gEasyChatWord_Rank[] = _("RANK"); +const u8 gEasyChatWord_Ribbon[] = _("RIBBON"); +const u8 gEasyChatWord_Crush[] = _("CRUSH"); +const u8 gEasyChatWord_Direct[] = _("DIRECT"); +const u8 gEasyChatWord_Tower[] = _("TOWER"); +const u8 gEasyChatWord_Union[] = _("UNION"); +const u8 gEasyChatWord_Room[] = _("ROOM"); +const u8 gEasyChatWord_Wireless[] = _("WIRELESS"); +const u8 gEasyChatWord_Frontier[] = _("FRONTIER"); + +const struct EasyChatWordInfo gEasyChatGroup_Events[] = { + { + .text = gEasyChatWord_Appeal, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Events, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_StayAtHome, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Berry, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Contest, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mc, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Judge, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Super, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stage, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HallOfFame, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Evolution, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hyper, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BattleTower, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Leaders, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BattleRoom, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hidden, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SecretBase, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Blend, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_POKEBLOCK, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Master, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rank, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ribbon, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Crush, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Direct, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tower, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Union, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Room, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wireless, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Frontier, + .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 100755 index 000000000..2dda71808 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_feelings.h @@ -0,0 +1,417 @@ +const u8 gEasyChatWord_Meet[] = _("MEET"); +const u8 gEasyChatWord_Play[] = _("PLAY"); +const u8 gEasyChatWord_Hurried[] = _("HURRIED"); +const u8 gEasyChatWord_Goes[] = _("GOES"); +const u8 gEasyChatWord_Giddy[] = _("GIDDY"); +const u8 gEasyChatWord_Happy[] = _("HAPPY"); +const u8 gEasyChatWord_Happiness[] = _("HAPPINESS"); +const u8 gEasyChatWord_Excite[] = _("EXCITE"); +const u8 gEasyChatWord_Important[] = _("IMPORTANT"); +const u8 gEasyChatWord_Funny[] = _("FUNNY"); +const u8 gEasyChatWord_Got[] = _("GOT"); +const u8 gEasyChatWord_GoHome[] = _("GO HOME"); +const u8 gEasyChatWord_Disappointed[] = _("DISAPPOINTED"); +const u8 gEasyChatWord_Disappoints[] = _("DISAPPOINTS"); +const u8 gEasyChatWord_Sad[] = _("SAD"); +const u8 gEasyChatWord_Try[] = _("TRY"); +const u8 gEasyChatWord_Tries[] = _("TRIES"); +const u8 gEasyChatWord_Hears[] = _("HEARS"); +const u8 gEasyChatWord_Think[] = _("THINK"); +const u8 gEasyChatWord_Hear[] = _("HEAR"); +const u8 gEasyChatWord_Wants[] = _("WANTS"); +const u8 gEasyChatWord_Misheard[] = _("MISHEARD"); +const u8 gEasyChatWord_Dislike[] = _("DISLIKE"); +const u8 gEasyChatWord_Angry[] = _("ANGRY"); +const u8 gEasyChatWord_Anger[] = _("ANGER"); +const u8 gEasyChatWord_Scary[] = _("SCARY"); +const u8 gEasyChatWord_Lonesome[] = _("LONESOME"); +const u8 gEasyChatWord_Disappoint[] = _("DISAPPOINT"); +const u8 gEasyChatWord_Joy[] = _("JOY"); +const u8 gEasyChatWord_Gets[] = _("GETS"); +const u8 gEasyChatWord_Never[] = _("NEVER"); +const u8 gEasyChatWord_Darn[] = _("DARN"); +const u8 gEasyChatWord_Downcast[] = _("DOWNCAST"); +const u8 gEasyChatWord_Incredible[] = _("INCREDIBLE"); +const u8 gEasyChatWord_Likes[] = _("LIKES"); +const u8 gEasyChatWord_Dislikes[] = _("DISLIKES"); +const u8 gEasyChatWord_Boring[] = _("BORING"); +const u8 gEasyChatWord_Care[] = _("CARE"); +const u8 gEasyChatWord_Cares[] = _("CARES"); +const u8 gEasyChatWord_AllRight[] = _("ALL RIGHT"); +const u8 gEasyChatWord_Adore[] = _("ADORE"); +const u8 gEasyChatWord_Disaster[] = _("DISASTER"); +const u8 gEasyChatWord_Enjoy[] = _("ENJOY"); +const u8 gEasyChatWord_Enjoys[] = _("ENJOYS"); +const u8 gEasyChatWord_Eat[] = _("EAT"); +const u8 gEasyChatWord_Lacking[] = _("LACKING"); +const u8 gEasyChatWord_Bad[] = _("BAD"); +const u8 gEasyChatWord_Hard[] = _("HARD"); +const u8 gEasyChatWord_Terrible[] = _("TERRIBLE"); +const u8 gEasyChatWord_Should[] = _("SHOULD"); +const u8 gEasyChatWord_Nice[] = _("NICE"); +const u8 gEasyChatWord_Drink[] = _("DRINK"); +const u8 gEasyChatWord_Surprise[] = _("SURPRISE"); +const u8 gEasyChatWord_Fear[] = _("FEAR"); +const u8 gEasyChatWord_Want[] = _("WANT"); +const u8 gEasyChatWord_Wait[] = _("WAIT"); +const u8 gEasyChatWord_Satisfied[] = _("SATISFIED"); +const u8 gEasyChatWord_See[] = _("SEE"); +const u8 gEasyChatWord_Rare[] = _("RARE"); +const u8 gEasyChatWord_Negative[] = _("NEGATIVE"); +const u8 gEasyChatWord_Done[] = _("DONE"); +const u8 gEasyChatWord_Danger[] = _("DANGER"); +const u8 gEasyChatWord_Defeated[] = _("DEFEATED"); +const u8 gEasyChatWord_Beat[] = _("BEAT"); +const u8 gEasyChatWord_Great[] = _("GREAT"); +const u8 gEasyChatWord_Romantic[] = _("ROMANTIC"); +const u8 gEasyChatWord_Question[] = _("QUESTION"); +const u8 gEasyChatWord_Understand[] = _("UNDERSTAND"); +const u8 gEasyChatWord_Understands[] = _("UNDERSTANDS"); + +const struct EasyChatWordInfo gEasyChatGroup_Feelings[] = { + { + .text = gEasyChatWord_Meet, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Play, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hurried, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Goes, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Giddy, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happy, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happiness, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excite, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Important, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Funny, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Got, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoHome, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappointed, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappoints, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sad, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Try, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tries, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hears, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Think, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hear, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wants, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Misheard, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dislike, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Angry, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Anger, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Scary, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lonesome, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappoint, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Joy, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gets, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Never, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Darn, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Downcast, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Incredible, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Likes, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dislikes, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Boring, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Care, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cares, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AllRight, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Adore, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disaster, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Enjoy, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Enjoys, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Eat, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lacking, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bad, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hard, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Terrible, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Should, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nice, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drink, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Surprise, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fear, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Want, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wait, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Satisfied, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_See, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rare, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Negative, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Done, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Danger, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Defeated, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beat, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Great, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Romantic, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Question, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Understand, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..4df08bf7d --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_greetings.h @@ -0,0 +1,255 @@ +const u8 gEasyChatWord_Thanks[] = _("THANKS"); +const u8 gEasyChatWord_Yes[] = _("YES"); +const u8 gEasyChatWord_HereGoes[] = _("HERE GOES"); +const u8 gEasyChatWord_HereICome[] = _("HERE I COME"); +const u8 gEasyChatWord_HereItIs[] = _("HERE IT IS"); +const u8 gEasyChatWord_Yeah[] = _("YEAH"); +const u8 gEasyChatWord_Welcome[] = _("WELCOME"); +const u8 gEasyChatWord_Oi[] = _("OI"); +const u8 gEasyChatWord_HowDo[] = _("HOW DO"); +const u8 gEasyChatWord_Congrats[] = _("CONGRATS"); +const u8 gEasyChatWord_GiveMe[] = _("GIVE ME"); +const u8 gEasyChatWord_Sorry[] = _("SORRY"); +const u8 gEasyChatWord_Apologize[] = _("APOLOGIZE"); +const u8 gEasyChatWord_Forgive[] = _("FORGIVE"); +const u8 gEasyChatWord_HeyThere[] = _("HEY, THERE"); +const u8 gEasyChatWord_Hello[] = _("HELLO"); +const u8 gEasyChatWord_GoodBye[] = _("GOOD-BYE"); +const u8 gEasyChatWord_ThankYou[] = _("THANK YOU"); +const u8 gEasyChatWord_IveArrived[] = _("I'VE ARRIVED"); +const u8 gEasyChatWord_Pardon[] = _("PARDON"); +const u8 gEasyChatWord_Excuse[] = _("EXCUSE"); +const u8 gEasyChatWord_SeeYa[] = _("SEE YA"); +const u8 gEasyChatWord_ExcuseMe[] = _("EXCUSE ME"); +const u8 gEasyChatWord_WellThen[] = _("WELL, THEN"); +const u8 gEasyChatWord_GoAhead[] = _("GO AHEAD"); +const u8 gEasyChatWord_Appreciate[] = _("APPRECIATE"); +const u8 gEasyChatWord_HeyQues[] = _("HEY?"); +const u8 gEasyChatWord_WhatsUpQues[] = _("WHAT'S UP?"); +const u8 gEasyChatWord_HuhQues[] = _("HUH?"); +const u8 gEasyChatWord_No[] = _("NO"); +const u8 gEasyChatWord_Hi[] = _("HI"); +const u8 gEasyChatWord_YeahYeah[] = _("YEAH, YEAH"); +const u8 gEasyChatWord_ByeBye[] = _("BYE-BYE"); +const u8 gEasyChatWord_MeetYou[] = _("MEET YOU"); +const u8 gEasyChatWord_Hey[] = _("HEY"); +const u8 gEasyChatWord_Smell[] = _("SMELL"); +const u8 gEasyChatWord_Listening[] = _("LISTENING"); +const u8 gEasyChatWord_HooHah[] = _("HOO-HAH"); +const u8 gEasyChatWord_Yahoo[] = _("YAHOO"); +const u8 gEasyChatWord_Yo[] = _("YO"); +const u8 gEasyChatWord_ComeOver[] = _("COME OVER"); +const u8 gEasyChatWord_CountOn[] = _("COUNT ON"); + +const struct EasyChatWordInfo gEasyChatGroup_Greetings[] = { + { + .text = gEasyChatWord_Thanks, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yes, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HereGoes, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HereICome, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HereItIs, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yeah, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Welcome, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oi, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HowDo, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Congrats, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GiveMe, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sorry, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Apologize, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forgive, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HeyThere, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hello, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoodBye, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThankYou, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IveArrived, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pardon, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excuse, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SeeYa, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ExcuseMe, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WellThen, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoAhead, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Appreciate, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HeyQues, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhatsUpQues, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HuhQues, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_No, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hi, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_YeahYeah, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ByeBye, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MeetYou, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hey, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smell, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Listening, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HooHah, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yahoo, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yo, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ComeOver, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..fcd73d017 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_hobbies.h @@ -0,0 +1,327 @@ +const u8 gEasyChatWord_Idol[] = _("IDOL"); +const u8 gEasyChatWord_Anime[] = _("ANIME"); +const u8 gEasyChatWord_Song[] = _("SONG"); +const u8 gEasyChatWord_Movie[] = _("MOVIE"); +const u8 gEasyChatWord_Sweets[] = _("SWEETS"); +const u8 gEasyChatWord_Chat[] = _("CHAT"); +const u8 gEasyChatWord_ChildsPlay[] = _("CHILD'S PLAY"); +const u8 gEasyChatWord_Toys[] = _("TOYS"); +const u8 gEasyChatWord_Music[] = _("MUSIC"); +const u8 gEasyChatWord_Cards[] = _("CARDS"); +const u8 gEasyChatWord_Shopping[] = _("SHOPPING"); +const u8 gEasyChatWord_Camera[] = _("CAMERA"); +const u8 gEasyChatWord_Viewing[] = _("VIEWING"); +const u8 gEasyChatWord_Spectator[] = _("SPECTATOR"); +const u8 gEasyChatWord_Gourmet[] = _("GOURMET"); +const u8 gEasyChatWord_Game[] = _("GAME"); +const u8 gEasyChatWord_Rpg[] = _("RPG"); +const u8 gEasyChatWord_Collection[] = _("COLLECTION"); +const u8 gEasyChatWord_Complete[] = _("COMPLETE"); +const u8 gEasyChatWord_Magazine[] = _("MAGAZINE"); +const u8 gEasyChatWord_Walk[] = _("WALK"); +const u8 gEasyChatWord_Bike[] = _("BIKE"); +const u8 gEasyChatWord_Hobby[] = _("HOBBY"); +const u8 gEasyChatWord_Sports[] = _("SPORTS"); +const u8 gEasyChatWord_Software[] = _("SOFTWARE"); +const u8 gEasyChatWord_Songs[] = _("SONGS"); +const u8 gEasyChatWord_Diet[] = _("DIET"); +const u8 gEasyChatWord_Treasure[] = _("TREASURE"); +const u8 gEasyChatWord_Travel[] = _("TRAVEL"); +const u8 gEasyChatWord_Dance[] = _("DANCE"); +const u8 gEasyChatWord_Channel[] = _("CHANNEL"); +const u8 gEasyChatWord_Making[] = _("MAKING"); +const u8 gEasyChatWord_Fishing[] = _("FISHING"); +const u8 gEasyChatWord_Date[] = _("DATE"); +const u8 gEasyChatWord_Design[] = _("DESIGN"); +const u8 gEasyChatWord_Locomotive[] = _("LOCOMOTIVE"); +const u8 gEasyChatWord_PlushDoll[] = _("PLUSH DOLL"); +const u8 gEasyChatWord_Pc[] = _("PC"); +const u8 gEasyChatWord_Flowers[] = _("FLOWERS"); +const u8 gEasyChatWord_Hero[] = _("HERO"); +const u8 gEasyChatWord_Nap[] = _("NAP"); +const u8 gEasyChatWord_Heroine[] = _("HEROINE"); +const u8 gEasyChatWord_Fashion[] = _("FASHION"); +const u8 gEasyChatWord_Adventure[] = _("ADVENTURE"); +const u8 gEasyChatWord_Board[] = _("BOARD"); +const u8 gEasyChatWord_Ball[] = _("BALL"); +const u8 gEasyChatWord_Book[] = _("BOOK"); +const u8 gEasyChatWord_Festival[] = _("FESTIVAL"); +const u8 gEasyChatWord_Comics[] = _("COMICS"); +const u8 gEasyChatWord_Holiday[] = _("HOLIDAY"); +const u8 gEasyChatWord_Plans[] = _("PLANS"); +const u8 gEasyChatWord_Trendy[] = _("TRENDY"); +const u8 gEasyChatWord_Vacation[] = _("VACATION"); +const u8 gEasyChatWord_Look[] = _("LOOK"); + +const struct EasyChatWordInfo gEasyChatGroup_Hobbies[] = { + { + .text = gEasyChatWord_Idol, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Anime, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Song, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Movie, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sweets, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Chat, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ChildsPlay, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Toys, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Music, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cards, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shopping, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Camera, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Viewing, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spectator, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gourmet, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Game, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rpg, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Collection, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Complete, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Magazine, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Walk, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bike, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hobby, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sports, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Software, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Songs, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Diet, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Treasure, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Travel, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dance, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Channel, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Making, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fishing, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Date, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Design, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Locomotive, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_PlushDoll, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pc, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flowers, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hero, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nap, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Heroine, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fashion, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Adventure, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Board, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ball, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Book, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Festival, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Comics, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Holiday, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Plans, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trendy, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Vacation, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..9ed60025d --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_lifestyle.h @@ -0,0 +1,273 @@ +const u8 gEasyChatWord_Chores[] = _("CHORES"); +const u8 gEasyChatWord_Home[] = _("HOME"); +const u8 gEasyChatWord_Money[] = _("MONEY"); +const u8 gEasyChatWord_Allowance[] = _("ALLOWANCE"); +const u8 gEasyChatWord_Bath[] = _("BATH"); +const u8 gEasyChatWord_Conversation[] = _("CONVERSATION"); +const u8 gEasyChatWord_School[] = _("SCHOOL"); +const u8 gEasyChatWord_Commemorate[] = _("COMMEMORATE"); +const u8 gEasyChatWord_Habit[] = _("HABIT"); +const u8 gEasyChatWord_Group[] = _("GROUP"); +const u8 gEasyChatWord_Word[] = _("WORD"); +const u8 gEasyChatWord_Store[] = _("STORE"); +const u8 gEasyChatWord_Service[] = _("SERVICE"); +const u8 gEasyChatWord_Work[] = _("WORK"); +const u8 gEasyChatWord_System[] = _("SYSTEM"); +const u8 gEasyChatWord_Train[] = _("TRAIN"); +const u8 gEasyChatWord_Class[] = _("CLASS"); +const u8 gEasyChatWord_Lessons[] = _("LESSONS"); +const u8 gEasyChatWord_Information[] = _("INFORMATION"); +const u8 gEasyChatWord_Living[] = _("LIVING"); +const u8 gEasyChatWord_Teacher[] = _("TEACHER"); +const u8 gEasyChatWord_Tournament[] = _("TOURNAMENT"); +const u8 gEasyChatWord_Letter[] = _("LETTER"); +const u8 gEasyChatWord_Event[] = _("EVENT"); +const u8 gEasyChatWord_Digital[] = _("DIGITAL"); +const u8 gEasyChatWord_Test[] = _("TEST"); +const u8 gEasyChatWord_DeptStore[] = _("DEPT. STORE"); +const u8 gEasyChatWord_Television[] = _("TELEVISION"); +const u8 gEasyChatWord_Phone[] = _("PHONE"); +const u8 gEasyChatWord_Item[] = _("ITEM"); +const u8 gEasyChatWord_Name[] = _("NAME"); +const u8 gEasyChatWord_News[] = _("NEWS"); +const u8 gEasyChatWord_Popular[] = _("POPULAR"); +const u8 gEasyChatWord_Party[] = _("PARTY"); +const u8 gEasyChatWord_Study[] = _("STUDY"); +const u8 gEasyChatWord_Machine[] = _("MACHINE"); +const u8 gEasyChatWord_Mail[] = _("MAIL"); +const u8 gEasyChatWord_Message[] = _("MESSAGE"); +const u8 gEasyChatWord_Promise[] = _("PROMISE"); +const u8 gEasyChatWord_Dream[] = _("DREAM"); +const u8 gEasyChatWord_Kindergarten[] = _("KINDERGARTEN"); +const u8 gEasyChatWord_Life[] = _("LIFE"); +const u8 gEasyChatWord_Radio[] = _("RADIO"); +const u8 gEasyChatWord_Rental[] = _("RENTAL"); +const u8 gEasyChatWord_World[] = _("WORLD"); + +const struct EasyChatWordInfo gEasyChatGroup_Lifestyle[] = { + { + .text = gEasyChatWord_Chores, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Home, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Money, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Allowance, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bath, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Conversation, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_School, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Commemorate, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Habit, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Group, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Word, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Store, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Service, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Work, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_System, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Train, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Class, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lessons, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Information, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Living, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Teacher, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tournament, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Letter, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Event, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Digital, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Test, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_DeptStore, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Television, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Phone, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Item, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Name, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_News, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Popular, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Party, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Study, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Machine, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mail, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Message, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Promise, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dream, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kindergarten, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Life, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Radio, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rental, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..fbc9a7069 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_misc.h @@ -0,0 +1,255 @@ +const u8 gEasyChatWord_Highs[] = _("HIGHS"); +const u8 gEasyChatWord_Lows[] = _("LOWS"); +const u8 gEasyChatWord_Um[] = _("UM"); +const u8 gEasyChatWord_Rear[] = _("REAR"); +const u8 gEasyChatWord_Things[] = _("THINGS"); +const u8 gEasyChatWord_Thing[] = _("THING"); +const u8 gEasyChatWord_Below[] = _("BELOW"); +const u8 gEasyChatWord_Above[] = _("ABOVE"); +const u8 gEasyChatWord_Back[] = _("BACK"); +const u8 gEasyChatWord_High[] = _("HIGH"); +const u8 gEasyChatWord_Here[] = _("HERE"); +const u8 gEasyChatWord_Inside[] = _("INSIDE"); +const u8 gEasyChatWord_Outside[] = _("OUTSIDE"); +const u8 gEasyChatWord_Beside[] = _("BESIDE"); +const u8 gEasyChatWord_ThisIsItExcl[] = _("THIS IS IT!"); +const u8 gEasyChatWord_This[] = _("THIS"); +const u8 gEasyChatWord_Every[] = _("EVERY"); +const u8 gEasyChatWord_These[] = _("THESE"); +const u8 gEasyChatWord_TheseWere[] = _("THESE WERE"); +const u8 gEasyChatWord_Down[] = _("DOWN"); +const u8 gEasyChatWord_That[] = _("THAT"); +const u8 gEasyChatWord_ThoseAre[] = _("THOSE ARE"); +const u8 gEasyChatWord_ThoseWere[] = _("THOSE WERE"); +const u8 gEasyChatWord_ThatsItExcl[] = _("THAT'S IT!"); +const u8 gEasyChatWord_Am[] = _("AM"); +const u8 gEasyChatWord_ThatWas[] = _("THAT WAS"); +const u8 gEasyChatWord_Front[] = _("FRONT"); +const u8 gEasyChatWord_Up[] = _("UP"); +const u8 gEasyChatWord_Choice[] = _("CHOICE"); +const u8 gEasyChatWord_Far[] = _("FAR"); +const u8 gEasyChatWord_Away[] = _("AWAY"); +const u8 gEasyChatWord_Near[] = _("NEAR"); +const u8 gEasyChatWord_Where[] = _("WHERE"); +const u8 gEasyChatWord_When[] = _("WHEN"); +const u8 gEasyChatWord_What[] = _("WHAT"); +const u8 gEasyChatWord_Deep[] = _("DEEP"); +const u8 gEasyChatWord_Shallow[] = _("SHALLOW"); +const u8 gEasyChatWord_Why[] = _("WHY"); +const u8 gEasyChatWord_Confused[] = _("CONFUSED"); +const u8 gEasyChatWord_Opposite[] = _("OPPOSITE"); +const u8 gEasyChatWord_Left[] = _("LEFT"); +const u8 gEasyChatWord_Right[] = _("RIGHT"); + +const struct EasyChatWordInfo gEasyChatGroup_Misc[] = { + { + .text = gEasyChatWord_Highs, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lows, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Um, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rear, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Things, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thing, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Below, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Above, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Back, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_High, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Here, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Inside, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Outside, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beside, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThisIsItExcl, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_This, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Every, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_These, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TheseWere, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Down, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_That, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThoseAre, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThoseWere, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThatsItExcl, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Am, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThatWas, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Front, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Up, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Choice, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Far, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Away, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Near, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Where, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_When, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_What, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Deep, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shallow, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Why, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Confused, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Opposite, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Left, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..3b0e8acca --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_move_1.h @@ -0,0 +1,158 @@ +#include "constants/moves.h" + +const u16 gEasyChatGroup_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 100755 index 000000000..e0a0cd379 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_move_2.h @@ -0,0 +1,204 @@ +#include "constants/moves.h" + +const u16 gEasyChatGroup_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 100755 index 000000000..17d2d5339 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_people.h @@ -0,0 +1,453 @@ +const u8 gEasyChatWord_Opponent[] = _("OPPONENT"); +const u8 gEasyChatWord_I[] = _("I"); +const u8 gEasyChatWord_You[] = _("YOU"); +const u8 gEasyChatWord_Yours[] = _("YOURS"); +const u8 gEasyChatWord_Son[] = _("SON"); +const u8 gEasyChatWord_Your[] = _("YOUR"); +const u8 gEasyChatWord_Youre[] = _("YOU'RE"); +const u8 gEasyChatWord_Youve[] = _("YOU'VE"); +const u8 gEasyChatWord_Mother[] = _("MOTHER"); +const u8 gEasyChatWord_Grandfather[] = _("GRANDFATHER"); +const u8 gEasyChatWord_Uncle[] = _("UNCLE"); +const u8 gEasyChatWord_Father[] = _("FATHER"); +const u8 gEasyChatWord_Boy[] = _("BOY"); +const u8 gEasyChatWord_Adult[] = _("ADULT"); +const u8 gEasyChatWord_Brother[] = _("BROTHER"); +const u8 gEasyChatWord_Sister[] = _("SISTER"); +const u8 gEasyChatWord_Grandmother[] = _("GRANDMOTHER"); +const u8 gEasyChatWord_Aunt[] = _("AUNT"); +const u8 gEasyChatWord_Parent[] = _("PARENT"); +const u8 gEasyChatWord_Man[] = _("MAN"); +const u8 gEasyChatWord_Me[] = _("ME"); +const u8 gEasyChatWord_Girl[] = _("GIRL"); +const u8 gEasyChatWord_Babe[] = _("BABE"); +const u8 gEasyChatWord_Family[] = _("FAMILY"); +const u8 gEasyChatWord_Her[] = _("HER"); +const u8 gEasyChatWord_Him[] = _("HIM"); +const u8 gEasyChatWord_He[] = _("HE"); +const u8 gEasyChatWord_Place[] = _("PLACE"); +const u8 gEasyChatWord_Daughter[] = _("DAUGHTER"); +const u8 gEasyChatWord_His[] = _("HIS"); +const u8 gEasyChatWord_Hes[] = _("HE'S"); +const u8 gEasyChatWord_Arent[] = _("AREN'T"); +const u8 gEasyChatWord_Siblings[] = _("SIBLINGS"); +const u8 gEasyChatWord_Kid[] = _("KID"); +const u8 gEasyChatWord_Children[] = _("CHILDREN"); +const u8 gEasyChatWord_Mr[] = _("MR."); +const u8 gEasyChatWord_Mrs[] = _("MRS."); +const u8 gEasyChatWord_Myself[] = _("MYSELF"); +const u8 gEasyChatWord_IWas[] = _("I WAS"); +const u8 gEasyChatWord_ToMe[] = _("TO ME"); +const u8 gEasyChatWord_My[] = _("MY"); +const u8 gEasyChatWord_IAm[] = _("I AM"); +const u8 gEasyChatWord_Ive[] = _("I'VE"); +const u8 gEasyChatWord_Who[] = _("WHO"); +const u8 gEasyChatWord_Someone[] = _("SOMEONE"); +const u8 gEasyChatWord_WhoWas[] = _("WHO WAS"); +const u8 gEasyChatWord_ToWhom[] = _("TO WHOM"); +const u8 gEasyChatWord_Whose[] = _("WHOSE"); +const u8 gEasyChatWord_WhoIs[] = _("WHO IS"); +const u8 gEasyChatWord_Its[] = _("IT'S"); +const u8 gEasyChatWord_Lady[] = _("LADY"); +const u8 gEasyChatWord_Friend[] = _("FRIEND"); +const u8 gEasyChatWord_Ally[] = _("ALLY"); +const u8 gEasyChatWord_Person[] = _("PERSON"); +const u8 gEasyChatWord_Dude[] = _("DUDE"); +const u8 gEasyChatWord_They[] = _("THEY"); +const u8 gEasyChatWord_TheyWere[] = _("THEY WERE"); +const u8 gEasyChatWord_ToThem[] = _("TO THEM"); +const u8 gEasyChatWord_Their[] = _("THEIR"); +const u8 gEasyChatWord_Theyre[] = _("THEY'RE"); +const u8 gEasyChatWord_Theyve[] = _("THEY'VE"); +const u8 gEasyChatWord_We[] = _("WE"); +const u8 gEasyChatWord_Been[] = _("BEEN"); +const u8 gEasyChatWord_ToUs[] = _("TO US"); +const u8 gEasyChatWord_Our[] = _("OUR"); +const u8 gEasyChatWord_WeAre[] = _("WE'RE"); +const u8 gEasyChatWord_Rival[] = _("RIVAL"); +const u8 gEasyChatWord_Weve[] = _("WE'VE"); +const u8 gEasyChatWord_Woman[] = _("WOMAN"); +const u8 gEasyChatWord_She[] = _("SHE"); +const u8 gEasyChatWord_SheWas[] = _("SHE WAS"); +const u8 gEasyChatWord_ToHer[] = _("TO HER"); +const u8 gEasyChatWord_Hers[] = _("HERS"); +const u8 gEasyChatWord_SheIs[] = _("SHE IS"); +const u8 gEasyChatWord_Some[] = _("SOME"); + +const struct EasyChatWordInfo gEasyChatGroup_People[] = { + { + .text = gEasyChatWord_Opponent, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_I, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_You, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yours, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Son, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Your, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Youre, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Youve, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mother, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Grandfather, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Uncle, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Father, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Boy, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Adult, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Brother, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sister, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Grandmother, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aunt, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Parent, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Man, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Me, + .alphabeticalOrder = 72, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Girl, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Babe, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Family, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Her, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Him, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_He, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Place, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Daughter, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_His, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hes, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Arent, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Siblings, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kid, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Children, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mr, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mrs, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Myself, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IWas, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToMe, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_My, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IAm, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ive, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Who, + .alphabeticalOrder = 69, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Someone, + .alphabeticalOrder = 73, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhoWas, + .alphabeticalOrder = 70, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToWhom, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Whose, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhoIs, + .alphabeticalOrder = 74, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Its, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lady, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Friend, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ally, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Person, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dude, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_They, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TheyWere, + .alphabeticalOrder = 71, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToThem, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Their, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Theyre, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Theyve, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_We, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Been, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToUs, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Our, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WeAre, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rival, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weve, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Woman, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_She, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SheWas, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToHer, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hers, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SheIs, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..9993a5144 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_pokemon.h @@ -0,0 +1,206 @@ +#include "constants/species.h" + +const u16 gEasyChatGroup_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 100755 index 000000000..35b0a03cb --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_pokemon2.h @@ -0,0 +1,255 @@ +#include "constants/species.h" + +const u16 gEasyChatGroup_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 100755 index 000000000..013b454c0 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_speech.h @@ -0,0 +1,363 @@ +const u8 gEasyChatWord_Listen[] = _("LISTEN"); +const u8 gEasyChatWord_NotVery[] = _("NOT VERY"); +const u8 gEasyChatWord_Mean[] = _("MEAN"); +const u8 gEasyChatWord_Lie[] = _("LIE"); +const u8 gEasyChatWord_Lay[] = _("LAY"); +const u8 gEasyChatWord_Recommend[] = _("RECOMMEND"); +const u8 gEasyChatWord_Nitwit[] = _("NITWIT"); +const u8 gEasyChatWord_Quite[] = _("QUITE"); +const u8 gEasyChatWord_From[] = _("FROM"); +const u8 gEasyChatWord_Feeling[] = _("FEELING"); +const u8 gEasyChatWord_But[] = _("BUT"); +const u8 gEasyChatWord_However[] = _("HOWEVER"); +const u8 gEasyChatWord_Case[] = _("CASE"); +const u8 gEasyChatWord_The[] = _("THE"); +const u8 gEasyChatWord_Miss[] = _("MISS"); +const u8 gEasyChatWord_How[] = _("HOW"); +const u8 gEasyChatWord_Hit[] = _("HIT"); +const u8 gEasyChatWord_Enough[] = _("ENOUGH"); +const u8 gEasyChatWord_ALot[] = _("A LOT"); +const u8 gEasyChatWord_ALittle[] = _("A LITTLE"); +const u8 gEasyChatWord_Absolutely[] = _("ABSOLUTELY"); +const u8 gEasyChatWord_And[] = _("AND"); +const u8 gEasyChatWord_Only[] = _("ONLY"); +const u8 gEasyChatWord_Around[] = _("AROUND"); +const u8 gEasyChatWord_Probably[] = _("PROBABLY"); +const u8 gEasyChatWord_If[] = _("IF"); +const u8 gEasyChatWord_Very[] = _("VERY"); +const u8 gEasyChatWord_ATinyBit[] = _("A TINY BIT"); +const u8 gEasyChatWord_Wild[] = _("WILD"); +const u8 gEasyChatWord_Thats[] = _("THAT'S"); +const u8 gEasyChatWord_Just[] = _("JUST"); +const u8 gEasyChatWord_EvenSo[] = _("EVEN SO,"); +const u8 gEasyChatWord_MustBe[] = _("MUST BE"); +const u8 gEasyChatWord_Naturally[] = _("NATURALLY"); +const u8 gEasyChatWord_ForNow[] = _("FOR NOW,"); +const u8 gEasyChatWord_Understood[] = _("UNDERSTOOD"); +const u8 gEasyChatWord_Joking[] = _("JOKING"); +const u8 gEasyChatWord_Ready[] = _("READY"); +const u8 gEasyChatWord_Something[] = _("SOMETHING"); +const u8 gEasyChatWord_Somehow[] = _("SOMEHOW"); +const u8 gEasyChatWord_Although[] = _("ALTHOUGH"); +const u8 gEasyChatWord_Also[] = _("ALSO"); +const u8 gEasyChatWord_Perfect[] = _("PERFECT"); +const u8 gEasyChatWord_AsMuchAs[] = _("AS MUCH AS"); +const u8 gEasyChatWord_Really[] = _("REALLY"); +const u8 gEasyChatWord_Truly[] = _("TRULY"); +const u8 gEasyChatWord_Seriously[] = _("SERIOUSLY"); +const u8 gEasyChatWord_Totally[] = _("TOTALLY"); +const u8 gEasyChatWord_Until[] = _("UNTIL"); +const u8 gEasyChatWord_AsIf[] = _("AS IF"); +const u8 gEasyChatWord_Mood[] = _("MOOD"); +const u8 gEasyChatWord_Rather[] = _("RATHER"); +const u8 gEasyChatWord_Awfully[] = _("AWFULLY"); +const u8 gEasyChatWord_Mode[] = _("MODE"); +const u8 gEasyChatWord_More[] = _("MORE"); +const u8 gEasyChatWord_TooLate[] = _("TOO LATE"); +const u8 gEasyChatWord_Finally[] = _("FINALLY"); +const u8 gEasyChatWord_Any[] = _("ANY"); +const u8 gEasyChatWord_Instead[] = _("INSTEAD"); +const u8 gEasyChatWord_Fantastic[] = _("FANTASTIC"); + +const struct EasyChatWordInfo gEasyChatGroup_Speech[] = { + { + .text = gEasyChatWord_Listen, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NotVery, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mean, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lie, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lay, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Recommend, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nitwit, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Quite, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_From, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Feeling, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_But, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_However, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Case, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_The, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Miss, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_How, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hit, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Enough, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ALot, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ALittle, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Absolutely, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_And, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Only, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Around, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Probably, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_If, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Very, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ATinyBit, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wild, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thats, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Just, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EvenSo, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MustBe, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Naturally, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ForNow, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Understood, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Joking, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ready, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Something, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Somehow, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Although, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Also, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Perfect, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AsMuchAs, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Really, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Truly, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Seriously, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Totally, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Until, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AsIf, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mood, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rather, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Awfully, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mode, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_More, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TooLate, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Finally, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Any, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Instead, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..d4958c3ad --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_status.h @@ -0,0 +1,657 @@ +const u8 gEasyChatWord_Dark[] = _("DARK"); +const u8 gEasyChatWord_Stench[] = _("STENCH"); +const u8 gEasyChatWord_ThickFat[] = _("THICK FAT"); +const u8 gEasyChatWord_RainDish[] = _("RAIN DISH"); +const u8 gEasyChatWord_Drizzle[] = _("DRIZZLE"); +const u8 gEasyChatWord_ArenaTrap[] = _("ARENA TRAP"); +const u8 gEasyChatWord_Intimidate[] = _("INTIMIDATE"); +const u8 gEasyChatWord_RockHead[] = _("ROCK HEAD"); +const u8 gEasyChatWord_Color[] = _("COLOR"); +const u8 gEasyChatWord_AltColor[] = _("ALT. COLOR"); +const u8 gEasyChatWord_Rock[] = _("ROCK"); +const u8 gEasyChatWord_Beautiful[] = _("BEAUTIFUL"); +const u8 gEasyChatWord_Beauty[] = _("BEAUTY"); +const u8 gEasyChatWord_AirLock[] = _("AIR LOCK"); +const u8 gEasyChatWord_Psychic[] = _("PSYCHIC"); +const u8 gEasyChatWord_HyperCutter[] = _("HYPER CUTTER"); +const u8 gEasyChatWord_Fighting[] = _("FIGHTING"); +const u8 gEasyChatWord_ShadowTag[] = _("SHADOW TAG"); +const u8 gEasyChatWord_Smart[] = _("SMART"); +const u8 gEasyChatWord_Smartness[] = _("SMARTNESS"); +const u8 gEasyChatWord_SpeedBoost[] = _("SPEED BOOST"); +const u8 gEasyChatWord_Cool[] = _("COOL"); +const u8 gEasyChatWord_Coolness[] = _("COOLNESS"); +const u8 gEasyChatWord_BattleArmor[] = _("BATTLE ARMOR"); +const u8 gEasyChatWord_Cute[] = _("CUTE"); +const u8 gEasyChatWord_Cuteness[] = _("CUTENESS"); +const u8 gEasyChatWord_Sturdy[] = _("STURDY"); +const u8 gEasyChatWord_SuctionCups[] = _("SUCTION CUPS"); +const u8 gEasyChatWord_Grass[] = _("GRASS"); +const u8 gEasyChatWord_ClearBody[] = _("CLEAR BODY"); +const u8 gEasyChatWord_Torrent[] = _("TORRENT"); +const u8 gEasyChatWord_Ghost[] = _("GHOST"); +const u8 gEasyChatWord_Ice[] = _("ICE"); +const u8 gEasyChatWord_Guts[] = _("GUTS"); +const u8 gEasyChatWord_RoughSkin[] = _("ROUGH SKIN"); +const u8 gEasyChatWord_ShellArmor[] = _("SHELL ARMOR"); +const u8 gEasyChatWord_NaturalCure[] = _("NATURAL CURE"); +const u8 gEasyChatWord_Damp[] = _("DAMP"); +const u8 gEasyChatWord_Ground[] = _("GROUND"); +const u8 gEasyChatWord_Limber[] = _("LIMBER"); +const u8 gEasyChatWord_MagnetPull[] = _("MAGNET PULL"); +const u8 gEasyChatWord_WhiteSmoke[] = _("WHITE SMOKE"); +const u8 gEasyChatWord_Synchronize[] = _("SYNCHRONIZE"); +const u8 gEasyChatWord_Overgrow[] = _("OVERGROW"); +const u8 gEasyChatWord_SwiftSwim[] = _("SWIFT SWIM"); +const u8 gEasyChatWord_SandStream[] = _("SAND STREAM"); +const u8 gEasyChatWord_SandVeil[] = _("SAND VEIL"); +const u8 gEasyChatWord_KeenEye[] = _("KEEN EYE"); +const u8 gEasyChatWord_InnerFocus[] = _("INNER FOCUS"); +const u8 gEasyChatWord_Static[] = _("STATIC"); +const u8 gEasyChatWord_Type[] = _("TYPE"); +const u8 gEasyChatWord_Tough[] = _("TOUGH"); +const u8 gEasyChatWord_Toughness[] = _("TOUGHNESS"); +const u8 gEasyChatWord_ShedSkin[] = _("SHED SKIN"); +const u8 gEasyChatWord_HugePower[] = _("HUGE POWER"); +const u8 gEasyChatWord_VoltAbsorb[] = _("VOLT ABSORB"); +const u8 gEasyChatWord_WaterAbsorb[] = _("WATER ABSORB"); +const u8 gEasyChatWord_Electric[] = _("ELECTRIC"); +const u8 gEasyChatWord_Forecast[] = _("FORECAST"); +const u8 gEasyChatWord_SereneGrace[] = _("SERENE GRACE"); +const u8 gEasyChatWord_Poison[] = _("POISON"); +const u8 gEasyChatWord_PoisonPoint[] = _("POISON POINT"); +const u8 gEasyChatWord_Dragon[] = _("DRAGON"); +const u8 gEasyChatWord_Trace[] = _("TRACE"); +const u8 gEasyChatWord_Oblivious[] = _("OBLIVIOUS"); +const u8 gEasyChatWord_Truant[] = _("TRUANT"); +const u8 gEasyChatWord_RunAway[] = _("RUN AWAY"); +const u8 gEasyChatWord_StickyHold[] = _("STICKY HOLD"); +const u8 gEasyChatWord_CloudNine[] = _("CLOUD NINE"); +const u8 gEasyChatWord_Normal[] = _("NORMAL"); +const u8 gEasyChatWord_Steel[] = _("STEEL"); +const u8 gEasyChatWord_Illuminate[] = _("ILLUMINATE"); +const u8 gEasyChatWord_EarlyBird[] = _("EARLY BIRD"); +const u8 gEasyChatWord_Hustle[] = _("HUSTLE"); +const u8 gEasyChatWord_Shine[] = _("SHINE"); +const u8 gEasyChatWord_Flying[] = _("FLYING"); +const u8 gEasyChatWord_Drought[] = _("DROUGHT"); +const u8 gEasyChatWord_Lightningrod[] = _("LIGHTNINGROD"); +const u8 gEasyChatWord_Compoundeyes[] = _("COMPOUNDEYES"); +const u8 gEasyChatWord_MarvelScale[] = _("MARVEL SCALE"); +const u8 gEasyChatWord_WonderGuard[] = _("WONDER GUARD"); +const u8 gEasyChatWord_Insomnia[] = _("INSOMNIA"); +const u8 gEasyChatWord_Levitate[] = _("LEVITATE"); +const u8 gEasyChatWord_Plus[] = _("PLUS"); +const u8 gEasyChatWord_Pressure[] = _("PRESSURE"); +const u8 gEasyChatWord_LiquidOoze[] = _("LIQUID OOZE"); +const u8 gEasyChatWord_ColorChange[] = _("COLOR CHANGE"); +const u8 gEasyChatWord_Soundproof[] = _("SOUNDPROOF"); +const u8 gEasyChatWord_EffectSpore[] = _("EFFECT SPORE"); +const u8 gEasyChatWord_Pkrs[] = _("{PK}RS"); +const u8 gEasyChatWord_Fire[] = _("FIRE"); +const u8 gEasyChatWord_FlameBody[] = _("FLAME BODY"); +const u8 gEasyChatWord_Minus[] = _("MINUS"); +const u8 gEasyChatWord_OwnTempo[] = _("OWN TEMPO"); +const u8 gEasyChatWord_MagmaArmor[] = _("MAGMA ARMOR"); +const u8 gEasyChatWord_Water[] = _("WATER"); +const u8 gEasyChatWord_WaterVeil[] = _("WATER VEIL"); +const u8 gEasyChatWord_Bug[] = _("BUG"); +const u8 gEasyChatWord_Swarm[] = _("SWARM"); +const u8 gEasyChatWord_CuteCharm[] = _("CUTE CHARM"); +const u8 gEasyChatWord_Immunity[] = _("IMMUNITY"); +const u8 gEasyChatWord_Blaze[] = _("BLAZE"); +const u8 gEasyChatWord_Pickup[] = _("PICKUP"); +const u8 gEasyChatWord_Pattern[] = _("PATTERN"); +const u8 gEasyChatWord_FlashFire[] = _("FLASH FIRE"); +const u8 gEasyChatWord_VitalSpirit[] = _("VITAL SPIRIT"); +const u8 gEasyChatWord_Chlorophyll[] = _("CHLOROPHYLL"); +const u8 gEasyChatWord_PurePower[] = _("PURE POWER"); +const u8 gEasyChatWord_ShieldDust[] = _("SHIELD DUST"); + +const struct EasyChatWordInfo gEasyChatGroup_Status[] = { + { + .text = gEasyChatWord_Dark, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stench, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThickFat, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RainDish, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drizzle, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ArenaTrap, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Intimidate, + .alphabeticalOrder = 101, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RockHead, + .alphabeticalOrder = 97, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Color, + .alphabeticalOrder = 106, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AltColor, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rock, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beautiful, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beauty, + .alphabeticalOrder = 86, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AirLock, + .alphabeticalOrder = 78, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Psychic, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HyperCutter, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fighting, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShadowTag, + .alphabeticalOrder = 99, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smart, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smartness, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SpeedBoost, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cool, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Coolness, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BattleArmor, + .alphabeticalOrder = 76, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cute, + .alphabeticalOrder = 72, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cuteness, + .alphabeticalOrder = 88, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sturdy, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SuctionCups, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Grass, + .alphabeticalOrder = 90, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ClearBody, + .alphabeticalOrder = 91, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Torrent, + .alphabeticalOrder = 104, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ghost, + .alphabeticalOrder = 75, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ice, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Guts, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RoughSkin, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShellArmor, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NaturalCure, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Damp, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ground, + .alphabeticalOrder = 73, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Limber, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MagnetPull, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhiteSmoke, + .alphabeticalOrder = 71, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Synchronize, + .alphabeticalOrder = 100, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Overgrow, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SwiftSwim, + .alphabeticalOrder = 81, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SandStream, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SandVeil, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_KeenEye, + .alphabeticalOrder = 82, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_InnerFocus, + .alphabeticalOrder = 77, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Static, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Type, + .alphabeticalOrder = 85, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tough, + .alphabeticalOrder = 94, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Toughness, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShedSkin, + .alphabeticalOrder = 79, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HugePower, + .alphabeticalOrder = 92, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_VoltAbsorb, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WaterAbsorb, + .alphabeticalOrder = 69, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Electric, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forecast, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SereneGrace, + .alphabeticalOrder = 93, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Poison, + .alphabeticalOrder = 103, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_PoisonPoint, + .alphabeticalOrder = 102, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dragon, + .alphabeticalOrder = 89, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trace, + .alphabeticalOrder = 83, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oblivious, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Truant, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RunAway, + .alphabeticalOrder = 84, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_StickyHold, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CloudNine, + .alphabeticalOrder = 107, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Normal, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Steel, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Illuminate, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EarlyBird, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hustle, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shine, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flying, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drought, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lightningrod, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Compoundeyes, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MarvelScale, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WonderGuard, + .alphabeticalOrder = 108, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Insomnia, + .alphabeticalOrder = 74, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Levitate, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Plus, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pressure, + .alphabeticalOrder = 87, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LiquidOoze, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ColorChange, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Soundproof, + .alphabeticalOrder = 70, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EffectSpore, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pkrs, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fire, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_FlameBody, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Minus, + .alphabeticalOrder = 98, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OwnTempo, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MagmaArmor, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Water, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WaterVeil, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bug, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Swarm, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CuteCharm, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Immunity, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Blaze, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pickup, + .alphabeticalOrder = 105, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pattern, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_FlashFire, + .alphabeticalOrder = 95, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_VitalSpirit, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Chlorophyll, + .alphabeticalOrder = 96, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_PurePower, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..691dde70c --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_time.h @@ -0,0 +1,273 @@ +const u8 gEasyChatWord_Fall[] = _("FALL"); +const u8 gEasyChatWord_Morning[] = _("MORNING"); +const u8 gEasyChatWord_Tomorrow[] = _("TOMORROW"); +const u8 gEasyChatWord_Last[] = _("LAST"); +const u8 gEasyChatWord_Day[] = _("DAY"); +const u8 gEasyChatWord_Sometime[] = _("SOMETIME"); +const u8 gEasyChatWord_Always[] = _("ALWAYS"); +const u8 gEasyChatWord_Current[] = _("CURRENT"); +const u8 gEasyChatWord_Forever[] = _("FOREVER"); +const u8 gEasyChatWord_Days[] = _("DAYS"); +const u8 gEasyChatWord_End[] = _("END"); +const u8 gEasyChatWord_Tuesday[] = _("TUESDAY"); +const u8 gEasyChatWord_Yesterday[] = _("YESTERDAY"); +const u8 gEasyChatWord_Today[] = _("TODAY"); +const u8 gEasyChatWord_Friday[] = _("FRIDAY"); +const u8 gEasyChatWord_Monday[] = _("MONDAY"); +const u8 gEasyChatWord_Later[] = _("LATER"); +const u8 gEasyChatWord_Earlier[] = _("EARLIER"); +const u8 gEasyChatWord_Another[] = _("ANOTHER"); +const u8 gEasyChatWord_Time[] = _("TIME"); +const u8 gEasyChatWord_Finish[] = _("FINISH"); +const u8 gEasyChatWord_Wednesday[] = _("WEDNESDAY"); +const u8 gEasyChatWord_Soon[] = _("SOON"); +const u8 gEasyChatWord_Start[] = _("START"); +const u8 gEasyChatWord_Month[] = _("MONTH"); +const u8 gEasyChatWord_Stop[] = _("STOP"); +const u8 gEasyChatWord_Now[] = _("NOW"); +const u8 gEasyChatWord_Final[] = _("FINAL"); +const u8 gEasyChatWord_Next[] = _("NEXT"); +const u8 gEasyChatWord_Age[] = _("AGE"); +const u8 gEasyChatWord_Saturday[] = _("SATURDAY"); +const u8 gEasyChatWord_Summer[] = _("SUMMER"); +const u8 gEasyChatWord_Sunday[] = _("SUNDAY"); +const u8 gEasyChatWord_Beginning[] = _("BEGINNING"); +const u8 gEasyChatWord_Spring[] = _("SPRING"); +const u8 gEasyChatWord_Daytime[] = _("DAYTIME"); +const u8 gEasyChatWord_Winter[] = _("WINTER"); +const u8 gEasyChatWord_Daily[] = _("DAILY"); +const u8 gEasyChatWord_Olden[] = _("OLDEN"); +const u8 gEasyChatWord_Almost[] = _("ALMOST"); +const u8 gEasyChatWord_Nearly[] = _("NEARLY"); +const u8 gEasyChatWord_Thursday[] = _("THURSDAY"); +const u8 gEasyChatWord_Nighttime[] = _("NIGHTTIME"); +const u8 gEasyChatWord_Night[] = _("NIGHT"); +const u8 gEasyChatWord_Week[] = _("WEEK"); + +const struct EasyChatWordInfo gEasyChatGroup_Time[] = { + { + .text = gEasyChatWord_Fall, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Morning, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tomorrow, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Last, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Day, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sometime, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Always, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Current, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forever, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Days, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_End, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tuesday, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yesterday, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Today, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Friday, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Monday, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Later, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Earlier, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Another, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Time, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Finish, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wednesday, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Soon, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Start, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Month, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stop, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Now, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Final, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Next, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Age, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Saturday, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Summer, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sunday, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beginning, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spring, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Daytime, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Winter, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Daily, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Olden, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Almost, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nearly, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thursday, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nighttime, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Night, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..a4e1ddfd6 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_trainer.h @@ -0,0 +1,165 @@ +const u8 gEasyChatWord_IChooseYou[] = _("I CHOOSE YOU"); +const u8 gEasyChatWord_Gotcha[] = _("GOTCHA"); +const u8 gEasyChatWord_Trade[] = _("TRADE"); +const u8 gEasyChatWord_Sapphire[] = _("SAPPHIRE"); +const u8 gEasyChatWord_Evolve[] = _("EVOLVE"); +const u8 gEasyChatWord_Encyclopedia[] = _("ENCYCLOPEDIA"); +const u8 gEasyChatWord_Nature[] = _("NATURE"); +const u8 gEasyChatWord_Center[] = _("CENTER"); +const u8 gEasyChatWord_Egg[] = _("EGG"); +const u8 gEasyChatWord_Link[] = _("LINK"); +const u8 gEasyChatWord_SpAbility[] = _("SP. ABILITY"); +const u8 gEasyChatWord_Trainer[] = _("TRAINER"); +const u8 gEasyChatWord_Version[] = _("VERSION"); +const u8 gEasyChatWord_Pokenav[] = _("POKéNAV"); +const u8 gEasyChatWord_Pokemon[] = _("POKéMON"); +const u8 gEasyChatWord_Get[] = _("GET"); +const u8 gEasyChatWord_Pokedex[] = _("POKéDEX"); +const u8 gEasyChatWord_Ruby[] = _("RUBY"); +const u8 gEasyChatWord_Level[] = _("LEVEL"); +const u8 gEasyChatWord_Red[] = _("RED"); +const u8 gEasyChatWord_Green[] = _("GREEN"); +const u8 gEasyChatWord_Bag[] = _("BAG"); +const u8 gEasyChatWord_Flame[] = _("FLAME"); +const u8 gEasyChatWord_Gold[] = _("GOLD"); +const u8 gEasyChatWord_Leaf[] = _("LEAF"); +const u8 gEasyChatWord_Silver[] = _("SILVER"); +const u8 gEasyChatWord_Emerald[] = _("EMERALD"); + +const struct EasyChatWordInfo gEasyChatGroup_Trainer[] = { + { + .text = gEasyChatWord_IChooseYou, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gotcha, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trade, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sapphire, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Evolve, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Encyclopedia, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nature, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Center, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Egg, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Link, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SpAbility, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trainer, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Version, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pokenav, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pokemon, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Get, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pokedex, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ruby, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Level, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Red, + .alphabeticalOrder = 19, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Green, + .alphabeticalOrder = 17, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Bag, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flame, + .alphabeticalOrder = 25, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Gold, + .alphabeticalOrder = 10, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Leaf, + .alphabeticalOrder = 2, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Silver, + .alphabeticalOrder = 11, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Emerald, + .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 100755 index 000000000..46ce1201a --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_trendy_saying.h @@ -0,0 +1,201 @@ +const u8 gEasyChatWord_KthxBye[] = _("KTHX, BYE."); +const u8 gEasyChatWord_YesSirExcl[] = _("YES, SIR!"); +const u8 gEasyChatWord_AvantGarde[] = _("AVANT GARDE"); +const u8 gEasyChatWord_Couple[] = _("COUPLE"); +const u8 gEasyChatWord_MuchObliged[] = _("MUCH OBLIGED"); +const u8 gEasyChatWord_YeehawExcl[] = _("YEEHAW!"); +const u8 gEasyChatWord_Mega[] = _("MEGA"); +const u8 gEasyChatWord_1HitKOExcl[] = _("1-HIT KO!"); +const u8 gEasyChatWord_Destiny[] = _("DESTINY"); +const u8 gEasyChatWord_Cancel[] = _("CANCEL"); +const u8 gEasyChatWord_New[] = _("NEW"); +const u8 gEasyChatWord_Flatten[] = _("FLATTEN"); +const u8 gEasyChatWord_Kidding[] = _("KIDDING"); +const u8 gEasyChatWord_Loser[] = _("LOSER"); +const u8 gEasyChatWord_Losing[] = _("LOSING"); +const u8 gEasyChatWord_Happening[] = _("HAPPENING"); +const u8 gEasyChatWord_HipAnd[] = _("HIP AND"); +const u8 gEasyChatWord_Shake[] = _("SHAKE"); +const u8 gEasyChatWord_Shady[] = _("SHADY"); +const u8 gEasyChatWord_Upbeat[] = _("UPBEAT"); +const u8 gEasyChatWord_Modern[] = _("MODERN"); +const u8 gEasyChatWord_SmellYa[] = _("SMELL YA"); +const u8 gEasyChatWord_Bang[] = _("BANG"); +const u8 gEasyChatWord_Knockout[] = _("KNOCKOUT"); +const u8 gEasyChatWord_Hassle[] = _("HASSLE"); +const u8 gEasyChatWord_Winner[] = _("WINNER"); +const u8 gEasyChatWord_Fever[] = _("FEVER"); +const u8 gEasyChatWord_Wannabe[] = _("WANNABE"); +const u8 gEasyChatWord_Baby[] = _("BABY"); +const u8 gEasyChatWord_Heart[] = _("HEART"); +const u8 gEasyChatWord_Old[] = _("OLD"); +const u8 gEasyChatWord_Young[] = _("YOUNG"); +const u8 gEasyChatWord_Ugly[] = _("UGLY"); + +const struct EasyChatWordInfo gEasyChatGroup_TrendySaying[] = { + { + .text = gEasyChatWord_KthxBye, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_YesSirExcl, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AvantGarde, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Couple, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MuchObliged, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_YeehawExcl, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mega, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_1HitKOExcl, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Destiny, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cancel, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_New, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flatten, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kidding, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Loser, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Losing, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happening, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HipAnd, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shake, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shady, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Upbeat, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Modern, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SmellYa, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bang, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Knockout, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hassle, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Winner, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fever, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wannabe, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Baby, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Heart, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Old, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Young, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ugly, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, +}; 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 100755 index 000000000..6dad874ec --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_voices.h @@ -0,0 +1,381 @@ +const u8 gEasyChatWord_Excl[] = _("!"); +const u8 gEasyChatWord_ExclExcl[] = _("!!"); +const u8 gEasyChatWord_QuesExcl[] = _("?!"); +const u8 gEasyChatWord_Ques[] = _("?"); +const u8 gEasyChatWord_Ellipsis[] = _("…"); +const u8 gEasyChatWord_EllipsisExcl[] = _("…!"); +const u8 gEasyChatWord_EllipsisEllipsisEllipsis[] = _("………"); +const u8 gEasyChatWord_Dash[] = _("-"); +const u8 gEasyChatWord_DashDashDash[] = _("- - -"); +const u8 gEasyChatWord_UhOh[] = _("UH-OH"); +const u8 gEasyChatWord_Waaah[] = _("WAAAH"); +const u8 gEasyChatWord_Ahaha[] = _("AHAHA"); +const u8 gEasyChatWord_OhQues[] = _("OH?"); +const u8 gEasyChatWord_Nope[] = _("NOPE"); +const u8 gEasyChatWord_Urgh[] = _("URGH"); +const u8 gEasyChatWord_Hmm[] = _("HMM"); +const u8 gEasyChatWord_Whoah[] = _("WHOAH"); +const u8 gEasyChatWord_WroooaarExcl[] = _("WROOOAAR!"); +const u8 gEasyChatWord_Wow[] = _("WOW"); +const u8 gEasyChatWord_Giggle[] = _("GIGGLE"); +const u8 gEasyChatWord_Sigh[] = _("SIGH"); +const u8 gEasyChatWord_Unbelievable[] = _("UNBELIEVABLE"); +const u8 gEasyChatWord_Cries[] = _("CRIES"); +const u8 gEasyChatWord_Agree[] = _("AGREE"); +const u8 gEasyChatWord_EhQues[] = _("EH?"); +const u8 gEasyChatWord_Cry[] = _("CRY"); +const u8 gEasyChatWord_Ehehe[] = _("EHEHE"); +const u8 gEasyChatWord_OiOiOi[] = _("OI, OI, OI"); +const u8 gEasyChatWord_OhYeah[] = _("OH, YEAH"); +const u8 gEasyChatWord_Oh[] = _("OH"); +const u8 gEasyChatWord_Oops[] = _("OOPS"); +const u8 gEasyChatWord_Shocked[] = _("SHOCKED"); +const u8 gEasyChatWord_Eek[] = _("EEK"); +const u8 gEasyChatWord_Graaah[] = _("GRAAAH"); +const u8 gEasyChatWord_Gwahahaha[] = _("GWAHAHAHA"); +const u8 gEasyChatWord_Way[] = _("WAY"); +const u8 gEasyChatWord_Tch[] = _("TCH"); +const u8 gEasyChatWord_Hehe[] = _("HEHE"); +const u8 gEasyChatWord_Hah[] = _("HAH"); +const u8 gEasyChatWord_Yup[] = _("YUP"); +const u8 gEasyChatWord_Hahaha[] = _("HAHAHA"); +const u8 gEasyChatWord_Aiyeeh[] = _("AIYEEH"); +const u8 gEasyChatWord_Hiyah[] = _("HIYAH"); +const u8 gEasyChatWord_Fufufu[] = _("FUFUFU"); +const u8 gEasyChatWord_Lol[] = _("LOL"); +const u8 gEasyChatWord_Snort[] = _("SNORT"); +const u8 gEasyChatWord_Humph[] = _("HUMPH"); +const u8 gEasyChatWord_Hehehe[] = _("HEHEHE"); +const u8 gEasyChatWord_Heh[] = _("HEH"); +const u8 gEasyChatWord_Hohoho[] = _("HOHOHO"); +const u8 gEasyChatWord_UhHuh[] = _("UH-HUH"); +const u8 gEasyChatWord_OhDear[] = _("OH, DEAR"); +const u8 gEasyChatWord_Arrgh[] = _("ARRGH"); +const u8 gEasyChatWord_Mufufu[] = _("MUFUFU"); +const u8 gEasyChatWord_Mmm[] = _("MMM"); +const u8 gEasyChatWord_OhKay[] = _("OH-KAY"); +const u8 gEasyChatWord_Okay[] = _("OKAY"); +const u8 gEasyChatWord_Lalala[] = _("LALALA"); +const u8 gEasyChatWord_Yay[] = _("YAY"); +const u8 gEasyChatWord_Aww[] = _("AWW"); +const u8 gEasyChatWord_Wowee[] = _("WOWEE"); +const u8 gEasyChatWord_Gwah[] = _("GWAH"); +const u8 gEasyChatWord_Wahahaha[] = _("WAHAHAHA"); + +const struct EasyChatWordInfo gEasyChatGroup_Voices[] = { + { + .text = gEasyChatWord_Excl, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ExclExcl, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_QuesExcl, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ques, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ellipsis, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EllipsisExcl, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EllipsisEllipsisEllipsis, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dash, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_DashDashDash, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_UhOh, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Waaah, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ahaha, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhQues, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nope, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Urgh, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hmm, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Whoah, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WroooaarExcl, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wow, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Giggle, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sigh, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Unbelievable, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cries, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Agree, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EhQues, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cry, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ehehe, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OiOiOi, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhYeah, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oh, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oops, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shocked, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Eek, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Graaah, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gwahahaha, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Way, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tch, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hehe, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hah, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yup, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hahaha, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aiyeeh, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hiyah, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fufufu, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lol, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Snort, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Humph, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hehehe, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Heh, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hohoho, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_UhHuh, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhDear, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Arrgh, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mufufu, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mmm, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhKay, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Okay, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lalala, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yay, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aww, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wowee, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gwah, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_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 100755 index 000000000..df114d980 --- /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" + +const struct EasyChatGroup gEasyChatGroups[] = { + { + .wordData = {.valueList = gEasyChatGroup_Pokemon}, + .numWords = 202, + .numEnabledWords = 202, + }, + { + .wordData = {.words = gEasyChatGroup_Trainer}, + .numWords = 27, + .numEnabledWords = 21, + }, + { + .wordData = {.words = gEasyChatGroup_Status}, + .numWords = 109, + .numEnabledWords = 109, + }, + { + .wordData = {.words = gEasyChatGroup_Battle}, + .numWords = 63, + .numEnabledWords = 63, + }, + { + .wordData = {.words = gEasyChatGroup_Greetings}, + .numWords = 42, + .numEnabledWords = 42, + }, + { + .wordData = {.words = gEasyChatGroup_People}, + .numWords = 75, + .numEnabledWords = 75, + }, + { + .wordData = {.words = gEasyChatGroup_Voices}, + .numWords = 63, + .numEnabledWords = 63, + }, + { + .wordData = {.words = gEasyChatGroup_Speech}, + .numWords = 60, + .numEnabledWords = 60, + }, + { + .wordData = {.words = gEasyChatGroup_Endings}, + .numWords = 69, + .numEnabledWords = 69, + }, + { + .wordData = {.words = gEasyChatGroup_Feelings}, + .numWords = 69, + .numEnabledWords = 69, + }, + { + .wordData = {.words = gEasyChatGroup_Conditions}, + .numWords = 69, + .numEnabledWords = 69, + }, + { + .wordData = {.words = gEasyChatGroup_Actions}, + .numWords = 78, + .numEnabledWords = 78, + }, + { + .wordData = {.words = gEasyChatGroup_Lifestyle}, + .numWords = 45, + .numEnabledWords = 45, + }, + { + .wordData = {.words = gEasyChatGroup_Hobbies}, + .numWords = 54, + .numEnabledWords = 54, + }, + { + .wordData = {.words = gEasyChatGroup_Time}, + .numWords = 45, + .numEnabledWords = 45, + }, + { + .wordData = {.words = gEasyChatGroup_Misc}, + .numWords = 42, + .numEnabledWords = 42, + }, + { + .wordData = {.words = gEasyChatGroup_Adjectives}, + .numWords = 36, + .numEnabledWords = 36, + }, + { + .wordData = {.words = gEasyChatGroup_Events}, + .numWords = 29, + .numEnabledWords = 29, + }, + { + .wordData = {.valueList = gEasyChatGroup_Move1}, + .numWords = 154, + .numEnabledWords = 154, + }, + { + .wordData = {.valueList = gEasyChatGroup_Move2}, + .numWords = 200, + .numEnabledWords = 200, + }, + { + .wordData = {.words = gEasyChatGroup_TrendySaying}, + .numWords = 33, + .numEnabledWords = 33, + }, + { + .wordData = {.valueList = gEasyChatGroup_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 100755 index 000000000..927b9db2f --- /dev/null +++ b/src/data/easy_chat/easy_chat_words_by_letter.h @@ -0,0 +1,2750 @@ +#include "easy_chat.h" +#include "constants/easy_chat.h" + +const u16 gEasyChatWordsByLetter_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, +}; + +const u16 gEasyChatWordsByLetter_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_POKEMON(ABRA), + EC_POKEMON2(ABRA), + EC_WORD_ABSENT, + EC_POKEMON(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_POKEMON2(AERODACTYL), + EC_WORD_AFTER, + EC_WORD_AGE, + EC_POKEMON(AGGRON), + EC_MOVE(AGILITY), + EC_WORD_AGREE, + EC_WORD_AHAHA, + EC_WORD_AIM, + EC_POKEMON2(AIPOM), + EC_MOVE(AIR_CUTTER), + EC_WORD_AIR_LOCK, + EC_WORD_AIYEEH, + -1, 2, // Doubled pokemon species name + EC_POKEMON(ALAKAZAM), + EC_POKEMON2(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_POKEMON(ALTARIA), + EC_WORD_ALTHOUGH, + EC_WORD_ALWAYS, + EC_WORD_AM, + EC_MOVE2(AMNESIA), + EC_POKEMON2(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_POKEMON(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_POKEMON2(ARBOK), + EC_POKEMON2(ARCANINE), + EC_WORD_ARE, + EC_WORD_AREN_T, + EC_WORD_ARENA_TRAP, + EC_POKEMON2(ARIADOS), + EC_MOVE2(ARM_THRUST), + EC_POKEMON(ARMALDO), + EC_MOVE(AROMATHERAPY), + EC_POKEMON(ARON), + EC_WORD_AROUND, + EC_WORD_ARRGH, + EC_POKEMON2(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_POKEMON(AZUMARILL), + EC_POKEMON2(AZUMARILL), + EC_POKEMON(AZURILL), +}; + +const u16 gEasyChatWordsByLetter_B[] = { + EC_WORD_BABE, + EC_WORD_BABY, + EC_WORD_BACK, + EC_WORD_BAD, + EC_WORD_BADLY, + EC_WORD_BAG, + EC_POKEMON(BAGON), + EC_WORD_BALL, + EC_POKEMON(BALTOY), + EC_POKEMON(BANETTE), + EC_WORD_BANG, + EC_POKEMON(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_POKEMON2(BAYLEEF), + EC_WORD_BE, + EC_WORD_BEAT, + EC_MOVE2(BEAT_UP), + EC_POKEMON(BEAUTIFLY), + EC_WORD_BEAUTIFUL, + EC_WORD_BEAUTY, + EC_WORD_BECOMES, + EC_POKEMON2(BEEDRILL), + EC_WORD_BEEN, + EC_WORD_BEFORE, + EC_WORD_BEGINNING, + EC_WORD_BEING, + EC_POKEMON(BELDUM), + EC_WORD_BELIEVE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(BELLOSSOM), + EC_POKEMON2(BELLOSSOM), + EC_POKEMON2(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_POKEMON2(BLASTOISE), + EC_WORD_BLAZE, + EC_MOVE2(BLAZE_KICK), + EC_POKEMON(BLAZIKEN), + EC_WORD_BLEND, + EC_POKEMON2(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_POKEMON(BRELOOM), + EC_MOVE(BRICK_BREAK), + EC_WORD_BROTHER, + EC_MOVE(BUBBLE), + EC_MOVE2(BUBBLE_BEAM), + EC_WORD_BUG, + EC_POKEMON2(BULBASAUR), + EC_MOVE2(BULK_UP), + EC_MOVE2(BULLET_SEED), + EC_WORD_BUSY, + EC_WORD_BUT, + EC_POKEMON2(BUTTERFREE), + EC_WORD_BYE_BYE, +}; + +const u16 gEasyChatWordsByLetter_C[] = { + EC_POKEMON(CACNEA), + EC_POKEMON(CACTURNE), + EC_MOVE2(CALM_MIND), + EC_WORD_CAME, + EC_WORD_CAMERA, + EC_POKEMON(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_POKEMON(CARVANHA), + EC_POKEMON(CASCOON), + EC_WORD_CASE, + EC_POKEMON(CASTFORM), + EC_POKEMON2(CATERPIE), + EC_WORD_CAUSE, + EC_POKEMON2(CELEBI), + EC_WORD_CENTER, + EC_WORD_CHALLENGE, + EC_WORD_CHANGE, + EC_WORD_CHANNEL, + EC_POKEMON2(CHANSEY), + EC_MOVE(CHARGE), + EC_POKEMON2(CHARIZARD), + EC_MOVE(CHARM), + EC_POKEMON2(CHARMANDER), + EC_POKEMON2(CHARMELEON), + EC_WORD_CHAT, + EC_POKEMON2(CHIKORITA), + EC_WORD_CHILD_S_PLAY, + EC_WORD_CHILDREN, + EC_POKEMON(CHIMECHO), + -1, 2, // Doubled pokemon species name + EC_POKEMON(CHINCHOU), + EC_POKEMON2(CHINCHOU), + EC_WORD_CHLOROPHYLL, + EC_WORD_CHOICE, + EC_WORD_CHOOSE, + EC_WORD_CHORES, + EC_MOVE(CLAMP), + EC_POKEMON(CLAMPERL), + EC_WORD_CLASS, + EC_POKEMON(CLAYDOL), + EC_WORD_CLEAR_BODY, + EC_POKEMON2(CLEFABLE), + EC_POKEMON2(CLEFAIRY), + EC_POKEMON2(CLEFFA), + EC_WORD_CLOSE, + EC_WORD_CLOUD_NINE, + EC_POKEMON2(CLOYSTER), + EC_WORD_COLD, + EC_WORD_COLLECT, + EC_WORD_COLLECTION, + EC_WORD_COLOR, + EC_WORD_COLOR_CHANGE, + EC_POKEMON(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_POKEMON(CORPHISH), + EC_WORD_CORRECT, + -1, 2, // Doubled pokemon species name + EC_POKEMON(CORSOLA), + EC_POKEMON2(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_POKEMON(CRADILY), + EC_POKEMON(CRAWDAUNT), + EC_WORD_CRIES, + -1, 2, // Doubled pokemon species name + EC_POKEMON(CROBAT), + EC_POKEMON2(CROBAT), + EC_POKEMON2(CROCONAW), + EC_MOVE(CROSS_CHOP), + EC_MOVE(CRUNCH), + EC_WORD_CRUSH, + EC_MOVE2(CRUSH_CLAW), + EC_WORD_CRY, + EC_POKEMON2(CUBONE), + EC_WORD_CURRENT, + EC_MOVE2(CURSE), + EC_MOVE(CUT), + EC_WORD_CUTE, + EC_WORD_CUTE_CHARM, + EC_WORD_CUTENESS, + EC_POKEMON2(CYNDAQUIL), +}; + +const u16 gEasyChatWordsByLetter_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_POKEMON(DELCATTY), + EC_POKEMON2(DELIBIRD), + EC_POKEMON(DEOXYS), + EC_WORD_DEPT_STORE, + EC_WORD_DESIGN, + EC_WORD_DESTINY, + EC_MOVE2(DESTINY_BOND), + EC_WORD_DESTROYED, + EC_MOVE2(DETECT), + EC_POKEMON2(DEWGONG), + EC_WORD_DID, + EC_WORD_DIDN_T, + EC_WORD_DIET, + EC_WORD_DIFFERENT, + EC_MOVE(DIG), + EC_WORD_DIGITAL, + EC_POKEMON2(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_POKEMON2(DITTO), + EC_MOVE2(DIVE), + EC_MOVE2(DIZZY_PUNCH), + EC_WORD_DO, + EC_WORD_DOCILE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(DODRIO), + EC_POKEMON2(DODRIO), + -1, 2, // Doubled pokemon species name + EC_POKEMON(DODUO), + EC_POKEMON2(DODUO), + EC_WORD_DOES, + EC_WORD_DOESN_T, + EC_WORD_DON_T, + EC_WORD_DONE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(DONPHAN), + EC_POKEMON2(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_POKEMON2(DRAGONAIR), + EC_MOVE2(DRAGON_BREATH), + EC_POKEMON2(DRAGONITE), + EC_POKEMON2(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_POKEMON2(DROWZEE), + EC_WORD_DUDE, + EC_POKEMON2(DUGTRIO), + EC_POKEMON2(DUNSPARCE), + EC_POKEMON(DUSCLOPS), + EC_POKEMON(DUSKULL), + EC_POKEMON(DUSTOX), + EC_MOVE2(DYNAMIC_PUNCH), +}; + +const u16 gEasyChatWordsByLetter_E[] = { + EC_WORD_EARLIER, + EC_WORD_EARLY_BIRD, + EC_MOVE(EARTHQUAKE), + EC_WORD_EASY, + EC_WORD_EAT, + EC_WORD_EATS, + EC_WORD_EEK, + EC_POKEMON2(EEVEE), + EC_WORD_EFFECT_SPORE, + EC_WORD_EGG, + EC_MOVE2(EGG_BOMB), + EC_WORD_EH_QUES, + EC_WORD_EHEHE, + EC_POKEMON2(EKANS), + EC_POKEMON2(ELECTABUZZ), + EC_WORD_ELECTRIC, + EC_POKEMON(ELECTRIKE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(ELECTRODE), + EC_POKEMON2(ELECTRODE), + EC_POKEMON2(ELEKID), + EC_WORD_ELSE, + EC_MOVE2(EMBER), + EC_WORD_EMERALD, + 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_POKEMON2(ENTEI), + EC_WORD_ENTERTAINING, + EC_MOVE2(ERUPTION), + EC_WORD_ESCAPE, + EC_POKEMON2(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_POKEMON2(EXEGGCUTE), + EC_POKEMON2(EXEGGUTOR), + EC_WORD_EXISTS, + EC_WORD_EXPENSIVE, + EC_MOVE2(EXPLOSION), + EC_POKEMON(EXPLOUD), + EC_MOVE(EXTRASENSORY), + EC_MOVE(EXTREME_SPEED), +}; + +const u16 gEasyChatWordsByLetter_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_POKEMON2(FARFETCHD), + EC_WORD_FASHION, + EC_WORD_FAST, + EC_WORD_FATHER, + EC_WORD_FEAR, + EC_POKEMON2(FEAROW), + EC_MOVE2(FEATHER_DANCE), + EC_POKEMON(FEEBAS), + EC_WORD_FEELING, + EC_POKEMON2(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_POKEMON2(FLAAFFY), + EC_MOVE(FLAIL), + EC_WORD_FLAME, + EC_WORD_FLAME_BODY, + EC_MOVE(FLAME_WHEEL), + EC_MOVE(FLAMETHROWER), + EC_POKEMON2(FLAREON), + EC_MOVE2(FLASH), + EC_WORD_FLASH_FIRE, + EC_WORD_FLATTEN, + EC_MOVE(FLATTER), + EC_WORD_FLOWERS, + EC_MOVE(FLY), + EC_POKEMON(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_POKEMON2(FORRETRESS), + EC_MOVE2(FRENZY_PLANT), + EC_WORD_FRIDAY, + EC_WORD_FRIEND, + EC_WORD_FROM, + EC_WORD_FRONT, + EC_WORD_FRONTIER, + EC_MOVE2(FRUSTRATION), + EC_WORD_FUFUFU, + EC_WORD_FULL, + EC_WORD_FUNNY, + EC_POKEMON2(FURRET), + EC_MOVE2(FURY_ATTACK), + EC_MOVE2(FURY_CUTTER), + EC_MOVE2(FURY_SWIPES), + EC_MOVE2(FUTURE_SIGHT), +}; + +const u16 gEasyChatWordsByLetter_G[] = { + EC_WORD_GAME, + EC_POKEMON(GARDEVOIR), + EC_POKEMON2(GASTLY), + EC_POKEMON2(GENGAR), + EC_WORD_GENIUS, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GEODUDE), + EC_POKEMON2(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_POKEMON(GIRAFARIG), + EC_POKEMON2(GIRAFARIG), + EC_WORD_GIRL, + EC_WORD_GIVE, + EC_WORD_GIVE_ME, + EC_WORD_GIVE_UP, + EC_WORD_GIVES, + EC_POKEMON(GLALIE), + EC_MOVE2(GLARE), + EC_POKEMON2(GLIGAR), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GLOOM), + EC_POKEMON2(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_POKEMON(GOLBAT), + EC_POKEMON2(GOLBAT), + EC_WORD_GOLD, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLDEEN), + EC_POKEMON2(GOLDEEN), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLDUCK), + EC_POKEMON2(GOLDUCK), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLEM), + EC_POKEMON2(GOLEM), + EC_WORD_GOOD, + EC_WORD_GOOD_BYE, + EC_POKEMON(GOREBYSS), + EC_WORD_GOT, + EC_WORD_GOTCHA, + EC_WORD_GOURMET, + EC_WORD_GRAAAH, + EC_POKEMON2(GRANBULL), + EC_WORD_GRANDFATHER, + EC_WORD_GRANDMOTHER, + EC_WORD_GRASS, + EC_MOVE(GRASS_WHISTLE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GRAVELER), + EC_POKEMON2(GRAVELER), + EC_WORD_GREAT, + EC_WORD_GREEN, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GRIMER), + EC_POKEMON2(GRIMER), + EC_POKEMON(GROUDON), + EC_WORD_GROUND, + EC_WORD_GROUP, + EC_POKEMON(GROVYLE), + EC_MOVE2(GROWL), + EC_POKEMON2(GROWLITHE), + EC_MOVE(GROWTH), + EC_MOVE(GRUDGE), + EC_POKEMON(GRUMPIG), + EC_WORD_GUARD, + EC_MOVE2(GUILLOTINE), + EC_POKEMON(GULPIN), + EC_MOVE(GUST), + EC_WORD_GUTS, + EC_WORD_GUTSY, + EC_WORD_GWAH, + EC_WORD_GWAHAHAHA, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GYARADOS), + EC_POKEMON2(GYARADOS), +}; + +const u16 gEasyChatWordsByLetter_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_POKEMON(HARIYAMA), + EC_WORD_HAS, + EC_WORD_HASSLE, + EC_POKEMON2(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_POKEMON(HERACROSS), + EC_POKEMON2(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_POKEMON2(HITMONCHAN), + EC_POKEMON2(HITMONLEE), + EC_POKEMON2(HITMONTOP), + EC_WORD_HIYAH, + EC_WORD_HMM, + EC_POKEMON2(HO_OH), + EC_WORD_HOBBY, + EC_WORD_HOHOHO, + EC_WORD_HOLIDAY, + EC_WORD_HOME, + EC_WORD_HOO_HAH, + EC_POKEMON2(HOOTHOOT), + EC_WORD_HOPELESS, + EC_POKEMON2(HOPPIP), + EC_MOVE2(HORN_ATTACK), + EC_MOVE2(HORN_DRILL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(HORSEA), + EC_POKEMON2(HORSEA), + EC_WORD_HOT, + EC_POKEMON2(HOUNDOOM), + EC_POKEMON2(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_POKEMON(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_POKEMON2(HYPNO), + EC_MOVE(HYPNOSIS), +}; + +const u16 gEasyChatWordsByLetter_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_POKEMON(IGGLYBUFF), + EC_POKEMON2(IGGLYBUFF), + EC_WORD_IGNORANT, + EC_WORD_ILLUMINATE, + EC_POKEMON(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_POKEMON2(IVYSAUR), +}; + +const u16 gEasyChatWordsByLetter_J[] = { + -1, 2, // Doubled pokemon species name + EC_POKEMON(JIGGLYPUFF), + EC_POKEMON2(JIGGLYPUFF), + EC_POKEMON(JIRACHI), + EC_WORD_JOKING, + EC_POKEMON2(JOLTEON), + EC_WORD_JOY, + EC_WORD_JUDGE, + EC_MOVE2(JUMP_KICK), + EC_POKEMON2(JUMPLUFF), + EC_WORD_JUST, + EC_POKEMON2(JYNX), +}; + +const u16 gEasyChatWordsByLetter_K[] = { + EC_POKEMON2(KABUTO), + EC_POKEMON2(KABUTOPS), + -1, 2, // Doubled pokemon species name + EC_POKEMON(KADABRA), + EC_POKEMON2(KADABRA), + EC_POKEMON2(KAKUNA), + EC_POKEMON2(KANGASKHAN), + EC_MOVE(KARATE_CHOP), + EC_POKEMON(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_POKEMON(KINGDRA), + EC_POKEMON2(KINGDRA), + EC_POKEMON2(KINGLER), + EC_POKEMON(KIRLIA), + EC_MOVE2(KNOCK_OFF), + EC_WORD_KNOCKOUT, + EC_WORD_KNOW, + EC_WORD_KNOWS, + -1, 2, // Doubled pokemon species name + EC_POKEMON(KOFFING), + EC_POKEMON2(KOFFING), + EC_POKEMON2(KRABBY), + EC_WORD_KTHX_BYE, + EC_POKEMON(KYOGRE), +}; + +const u16 gEasyChatWordsByLetter_L[] = { + EC_WORD_LACKING, + EC_WORD_LACKS, + EC_WORD_LADY, + EC_POKEMON(LAIRON), + EC_WORD_LALALA, + -1, 2, // Doubled pokemon species name + EC_POKEMON(LANTURN), + EC_POKEMON2(LANTURN), + EC_POKEMON2(LAPRAS), + EC_POKEMON2(LARVITAR), + EC_WORD_LAST, + EC_WORD_LATE, + EC_WORD_LATER, + EC_POKEMON(LATIAS), + EC_POKEMON(LATIOS), + EC_WORD_LAVISH, + EC_WORD_LAY, + EC_WORD_LEADER, + EC_WORD_LEADERS, + EC_WORD_LEAF, + EC_MOVE2(LEAF_BLADE), + EC_WORD_LEARN, + EC_POKEMON2(LEDIAN), + EC_POKEMON2(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_POKEMON2(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_POKEMON(LILEEP), + EC_WORD_LIMBER, + EC_WORD_LINK, + EC_POKEMON(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_POKEMON(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_POKEMON(LOTAD), + EC_POKEMON(LOUDRED), + EC_WORD_LOUSY, + EC_MOVE(LOVELY_KISS), + EC_WORD_LOVEY_DOVEY, + EC_WORD_LOW, + EC_MOVE(LOW_KICK), + EC_WORD_LOWS, + EC_POKEMON(LUDICOLO), + EC_POKEMON2(LUGIA), + EC_WORD_LUKEWARM, + EC_POKEMON(LUNATONE), + EC_MOVE2(LUSTER_PURGE), + EC_POKEMON(LUVDISC), +}; + +const u16 gEasyChatWordsByLetter_M[] = { + EC_MOVE2(MACH_PUNCH), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MACHAMP), + EC_POKEMON2(MACHAMP), + EC_WORD_MACHINE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(MACHOKE), + EC_POKEMON2(MACHOKE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MACHOP), + EC_POKEMON2(MACHOP), + EC_WORD_MAGAZINE, + EC_POKEMON2(MAGBY), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGCARGO), + EC_POKEMON2(MAGCARGO), + EC_MOVE2(MAGIC_COAT), + EC_MOVE2(MAGICAL_LEAF), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGIKARP), + EC_POKEMON2(MAGIKARP), + EC_WORD_MAGMA_ARMOR, + EC_POKEMON2(MAGMAR), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGNEMITE), + EC_POKEMON2(MAGNEMITE), + EC_WORD_MAGNET_PULL, + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGNETON), + EC_POKEMON2(MAGNETON), + EC_MOVE2(MAGNITUDE), + EC_WORD_MAIL, + EC_WORD_MAKE, + EC_WORD_MAKING, + EC_POKEMON(MAKUHITA), + EC_WORD_MAN, + EC_POKEMON(MANECTRIC), + EC_POKEMON2(MANKEY), + EC_POKEMON2(MANTINE), + EC_POKEMON2(MAREEP), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MARILL), + EC_POKEMON2(MARILL), + EC_POKEMON2(MAROWAK), + EC_POKEMON(MARSHTOMP), + EC_WORD_MARVEL_SCALE, + EC_POKEMON(MASQUERAIN), + EC_WORD_MASTER, + EC_WORD_MATCH, + EC_WORD_MATCH_UP, + EC_POKEMON(MAWILE), + EC_WORD_MAYBE, + EC_WORD_MC, + EC_WORD_ME, + EC_WORD_MEAN, + EC_MOVE(MEAN_LOOK), + EC_POKEMON(MEDICHAM), + EC_MOVE2(MEDITATE), + EC_POKEMON(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_POKEMON2(MEGANIUM), + EC_MOVE(MEMENTO), + EC_POKEMON2(MEOWTH), + EC_WORD_MESSAGE, + EC_POKEMON(METAGROSS), + EC_MOVE2(METAL_CLAW), + EC_MOVE(METAL_SOUND), + EC_POKEMON(METANG), + EC_POKEMON2(METAPOD), + EC_MOVE(METEOR_MASH), + EC_MOVE2(METRONOME), + EC_POKEMON2(MEW), + EC_POKEMON2(MEWTWO), + EC_POKEMON(MIGHTYENA), + EC_MOVE2(MILK_DRINK), + EC_POKEMON(MILOTIC), + EC_POKEMON2(MILTANK), + EC_MOVE2(MIMIC), + EC_MOVE(MIND_READER), + EC_MOVE2(MINIMIZE), + EC_POKEMON(MINUN), + EC_WORD_MINUS, + EC_MOVE2(MIRROR_COAT), + EC_MOVE(MIRROR_MOVE), + EC_POKEMON2(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_POKEMON2(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_POKEMON2(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_POKEMON(MUDKIP), + EC_WORD_MUFUFU, + -1, 2, // Doubled pokemon species name + EC_POKEMON(MUK), + EC_POKEMON2(MUK), + EC_POKEMON2(MURKROW), + EC_WORD_MUSIC, + EC_WORD_MUST_BE, + EC_WORD_MY, + EC_WORD_MYSELF, + EC_WORD_MYSTERY, +}; + +const u16 gEasyChatWordsByLetter_N[] = { + EC_WORD_NAME, + EC_WORD_NAP, + -1, 2, // Doubled pokemon species name + EC_POKEMON(NATU), + EC_POKEMON2(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_POKEMON2(NIDOKING), + EC_POKEMON2(NIDOQUEEN), + EC_POKEMON2(NIDORAN_F), + EC_POKEMON2(NIDORAN_M), + EC_POKEMON2(NIDORINA), + EC_POKEMON2(NIDORINO), + EC_WORD_NIGHT, + EC_MOVE2(NIGHT_SHADE), + EC_MOVE(NIGHTMARE), + EC_WORD_NIGHTTIME, + EC_POKEMON(NINCADA), + -1, 2, // Doubled pokemon species name + EC_POKEMON(NINETALES), + EC_POKEMON2(NINETALES), + EC_POKEMON(NINJASK), + EC_WORD_NITWIT, + EC_WORD_NO, + EC_WORD_NO_MATCH, + EC_WORD_NO_1, + EC_POKEMON2(NOCTOWL), + EC_WORD_NOISY, + EC_WORD_NON_STOP, + EC_WORD_NONE, + EC_WORD_NOPE, + EC_WORD_NORMAL, + EC_POKEMON(NOSEPASS), + EC_WORD_NOT, + EC_WORD_NOT_VERY, + EC_WORD_NOTHING, + EC_WORD_NOW, + EC_POKEMON(NUMEL), + EC_POKEMON(NUZLEAF), +}; + +const u16 gEasyChatWordsByLetter_O[] = { + EC_WORD_OBLIVIOUS, + EC_MOVE(OCTAZOOKA), + EC_POKEMON2(OCTILLERY), + -1, 2, // Doubled pokemon species name + EC_POKEMON(ODDISH), + EC_POKEMON2(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_POKEMON2(OMANYTE), + EC_POKEMON2(OMASTAR), + EC_WORD_ON, + EC_WORD_ONCE, + EC_POKEMON2(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, +}; + +const u16 gEasyChatWordsByLetter_P[] = { + EC_MOVE(PAIN_SPLIT), + EC_POKEMON2(PARAS), + EC_POKEMON2(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_POKEMON(PELIPPER), + EC_WORD_PERFECT, + EC_WORD_PERFECTION, + EC_MOVE2(PERISH_SONG), + EC_POKEMON2(PERSIAN), + EC_WORD_PERSON, + EC_MOVE2(PETAL_DANCE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PHANPY), + EC_POKEMON2(PHANPY), + EC_WORD_PHONE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(PICHU), + EC_POKEMON2(PICHU), + EC_WORD_PICKUP, + EC_POKEMON2(PIDGEOT), + EC_POKEMON2(PIDGEOTTO), + EC_POKEMON2(PIDGEY), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PIKACHU), + EC_POKEMON2(PIKACHU), + EC_POKEMON2(PILOSWINE), + EC_MOVE2(PIN_MISSILE), + EC_POKEMON2(PINECO), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PINSIR), + EC_POKEMON2(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_POKEMON(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_POKEMON2(POLITOED), + EC_POKEMON2(POLIWAG), + EC_POKEMON2(POLIWHIRL), + EC_POKEMON2(POLIWRATH), + EC_POKEMON2(PONYTA), + EC_POKEMON(POOCHYENA), + EC_WORD_POPULAR, + EC_POKEMON2(PORYGON), + EC_POKEMON2(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_POKEMON2(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_POKEMON(PSYDUCK), + EC_POKEMON2(PSYDUCK), + EC_MOVE(PSYWAVE), + EC_POKEMON2(PUPITAR), + EC_WORD_PURE_POWER, + EC_MOVE(PURSUIT), + EC_WORD_PUSHOVER, +}; + +const u16 gEasyChatWordsByLetter_Q[] = { + EC_POKEMON2(QUAGSIRE), + EC_WORD_QUESTION, + EC_MOVE2(QUICK_ATTACK), + EC_POKEMON2(QUILAVA), + EC_WORD_QUITE, + EC_POKEMON2(QWILFISH), +}; + +const u16 gEasyChatWordsByLetter_R[] = { + EC_WORD_RADIO, + EC_MOVE(RAGE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(RAICHU), + EC_POKEMON2(RAICHU), + EC_POKEMON2(RAIKOU), + EC_MOVE(RAIN_DANCE), + EC_WORD_RAIN_DISH, + EC_POKEMON(RALTS), + EC_WORD_RANK, + EC_MOVE(RAPID_SPIN), + EC_POKEMON2(RAPIDASH), + EC_WORD_RARE, + EC_WORD_RATHER, + EC_POKEMON2(RATICATE), + EC_POKEMON2(RATTATA), + EC_POKEMON(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_POKEMON(REGICE), + EC_POKEMON(REGIROCK), + EC_POKEMON(REGISTEEL), + EC_WORD_REJECT, + EC_WORD_RELEASE, + EC_POKEMON(RELICANTH), + EC_POKEMON2(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_POKEMON(RHYDON), + EC_POKEMON2(RHYDON), + -1, 2, // Doubled pokemon species name + EC_POKEMON(RHYHORN), + EC_POKEMON2(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_POKEMON(ROSELIA), + EC_WORD_ROUGH_SKIN, + EC_WORD_RPG, + EC_WORD_RUBY, + EC_WORD_RULE, + EC_WORD_RUN, + EC_WORD_RUN_AWAY, + EC_WORD_RUNS, +}; + +const u16 gEasyChatWordsByLetter_S[] = { + EC_POKEMON(SABLEYE), + EC_MOVE(SACRED_FIRE), + EC_WORD_SAD, + EC_WORD_SADLY, + EC_MOVE(SAFEGUARD), + EC_WORD_SAID, + EC_POKEMON(SALAMENCE), + EC_WORD_SAND_STREAM, + EC_MOVE(SAND_TOMB), + EC_WORD_SAND_VEIL, + EC_MOVE(SAND_ATTACK), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SANDSHREW), + EC_POKEMON2(SANDSHREW), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SANDSLASH), + EC_POKEMON2(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_POKEMON(SCEPTILE), + EC_WORD_SCHOOL, + EC_POKEMON2(SCIZOR), + EC_MOVE2(SCRATCH), + EC_MOVE(SCREECH), + EC_POKEMON2(SCYTHER), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SEADRA), + EC_POKEMON2(SEADRA), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SEAKING), + EC_POKEMON2(SEAKING), + EC_POKEMON(SEALEO), + EC_WORD_SEARCH, + EC_WORD_SECRET, + EC_WORD_SECRET_BASE, + EC_MOVE2(SECRET_POWER), + EC_WORD_SEE, + EC_WORD_SEE_YA, + EC_POKEMON(SEEDOT), + EC_WORD_SEEK, + EC_POKEMON2(SEEL), + EC_WORD_SEEMS, + EC_WORD_SEES, + EC_MOVE2(SEISMIC_TOSS), + EC_MOVE(SELF_DESTRUCT), + EC_WORD_SENSE, + EC_POKEMON2(SENTRET), + EC_WORD_SERENE_GRACE, + EC_WORD_SERIOUS, + EC_WORD_SERIOUSLY, + EC_WORD_SERVICE, + EC_POKEMON(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_POKEMON(SHARPEDO), + EC_MOVE(SHARPEN), + EC_WORD_SHE, + EC_WORD_SHE_IS, + EC_WORD_SHE_WAS, + EC_WORD_SHED_SKIN, + EC_POKEMON(SHEDINJA), + EC_MOVE(SHEER_COLD), + EC_POKEMON(SHELGON), + EC_WORD_SHELL_ARMOR, + EC_POKEMON2(SHELLDER), + EC_WORD_SHIELD_DUST, + EC_POKEMON(SHIFTRY), + EC_WORD_SHINE, + EC_MOVE2(SHOCK_WAVE), + EC_WORD_SHOCKED, + EC_WORD_SHOPPING, + EC_WORD_SHOULD, + EC_WORD_SHOW, + EC_WORD_SHREDDED, + EC_POKEMON(SHROOMISH), + EC_POKEMON2(SHUCKLE), + EC_POKEMON(SHUPPET), + EC_WORD_SIBLINGS, + EC_WORD_SIGH, + EC_MOVE(SIGNAL_BEAM), + EC_POKEMON(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_POKEMON(SKARMORY), + EC_POKEMON2(SKARMORY), + EC_MOVE(SKETCH), + EC_WORD_SKILL, + EC_MOVE(SKILL_SWAP), + EC_WORD_SKILLED, + EC_POKEMON2(SKIPLOOM), + EC_POKEMON(SKITTY), + EC_MOVE2(SKULL_BASH), + EC_MOVE(SKY_ATTACK), + EC_MOVE(SKY_UPPERCUT), + EC_MOVE2(SLACK_OFF), + EC_POKEMON(SLAKING), + EC_POKEMON(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_POKEMON2(SLOWBRO), + EC_POKEMON2(SLOWKING), + EC_POKEMON2(SLOWPOKE), + EC_MOVE2(SLUDGE), + EC_MOVE2(SLUDGE_BOMB), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SLUGMA), + EC_POKEMON2(SLUGMA), + EC_WORD_SMACK, + EC_WORD_SMALL, + EC_WORD_SMART, + EC_WORD_SMARTNESS, + EC_POKEMON2(SMEARGLE), + EC_WORD_SMELL, + EC_WORD_SMELL_YA, + EC_MOVE(SMELLING_SALT), + EC_WORD_SMITE, + EC_MOVE(SMOG), + EC_MOVE(SMOKESCREEN), + EC_POKEMON2(SMOOCHUM), + EC_WORD_SMOOTH, + EC_MOVE2(SNATCH), + EC_POKEMON2(SNEASEL), + EC_MOVE(SNORE), + EC_POKEMON2(SNORLAX), + EC_WORD_SNORT, + EC_POKEMON(SNORUNT), + EC_POKEMON2(SNUBBULL), + EC_WORD_SO, + EC_MOVE2(SOFT_BOILED), + EC_WORD_SOFTWARE, + EC_MOVE(SOLAR_BEAM), + EC_POKEMON(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_POKEMON2(SPEAROW), + EC_WORD_SPECTATOR, + EC_WORD_SPEED_BOOST, + EC_POKEMON(SPHEAL), + EC_MOVE(SPIDER_WEB), + EC_MOVE2(SPIKE_CANNON), + EC_MOVE2(SPIKES), + EC_POKEMON2(SPINARAK), + EC_POKEMON(SPINDA), + EC_WORD_SPIRALING, + EC_WORD_SPIRIT, + EC_MOVE2(SPIT_UP), + EC_MOVE(SPITE), + EC_MOVE2(SPLASH), + EC_POKEMON(SPOINK), + EC_MOVE(SPORE), + EC_WORD_SPORTS, + EC_WORD_SPRING, + EC_POKEMON2(SQUIRTLE), + EC_WORD_STAGE, + EC_POKEMON2(STANTLER), + -1, 2, // Doubled pokemon species name + EC_POKEMON(STARMIE), + EC_POKEMON2(STARMIE), + EC_WORD_START, + -1, 2, // Doubled pokemon species name + EC_POKEMON(STARYU), + EC_POKEMON2(STARYU), + EC_WORD_STATIC, + EC_WORD_STAY_AT_HOME, + EC_WORD_STEEL, + EC_MOVE2(STEEL_WING), + EC_POKEMON2(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_POKEMON2(SUDOWOODO), + EC_POKEMON2(SUICUNE), + EC_WORD_SUMMER, + EC_WORD_SUNDAY, + EC_POKEMON2(SUNFLORA), + EC_POKEMON2(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_POKEMON(SURSKIT), + EC_POKEMON(SWABLU), + EC_MOVE(SWAGGER), + EC_MOVE2(SWALLOW), + EC_POKEMON(SWALOT), + EC_POKEMON(SWAMPERT), + EC_WORD_SWARM, + EC_MOVE2(SWEET_KISS), + EC_MOVE(SWEET_SCENT), + EC_WORD_SWEETS, + EC_POKEMON(SWELLOW), + EC_MOVE(SWIFT), + EC_WORD_SWIFT_SWIM, + EC_POKEMON2(SWINUB), + EC_MOVE2(SWORDS_DANCE), + EC_WORD_SYNCHRONIZE, + EC_MOVE(SYNTHESIS), + EC_WORD_SYSTEM, +}; + +const u16 gEasyChatWordsByLetter_T[] = { + EC_MOVE2(TACKLE), + EC_MOVE2(TAIL_GLOW), + EC_MOVE(TAIL_WHIP), + EC_POKEMON(TAILLOW), + EC_WORD_TAKE, + EC_MOVE2(TAKE_DOWN), + EC_WORD_TAKE_THAT, + EC_WORD_TALENT, + EC_WORD_TALK, + EC_WORD_TALKING, + EC_POKEMON2(TANGELA), + EC_WORD_TASTY, + EC_MOVE2(TAUNT), + EC_POKEMON2(TAUROS), + EC_WORD_TCH, + EC_WORD_TEACH, + EC_WORD_TEACHER, + EC_WORD_TEACHES, + EC_POKEMON2(TEDDIURSA), + EC_MOVE2(TEETER_DANCE), + EC_MOVE2(TELEPORT), + EC_WORD_TELEVISION, + -1, 2, // Doubled pokemon species name + EC_POKEMON(TENTACOOL), + EC_POKEMON2(TENTACOOL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(TENTACRUEL), + EC_POKEMON2(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_POKEMON2(TOGEPI), + EC_WORD_TOGETHER, + EC_POKEMON2(TOGETIC), + EC_WORD_TOMORROW, + EC_WORD_TOO, + EC_WORD_TOO_LATE, + EC_WORD_TOO_STRONG, + EC_WORD_TOO_WEAK, + EC_WORD_TOP, + EC_POKEMON(TORCHIC), + EC_POKEMON(TORKOAL), + EC_MOVE(TORMENT), + EC_WORD_TORRENT, + EC_WORD_TOTALLY, + EC_POKEMON2(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_POKEMON(TRAPINCH), + EC_WORD_TRAVEL, + EC_WORD_TREASURE, + EC_POKEMON(TREECKO), + EC_WORD_TRENDY, + EC_MOVE2(TRI_ATTACK), + EC_MOVE2(TRICK), + EC_WORD_TRIES, + EC_MOVE2(TRIPLE_KICK), + EC_POKEMON(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_POKEMON2(TYPHLOSION), + EC_POKEMON2(TYRANITAR), + EC_POKEMON2(TYROGUE), +}; + +const u16 gEasyChatWordsByLetter_U[] = { + EC_WORD_UGLY, + EC_WORD_UH_HUH, + EC_WORD_UH_OH, + EC_WORD_UM, + EC_POKEMON2(UMBREON), + EC_WORD_UNAVOIDABLE, + EC_WORD_UNBELIEVABLE, + EC_WORD_UNCLE, + EC_WORD_UNDERSTAND, + EC_WORD_UNDERSTANDS, + EC_WORD_UNDERSTOOD, + EC_WORD_UNION, + EC_POKEMON2(UNOWN), + EC_WORD_UNTIL, + EC_WORD_UP, + EC_WORD_UPBEAT, + EC_MOVE(UPROAR), + EC_WORD_UPSIDE_DOWN, + EC_WORD_URGH, + EC_POKEMON2(URSARING), + EC_WORD_USE, + EC_WORD_USELESS, + EC_WORD_USES, + EC_WORD_USING, +}; + +const u16 gEasyChatWordsByLetter_V[] = { + EC_WORD_VACATION, + EC_POKEMON2(VAPOREON), + EC_POKEMON2(VENOMOTH), + EC_POKEMON2(VENONAT), + EC_POKEMON2(VENUSAUR), + EC_WORD_VERSION, + EC_WORD_VERSUS, + EC_WORD_VERY, + EC_POKEMON(VIBRAVA), + EC_MOVE2(VICE_GRIP), + EC_WORD_VICTORY, + EC_POKEMON2(VICTREEBEL), + EC_WORD_VIEWING, + EC_POKEMON(VIGOROTH), + -1, 2, // Doubled pokemon species name + EC_POKEMON(VILEPLUME), + EC_POKEMON2(VILEPLUME), + EC_MOVE2(VINE_WHIP), + EC_WORD_VITAL_SPIRIT, + EC_MOVE(VITAL_THROW), + EC_POKEMON(VOLBEAT), + EC_WORD_VOLT_ABSORB, + EC_MOVE2(VOLT_TACKLE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(VOLTORB), + EC_POKEMON2(VOLTORB), + EC_WORD_VORACIOUS, + -1, 2, // Doubled pokemon species name + EC_POKEMON(VULPIX), + EC_POKEMON2(VULPIX), +}; + +const u16 gEasyChatWordsByLetter_W[] = { + EC_WORD_WAAAH, + EC_WORD_WAHAHAHA, + EC_POKEMON(WAILMER), + EC_POKEMON(WAILORD), + EC_WORD_WAIT, + EC_WORD_WAKE_UP, + EC_WORD_WAKES_UP, + EC_WORD_WALK, + EC_WORD_WALKING, + EC_WORD_WALKS, + EC_POKEMON(WALREIN), + EC_WORD_WANDERING, + EC_WORD_WANNABE, + EC_WORD_WANT, + EC_WORD_WANTS, + EC_POKEMON2(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_POKEMON2(WEEDLE), + EC_WORD_WEEK, + EC_POKEMON2(WEEPINBELL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(WEEZING), + EC_POKEMON2(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_POKEMON(WHISCASH), + EC_POKEMON(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_POKEMON(WIGGLYTUFF), + EC_POKEMON2(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_POKEMON(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_POKEMON(WOBBUFFET), + EC_POKEMON2(WOBBUFFET), + EC_WORD_WOMAN, + EC_WORD_WON, + EC_WORD_WON_T, + EC_WORD_WONDER, + EC_WORD_WONDER_GUARD, + EC_POKEMON2(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_POKEMON(WURMPLE), + EC_POKEMON(WYNAUT), +}; + +const u16 gEasyChatWordsByLetter_X[] = { + -1, 2, // Doubled pokemon species name + EC_POKEMON(XATU), + EC_POKEMON2(XATU), +}; + +const u16 gEasyChatWordsByLetter_Y[] = { + EC_WORD_YAHOO, + EC_POKEMON2(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, +}; + +const u16 gEasyChatWordsByLetter_Z[] = { + EC_POKEMON(ZANGOOSE), + EC_MOVE2(ZAP_CANNON), + EC_POKEMON2(ZAPDOS), + EC_POKEMON(ZIGZAGOON), + -1, 2, // Doubled pokemon species name + EC_POKEMON(ZUBAT), + EC_POKEMON2(ZUBAT), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseHi[] = { + EC_POKEMON2(CLEFFA), + EC_WORD_AIYEEH, + EC_POKEMON2(WEEDLE), + EC_WORD_HERO, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(PIKACHU), + EC_POKEMON(PIKACHU), + EC_MOVE2(LIGHT_SCREEN), + EC_WORD_SHINE, + EC_WORD_LOW, + EC_POKEMON2(CLEFABLE), + EC_WORD_FLYING, + EC_POKEMON2(PIDGEOT), + EC_POKEMON2(PIDGEOTTO), + EC_WORD_LEFT, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(PICHU), + EC_POKEMON(PICHU), + EC_MOVE2(SCRATCH), + EC_WORD_SURPRISE, + EC_MOVE2(HYPER_FANG), + EC_POKEMON2(CLEFAIRY), + EC_WORD_DROUGHT, + EC_WORD_HIDDEN, + EC_WORD_PERSON, + EC_WORD_AWFUL, + EC_POKEMON2(CHARMANDER), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(STARYU), + EC_POKEMON(STARYU), + EC_WORD_ALONE, + EC_POKEMON2(CYNDAQUIL), + EC_MOVE2(EMBER), + EC_POKEMON(VIBRAVA), + EC_WORD_BORED, + EC_POKEMON2(SUNKERN), + EC_WORD_SECRET, + EC_WORD_SECRET_BASE, + EC_MOVE2(SECRET_POWER), + EC_POKEMON2(TEDDIURSA), + EC_WORD_HIYAH, + EC_MOVE2(DIZZY_PUNCH), + EC_WORD_LIGHTNINGROD, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(VOLTORB), + EC_POKEMON(VOLTORB), + EC_WORD_DAYTIME, + EC_MOVE2(BULK_UP), + EC_WORD_NAP, + EC_WORD_HEROINE, + EC_POKEMON(FEEBAS), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseFu[] = { + EC_WORD_FIGHT, + EC_POKEMON2(MOLTRES), + EC_WORD_FASHION, + EC_WORD_FEAR, + EC_WORD_FEVER, + EC_MOVE2(IMPRISON), + EC_POKEMON2(FLAREON), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(ALAKAZAM), + EC_POKEMON(ALAKAZAM), + EC_POKEMON2(MAGMAR), + EC_POKEMON(GRUMPIG), + EC_MOVE2(FEATHER_DANCE), + EC_POKEMON2(FORRETRESS), + EC_MOVE2(WHIRLWIND), + EC_WORD_COMPOUNDEYES, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(WIGGLYTUFF), + EC_POKEMON(WIGGLYTUFF), + EC_MOVE2(BEAT_UP), + EC_WORD_MYSTERY, + EC_POKEMON2(IVYSAUR), + EC_POKEMON2(BULBASAUR), + EC_WORD_MARVEL_SCALE, + EC_WORD_WONDER_GUARD, + EC_POKEMON2(VENUSAUR), + EC_WORD_LACKS, + EC_WORD_RESUSCITATE, + EC_WORD_SMACK, + EC_WORD_FUFUFU, + EC_POKEMON2(AERODACTYL), + EC_WORD_WIMPY, + EC_POKEMON2(MAGBY), + EC_WORD_LOL, + EC_MOVE2(BLIZZARD), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(IGGLYBUFF), + EC_POKEMON(IGGLYBUFF), + EC_WORD_SNORT, + EC_MOVE2(STOMP), + EC_WORD_INSOMNIA, + EC_WORD_WINTER, + EC_WORD_LEVITATE, + EC_POKEMON(FLYGON), + EC_WORD_PLUS, + EC_MOVE2(BLAST_BURN), + EC_POKEMON(PLUSLE), + EC_POKEMON2(UMBREON), + EC_MOVE2(FLASH), + EC_WORD_WOBBLY, + EC_MOVE2(TEETER_DANCE), + EC_WORD_PRETEND, + EC_POKEMON2(ARTICUNO), + EC_WORD_WANNABE, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(JIGGLYPUFF), + EC_POKEMON(JIGGLYPUFF), + EC_POKEMON2(SNUBBULL), + EC_WORD_SHAKY, + EC_MOVE2(CRUSH_CLAW), + EC_MOVE2(BLAZE_KICK), + EC_MOVE2(PRESENT), + EC_WORD_PRESSURE, + EC_WORD_BLEND, + EC_WORD_FRONTIER, + EC_WORD_HUMPH, + EC_MOVE2(ERUPTION), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseHe[] = { + EC_WORD_HEY, + EC_POKEMON(CORPHISH), + EC_WORD_BABY, + EC_POKEMON2(BAYLEEF), + EC_WORD_BEST, + EC_WORD_LOUSY, + EC_WORD_HEHEHE, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(GRIMER), + EC_POKEMON(GRIMER), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MUK), + EC_POKEMON(MUK), + EC_WORD_LIQUID_OOZE, + EC_MOVE2(SLUDGE), + EC_MOVE2(SLUDGE_BOMB), + EC_MOVE2(GLARE), + EC_WORD_HEH, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(HERACROSS), + EC_POKEMON(HERACROSS), + EC_POKEMON(PELIPPER), + EC_POKEMON2(HOUNDOOM), + EC_POKEMON2(PERSIAN), + EC_WORD_RIPPED, + EC_POKEMON2(LICKITUNG), + EC_WORD_STUDY, + EC_WORD_COLOR_CHANGE, + EC_MOVE2(TRANSFORM), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseHo[] = { + EC_MOVE2(POISON_TAIL), + EC_WORD_POINTS, + EC_POKEMON2(HO_OH), + EC_WORD_SOUNDPROOF, + EC_WORD_ADVENTURE, + EC_WORD_EFFECT_SPORE, + EC_MOVE2(ROAR), + EC_POKEMON(WAILORD), + EC_POKEMON(WAILMER), + EC_WORD_DUDE, + EC_WORD_BOARD, + EC_POKEMON2(HOOTHOOT), + EC_POKEMON(SALAMENCE), + EC_WORD_BALL, + EC_MOVE2(BONE_RUSH), + EC_WORD_THEY, + EC_WORD_THEY_WERE, + EC_WORD_TO_THEM, + EC_WORD_THEIR, + EC_WORD_THEY_RE, + EC_WORD_THEY_VE, + EC_WORD_POKENAV, + EC_WORD_POKEMON, + EC_WORD_GET, + EC_WORD_POKEDEX, + EC_WORD_PKRS, + EC_MOVE2(CAMOUFLAGE), + EC_WORD_WANT, + EC_MOVE2(COVET), + EC_POKEMON(AGGRON), + EC_MOVE2(TAIL_GLOW), + EC_POKEMON(POOCHYENA), + EC_POKEMON2(PIDGEY), + EC_WORD_AS_MUCH_AS, + EC_POKEMON2(PONYTA), + EC_MOVE2(BONE_CLUB), + EC_MOVE2(BONEMERANG), + EC_WORD_FIRE, + EC_MOVE2(FIRE_SPIN), + EC_WORD_FLAME_BODY, + EC_MOVE2(FIRE_PUNCH), + EC_POKEMON2(SKIPLOOM), + EC_WORD_HOHOHO, + EC_WORD_PRAISE, + EC_WORD_UH_HUH, + EC_POKEMON2(PORYGON), + EC_POKEMON2(PORYGON2), + EC_MOVE2(VOLT_TACKLE), + EC_WORD_POKEBLOCK, + EC_MOVE2(PERISH_SONG), + EC_WORD_SHREDDED, + EC_POKEMON(CASTFORM), + EC_WORD_BOOK, + EC_WORD_SERIOUS, + EC_WORD_REALLY, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMa[] = { + EC_WORD_OH_DEAR, + EC_WORD_IN, + EC_WORD_GIVE_UP, + EC_WORD_MINUS, + EC_POKEMON(MINUN), + EC_WORD_DAILY, + EC_WORD_OWN_TEMPO, + EC_MOVE2(WRAP), + EC_MOVE2(SPIKES), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MAGCARGO), + EC_POKEMON(MAGCARGO), + EC_MOVE2(MAGNITUDE), + EC_POKEMON(MAKUHITA), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(SLUGMA), + EC_POKEMON(SLUGMA), + EC_WORD_MAGMA_ARMOR, + EC_POKEMON2(QUILAVA), + EC_WORD_OVERDO, + EC_WORD_LOSS, + EC_WORD_IF_I_LOSE, + EC_WORD_LOST, + EC_WORD_LOSE, + EC_WORD_TRULY, + EC_WORD_SERIOUSLY, + EC_MOVE2(MAGICAL_LEAF), + EC_MOVE2(MAGIC_COAT), + EC_WORD_MACHINE, + EC_WORD_OUT, + EC_WORD_MASTER, + EC_WORD_INCREASING, + EC_WORD_TOO, + EC_WORD_LIKE, + EC_POKEMON2(BELLSPROUT), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(WEEZING), + EC_POKEMON(WEEZING), + EC_WORD_SMELL, + EC_WORD_YET, + EC_WORD_MISTAKE, + EC_POKEMON(LINOONE), + EC_WORD_TOTALLY, + EC_MOVE2(MUD_SHOT), + EC_MOVE2(MACH_PUNCH), + EC_WORD_FESTIVAL, + EC_WORD_UNTIL, + EC_WORD_WAIT, + EC_WORD_GUARD, + EC_MOVE2(PROTECT), + EC_POKEMON(CASCOON), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MARILL), + EC_POKEMON(MARILL), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(AZUMARILL), + EC_POKEMON(AZUMARILL), + EC_MOVE2(DEFENSE_CURL), + EC_WORD_AS_IF, + EC_POKEMON(SWALOT), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(ELECTRODE), + EC_POKEMON(ELECTRODE), + EC_MOVE2(ROLLING_KICK), + EC_WORD_COMICS, + EC_POKEMON2(MANKEY), + EC_WORD_SATISFIED, + EC_POKEMON2(MANTINE), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMi[] = { + EC_WORD_PARTNER, + EC_MOVE2(SUBSTITUTE), + EC_WORD_RIGHT, + EC_MOVE2(DETECT), + EC_MOVE2(PIN_MISSILE), + EC_WORD_WATER, + EC_MOVE2(WATER_SPORT), + EC_POKEMON(MUDKIP), + EC_MOVE2(WATER_GUN), + EC_MOVE2(MIST_BALL), + EC_MOVE2(WATER_PULSE), + EC_WORD_WATER_VEIL, + EC_WORD_SHOW, + EC_WORD_SEE, + EC_WORD_DID, + EC_MOVE2(FURY_ATTACK), + EC_MOVE2(FURY_SWIPES), + EC_MOVE2(DESTINY_BOND), + EC_WORD_LOOKS, + EC_WORD_REJECT, + EC_WORD_ACCEPT, + EC_POKEMON2(DRATINI), + EC_MOVE2(FALSE_SWIPE), + EC_MOVE2(FORESIGHT), + EC_POKEMON2(MEW), + EC_POKEMON2(MEWTWO), + EC_MOVE2(MIRROR_COAT), + EC_MOVE2(FUTURE_SIGHT), + EC_WORD_SEES, + EC_MOVE2(MILK_DRINK), + EC_POKEMON2(MILTANK), + EC_POKEMON(MILOTIC), + EC_WORD_WE, + EC_WORD_BEEN, + EC_WORD_TO_US, + EC_WORD_OUR, + EC_WORD_WE_RE, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMu[] = { + EC_WORD_MOOD, + EC_POKEMON2(MISDREAVUS), + EC_WORD_OLDEN, + EC_WORD_ARRGH, + EC_WORD_BUG, + EC_WORD_SWARM, + EC_WORD_RATHER, + EC_POKEMON2(SMOOCHUM), + EC_WORD_INVINCIBLE, + EC_WORD_HEART, + EC_WORD_MUFUFU, + EC_WORD_MMM, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMe[] = { + EC_MOVE2(CALM_MIND), + EC_WORD_MAIL, + EC_MOVE2(MEGA_DRAIN), + EC_MOVE2(MEGA_KICK), + EC_MOVE2(MEGA_PUNCH), + EC_POKEMON2(MEGANIUM), + EC_MOVE2(MEGAHORN), + EC_WORD_SEEK, + EC_MOVE2(HIDDEN_POWER), + EC_WORD_RARE, + EC_POKEMON(METAGROSS), + EC_POKEMON2(DITTO), + EC_MOVE2(METAL_CLAW), + EC_POKEMON(METANG), + EC_WORD_DESTROYED, + EC_WORD_MESSAGE, + EC_WORD_AWFULLY, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(TENTACOOL), + EC_POKEMON(TENTACOOL), + EC_WORD_FIERY, + EC_POKEMON2(MAREEP), + EC_MOVE2(ATTRACT), + EC_WORD_CUTE_CHARM, + EC_WORD_IMMUNITY, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMo[] = { + EC_WORD_ALMOST, + EC_WORD_BLAZE, + EC_WORD_NEARLY, + EC_WORD_MODE, + EC_WORD_OLD, + EC_WORD_THURSDAY, + EC_POKEMON2(FLAAFFY), + EC_WORD_LISTENING, + EC_WORD_OWN, + EC_WORD_MORE, + EC_WORD_DIDN_T, + EC_WORD_PICKUP, + EC_MOVE2(MIMIC), + EC_WORD_TOO_LATE, + EC_WORD_PATTERN, + EC_WORD_FLASH_FIRE, + EC_WORD_RECEIVED, + EC_POKEMON2(VENOMOTH), + EC_WORD_DOESN_T, + EC_POKEMON2(TANGELA), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseYa[] = { + EC_WORD_HOO_HAH, + EC_WORD_PROMISE, + EC_WORD_KIND, + EC_POKEMON(BALTOY), + EC_WORD_HOLIDAY, + EC_WORD_NEGATIVE, + EC_MOVE2(FRUSTRATION), + EC_WORD_DONE, + EC_WORD_FINALLY, + EC_WORD_ANY, + EC_WORD_YAHOO, + EC_POKEMON2(SLOWKING), + EC_POKEMON2(SLOWBRO), + EC_MOVE2(LEECH_SEED), + EC_POKEMON2(SLOWPOKE), + EC_WORD_DANGER, + EC_POKEMON2(MURKROW), + EC_POKEMON(SABLEYE), + EC_WORD_DEFEATED, + EC_WORD_BEAT, + EC_WORD_VITAL_SPIRIT, + EC_POKEMON(VIGOROTH), + EC_WORD_YOUNG, + EC_POKEMON2(YANMA), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseYu[] = { + EC_POKEMON(SNORUNT), + EC_WORD_TAKE, + EC_WORD_UNION, + EC_MOVE2(METRONOME), + EC_WORD_DREAM, + EC_MOVE2(DREAM_EATER), + EC_WORD_ALLOW, + EC_WORD_FORGET, + EC_POKEMON(CRADILY), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(KADABRA), + EC_POKEMON(KADABRA), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseYo[] = { + EC_WORD_WITHOUT, + EC_WORD_YO, + EC_MOVE2(ACID), + EC_WORD_COME_OVER, + EC_WORD_KINDERGARTEN, + EC_WORD_CHLOROPHYLL, + EC_WORD_AFTER, + EC_POKEMON2(LARVITAR), + EC_WORD_OH_KAY, + EC_WORD_BEFORE, + EC_WORD_GREAT, + EC_MOVE2(MEDITATE), + EC_WORD_PURE_POWER, + EC_WORD_WELL, + EC_MOVE2(SNATCH), + EC_WORD_OKAY, + EC_WORD_PLANS, + EC_WORD_NIGHTTIME, + EC_WORD_WHILE, + EC_POKEMON(DUSKULL), + EC_WORD_EASY, + EC_WORD_INSTEAD, + EC_WORD_NIGHT, + EC_POKEMON2(NOCTOWL), + EC_WORD_COUNT_ON, + EC_WORD_WEAK, + EC_WORD_TOO_WEAK, + EC_WORD_WEAKENED, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRa[] = { + EC_POKEMON2(RAIKOU), + EC_WORD_WEEK, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(RAICHU), + EC_POKEMON(RAICHU), + EC_WORD_RIVAL, + EC_WORD_LIFE, + EC_POKEMON(MANECTRIC), + EC_WORD_SIMPLE, + EC_WORD_PUSHOVER, + EC_POKEMON(SWAMPERT), + EC_POKEMON(ELECTRIKE), + EC_WORD_SEEMS, + EC_WORD_RADIO, + EC_MOVE2(LUSTER_PURGE), + EC_POKEMON2(CHANSEY), + EC_POKEMON2(RATICATE), + EC_POKEMON(LATIAS), + EC_POKEMON(LATIOS), + EC_POKEMON(LUVDISC), + EC_POKEMON2(LAPRAS), + EC_WORD_LOVEY_DOVEY, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(VILEPLUME), + EC_POKEMON(VILEPLUME), + EC_WORD_LALALA, + EC_POKEMON(RALTS), + EC_WORD_FORGETS, + EC_WORD_APPEARS, + EC_WORD_RANK, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(LANTURN), + EC_POKEMON(LANTURN), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRi[] = { + EC_WORD_LEADER, + EC_MOVE2(LEAF_BLADE), + EC_POKEMON2(CHARMELEON), + EC_POKEMON2(CHARIZARD), + EC_MOVE2(RECYCLE), + EC_MOVE2(REFLECT), + EC_MOVE2(REFRESH), + EC_MOVE2(REVENGE), + EC_WORD_RIBBON, + EC_WORD_TRENDY, + EC_MOVE2(DRAGON_RAGE), + EC_MOVE2(DRAGON_BREATH), + EC_MOVE2(DRAGON_DANCE), + EC_WORD_VACATION, + EC_POKEMON(LILEEP), + EC_POKEMON2(URSARING), + EC_WORD_SHIELD_DUST, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRu[] = { + EC_POKEMON2(JYNX), + EC_WORD_ROOM, + EC_WORD_RULE, + EC_POKEMON2(LUGIA), + EC_WORD_LOOK, + EC_POKEMON(LUNATONE), + EC_WORD_RUBY, + EC_WORD_THAN, + EC_POKEMON(AZURILL), + EC_POKEMON(LUDICOLO), + EC_WORD_HAPPILY, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRe[] = { + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MAGNETON), + EC_POKEMON(MAGNETON), + EC_MOVE2(ICE_PUNCH), + EC_MOVE2(ICE_BEAM), + EC_POKEMON(REGICE), + EC_POKEMON(REGISTEEL), + EC_POKEMON(REGIROCK), + EC_POKEMON(RAYQUAZA), + EC_WORD_UGLY, + EC_POKEMON2(LEDIAN), + EC_POKEMON2(LEDYBA), + EC_WORD_FANTASTIC, + EC_WORD_LEVEL, + EC_MOVE2(FURY_CUTTER), + EC_MOVE2(COMET_PUNCH), + EC_WORD_RENTAL, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRo[] = { + EC_MOVE2(SKULL_BASH), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(VULPIX), + EC_POKEMON(VULPIX), + EC_POKEMON(ROSELIA), + EC_MOVE2(LOCK_ON), + EC_MOVE2(ROCK_BLAST), + EC_WORD_ROMANTIC, + EC_WORD_QUESTION, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseWa[] = { + EC_WORD_YAY, + EC_WORD_WORLD, + EC_WORD_AWW, + EC_WORD_WIRELESS, + EC_WORD_WOWEE, + EC_POKEMON(COMBUSKEN), + EC_WORD_UNDERSTAND, + EC_WORD_UNDERSTANDS, + EC_WORD_FAINT, + EC_WORD_ANTICIPATION, + EC_WORD_ONCE, + EC_WORD_MOVE, + EC_WORD_WE_VE, + EC_WORD_FAINTED, + EC_WORD_WOMAN, + EC_WORD_SHE, + EC_WORD_SHE_WAS, + EC_WORD_TO_HER, + EC_WORD_HERS, + EC_WORD_SHE_IS, + EC_WORD_SOME, + EC_POKEMON2(JUMPLUFF), + EC_MOVE2(COTTON_SPORE), + EC_WORD_GWAH, + EC_POKEMON2(TOTODILE), + EC_WORD_WAHAHAHA, + EC_WORD_ANYWHERE, + EC_MOVE2(STRUGGLE), + EC_WORD_BADLY, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MACHOP), + EC_POKEMON(MACHOP), +}; + +const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[] = { + { + .words = gEasyChatWordsByLetter_Others, + .numWords = 10, + }, + { + .words = gEasyChatWordsByLetter_A, + .numWords = 106, + }, + { + .words = gEasyChatWordsByLetter_B, + .numWords = 86, + }, + { + .words = gEasyChatWordsByLetter_C, + .numWords = 119, + }, + { + .words = gEasyChatWordsByLetter_D, + .numWords = 94, + }, + { + .words = gEasyChatWordsByLetter_E, + .numWords = 59, + }, + { + .words = gEasyChatWordsByLetter_F, + .numWords = 80, + }, + { + .words = gEasyChatWordsByLetter_G, + .numWords = 98, + }, + { + .words = gEasyChatWordsByLetter_H, + .numWords = 101, + }, + { + .words = gEasyChatWordsByLetter_I, + .numWords = 48, + }, + { + .words = gEasyChatWordsByLetter_J, + .numWords = 13, + }, + { + .words = gEasyChatWordsByLetter_K, + .numWords = 33, + }, + { + .words = gEasyChatWordsByLetter_L, + .numWords = 82, + }, + { + .words = gEasyChatWordsByLetter_M, + .numWords = 142, + }, + { + .words = gEasyChatWordsByLetter_N, + .numWords = 54, + }, + { + .words = gEasyChatWordsByLetter_O, + .numWords = 44, + }, + { + .words = gEasyChatWordsByLetter_P, + .numWords = 102, + }, + { + .words = gEasyChatWordsByLetter_Q, + .numWords = 6, + }, + { + .words = gEasyChatWordsByLetter_R, + .numWords = 80, + }, + { + .words = gEasyChatWordsByLetter_S, + .numWords = 262, + }, + { + .words = gEasyChatWordsByLetter_T, + .numWords = 133, + }, + { + .words = gEasyChatWordsByLetter_U, + .numWords = 24, + }, + { + .words = gEasyChatWordsByLetter_V, + .numWords = 33, + }, + { + .words = gEasyChatWordsByLetter_W, + .numWords = 111, + }, + { + .words = gEasyChatWordsByLetter_X, + .numWords = 4, + }, + { + .words = gEasyChatWordsByLetter_Y, + .numWords = 19, + }, + { + .words = gEasyChatWordsByLetter_Z, + .numWords = 8, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseHi, + .numWords = 55, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseFu, + .numWords = 71, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseHe, + .numWords = 32, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseHo, + .numWords = 55, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMa, + .numWords = 74, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMi, + .numWords = 37, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMu, + .numWords = 12, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMe, + .numWords = 26, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMo, + .numWords = 20, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseYa, + .numWords = 24, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseYu, + .numWords = 13, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseYo, + .numWords = 28, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRa, + .numWords = 36, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRi, + .numWords = 17, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRu, + .numWords = 11, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRe, + .numWords = 18, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRo, + .numWords = 10, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseWa, + .numWords = 33, + }, +}; diff --git a/src/easy_chat.c b/src/easy_chat.c index 5eb3f5ccd..2c0836088 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,25 +1,37 @@ - -// Includes #include "global.h" #include "alloc.h" +#include "bard_music.h" +#include "bg.h" +#include "data2.h" +#include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" +#include "event_object_movement.h" +#include "field_message_box.h" #include "field_weather.h" +#include "gpu_regs.h" +#include "graphics.h" #include "international_string_util.h" #include "link.h" #include "main.h" #include "menu.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/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" +#include "constants/species.h" #define EZCHAT_TASK_STATE 0 #define EZCHAT_TASK_KIND 1 @@ -28,51 +40,9 @@ #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -struct EasyChatScreenTemplate -{ - u8 unk_00; - u8 numColumns; - u8 numRows; - u8 unk_03_0:7; - u8 unk_03_7:1; - const u8 *titleText; - const u8 *instructionsText1; - const u8 *instructionsText2; - const u8 *confirmText1; - const u8 *confirmText2; -}; - -struct EasyChatScreen -{ - /*0x00*/ u8 kind; - /*0x01*/ u8 templateId; - /*0x02*/ u8 numColumns; - /*0x03*/ u8 numRows; - /*0x04*/ u8 state; - /*0x05*/ s8 mainCursorColumn; - /*0x06*/ s8 mainCursorRow; - /*0x07*/ u8 unk_07; - /*0x08*/ u8 unk_08; - /*0x09*/ u8 unk_09; - /*0x0A*/ s8 unk_0a; - /*0x0B*/ s8 unk_0b; - /*0x0C*/ u8 unk_0c; - /*0x0D*/ u8 unk_0d; - /*0x0E*/ u8 unk_0e; - /*0x0F*/ u8 unk_0f; - /*0x10*/ s8 unk_10; - /*0x11*/ s8 unk_11; - /*0x12*/ u8 sizeParam; - /*0x13*/ u8 unk_13; - /*0x14*/ u8 unk_14[0x20]; - /*0x34*/ const u8 *titleText; - /*0x38*/ u16 *words; - /*0x3C*/ u16 ecWordBuffer[9]; -}; - EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; -EWRAM_DATA void *gUnknown_0203A11C = 0; -EWRAM_DATA void *gUnknown_0203A120 = 0; +EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; +EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; static void sub_811A2C0(u8); static void sub_811A278(void); @@ -81,7 +51,6 @@ static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); -void sub_811A8F0(void); static bool8 EasyChat_AllocateResources(u8, u16 *, u8); static void EasyChat_FreeResources(void); static u16 sub_811AAAC(void); @@ -97,22 +66,22 @@ static u16 sub_811B0BC(void); static u16 sub_811B0E8(void); static u16 sub_811B0F8(void); static u16 sub_811B150(void); -u16 sub_811B1B4(void); -u8 sub_811BA68(void); +static u16 sub_811B1B4(void); +static u8 sub_811BA68(void); static u8 sub_811BCC8(u8); static void sub_811BDF0(u8 *); -void sub_811BF78(void); +static void sub_811BF78(void); static bool8 sub_811BF8C(void); -bool8 sub_811BFA4(void); -void sub_811C13C(void); -/*static*/ void sub_811C158(u16); -/*static*/ bool8 sub_811C170(void); -bool8 sub_811F28C(void); -void sub_811F2B8(void); -u8 sub_811F3AC(void); -int sub_811BA3C(void); -int sub_811B184(void); -int sub_811B264(void); +static bool8 sub_811BFA4(void); +static void sub_811C13C(void); +static void sub_811C158(u16); +static bool8 sub_811C170(void); +static bool8 sub_811F28C(void); +static void sub_811F2B8(void); +static u8 sub_811F3AC(void); +static int sub_811BA3C(void); +static int sub_811B184(void); +static int sub_811B264(void); static int sub_811B32C(void); static int sub_811B2B0(void); static int sub_811B33C(void); @@ -129,16 +98,16 @@ static void sub_811B454(void); static int sub_811BD64(void); static int sub_811BDB0(void); static int sub_811BD2C(void); -int sub_811BCF4(void); +static int sub_811BCF4(void); static u16 sub_811B8E8(void); -int sub_811F3B8(u8); -void sub_811F548(int, u16); +static u8 sub_811F3B8(u8); +static void sub_811F548(int, u16); static int sub_811B908(void); -u16 sub_811F5B0(void); +static u16 sub_811F5B0(void); static void sub_811B488(u16); -u16 sub_811B940(void); -u16 sub_811F578(u16); -int sub_811BF88(int); +static u16 sub_811B940(void); +static u16 sub_811F578(u16); +static int sub_811BF88(int); static u16 sub_811B8C8(void); static int sub_811B568(u32); static int sub_811B634(u32); @@ -152,18 +121,961 @@ static void sub_811B9A0(void); static u8 sub_811BA1C(void); static int sub_811BF20(void); static u16 sub_811BF40(void); -u8 sub_811CE94(void); -u8 *CopyEasyChatWordPadded(u8 *, u16, u16); - -extern const struct { +static bool8 sub_811CE94(void); +static void sub_811CF64(void); +static void sub_811CF04(void); +static void sub_811D60C(void); +static void sub_811D424(u16 *); +static void sub_811D230(void); +static void sub_811E948(void); +static void sub_811CFCC(void); +static void sub_811D0BC(void); +static void sub_811D2C8(void); +static void sub_811D684(void); +static void sub_811DE90(void); +static void sub_811DEC4(void); +static void sub_811DF28(struct Sprite *); +static void sub_811DE5C(u8, u8, u8, u8); +static void sub_811E5D4(void); +static void sub_811E720(void); +static void sub_811E828(void); +static bool8 sub_811C2D4(void); +static bool8 sub_811C30C(void); +static bool8 sub_811C3E4(void); +static bool8 sub_811C48C(void); +static bool8 sub_811C404(void); +static bool8 sub_811C448(void); +static bool8 sub_811C4D0(void); +static bool8 sub_811C518(void); +static bool8 sub_811C554(void); +static bool8 sub_811C620(void); +static bool8 sub_811C830(void); +static bool8 sub_811C8F0(void); +static bool8 sub_811C99C(void); +static bool8 sub_811CA5C(void); +static bool8 sub_811C780(void); +static bool8 sub_811C78C(void); +static bool8 sub_811C7D4(void); +static bool8 sub_811CB18(void); +static bool8 sub_811CB98(void); +static bool8 sub_811CB24(void); +static bool8 sub_811CC90(void); +static bool8 sub_811CC08(void); +static bool8 sub_811C6C0(void); +static bool8 sub_811CD14(void); +static bool8 sub_811CD54(void); +static bool8 sub_811CD94(void); +static bool8 sub_811CDD4(void); +static bool8 sub_811CE14(void); +static bool8 sub_811CE54(void); +static void sub_811DF60(u8, u8); +static int sub_811E920(int); +static void sub_811DF90(void); +static void sub_811D104(u8); +static void sub_811D214(u8); +static void sub_811DFB0(void); +static void sub_811D6D4(void); +static void sub_811D9CC(int); +static void sub_811E3AC(void); +static bool8 sub_811E418(void); +static void sub_811DFC8(void); +static void sub_811E6E0(int); +static bool8 sub_811DAA4(void); +static void sub_811E64C(void); +static void sub_811E050(void); +static void sub_811E4AC(void); +static void sub_811E6B0(void); +static void sub_811E55C(void); +static bool8 sub_811E4D0(void); +static bool8 sub_811E5B8(void); +static void sub_811E578(void); +static void sub_811E088(void); +static void sub_811DDAC(s16, u8); +static bool8 sub_811DE10(void); +static void sub_811D9B4(void); +static void sub_811D698(u32); +static void sub_811E288(void); +static void sub_811E794(void); +static void sub_811E380(void); +static void sub_811E7F8(void); +static void sub_811E30C(void); +static void sub_811D7A4(void); +static void sub_811D7C8(void); +static int sub_811DE48(void); +static void sub_811D7EC(void); +static void sub_811D830(void); +static void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); +static void sub_811DD84(void); +static void sub_811D6F4(void); +static void sub_811D758(void); +static void sub_811D794(void); +static const u8 *GetEasyChatWordGroupName(u8); +static void sub_811D864(u8, u8); +static void sub_811D950(u8, u8); +static void sub_811DADC(u8); +static void sub_811DC28(int, int, int, int); +static void sub_811E0EC(s8, s8); +static void sub_811E1A4(s8, s8); +static void sub_811E2DC(struct Sprite *); +static void sub_811E34C(u8, u8); +static bool8 sub_811F0F8(void); +static u16 sub_811F108(void); +static void sub_811F2D4(void); +static void sub_811F46C(void); +static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); +static u8 sub_811F860(u16); +static u16 sub_811F5C4(u16); +static u16 sub_811F6B8(u16); +static bool8 sub_811F764(u16, u8); +static int sub_811F838(u16); +static void sub_811A8CC(void); +static void sub_811A8F0(void); +static void sub_811A914(void); +static void sub_811A938(void); + +struct Unk8597530 +{ u16 word; MainCallback callback; -} gUnknown_08597530[4]; +}; + +static const struct Unk8597530 sUnknown_08597530[] = { + { + .word = 26, + .callback = sub_811A8CC, + }, + { + .word = 25, + .callback = sub_811A8F0, + }, + { + .word = 28, + .callback = sub_811A914, + }, + { + .word = 27, + .callback = sub_811A938, + }, +}; +static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { + { + .unk_00 = 0, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 0, + .unk_03_7 = 0, + .titleText = gText_Profile, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndMakeYourProfile, + .confirmText1 = gText_YourProfile, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 1, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_AtTheBattlesStart, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_YourFeelingAtTheBattlesStart, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 2, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_UponWinningABattle, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_WhatYouSayIfYouWin, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 3, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_UponLosingABattle, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_WhatYouSayIfYouLose, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 4, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 2, + .unk_03_7 = 0, + .titleText = NULL, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage2, + .confirmText1 = gText_TheMailMessage, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 5, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 5, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_LetsReplyToTheInterview, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 6, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheBardsSong2, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 7, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 9, + .numColumns = 2, + .numRows = 1, + .unk_03_0 = 3, + .unk_03_7 = 0, + .titleText = gText_WhatsHipAndHappening, + .instructionsText1 = gText_CombineTwoWordsOrPhrases, + .instructionsText2 = gText_AndMakeATrendySaying, + .confirmText1 = gText_TheTrendySaying, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 16, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 7, + .unk_03_7 = 1, + .titleText = NULL, + .instructionsText1 = gText_AfterYouHaveReadTheQuiz, + .instructionsText2 = gText_QuestionPressTheAButton, + .confirmText1 = NULL, + .confirmText2 = NULL, + }, + { + .unk_00 = 15, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 6, + .unk_03_7 = 1, + .titleText = gText_TheQuizAnswerIs, + .instructionsText1 = gText_OutOfTheListedChoices, + .instructionsText2 = gText_SelectTheAnswerToTheQuiz, + .confirmText1 = gText_TheAnswerColon, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 17, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 8, + .unk_03_7 = 1, + .titleText = NULL, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndCreateAQuiz, + .confirmText1 = gText_IsThisQuizOK, + .confirmText2 = NULL, + }, + { + .unk_00 = 18, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 6, + .unk_03_7 = 1, + .titleText = gText_TheQuizAnswerIs, + .instructionsText1 = gText_PickAWordOrPhraseAnd, + .instructionsText2 = gText_SetTheQuizAnswer, + .confirmText1 = gText_IsThisQuizOK, + .confirmText2 = NULL, + }, + { + .unk_00 = 6, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheBardsSong2, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 19, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_ApprenticesPhrase, + .instructionsText1 = gText_FindWordsWhichFit, + .instructionsText2 = gText_TheTrainersImage, + .confirmText1 = gText_ApprenticePhrase, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 13, + .numColumns = 2, + .numRows = 1, + .unk_03_0 = 3, + .unk_03_7 = 0, + .titleText = gText_GoodSaying, + .instructionsText1 = gText_CombineTwoWordsOrPhrases2, + .instructionsText2 = gText_ToTeachHerAGoodSaying, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 10, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 12, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 11, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 14, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_FansQuestion, + .instructionsText1 = gText_FindWordsWhichFit, + .instructionsText2 = gText_TheTrainersImage, + .confirmText1 = gText_TheImage, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 20, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 0, + .unk_03_7 = 0, + .titleText = gText_Questionnaire, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndFillOutTheQuestionnaire, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, +}; + +static const u8 sUnknown_08597748[][7] = { + { 1, 2, 3, 4, 5, 6, 0}, + { 7, 8, 9, 10, 11, 12, 0}, + {13, 14, 15, 16, 17, 18, 19}, + {20, 21, 22, 23, 24, 25, 26}, +}; + +static const u16 sMysteryGiftPhrase[] = { + EC_WORD_LINK, + EC_WORD_TOGETHER, + EC_WORD_WITH, + EC_WORD_ALL, +}; + +static const u16 sBerryMasterWifePhrases[][2] = { + {EC_WORD_GREAT, EC_WORD_BATTLE}, + {EC_WORD_CHALLENGE, EC_WORD_CONTEST}, + {EC_WORD_OVERWHELMING, EC_POKEMON(LATIAS)}, + {EC_WORD_COOL, EC_POKEMON(LATIOS)}, + {EC_WORD_SUPER, EC_WORD_HUSTLE}, +}; + +static const u16 sUnknown_08597780[] = INCBIN_U16("graphics/misc/interview_triangle_cursor.gbapal"); +static const u32 sUnknown_085977A0[] = INCBIN_U32("graphics/misc/interview_triangle_cursor.4bpp"); +static const u32 sUnknown_085977C0[] = INCBIN_U32("graphics/misc/interview_arrow.4bpp"); +static const u32 sUnknown_085978C0[] = INCBIN_U32("graphics/misc/interview_buttons.4bpp"); +static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); +static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); +static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); +static const u16 sUnknown_08597B34[] = INCBIN_U16("graphics/misc/interview_frame_green.gbapal"); +static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame_2.4bpp.lz"); +static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); +static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); + +static const struct Unk08597C30 gUnknown_08597C30[] = { + { + .unk0_0 = 3, + .unk0_5 = 4, + .unk1 = 24, + .unk2 = 4, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 3, + .unk1 = 24, + .unk2 = 6, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 0, + .unk1 = 24, + .unk2 = 10, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 5, + .unk1 = 24, + .unk2 = 2, + .unk3 = 0, + }, + { + .unk0_0 = 16, + .unk0_5 = 5, + .unk1 = 12, + .unk2 = 2, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 4, + .unk1 = 24, + .unk2 = 4, + .unk3 = 0, + }, + { + .unk0_0 = 9, + .unk0_5 = 4, + .unk1 = 12, + .unk2 = 2, + .unk3 = 1, + }, + { + .unk0_0 = 5, + .unk0_5 = 3, + .unk1 = 0x14, + .unk2 = 10, + .unk3 = 3, + }, + { + .unk0_0 = 3, + .unk0_5 = 0, + .unk1 = 24, + .unk2 = 10, + .unk3 = 2, + }, +}; + +static const struct BgTemplate sEasyChatBgTemplates[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x80, + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0, + }, +}; + +static const struct WindowTemplate sEasyChatWindowTemplates[] = { + { + .bg = 1, + .tilemapLeft = 6, + .tilemapTop = 0, + .width = 18, + .height = 2, + .paletteNum = 10, + .baseBlock = 0x10, + }, + { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 24, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xA, + }, + { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 32, + .paletteNum = 3, + .baseBlock = 0, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x6A, +}; + +static const u8 sText_Clear17[] = _("{CLEAR 17}"); + +static const u8 *const sUnknown_08597C90[] = { + gUnknown_862B810, + gUnknown_862B832, + gUnknown_862B84B, + gUnknown_862B86C, +}; + +static const struct SpriteSheet sUnknown_08597CA0[] = { + { + .data = sUnknown_085977A0, + .size = 0x0020, + .tag = 0 + }, + { + .data = sUnknown_085977C0, + .size = 0x0100, + .tag = 2 + }, + { + .data = sUnknown_085978C0, + .size = 0x0100, + .tag = 3 + }, + {0} +}; + +static const struct SpritePalette sUnknown_08597CC0[] = { + { + .data = sUnknown_08597780, + .tag = 0, + }, + { + .data = gEasyChatCursor_Pal, + .tag = 1, + }, + { + .data = gEasyChatRightWindow_Pal, + .tag = 2, + }, + { + .data = sUnknown_085979C0, + .tag = 3, + }, + {0} +}; -extern const struct EasyChatScreenTemplate gEasyChatScreenTemplates[21]; -extern const u8 gUnknown_08597748[][7]; -extern const u16 gUnknown_08597764[]; -extern const u16 gUnknown_0859776C[][2]; +static const struct CompressedSpriteSheet sUnknown_08597CE8[] = { + { + .data = sUnknown_085979E0, + .size = 0x0800, + .tag = 5, + }, + { + .data = gEasyChatCursor_Gfx, + .size = 0x1000, + .tag = 1, + }, + { + .data = gEasyChatRightWindow_Gfx, + .size = 0x0800, + .tag = 6, + }, + { + .data = gEasyChatMode_Gfx, + .size = 0x1000, + .tag = 4, + }, +}; + +static const u8 sUnknown_08597D08[] = {0, 12, 24, 56, 68, 80, 92}; + +static const struct OamData sOamData_8597D10 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_08597D18 = { + .tileTag = 0, + .paletteTag = 0, + .oam = &sOamData_8597D10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811DF28, +}; + +static const struct OamData sUnknown_08597D30 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597D38[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D40[] = { + ANIMCMD_FRAME(32, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D48[] = { + ANIMCMD_FRAME(64, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D50[] = { + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597D58[] = { + sUnknown_08597D38, + sUnknown_08597D40, + sUnknown_08597D48, + sUnknown_08597D50, +}; + +static const struct SpriteTemplate sUnknown_08597D68 = { + .tileTag = 1, + .paletteTag = 1, + .oam = &sUnknown_08597D30, + .anims = sUnknown_08597D58, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811DF28, +}; + +static const struct OamData sUnknown_08597D80 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597D88[] = { + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D90[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D9C[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597DA8[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597DB4[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597DBC[] = { + sUnknown_08597D88, + sUnknown_08597D90, + sUnknown_08597D9C, + sUnknown_08597DA8, + sUnknown_08597DB4, +}; + +static const struct SpriteTemplate sUnknown_08597DD0 = { + .tileTag = 4, + .paletteTag = 2, + .oam = &sUnknown_08597D80, + .anims = sUnknown_08597DBC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct OamData sUnknown_08597DE8 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_08597DF0 = { + .tileTag = 6, + .paletteTag = 2, + .oam = &sUnknown_08597DE8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct OamData sUnknown_08597E08 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08597E10 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597E18[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597E20[] = { + ANIMCMD_FRAME(4, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597E28[] = { + sUnknown_08597E18, + sUnknown_08597E20, +}; + +static const struct SpriteTemplate sUnknown_08597E30 = { + .tileTag = 3, + .paletteTag = 2, + .oam = &sUnknown_08597E08, + .anims = sUnknown_08597E28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct SpriteTemplate sUnknown_08597E48 = { + .tileTag = 2, + .paletteTag = 2, + .oam = &gUnknown_08597E10, + .anims = sUnknown_08597E28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const u8 sUnknown_08597E60[][4] = { + {16, 111, 196, 0}, + {16, 78, 130, 160}, + {16, 80, 134, 170}, +}; + +static const u8 *const sFooterTextOptions[][4] = { + {gText_DelAll, gText_Cancel5, gText_Ok2, NULL}, + {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Quiz}, + {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Answer}, +}; + +#include "data/easy_chat/easy_chat_groups.h" +#include "data/easy_chat/easy_chat_words_by_letter.h" + +const u8 *const gEasyChatGroupNamePointers[] = { + [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 sUnknown_0859E62C[] = { + EC_WORD_I_AM, + EC_WORD_A, + EC_WORD_POKEMON, + EC_WORD_FRIEND, +}; + +static const u16 sUnknown_0859E634[] = { + EC_WORD_ARE, + EC_WORD_YOU, + EC_WORD_READY, + EC_WORD_QUES, + EC_WORD_HERE_I_COME, + EC_WORD_EXCL, +}; + +static const u16 sUnknown_0859E640[] = { + EC_WORD_YAY, + EC_WORD_YAY, + EC_WORD_EXCL_EXCL, + EC_WORD_I_VE, + EC_WORD_WON, + EC_WORD_EXCL_EXCL, +}; + +static const u16 sUnknown_0859E64C[] = { + EC_WORD_TOO, + EC_WORD_BAD, + EC_WORD_ELLIPSIS, + EC_WORD_WE, + EC_WORD_LOST, + EC_WORD_ELLIPSIS, +}; + +static const u16 sUnknown_0859E658[] = { + SPECIES_DEOXYS, +}; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -455,9 +1367,9 @@ static int sub_811A868(u16 word) { int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_08597530); i ++) + for (i = 0; i < ARRAY_COUNT(sUnknown_08597530); i ++) { - if (word == gUnknown_08597530[i].word) + if (word == sUnknown_08597530[i].word) return i; } return -1; @@ -474,25 +1386,25 @@ static void sub_811A8A4(u16 word) i = sub_811A868(word); ResetTasks(); - sub_811A4D0(gUnknown_08597530[i].callback); + sub_811A4D0(sUnknown_08597530[i].callback); } -void sub_811A8CC(void) +static void sub_811A8CC(void) { sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A8F0(void) +static void sub_811A8F0(void) { sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A914(void) +static void sub_811A914(void) { sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A938(void) +static void sub_811A938(void) { sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } @@ -598,47 +1510,51 @@ bool32 sub_811AB44(void) return FALSE; } -#ifdef NONMATCHING static u16 sub_811AB68(void) { - if (gMain.newKeys & A_BUTTON) - { - sub_811BF78(); - gEasyChatScreen->state = 2; - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; - return 9; - } - else if (gMain.newKeys & B_BUTTON) - { - return sub_811B150(); - } - else if (gMain.newKeys & START_BUTTON) - { - return sub_811B1B4(); - } - else if (gMain.newKeys & DPAD_UP) - { - gEasyChatScreen->mainCursorRow--; - } - else if (gMain.newKeys & DPAD_LEFT) - { - gEasyChatScreen->mainCursorColumn--; - } - else if (gMain.newKeys & DPAD_DOWN) - { - gEasyChatScreen->mainCursorRow++; - } - else if (gMain.newKeys & DPAD_RIGHT) - { - gEasyChatScreen->mainCursorColumn++; - } - else + do { + if (gMain.newKeys & A_BUTTON) + { + sub_811BF78(); + gEasyChatScreen->state = 2; + gEasyChatScreen->unk_0a = 0; + gEasyChatScreen->unk_0b = 0; + gEasyChatScreen->unk_0c = 0; + return 9; + } + else if (gMain.newKeys & B_BUTTON) + { + return sub_811B150(); + } + else if (gMain.newKeys & START_BUTTON) + { + return sub_811B1B4(); + } + else if (gMain.newKeys & DPAD_UP) + { + gEasyChatScreen->mainCursorRow--; + break; + } + else if (gMain.newKeys & DPAD_LEFT) + { + gEasyChatScreen->mainCursorColumn--; + break; + } + else if (gMain.newKeys & DPAD_DOWN) + { + gEasyChatScreen->mainCursorRow++; + break; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gEasyChatScreen->mainCursorColumn++; + break; + } + return 0; - } - + } while (0); + if (gEasyChatScreen->mainCursorRow < 0) gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; @@ -665,238 +1581,61 @@ static u16 sub_811AB68(void) return 2; } -#else -NAKED -static u16 sub_811AB68(void) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811ABB8\n\ - bl sub_811BF78\n\ - ldr r1, =gEasyChatScreen\n\ - ldr r3, [r1]\n\ - movs r2, 0\n\ - movs r0, 0x2\n\ - strb r0, [r3, 0x4]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xA]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xB]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xC]\n\ - movs r0, 0x9\n\ - b RETURN\n\ - .pool\n\ -_0811AB9C:\n\ - movs r0, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC68_dpad_left\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC58_dpad_down\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC48_dpad_right\n\ - movs r0, 0\n\ - b RETURN\n\ -_0811ABB8:\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC78_b_button\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC7E_start_button\n\ - movs r0, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811AB9C\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - subs r0, 0x1\n\ -_0811ABD8:\n\ - strb r0, [r1, 0x6]\n\ -_0811ABDA:\n\ - adds r7, r2, 0\n\ - adds r4, r7, 0\n\ - ldr r2, [r4]\n\ - movs r0, 0x6\n\ - ldrsb r0, [r2, r0]\n\ - ldr r6, =gEasyChatScreenTemplates\n\ - cmp r0, 0\n\ - bge _0811ABF8\n\ - ldrb r0, [r2, 0x1]\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r6\n\ - ldrb r0, [r1, 0x2]\n\ - strb r0, [r2, 0x6]\n\ -_0811ABF8:\n\ - ldr r3, [r4]\n\ - movs r2, 0x6\n\ - ldrsb r2, [r3, r2]\n\ - adds r5, r6, 0\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r5\n\ - ldrb r0, [r0, 0x2]\n\ - cmp r2, r0\n\ - ble _0811AC14\n\ - movs r0, 0\n\ - strb r0, [r3, 0x6]\n\ -_0811AC14:\n\ - ldr r3, [r4]\n\ - movs r2, 0x6\n\ - ldrsb r2, [r3, r2]\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r0, r5\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r2, r0\n\ - bne _0811AC88\n\ - movs r0, 0x5\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0x2\n\ - ble _0811AC36\n\ - movs r0, 0x2\n\ - strb r0, [r3, 0x5]\n\ -_0811AC36:\n\ - ldr r1, [r4]\n\ - movs r0, 0x1\n\ - strb r0, [r1, 0x4]\n\ - movs r0, 0x3\n\ - b RETURN\n\ - .pool\n\ -_0811AC48_dpad_right:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811ABDA\n\ - .pool\n\ -_0811AC58_dpad_down:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - adds r0, 0x1\n\ - b _0811ABD8\n\ - .pool\n\ -_0811AC68_dpad_left:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811ABDA\n\ - .pool\n\ -_0811AC78_b_button:\n\ - bl sub_811B150\n\ - b _0811AC82\n\ -_0811AC7E_start_button:\n\ - bl sub_811B1B4\n\ -_0811AC82:\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - b RETURN\n\ -_0811AC88:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0\n\ - bge _0811AC96\n\ - ldrb r0, [r1, 0x1]\n\ - subs r0, 0x1\n\ - strb r0, [r3, 0x5]\n\ -_0811AC96:\n\ - ldr r3, [r4]\n\ - movs r2, 0x5\n\ - ldrsb r2, [r3, r2]\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r2, r0\n\ - blt _0811ACB0\n\ - movs r0, 0\n\ - strb r0, [r3, 0x5]\n\ -_0811ACB0:\n\ - bl sub_811AB44\n\ - cmp r0, 0\n\ - beq _0811ACCA\n\ - ldr r2, [r7]\n\ - ldr r0, [r2, 0x4]\n\ - ldr r1, =0x00ffff00\n\ - ands r0, r1\n\ - ldr r1, =0x00040100\n\ - cmp r0, r1\n\ - bne _0811ACCA\n\ - movs r0, 0\n\ - strb r0, [r2, 0x5]\n\ -_0811ACCA:\n\ - movs r0, 0x2\n\ -RETURN:\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING - -#ifdef NONMATCHING + static u16 sub_811ACDC(void) { - int numFooterColumns; - - if (gMain.newKeys & A_BUTTON) + do { - switch (gEasyChatScreen->mainCursorColumn) + if (gMain.newKeys & A_BUTTON) + { + switch (gEasyChatScreen->mainCursorColumn) + { + case 0: + return sub_811B184(); + case 1: + return sub_811B150(); + case 2: + return sub_811B1B4(); + case 3: + return sub_811B264(); + } + } + + if (gMain.newKeys & B_BUTTON) { - case 0: - return sub_811B184(); - case 1: return sub_811B150(); - case 2: + } + else if (gMain.newKeys & START_BUTTON) + { return sub_811B1B4(); - case 3: - return sub_811B264(); } - } + else if (gMain.newKeys & DPAD_UP) + { + gEasyChatScreen->mainCursorRow--; + break; + } + else if (gMain.newKeys & DPAD_LEFT) + { + gEasyChatScreen->mainCursorColumn--; + break; + } + else if (gMain.newKeys & DPAD_DOWN) + { + gEasyChatScreen->mainCursorRow = 0; + break; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gEasyChatScreen->mainCursorColumn++; + break; + } - if (gMain.newKeys & B_BUTTON) - return sub_811B150(); - else if (gMain.newKeys & START_BUTTON) - return sub_811B1B4(); - else if (gMain.newKeys & DPAD_UP) - gEasyChatScreen->mainCursorRow--; - else if (gMain.newKeys & DPAD_LEFT) - gEasyChatScreen->mainCursorColumn--; - else if (gMain.newKeys & DPAD_DOWN) - gEasyChatScreen->mainCursorRow = 0; - else if (gMain.newKeys & DPAD_RIGHT) - gEasyChatScreen->mainCursorColumn++; - else return 0; + } while (0); if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) { - numFooterColumns = sub_811BA3C() ? 4 : 3; + int numFooterColumns = sub_811BA3C() ? 4 : 3; if (gEasyChatScreen->mainCursorColumn < 0) gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; @@ -908,198 +1647,13 @@ static u16 sub_811ACDC(void) if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; - + if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) gEasyChatScreen->mainCursorColumn = 0; gEasyChatScreen->state = 0; return 2; } -#else -NAKED -static u16 sub_811ACDC(void) -{ - asm_unified("\n\ - push {r4-r6,lr}\n\ - ldr r2, =gMain\n\ - ldrh r1, [r2, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811AD4A\n\ - ldr r0, =gEasyChatScreen\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0x5]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _0811AD3E\n\ - b _0811AD24\n\ - .pool\n\ -_0811AD04:\n\ - movs r0, 0x20\n\ - ands r0, r2\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0\n\ - bne _0811ADE0\n\ - movs r0, 0x80\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADD0\n\ - movs r0, 0x10\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADC0\n\ - movs r0, 0\n\ - b _0811AE32\n\ -_0811AD24:\n\ - cmp r0, 0x1\n\ - bgt _0811AD2E\n\ - cmp r0, 0\n\ - beq _0811AD38\n\ - b _0811AD4A\n\ -_0811AD2E:\n\ - cmp r0, 0x2\n\ - beq _0811ADF6\n\ - cmp r0, 0x3\n\ - beq _0811AD44\n\ - b _0811AD4A\n\ -_0811AD38:\n\ - bl sub_811B184\n\ - b _0811ADFA\n\ -_0811AD3E:\n\ - bl sub_811B150\n\ - b _0811ADFA\n\ -_0811AD44:\n\ - bl sub_811B264\n\ - b _0811ADFA\n\ -_0811AD4A:\n\ - ldrh r2, [r2, 0x2E]\n\ - movs r0, 0x2\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADF0\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADF6\n\ - movs r0, 0x40\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0811AD04\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x6]\n\ -_0811AD6E:\n\ - adds r6, r2, 0\n\ -_0811AD70:\n\ - adds r5, r6, 0\n\ - ldr r4, [r5]\n\ - movs r3, 0x6\n\ - ldrsb r3, [r4, r3]\n\ - ldr r2, =gEasyChatScreenTemplates\n\ - ldrb r1, [r4, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r0, r2\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r3, r0\n\ - bne _0811AE00\n\ - bl sub_811BA3C\n\ - movs r2, 0x3\n\ - cmp r0, 0\n\ - beq _0811AD96\n\ - movs r2, 0x4\n\ -_0811AD96:\n\ - ldr r1, [r5]\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0\n\ - bge _0811ADA4\n\ - subs r0, r2, 0x1\n\ - strb r0, [r1, 0x5]\n\ -_0811ADA4:\n\ - ldr r1, [r5]\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, r2\n\ - blt _0811ADB2\n\ - movs r0, 0\n\ - strb r0, [r1, 0x5]\n\ -_0811ADB2:\n\ - movs r0, 0x3\n\ - b _0811AE32\n\ - .pool\n\ -_0811ADC0:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811AD6E\n\ - .pool\n\ -_0811ADD0:\n\ - ldr r1, =gEasyChatScreen\n\ - ldr r0, [r1]\n\ - strb r3, [r0, 0x6]\n\ - adds r6, r1, 0\n\ - b _0811AD70\n\ - .pool\n\ -_0811ADE0:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811AD6E\n\ - .pool\n\ -_0811ADF0:\n\ - bl sub_811B150\n\ - b _0811ADFA\n\ -_0811ADF6:\n\ - bl sub_811B1B4\n\ -_0811ADFA:\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - b _0811AE32\n\ -_0811AE00:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r4, r0]\n\ - ldrb r1, [r1, 0x1]\n\ - cmp r0, r1\n\ - blt _0811AE0E\n\ - subs r0, r1, 0x1\n\ - strb r0, [r4, 0x5]\n\ -_0811AE0E:\n\ - bl sub_811AB44\n\ - cmp r0, 0\n\ - beq _0811AE28\n\ - ldr r2, [r6]\n\ - ldr r0, [r2, 0x4]\n\ - ldr r1, =0x00ffff00\n\ - ands r0, r1\n\ - ldr r1, =0x00040100\n\ - cmp r0, r1\n\ - bne _0811AE28\n\ - movs r0, 0\n\ - strb r0, [r2, 0x5]\n\ -_0811AE28:\n\ - ldr r0, =gEasyChatScreen\n\ - ldr r1, [r0]\n\ - movs r0, 0\n\ - strb r0, [r1, 0x4]\n\ - movs r0, 0x2\n\ -_0811AE32:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING static u16 sub_811AE44(void) { @@ -1292,7 +1846,7 @@ static u16 sub_811B150(void) } } -int sub_811B184(void) +static int sub_811B184(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; if (gEasyChatScreen->kind != 6) @@ -1308,7 +1862,7 @@ int sub_811B184(void) } } -u16 sub_811B1B4(void) +static u16 sub_811B1B4(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; if (gEasyChatScreen->kind == 17) @@ -1385,7 +1939,7 @@ u16 sub_811B1B4(void) } } -int sub_811B264(void) +static int sub_811B264(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; switch (gEasyChatScreen->kind) @@ -1414,8 +1968,8 @@ static int sub_811B2B0(void) if (gEasyChatScreen->unk_09 == 0) { - u8 var0 = sub_811F3B8(sub_811B8E8()); - sub_811F548(0, var0); + u8 groupId = sub_811F3B8(sub_811B8E8()); + sub_811F548(0, groupId); } else { @@ -1425,7 +1979,7 @@ static int sub_811B2B0(void) var1 = sub_811F5B0(); if (var1 == 0) return 0; - + gEasyChatScreen->unk_0f = (var1 - 1) / 2; gEasyChatScreen->unk_0e = 0; gEasyChatScreen->unk_10 = 0; @@ -1792,7 +2346,7 @@ static u16 sub_811B794(u32 arg0) gEasyChatScreen->unk_0e += 4; if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; - + sub_811B9A0(); return 22; } @@ -1816,10 +2370,10 @@ static int sub_811B908(void) { int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; - return gUnknown_08597748[var1][var0]; + return sUnknown_08597748[var1][var0]; } -u16 sub_811B940(void) +static u16 sub_811B940(void) { return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; } @@ -1871,7 +2425,7 @@ static u8 sub_811BA1C(void) return sub_811B940() >= sub_811F5B0() ? 1 : 0; } -int sub_811BA3C(void) +static int sub_811BA3C(void) { return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; } @@ -1881,7 +2435,7 @@ u8 sub_811BA5C(void) return gEasyChatScreen->kind; } -u8 sub_811BA68(void) +static u8 sub_811BA68(void) { return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; } @@ -1916,19 +2470,19 @@ u8 sub_811BAC4(void) return gEasyChatScreen->mainCursorRow; } -void sub_811BAD0(const u8 **str1, const u8 **str2) +static void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2) { *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText1; *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText2; } -void sub_811BB08(const u8 **str1, const u8 **str2) +static void GetEasyChatConfirmText(const u8 **str1, const u8 **str2) { *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText1; *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText2; } -void sub_811BB40(const u8 **str1, const u8 **str2) +static void sub_811BB40(const u8 **str1, const u8 **str2) { switch (gEasyChatScreen->kind) { @@ -1949,7 +2503,7 @@ void sub_811BB40(const u8 **str1, const u8 **str2) } -void sub_811BB88(const u8 **str1, const u8 **str2) +static void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) { *str1 = gText_AllTextBeingEditedWill; *str2 = gText_BeDeletedThatOkay; @@ -2026,7 +2580,7 @@ int sub_811BC2C(void) return 0; } -int sub_811BC70(void) +static int sub_811BC70(void) { return sub_811BA3C(); } @@ -2062,7 +2616,7 @@ static u8 sub_811BCC8(u8 entryType) return 0; } -int sub_811BCF4(void) +static int sub_811BCF4(void) { int i; @@ -2095,7 +2649,7 @@ static int sub_811BD64(void) if (gEasyChatScreen->kind == 17) return sub_811BCF4(); - + saveBlock1 = gSaveBlock1Ptr; for (i = 0; i < 9; i++) { @@ -2181,7 +2735,7 @@ static void sub_811BE9C(void) static int sub_811BF20(void) { - return sub_811BC7C(gUnknown_08597764, 4) == 0; + return sub_811BC7C(sMysteryGiftPhrase, ARRAY_COUNT(sMysteryGiftPhrase)) == 0; } static u16 sub_811BF40(void) @@ -2189,19 +2743,19 @@ static u16 sub_811BF40(void) int i; for (i = 0; i < 5; i++) { - if (!sub_811BC7C(gUnknown_0859776C[i], 2)) + if (!sub_811BC7C(sBerryMasterWifePhrases[i], ARRAY_COUNT(*sBerryMasterWifePhrases))) return i + 1; } return 0; } -void sub_811BF78(void) +static void sub_811BF78(void) { gEasyChatScreen->unk_13 = 0; } -int sub_811BF88(int easyChatWord) +static int sub_811BF88(int easyChatWord) { return 0; } @@ -2209,7 +2763,2778 @@ int sub_811BF88(int easyChatWord) static bool8 sub_811BF8C(void) { if (!sub_811CE94()) - return 0; + return 0; + else + return 1; +} + +static bool8 sub_811BFA4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); + SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); + SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); + InitWindows(sEasyChatWindowTemplates); + DeactivateAllTextPrinters(); + sub_811CF64(); + sub_811CF04(); + CpuFastFill(0, (void *)VRAM + 0x1000000, 0x400); + break; + case 1: + DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); + CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); + sub_811D60C(); + sub_811D424(gUnknown_0203A11C->unk300); + sub_811D230(); + sub_811E948(); + CopyBgTilemapBufferToVram(3); + break; + case 2: + DecompressAndLoadBgGfxUsingHeap(1, sUnknown_08597B54, 0, 0, 0); + CopyBgTilemapBufferToVram(1); + break; + case 3: + sub_811CFCC(); + sub_811D0BC(); + sub_811D2C8(); + sub_811D684(); + break; + case 4: + sub_811DE90(); + if (sub_811BA5C() != 16) + sub_811DEC4(); + break; + case 5: + if (IsDma3ManagerBusyWithBgCopy()) + { + return TRUE; + } + else + { + sub_811DE5C(0, 0, 0, 0); + SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0, 63)); + SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 59)); + ShowBg(3); + ShowBg(1); + ShowBg(2); + ShowBg(0); + sub_811E5D4(); + sub_811E720(); + sub_811E828(); + } + break; + default: + return FALSE; + } + + gUnknown_0203A11C->unk0++; + return TRUE; +} + +static void sub_811C13C(void) +{ + if (gUnknown_0203A11C) + FREE_AND_SET_NULL(gUnknown_0203A11C); +} + +static void sub_811C158(u16 arg0) +{ + gUnknown_0203A11C->unk4 = arg0; + gUnknown_0203A11C->unk0 = 0; + sub_811C170(); +} + +static bool8 sub_811C170(void) +{ + switch (gUnknown_0203A11C->unk4) + { + case 0: return FALSE; + case 1: return sub_811C2D4(); + case 2: return sub_811C30C(); + case 3: return sub_811C3E4(); + case 4: return sub_811C48C(); + case 5: return sub_811C404(); + case 6: return sub_811C448(); + case 7: return sub_811C4D0(); + case 8: return sub_811C518(); + case 9: return sub_811C554(); + case 10: return sub_811C620(); + case 11: return sub_811C830(); + case 12: return sub_811C8F0(); + case 13: return sub_811C99C(); + case 14: return sub_811CA5C(); + case 15: return sub_811C780(); + case 16: return sub_811C78C(); + case 17: return sub_811C7D4(); + case 18: return sub_811CB18(); + case 19: return sub_811CB98(); + case 20: return sub_811CB24(); + case 21: return sub_811CC90(); + case 22: return sub_811CC08(); + case 23: return sub_811C6C0(); + case 24: return FALSE; + case 25: return FALSE; + case 26: return FALSE; + case 27: return FALSE; + case 28: return FALSE; + case 29: return sub_811CD14(); + case 30: return sub_811CD54(); + case 31: return sub_811CD94(); + case 32: return sub_811CDD4(); + case 33: return sub_811CE14(); + case 34: return sub_811CE54(); + default: return FALSE; + } +} + +static bool8 sub_811C2D4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C30C(void) +{ + u8 i; + u16 *ecWordBuffer; + u16 *ecWord; + u8 var0; + u8 cursorColumn, cursorRow, numColumns; + s16 var1; + int stringWidth; + int trueStringWidth; + u8 var2; + u8 sp0[64]; + + ecWordBuffer = sub_811BA94(); + var0 = sub_811BA68(); + cursorColumn = sub_811BAB8(); + cursorRow = sub_811BAC4(); + numColumns = sub_811BAAC(); + ecWord = &ecWordBuffer[cursorRow * numColumns]; + var1 = 8 * gUnknown_08597C30[var0].unk0_0 + 13; + for (i = 0; i < cursorColumn; i++) + { + if (*ecWord == 0xFFFF) + { + stringWidth = 72; + } + else + { + CopyEasyChatWord(sp0, *ecWord); + stringWidth = GetStringWidth(1, sp0, 0); + } + + trueStringWidth = stringWidth + 17; + var1 += trueStringWidth; + ecWord++; + } + + var2 = 8 * (gUnknown_08597C30[var0].unk0_5 + cursorRow * 2); + sub_811DF60(var1, var2 + 8); + return FALSE; +} + +static bool8 sub_811C3E4(void) +{ + u8 var0 = sub_811E920(sub_811BAB8()); + sub_811DF60(var0, 96); + return FALSE; +} + +static bool8 sub_811C404(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(2); + sub_811D214(1); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C448(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(3); + sub_811D214(0); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C48C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(1); + sub_811D214(1); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C4D0(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DFB0(); + sub_811D104(0); + sub_811D2C8(); + ShowBg(0); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C518(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DFB0(); + sub_811D104(0); + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + // Fall through + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C554(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + HideBg(0); + sub_811DE5C(0, 0, 0, 0); + sub_811D6D4(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(0); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy() && !sub_811DAA4()) + gUnknown_0203A11C->unk0++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811E3AC(); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!sub_811E418()) + { + sub_811DFC8(); + sub_811E6E0(0); + sub_811E64C(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + default: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C620(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E050(); + sub_811E4AC(); + sub_811E6B0(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (sub_811E4D0() == TRUE) + break; + + sub_811D9CC(1); + gUnknown_0203A11C->unk0++; + // Fall through + case 2: + if (!sub_811DAA4()) + gUnknown_0203A11C->unk0++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DFB0(); + ShowBg(0); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C6C0(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E050(); + sub_811E6B0(); + sub_811E55C(); + sub_811D9CC(5); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!sub_811DAA4() && !sub_811E5B8()) + { + sub_811D6D4(); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(6); + sub_811E578(); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4() && !sub_811E5B8()) + { + sub_811E64C(); + sub_811DFC8(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 4: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C780(void) +{ + sub_811E088(); + return FALSE; +} + +static bool8 sub_811C78C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DDAC(1, 4); + gUnknown_0203A11C->unk0++; + // Fall through + case 1: + if (!sub_811DE10()) + { + sub_811E088(); + sub_811E64C(); + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 sub_811C7D4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DDAC(-1, 4); + gUnknown_0203A11C->unk0++; + // Fall through + case 1: + if (!sub_811DE10()) + { + sub_811E64C(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 2: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C830(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E050(); + sub_811E4AC(); + sub_811E6B0(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!sub_811E4D0()) + { + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(2); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4()) + { + sub_811D698(2); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811E288(); + sub_811E6E0(1); + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 5: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C8F0(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + sub_811E380(); + sub_811E6B0(); + sub_811E7F8(); + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(3); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4()) + { + ShowBg(0); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DFB0(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 5: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C99C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + sub_811E380(); + sub_811E6B0(); + sub_811E7F8(); + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(3); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4()) + { + sub_811D104(3); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + gUnknown_0203A11C->unk0++; + } + break; + case 5: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DFB0(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 6: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CA5C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E380(); + sub_811E6B0(); + sub_811E7F8(); + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(4); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DAA4()) + { + sub_811D6D4(); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811E3AC(); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!sub_811E418()) + { + sub_811DFC8(); + sub_811E6E0(0); + sub_811E64C(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 sub_811CB18(void) +{ + sub_811E30C(); + return FALSE; +} + +static bool8 sub_811CB24(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D7A4(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DDAC(1, 4); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E30C(); + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CB98(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D7C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DDAC(-1, 4); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CC08(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D7EC(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + s16 var0 = sub_811BBDC() - sub_811DE48(); + sub_811DDAC(var0, 8); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E30C(); + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CC90(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D830(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + s16 var0 = sub_811BBDC() - sub_811DE48(); + sub_811DDAC(var0, 8); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CD14(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(4); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CD54(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(5); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CD94(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(6); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CDD4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(7); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CE14(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(8); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CE54(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(9); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CE94(void) +{ + gUnknown_0203A11C = Alloc(sizeof(*gUnknown_0203A11C)); + if (!gUnknown_0203A11C) + return FALSE; + + gUnknown_0203A11C->unk0 = 0; + gUnknown_0203A11C->unk2D8 = NULL; + gUnknown_0203A11C->unk2DC = NULL; + gUnknown_0203A11C->unk2E0 = NULL; + gUnknown_0203A11C->unk2E4 = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2F0 = NULL; + gUnknown_0203A11C->unk2F4 = NULL; + gUnknown_0203A11C->unk2F8 = NULL; + gUnknown_0203A11C->unk2FC = NULL; + gUnknown_0203A11C->unkA = sub_811BC70(); + return TRUE; +} + +static void sub_811CF04(void) +{ + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); +} + +static void sub_811CF64(void) +{ + ResetPaletteFade(); + LoadPalette(gEasyChatMode_Pal, 0, 32); + LoadPalette(sUnknown_08597B14, 1 * 16, 32); + LoadPalette(sUnknown_08597B34, 4 * 16, 32); + LoadPalette(sUnknown_08597C1C, 10 * 16, 8); + LoadPalette(sUnknown_08597C24, 11 * 16, 12); + LoadPalette(sUnknown_08597C24, 15 * 16, 12); + LoadPalette(sUnknown_08597C24, 3 * 16, 12); +} + +static void sub_811CFCC(void) +{ + int xOffset; + const u8 *titleText = sub_811BA88(); + if (!titleText) + return; + + xOffset = GetStringCenterAlignXOffset(1, titleText, 144); + FillWindowPixelBuffer(0, 0); + sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, 0, 2, 3); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); +} + +void sub_811D028(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) +{ + AddTextPrinterParameterized(windowId, fontId, str, x, y, speed, callback); +} + +static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue) +{ + u8 color[3]; + color[0] = red; + color[1] = green; + color[2] = blue; + AddTextPrinterParameterized3(windowId, fontId, left, top, color, speed, str); +} + +static void sub_811D0BC(void) +{ + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); + LoadUserWindowBorderGfx(1, 1, 0xE0); + sub_8098858(1, 1, 14); + sub_811D104(0); + PutWindowTilemap(1); + CopyBgTilemapBufferToVram(0); +} + +static void sub_811D104(u8 arg0) +{ + const u8 *text2 = NULL; + const u8 *text1 = NULL; + switch (arg0) + { + case 0: + GetEasyChatInstructionsText(&text1, &text2); + break; + case 2: + sub_811BB40(&text1, &text2); + break; + case 3: + GetEasyChatConfirmText(&text1, &text2); + break; + case 1: + GetEasyChatConfirmDeletionText(&text1, &text2); + break; + case 4: + text1 = gText_CreateAQuiz; + break; + case 5: + text1 = gText_SelectTheAnswer; + break; + case 6: + text1 = gText_OnlyOnePhrase; + text2 = gText_OriginalSongWillBeUsed; + break; + case 7: + text1 = gText_LyricsCantBeDeleted; + break; + case 8: + text1 = gText_CombineTwoWordsOrPhrases3; + break; + case 9: + text1 = gText_YouCannotQuitHere; + text2 = gText_SectionMustBeCompleted; + break; + } + + FillWindowPixelBuffer(1, 0x11); + if (text1) + sub_811D028(1, 1, text1, 0, 1, 0xFF, 0); + + if (text2) + sub_811D028(1, 1, text2, 0, 17, 0xFF, 0); + + CopyWindowToVram(1, 3); +} + +static void sub_811D214(u8 initialCursorPos) +{ + CreateYesNoMenu(&sEasyChatYesNoWindowTemplate, 1, 14, initialCursorPos); +} + +static void sub_811D230(void) +{ + u8 var0; + struct WindowTemplate template; + + var0 = sub_811BA68(); + template.bg = 3; + template.tilemapLeft = gUnknown_08597C30[var0].unk0_0; + template.tilemapTop = gUnknown_08597C30[var0].unk0_5; + template.width = gUnknown_08597C30[var0].unk1; + template.height = gUnknown_08597C30[var0].unk2; + template.paletteNum = 11; + template.baseBlock = 0x6C; + gUnknown_0203A11C->windowId = AddWindow(&template); + PutWindowTilemap(gUnknown_0203A11C->windowId); +} + +static void sub_811D2C8(void) +{ + u8 spC[4]; + u16 *ecWord; + u8 numColumns, numRows; + u8 *str; + int var0; + int var1; + int i, j, k; + + ecWord = sub_811BA94(); + numColumns = sub_811BAAC(); + numRows = sub_811BAA0(); + var0 = sub_811BA68(); + var1 = 0; + if (var0 == 7) + var1 = 1; + + FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); + for (i = 0; i < numRows; i++) + { + memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); + if (var1) + spC[2] = 6; + + str = gUnknown_0203A11C->unkB; + gUnknown_0203A11C->unkB[0] = EOS; + str = StringAppend(str, spC); + for (j = 0; j < numColumns; j++) + { + if (*ecWord != 0xFFFF) + { + str = CopyEasyChatWord(str, *ecWord); + ecWord++; + } + else + { + ecWord++; + if (!var1) + { + str = WriteColorChangeControlCode(str, 0, 4); + for (k = 0; k < 12; k++) + { + *str = CHAR_HYPHEN; + str++; + } + + str = WriteColorChangeControlCode(str, 0, 2); + } + } + + if (var1) + spC[2] = 3; + + str = StringAppend(str, spC); + if (var0 == 2 || var0 == 7 || var0 == 8) + { + if (j == 0 && i == 4) + break; + } + } + + *str = EOS; + sub_811D028(gUnknown_0203A11C->windowId, 1, gUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); + } + + CopyWindowToVram(gUnknown_0203A11C->windowId, 3); +} + +static void sub_811D424(u16 *tilemap) +{ + u8 var0; + int right, bottom; + int x, y; + + var0 = sub_811BA68(); + CpuFastFill(0, tilemap, BG_SCREEN_SIZE); + if (var0 == 2 || var0 == 8) + { + right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; + bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + for (y = gUnknown_08597C30[var0].unk0_5; y < bottom; y++) + { + x = gUnknown_08597C30[var0].unk0_0 - 1; + tilemap[y * 32 + x] = 0x1005; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x1000; + + tilemap[y* 32 + x] = 0x1007; + } + } + else + { + y = gUnknown_08597C30[var0].unk0_5 - 1; + x = gUnknown_08597C30[var0].unk0_0 - 1; + right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; + bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + tilemap[y * 32 + x] = 0x1001; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x1002; + + tilemap[y * 32 + x] = 0x1003; + y++; + for (; y < bottom; y++) + { + x = gUnknown_08597C30[var0].unk0_0 - 1; + tilemap[y * 32 + x] = 0x1005; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x1000; + + tilemap[y* 32 + x] = 0x1007; + } + + x = gUnknown_08597C30[var0].unk0_0 - 1; + tilemap[y * 32 + x] = 0x1009; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x100A; + + tilemap[y * 32 + x] = 0x100B; + } +} + +static void sub_811D60C(void) +{ + u8 var0; + u16 *tilemap; + + tilemap = GetBgTilemapBuffer(3); + var0 = sub_811BA68(); + switch (gUnknown_08597C30[var0].unk3) + { + case 2: + tilemap += 0x2A0; + CopyToBgTilemapBufferRect(3, tilemap, 0, 11, 32, 2); + break; + case 1: + tilemap += 0x300; + CopyToBgTilemapBufferRect(3, tilemap, 0, 11, 32, 2); + break; + case 3: + CopyToBgTilemapBufferRect(3, tilemap, 0, 10, 32, 4); + break; + } +} + +static void sub_811D684(void) +{ + PutWindowTilemap(2); + CopyBgTilemapBufferToVram(2); +} + +static void sub_811D698(u32 arg0) +{ + sub_811DD84(); + FillWindowPixelBuffer(2, 0x11); + switch (arg0) + { + case 0: + sub_811D6F4(); + break; + case 1: + sub_811D758(); + break; + case 2: + sub_811D794(); + break; + } + + CopyWindowToVram(2, 2); +} + +static void sub_811D6D4(void) +{ + if (!sub_811BBB0()) + sub_811D698(0); + else + sub_811D698(1); +} + +static void sub_811D6F4(void) +{ + int i; + int x, y; + + i = 0; + y = 97; + while (1) + { + for (x = 0; x < 2; x++) + { + u8 groupId = sub_811F3B8(i++); + if (groupId == EC_NUM_GROUPS) + { + sub_811DDAC(sub_811BBBC(), 0); + return; + } + + sub_811D028(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, 0xFF, NULL); + } + + y += 16; + } +} + +static void sub_811D758(void) +{ + u32 i; + + for (i = 0; i < ARRAY_COUNT(sUnknown_08597C90); i++) + sub_811D028(2, 1, sUnknown_08597C90[i], 10, 97 + i * 16, 0xFF, NULL); +} + +static void sub_811D794(void) +{ + sub_811D864(0, 4); +} + +static void sub_811D7A4(void) +{ + u8 var0 = sub_811BBDC() + 3; + sub_811D950(var0, 1); + sub_811D864(var0, 1); +} + +static void sub_811D7C8(void) +{ + u8 var0 = sub_811BBDC(); + sub_811D950(var0, 1); + sub_811D864(var0, 1); +} + +static void sub_811D7EC(void) +{ + u8 var0 = sub_811BBDC(); + u8 var1 = var0 + 4; + u8 var2 = sub_811BBE8() + 1; + if (var1 > var2) + var1 = var2; + + if (var0 < var1) + { + u8 var3 = var1 - var0; + sub_811D950(var0, var3); + sub_811D864(var0, var3); + } +} + +static void sub_811D830(void) +{ + u8 var0 = sub_811BBDC(); + u8 var1 = sub_811DE48(); + if (var0 < var1) + { + u8 var2 = var1 - var0; + sub_811D950(var0, var2); + sub_811D864(var0, var2); + } +} + +static void sub_811D864(u8 arg0, u8 arg1) +{ + int i, j; + u16 easyChatWord; + u8 *str; + int y; + int var0; + + var0 = arg0 * 2; + y = (arg0 * 16 + 96) & 0xFF; + y++; + for (i = 0; i < arg1; i++) + { + for (j = 0; j < 2; j++) + { + easyChatWord = sub_811F578(var0++); + if (easyChatWord != 0xFFFF) + { + CopyEasyChatWordPadded(gUnknown_0203A11C->unkCC, easyChatWord, 0); + if (!sub_811BF88(easyChatWord)) + sub_811D028(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); + else + sub_811D058(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); + } + } + + y += 16; + } + + CopyWindowToVram(2, 2); +} + +static void sub_811D950(u8 arg0, u8 arg1) +{ + int y; + int var0; + int var1; + int var2; + + y = (arg0 * 16 + 96) & 0xFF; + var2 = arg1 * 16; + var0 = y + var2; + if (var0 > 255) + { + var1 = var0 - 256; + var2 = 256 - y; + } else + { + var1 = 0; + } + + FillWindowPixelRect(2, 0x11, 0, y, 224, var2); + if (var1) + FillWindowPixelRect(2, 0x11, 0, 0, 224, var1); +} + +static void sub_811D9B4(void) +{ + FillWindowPixelBuffer(2, 0x11); + CopyWindowToVram(2, 2); +} + +static void sub_811D9CC(int arg0) +{ + switch (arg0) + { + case 0: + gUnknown_0203A11C->unk6 = 0; + gUnknown_0203A11C->unk7 = 10; + break; + case 1: + gUnknown_0203A11C->unk6 = 9; + gUnknown_0203A11C->unk7 = 0; + break; + case 2: + gUnknown_0203A11C->unk6 = 11; + gUnknown_0203A11C->unk7 = 17; + break; + case 3: + gUnknown_0203A11C->unk6 = 17; + gUnknown_0203A11C->unk7 = 0; + break; + case 4: + gUnknown_0203A11C->unk6 = 17; + gUnknown_0203A11C->unk7 = 10; + break; + case 5: + gUnknown_0203A11C->unk6 = 18; + gUnknown_0203A11C->unk7 = 22; + break; + case 6: + gUnknown_0203A11C->unk6 = 22; + gUnknown_0203A11C->unk7 = 18; + break; + } + + gUnknown_0203A11C->unk8 = gUnknown_0203A11C->unk6 < gUnknown_0203A11C->unk7 ? 1 : -1; +} + +static bool8 sub_811DAA4(void) +{ + u8 var0, var1; + if (gUnknown_0203A11C->unk6 == gUnknown_0203A11C->unk7) + return FALSE; + + gUnknown_0203A11C->unk6 += gUnknown_0203A11C->unk8; + sub_811DADC(gUnknown_0203A11C->unk6); + var0 = gUnknown_0203A11C->unk6; + var1 = gUnknown_0203A11C->unk7; + return (var0 ^ var1) > 0; +} + +static void sub_811DADC(u8 arg0) +{ + FillBgTilemapBufferRect_Palette0(1, 0, 0, 10, 30, 10); + switch (arg0) + { + case 0: + break; + case 1: + sub_811DC28(11, 14, 3, 2); + break; + case 2: + sub_811DC28(9, 14, 7, 2); + break; + case 3: + sub_811DC28(7, 14, 11, 2); + break; + case 4: + sub_811DC28(5, 14, 15, 2); + break; + case 5: + sub_811DC28(3, 14, 19, 2); + break; + case 6: + sub_811DC28(1, 14, 23, 2); + break; + case 11: + sub_811DC28(1, 10, 24, 10); + break; + case 12: + sub_811DC28(1, 10, 25, 10); + break; + case 13: + sub_811DC28(1, 10, 26, 10); + break; + case 14: + sub_811DC28(1, 10, 27, 10); + break; + case 15: + sub_811DC28(1, 10, 28, 10); + break; + case 16: + sub_811DC28(1, 10, 29, 10); + break; + case 17: + sub_811DC28(0, 10, 30, 10); + break; + case 10: + case 18: + sub_811DC28(1, 10, 23, 10); + break; + case 9: + case 19: + sub_811DC28(1, 11, 23, 8); + break; + case 8: + case 20: + sub_811DC28(1, 12, 23, 6); + break; + case 7: + case 21: + sub_811DC28(1, 13, 23, 4); + break; + case 22: + sub_811DC28(1, 14, 23, 2); + break; + } + + CopyBgTilemapBufferToVram(1); +} + +static void sub_811DC28(int left, int top, int width, int height) +{ + u16 *tilemap; + int right; + int bottom; + int x, y; + + tilemap = gUnknown_0203A11C->unk300; + right = left + width - 1; + bottom = top + height - 1; + x = left; + y = top; + tilemap[y * 32 + x] = 0x4001; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4002; + + tilemap[y * 32 + x] = 0x4003; + y++; + for (; y < bottom; y++) + { + tilemap[y * 32 + left] = 0x4005; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4000; + + tilemap[y * 32 + x] = 0x4007; + } + + tilemap[y * 32 + left] = 0x4009; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x400A; + + tilemap[y * 32 + x] = 0x400B; + sub_811DE5C((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8); +} + +static void sub_811DD84(void) +{ + ChangeBgY(2, 0x800, 0); + gUnknown_0203A11C->unk2CE = 0; +} + +static void sub_811DDAC(s16 arg0, u8 arg1) +{ + int bgY; + s16 var0; + + bgY = GetBgY(2); + gUnknown_0203A11C->unk2CE += arg0; + var0 = arg0 * 16; + bgY += var0 << 8; + if (arg1) + { + gUnknown_0203A11C->unk2D0 = bgY; + gUnknown_0203A11C->unk2D4 = arg1 * 256; + if (var0 < 0) + gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + } + else + { + ChangeBgY(2, bgY, 0); + } +} + +static bool8 sub_811DE10(void) +{ + int bgY; + + bgY = GetBgY(2); + if (bgY == gUnknown_0203A11C->unk2D0) + { + return FALSE; + } + else + { + ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + return TRUE; + } +} + +static int sub_811DE48(void) +{ + return gUnknown_0203A11C->unk2CE; +} + +static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) +{ + u16 horizontalDimensions = WIN_RANGE(left, left + width); + u16 verticalDimensions = WIN_RANGE(top, top + height); + SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions); + SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions); +} + +static void sub_811DE90(void) +{ + u32 i; + + LoadSpriteSheets(sUnknown_08597CA0); + LoadSpritePalettes(sUnknown_08597CC0); + for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) + LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); +} + +static void sub_811DEC4(void) +{ + u8 var0 = sub_811BA68(); + int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; + int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); + gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + gSprites[spriteId].data[1] = 1; +} + +static void sub_811DF28(struct Sprite *sprite) +{ + if (sprite->data[1]) + { + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } + } +} + +static void sub_811DF60(u8 x, u8 y) +{ + gUnknown_0203A11C->unk2D8->pos1.x = x; + gUnknown_0203A11C->unk2D8->pos1.y = y; + gUnknown_0203A11C->unk2D8->pos2.x = 0; + gUnknown_0203A11C->unk2D8->data[0] = 0; +} + +static void sub_811DF90(void) +{ + gUnknown_0203A11C->unk2D8->data[0] = 0; + gUnknown_0203A11C->unk2D8->data[1] = 0; + gUnknown_0203A11C->unk2D8->pos2.x = 0; +} + +static void sub_811DFB0(void) +{ + gUnknown_0203A11C->unk2D8->data[1] = 1; +} + +static void sub_811DFC8(void) +{ + u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + gUnknown_0203A11C->unk2DC->pos2.x = 32; + + spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E0->pos2.x = -32; + + gUnknown_0203A11C->unk2DC->hFlip = 1; + sub_811E088(); +} + +static void sub_811E050(void) +{ + DestroySprite(gUnknown_0203A11C->unk2DC); + gUnknown_0203A11C->unk2DC = NULL; + DestroySprite(gUnknown_0203A11C->unk2E0); + gUnknown_0203A11C->unk2E0 = NULL; +} + +static void sub_811E088(void) +{ + u8 var0; + u8 var1; + + if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + { + sub_811BB9C(&var0, &var1); + if (!sub_811BBB0()) + sub_811E0EC(var0, var1); + else + sub_811E1A4(var0, var1); + } +} + +static void sub_811E0EC(s8 arg0, s8 arg1) +{ + if (arg0 != -1) + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); + gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); + gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E1A4(s8 arg0, s8 arg1) +{ + int anim; + int x, y; + + if (arg0 != -1) + { + y = arg1 * 16 + 96; + x = 32; + if (arg0 == 6 && arg1 == 0) + { + x = 158; + anim = 2; + } + else + { + x += sUnknown_08597D08[arg0 < ARRAY_COUNT(sUnknown_08597D08) ? arg0 : 0]; + anim = 3; + } + + StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); + gUnknown_0203A11C->unk2DC->pos1.x = x; + gUnknown_0203A11C->unk2DC->pos1.y = y; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); + gUnknown_0203A11C->unk2E0->pos1.x = x; + gUnknown_0203A11C->unk2E0->pos1.y = y; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E288(void) +{ + u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); + gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + gUnknown_0203A11C->unk2E4->oam.priority = 2; + sub_811E30C(); +} + +static void sub_811E2DC(struct Sprite *sprite) +{ + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } +} + +static void sub_811E30C(void) +{ + s8 var0, var1, x, y; + + sub_811BBC8(&var0, &var1); + x = var0 * 13; + x = x * 8 + 28; + y = var1 * 16 + 96; + sub_811E34C(x, y); +} + +static void sub_811E34C(u8 x, u8 y) +{ + if (gUnknown_0203A11C->unk2E4) + { + gUnknown_0203A11C->unk2E4->pos1.x = x; + gUnknown_0203A11C->unk2E4->pos1.y = y; + gUnknown_0203A11C->unk2E4->pos2.x = 0; + gUnknown_0203A11C->unk2E4->data[0] = 0; + } +} + +static void sub_811E380(void) +{ + if (gUnknown_0203A11C->unk2E4) + { + DestroySprite(gUnknown_0203A11C->unk2E4); + gUnknown_0203A11C->unk2E4 = NULL; + } +} + +static void sub_811E3AC(void) +{ + u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); + gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E8->pos2.x = -64; + + spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); + gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + gUnknown_0203A11C->unk9 = 0; +} + +static bool8 sub_811E418(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + gUnknown_0203A11C->unk2E8->pos2.x += 8; + if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + { + gUnknown_0203A11C->unk2E8->pos2.x = 0; + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + + gUnknown_0203A11C->unk9++; + } + break; + case 1: + if (gUnknown_0203A11C->unk2EC->animEnded) + { + gUnknown_0203A11C->unk9 = 2; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E4AC(void) +{ + gUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); +} + +static bool8 sub_811E4D0(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + if (gUnknown_0203A11C->unk2EC->animEnded) + gUnknown_0203A11C->unk9 = 1; + break; + case 1: + gUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + { + DestroySprite(gUnknown_0203A11C->unk2EC); + DestroySprite(gUnknown_0203A11C->unk2E8); + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk9++; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E55C(void) +{ + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); +} + +static void sub_811E578(void) +{ + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); +} + +static bool8 sub_811E5B8(void) +{ + return !gUnknown_0203A11C->unk2EC->animEnded; +} + +static void sub_811E5D4(void) +{ + u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + + spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2F4->vFlip = 1; + } + + sub_811E6B0(); +} + +static void sub_811E64C(void) +{ + gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); +} + +static void sub_811E6B0(void) +{ + gUnknown_0203A11C->unk2F0->invisible = 1; + gUnknown_0203A11C->unk2F4->invisible = 1; +} + +static void sub_811E6E0(int arg0) +{ + if (!arg0) + { + gUnknown_0203A11C->unk2F0->pos1.x = 96; + gUnknown_0203A11C->unk2F4->pos1.x = 96; + } + else + { + gUnknown_0203A11C->unk2F0->pos1.x = 120; + gUnknown_0203A11C->unk2F4->pos1.x = 120; + } +} + +static void sub_811E720(void) +{ + u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + + spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + } + + sub_811E7F8(); +} + +static void sub_811E794(void) +{ + gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); +} + +static void sub_811E7F8(void) +{ + gUnknown_0203A11C->unk2F8->invisible = 1; + gUnknown_0203A11C->unk2FC->invisible = 1; +} + +static void sub_811E828(void) +{ + int graphicsId; + u8 spriteId; + + switch (sub_811BCBC()) + { + case 0: + graphicsId = EVENT_OBJ_GFX_REPORTER_M; + break; + case 1: + graphicsId = EVENT_OBJ_GFX_REPORTER_F; + break; + case 2: + graphicsId = EVENT_OBJ_GFX_BOY_1; + break; + default: + return; + } + + if (sub_811BA68() != 4) + return; + + spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 2); + } + + spriteId = AddPseudoEventObject( + gSaveBlock2Ptr->playerGender == MALE ? EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL : EVENT_OBJ_GFX_RIVAL_MAY_NORMAL, + SpriteCallbackDummy, + 52, + 40, + 0); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 3); + } +} + +int sub_811E8E4(void) +{ + u8 var0 = sub_811BA68(); + switch (gUnknown_08597C30[var0].unk3) + { + case 1: return 1; + case 2: + return 2; + case 0: + return 0; + default: + return 3; + } +} + +static int sub_811E920(int arg0) +{ + int var0 = sub_811E8E4(); + if (var0 < 3) + return sUnknown_08597E60[var0][arg0] + 4; + else + return 0; +} + +static void sub_811E948(void) +{ + int i; + u16 windowId; + struct WindowTemplate template; + int var0 = sub_811E8E4(); + if (var0 == 3) + return; + + template.bg = 3; + template.tilemapLeft = 1; + template.tilemapTop = 11; + template.width = 28; + template.height = 2; + template.paletteNum = 11; + template.baseBlock = 0x34; + windowId = AddWindow(&template); + FillWindowPixelBuffer(windowId, 0x11); + for (i = 0; i < 4; i++) + { + const u8 *str = sFooterTextOptions[var0][i]; + if (str) + { + int x = sUnknown_08597E60[var0][i]; + sub_811D028(windowId, 1, str, x, 1, 0, NULL); + } + } + + PutWindowTilemap(windowId); +} + +static bool8 sub_811EA28(u8 groupId) +{ + switch (groupId) + { + case EC_GROUP_TRENDY_SAYING: + return FlagGet(FLAG_SYS_HIPSTER_MEET); + case EC_GROUP_EVENTS: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return FlagGet(FLAG_SYS_GAME_CLEAR); + case EC_GROUP_POKEMON_2: + return sub_811F0F8(); + default: + return TRUE; + } +} + +u16 EasyChat_GetNumWordsInGroup(u8 groupId) +{ + if (groupId == EC_GROUP_POKEMON) + return GetNationalPokedexCount(FLAG_GET_SEEN); + + if (sub_811EA28(groupId)) + return gEasyChatGroups[groupId].numEnabledWords; + + return 0; +} + +bool8 sub_811EAA4(u16 easyChatWord) +{ + u16 i; + u8 groupId; + u32 index; + u16 numWords; + const u16 *list; + if (easyChatWord == 0xFFFF) + return FALSE; + + groupId = EC_GROUP(easyChatWord); + index = EC_INDEX(easyChatWord); + if (groupId >= EC_NUM_GROUPS) + return TRUE; + + numWords = gEasyChatGroups[groupId].numWords; + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + list = gEasyChatGroups[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; + } +} + +bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) +{ + int numWordsInGroup; + u8 groupId = EC_GROUP(easyChatWord); + u32 index = EC_INDEX(easyChatWord); + if (groupId >= EC_NUM_GROUPS) + return TRUE; + + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + numWordsInGroup = gUnknown_085F5490; + break; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + numWordsInGroup = gUnknown_085FA1D4; + break; + default: + numWordsInGroup = gEasyChatGroups[groupId].numWords; + break; + } + + if (numWordsInGroup <= index) + return TRUE; + else + return FALSE; +} + +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 gEasyChatGroups[groupId].wordData.words[index].text; + } +} + +u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord) +{ + u8 *resultStr; + if (sub_811EAA4(easyChatWord)) + { + resultStr = StringCopy(dest, gText_ThreeQuestionMarks); + } + else if (easyChatWord != 0xFFFF) + { + 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 != 0xFFFF) + { + *dest = CHAR_SPACE; + dest++; + } + + src++; + } + + dest = CopyEasyChatWord(dest, *(src++)); + *dest = CHAR_NEWLINE; + dest++; + } + + dest--; + *dest = EOS; + return dest; +} + +u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) +{ + u16 i, j, k; + u16 numColumns; + int var0, var1; + + numColumns = columns; + var1 = 0; + columns--; + for (i = 0; i < rows; i++) + { + const u16 *var2 = src; + var0 = 0; + for (j = 0; j < numColumns; j++) + { + if (var2[j] != 0xFFFF) + var0 = 1; + } + + if (!var0) + { + src += numColumns; + continue; + } + + for (k = 0; k < columns; k++) + { + dest = CopyEasyChatWord(dest, *src); + if (*src != 0xFFFF) + { + *dest = CHAR_SPACE; + dest++; + } + + src++; + } + + dest = CopyEasyChatWord(dest, *(src++)); + if (var1 == 0) + *dest = CHAR_NEWLINE; + else + *dest = CHAR_PROMPT_SCROLL; + + dest++; + var1++; + } + + dest--; + *dest = EOS; + return dest; +} + +static u16 GetEasyChatWordStringLength(u16 easyChatWord) +{ + if (easyChatWord == 0xFFFF) + return 0; + + if (sub_811EAA4(easyChatWord)) + { + return StringLength(gText_ThreeQuestionMarks); + } + else + { + u16 index = EC_INDEX(easyChatWord); + u8 groupId = EC_GROUP(easyChatWord); + return StringLength(GetEasyChatWord(groupId, index)); + } +} + +bool8 sub_811EDC4(const u16 *easyChatWords, u8 arg1, u8 arg2, u16 arg3) +{ + u8 i, j; + + for (i = 0; i < arg2; i++) + { + u16 totalLength = arg1 - 1; + for (j = 0; j < arg1; j++) + totalLength += GetEasyChatWordStringLength(*(easyChatWords++)); + + if (totalLength > arg3) + return TRUE; + } + + return FALSE; +} + +u16 sub_811EE38(u16 groupId) +{ + u16 index = Random() % gEasyChatGroups[groupId].numWords; + if (groupId == EC_GROUP_POKEMON + || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_MOVE_1 + || groupId == EC_GROUP_MOVE_2) + { + index = gEasyChatGroups[groupId].wordData.valueList[index]; + } + + return EC_WORD(groupId, index); +} + +u16 sub_811EE90(u16 groupId) +{ + if (!sub_811EA28(groupId)) + return 0xFFFF; + + if (groupId == EC_GROUP_POKEMON) + return sub_811F108(); + + return sub_811EE38(groupId); +} + +void sub_811EECC(void) +{ + u16 *easyChatWords; + int columns, rows; + switch (gSpecialVar_0x8004) + { + case 0: + easyChatWords = gSaveBlock1Ptr->unk2BB0; + columns = 2; + rows = 2; + break; + case 1: + easyChatWords = gSaveBlock1Ptr->unk2BBC; + if (sub_811EDC4(gSaveBlock1Ptr->unk2BBC, 3, 2, 18)) + { + columns = 2; + rows = 3; + } + else + { + columns = 3; + rows = 2; + } + break; + case 2: + easyChatWords = gSaveBlock1Ptr->unk2BC8; + columns = 3; + rows = 2; + break; + case 3: + easyChatWords = gSaveBlock1Ptr->unk2BD4; + columns = 3; + rows = 2; + break; + default: + return; + } + + ConvertEasyChatWordsToString(gStringVar4, easyChatWords, columns, rows); + ShowFieldAutoScrollMessage(gStringVar4); +} + +void sub_811EF6C(void) +{ + int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE; + u16 easyChatWord = sub_811EE90(groupId); + CopyEasyChatWord(gStringVar2, easyChatWord); +} + +static bool8 sub_811EF98(u8 additionalPhraseId) +{ + int byteOffset = additionalPhraseId / 8; + int shift = additionalPhraseId % 8; + return (gSaveBlock1Ptr->additionalPhrases[byteOffset] >> shift) & 1; +} + +void sub_811EFC0(u8 additionalPhraseId) +{ + if (additionalPhraseId < 33) + { + int byteOffset = additionalPhraseId / 8; + int shift = additionalPhraseId % 8; + gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift; + } +} + +u8 sub_811EFF0(void) +{ + u8 i; + u8 numAdditionalPhrasesUnlocked; + + for (i = 0, numAdditionalPhrasesUnlocked = 0; i < 33; i++) + { + if (sub_811EF98(i)) + numAdditionalPhrasesUnlocked++; + } + + return numAdditionalPhrasesUnlocked; +} + +u16 sub_811F01C(void) +{ + u16 i; + u16 additionalPhraseId; + u8 numAdditionalPhrasesUnlocked = sub_811EFF0(); + if (numAdditionalPhrasesUnlocked == 33) + return 0xFFFF; + + additionalPhraseId = Random() % (33 - numAdditionalPhrasesUnlocked); + for (i = 0; i < 33; i++) + { + if (!sub_811EF98(i)) + { + if (additionalPhraseId) + { + additionalPhraseId--; + } + else + { + sub_811EFC0(i); + return EC_WORD(EC_GROUP_TRENDY_SAYING, i); + } + } + } + + return 0xFFFF; +} + +u16 sub_811F090(void) +{ + u16 i; + u16 additionalPhraseId = sub_811EFF0(); + if (additionalPhraseId == 0) + return 0xFFFF; + + additionalPhraseId = Random() % additionalPhraseId; + for (i = 0; i < 33; i++) + { + if (sub_811EF98(i)) + { + if (additionalPhraseId) + additionalPhraseId--; + else + return EC_WORD(EC_GROUP_TRENDY_SAYING, i); + } + } + + return 0xFFFF; +} + +static bool8 sub_811F0F8(void) +{ + return IsNationalPokedexEnabled(); +} + +static u16 sub_811F108(void) +{ + u16 i; + u16 numWords; + const u16 *species; + u16 index = EasyChat_GetNumWordsInGroup(EC_GROUP_POKEMON); + if (index == 0) + return 0xFFFF; + + index = Random() % index; + species = gEasyChatGroups[EC_GROUP_POKEMON].wordData.valueList; + numWords = gEasyChatGroups[EC_GROUP_POKEMON].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, *species); + } + + species++; + } + + return 0xFFFF; +} + +void InitEasyChatPhrases(void) +{ + u16 i, j; + + for (i = 0; i < 4; i++) + gSaveBlock1Ptr->unk2BB0[i] = sUnknown_0859E62C[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BBC[i] = sUnknown_0859E634[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BC8[i] = sUnknown_0859E640[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BD4[i] = sUnknown_0859E64C[i]; + + for (i = 0; i < MAIL_COUNT; i++) + { + for (j = 0; j < MAIL_WORDS_COUNT; j++) + gSaveBlock1Ptr->mail[i].words[j] = 0xFFFF; + } + + // 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; +} + +static bool8 sub_811F28C(void) +{ + gUnknown_0203A120 = Alloc(sizeof(*gUnknown_0203A120)); + if (!gUnknown_0203A120) + return FALSE; + + sub_811F2D4(); + sub_811F46C(); + return TRUE; +} + +static void sub_811F2B8(void) +{ + if (gUnknown_0203A120) + FREE_AND_SET_NULL(gUnknown_0203A120); +} + +static void sub_811F2D4(void) +{ + int i; + + gUnknown_0203A120->unk0 = 0; + if (GetNationalPokedexCount(FLAG_GET_SEEN)) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + + for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = i; + + if (FlagGet(FLAG_SYS_GAME_CLEAR)) + { + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + } + + if (FlagGet(FLAG_SYS_HIPSTER_MEET)) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + + if (IsNationalPokedexEnabled()) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; +} + +static u8 sub_811F3AC(void) +{ + return gUnknown_0203A120->unk0; +} + +static u8 sub_811F3B8(u8 index) +{ + if (index >= gUnknown_0203A120->unk0) + return EC_NUM_GROUPS; + else + return gUnknown_0203A120->unk2[index]; +} + +u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) +{ + u16 i; + u8 *str = StringCopy(dest, gEasyChatGroupNamePointers[groupId]); + for (i = str - dest; i < totalChars; i++) + { + *str = CHAR_SPACE; + str++; + } + + *str = EOS; + return str; +} + +static const u8 *GetEasyChatWordGroupName(u8 groupId) +{ + return gEasyChatGroupNamePointers[groupId]; +} + +static 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 sub_811F46C(void) +{ + int i, j, k; + int numWords; + const u16 *words; + u16 numToProcess; + int index; + + for (i = 0; i < 27; i++) + { + numWords = gEasyChatWordsByLetterPointers[i].numWords; + words = gEasyChatWordsByLetterPointers[i].words; + gUnknown_0203A120->unk2E[i] = 0; + index = 0; + for (j = 0; j < numWords; j++) + { + if (*words == 0xFFFF) + { + words++; + numToProcess = *words; + words++; + j += 1 + numToProcess; + } + else + { + numToProcess = 1; + } + + for (k = 0; k < numToProcess; k++) + { + if (sub_811F860(words[k])) + { + gUnknown_0203A120->unk64[i][index++] = words[k]; + gUnknown_0203A120->unk2E[i]++; + break; + } + } + + words += numToProcess; + } + } +} + +static void sub_811F548(int arg0, u16 groupId) +{ + if (!arg0) + gUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + else + gUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); +} + +static u16 sub_811F578(u16 arg0) +{ + if (arg0 >= gUnknown_0203A120->unk3BA0) + return 0xFFFF; + else + return gUnknown_0203A120->unk3984[arg0]; +} + +static u16 sub_811F5B0(void) +{ + return gUnknown_0203A120->unk3BA0; +} + +static u16 sub_811F5C4(u16 groupId) +{ + u32 i; + int totalWords; + const u16 *list; + const struct EasyChatWordInfo *wordInfo; + u16 numWords = gEasyChatGroups[groupId].numWords; + + if (groupId == EC_GROUP_POKEMON || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_MOVE_1 || groupId == EC_GROUP_MOVE_2) + { + list = gEasyChatGroups[groupId].wordData.valueList; + for (i = 0, totalWords = 0; i < numWords; i++) + { + if (sub_811F764(list[i], groupId)) + gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + } + + return totalWords; + } + else + { + wordInfo = gEasyChatGroups[groupId].wordData.words; + for (i = 0, totalWords = 0; i < numWords; i++) + { + u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; + if (sub_811F764(alphabeticalOrder, groupId)) + gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + } + + return totalWords; + } +} + +static u16 sub_811F6B8(u16 alphabeticalGroup) +{ + u16 i; + u16 totalWords; + + for (i = 0, totalWords = 0; i < gUnknown_0203A120->unk2E[alphabeticalGroup]; i++) + gUnknown_0203A120->unk3984[totalWords++] = gUnknown_0203A120->unk64[alphabeticalGroup][i]; + + return totalWords; +} + +static bool8 sub_811F72C(u8 arg0) +{ + int i; + for (i = 0; i < gUnknown_0203A120->unk0; i++) + { + if (gUnknown_0203A120->unk2[i] == arg0) + return TRUE; + } + + return FALSE; +} + +static bool8 sub_811F764(u16 wordIndex, u8 groupId) +{ + switch (groupId) + { + case EC_GROUP_POKEMON: + return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + case EC_GROUP_POKEMON_2: + if (sub_811F838(wordIndex)) + GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + return TRUE; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return TRUE; + case EC_GROUP_TRENDY_SAYING: + return sub_811EF98(wordIndex); + default: + return gEasyChatGroups[groupId].wordData.words[wordIndex].enabled; + } +} + +static int sub_811F838(u16 species) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sUnknown_0859E658); i++) + { + if (sUnknown_0859E658[i] == species) + return TRUE; + } + + return FALSE; +} + +static u8 sub_811F860(u16 easyChatWord) +{ + u8 groupId = EC_GROUP(easyChatWord); + u32 index = EC_INDEX(easyChatWord); + if (!sub_811F72C(groupId)) + return FALSE; + else + return sub_811F764(index, groupId); +} + +void InitializeEasyChatWordArray(u16 *words, u16 length) +{ + u16 i; + for (i = length - 1; i != 0xFFFF; i--) + *(words++) = 0xFFFF; +} + +void sub_811F8BC(void) +{ + int i; + u16 *words = GetSaveBlock1Field3564(); + for (i = 0; i < 4; i++) + words[i] = 0xFFFF; +} + +bool32 sub_811F8D8(int easyChatWord) +{ + int groupId = EC_GROUP(easyChatWord); + int mask = 0x7F; + int index = EC_INDEX(easyChatWord); + if (!sub_811EA28(groupId & mask)) + return FALSE; + else + return sub_811F764(index, groupId & mask); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index e1d94889a..ba1020669 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -574,7 +574,7 @@ static void Task_EggHatchPlayBGM(u8 taskID) if (gTasks[taskID].data[0] == 0) { StopMapMusic(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); } if (gTasks[taskID].data[0] == 1) PlayBGM(MUS_ME_SHINKA); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 00dce4c7d..cffafaf9f 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -147,7 +147,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) if (CheckForTrainersWantingBattle() == TRUE) return TRUE; - if (mapheader_run_first_tag2_script_list_match() == 1) + if (TryRunOnFrameMapScript() == TRUE) return TRUE; if (input->pressedBButton && TrySetupDiveEmergeScript() == TRUE) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index b8427c7de..e7476dea3 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -503,7 +503,7 @@ void DoWarp(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = mapldr_default; CreateTask(sub_80AFA0C, 10); @@ -514,7 +514,7 @@ void DoDiveWarp(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gFieldCallback = mapldr_default; CreateTask(sub_80AFA0C, 10); } @@ -524,7 +524,7 @@ void sub_80AF79C(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); FadeScreen(FADE_TO_WHITE, 8); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gFieldCallback = sub_80AF3B0; CreateTask(sub_80AFA0C, 10); } @@ -734,7 +734,7 @@ static void sub_80AFA88(u8 taskId) case 4: TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); task->data[0] = 0; task->func = sub_80AFA0C; break; @@ -771,7 +771,7 @@ void sub_80AFC60(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = sub_80AF3C8; CreateTask(task0A_fade_n_map_maybe, 10); diff --git a/src/field_specials.c b/src/field_specials.c index 3c26085dd..307f81399 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -54,6 +54,7 @@ #include "constants/moves.h" #include "constants/vars.h" #include "constants/battle_frontier.h" +#include "constants/weather.h" EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; @@ -3527,9 +3528,9 @@ bool8 sub_813B3B0(void) } } -void sub_813B484(void) +void Unused_SetWeatherSunny(void) { - sub_80AB104(2); + SetCurrentAndNextWeather(WEATHER_SUNNY); } bool32 sub_813B490(void) diff --git a/src/field_weather.c b/src/field_weather.c index 0db635c60..9913e9a61 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -186,11 +186,11 @@ void StartWeather(void) } } -void ChangeWeather(u8 weather) +void SetNextWeather(u8 weather) { if (weather != WEATHER_RAIN_LIGHT && weather != WEATHER_RAIN_MED && weather != WEATHER_RAIN_HEAVY) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); } if (gWeatherPtr->nextWeather != weather && gWeatherPtr->currWeather == weather) @@ -203,18 +203,19 @@ void ChangeWeather(u8 weather) gWeatherPtr->finishStep = 0; } -void sub_80AB104(u8 weather) +void SetCurrentAndNextWeather(u8 weather) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gWeatherPtr->currWeather = weather; gWeatherPtr->nextWeather = weather; } -void sub_80AB130(u8 weather) +void SetCurrentAndNextWeatherNoDelay(u8 weather) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gWeatherPtr->currWeather = weather; gWeatherPtr->nextWeather = weather; + // Overrides the normal delay during screen fading. gWeatherPtr->readyForInit = TRUE; } @@ -1053,7 +1054,7 @@ void SetRainStrengthFromSoundEffect(u16 soundEffect) } } -void PlayRainSoundEffect(void) +void PlayRainStoppingSoundEffect(void) { if (IsSpecialSEPlaying()) { diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 2ec51a722..be8fdc6cb 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -16,8 +16,8 @@ void sub_80AC6B4(struct Sprite *); // EWRAM -EWRAM_DATA static u8 gUnknown_02038BC4 = 0; -EWRAM_DATA static u16 gUnknown_02038BC6 = 0; +EWRAM_DATA static u8 gCurrentAlternatingWeather = 0; +EWRAM_DATA static u16 gUnusedWeatherRelated = 0; // CONST const u16 gUnknown_0854C290[] = INCBIN_U16("graphics/weather/1.gbapal"); @@ -2286,13 +2286,14 @@ void unc_0807DAB4(struct Sprite *sprite) //------------------------------------------------------------------------------ -static void sub_80AEC94(u32 a0, u32 a1) +// Unused function. +static void UnusedSetCurrentAlternatingWeather(u32 a0, u32 a1) { - gUnknown_02038BC4 = a0; - gUnknown_02038BC6 = a1; + gCurrentAlternatingWeather = a0; + gUnusedWeatherRelated = a1; } -static void sub_80AECA8(u8 taskId) +static void Task_DoAlternatingWeather(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2301,8 +2302,8 @@ static void sub_80AECA8(u8 taskId) case 0: if (data[15]-- <= 0) { - ChangeWeather(data[1]); - gUnknown_02038BC4 = data[1]; + SetNextWeather(data[1]); + gCurrentAlternatingWeather = data[1]; data[15] = 600; data[0]++; } @@ -2310,8 +2311,8 @@ static void sub_80AECA8(u8 taskId) case 1: if (data[15]-- <= 0) { - ChangeWeather(data[2]); - gUnknown_02038BC4 = data[2]; + SetNextWeather(data[2]); + gCurrentAlternatingWeather = data[2]; data[15] = 600; data[0] = 0; } @@ -2319,25 +2320,25 @@ static void sub_80AECA8(u8 taskId) } } -static void sub_80AED28(void) +static void CreateAlternatingWeatherTask(void) { - u8 taskId = CreateTask(sub_80AECA8, 0); + u8 taskId = CreateTask(Task_DoAlternatingWeather, 0); s16 *data = gTasks[taskId].data; data[15] = 600; - if (gUnknown_02038BC4 == WEATHER_RAIN_HEAVY) + if (gCurrentAlternatingWeather == WEATHER_RAIN_HEAVY) { data[1] = WEATHER_DROUGHT; data[2] = WEATHER_RAIN_HEAVY; } - else if (gUnknown_02038BC4 == WEATHER_DROUGHT) + else if (gCurrentAlternatingWeather == WEATHER_DROUGHT) { data[1] = WEATHER_RAIN_HEAVY; data[2] = WEATHER_DROUGHT; } else { - gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY; data[1] = WEATHER_DROUGHT; data[2] = WEATHER_RAIN_HEAVY; } @@ -2368,51 +2369,51 @@ void SetSav1WeatherFromCurrMapHeader(void) void SetWeather(u32 weather) { SetSav1Weather(weather); - ChangeWeather(GetSav1Weather()); + SetNextWeather(GetSav1Weather()); } void SetWeather_Unused(u32 weather) { SetSav1Weather(weather); - sub_80AB104(GetSav1Weather()); + SetCurrentAndNextWeather(GetSav1Weather()); } void DoCurrentWeather(void) { u8 weather = GetSav1Weather(); - if (weather == WEATHER_15) + if (weather == WEATHER_ALTERNATING) { - if (!FuncIsActiveTask(sub_80AECA8)) - sub_80AED28(); - weather = gUnknown_02038BC4; + if (!FuncIsActiveTask(Task_DoAlternatingWeather)) + CreateAlternatingWeatherTask(); + weather = gCurrentAlternatingWeather; } else { - if (FuncIsActiveTask(sub_80AECA8)) - DestroyTask(FindTaskIdByFunc(sub_80AECA8)); - gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + if (FuncIsActiveTask(Task_DoAlternatingWeather)) + DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather)); + gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY; } - ChangeWeather(weather); + SetNextWeather(weather); } -void sub_80AEE84(void) +void ResumePausedWeather(void) { u8 weather = GetSav1Weather(); - if (weather == WEATHER_15) + if (weather == WEATHER_ALTERNATING) { - if (!FuncIsActiveTask(sub_80AECA8)) - sub_80AED28(); - weather = gUnknown_02038BC4; + if (!FuncIsActiveTask(Task_DoAlternatingWeather)) + CreateAlternatingWeatherTask(); + weather = gCurrentAlternatingWeather; } else { - if (FuncIsActiveTask(sub_80AECA8)) - DestroyTask(FindTaskIdByFunc(sub_80AECA8)); - gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + if (FuncIsActiveTask(Task_DoAlternatingWeather)) + DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather)); + gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY; } - sub_80AB104(weather); + SetCurrentAndNextWeather(weather); } static const u8 sWeatherCycleRoute119[] = @@ -2434,25 +2435,25 @@ static u8 TranslateWeatherNum(u8 weather) { switch (weather) { - case WEATHER_NONE: return WEATHER_NONE; - case WEATHER_CLOUDS: return WEATHER_CLOUDS; - case WEATHER_SUNNY: return WEATHER_SUNNY; - case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT; - case WEATHER_SNOW: return WEATHER_SNOW; - case WEATHER_RAIN_MED: return WEATHER_RAIN_MED; - case WEATHER_FOG_1: return WEATHER_FOG_1; - case WEATHER_ASH: return WEATHER_ASH; - case WEATHER_SANDSTORM: return WEATHER_SANDSTORM; - case WEATHER_FOG_2: return WEATHER_FOG_2; - case WEATHER_FOG_3: return WEATHER_FOG_3; - case WEATHER_SHADE: return WEATHER_SHADE; - case WEATHER_DROUGHT: return WEATHER_DROUGHT; - case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; - case WEATHER_BUBBLES: return WEATHER_BUBBLES; - case WEATHER_15: return WEATHER_15; + case WEATHER_NONE: return WEATHER_NONE; + case WEATHER_CLOUDS: return WEATHER_CLOUDS; + case WEATHER_SUNNY: return WEATHER_SUNNY; + case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT; + case WEATHER_SNOW: return WEATHER_SNOW; + case WEATHER_RAIN_MED: return WEATHER_RAIN_MED; + case WEATHER_FOG_1: return WEATHER_FOG_1; + case WEATHER_ASH: return WEATHER_ASH; + case WEATHER_SANDSTORM: return WEATHER_SANDSTORM; + case WEATHER_FOG_2: return WEATHER_FOG_2; + case WEATHER_FOG_3: return WEATHER_FOG_3; + case WEATHER_SHADE: return WEATHER_SHADE; + case WEATHER_DROUGHT: return WEATHER_DROUGHT; + case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; + case WEATHER_BUBBLES: return WEATHER_BUBBLES; + case WEATHER_ALTERNATING: return WEATHER_ALTERNATING; case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage]; case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage]; - default: return WEATHER_NONE; + default: return WEATHER_NONE; } } diff --git a/src/fieldmap.c b/src/fieldmap.c index 7d9d079fc..cf5f0356e 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -53,7 +53,7 @@ void InitMap(void) { InitMapLayoutData(&gMapHeader); sub_80E8EE0(gMapHeader.events); - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); } void InitMapFromSavedGame(void) @@ -62,7 +62,7 @@ void InitMapFromSavedGame(void) sub_80E9238(0); sub_80E8EE0(gMapHeader.events); LoadSavedMapView(); - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); } @@ -775,7 +775,7 @@ bool8 CameraMove(int x, int y) old_y = gSaveBlock1Ptr->pos.y; connection = sub_8088950(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y); sub_80887F8(connection, direction, x, y); - mliX_load_map(connection->mapGroup, connection->mapNum); + LoadMapFromCameraTransition(connection->mapGroup, connection->mapNum); gCamera.active = TRUE; gCamera.x = old_x - gSaveBlock1Ptr->pos.x; gCamera.y = old_y - gSaveBlock1Ptr->pos.y; diff --git a/src/graphics.c b/src/graphics.c index c6af13477..a3b9eb913 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1152,16 +1152,16 @@ const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapa const u32 gMoveTypes_Gfx[] = INCBIN_U32("graphics/types/move_types.4bpp.lz"); const u32 gMoveTypes_Pal[] = INCBIN_U32("graphics/types/move_types.gbapal.lz"); -const u32 gUnknown_08D97BEC[] = INCBIN_U32("graphics/interface/summary_frames.4bpp.lz"); +const u32 gMoveSelectorBitmap[] = INCBIN_U32("graphics/interface/summary_frames.4bpp.lz"); const u32 gUnknown_08D97CF4[] = INCBIN_U32("graphics/interface/summary_frames.gbapal.lz"); -const u32 gUnknown_08D97D0C[] = INCBIN_U32("graphics/interface/status_screen.4bpp.lz"); -const u32 gUnknown_08D9853C[] = INCBIN_U32("graphics/interface/status_screen.gbapal.lz"); -const u32 gUnknown_08D9862C[] = INCBIN_U32("graphics/interface/status_screen.bin.lz"); +const u32 gStatusScreenBitmap[] = INCBIN_U32("graphics/interface/status_screen.4bpp.lz"); +const u32 gStatusScreenPalette[] = INCBIN_U32("graphics/interface/status_screen.gbapal.lz"); +const u32 gPageInfoTilemap[] = INCBIN_U32("graphics/interface/status_screen.bin.lz"); -const u32 gUnknown_08D987FC[] = INCBIN_U32("graphics/interface/status_tilemap1.bin.lz"); -const u32 gUnknown_08D9898C[] = INCBIN_U32("graphics/interface/status_tilemap2.bin.lz"); -const u32 gUnknown_08D98B28[] = INCBIN_U32("graphics/interface/status_tilemap3.bin.lz"); +const u32 gPageSkillsTilemap[] = INCBIN_U32("graphics/interface/status_tilemap1.bin.lz"); +const u32 gPageBattleMovesTilemap[] = INCBIN_U32("graphics/interface/status_tilemap2.bin.lz"); +const u32 gPageContestMovesTilemap[] = INCBIN_U32("graphics/interface/status_tilemap3.bin.lz"); const u32 gUnknown_08D98CC8[] = INCBIN_U32("graphics/interface/status_tilemap0.bin.lz"); const u32 gBagMaleTiles[] = INCBIN_U32("graphics/misc/bag_male.4bpp.lz"); diff --git a/src/mail.c b/src/mail.c index 45e96e85e..aa4ba571f 100644 --- a/src/mail.c +++ b/src/mail.c @@ -102,7 +102,7 @@ struct MailRead /*0x021d*/ u8 language; /*0x021e*/ bool8 playerIsSender; /*0x0220*/ u8 * (*parserSingle)(u8 *dest, u16 word); - /*0x0224*/ void (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2); + /*0x0224*/ u8 * (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2); /*0x0228*/ const struct MailLayout *layout; /*0x022c*/ u8 bg1TilemapBuffer[0x1000]; /*0x122c*/ u8 bg2TilemapBuffer[0x1000]; diff --git a/src/overworld.c b/src/overworld.c index 63143b7b4..be94a694b 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -783,7 +783,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y) } else { - mapheader_run_script_with_tag_x6(); + RunOnDiveWarpMapScript(); if (IsDummyWarp(&gFixedDiveWarp)) return FALSE; SetWarpDestinationToDiveWarp(); @@ -801,7 +801,7 @@ bool8 SetDiveWarpDive(u16 x, u16 y) return SetDiveWarp(CONNECTION_DIVE, x, y); } -void mliX_load_map(u8 mapGroup, u8 mapNum) +void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) { s32 paletteIndex; @@ -822,7 +822,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum) ChooseAmbientCrySpecies(); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); - mapheader_run_script_with_tag_x3(); + RunOnTransitionMapScript(); InitMap(); copy_map_tileset2_to_vram_2(gMapHeader.mapLayout); apply_map_tileset2_palette(gMapHeader.mapLayout); @@ -835,7 +835,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum) RoamerMove(); DoCurrentWeather(); ResetFieldTasksArgs(); - mapheader_run_script_with_tag_x5(); + RunOnResumeMapScript(); if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER || gMapHeader.regionMapSectionId != sLastMapSectionId) ShowMapNamePopup(); @@ -874,7 +874,7 @@ static void mli0_load_map(u32 a1) FlagClear(FLAG_SYS_USE_FLASH); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); - mapheader_run_script_with_tag_x3(); + RunOnTransitionMapScript(); UpdateLocationHistoryForRoamer(); RoamerMoveToOtherLocationSet(); if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) @@ -2146,10 +2146,10 @@ static void sub_8086988(u32 a1) FieldEffectActiveListClear(); StartWeather(); - sub_80AEE84(); + ResumePausedWeather(); if (!a1) SetUpFieldTasks(); - mapheader_run_script_with_tag_x5(); + RunOnResumeMapScript(); TryStartMirageTowerPulseBlendEffect(); } @@ -2159,7 +2159,7 @@ static void sub_80869DC(void) gTotalCameraPixelOffsetY = 0; ResetEventObjects(); TrySpawnEventObjects(0, 0); - mapheader_run_first_tag4_script_list_match(); + TryRunOnWarpIntoMapScript(); } static void mli4_mapscripts_and_other(void) @@ -2176,14 +2176,14 @@ static void mli4_mapscripts_and_other(void) SetPlayerAvatarTransitionFlags(player->transitionFlags); ResetInitialPlayerAvatarState(); TrySpawnEventObjects(0, 0); - mapheader_run_first_tag4_script_list_match(); + TryRunOnWarpIntoMapScript(); } static void sub_8086A68(void) { sub_808E16C(0, 0); RotatingGate_InitPuzzleAndGraphics(); - mapheader_run_script_with_tag_x7(); + RunOnReturnToFieldMapScript(); } static void sub_8086A80(void) diff --git a/src/party_menu.c b/src/party_menu.c index 7cf2303d4..97f782405 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3833,7 +3833,7 @@ static void sub_81B3828(void) static void sub_81B3894(void) { gPaletteFade.bufferTransferDisabled = TRUE; - gUnknown_0203CEC8.unk9 = gUnknown_0203CF20; + gUnknown_0203CEC8.unk9 = gLastViewedMonIndex; InitPartyMenu(gUnknown_0203CEC8.unk8_0, 0xFF, gUnknown_0203CEC8.unkB, 1, 21, sub_81B36FC, gUnknown_0203CEC8.exitCallback); } @@ -7319,9 +7319,9 @@ static void sub_81B97DC(struct Pokemon *mon, u8 slotTo, u8 slotFrom) u8 pp1 = GetMonData(mon, MON_DATA_PP1 + slotTo); u8 pp0 = GetMonData(mon, MON_DATA_PP1 + slotFrom); u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); - u8 ppBonusMask1 = gUnknown_08329D22[slotTo]; + u8 ppBonusMask1 = gPPUpGetMask[slotTo]; u8 ppBonusMove1 = (ppBonuses & ppBonusMask1) >> (slotTo * 2); - u8 ppBonusMask2 = gUnknown_08329D22[slotFrom]; + u8 ppBonusMask2 = gPPUpGetMask[slotFrom]; u8 ppBonusMove2 = (ppBonuses & ppBonusMask2) >> (slotFrom * 2); ppBonuses &= ~ppBonusMask1; ppBonuses &= ~ppBonusMask2; diff --git a/src/pokemon.c b/src/pokemon.c index 9553fdf17..a35033d49 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2227,9 +2227,9 @@ static const u8 sMonAnimationDelayTable[] = [SPECIES_CHIMECHO - 1] = 0x00, }; -const u8 gUnknown_08329D22[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values -const u8 gUnknown_08329D26[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count -const u8 gUnknown_08329D2A[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count +const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values +const u8 gPPUpSetMask[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count +const u8 gPPUpAddMask[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count const u8 gStatStageRatios[][2] = { @@ -4914,19 +4914,19 @@ void GetSpeciesName(u8 *name, u16 species) u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex) { u8 basePP = gBattleMoves[move].pp; - return basePP + ((basePP * 20 * ((gUnknown_08329D22[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100); + return basePP + ((basePP * 20 * ((gPPUpGetMask[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100); } void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex) { u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); - ppBonuses &= gUnknown_08329D26[moveIndex]; + ppBonuses &= gPPUpSetMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses); } void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex) { - mon->ppBonuses &= gUnknown_08329D26[moveIndex]; + mon->ppBonuses &= gPPUpSetMask[moveIndex]; } void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) @@ -5169,11 +5169,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if (r10 & 0x20) { r10 &= ~0x20; - dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gUnknown_08329D22[moveIndex]) >> (moveIndex * 2); + dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); var_38 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); if (dataUnsigned <= 2 && var_38 > 4) { - dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gUnknown_08329D2A[moveIndex]; + dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gPPUpAddMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - var_38; @@ -5429,13 +5429,13 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov var_3C++; break; case 4: - dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gUnknown_08329D22[moveIndex]) >> (moveIndex * 2); + dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); r5 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); if (dataUnsigned < 3 && r5 > 4) { dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); - dataUnsigned &= gUnknown_08329D26[moveIndex]; - dataUnsigned += gUnknown_08329D2A[moveIndex] * 3; + dataUnsigned &= gPPUpSetMask[moveIndex]; + dataUnsigned += gPPUpAddMask[moveIndex] * 3; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - r5; @@ -7025,7 +7025,7 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF } } -void sub_806EE98(void) +void StopPokemonAnimationDelayTask(void) { u8 delayTaskId = FindTaskIdByFunc(Task_PokemonSummaryAnimateAfterDelay); if (delayTaskId != 0xFF) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c1ebe91b4..cdfc4ba6b 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1218,7 +1218,7 @@ static const u16 gWallpaperPalettes_Plain[][16] = static const u32 gWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.4bpp.lz"); static const u32 gWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.bin.lz"); -// 12×18 tilemap +// 12x18 tilemap static const u32 gUnknown_085773C4[] = INCBIN_U32("graphics/unused/tilemap_5773C4.bin"); static const u16 gUnknown_08577574[][2] = @@ -6654,7 +6654,7 @@ static void sub_80CE8E4(void) if (sIsMonBeingMoved) sub_80CE790(); else - sBoxCursorPosition = gUnknown_0203CF20; + sBoxCursorPosition = gLastViewedMonIndex; } s16 CompactPartySlots(void) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 46bdc9ef3..bd1ae7802 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -97,25 +97,22 @@ static EWRAM_DATA struct PssData u8 currPageIndex; u8 minPageIndex; u8 maxPageIndex; - bool8 unk40C3; + bool8 lockMonFlag; // This is used to prevent the player from changing pokemon in the move deleter select, etc, but it is not needed because the input is handled differently there u16 newMove; u8 firstMoveIndex; u8 secondMoveIndex; bool8 unk40C8; - u8 unk40C9; + u8 bgDisplayOrder; // Determines the order page backgrounds are loaded while scrolling between them u8 filler40CA; u8 windowIds[8]; u8 spriteIds[28]; bool8 unk40EF; - s16 unk40F0; + s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or pokemon data u8 unk_filler4[6]; } *pssData = NULL; -EWRAM_DATA u8 gUnknown_0203CF20 = 0; -static EWRAM_DATA u8 gUnknown_0203CF21 = 0; -static EWRAM_DATA u8 gFiller_0203CF22[2] = {0}; -static EWRAM_DATA u8 sUnknownTaskId = 0; -static EWRAM_DATA u8 gFiller_0203CF25[3] = {0}; - +EWRAM_DATA u8 gLastViewedMonIndex = 0; +static EWRAM_DATA u8 sUnknown_0203CF21 = 0; +ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; struct UnkStruct_61CC04 @@ -144,11 +141,11 @@ static s8 sub_81C08F8(s8 a); static s8 sub_81C09B4(s8 a); static bool8 sub_81C0A50(struct Pokemon* mon); static void ChangePage(u8 taskId, s8 a); -static void sub_81C0B8C(u8 taskId); -static void sub_81C0C68(u8 taskId); -static void sub_81C0CC4(u8 taskId); -static void sub_81C0D44(u8 taskId); -static void sub_81C0E24(void); +static void PssScrollRight(u8 taskId); +static void PssScrollRightEnd(u8 taskId); +static void PssScrollLeft(u8 taskId); +static void PssScrollLeftEnd(u8 taskId); +static void CheckExperienceProgressBar(void); static void sub_81C0E48(u8 taskId); static void HandleInput_MoveSelect(u8 taskId); static bool8 sub_81C1040(void); @@ -160,11 +157,11 @@ static void sub_81C13B0(u8 taskId, bool8 b); static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2); static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2); static void sub_81C171C(u8 taskId); -static void sub_81C174C(u8 taskId); -static bool8 sub_81C18A8(void); -static void sub_81C18F4(u8 a); -static void sub_81C1940(u8 taskId); -static void sub_81C1BA0(void); +static void HandleReplaceMoveInput(u8 taskId); +static bool8 CanReplaceMove(void); +static void ShowHMMovesCantBeForgottenWindow(u8 a); +static void HandleHMMovesCantBeForgottenInput(u8 taskId); +static void DrawPagination(void); static void sub_81C1DA4(u16 a, s16 b); static void sub_81C1E20(u8 taskId); static void sub_81C1EFC(u16 a, s16 b, u16 c); @@ -172,10 +169,10 @@ static void sub_81C1F80(u8 taskId); static void sub_81C2074(u16 a, s16 b); static void sub_81C20F0(u8 taskId); static void sub_81C2194(u16 *a, u16 b, u8 c); -static void sub_81C2228(struct Pokemon* mon); +static void DrawPokerusCuredSymbol(struct Pokemon* mon); static void DrawExperienceProgressBar(struct Pokemon* mon); static void DrawContestMoveHearts(u16 move); -static void sub_81C2524(void); +static void LimitEggSummaryPageDisplay(void); static void ResetWindows(void); static void sub_81C25E8(void); static void sub_81C2628(void); @@ -237,7 +234,7 @@ static void sub_81C4568(u8 a, u8 b); static u8 CreatePokemonSprite(struct Pokemon *a, s16 *b); static u8 sub_81C47B4(struct Pokemon *unused); static void SpriteCB_Pokemon(struct Sprite *); -static void sub_81C48F0(void); +static void StopPokemonAnimations(void); static void CreateMonMarkingsSprite(struct Pokemon *mon); static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon); static void CreateCaughtBallSprite(struct Pokemon *mon); @@ -252,7 +249,7 @@ static void sub_81C4D18(u8 a); #include "data/text/move_descriptions.h" #include "data/text/nature_names.h" -static const struct BgTemplate gUnknown_0861CBB4[] = +ALIGNED(4) static const struct BgTemplate sUnknown_0861CBB4[] = { { .bg = 0, @@ -292,25 +289,25 @@ static const struct BgTemplate gUnknown_0861CBB4[] = }, }; -static const u16 gUnknown_0861CBC4[] = INCBIN_U16("graphics/interface/unk_tilemap2.bin"); -static const struct UnkStruct_61CC04 gUnknown_0861CBEC = +static const u16 sUnknown_0861CBC4[] = INCBIN_U16("graphics/interface/unk_tilemap2.bin"); +static const struct UnkStruct_61CC04 sUnknown_0861CBEC = { - gUnknown_0861CBC4, 1, 10, 2, 0, 18 + sUnknown_0861CBC4, 1, 10, 2, 0, 18 }; -static const struct UnkStruct_61CC04 gUnknown_0861CBF8 = +static const struct UnkStruct_61CC04 sUnknown_0861CBF8 = { - gUnknown_0861CBC4, 1, 10, 2, 0, 50 + sUnknown_0861CBC4, 1, 10, 2, 0, 50 }; -static const struct UnkStruct_61CC04 gUnknown_0861CC04 = +static const struct UnkStruct_61CC04 sUnknown_0861CC04 = { gSummaryScreenPowAcc_Tilemap, 0, 10, 7, 0, 45 }; -static const struct UnkStruct_61CC04 gUnknown_0861CC10 = +static const struct UnkStruct_61CC04 sUnknown_0861CC10 = { gUnknown_08DC3C34, 0, 10, 7, 0, 45 }; static const s8 gUnknown_0861CC1C[] = {0, 2, 3, 1, 4, 5}; -static const struct WindowTemplate gUnknown_0861CC24[] = +static const struct WindowTemplate sSummaryTemplate[] = { {//Text for Pokemon Info .bg = 0, @@ -494,7 +491,7 @@ static const struct WindowTemplate gUnknown_0861CC24[] = }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_0861CCCC[] = +static const struct WindowTemplate sPageInfoTemplate[] = { {//Original Trainer .bg = 0, @@ -533,7 +530,7 @@ static const struct WindowTemplate gUnknown_0861CCCC[] = .baseBlock = 557, }, }; -static const struct WindowTemplate gUnknown_0861CCEC[] = +static const struct WindowTemplate sPageSkillsTemplate[] = { {//Held Item string .bg = 0, @@ -581,7 +578,7 @@ static const struct WindowTemplate gUnknown_0861CCEC[] = .baseBlock = 543, }, }; -static const struct WindowTemplate gUnknown_0861CD14[] = +static const struct WindowTemplate sPageMovesTemplate[] = // This is used for both battle and contest moves { {//Move names? .bg = 0, @@ -628,8 +625,8 @@ static const u8 sTextColors_861CD2C[][3] = {0, 7, 8} }; -static const u8 gUnknown_0861CD53[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); -static const u8 gUnknown_0861CDD3[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); +static const u8 sSummaryAButtonBitmap[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); +static const u8 sSummaryBButtonBitmap[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); static void (*const sTextPrinterFunctions[])(void) = { @@ -647,11 +644,11 @@ static void (*const sTextPrinterTasks[])(u8 taskId) = Task_PrintContestMoves }; -static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); -static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); -static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); -static const u8 gUnknown_0861CE8E[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); -static const u8 gUnknown_0861CE97[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); +static const u8 sMemoNatureTextColor[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); +static const u8 sMemoMiscTextColor[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); // This is also affected by palettes, apparently +static const u8 sStatsLeftColumnLayout[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); +static const u8 sStatsRightColumnLayout[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); +static const u8 sMovesPPLayout[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); #define TAG_MOVE_TYPES 30002 @@ -847,61 +844,61 @@ static const struct OamData gOamData_861CFF4 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_861CFFC[] = { +static const union AnimCmd sSpriteAnim_861CFFC[] = { ANIMCMD_FRAME(0, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D004[] = { +static const union AnimCmd sSpriteAnim_861D004[] = { ANIMCMD_FRAME(4, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D00C[] = { +static const union AnimCmd sSpriteAnim_861D00C[] = { ANIMCMD_FRAME(8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D014[] = { +static const union AnimCmd sSpriteAnim_861D014[] = { ANIMCMD_FRAME(12, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D01C[] = { +static const union AnimCmd sSpriteAnim_861D01C[] = { ANIMCMD_FRAME(16, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D024[] = { +static const union AnimCmd sSpriteAnim_861D024[] = { ANIMCMD_FRAME(16, 0, TRUE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D02C[] = { +static const union AnimCmd sSpriteAnim_861D02C[] = { ANIMCMD_FRAME(20, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D034[] = { +static const union AnimCmd sSpriteAnim_861D034[] = { ANIMCMD_FRAME(24, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D03C[] = { +static const union AnimCmd sSpriteAnim_861D03C[] = { ANIMCMD_FRAME(24, 0, TRUE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D044[] = { +static const union AnimCmd sSpriteAnim_861D044[] = { ANIMCMD_FRAME(28, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_861D04C[] = { - gSpriteAnim_861CFFC, - gSpriteAnim_861D004, - gSpriteAnim_861D00C, - gSpriteAnim_861D014, - gSpriteAnim_861D01C, - gSpriteAnim_861D024, - gSpriteAnim_861D02C, - gSpriteAnim_861D034, - gSpriteAnim_861D03C, - gSpriteAnim_861D044, +static const union AnimCmd *const sSpriteAnimTable_861D04C[] = { + sSpriteAnim_861CFFC, + sSpriteAnim_861D004, + sSpriteAnim_861D00C, + sSpriteAnim_861D014, + sSpriteAnim_861D01C, + sSpriteAnim_861D024, + sSpriteAnim_861D02C, + sSpriteAnim_861D034, + sSpriteAnim_861D03C, + sSpriteAnim_861D044, }; -static const struct CompressedSpriteSheet gUnknown_0861D074 = +static const struct CompressedSpriteSheet sMoveSelectorSpriteSheet = { - .data = gUnknown_08D97BEC, + .data = gMoveSelectorBitmap, .size = 0x400, .tag = 30000 }; @@ -915,7 +912,7 @@ static const struct SpriteTemplate gUnknown_0861D084 = .tileTag = 30000, .paletteTag = 30000, .oam = &gOamData_861CFF4, - .anims = gSpriteAnimTable_861D04C, + .anims = sSpriteAnimTable_861D04C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -994,7 +991,7 @@ static const struct SpriteTemplate sSpriteTemplate_StatusCondition = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const u16 gUnknown_0861D120[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); +static const u16 sSummaryMarkingsPalette[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); // code void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) @@ -1026,7 +1023,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, case PSS_MODE_SELECT_MOVE: pssData->minPageIndex = 2; pssData->maxPageIndex = 3; - pssData->unk40C3 = TRUE; + pssData->lockMonFlag = TRUE; break; } @@ -1101,7 +1098,7 @@ static bool8 SummaryScreen_LoadGraphics(void) break; case 5: InitBGs(); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; break; case 6: @@ -1113,12 +1110,12 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 8: - sub_81C1BA0(); + DrawPagination(); gMain.state++; break; case 9: CopyMonToSummaryStruct(&pssData->currentMon); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; break; case 10: @@ -1148,14 +1145,14 @@ static bool8 SummaryScreen_LoadGraphics(void) case 16: ResetSpriteIds(); CreateMoveTypeIcons(); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; break; case 17: - pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->unk40F0); + pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->switchCounter); if (pssData->spriteIds[0] != 0xFF) { - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; } break; @@ -1202,7 +1199,7 @@ static bool8 SummaryScreen_LoadGraphics(void) static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0861CBB4, ARRAY_COUNT(gUnknown_0861CBB4)); + InitBgsFromTemplates(0, sUnknown_0861CBB4, ARRAY_COUNT(sUnknown_0861CBB4)); SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); SetBgTilemapBuffer(2, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); SetBgTilemapBuffer(3, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); @@ -1220,64 +1217,64 @@ static void InitBGs(void) static bool8 SummaryScreen_DecompressGraphics(void) { - switch (pssData->unk40F0) + switch (pssData->switchCounter) { case 0: reset_temp_tile_data_buffers(); - decompress_and_copy_tile_data_to_vram(1, &gUnknown_08D97D0C, 0, 0, 0); - pssData->unk40F0++; + decompress_and_copy_tile_data_to_vram(1, &gStatusScreenBitmap, 0, 0, 0); + pssData->switchCounter++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(gUnknown_08D9862C, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); - pssData->unk40F0++; + LZDecompressWram(gPageInfoTilemap, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); + pssData->switchCounter++; } break; case 2: LZDecompressWram(gUnknown_08D98CC8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][1]); - pssData->unk40F0++; + pssData->switchCounter++; break; case 3: - LZDecompressWram(gUnknown_08D987FC, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); - pssData->unk40F0++; + LZDecompressWram(gPageSkillsTilemap, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); + pssData->switchCounter++; break; case 4: - LZDecompressWram(gUnknown_08D9898C, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); - pssData->unk40F0++; + LZDecompressWram(gPageBattleMovesTilemap, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); + pssData->switchCounter++; break; case 5: - LZDecompressWram(gUnknown_08D98B28, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); - pssData->unk40F0++; + LZDecompressWram(gPageContestMovesTilemap, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); + pssData->switchCounter++; break; case 6: - LoadCompressedPalette(gUnknown_08D9853C, 0, 0x100); + LoadCompressedPalette(gStatusScreenPalette, 0, 0x100); LoadPalette(&gUnknown_08D85620, 0x81, 0x1E); - pssData->unk40F0++; + pssData->switchCounter++; break; case 7: LoadCompressedSpriteSheet(&sSpriteSheet_MoveTypes); - pssData->unk40F0++; + pssData->switchCounter++; break; case 8: - LoadCompressedSpriteSheet(&gUnknown_0861D074); - pssData->unk40F0++; + LoadCompressedSpriteSheet(&sMoveSelectorSpriteSheet); + pssData->switchCounter++; break; case 9: LoadCompressedSpriteSheet(&sStatusIconsSpriteSheet); - pssData->unk40F0++; + pssData->switchCounter++; break; case 10: LoadCompressedSpritePalette(&sStatusIconsSpritePalette); - pssData->unk40F0++; + pssData->switchCounter++; break; case 11: LoadCompressedSpritePalette(&gUnknown_0861D07C); - pssData->unk40F0++; + pssData->switchCounter++; break; case 12: LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; return TRUE; } return FALSE; @@ -1301,7 +1298,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) { u32 i; struct PokeSummary *sum = &pssData->summary; - switch (pssData->unk40F0) + switch (pssData->switchCounter) { case 0: sum->species = GetMonData(a, MON_DATA_SPECIES); @@ -1366,7 +1363,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) sum->ribbonCount = GetMonData(a, MON_DATA_RIBBON_COUNT); return TRUE; } - pssData->unk40F0++; + pssData->switchCounter++; return FALSE; } @@ -1397,8 +1394,8 @@ static void sub_81C0348(void) if (pssData->currPageIndex != PSS_PAGE_BATTLE_MOVES && pssData->currPageIndex != PSS_PAGE_CONTEST_MOVES) PutWindowTilemap(13); } - sub_81C2524(); - sub_81C2228(&pssData->currentMon); + LimitEggSummaryPageDisplay(); + DrawPokerusCuredSymbol(&pssData->currentMon); } static void sub_81C0434(void) @@ -1418,7 +1415,7 @@ static void CloseSummaryScreen(u8 taskId) if (sub_81221EC() != TRUE && !gPaletteFade.active) { SetMainCallback2(pssData->callback); - gUnknown_0203CF20 = pssData->curMonIndex; + gLastViewedMonIndex = pssData->curMonIndex; SummaryScreen_DestroyUnknownTask(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1457,7 +1454,7 @@ static void HandleInput(u8 taskId) { if (pssData->currPageIndex == PSS_PAGE_INFO) { - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } @@ -1470,7 +1467,7 @@ static void HandleInput(u8 taskId) } else if (gMain.newKeys & B_BUTTON) { - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } @@ -1481,7 +1478,7 @@ static void ChangePokemon(u8 taskId, s8 a) { s8 r4_2; - if (!pssData->unk40C3) + if (!pssData->lockMonFlag) { if (pssData->isBoxMon == TRUE) { @@ -1545,7 +1542,7 @@ static void sub_81C0704(u8 taskId) break; case 3: CopyMonToSummaryStruct(&pssData->currentMon); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; break; case 4: if (ExtractMonDataToSummaryStruct(&pssData->currentMon) == FALSE) @@ -1560,7 +1557,7 @@ static void sub_81C0704(u8 taskId) case 7: if (pssData->summary.unk7) sub_81C2074(10, -2); - sub_81C2228(&pssData->currentMon); + DrawPokerusCuredSymbol(&pssData->currentMon); data[1] = 0; break; case 8: @@ -1568,7 +1565,7 @@ static void sub_81C0704(u8 taskId) if (pssData->spriteIds[0] == 0xFF) return; gSprites[pssData->spriteIds[0]].data[2] = 1; - sub_81C0E24(); + CheckExperienceProgressBar(); data[1] = 0; break; case 9: @@ -1579,7 +1576,7 @@ static void sub_81C0704(u8 taskId) break; case 11: PrintPageSpecificText(pssData->currPageIndex); - sub_81C2524(); + LimitEggSummaryPageDisplay(); break; case 12: gSprites[pssData->spriteIds[0]].data[2] = 0; @@ -1678,19 +1675,19 @@ static void ChangePage(u8 taskId, s8 b) pssData->currPageIndex += b; data[0] = 0; if (b == 1) - SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func); + SetTaskFuncWithFollowupFunc(taskId, PssScrollRight, gTasks[taskId].func); else - SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); + SetTaskFuncWithFollowupFunc(taskId, PssScrollLeft, gTasks[taskId].func); CreateTextPrinterTask(pssData->currPageIndex); HidePageSpecificSprites(); } -static void sub_81C0B8C(u8 taskId) +static void PssScrollRight(u8 taskId) // Scroll right { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (pssData->unk40C9 == 0) + if (pssData->bgDisplayOrder == 0) { data[1] = 1; SetBgAttribute(1, BG_ATTR_PRIORITY, 1); @@ -1712,28 +1709,28 @@ static void sub_81C0B8C(u8 taskId) ChangeBgX(data[1], 0x2000, 1); data[0] += 32; if (data[0] > 0xFF) - gTasks[taskId].func = sub_81C0C68; + gTasks[taskId].func = PssScrollRightEnd; } -static void sub_81C0C68(u8 taskId) +static void PssScrollRightEnd(u8 taskId) // display right { s16 *data = gTasks[taskId].data; - pssData->unk40C9 ^= 1; + pssData->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; - sub_81C1BA0(); + DrawPagination(); CreatePageWindowTilemaps(pssData->currPageIndex); SetTypeIcons(); - sub_81C0E24(); + CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); } -static void sub_81C0CC4(u8 taskId) +static void PssScrollLeft(u8 taskId) // Scroll left { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (pssData->unk40C9 == 0) + if (pssData->bgDisplayOrder == 0) data[1] = 2; else data[1] = 1; @@ -1742,13 +1739,13 @@ static void sub_81C0CC4(u8 taskId) ChangeBgX(data[1], 0x2000, 2); data[0] += 32; if (data[0] > 0xFF) - gTasks[taskId].func = sub_81C0D44; + gTasks[taskId].func = PssScrollLeftEnd; } -static void sub_81C0D44(u8 taskId) +static void PssScrollLeftEnd(u8 taskId) // display left { s16 *data = gTasks[taskId].data; - if (pssData->unk40C9 == 0) + if (pssData->bgDisplayOrder == 0) { SetBgAttribute(1, BG_ATTR_PRIORITY, 1); SetBgAttribute(2, BG_ATTR_PRIORITY, 2); @@ -1767,17 +1764,17 @@ static void sub_81C0D44(u8 taskId) } ShowBg(1); ShowBg(2); - pssData->unk40C9 ^= 1; + pssData->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; - sub_81C1BA0(); + DrawPagination(); CreatePageWindowTilemaps(pssData->currPageIndex); SetTypeIcons(); - sub_81C0E24(); + CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); } -static void sub_81C0E24(void) +static void CheckExperienceProgressBar(void) { if (pssData->currPageIndex == 1) DrawExperienceProgressBar(&pssData->currentMon); @@ -2025,9 +2022,9 @@ static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) u8 ppBonuses = summary->ppBonuses; // Calculate PP bonuses - u8 ppUpMask1 = gUnknown_08329D22[moveIndex1]; + u8 ppUpMask1 = gPPUpGetMask[moveIndex1]; u8 ppBonusMove1 = (ppBonuses & ppUpMask1) >> (moveIndex1 * 2); - u8 ppUpMask2 = gUnknown_08329D22[moveIndex2]; + u8 ppUpMask2 = gPPUpGetMask[moveIndex2]; u8 ppBonusMove2 = (ppBonuses & ppUpMask2) >> (moveIndex2 * 2); ppBonuses &= ~ppUpMask1; ppBonuses &= ~ppUpMask2; @@ -2060,9 +2057,9 @@ static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2 u8 ppBonuses = summary->ppBonuses; // Calculate PP bonuses - u8 ppUpMask1 = gUnknown_08329D22[moveIndex1]; + u8 ppUpMask1 = gPPUpGetMask[moveIndex1]; u8 ppBonusMove1 = (ppBonuses & ppUpMask1) >> (moveIndex1 * 2); - u8 ppUpMask2 = gUnknown_08329D22[moveIndex2]; + u8 ppUpMask2 = gPPUpGetMask[moveIndex2]; u8 ppBonusMove2 = (ppBonuses & ppUpMask2) >> (moveIndex2 * 2); ppBonuses &= ~ppUpMask1; ppBonuses &= ~ppUpMask2; @@ -2088,10 +2085,10 @@ static void sub_81C171C(u8 taskId) { SetNewMoveTypeIcon(); sub_81C4AF8(8); - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } -static void sub_81C174C(u8 taskId) +static void HandleReplaceMoveInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2119,26 +2116,26 @@ static void sub_81C174C(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (sub_81C18A8() == TRUE) + if (CanReplaceMove() == TRUE) { - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); - gUnknown_0203CF21 = pssData->firstMoveIndex; - gSpecialVar_0x8005 = gUnknown_0203CF21; + sUnknown_0203CF21 = pssData->firstMoveIndex; + gSpecialVar_0x8005 = sUnknown_0203CF21; BeginCloseSummaryScreen(taskId); } else { PlaySE(SE_HAZURE); - sub_81C18F4(taskId); + ShowHMMovesCantBeForgottenWindow(taskId); } } else if (gMain.newKeys & B_BUTTON) { u32 var1; - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); - gUnknown_0203CF21 = 4; + sUnknown_0203CF21 = 4; gSpecialVar_0x8005 = 4; BeginCloseSummaryScreen(taskId); } @@ -2146,7 +2143,7 @@ static void sub_81C174C(u8 taskId) } } -static bool8 sub_81C18A8(void) +static bool8 CanReplaceMove(void) { if (pssData->firstMoveIndex == MAX_MON_MOVES || pssData->newMove == MOVE_NONE || IsMoveHm(pssData->summary.moves[pssData->firstMoveIndex]) != 1) return TRUE; @@ -2154,7 +2151,7 @@ static bool8 sub_81C18A8(void) return FALSE; } -static void sub_81C18F4(u8 taskId) +static void ShowHMMovesCantBeForgottenWindow(u8 taskId) { ClearWindowTilemap(14); ClearWindowTilemap(15); @@ -2162,10 +2159,11 @@ static void sub_81C18F4(u8 taskId) sub_81C1DA4(0, 3); sub_81C1EFC(0, 3, 0); PrintHMMovesCantBeForgotten(); - gTasks[taskId].func = sub_81C1940; + gTasks[taskId].func = HandleHMMovesCantBeForgottenInput; } -static void sub_81C1940(u8 taskId) +// This redraws the power/accuracy window when the player scrolls out of the "HM Moves can't be forgotten" message +static void HandleHMMovesCantBeForgottenInput(u8 taskId) { s16* data = gTasks[taskId].data; u16 move; @@ -2177,7 +2175,7 @@ static void sub_81C1940(u8 taskId) data[0] = 4; sub_81C1070(&data[0], -1, &pssData->firstMoveIndex); data[1] = 0; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } else if (gMain.newKeys & DPAD_DOWN) { @@ -2185,7 +2183,7 @@ static void sub_81C1940(u8 taskId) data[0] = 4; sub_81C1070(&data[0], 1, &pssData->firstMoveIndex); data[1] = 0; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { @@ -2195,7 +2193,7 @@ static void sub_81C1940(u8 taskId) if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); move = pssData->summary.moves[pssData->firstMoveIndex]; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; ChangePage(taskId, -1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); @@ -2209,7 +2207,7 @@ static void sub_81C1940(u8 taskId) if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); move = pssData->summary.moves[pssData->firstMoveIndex]; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; ChangePage(taskId, 1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); @@ -2225,17 +2223,17 @@ static void sub_81C1940(u8 taskId) schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } } } u8 sub_81C1B94(void) { - return gUnknown_0203CF21; + return sUnknown_0203CF21; } -static void sub_81C1BA0(void) +static void DrawPagination(void) // Updates the pagination dots at the top of the summary screen { u16 *alloced = Alloc(32); u8 i; @@ -2333,11 +2331,11 @@ static void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 static void sub_81C1DA4(u16 a, s16 b) { - if (b > gUnknown_0861CC04.field_6) - b = gUnknown_0861CC04.field_6; - if (b == 0 || b == gUnknown_0861CC04.field_6) + if (b > sUnknown_0861CC04.field_6) + b = sUnknown_0861CC04.field_6; + if (b == 0 || b == sUnknown_0861CC04.field_6) { - sub_81C1CB0(&gUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); + sub_81C1CB0(&sUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); } else { @@ -2359,12 +2357,12 @@ static void sub_81C1E20(u8 taskId) { data[1] = 0; } - else if (data[1] > gUnknown_0861CC04.field_6) + else if (data[1] > sUnknown_0861CC04.field_6) { - data[1] = gUnknown_0861CC04.field_6; + data[1] = sUnknown_0861CC04.field_6; } - sub_81C1CB0(&gUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); - if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6) + sub_81C1CB0(&sUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); + if (data[1] <= 0 || data[1] >= sUnknown_0861CC04.field_6) { if (data[0] < 0) { @@ -2386,10 +2384,10 @@ static void sub_81C1E20(u8 taskId) static void sub_81C1EFC(u16 a, s16 b, u16 move) { - if (b > gUnknown_0861CC10.field_6) - b = gUnknown_0861CC10.field_6; - if (b == 0 || b == gUnknown_0861CC10.field_6) - sub_81C1CB0(&gUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); + if (b > sUnknown_0861CC10.field_6) + b = sUnknown_0861CC10.field_6; + if (b == 0 || b == sUnknown_0861CC10.field_6) + sub_81C1CB0(&sUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2409,16 +2407,16 @@ static void sub_81C1F80(u8 taskId) { data[1] = 0; } - else if (data[1] > gUnknown_0861CC10.field_6) + else if (data[1] > sUnknown_0861CC10.field_6) { - data[1] = gUnknown_0861CC10.field_6; + data[1] = sUnknown_0861CC10.field_6; } - sub_81C1CB0(&gUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); - if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6) + sub_81C1CB0(&sUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); + if (data[1] <= 0 || data[1] >= sUnknown_0861CC10.field_6) { if (data[0] < 0) { - if (pssData->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) + if (pssData->currPageIndex == 3 && FuncIsActiveTask(PssScrollRight) == 0) PutWindowTilemap(15); DrawContestMoveHearts(data[2]); } @@ -2439,12 +2437,12 @@ static void sub_81C1F80(u8 taskId) static void sub_81C2074(u16 a, s16 b) { - if (b > gUnknown_0861CBEC.field_6) - b = gUnknown_0861CBEC.field_6; - if (b == 0 || b == gUnknown_0861CBEC.field_6) + if (b > sUnknown_0861CBEC.field_6) + b = sUnknown_0861CBEC.field_6; + if (b == 0 || b == sUnknown_0861CBEC.field_6) { - sub_81C1CB0(&gUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); - sub_81C1CB0(&gUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); } else { @@ -2460,12 +2458,12 @@ static void sub_81C20F0(u8 taskId) data[1] += data[0]; if (data[1] < 0) data[1] = 0; - else if (data[1] > gUnknown_0861CBEC.field_6) - data[1] = gUnknown_0861CBEC.field_6; - sub_81C1CB0(&gUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); - sub_81C1CB0(&gUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + else if (data[1] > sUnknown_0861CBEC.field_6) + data[1] = sUnknown_0861CBEC.field_6; + sub_81C1CB0(&sUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&sUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); - if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6) + if (data[1] <= 0 || data[1] >= sUnknown_0861CBEC.field_6) { if (data[0] < 0) { @@ -2505,9 +2503,9 @@ static void sub_81C2194(u16 *output, u16 palette, bool8 c) } } -static void sub_81C2228(struct Pokemon *mon) +static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mon has been cured of pokerus { - if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) + if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) // If yes it draws the cured symbol { pssData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; pssData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; @@ -2615,7 +2613,7 @@ static void DrawContestMoveHearts(u16 move) } } -static void sub_81C2524(void) +static void LimitEggSummaryPageDisplay(void) // If the pokemon is an egg, limit the number of pages displayed to 1 { if (pssData->summary.isEgg) ChangeBgX(3, 0x10000, 0); @@ -2626,7 +2624,7 @@ static void sub_81C2524(void) static void ResetWindows(void) { u8 i; - InitWindows(gUnknown_0861CC24); + InitWindows(sSummaryTemplate); DeactivateAllTextPrinters(); for (i = 0; i < 20; i++) @@ -2729,7 +2727,8 @@ static void sub_81C27DC(struct Pokemon *mon, u16 species) static void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) { - BlitBitmapToWindow(windowId, (bButton) ? gUnknown_0861CDD3 : gUnknown_0861CDD3 - 0x80, x, 0, 16, 16); + // sSummaryBButtonBitmap - 0x80 = sSummaryAButtonBitmap + BlitBitmapToWindow(windowId, (bButton) ? sSummaryBButtonBitmap : sSummaryBButtonBitmap - 0x80, x, 0, 16, 16); } static void PrintPageNamesAndStatsPageToWindows(void) @@ -2987,7 +2986,7 @@ static void PrintMonOTName(void) int x; if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE) { - windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); + windowId = AddWindowFromTemplateList(sPageInfoTemplate, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); x = GetStringWidth(1, gText_OTSlash, 0); if (pssData->summary.OTGender == 0) @@ -3004,20 +3003,20 @@ static void PrintMonOTID(void) { ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)pssData->summary.OTID, 2, 5); xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, xPos, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 1), gStringVar1, xPos, 1, 0, 1); } } static void PrintMonAbilityName(void) { u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), gAbilityNames[ability], 0, 1, 0, 1); } static void PrintMonAbilityDescription(void) { u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } static void BufferMonTrainerMemo(void) @@ -3026,8 +3025,8 @@ static void BufferMonTrainerMemo(void) const u8 *text; DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sMemoNatureTextColor); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sMemoMiscTextColor); BufferNatureString(); if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE) @@ -3074,7 +3073,7 @@ static void BufferMonTrainerMemo(void) static void PrintMonTrainerMemo(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 3), gStringVar4, 0, 1, 0, 0); } static void BufferNatureString(void) @@ -3147,7 +3146,7 @@ static bool8 IsInGamePartnerMon(void) static void PrintEggOTName(void) { - u32 windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); + u32 windowId = AddWindowFromTemplateList(sPageInfoTemplate, 0); u32 width = GetStringWidth(1, gText_OTSlash, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); SummaryScreen_PrintTextOnWindow(windowId, gText_FiveMarks, width, 1, 0, 1); @@ -3159,7 +3158,7 @@ static void PrintEggOTID(void) StringCopy(gStringVar1, gText_UnkCtrlF907F908); StringAppend(gStringVar1, gText_FiveMarks); x = GetStringRightAlignXOffset(1, gStringVar1, 56); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, x, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 1), gStringVar1, x, 1, 0, 1); } static void PrintEggState(void) @@ -3178,7 +3177,7 @@ static void PrintEggState(void) else text = gText_EggWillTakeALongTime; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), text, 0, 1, 0, 0); } static void PrintEggMemo(void) @@ -3202,7 +3201,7 @@ static void PrintEggMemo(void) text = gText_OddEggFoundByCouple; } - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 3), text, 0, 1, 0, 0); } static void PrintSkillsPageText(void) @@ -3270,7 +3269,7 @@ static void PrintHeldItemName(void) } offset = GetStringCenterAlignXOffset(1, text, 72) + 6; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 0), text, offset, 1, 0, 0); } static void PrintRibbonCount(void) @@ -3290,7 +3289,7 @@ static void PrintRibbonCount(void) } offset = GetStringCenterAlignXOffset(1, text, 70) + 6; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 1), text, offset, 1, 0, 0); } static void BufferLeftColumnStats(void) @@ -3310,7 +3309,7 @@ static void BufferLeftColumnStats(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString); DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE82); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsLeftColumnLayout); Free(currentHPString); Free(maxHPString); @@ -3320,7 +3319,7 @@ static void BufferLeftColumnStats(void) static void PrintLeftColumnStats(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 2), gStringVar4, 4, 1, 0, 0); } static void BufferRightColumnStats(void) @@ -3333,18 +3332,18 @@ static void BufferRightColumnStats(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar3); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE8E); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsRightColumnLayout); } static void PrintRightColumnStats(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 3), gStringVar4, 2, 1, 0, 0); } static void PrintExpPointsNextLevel(void) { struct PokeSummary *sum = &pssData->summary; - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CCEC, 4); + u8 windowId = AddWindowFromTemplateList(sPageSkillsTemplate, 4); int offset; u32 expToNextLevel; @@ -3436,8 +3435,8 @@ static void PrintMoveNameAndPP(u8 moveIndex) const u8 *text; u32 offset; struct PssData *summaryStruct = pssData; - u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); - u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u8 moveNameWindowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 ppValueWindowId = AddWindowFromTemplateList(sPageMovesTemplate, 1); u16 move = summaryStruct->summary.moves[moveIndex]; if (move != 0) @@ -3449,7 +3448,7 @@ static void PrintMoveNameAndPP(u8 moveIndex) DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sMovesPPLayout); text = gStringVar4; ppState = GetCurrentPpToMaxPpState(summaryStruct->summary.pp[moveIndex], pp) + 9; offset = GetStringRightAlignXOffset(1, text, 44); @@ -3560,14 +3559,14 @@ static void PrintContestMoveDescription(u8 moveSlot) if (move != MOVE_NONE) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); SummaryScreen_PrintTextOnWindow(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); } } static void PrintMoveDetails(u16 move) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); FillWindowPixelBuffer(windowId, 0); if (move != MOVE_NONE) { @@ -3592,8 +3591,8 @@ static void PrintMoveDetails(u16 move) static void PrintNewMoveDetailsOrCancelText(void) { - u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); - u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); if (pssData->newMove == MOVE_NONE) { @@ -3612,22 +3611,22 @@ static void PrintNewMoveDetailsOrCancelText(void) DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sMovesPPLayout); SummaryScreen_PrintTextOnWindow(windowId2, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x2C), 0x41, 0, 12); } } static void sub_81C4064(void) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); FillWindowPixelRect(windowId, 0, 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) { - u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); - u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); FillWindowPixelRect(windowId1, 0, 0, moveIndex1 * 16, 0x48, 0x10); FillWindowPixelRect(windowId1, 0, 0, moveIndex2 * 16, 0x48, 0x10); @@ -3641,7 +3640,7 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) static void PrintHMMovesCantBeForgotten(void) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); FillWindowPixelBuffer(windowId, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } @@ -3942,14 +3941,14 @@ static bool32 SummaryScreen_DoesSpriteHaveCallback(void) } } -static void sub_81C48F0(void) +static void StopPokemonAnimations(void) // A subtle effect, this function stops pokemon animations when leaving the PSS { u16 i; u16 paletteIndex; gSprites[pssData->spriteIds[0]].animPaused = TRUE; gSprites[pssData->spriteIds[0]].callback = SpriteCallbackDummy; - sub_806EE98(); + StopPokemonAnimationDelayTask(); paletteIndex = (gSprites[pssData->spriteIds[0]].oam.paletteNum * 16) | 0x100; @@ -3961,7 +3960,7 @@ static void sub_81C48F0(void) static void CreateMonMarkingsSprite(struct Pokemon *mon) { - struct Sprite *sprite = sub_811FF94(30003, 30003, gUnknown_0861D120); + struct Sprite *sprite = sub_811FF94(30003, 30003, sSummaryMarkingsPalette); pssData->markingsSprite = sprite; diff --git a/src/pokenav.c b/src/pokenav.c index 7b0cb52fc..41434606c 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -13,26 +13,45 @@ #include "bg.h" #include "menu.h" #include "graphics.h" +#include "dma3.h" #include "gba/macro.h" #include "decompress.h" #include "strings.h" #include "constants/rgb.h" +enum +{ + MODE_NORMAL, // Chosen from Start menu. + MODE_FORCE_CALL_1, // Used for the script's special. Has to choose Match Call and make a call. + MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav. +}; + #define UNKNOWN_OFFSET 100000 +struct UnknownSubStruct_0203CF40 +{ + void (*unk0)(u32); + u32 (*unk4)(void); + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + struct Sprite *unk18; + struct Sprite *unk1C[2]; + struct Sprite *unk24[2]; + u8 tilemapBuffer[0x1000]; +}; + +#define SUBSTRUCT_COUNT 19 + struct UnknownStruct_0203CF40 { u32 (*field0)(void); u32 field4; - u16 field8; + u16 mode; u16 fieldA; - u32 fieldC; - void *field10[19]; -}; - -struct UnknownStruct_sub_81C76C4 -{ - u32 data[523]; + bool32 hasAnyRibbons; + struct UnknownSubStruct_0203CF40 *field10[SUBSTRUCT_COUNT]; }; extern u32 sub_81C9430(void); @@ -101,34 +120,42 @@ extern u32 sub_81CFE08(void); u32 sub_81C791C(s32 a0); bool32 sub_81C756C(u32 a0); bool32 sub_81C76C4(void); -u32 AnyMonHasRibbon(void); +static bool32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); u32 sub_81C76FC(void); u32 sub_81C786C(void); u32 sub_81C7764(s32 a0); -u32 atk47_cmd47(s32 a0); +u32 sub_81C78D4(s32 a0); bool32 sub_81C7738(void); void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 a1, u32 a2); -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); -void sub_81C7360(struct UnknownStruct_0203CF40 *a0); -void sub_81C7650(u32 index); +void sub_81C7834(void *func1, void *func2); +static void InitMainStruct(struct UnknownStruct_0203CF40 *a0); +void FreeSubstruct(u32 index); void sub_81C7850(u32 a0); void sub_81C7BF8(u32 a0); void sub_81C71E4(u8 a0); -void sub_81C7170(u8 a0); +void sub_81C7170(u8 taskId); void sub_81C742C(u8 taskId); void sub_81C7710(void); -void sub_81C75F4(void); -void sub_81C7334(void); -void sub_81C7418(void); -void sub_81C7400(void); +static void InitKeys_(void); +static void FreeVars(void); +static void VblankCb_Pokenav(void); +static void Cb2_Pokenav(void); void sub_81C7C28(void); void sub_81C72BC(void); void sub_81C7B74(void); void sub_81C7C94(void); - - +void sub_81C7F24(u32 arg0); +void sub_81C7E58(u32 arg0); +void sub_81C8110(bool32 arg0); +void sub_81C80D4(bool32 arg0); +void sub_81C803C(u32 arg0, bool32 arg1); +void sub_81C8088(u32 arg0, bool32 arg1); +void sub_81C814C(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3); +void sub_81C817C(struct Sprite *sprite); + +// Const rom data. u32 (*const gUnknown_0861F3EC[15][7])(void) = { { @@ -272,15 +299,17 @@ const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); const u32 gUnknown_0861F5B0[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz"); const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.lz"); -const struct BgTemplate gUnknown_0861FA04 = +const struct BgTemplate gUnknown_0861FA04[] = { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 5, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + } }; const struct WindowTemplate gUnknown_0861FA08[2] = @@ -305,7 +334,7 @@ const struct WindowTemplate gUnknown_0861FA08[2] = }, }; -const u8 *const (MenuButtonReminders[12]) = +const u8 *const (sMenuButtonReminders[12]) = { gText_Navgear_ClearButtonList, gText_NavgearMap_ZoomedOutButtons, @@ -341,10 +370,6 @@ const struct SpritePalette gUnknown_0861FA54[2] = .data = gUnknown_0861F590, .tag = 0, }, - { - .data = NULL, - .tag = 0, - } }; const struct CompressedSpriteSheet gUnknown_0861FA64 = @@ -358,16 +383,17 @@ extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; extern const struct SpriteTemplate gUnknown_0861FB04; -u32 sub_81C7078(u32 (*a0)(s32), u32 a1) +// code +u32 sub_81C7078(u32 (*func)(s32), u32 priority) { u16 taskId; if (!IsUpdateLinkStateCBActive()) - taskId = CreateTask(sub_81C7170, a1); + taskId = CreateTask(sub_81C7170, priority); else - taskId = CreateTask(sub_81C71E4, a1); + taskId = CreateTask(sub_81C71E4, priority); - SetWordTaskArg(taskId, 1, (u32)a0); + SetWordTaskArg(taskId, 1, (u32)func); gTasks[taskId].data[3] = gUnknown_0203CF3C; return ((gUnknown_0203CF3C++) << 16) | taskId; @@ -375,62 +401,52 @@ u32 sub_81C7078(u32 (*a0)(s32), u32 a1) bool32 sub_81C70D8(u32 a0) { - u32 v1 = a0 & 0xFFFF; + u32 taskId = a0 & 0xFFFF; u32 v2 = a0 >> 16; - if (gTasks[v1].isActive - && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) - && gTasks[v1].data[3] == v2) - { - + + if (gTasks[taskId].isActive + && (gTasks[taskId].func == sub_81C7170 || gTasks[taskId].func == sub_81C71E4) + && gTasks[taskId].data[3] == v2) return TRUE; - } else - { return FALSE; - } } bool32 sub_81C7124(u32 a0) { s32 i; - for (i = 0; i < 16; i++) + for (i = 0; i < NUM_TASKS; i++) { if (gTasks[i].isActive - && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) - { - u32 arg = GetWordTaskArg((u8)i, 1); - if (arg == a0) - return TRUE; - } + && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4) + && GetWordTaskArg(i, 1) == a0) + return TRUE; } return FALSE; } void sub_81C7170(u8 taskId) { - s16 *dataPtr; - u32 (*func)(u32); - bool32 exitLoop; + u32 (*func)(s32) = (void *)GetWordTaskArg(taskId, 1); + s16 *data = gTasks[taskId].data; + bool32 exitLoop = FALSE; - func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); - dataPtr = gTasks[taskId].data; - exitLoop = FALSE; while (!exitLoop) { - u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); - switch (v1) + u32 var = func(data[0]); + switch (var) { case 1: - dataPtr[0] = dataPtr[0] + 1; + data[0] = data[0] + 1; break; case 0: - dataPtr[0]++; + data[0]++; return; case 4: DestroyTask(taskId); return; default: - dataPtr[0] = v1 - 5; + data[0] = var - 5; break; case 3: break; @@ -471,91 +487,81 @@ void sub_81C71E4(u8 taskId) void CB2_PokeNav(void) { - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); + gUnknown_0203CF40 = Alloc(sizeof(*gUnknown_0203CF40)); if (gUnknown_0203CF40 == NULL) { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } else { - sub_81C7360(gUnknown_0203CF40); + InitMainStruct(gUnknown_0203CF40); ResetTasks(); SetVBlankCallback(NULL); CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); + SetMainCallback2(Cb2_Pokenav); + SetVBlankCallback(VblankCb_Pokenav); } } -void sub_81C72A4() +void sub_81C72A4(void) { SetMainCallback2(sub_81C72BC); FadeScreen(1, 0); } -void sub_81C72BC() +void sub_81C72BC(void) { UpdatePaletteFade(); - if (!gPaletteFade.active) + if (gPaletteFade.active) + return; + + gUnknown_0203CF40 = Alloc(sizeof(*gUnknown_0203CF40)); + if (gUnknown_0203CF40 == NULL) { - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) - { - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - } - else - { - sub_81C7360(gUnknown_0203CF40); - gUnknown_0203CF40->field8 = 1; - ResetTasks(); - ResetSpriteData(); - FreeAllSpritePalettes(); - SetVBlankCallback(NULL); - CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); - } + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } + else + { + InitMainStruct(gUnknown_0203CF40); + gUnknown_0203CF40->mode = MODE_FORCE_CALL_1; + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(Cb2_Pokenav); + SetVBlankCallback(VblankCb_Pokenav); } } -void sub_81C7334() +static void FreeVars(void) { s32 i; - for (i = 0; i < 19; i++) - { - sub_81C7650(i); - } - Free(gUnknown_0203CF40); - gUnknown_0203CF40 = NULL; + for (i = 0; i < SUBSTRUCT_COUNT; i++) + FreeSubstruct(i); + + FREE_AND_SET_NULL(gUnknown_0203CF40); InitKeys(); } // Clears UnknownStruct_0203CF40 -void sub_81C7360(struct UnknownStruct_0203CF40 *a0) +static void InitMainStruct(struct UnknownStruct_0203CF40 *a0) { s32 i; - void **arrayPtr; - void *fill; - fill = NULL; - i = 18; - arrayPtr = &(a0->field10[18]); - for (i; i >= 0; i--) - { - *arrayPtr = fill; - arrayPtr -= 1; - } - a0->field8 = 0; + for (i = 0; i < SUBSTRUCT_COUNT; i++) + a0->field10[i] = NULL; + + a0->mode = MODE_NORMAL; a0->field4 = 0; - a0->fieldC = AnyMonHasRibbon(); + a0->hasAnyRibbons = AnyMonHasRibbon(); a0->field0 = NULL; } -bool32 AnyMonHasRibbon() +static bool32 AnyMonHasRibbon(void) { - s32 i; - s32 j; + s32 i, j; for (i = 0; i < PARTY_SIZE; i++) { @@ -569,7 +575,7 @@ bool32 AnyMonHasRibbon() for (j = 0; j < TOTAL_BOXES_COUNT; j++) { - for (i = 0; i < IN_BOX_COUNT; i++) + for (i = 0; i < IN_BOX_COUNT; i++) { if (CheckBoxMonSanityAt(j, i) && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) @@ -582,7 +588,7 @@ bool32 AnyMonHasRibbon() return FALSE; } -void sub_81C7400() +static void Cb2_Pokenav(void) { RunTasks(); AnimateSprites(); @@ -590,7 +596,7 @@ void sub_81C7400() UpdatePaletteFade(); } -void sub_81C7418() +static void VblankCb_Pokenav(void) { TransferPlttBuffer(); LoadOam(); @@ -599,34 +605,31 @@ void sub_81C7418() void sub_81C742C(u8 taskId) { - s16 *dataPtr; u32 v1; - bool32 v2; - - dataPtr = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; - switch (dataPtr[0]) + switch (data[0]) { case 0: sub_81C76C4(); - dataPtr[0] = 1; + data[0] = 1; break; case 1: if (sub_81C76FC()) break; sub_81C756C(UNKNOWN_OFFSET); - dataPtr[0] = 4; + data[0] = 4; break; case 2: if (sub_81C786C()) break; - dataPtr[0] = 3; + data[0] = 3; case 3: v1 = sub_81C75E0(); if (v1 == -1) { sub_81C7710(); - dataPtr[0] = 5; + data[0] = 5; } else if (v1 >= UNKNOWN_OFFSET) { @@ -634,32 +637,33 @@ void sub_81C742C(u8 taskId) gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); if (sub_81C756C(v1)) { - dataPtr[0] = 4; + data[0] = 4; } else { sub_81C7710(); - dataPtr[0] = 5; + data[0] = 5; } } else if (v1 != 0) { sub_81C7850(v1); if (sub_81C786C()) - dataPtr[0] = 2; + data[0] = 2; } break; case 4: if (!sub_81C75D4()) - dataPtr[0] = 3; + data[0] = 3; break; case 5: if (!sub_81C7738()) { - v2 = gUnknown_0203CF40->field8 != 0; + bool32 calledFromScript = (gUnknown_0203CF40->mode != MODE_NORMAL); + sub_81C9430(); - sub_81C7334(); - if (v2) + FreeVars(); + if (calledFromScript) SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); else SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); @@ -670,14 +674,14 @@ void sub_81C742C(u8 taskId) bool32 sub_81C756C(u32 a0) { - u32 index; + u32 index = a0 - UNKNOWN_OFFSET; - index = a0 - UNKNOWN_OFFSET; - sub_81C75F4(); + InitKeys_(); if (!gUnknown_0861F3EC[index][0]()) return FALSE; if (!gUnknown_0861F3EC[index][2]()) return FALSE; + sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; gUnknown_0203CF40->field4 = index; @@ -694,52 +698,52 @@ u32 sub_81C75E0(void) return gUnknown_0203CF40->field0(); } -void sub_81C75F4(void) +static void InitKeys_(void) { InitKeys(); } -void IndirectSetVBlankCallback(IntrCallback callback) +void SetVBlankCallback_(IntrCallback callback) { SetVBlankCallback(callback); } -void sub_81C760C(void) +void SetPokenavVBlankCallback(void) { - SetVBlankCallback(sub_81C7418); + SetVBlankCallback(VblankCb_Pokenav); } -void *sub_81C761C(u32 index, u32 size) +void *AllocSubstruct(u32 index, u32 size) { - return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); + return gUnknown_0203CF40->field10[index] = Alloc(size); } -void *sub_81C763C(u32 index) +struct UnknownSubStruct_0203CF40 *GetSubstructPtr(u32 index) { return gUnknown_0203CF40->field10[index]; } -void sub_81C7650(u32 index) +void FreeSubstruct(u32 index) { if (gUnknown_0203CF40->field10[index] != NULL) FREE_AND_SET_NULL(gUnknown_0203CF40->field10[index]); } -u16 sub_81C767C(void) +u16 GetPokenavMode(void) { - return gUnknown_0203CF40->field8; + return gUnknown_0203CF40->mode; } -void sub_81C7688(u16 a0) +void SetPokenavMode(u16 mode) { - gUnknown_0203CF40->field8 = a0; + gUnknown_0203CF40->mode = mode; } void sub_81C7694(u32 a0) { - u32 value; - value = a0; - if (a0 > 4) + u32 value = a0; + + if (value > 4) value = 0; gUnknown_0203CF40->fieldA = value; } @@ -749,34 +753,27 @@ u16 sub_81C76AC(void) return gUnknown_0203CF40->fieldA; } -u32 sub_81C76B8(void) +bool32 CanViewRibbonsMenu(void) { - return gUnknown_0203CF40->fieldC; + return gUnknown_0203CF40->hasAnyRibbons; } bool32 sub_81C76C4(void) { - struct UnknownStruct_sub_81C76C4 *v1; - - v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); - if (v1 == NULL) - { + struct UnknownSubStruct_0203CF40 *structPtr = AllocSubstruct(0, 0x82C); + if (structPtr == NULL) return FALSE; - } - else - { - ResetSpriteData(); - FreeAllSpritePalettes(); - v1->data[3] = sub_81C7078(sub_81C7764, 1); - return TRUE; - } + + ResetSpriteData(); + FreeAllSpritePalettes(); + structPtr->unkC = sub_81C7078(sub_81C7764, 1); + return TRUE; } u32 sub_81C76FC(void) { - u32 *v1; - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + return sub_81C70D8(structPtr->unkC); } void sub_81C7710(void) @@ -794,15 +791,14 @@ bool32 sub_81C7738(void) sub_81C7C94(); FreeAllWindowBuffers(); return FALSE; - } else - { - return TRUE; } + + return TRUE; } u32 sub_81C7764(s32 a0) { - u32 *v1; + struct UnknownSubStruct_0203CF40 *structPtr; switch (a0) { @@ -810,14 +806,14 @@ u32 sub_81C7764(s32 a0) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); FreeAllWindowBuffers(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); + InitBgsFromTemplates(0, gUnknown_0861FA04, ARRAY_COUNT(gUnknown_0861FA04)); sub_8199D98(); reset_temp_tile_data_buffers(); return 1; case 1: - v1 = sub_81C763C(0); + structPtr = GetSubstructPtr(0); decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); - SetBgTilemapBuffer(0, &v1[11]); + SetBgTilemapBuffer(0, structPtr->tilemapBuffer); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); CopyBgTilemapBufferToVram(0); @@ -825,7 +821,7 @@ u32 sub_81C7764(s32 a0) case 2: if (free_temp_tile_data_buffers_if_possible()) return 2; - + sub_81C7B74(); return 0; case 3: @@ -841,58 +837,46 @@ u32 sub_81C7764(s32 a0) } } -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) +void sub_81C7834(void *func1, void *func2) // Fix types later. { - u32 (**v1)(void); - - v1 = sub_81C763C(0); - v1[0] = a0; - v1[1] = a1; - v1[2] = NULL; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unk0 = func1; + structPtr->unk4 = func2; + structPtr->unk8 = 0; } void sub_81C7850(u32 a0) { - void (**v1)(u32); - - v1 = sub_81C763C(0); - v1[2] = NULL; - v1[0](a0); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unk8 = 0; + structPtr->unk0(a0); } u32 sub_81C786C(void) { - u32 (**v1)(void); - - v1 = sub_81C763C(0); - return v1[1](); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + return structPtr->unk4(); } void sub_81C7880(void) { - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(atk47_cmd47, 4); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unkC = sub_81C7078(sub_81C78D4, 4); } void sub_81C78A0(void) { - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(sub_81C791C, 4); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unkC = sub_81C7078(sub_81C791C, 4); } bool32 sub_81C78C0(void) { - u32 *v1; - - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + return sub_81C70D8(structPtr->unkC); } -u32 atk47_cmd47(s32 a0) +u32 sub_81C78D4(s32 a0) { switch (a0) { @@ -903,12 +887,12 @@ u32 atk47_cmd47(s32 a0) case 0: return 0; case 2: - if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) + if (ChangeBgY(0, 384, 1) >= 0x2000u) { ChangeBgY(0, 0x2000, 0); return 4; } - + return 2; } } @@ -923,7 +907,8 @@ u32 sub_81C791C(s32 a0) return 2; } -void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) +{ CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } @@ -932,7 +917,7 @@ void sub_81C795C(const struct SpritePalette *palettes) const struct SpritePalette *current; u32 index; - for (current = palettes; current->data != NULL; current++) + for (current = palettes; current->data != NULL; current++) { index = AllocSpritePalette(current->tag); if (index == 0xFF) @@ -953,7 +938,7 @@ void sub_81C7990(u32 a0, u16 a1) } __attribute__((naked)) -void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) +void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 a4, u32 a5) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1090,15 +1075,15 @@ _081C7AAE:\n\ void sub_81C7AC0(s32 a0) { - u32 *v1; - v1 = sub_81C763C(0); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + switch (a0) { case 0: - BeginNormalPaletteFade(v1[5], -2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(structPtr->unk14, -2, 0, 16, RGB_BLACK); break; case 1: - BeginNormalPaletteFade(v1[5], -2, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(structPtr->unk14, -2, 16, 0, RGB_BLACK); break; case 2: BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); @@ -1119,93 +1104,330 @@ void sub_81C7B40(void) BlendPalettes(0xFFFEFFFE, 16, RGB_BLACK); } -void sub_81C7B54(const struct BgTemplate *a0, s32 a1) +void InitBgTemplates(const struct BgTemplate *templates, s32 count) { s32 i; - if (a1 <= 0) - return; - for (i = a1; i != 0; i--) - { - InitBgFromTemplate(a0++); - } + + for (i = 0; i < count; i++) + InitBgFromTemplate(templates++); } void sub_81C7B74(void) { - u32 *v1; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); - v1 = sub_81C763C(0); InitWindows(&gUnknown_0861FA08[0]); - v1[4] = 0; - sub_81C7BF8(0); - PutWindowTilemap(v1[4]); - CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. + structPtr->unk10 = 0; + sub_81C7BF8(structPtr->unk10); + PutWindowTilemap(structPtr->unk10); + CopyWindowToVram(structPtr->unk10, 3); // TODO: Use a defined constant here. } void sub_81C7BA4(u32 a0) { - u32 *v1; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); - v1 = sub_81C763C(0); - sub_81C7BF8(v1[4]); - AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); + sub_81C7BF8(structPtr->unk10); + AddTextPrinterParameterized3(structPtr->unk10, 1, 0, 1, gMenuButtonReminderColor, 0, sMenuButtonReminders[a0]); } -bool8 sub_81C7BE8(void) +bool32 IsDma3ManagerBusyWithBgCopy_(void) { return IsDma3ManagerBusyWithBgCopy(); } -void sub_81C7BF8(u32 a0) +void sub_81C7BF8(u32 windowId) { - FillWindowPixelBuffer(a0, 0x44); - FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); + FillWindowPixelBuffer(windowId, 0x44); + FillWindowPixelRect(windowId, 0x55, 0, 0, 0x80, 1); } void sub_81C7C28(void) { - u32 *v1; - u32 i; - u8 v2; - u32 v3; - u32 v4; + s32 i; u8 spriteId; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); - v1 = sub_81C763C(0); for (i = 0; i < ARRAY_COUNT(gUnknown_0861FA4C); i++) - { LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); - } sub_81C795C(gUnknown_0861FA54); - v2 = IndexOfSpritePaletteTag(0); - v1[5] = ~1 & ~(0x10000 << v2); + structPtr->unk14 = ~1 & ~(0x10000 << IndexOfSpritePaletteTag(0)); spriteId = CreateSprite(&gUnknown_0861FB04, 220, 12, 0); - v1[6] = (u32)(&gSprites[spriteId]); + structPtr->unk18 = &gSprites[spriteId]; } void sub_81C7C94(void) { - void **v1; - v1 = sub_81C763C(0); - DestroySprite(v1[6]); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + DestroySprite(structPtr->unk18); FreeSpriteTilesByTag(0); FreeSpritePaletteByTag(0); } -void sub_81C7CB4(u16 *a0) +void sub_81C7CB4(struct Sprite *sprite) { - u32 v1; - v1 = GetBgY(0); - a0[19] = (v1 >> 8) * -1; + sprite->pos2.y = (GetBgY(0) / 256u) * -1; } struct Sprite *sub_81C7CCC(void) { - struct Sprite **v1; - struct Sprite *v2; - v1 = sub_81C763C(0); - v2 = v1[6]; - v2->callback = SpriteCallbackDummy; - return v2; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + structPtr->unk18->callback = SpriteCallbackDummy; + return structPtr->unk18; +} + +void sub_81C7CE4(void) +{ + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + structPtr->unk18->pos1.x = 220; + structPtr->unk18->pos1.y = 12; + structPtr->unk18->callback = sub_81C7CB4; + structPtr->unk18->invisible = FALSE; + structPtr->unk18->oam.priority = 0; + structPtr->unk18->subpriority = 0; +} + +extern const struct SpriteTemplate gUnknown_0861FB2C; +extern const struct SpriteTemplate gUnknown_0861FB44; +extern const struct CompressedSpriteSheet gUnknown_0861FA6C[]; + +void sub_81C7D28(void) +{ + s32 i, spriteId; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + LoadCompressedSpriteSheet(&gUnknown_0861FA64); + AllocSpritePalette(1); + AllocSpritePalette(2); + for (i = 0; i < 2; i++) + { + spriteId = CreateSprite(&gUnknown_0861FB2C, 0, 0, 1); + structPtr->unk1C[i] = &gSprites[spriteId]; + structPtr->unk1C[i]->invisible = TRUE; + structPtr->unk1C[i]->pos2.x = i * 64; + + spriteId = CreateSprite(&gUnknown_0861FB44, 0, 0, 2); + structPtr->unk24[i] = &gSprites[spriteId]; + structPtr->unk24[i]->invisible = TRUE; + structPtr->unk24[i]->pos2.x = i * 32; + structPtr->unk24[i]->pos2.y = 18; + structPtr->unk24[i]->oam.tileNum += (i * 8) + 64; + } +} + +void sub_81C7DFC(u32 arg0) +{ + if (arg0 < 6) + sub_81C7E58(arg0); + else + sub_81C7F24(arg0 - 6); +} + +void sub_81C7E14(u32 arg0) +{ + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (arg0 == 4) + structPtr->unk1C[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 32; + else + structPtr->unk1C[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 64; +} + +void sub_81C7E58(u32 arg0) +{ + struct UnknownSubStruct_0203CF40 *structPtr; + u32 size, tag; + + if (arg0 >= 6) + return; + + structPtr = GetSubstructPtr(0); + tag = gUnknown_0861FA6C[arg0].tag; + size = GetDecompressedDataSize(gUnknown_0861FA6C[arg0].data); + LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(1) * 16) + 0x100, 0x20); + LZ77UnCompWram(gUnknown_0861FA6C[arg0].data, gDecompressionBuffer); + RequestDma3Copy(gDecompressionBuffer, (void *)VRAM + 0x10000 + (GetSpriteTileStartByTag(2) * 32), size, 1); + structPtr->unk1C[1]->oam.tileNum = GetSpriteTileStartByTag(2) + gUnknown_0861FA6C[arg0].size; + + if (arg0 == 4 || arg0 == 5) + structPtr->unk1C[1]->pos2.x = 56; + else + structPtr->unk1C[1]->pos2.x = 64; +} + +// Needed to match u32/u16 tag field difference. +struct CompressedSpritePalette_ +{ + const u32 *data; // LZ77 compressed palette data + u32 tag; +}; + +extern const struct CompressedSpritePalette_ gUnknown_0861FA9C[]; + +void sub_81C7F24(u32 arg0) +{ + u32 size, tag; + + if (arg0 >= 7) + return; + + tag = gUnknown_0861FA9C[arg0].tag; + size = GetDecompressedDataSize(gUnknown_0861FA9C[arg0].data); + LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(2) * 16) + 0x100, 0x20); + LZ77UnCompWram(gUnknown_0861FA9C[arg0].data, &gDecompressionBuffer[0x1000]); + RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)VRAM + 0x10800 + (GetSpriteTileStartByTag(2) * 32), size, 1); +} + +void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2) +{ + u32 var; + + if (!arg1) + var = 0x30; + else + var = 0x10; + + if (arg0 < 6) + sub_81C803C(var, arg2); + else + sub_81C8088(var, arg2); +} + +void sub_81C7FC4(u32 arg0, bool32 arg1) +{ + if (arg0 < 6) + sub_81C80D4(arg1); + else + sub_81C8110(arg1); +} + +void sub_81C7FDC(void) +{ + s32 i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + for (i = 0; i < 2; i++) + { + structPtr->unk1C[i]->invisible = TRUE; + structPtr->unk24[i]->invisible = TRUE; + } +} + +bool32 sub_81C8010(void) +{ + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (structPtr->unk1C[0]->callback == SpriteCallbackDummy && structPtr->unk24[0]->callback == SpriteCallbackDummy) + return FALSE; + else + return TRUE; +} + +void sub_81C803C(u32 arg0, bool32 arg1) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg1) + var1 = -96, var2 = 32; + else + var1 = 256, var2 = 160; + + for (i = 0; i < 2; i++) + { + structPtr->unk1C[i]->pos1.y = arg0; + sub_81C814C(structPtr->unk1C[i], var1, var2, 12); + } +} + +void sub_81C8088(u32 arg0, bool32 arg1) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg1) + var1 = -96, var2 = 16; + else + var1 = 256, var2 = 192; + + for (i = 0; i < 2; i++) + { + structPtr->unk24[i]->pos1.y = arg0; + sub_81C814C(structPtr->unk24[i], var1, var2, 12); + } +} + +void sub_81C80D4(bool32 arg0) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg0) + var1 = 32, var2 = -96; + else + var1 = 192, var2 = 256; + + for (i = 0; i < 2; i++) + { + sub_81C814C(structPtr->unk1C[i], var1, var2, 12); + } +} + +void sub_81C8110(bool32 arg0) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg0) + var1 = 16, var2 = -96; + else + var1 = 192, var2 = 256; + + for (i = 0; i < 2; i++) + { + sub_81C814C(structPtr->unk24[i], var1, var2, 12); + } +} + +void sub_81C814C(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3) +{ + sprite->pos1.x = arg1; + sprite->data[0] = arg1 * 16; + sprite->data[1] = (arg2 - arg1) * 16 / arg3; + sprite->data[2] = arg3; + sprite->data[7] = arg2; + sprite->callback = sub_81C817C; +} + +void sub_81C817C(struct Sprite *sprite) +{ + if (sprite->data[2] != 0) + { + sprite->data[2]--; + sprite->data[0] += sprite->data[1]; + sprite->pos1.x = sprite->data[0] >> 4; + if (sprite->pos1.x < -16 || sprite->pos1.x > 256) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } + else + { + sprite->pos1.x = sprite->data[7]; + sprite->callback = SpriteCallbackDummy; + } +} + +/* +bool32 sub_81C81D4(const void *arg0, void *arg1, s32 arg3) +{ + struct UnknownSubStruct_0203CF40 *structPtr = AllocSubstruct(0x11, 0x8A4); + + if (structPtr == NULL) + return FALSE; } +*/ diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 3d85a9d1d..27472b6e3 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1630,7 +1630,7 @@ void sub_8014210(u16 battleFlags) void sub_8014290(u16 arg0, u16 x, u16 y) { - VarSet(VAR_0x4087, arg0); + VarSet(VAR_CABLE_CLUB_STATE, arg0); SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); WarpIntoMap(); @@ -1639,7 +1639,7 @@ void sub_8014290(u16 arg0, u16 x, u16 y) void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) { gSpecialVar_0x8004 = arg4; - VarSet(VAR_0x4087, arg4); + VarSet(VAR_CABLE_CLUB_STATE, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); gLocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); diff --git a/src/script.c b/src/script.c index c61ae7183..c95a1141f 100644 --- a/src/script.c +++ b/src/script.c @@ -2,6 +2,7 @@ #include "script.h" #include "event_data.h" #include "util.h" +#include "constants/map_scripts.h" #define RAM_SCRIPT_MAGIC 51 @@ -241,7 +242,7 @@ void ScriptContext2_RunNewScript(const u8 *ptr) while (RunScriptCommand(&sScriptContext2) == TRUE); } -u8 *mapheader_get_tagged_pointer(u8 tag) +u8 *MapHeaderGetScriptTable(u8 tag) { const u8 *mapScripts = gMapHeader.mapScripts; @@ -261,16 +262,16 @@ u8 *mapheader_get_tagged_pointer(u8 tag) } } -void mapheader_run_script_by_tag(u8 tag) +void MapHeaderRunScriptType(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (ptr) ScriptContext2_RunNewScript(ptr); } -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) +u8 *MapHeaderCheckScriptTable(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (!ptr) return NULL; @@ -291,45 +292,45 @@ u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) } } -void mapheader_run_script_with_tag_x1(void) +void RunOnLoadMapScript(void) { - mapheader_run_script_by_tag(1); + MapHeaderRunScriptType(MAP_SCRIPT_ON_LOAD); } -void mapheader_run_script_with_tag_x3(void) +void RunOnTransitionMapScript(void) { - mapheader_run_script_by_tag(3); + MapHeaderRunScriptType(MAP_SCRIPT_ON_TRANSITION); } -void mapheader_run_script_with_tag_x5(void) +void RunOnResumeMapScript(void) { - mapheader_run_script_by_tag(5); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RESUME); } -void mapheader_run_script_with_tag_x7(void) +void RunOnReturnToFieldMapScript(void) { - mapheader_run_script_by_tag(7); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RETURN_TO_FIELD); } -void mapheader_run_script_with_tag_x6(void) +void RunOnDiveWarpMapScript(void) { - mapheader_run_script_by_tag(6); + MapHeaderRunScriptType(MAP_SCRIPT_ON_DIVE_WARP); } -bool8 mapheader_run_first_tag2_script_list_match(void) +bool8 TryRunOnFrameMapScript(void) { - u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(2); + u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_FRAME_TABLE); if (!ptr) - return 0; + return FALSE; ScriptContext1_SetupScript(ptr); - return 1; + return TRUE; } -void mapheader_run_first_tag4_script_list_match(void) +void TryRunOnWarpIntoMapScript(void) { - u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4); + u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE); if (ptr) ScriptContext2_RunNewScript(ptr); } diff --git a/src/start_menu.c b/src/start_menu.c index fb94fb3f7..4b71f6147 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -91,7 +91,7 @@ extern void sub_80AF688(void); extern void var_800D_set_xB(void); extern void sub_808B864(void); extern void CB2_Pokedex(void); -extern void PlayRainSoundEffect(void); +extern void PlayRainStoppingSoundEffect(void); extern void CB2_PokeNav(void); extern void ScriptUnfreezeEventObjects(void); extern void save_serialize_map(void); @@ -608,7 +608,7 @@ static bool8 StartMenuPokedexCallback(void) if (!gPaletteFade.active) { IncrementGameStat(GAME_STAT_CHECKED_POKEDEX); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_Pokedex); @@ -623,7 +623,7 @@ static bool8 StartMenuPokemonCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_PartyMenuFromStartMenu); // Display party menu @@ -638,7 +638,7 @@ static bool8 StartMenuBagCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_BagMenuFromStartMenu); // Display bag menu @@ -653,7 +653,7 @@ static bool8 StartMenuPokeNavCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_PokeNav); // Display PokeNav @@ -668,7 +668,7 @@ static bool8 StartMenuPlayerNameCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); @@ -699,7 +699,7 @@ static bool8 StartMenuOptionCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_InitOptionMenu); // Display option menu @@ -732,7 +732,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); CleanupOverworldWindowsAndTilemaps(); ShowTrainerCardInLink(gLocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); @@ -761,7 +761,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_PyramidBagMenuFromStartMenu); diff --git a/src/trade.c b/src/trade.c index db5e6a1a3..849442ae0 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1834,9 +1834,9 @@ static void sub_8077B74(void) } if (gUnknown_0203229C->tradeMenuCursorPosition < PARTY_SIZE) - gUnknown_0203229C->tradeMenuCursorPosition = gUnknown_0203CF20; + gUnknown_0203229C->tradeMenuCursorPosition = gLastViewedMonIndex; else - gUnknown_0203229C->tradeMenuCursorPosition = gUnknown_0203CF20 + PARTY_SIZE; + gUnknown_0203229C->tradeMenuCursorPosition = gLastViewedMonIndex + PARTY_SIZE; gUnknown_0203229C->tradeMenuCursorSpriteIdx = CreateSprite(&gSpriteTemplate_832DC94, gTradeMonSpriteCoords[gUnknown_0203229C->tradeMenuCursorPosition][0] * 8 + 32, gTradeMonSpriteCoords[gUnknown_0203229C->tradeMenuCursorPosition][1] * 8, 2); gMain.state = 16; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index efe11b0c7..42b196abd 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -796,7 +796,7 @@ void sub_81D5FB4(u16 *mapArg) dst += 31; } - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); FreeDataStruct(); } @@ -3603,7 +3603,7 @@ void GetMomOrDadStringForTVMessage(void) void sub_80F01B8(void) { - VarSet(VAR_0x40BC, 0); + VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0); RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); FlagSet(FLAG_HIDE_BATTLE_TOWER_REPORTER); } |