summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/macros/event.inc8
-rw-r--r--asm/union_room_chat.s5973
-rw-r--r--data/data_8479668.s60
-rw-r--r--data/event_scripts.s56
-rw-r--r--data/graphics.s14
-rw-r--r--data/maps/CinnabarIsland/scripts.inc2
-rw-r--r--data/maps/FiveIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/FourIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/LavenderTown_Mart/text.inc5
-rw-r--r--data/maps/OneIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/OneIsland_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/PalletTown_ProfessorOaksLab/scripts.inc6
-rw-r--r--data/maps/PalletTown_ProfessorOaksLab/text.inc3
-rw-r--r--data/maps/Route1/map.json6
-rw-r--r--data/maps/Route1/scripts.inc20
-rw-r--r--data/maps/Route1/text.inc10
-rw-r--r--data/maps/Route10_PokemonCenter_1F/scripts.inc6
-rw-r--r--data/maps/Route11_EastEntrance_2F/scripts.inc6
-rw-r--r--data/maps/Route15_WestEntrance_2F/scripts.inc6
-rw-r--r--data/maps/Route16_NorthEntrance_2F/scripts.inc6
-rw-r--r--data/maps/Route2/map.json4
-rw-r--r--data/maps/Route2/scripts.inc8
-rw-r--r--data/maps/Route2/text.inc4
-rw-r--r--data/maps/Route21_North/text.inc48
-rw-r--r--data/maps/Route21_South/text.inc87
-rw-r--r--data/maps/Route22/map.json14
-rw-r--r--data/maps/Route22/scripts.inc150
-rw-r--r--data/maps/Route22/text.inc265
-rw-r--r--data/maps/Route2_EastBuilding/map.json4
-rw-r--r--data/maps/Route2_EastBuilding/scripts.inc38
-rw-r--r--data/maps/Route2_EastBuilding/text.inc10
-rw-r--r--data/maps/Route2_House/map.json4
-rw-r--r--data/maps/Route2_House/scripts.inc20
-rw-r--r--data/maps/Route2_House/text.inc2
-rw-r--r--data/maps/Route2_ViridianForest_NorthEntrance/map.json6
-rw-r--r--data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc12
-rw-r--r--data/maps/Route2_ViridianForest_NorthEntrance/text.inc6
-rw-r--r--data/maps/Route2_ViridianForest_SouthEntrance/map.json4
-rw-r--r--data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc8
-rw-r--r--data/maps/Route2_ViridianForest_SouthEntrance/text.inc4
-rw-r--r--data/maps/SSAnne_1F_Corridor/map.json4
-rw-r--r--data/maps/SSAnne_1F_Corridor/scripts.inc8
-rw-r--r--data/maps/SSAnne_1F_Corridor/text.inc4
-rw-r--r--data/maps/SSAnne_1F_Room1/map.json2
-rw-r--r--data/maps/SSAnne_1F_Room1/scripts.inc4
-rw-r--r--data/maps/SSAnne_1F_Room1/text.inc2
-rw-r--r--data/maps/SSAnne_1F_Room2/map.json6
-rw-r--r--data/maps/SSAnne_1F_Room2/scripts.inc16
-rw-r--r--data/maps/SSAnne_1F_Room2/text.inc14
-rw-r--r--data/maps/SSAnne_1F_Room3/map.json6
-rw-r--r--data/maps/SSAnne_1F_Room3/scripts.inc12
-rw-r--r--data/maps/SSAnne_1F_Room3/text.inc6
-rw-r--r--data/maps/SSAnne_1F_Room4/map.json2
-rw-r--r--data/maps/SSAnne_1F_Room4/scripts.inc10
-rw-r--r--data/maps/SSAnne_1F_Room4/text.inc4
-rw-r--r--data/maps/SSAnne_1F_Room5/map.json2
-rw-r--r--data/maps/SSAnne_1F_Room5/scripts.inc6
-rw-r--r--data/maps/SSAnne_1F_Room5/text.inc6
-rw-r--r--data/maps/SSAnne_1F_Room6/map.json2
-rw-r--r--data/maps/SSAnne_1F_Room6/scripts.inc18
-rw-r--r--data/maps/SSAnne_1F_Room6/text.inc8
-rw-r--r--data/maps/SSAnne_1F_Room7/map.json2
-rw-r--r--data/maps/SSAnne_1F_Room7/scripts.inc6
-rw-r--r--data/maps/SSAnne_1F_Room7/text.inc6
-rw-r--r--data/maps/SSAnne_2F_Corridor/map.json8
-rw-r--r--data/maps/SSAnne_2F_Corridor/scripts.inc102
-rw-r--r--data/maps/SSAnne_2F_Corridor/text.inc10
-rw-r--r--data/maps/SSAnne_2F_Room1/map.json2
-rw-r--r--data/maps/SSAnne_2F_Room1/scripts.inc4
-rw-r--r--data/maps/SSAnne_2F_Room1/text.inc2
-rw-r--r--data/maps/SSAnne_2F_Room2/map.json4
-rw-r--r--data/maps/SSAnne_2F_Room2/scripts.inc12
-rw-r--r--data/maps/SSAnne_2F_Room2/text.inc12
-rw-r--r--data/maps/SSAnne_2F_Room3/map.json4
-rw-r--r--data/maps/SSAnne_2F_Room3/scripts.inc8
-rw-r--r--data/maps/SSAnne_2F_Room3/text.inc4
-rw-r--r--data/maps/SSAnne_2F_Room4/map.json4
-rw-r--r--data/maps/SSAnne_2F_Room4/scripts.inc12
-rw-r--r--data/maps/SSAnne_2F_Room4/text.inc12
-rw-r--r--data/maps/SSAnne_2F_Room5/map.json4
-rw-r--r--data/maps/SSAnne_2F_Room5/scripts.inc8
-rw-r--r--data/maps/SSAnne_2F_Room5/text.inc4
-rw-r--r--data/maps/SSAnne_2F_Room6/map.json4
-rw-r--r--data/maps/SSAnne_2F_Room6/scripts.inc8
-rw-r--r--data/maps/SSAnne_2F_Room6/text.inc4
-rw-r--r--data/maps/SSAnne_3F_Corridor/map.json2
-rw-r--r--data/maps/SSAnne_3F_Corridor/scripts.inc4
-rw-r--r--data/maps/SSAnne_3F_Corridor/text.inc2
-rw-r--r--data/maps/SSAnne_B1F_Room1/map.json4
-rw-r--r--data/maps/SSAnne_B1F_Room1/scripts.inc12
-rw-r--r--data/maps/SSAnne_B1F_Room1/text.inc12
-rw-r--r--data/maps/SSAnne_B1F_Room2/map.json2
-rw-r--r--data/maps/SSAnne_B1F_Room2/scripts.inc6
-rw-r--r--data/maps/SSAnne_B1F_Room2/text.inc6
-rw-r--r--data/maps/SSAnne_B1F_Room3/map.json2
-rw-r--r--data/maps/SSAnne_B1F_Room3/scripts.inc6
-rw-r--r--data/maps/SSAnne_B1F_Room3/text.inc6
-rw-r--r--data/maps/SSAnne_B1F_Room4/map.json4
-rw-r--r--data/maps/SSAnne_B1F_Room4/scripts.inc12
-rw-r--r--data/maps/SSAnne_B1F_Room4/text.inc12
-rw-r--r--data/maps/SSAnne_B1F_Room5/map.json4
-rw-r--r--data/maps/SSAnne_B1F_Room5/scripts.inc8
-rw-r--r--data/maps/SSAnne_B1F_Room5/text.inc4
-rw-r--r--data/maps/SSAnne_CaptainsOffice/map.json8
-rw-r--r--data/maps/SSAnne_CaptainsOffice/scripts.inc31
-rw-r--r--data/maps/SSAnne_CaptainsOffice/text.inc18
-rw-r--r--data/maps/SSAnne_Deck/map.json10
-rw-r--r--data/maps/SSAnne_Deck/scripts.inc24
-rw-r--r--data/maps/SSAnne_Deck/text.inc18
-rw-r--r--data/maps/SSAnne_Exterior/scripts.inc20
-rw-r--r--data/maps/SSAnne_Kitchen/map.json14
-rw-r--r--data/maps/SSAnne_Kitchen/scripts.inc46
-rw-r--r--data/maps/SSAnne_Kitchen/text.inc20
-rw-r--r--data/maps/SevenIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/SixIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/ThreeIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/TwoIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/VermilionCity/map.json32
-rw-r--r--data/maps/VermilionCity/scripts.inc213
-rw-r--r--data/maps/VermilionCity/text.inc52
-rw-r--r--data/maps/VermilionCity_Gym/map.json44
-rw-r--r--data/maps/VermilionCity_Gym/scripts.inc297
-rw-r--r--data/maps/VermilionCity_Gym/text.inc50
-rw-r--r--data/maps/VermilionCity_House1/map.json2
-rw-r--r--data/maps/VermilionCity_House1/scripts.inc28
-rw-r--r--data/maps/VermilionCity_House1/text.inc20
-rw-r--r--data/maps/VermilionCity_House2/map.json2
-rw-r--r--data/maps/VermilionCity_House2/scripts.inc26
-rw-r--r--data/maps/VermilionCity_House2/text.inc20
-rw-r--r--data/maps/VermilionCity_Mart/map.json6
-rw-r--r--data/maps/VermilionCity_Mart/scripts.inc14
-rw-r--r--data/maps/VermilionCity_Mart/text.inc4
-rw-r--r--data/maps/VermilionCity_PokemonCenter_1F/map.json14
-rw-r--r--data/maps/VermilionCity_PokemonCenter_1F/scripts.inc14
-rw-r--r--data/maps/VermilionCity_PokemonCenter_1F/text.inc31
-rw-r--r--data/maps/VermilionCity_PokemonFanClub/map.json16
-rw-r--r--data/maps/VermilionCity_PokemonFanClub/scripts.inc85
-rw-r--r--data/maps/VermilionCity_PokemonFanClub/text.inc82
-rw-r--r--data/maps/ViridianCity/map.json28
-rw-r--r--data/maps/ViridianCity/scripts.inc169
-rw-r--r--data/maps/ViridianCity/text.inc42
-rw-r--r--data/maps/ViridianCity_Gym/map.json24
-rw-r--r--data/maps/ViridianCity_Gym/scripts.inc94
-rw-r--r--data/maps/ViridianCity_Gym/text.inc70
-rw-r--r--data/maps/ViridianCity_House1/map.json8
-rw-r--r--data/maps/ViridianCity_House1/scripts.inc16
-rw-r--r--data/maps/ViridianCity_House1/text.inc8
-rw-r--r--data/maps/ViridianCity_House2/map.json14
-rw-r--r--data/maps/ViridianCity_House2/scripts.inc90
-rw-r--r--data/maps/ViridianCity_House2/text.inc30
-rw-r--r--data/maps/ViridianCity_Mart/map.json6
-rw-r--r--data/maps/ViridianCity_Mart/scripts.inc46
-rw-r--r--data/maps/ViridianCity_Mart/text.inc12
-rw-r--r--data/maps/ViridianCity_PokemonCenter_1F/map.json8
-rw-r--r--data/maps/ViridianCity_PokemonCenter_1F/scripts.inc14
-rw-r--r--data/maps/ViridianCity_PokemonCenter_1F/text.inc6
-rw-r--r--data/maps/ViridianForest/map.json26
-rw-r--r--data/maps/ViridianForest/scripts.inc62
-rw-r--r--data/maps/ViridianForest/text.inc46
-rw-r--r--data/scripts/aide.inc14
-rw-r--r--data/scripts/fame_checker.inc12
-rw-r--r--data/scripts/seagallop.inc163
-rw-r--r--data/specials.inc6
-rw-r--r--data/strings.s58
-rw-r--r--data/text/aide.inc15
-rw-r--r--data/text/fame_checker.inc4
-rw-r--r--data/text/seagallop.inc7
-rw-r--r--data/union_room_chat.s358
-rw-r--r--include/battle_setup.h2
-rw-r--r--include/constants/battle.h3
-rw-r--r--include/constants/battle_setup.h2
-rw-r--r--include/constants/global.h5
-rw-r--r--include/constants/metatile_labels.h35
-rw-r--r--include/constants/object_events.h2
-rw-r--r--include/data_8479668.h35
-rw-r--r--include/global.h88
-rw-r--r--include/graphics.h11
-rw-r--r--include/help_system.h1
-rw-r--r--include/link_rfu.h6
-rw-r--r--include/main.h1
-rw-r--r--include/strings.h49
-rw-r--r--include/text.h14
-rw-r--r--include/text_window.h1
-rw-r--r--include/trade.h4
-rw-r--r--include/trainer_card.h2
-rw-r--r--include/union_room.h2
-rw-r--r--include/union_room_chat.h28
-rw-r--r--include/union_room_chat_display.h34
-rw-r--r--include/union_room_chat_objects.h16
-rw-r--r--ld_script.txt8
-rw-r--r--src/battle_main.c9
-rw-r--r--src/battle_setup.c27
-rw-r--r--src/daycare.c30
-rw-r--r--src/fame_checker.c2
-rw-r--r--src/link_rfu_2.c31
-rw-r--r--src/link_rfu_3.c4
-rw-r--r--src/mail_data.c4
-rw-r--r--src/new_game.c4
-rw-r--r--src/oak_speech.c4
-rw-r--r--src/pokemon.c4
-rw-r--r--src/quest_log.c44
-rw-r--r--src/seagallop.c28
-rw-r--r--src/trade.c25
-rw-r--r--src/union_room.c4
-rw-r--r--src/union_room_chat.c1452
-rw-r--r--src/union_room_chat_display.c1339
-rw-r--r--src/union_room_chat_objects.c318
-rw-r--r--sym_ewram.txt15
208 files changed, 5403 insertions, 8404 deletions
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 7e95af9f4..51f8e7330 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -652,7 +652,7 @@
.4byte \pointer2 @ text
.4byte \pointer3 @ text
.4byte \pointer4 @ event script
- .elseif \type == TRAINER_BATTLE_TUTORIAL
+ .elseif \type == TRAINER_BATTLE_EARLY_RIVAL
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.endif
@@ -699,9 +699,9 @@
trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, \trainer, 0, \lose_text
.endm
- @
- .macro trainerbattle_tutorial trainer:req, unk:req, intro_text:req, lose_text:req
- trainerbattle TRAINER_BATTLE_TUTORIAL, \trainer, \unk, \intro_text, \lose_text
+ @ Starts a trainer battle with victory text if the player loses. If flags is nonzero, the player will be healed after battle (and its assumed to be the tutorial battle)
+ .macro trainerbattle_earlyrival trainer:req, flags:req, defeat_text:req, victory_text:req
+ trainerbattle TRAINER_BATTLE_EARLY_RIVAL, \trainer, \flags, \defeat_text, \victory_text
.endm
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes.
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
deleted file mode 100644
index adfd66b5d..000000000
--- a/asm/union_room_chat.s
+++ /dev/null
@@ -1,5973 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8128420
-sub_8128420: @ 8128420
- push {r4,lr}
- ldr r4, _08128450 @ =gUnknown_203B0E0
- movs r0, 0xDC
- lsls r0, 1
- bl Alloc
- str r0, [r4]
- bl sub_812845C
- ldr r1, _08128454 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl sub_812B4AC
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08128458 @ =c2_081284E0
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128450: .4byte gUnknown_203B0E0
-_08128454: .4byte gKeyRepeatStartDelay
-_08128458: .4byte c2_081284E0
- thumb_func_end sub_8128420
-
- thumb_func_start sub_812845C
-sub_812845C: @ 812845C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- movs r0, 0
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- strb r5, [r4, 0x10]
- strb r5, [r4, 0x11]
- strb r5, [r4, 0x12]
- strb r5, [r4, 0x14]
- strb r5, [r4, 0x15]
- strb r5, [r4, 0x16]
- movs r0, 0xFF
- strb r0, [r4, 0x1A]
- bl GetLinkPlayerCount
- strb r0, [r4, 0xD]
- bl GetMultiplayerId
- strb r0, [r4, 0x13]
- strb r5, [r4, 0x17]
- strb r5, [r4, 0x18]
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8129560
- ldr r7, _081284B4 @ =gSaveBlock1Ptr
- ldr r6, _081284B8 @ =0x00003ad4
- adds r4, 0xB9
- movs r5, 0x9
-_0812849A:
- ldr r1, [r7]
- adds r1, r6
- adds r0, r4, 0
- bl StringCopy
- adds r6, 0x15
- adds r4, 0x15
- subs r5, 0x1
- cmp r5, 0
- bge _0812849A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081284B4: .4byte gSaveBlock1Ptr
-_081284B8: .4byte 0x00003ad4
- thumb_func_end sub_812845C
-
- thumb_func_start sub_81284BC
-sub_81284BC: @ 81284BC
- push {r4,lr}
- ldr r4, _081284DC @ =gUnknown_203B0E0
- ldr r0, [r4]
- ldrb r0, [r0, 0xE]
- bl DestroyTask
- ldr r0, [r4]
- ldrb r0, [r0, 0xF]
- bl DestroyTask
- ldr r0, [r4]
- bl Free
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081284DC: .4byte gUnknown_203B0E0
- thumb_func_end sub_81284BC
-
- thumb_func_start c2_081284E0
-c2_081284E0: @ 81284E0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _081284FC @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r6, r0, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08128518
- cmp r0, 0x1
- bgt _08128500
- cmp r0, 0
- beq _08128506
- b _08128598
- .align 2, 0
-_081284FC: .4byte gMain
-_08128500:
- cmp r0, 0x2
- beq _08128554
- b _08128598
-_08128506:
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl sub_8129B14
- b _08128548
-_08128518:
- bl sub_8129BFC
- bl sub_8129B78
- adds r5, r0, 0
- cmp r5, 0
- bne _08128598
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- str r5, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08128550 @ =sub_81285B4
- bl SetVBlankCallback
-_08128548:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _08128598
- .align 2, 0
-_08128550: .4byte sub_81285B4
-_08128554:
- bl UpdatePaletteFade
- ldr r0, _081285A0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08128598
- ldr r0, _081285A4 @ =sub_81285CC
- bl SetMainCallback2
- movs r0, 0x11
- movs r1, 0
- bl SetQuestLogEvent
- ldr r0, _081285A8 @ =sub_81285E8
- movs r1, 0x8
- bl CreateTask
- ldr r4, _081285AC @ =gUnknown_203B0E0
- ldr r1, [r4]
- strb r0, [r1, 0xE]
- ldr r0, _081285B0 @ =sub_81298F8
- movs r1, 0x7
- bl CreateTask
- ldr r1, [r4]
- strb r0, [r1, 0xF]
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0xE8
- movs r1, 0x96
- bl CreateWirelessStatusIndicatorSprite
-_08128598:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081285A0: .4byte gPaletteFade
-_081285A4: .4byte sub_81285CC
-_081285A8: .4byte sub_81285E8
-_081285AC: .4byte gUnknown_203B0E0
-_081285B0: .4byte sub_81298F8
- thumb_func_end c2_081284E0
-
- thumb_func_start sub_81285B4
-sub_81285B4: @ 81285B4
- push {lr}
- bl TransferPlttBuffer
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl ScanlineEffect_InitHBlankDmaTransfer
- pop {r0}
- bx r0
- thumb_func_end sub_81285B4
-
- thumb_func_start sub_81285CC
-sub_81285CC: @ 81285CC
- push {lr}
- bl RunTasks
- bl sub_8129BFC
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_81285CC
-
- thumb_func_start sub_81285E8
-sub_81285E8: @ 81285E8
- push {r4,lr}
- ldr r4, _08128600 @ =gUnknown_203B0E0
- ldr r0, [r4]
- ldrb r0, [r0, 0x17]
- cmp r0, 0x2
- beq _0812860E
- cmp r0, 0x2
- bgt _08128604
- cmp r0, 0x1
- beq _0812860A
- b _0812861E
- .align 2, 0
-_08128600: .4byte gUnknown_203B0E0
-_08128604:
- cmp r0, 0x3
- beq _08128612
- b _0812861E
-_0812860A:
- movs r0, 0x6
- b _08128614
-_0812860E:
- movs r0, 0x7
- b _08128614
-_08128612:
- movs r0, 0x8
-_08128614:
- bl sub_8129218
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x17]
-_0812861E:
- ldr r1, _08128638 @ =gUnknown_845A880
- ldr r0, _0812863C @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrh r0, [r0, 0x4]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128638: .4byte gUnknown_845A880
-_0812863C: .4byte gUnknown_203B0E0
- thumb_func_end sub_81285E8
-
- thumb_func_start sub_8128640
-sub_8128640: @ 8128640
- push {r4,lr}
- ldr r4, _08128658 @ =gUnknown_203B0E0
- ldr r0, [r4]
- ldrh r1, [r0, 0x6]
- cmp r1, 0x1
- beq _08128674
- cmp r1, 0x1
- bgt _0812865C
- cmp r1, 0
- beq _08128662
- b _081286BC
- .align 2, 0
-_08128658: .4byte gUnknown_203B0E0
-_0812865C:
- cmp r1, 0x2
- beq _081286AC
- b _081286BC
-_08128662:
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r1
- bl sub_8129568
- ldr r1, [r4]
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
-_08128674:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _081286BC
- bl sub_80FBA1C
- cmp r0, 0
- bne _081286BC
- ldr r4, _081286A8 @ =gUnknown_203B0E0
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r0, 0
- movs r2, 0x28
- bl SendBlock
- lsls r0, 24
- cmp r0, 0
- beq _081286BC
- ldr r1, [r4]
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- b _081286BC
- .align 2, 0
-_081286A8: .4byte gUnknown_203B0E0
-_081286AC:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _081286BC
- movs r0, 0x1
- bl sub_8129218
-_081286BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8128640
-
- thumb_func_start sub_81286C4
-sub_81286C4: @ 81286C4
- push {r4,r5,lr}
- ldr r5, _081286D8 @ =gUnknown_203B0E0
- ldr r3, [r5]
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- beq _081286DC
- cmp r0, 0x1
- beq _0812878A
- b _081287AC
- .align 2, 0
-_081286D8: .4byte gUnknown_203B0E0
-_081286DC:
- ldr r1, _081286F8 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _081286FC
- ldrb r0, [r3, 0x15]
- cmp r0, 0
- beq _081287AC
- movs r0, 0x4
- bl sub_8129218
- b _081287AC
- .align 2, 0
-_081286F8: .4byte gMain
-_081286FC:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _0812870C
- movs r0, 0x2
- bl sub_8129218
- b _081287AC
-_0812870C:
- ldrh r1, [r1, 0x30]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08128738
- ldrb r0, [r3, 0x15]
- cmp r0, 0
- beq _08128730
- bl sub_81293AC
- movs r0, 0x8
- movs r1, 0
- bl sub_8129C34
- ldr r1, [r5]
- movs r0, 0x1
- strh r0, [r1, 0x6]
- b _081287AC
-_08128730:
- movs r0, 0x3
- bl sub_8129218
- b _081287AC
-_08128738:
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08128754
- bl sub_81292D8
- movs r0, 0x8
- movs r1, 0
- bl sub_8129C34
- movs r0, 0x2
- movs r1, 0x1
- b _08128780
-_08128754:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _08128774
- ldrb r0, [r3, 0x10]
- cmp r0, 0x3
- beq _0812876C
- bl sub_81293D8
- movs r0, 0x8
- b _0812877E
-_0812876C:
- movs r0, 0x5
- bl sub_8129218
- b _081287AC
-_08128774:
- bl sub_8129228
- cmp r0, 0
- beq _081287AC
- movs r0, 0x1
-_0812877E:
- movs r1, 0
-_08128780:
- bl sub_8129C34
- ldr r0, [r5]
- strh r4, [r0, 0x6]
- b _081287AC
-_0812878A:
- movs r0, 0
- bl sub_8129C8C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8129C8C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0
- bne _081287AC
- cmp r1, 0
- bne _081287AC
- ldr r0, [r5]
- strh r1, [r0, 0x6]
-_081287AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81286C4
-
- thumb_func_start sub_81287B4
-sub_81287B4: @ 81287B4
- push {r4-r6,lr}
- ldr r0, _081287CC @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrh r0, [r0, 0x6]
- cmp r0, 0x4
- bls _081287C2
- b _081288CE
-_081287C2:
- lsls r0, 2
- ldr r1, _081287D0 @ =_081287D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081287CC: .4byte gUnknown_203B0E0
-_081287D0: .4byte _081287D4
- .align 2, 0
-_081287D4:
- .4byte _081287E8
- .4byte _081287F2
- .4byte _08128810
- .4byte _0812889C
- .4byte _081288B0
-_081287E8:
- movs r0, 0x3
- movs r1, 0
- bl sub_8129C34
- b _081287FE
-_081287F2:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _081288CE
-_081287FE:
- ldr r0, _0812880C @ =gUnknown_203B0E0
- ldr r1, [r0]
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- b _081288CE
- .align 2, 0
-_0812880C: .4byte gUnknown_203B0E0
-_08128810:
- bl Menu_ProcessInput
- lsls r0, 24
- asrs r0, 8
- lsrs r6, r0, 16
- asrs r4, r0, 16
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08128848
- adds r0, 0x1
- cmp r4, r0
- beq _08128868
- movs r0, 0x4
- movs r1, 0
- bl sub_8129C34
- ldr r5, _08128844 @ =gUnknown_203B0E0
- ldr r2, [r5]
- ldrb r0, [r2, 0x10]
- cmp r0, r4
- beq _08128870
- cmp r4, 0x3
- ble _08128880
- b _08128870
- .align 2, 0
-_08128844: .4byte gUnknown_203B0E0
-_08128848:
- ldr r0, _08128864 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081288CE
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl Menu_MoveCursor
- b _081288CE
- .align 2, 0
-_08128864: .4byte gMain
-_08128868:
- movs r0, 0x4
- movs r1, 0
- bl sub_8129C34
-_08128870:
- ldr r0, _0812887C @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x3
- strh r0, [r1, 0x6]
- b _081288CE
- .align 2, 0
-_0812887C: .4byte gUnknown_203B0E0
-_08128880:
- movs r1, 0
- strb r1, [r2, 0x11]
- ldr r0, [r5]
- strb r1, [r0, 0x12]
- movs r0, 0x5
- movs r1, 0x1
- bl sub_8129C34
- ldr r0, [r5]
- strb r6, [r0, 0x10]
- ldr r1, [r5]
- movs r0, 0x4
- strh r0, [r1, 0x6]
- b _081288CE
-_0812889C:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _081288CE
- movs r0, 0x1
- bl sub_8129218
- b _081288CE
-_081288B0:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _081288CE
- movs r0, 0x1
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _081288CE
- movs r0, 0x1
- bl sub_8129218
-_081288CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81287B4
-
- thumb_func_start sub_81288D4
-sub_81288D4: @ 81288D4
- push {r4,lr}
- ldr r0, _081288EC @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrh r0, [r0, 0x6]
- cmp r0, 0xA
- bls _081288E2
- b _08128A94
-_081288E2:
- lsls r0, 2
- ldr r1, _081288F0 @ =_081288F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081288EC: .4byte gUnknown_203B0E0
-_081288F0: .4byte _081288F4
- .align 2, 0
-_081288F4:
- .4byte _08128920
- .4byte _08128938
- .4byte _08128954
- .4byte _0812899C
- .4byte _08128A44
- .4byte _08128A86
- .4byte _08128A94
- .4byte _08128A94
- .4byte _081289F0
- .4byte _081289B0
- .4byte _081289D4
-_08128920:
- movs r0, 0x6
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128934 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_08128934: .4byte gUnknown_203B0E0
-_08128938:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- beq _08128946
- b _08128A94
-_08128946:
- ldr r0, _08128950 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x2
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_08128950: .4byte gUnknown_203B0E0
-_08128954:
- bl sub_812A568
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08128966
- cmp r1, 0
- ble _08128A00
- b _08128A0A
-_08128966:
- ldr r4, _0812898C @ =gUnknown_203B0E0
- ldr r1, [r4]
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _08128990
- movs r2, 0xC8
- lsls r2, 1
- adds r0, r1, r2
- bl sub_8129614
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- ldr r1, [r4]
- movs r0, 0x9
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_0812898C: .4byte gUnknown_203B0E0
-_08128990:
- movs r2, 0xC8
- lsls r2, 1
- adds r0, r1, r2
- bl sub_81295C0
- b _08128A36
-_0812899C:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128A94
- movs r0, 0x1
- bl sub_8129218
- b _08128A94
-_081289B0:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128A94
- movs r0, 0x14
- movs r1, 0
- bl sub_8129C34
- ldr r0, _081289D0 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0xA
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_081289D0: .4byte gUnknown_203B0E0
-_081289D4:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128A94
- ldr r0, _081289EC @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x8
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_081289EC: .4byte gUnknown_203B0E0
-_081289F0:
- bl sub_812A568
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08128A24
- cmp r1, 0
- bgt _08128A0A
-_08128A00:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08128A0E
- b _08128A94
-_08128A0A:
- cmp r1, 0x1
- bne _08128A94
-_08128A0E:
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128A20 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x3
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_08128A20: .4byte gUnknown_203B0E0
-_08128A24:
- bl sub_80FA4A8
- ldr r4, _08128A40 @ =gUnknown_203B0E0
- ldr r0, [r4]
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r1
- bl sub_8129614
-_08128A36:
- ldr r1, [r4]
- movs r0, 0x4
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_08128A40: .4byte gUnknown_203B0E0
-_08128A44:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08128A94
- bl sub_80FBA1C
- cmp r0, 0
- bne _08128A94
- ldr r4, _08128A7C @ =gUnknown_203B0E0
- ldr r1, [r4]
- movs r2, 0xC8
- lsls r2, 1
- adds r1, r2
- movs r0, 0
- movs r2, 0x28
- bl SendBlock
- lsls r0, 24
- cmp r0, 0
- beq _08128A94
- ldr r1, [r4]
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _08128A80
- movs r0, 0x6
- strh r0, [r1, 0x6]
- b _08128A94
- .align 2, 0
-_08128A7C: .4byte gUnknown_203B0E0
-_08128A80:
- movs r0, 0x5
- strh r0, [r1, 0x6]
- b _08128A94
-_08128A86:
- ldr r0, _08128A9C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08128A94
- movs r0, 0x9
- bl sub_8129218
-_08128A94:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128A9C: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_81288D4
-
- thumb_func_start sub_8128AA0
-sub_8128AA0: @ 8128AA0
- push {r4,lr}
- ldr r1, _08128ABC @ =gUnknown_203B0E0
- ldr r0, [r1]
- ldrh r0, [r0, 0x6]
- adds r2, r1, 0
- cmp r0, 0x7
- bls _08128AB0
- b _08128BFC
-_08128AB0:
- lsls r0, 2
- ldr r1, _08128AC0 @ =_08128AC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08128ABC: .4byte gUnknown_203B0E0
-_08128AC0: .4byte _08128AC4
- .align 2, 0
-_08128AC4:
- .4byte _08128AE4
- .4byte _08128B08
- .4byte _08128B28
- .4byte _08128B4C
- .4byte _08128B80
- .4byte _08128BA0
- .4byte _08128BC4
- .4byte _08128BE8
-_08128AE4:
- ldr r0, _08128B00 @ =sub_81298F8
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08128AF2
- b _08128BFC
-_08128AF2:
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128B04 @ =gUnknown_203B0E0
- ldr r1, [r0]
- b _08128BDA
- .align 2, 0
-_08128B00: .4byte sub_81298F8
-_08128B04: .4byte gUnknown_203B0E0
-_08128B08:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128BFC
- movs r0, 0x12
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128B24 @ =gUnknown_203B0E0
- ldr r1, [r0]
- b _08128BDA
- .align 2, 0
-_08128B24: .4byte gUnknown_203B0E0
-_08128B28:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128BFC
- ldr r4, _08128B48 @ =gUnknown_203B0E0
- ldr r0, [r4]
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r1
- bl sub_81295EC
- ldr r1, [r4]
- b _08128BDA
- .align 2, 0
-_08128B48: .4byte gUnknown_203B0E0
-_08128B4C:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08128BFC
- bl sub_80FBA1C
- cmp r0, 0
- bne _08128BFC
- ldr r4, _08128B7C @ =gUnknown_203B0E0
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r0, 0
- movs r2, 0x28
- bl SendBlock
- lsls r0, 24
- cmp r0, 0
- beq _08128BFC
- ldr r1, [r4]
- b _08128BDA
- .align 2, 0
-_08128B7C: .4byte gUnknown_203B0E0
-_08128B80:
- bl GetBlockReceivedStatus
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08128BFC
- bl sub_80FBA1C
- cmp r0, 0
- bne _08128BFC
- ldr r0, _08128B9C @ =gUnknown_203B0E0
- ldr r1, [r0]
- b _08128BDA
- .align 2, 0
-_08128B9C: .4byte gUnknown_203B0E0
-_08128BA0:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08128BFC
- bl sub_80FBA1C
- adds r4, r0, 0
- cmp r4, 0
- bne _08128BFC
- bl sub_800AAC0
- ldr r0, _08128BC0 @ =gUnknown_203B0E0
- ldr r1, [r0]
- strh r4, [r1, 0xA]
- b _08128BDA
- .align 2, 0
-_08128BC0: .4byte gUnknown_203B0E0
-_08128BC4:
- ldr r1, [r2]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x95
- bhi _08128BD0
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08128BD0:
- ldr r0, _08128BE4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08128BFC
- ldr r1, [r2]
-_08128BDA:
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- b _08128BFC
- .align 2, 0
-_08128BE4: .4byte gReceivedRemoteLinkPlayers
-_08128BE8:
- ldr r1, [r2]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x95
- bls _08128BF8
- movs r0, 0x9
- bl sub_8129218
- b _08128BFC
-_08128BF8:
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08128BFC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8128AA0
-
- thumb_func_start sub_8128C04
-sub_8128C04: @ 8128C04
- push {r4,r5,lr}
- ldr r5, _08128C1C @ =gUnknown_203B0E0
- ldr r1, [r5]
- ldrh r0, [r1, 0x6]
- cmp r0, 0x1
- beq _08128C44
- cmp r0, 0x1
- bgt _08128C20
- cmp r0, 0
- beq _08128C2A
- b _08128CA2
- .align 2, 0
-_08128C1C: .4byte gUnknown_203B0E0
-_08128C20:
- cmp r0, 0x2
- beq _08128C6E
- cmp r0, 0x3
- beq _08128C90
- b _08128CA2
-_08128C2A:
- ldr r0, _08128C40 @ =sub_81298F8
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08128CA2
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- b _08128C80
- .align 2, 0
-_08128C40: .4byte sub_81298F8
-_08128C44:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128CA2
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08128CA2
- bl sub_80FBA1C
- adds r4, r0, 0
- cmp r4, 0
- bne _08128CA2
- bl sub_800AAC0
- ldr r1, [r5]
- strh r4, [r1, 0xA]
- b _08128C82
-_08128C6E:
- ldrh r0, [r1, 0xA]
- cmp r0, 0x95
- bhi _08128C78
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08128C78:
- ldr r0, _08128C8C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08128CA2
-_08128C80:
- ldr r1, [r5]
-_08128C82:
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- b _08128CA2
- .align 2, 0
-_08128C8C: .4byte gReceivedRemoteLinkPlayers
-_08128C90:
- ldrh r0, [r1, 0xA]
- cmp r0, 0x95
- bls _08128C9E
- movs r0, 0x9
- bl sub_8129218
- b _08128CA2
-_08128C9E:
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08128CA2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8128C04
-
- thumb_func_start sub_8128CA8
-sub_8128CA8: @ 8128CA8
- push {r4,lr}
- ldr r1, _08128CC0 @ =gUnknown_203B0E0
- ldr r0, [r1]
- ldrh r0, [r0, 0x6]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _08128D9C
- lsls r0, 2
- ldr r1, _08128CC4 @ =_08128CC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08128CC0: .4byte gUnknown_203B0E0
-_08128CC4: .4byte _08128CC8
- .align 2, 0
-_08128CC8:
- .4byte _08128CDC
- .4byte _08128D08
- .4byte _08128D30
- .4byte _08128D64
- .4byte _08128D88
-_08128CDC:
- ldr r0, _08128D00 @ =sub_81298F8
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08128D9C
- ldr r4, _08128D04 @ =gUnknown_203B0E0
- ldr r0, [r4]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08128CFA
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
-_08128CFA:
- ldr r1, [r4]
- b _08128D7A
- .align 2, 0
-_08128D00: .4byte sub_81298F8
-_08128D04: .4byte gUnknown_203B0E0
-_08128D08:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128D9C
- ldr r4, _08128D2C @ =gUnknown_203B0E0
- ldr r0, [r4]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08128D26
- movs r0, 0x13
- movs r1, 0
- bl sub_8129C34
-_08128D26:
- ldr r1, [r4]
- b _08128D7A
- .align 2, 0
-_08128D2C: .4byte gUnknown_203B0E0
-_08128D30:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08128D9C
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08128D9C
- bl sub_80FBA1C
- adds r4, r0, 0
- cmp r4, 0
- bne _08128D9C
- bl sub_800AAC0
- ldr r0, _08128D60 @ =gUnknown_203B0E0
- ldr r1, [r0]
- strh r4, [r1, 0xA]
- b _08128D7A
- .align 2, 0
-_08128D60: .4byte gUnknown_203B0E0
-_08128D64:
- ldr r1, [r2]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x95
- bhi _08128D70
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08128D70:
- ldr r0, _08128D84 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08128D9C
- ldr r1, [r2]
-_08128D7A:
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- b _08128D9C
- .align 2, 0
-_08128D84: .4byte gReceivedRemoteLinkPlayers
-_08128D88:
- ldr r1, [r2]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x95
- bls _08128D98
- movs r0, 0x9
- bl sub_8129218
- b _08128D9C
-_08128D98:
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08128D9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8128CA8
-
- thumb_func_start sub_8128DA4
-sub_8128DA4: @ 8128DA4
- push {r4,lr}
- ldr r1, _08128DBC @ =gUnknown_203B0E0
- ldr r0, [r1]
- ldrh r0, [r0, 0x6]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _08128E70
- lsls r0, 2
- ldr r1, _08128DC0 @ =_08128DC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08128DBC: .4byte gUnknown_203B0E0
-_08128DC0: .4byte _08128DC4
- .align 2, 0
-_08128DC4:
- .4byte _08128DD8
- .4byte _08128E00
- .4byte _08128E34
- .4byte _08128E42
- .4byte _08128E60
-_08128DD8:
- ldr r0, _08128DE8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08128DEC
- movs r0, 0x1
- bl sub_8129218
- b _08128E70
- .align 2, 0
-_08128DE8: .4byte gReceivedRemoteLinkPlayers
-_08128DEC:
- ldr r0, [r4]
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r1
- bl sub_8129590
- ldr r1, [r4]
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
-_08128E00:
- bl IsLinkTaskFinished
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08128E70
- bl sub_80FBA1C
- cmp r0, 0
- bne _08128E70
- ldr r4, _08128E30 @ =gUnknown_203B0E0
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r0, 0
- movs r2, 0x28
- bl SendBlock
- lsls r0, 24
- cmp r0, 0
- beq _08128E70
- ldr r1, [r4]
- b _08128E52
- .align 2, 0
-_08128E30: .4byte gUnknown_203B0E0
-_08128E34:
- bl sub_8129454
- movs r0, 0x8
- movs r1, 0
- bl sub_8129C34
- b _08128E4E
-_08128E42:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128E70
-_08128E4E:
- ldr r0, _08128E5C @ =gUnknown_203B0E0
- ldr r1, [r0]
-_08128E52:
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- b _08128E70
- .align 2, 0
-_08128E5C: .4byte gUnknown_203B0E0
-_08128E60:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08128E70
- movs r0, 0x1
- bl sub_8129218
-_08128E70:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8128DA4
-
- thumb_func_start sub_8128E78
-sub_8128E78: @ 8128E78
- push {r4,lr}
- ldr r0, _08128E90 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrh r0, [r0, 0x6]
- cmp r0, 0x6
- bls _08128E86
- b _08128FA8
-_08128E86:
- lsls r0, 2
- ldr r1, _08128E94 @ =_08128E98
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08128E90: .4byte gUnknown_203B0E0
-_08128E94: .4byte _08128E98
- .align 2, 0
-_08128E98:
- .4byte _08128EB4
- .4byte _08128EE4
- .4byte _08128F38
- .4byte _08128F50
- .4byte _08128F60
- .4byte _08128F74
- .4byte _08128F8C
-_08128EB4:
- bl sub_8129408
- cmp r0, 0
- beq _08128ED0
- movs r0, 0x9
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128ECC @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x2
- b _08128FA6
- .align 2, 0
-_08128ECC: .4byte gUnknown_203B0E0
-_08128ED0:
- movs r0, 0xD
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128EE0 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x5
- b _08128FA6
- .align 2, 0
-_08128EE0: .4byte gUnknown_203B0E0
-_08128EE4:
- ldr r0, _08128F04 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128F0C
- bl sub_8129424
- movs r0, 0xB
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128F08 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x3
- b _08128FA6
- .align 2, 0
-_08128F04: .4byte gMain
-_08128F08: .4byte gUnknown_203B0E0
-_08128F0C:
- movs r4, 0x2
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08128F1A
- movs r0, 0xA
- b _08128F9A
-_08128F1A:
- bl sub_8129228
- cmp r0, 0
- beq _08128FA8
- movs r0, 0x1
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128F34 @ =gUnknown_203B0E0
- ldr r0, [r0]
- strh r4, [r0, 0x6]
- b _08128FA8
- .align 2, 0
-_08128F34: .4byte gUnknown_203B0E0
-_08128F38:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128FA8
- ldr r0, _08128F4C @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x1
- b _08128FA6
- .align 2, 0
-_08128F4C: .4byte gUnknown_203B0E0
-_08128F50:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128FA8
- movs r0, 0xA
- b _08128F9A
-_08128F60:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128FA8
- movs r0, 0x1
- bl sub_8129218
- b _08128FA8
-_08128F74:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08128FA8
- ldr r0, _08128F88 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x6
- b _08128FA6
- .align 2, 0
-_08128F88: .4byte gUnknown_203B0E0
-_08128F8C:
- ldr r0, _08128FB0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08128FA8
- movs r0, 0x7
-_08128F9A:
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08128FB4 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x4
-_08128FA6:
- strh r0, [r1, 0x6]
-_08128FA8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128FB0: .4byte gMain
-_08128FB4: .4byte gUnknown_203B0E0
- thumb_func_end sub_8128E78
-
- thumb_func_start sub_8128FB8
-sub_8128FB8: @ 8128FB8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08128FD4 @ =gUnknown_203B0E0
- ldr r0, [r1]
- ldrh r0, [r0, 0x6]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _08128FCA
- b _08129206
-_08128FCA:
- lsls r0, 2
- ldr r1, _08128FD8 @ =_08128FDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08128FD4: .4byte gUnknown_203B0E0
-_08128FD8: .4byte _08128FDC
- .align 2, 0
-_08128FDC:
- .4byte _08129014
- .4byte _0812902E
- .4byte _08129054
- .4byte _08129098
- .4byte _081290BC
- .4byte _081290D8
- .4byte _0812911C
- .4byte _08129144
- .4byte _08129168
- .4byte _08129180
- .4byte _081291A4
- .4byte _081291B2
- .4byte _081291C8
- .4byte _081291E8
-_08129014:
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- bne _0812901E
- b _081291C2
-_0812901E:
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0x6]
- b _08129206
-_0812902E:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- beq _0812903C
- b _08129206
-_0812903C:
- movs r0, 0xE
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08129050 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x2
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_08129050: .4byte gUnknown_203B0E0
-_08129054:
- bl sub_812A568
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08129080
- cmp r1, 0
- bgt _0812906E
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08129074
- b _08129206
-_0812906E:
- cmp r1, 0x1
- beq _08129074
- b _08129206
-_08129074:
- ldr r0, _0812907C @ =gUnknown_203B0E0
- ldr r1, [r0]
- b _081291C2
- .align 2, 0
-_0812907C: .4byte gUnknown_203B0E0
-_08129080:
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08129094 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x3
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_08129094: .4byte gUnknown_203B0E0
-_08129098:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- beq _081290A6
- b _08129206
-_081290A6:
- movs r0, 0xF
- movs r1, 0
- bl sub_8129C34
- ldr r0, _081290B8 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x4
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_081290B8: .4byte gUnknown_203B0E0
-_081290BC:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- beq _081290CA
- b _08129206
-_081290CA:
- ldr r0, _081290D4 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x5
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_081290D4: .4byte gUnknown_203B0E0
-_081290D8:
- bl sub_812A568
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08129104
- cmp r1, 0
- bgt _081290F2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081290F8
- b _08129206
-_081290F2:
- cmp r1, 0x1
- beq _081290F8
- b _08129206
-_081290F8:
- ldr r0, _08129100 @ =gUnknown_203B0E0
- ldr r1, [r0]
- b _081291C2
- .align 2, 0
-_08129100: .4byte gUnknown_203B0E0
-_08129104:
- movs r0, 0x7
- movs r1, 0
- bl sub_8129C34
- ldr r0, _08129118 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x6
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_08129118: .4byte gUnknown_203B0E0
-_0812911C:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08129206
- movs r0, 0x10
- movs r1, 0
- bl sub_8129C34
- bl sub_8129470
- ldr r0, _08129140 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x7
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_08129140: .4byte gUnknown_203B0E0
-_08129144:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08129206
- bl SetContinueGameWarpStatusToDynamicWarp
- movs r0, 0
- bl TrySavingData
- ldr r0, _08129164 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x8
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_08129164: .4byte gUnknown_203B0E0
-_08129168:
- movs r0, 0x11
- movs r1, 0
- bl sub_8129C34
- ldr r0, _0812917C @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x9
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_0812917C: .4byte gUnknown_203B0E0
-_08129180:
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08129206
- movs r0, 0x30
- bl PlaySE
- bl ClearContinueGameWarpStatus2
- ldr r0, _081291A0 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0xA
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_081291A0: .4byte gUnknown_203B0E0
-_081291A4:
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x19]
- ldr r1, [r4]
- movs r0, 0xB
- strh r0, [r1, 0x6]
- b _08129206
-_081291B2:
- ldr r0, [r4]
- ldrb r1, [r0, 0x19]
- adds r1, 0x1
- strb r1, [r0, 0x19]
- ldr r1, [r4]
- ldrb r0, [r1, 0x19]
- cmp r0, 0x78
- bls _08129206
-_081291C2:
- movs r0, 0xC
- strh r0, [r1, 0x6]
- b _08129206
-_081291C8:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081291E4 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0xD
- strh r0, [r1, 0x6]
- b _08129206
- .align 2, 0
-_081291E4: .4byte gUnknown_203B0E0
-_081291E8:
- ldr r0, _08129210 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08129206
- bl sub_812B4B8
- bl sub_8129B88
- bl sub_81284BC
- ldr r0, _08129214 @ =CB2_ReturnToField
- bl SetMainCallback2
-_08129206:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129210: .4byte gPaletteFade
-_08129214: .4byte CB2_ReturnToField
- thumb_func_end sub_8128FB8
-
- thumb_func_start sub_8129218
-sub_8129218: @ 8129218
- ldr r1, _08129224 @ =gUnknown_203B0E0
- ldr r1, [r1]
- movs r2, 0
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- bx lr
- .align 2, 0
-_08129224: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129218
-
- thumb_func_start sub_8129228
-sub_8129228: @ 8129228
- push {lr}
- ldr r0, _08129258 @ =gMain
- ldrh r2, [r0, 0x30]
- movs r0, 0x40
- ands r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _081292B2
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08129268
- ldr r0, _0812925C @ =gUnknown_203B0E0
- ldr r2, [r0]
- ldr r1, _08129260 @ =gUnknown_845A8A8
- ldrb r0, [r2, 0x10]
- adds r0, r1
- ldrb r1, [r2, 0x12]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08129264
- adds r0, r1, 0x1
- b _081292CC
- .align 2, 0
-_08129258: .4byte gMain
-_0812925C: .4byte gUnknown_203B0E0
-_08129260: .4byte gUnknown_845A8A8
-_08129264:
- strb r3, [r2, 0x12]
- b _081292CE
-_08129268:
- ldr r0, _0812928C @ =gUnknown_203B0E0
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- cmp r0, 0x3
- beq _081292AE
- movs r0, 0x20
- ands r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _08129296
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- beq _08129290
- subs r0, 0x1
- strb r0, [r1, 0x11]
- b _081292CE
- .align 2, 0
-_0812928C: .4byte gUnknown_203B0E0
-_08129290:
- movs r0, 0x4
- strb r0, [r1, 0x11]
- b _081292CE
-_08129296:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _081292AE
- ldrb r0, [r1, 0x11]
- cmp r0, 0x3
- bhi _081292AA
- adds r0, 0x1
- strb r0, [r1, 0x11]
- b _081292CE
-_081292AA:
- strb r3, [r1, 0x11]
- b _081292CE
-_081292AE:
- movs r0, 0
- b _081292D0
-_081292B2:
- ldr r0, _081292C0 @ =gUnknown_203B0E0
- ldr r2, [r0]
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- beq _081292C4
- subs r0, 0x1
- b _081292CC
- .align 2, 0
-_081292C0: .4byte gUnknown_203B0E0
-_081292C4:
- ldr r0, _081292D4 @ =gUnknown_845A8A8
- ldrb r1, [r2, 0x10]
- adds r1, r0
- ldrb r0, [r1]
-_081292CC:
- strb r0, [r2, 0x12]
-_081292CE:
- movs r0, 0x1
-_081292D0:
- pop {r1}
- bx r1
- .align 2, 0
-_081292D4: .4byte gUnknown_845A8A8
- thumb_func_end sub_8129228
-
- thumb_func_start sub_81292D8
-sub_81292D8: @ 81292D8
- push {r4-r6,lr}
- sub sp, 0x18
- ldr r0, _08129318 @ =gUnknown_203B0E0
- ldr r5, [r0]
- ldrb r0, [r5, 0x10]
- cmp r0, 0x3
- beq _08129320
- ldr r3, _0812931C @ =gUnknown_845A9AC
- ldrb r1, [r5, 0x12]
- lsls r1, 2
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldr r4, [r1]
- ldrb r0, [r5, 0x11]
- cmp r0, 0
- beq _08129312
- adds r1, r0, 0
-_08129302:
- ldrb r0, [r4]
- cmp r0, 0xF9
- bne _0812930A
- adds r4, 0x1
-_0812930A:
- adds r4, 0x1
- subs r1, 0x1
- cmp r1, 0
- bne _08129302
-_08129312:
- movs r5, 0x1
- b _08129346
- .align 2, 0
-_08129318: .4byte gUnknown_203B0E0
-_0812931C: .4byte gUnknown_845A9AC
-_08129320:
- ldrb r0, [r5, 0x12]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r0
- adds r1, 0xB9
- adds r1, r5, r1
- mov r0, sp
- bl StringCopy
- movs r1, 0
- strb r1, [r0]
- movs r1, 0xFF
- strb r1, [r0, 0x1]
- mov r4, sp
- mov r0, sp
- bl StringLength_Multibyte
- adds r5, r0, 0
-_08129346:
- ldr r6, _081293A8 @ =gUnknown_203B0E0
- ldr r1, [r6]
- ldrb r0, [r1, 0x15]
- strb r0, [r1, 0x14]
- cmp r4, 0
- beq _0812939E
- bl sub_81294C8
- adds r2, r0, 0
- subs r5, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _0812939A
- ldr r0, [r6]
- ldrb r0, [r0, 0x15]
- cmp r0, 0xE
- bhi _0812939A
- adds r3, r6, 0
-_0812936C:
- ldrb r0, [r4]
- cmp r0, 0xF9
- bne _08129378
- strb r0, [r2]
- adds r4, 0x1
- adds r2, 0x1
-_08129378:
- ldrb r0, [r4]
- strb r0, [r2]
- adds r4, 0x1
- adds r2, 0x1
- ldr r1, [r3]
- ldrb r0, [r1, 0x15]
- adds r0, 0x1
- strb r0, [r1, 0x15]
- subs r5, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _0812939A
- ldr r0, [r3]
- ldrb r0, [r0, 0x15]
- cmp r0, 0xE
- bls _0812936C
-_0812939A:
- movs r0, 0xFF
- strb r0, [r2]
-_0812939E:
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081293A8: .4byte gUnknown_203B0E0
- thumb_func_end sub_81292D8
-
- thumb_func_start sub_81293AC
-sub_81293AC: @ 81293AC
- push {r4,lr}
- ldr r4, _081293D4 @ =gUnknown_203B0E0
- ldr r1, [r4]
- ldrb r0, [r1, 0x15]
- strb r0, [r1, 0x14]
- ldr r0, [r4]
- ldrb r0, [r0, 0x15]
- cmp r0, 0
- beq _081293CE
- bl sub_81294EC
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x15]
- subs r0, 0x1
- strb r0, [r1, 0x15]
-_081293CE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081293D4: .4byte gUnknown_203B0E0
- thumb_func_end sub_81293AC
-
- thumb_func_start sub_81293D8
-sub_81293D8: @ 81293D8
- push {lr}
- ldr r0, _08129400 @ =gUnknown_203B0E0
- ldr r1, [r0]
- ldrb r0, [r1, 0x15]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- bl sub_81294EC
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r0, 0xF9
- beq _081293FC
- ldr r1, _08129404 @ =gUnknown_845A8AC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081293FC
- strb r0, [r2]
-_081293FC:
- pop {r0}
- bx r0
- .align 2, 0
-_08129400: .4byte gUnknown_203B0E0
-_08129404: .4byte gUnknown_845A8AC
- thumb_func_end sub_81293D8
-
- thumb_func_start sub_8129408
-sub_8129408: @ 8129408
- push {lr}
- ldr r0, _08129418 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0
- bne _0812941C
- movs r0, 0
- b _0812941E
- .align 2, 0
-_08129418: .4byte gUnknown_203B0E0
-_0812941C:
- movs r0, 0x1
-_0812941E:
- pop {r1}
- bx r1
- thumb_func_end sub_8129408
-
- thumb_func_start sub_8129424
-sub_8129424: @ 8129424
- push {r4,lr}
- bl sub_8129758
- adds r1, r0, 0
- ldr r4, _08129450 @ =gUnknown_203B0E0
- ldr r0, [r4]
- ldrb r3, [r0, 0x12]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 2
- adds r2, r3
- adds r2, 0xB9
- adds r0, r2
- bl StringCopy
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129450: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129424
-
- thumb_func_start sub_8129454
-sub_8129454: @ 8129454
- ldr r1, _0812946C @ =gUnknown_203B0E0
- ldr r2, [r1]
- movs r0, 0xFF
- strb r0, [r2, 0x1A]
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0xF
- strb r0, [r2, 0x14]
- ldr r0, [r1]
- strb r3, [r0, 0x15]
- bx lr
- .align 2, 0
-_0812946C: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129454
-
- thumb_func_start sub_8129470
-sub_8129470: @ 8129470
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _081294A4 @ =gSaveBlock1Ptr
- mov r8, r0
- ldr r7, _081294A8 @ =gUnknown_203B0E0
- movs r6, 0xB9
- ldr r5, _081294AC @ =0x00003ad4
- movs r4, 0x9
-_08129482:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5
- ldr r1, [r7]
- adds r1, r6
- bl StringCopy
- adds r6, 0x15
- adds r5, 0x15
- subs r4, 0x1
- cmp r4, 0
- bge _08129482
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081294A4: .4byte gSaveBlock1Ptr
-_081294A8: .4byte gUnknown_203B0E0
-_081294AC: .4byte 0x00003ad4
- thumb_func_end sub_8129470
-
- thumb_func_start sub_81294B0
-sub_81294B0: @ 81294B0
- ldr r2, _081294C4 @ =gUnknown_203B0E0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r0
- adds r1, 0xB9
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_081294C4: .4byte gUnknown_203B0E0
- thumb_func_end sub_81294B0
-
- thumb_func_start sub_81294C8
-sub_81294C8: @ 81294C8
- push {lr}
- ldr r0, _081294E8 @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x1A
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xFF
- beq _081294E0
-_081294D8:
- adds r1, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _081294D8
-_081294E0:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081294E8: .4byte gUnknown_203B0E0
- thumb_func_end sub_81294C8
-
- thumb_func_start sub_81294EC
-sub_81294EC: @ 81294EC
- push {lr}
- ldr r0, _08129518 @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0x1A
- adds r1, r2, 0
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xFF
- beq _08129510
-_081294FE:
- adds r2, r1, 0
- ldrb r0, [r2]
- cmp r0, 0xF9
- bne _08129508
- adds r1, r2, 0x1
-_08129508:
- adds r1, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _081294FE
-_08129510:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08129518: .4byte gUnknown_203B0E0
- thumb_func_end sub_81294EC
-
- thumb_func_start sub_812951C
-sub_812951C: @ 812951C
- push {r4,lr}
- ldr r4, _0812955C @ =gUnknown_203B0E0
- ldr r0, [r4]
- adds r0, 0x1A
- bl StringLength_Multibyte
- adds r2, r0, 0
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x1A
- movs r4, 0
- cmp r2, 0xA
- bls _08129550
- subs r2, 0xA
- movs r3, 0
- cmp r4, r2
- bcs _08129550
-_0812953E:
- ldrb r0, [r1]
- cmp r0, 0xF9
- bne _08129546
- adds r1, 0x1
-_08129546:
- adds r1, 0x1
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- bcc _0812953E
-_08129550:
- lsls r0, r4, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812955C: .4byte gUnknown_203B0E0
- thumb_func_end sub_812951C
-
- thumb_func_start sub_8129560
-sub_8129560: @ 8129560
- movs r1, 0
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8129560
-
- thumb_func_start sub_8129568
-sub_8129568: @ 8129568
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- strb r0, [r4]
- adds r0, r4, 0x1
- ldr r1, _08129588 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- ldr r0, _0812958C @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- strb r0, [r4, 0x9]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129588: .4byte gSaveBlock2Ptr
-_0812958C: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129568
-
- thumb_func_start sub_8129590
-sub_8129590: @ 8129590
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0x1
- ldr r1, _081295B8 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- adds r4, 0x9
- ldr r0, _081295BC @ =gUnknown_203B0E0
- ldr r1, [r0]
- adds r1, 0x1A
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081295B8: .4byte gSaveBlock2Ptr
-_081295BC: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129590
-
- thumb_func_start sub_81295C0
-sub_81295C0: @ 81295C0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- strb r0, [r4]
- adds r0, r4, 0x1
- ldr r1, _081295E4 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- ldr r0, _081295E8 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- strb r0, [r4, 0x9]
- bl sub_80FB9D0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081295E4: .4byte gSaveBlock2Ptr
-_081295E8: .4byte gUnknown_203B0E0
- thumb_func_end sub_81295C0
-
- thumb_func_start sub_81295EC
-sub_81295EC: @ 81295EC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strb r0, [r4]
- adds r0, r4, 0x1
- ldr r1, _0812960C @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- ldr r0, _08129610 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- strb r0, [r4, 0x9]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812960C: .4byte gSaveBlock2Ptr
-_08129610: .4byte gUnknown_203B0E0
- thumb_func_end sub_81295EC
-
- thumb_func_start sub_8129614
-sub_8129614: @ 8129614
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5
- strb r0, [r4]
- adds r0, r4, 0x1
- ldr r1, _08129634 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- ldr r0, _08129638 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- strb r0, [r4, 0x9]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129634: .4byte gSaveBlock2Ptr
-_08129638: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129614
-
- thumb_func_start sub_812963C
-sub_812963C: @ 812963C
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- ldrb r0, [r5]
- adds r1, r0, 0
- adds r4, r5, 0x1
- adds r5, r4, 0
- adds r5, 0x8
- cmp r0, 0x2
- beq _08129664
- cmp r0, 0x2
- bgt _0812965A
- cmp r0, 0x1
- beq _08129688
- b _081296EC
-_0812965A:
- cmp r1, 0x3
- beq _081296BE
- cmp r1, 0x5
- beq _081296B2
- b _081296EC
-_08129664:
- ldr r0, _08129680 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- beq _081296EC
- bl DynamicPlaceholderTextUtil_Reset
- movs r0, 0
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r1, _08129684 @ =gUnknown_841B3AA
- b _081296D8
- .align 2, 0
-_08129680: .4byte gUnknown_203B0E0
-_08129684: .4byte gUnknown_841B3AA
-_08129688:
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCopy
- movs r1, 0xFC
- strb r1, [r0]
- adds r0, 0x1
- movs r1, 0x13
- strb r1, [r0]
- adds r0, 0x1
- movs r1, 0x2A
- strb r1, [r0]
- adds r0, 0x1
- movs r1, 0xF0
- strb r1, [r0]
- adds r0, 0x1
- adds r1, r5, 0
- bl StringCopy
- movs r0, 0x1
- b _081296EE
-_081296B2:
- ldr r0, _081296E4 @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r0, 0x79
- adds r1, r4, 0
- bl StringCopy
-_081296BE:
- ldr r0, _081296E4 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- ldrb r5, [r5]
- cmp r0, r5
- beq _081296EC
- bl DynamicPlaceholderTextUtil_Reset
- movs r0, 0
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r1, _081296E8 @ =gUnknown_841B3BE
-_081296D8:
- adds r0, r6, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- movs r0, 0x1
- b _081296EE
- .align 2, 0
-_081296E4: .4byte gUnknown_203B0E0
-_081296E8: .4byte gUnknown_841B3BE
-_081296EC:
- movs r0, 0
-_081296EE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_812963C
-
- thumb_func_start sub_81296F4
-sub_81296F4: @ 81296F4
- ldr r0, _081296FC @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- bx lr
- .align 2, 0
-_081296FC: .4byte gUnknown_203B0E0
- thumb_func_end sub_81296F4
-
- thumb_func_start sub_8129700
-sub_8129700: @ 8129700
- ldr r2, _08129710 @ =gUnknown_203B0E0
- ldr r3, [r2]
- ldrb r2, [r3, 0x11]
- strb r2, [r0]
- ldrb r0, [r3, 0x12]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08129710: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129700
-
- thumb_func_start sub_8129714
-sub_8129714: @ 8129714
- ldr r0, _0812971C @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r0, 0x1A
- bx lr
- .align 2, 0
-_0812971C: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129714
-
- thumb_func_start sub_8129720
-sub_8129720: @ 8129720
- push {lr}
- bl sub_8129714
- bl StringLength_Multibyte
- pop {r1}
- bx r1
- thumb_func_end sub_8129720
-
- thumb_func_start sub_8129730
-sub_8129730: @ 8129730
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08129748 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r3, [r0, 0x15]
- ldrb r2, [r0, 0x14]
- subs r0, r3, r2
- cmp r0, 0
- bge _0812974C
- negs r0, r0
- str r3, [r4]
- b _0812974E
- .align 2, 0
-_08129748: .4byte gUnknown_203B0E0
-_0812974C:
- str r2, [r4]
-_0812974E:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8129730
-
- thumb_func_start sub_8129758
-sub_8129758: @ 8129758
- push {lr}
- bl sub_812951C
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08129784 @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x1A
- cmp r2, 0
- beq _0812977E
-_0812976E:
- ldrb r0, [r1]
- cmp r0, 0xF9
- bne _08129776
- adds r1, 0x1
-_08129776:
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _0812976E
-_0812977E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08129784: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129758
-
- thumb_func_start sub_8129788
-sub_8129788: @ 8129788
- push {r4,lr}
- bl sub_812951C
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _081297C0 @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x1A
- movs r2, 0
- movs r3, 0
- cmp r2, r4
- bcs _081297B8
-_081297A2:
- ldrb r0, [r1]
- cmp r0, 0xF9
- bne _081297AA
- adds r1, 0x1
-_081297AA:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- adds r3, 0x1
- cmp r3, r4
- bcc _081297A2
-_081297B8:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081297C0: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129788
-
- thumb_func_start sub_81297C4
-sub_81297C4: @ 81297C4
- ldr r0, _081297CC @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r0, 0x39
- bx lr
- .align 2, 0
-_081297CC: .4byte gUnknown_203B0E0
- thumb_func_end sub_81297C4
-
- thumb_func_start sub_81297D0
-sub_81297D0: @ 81297D0
- ldr r0, _081297D8 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x16]
- bx lr
- .align 2, 0
-_081297D8: .4byte gUnknown_203B0E0
- thumb_func_end sub_81297D0
-
- thumb_func_start sub_81297DC
-sub_81297DC: @ 81297DC
- ldr r0, _081297E4 @ =gUnknown_203B0E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- bx lr
- .align 2, 0
-_081297E4: .4byte gUnknown_203B0E0
- thumb_func_end sub_81297DC
-
- thumb_func_start sub_81297E8
-sub_81297E8: @ 81297E8
- push {lr}
- bl sub_81294EC
- ldrb r1, [r0]
- cmp r1, 0xFF
- bhi _08129802
- ldr r0, _08129808 @ =gUnknown_845A8AC
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, r1
- beq _08129802
- cmp r0, 0
- bne _0812980C
-_08129802:
- movs r0, 0x3
- b _0812980E
- .align 2, 0
-_08129808: .4byte gUnknown_845A8AC
-_0812980C:
- movs r0, 0
-_0812980E:
- pop {r1}
- bx r1
- thumb_func_end sub_81297E8
-
- thumb_func_start sub_8129814
-sub_8129814: @ 8129814
- ldr r0, _0812981C @ =gUnknown_203B0E0
- ldr r0, [r0]
- adds r0, 0x79
- bx lr
- .align 2, 0
-_0812981C: .4byte gUnknown_203B0E0
- thumb_func_end sub_8129814
-
- thumb_func_start copy_strings_to_sav1
-copy_strings_to_sav1: @ 8129820
- push {r4,lr}
- ldr r4, _081298A4 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, _081298A8 @ =0x00003ad4
- adds r0, r1
- ldr r1, _081298AC @ =gUnknown_841B510
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298B0 @ =0x00003ae9
- adds r0, r1
- ldr r1, _081298B4 @ =gUnknown_841B516
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298B8 @ =0x00003afe
- adds r0, r1
- ldr r1, _081298BC @ =gUnknown_841B51E
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298C0 @ =0x00003b13
- adds r0, r1
- ldr r1, _081298C4 @ =gUnknown_841B524
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298C8 @ =0x00003b28
- adds r0, r1
- ldr r1, _081298CC @ =gUnknown_841B52B
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298D0 @ =0x00003b3d
- adds r0, r1
- ldr r1, _081298D4 @ =gUnknown_841B531
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298D8 @ =0x00003b52
- adds r0, r1
- ldr r1, _081298DC @ =gUnknown_841B535
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298E0 @ =0x00003b67
- adds r0, r1
- ldr r1, _081298E4 @ =gUnknown_841B53B
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298E8 @ =0x00003b7c
- adds r0, r1
- ldr r1, _081298EC @ =gUnknown_841B541
- bl StringCopy
- ldr r0, [r4]
- ldr r1, _081298F0 @ =0x00003b91
- adds r0, r1
- ldr r1, _081298F4 @ =gUnknown_841B54B
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081298A4: .4byte gSaveBlock1Ptr
-_081298A8: .4byte 0x00003ad4
-_081298AC: .4byte gUnknown_841B510
-_081298B0: .4byte 0x00003ae9
-_081298B4: .4byte gUnknown_841B516
-_081298B8: .4byte 0x00003afe
-_081298BC: .4byte gUnknown_841B51E
-_081298C0: .4byte 0x00003b13
-_081298C4: .4byte gUnknown_841B524
-_081298C8: .4byte 0x00003b28
-_081298CC: .4byte gUnknown_841B52B
-_081298D0: .4byte 0x00003b3d
-_081298D4: .4byte gUnknown_841B531
-_081298D8: .4byte 0x00003b52
-_081298DC: .4byte gUnknown_841B535
-_081298E0: .4byte 0x00003b67
-_081298E4: .4byte gUnknown_841B53B
-_081298E8: .4byte 0x00003b7c
-_081298EC: .4byte gUnknown_841B541
-_081298F0: .4byte 0x00003b91
-_081298F4: .4byte gUnknown_841B54B
- thumb_func_end copy_strings_to_sav1
-
- thumb_func_start sub_81298F8
-sub_81298F8: @ 81298F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812991C @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _08129912
- b _08129B08
-_08129912:
- lsls r0, 2
- ldr r1, _08129920 @ =_08129924
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812991C: .4byte gTasks+0x8
-_08129920: .4byte _08129924
- .align 2, 0
-_08129924:
- .4byte _08129944
- .4byte _08129952
- .4byte _08129AEC
- .4byte _081299A0
- .4byte _08129A8C
- .4byte _08129AC4
- .4byte _08129AD8
- .4byte _08129A7C
-_08129944:
- ldr r0, _08129978 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0812994E
- b _08129AE0
-_0812994E:
- movs r0, 0x1
- strh r0, [r4]
-_08129952:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- strh r0, [r4, 0x8]
- ldr r3, _0812997C @ =gUnknown_203B0E0
- ldr r0, [r3]
- ldrb r1, [r0, 0xD]
- movs r5, 0x8
- ldrsh r0, [r4, r5]
- cmp r1, r0
- beq _08129980
- movs r0, 0x2
- strh r0, [r4]
- ldr r0, [r3]
- strb r2, [r0, 0xD]
- b _08129B08
- .align 2, 0
-_08129978: .4byte gReceivedRemoteLinkPlayers
-_0812997C: .4byte gUnknown_203B0E0
-_08129980:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x6]
- cmp r0, 0
- bne _08129998
- bl sub_80FBA1C
- cmp r0, 0
- beq _08129998
- b _08129B08
-_08129998:
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x3
- strh r0, [r4]
-_081299A0:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _081299DA
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081299DA
- movs r2, 0x1
-_081299BC:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _081299DA
- movs r5, 0x6
- ldrsh r0, [r4, r5]
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- asrs r0, r1
- ands r0, r2
- cmp r0, 0
- beq _081299BC
-_081299DA:
- ldrh r1, [r4, 0x2]
- movs r5, 0x2
- ldrsh r0, [r4, r5]
- cmp r0, 0x5
- bne _081299E6
- b _08129B04
-_081299E6:
- strh r1, [r4, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- bl ResetBlockReceivedFlag
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 8
- ldr r1, _08129A0C @ =gBlockRecvBuffer
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x4
- bhi _08129A28
- lsls r0, 2
- ldr r1, _08129A10 @ =_08129A14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08129A0C: .4byte gBlockRecvBuffer
-_08129A10: .4byte _08129A14
- .align 2, 0
-_08129A14:
- .4byte _08129A28
- .4byte _08129A2C
- .4byte _08129A30
- .4byte _08129A34
- .4byte _08129A38
-_08129A28:
- movs r0, 0x3
- b _08129A3A
-_08129A2C:
- movs r0, 0x3
- b _08129A3A
-_08129A30:
- movs r0, 0x4
- b _08129A3A
-_08129A34:
- movs r0, 0x5
- b _08129A3A
-_08129A38:
- movs r0, 0x6
-_08129A3A:
- strh r0, [r4, 0xA]
- ldr r5, _08129A68 @ =gUnknown_203B0E0
- ldr r0, [r5]
- adds r0, 0x39
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- lsls r1, 8
- ldr r2, _08129A6C @ =gBlockRecvBuffer
- adds r1, r2
- bl sub_812963C
- cmp r0, 0
- beq _08129A70
- ldr r0, [r5]
- ldrh r1, [r4, 0x2]
- strb r1, [r0, 0x16]
- movs r0, 0xC
- movs r1, 0x2
- bl sub_8129C34
- movs r0, 0x7
- b _08129A72
- .align 2, 0
-_08129A68: .4byte gUnknown_203B0E0
-_08129A6C: .4byte gBlockRecvBuffer
-_08129A70:
- ldrh r0, [r4, 0xA]
-_08129A72:
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- b _08129B08
-_08129A7C:
- movs r0, 0x2
- bl sub_8129C8C
- lsls r0, 24
- cmp r0, 0
- bne _08129B08
- ldrh r0, [r4, 0xA]
- b _08129B06
-_08129A8C:
- ldr r6, _08129AB4 @ =gUnknown_203B0E0
- ldr r0, [r6]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- bne _08129AC0
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08129AC0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08129AB8
- bl sub_80FA4A8
- ldr r1, [r6]
- movs r0, 0x1
- b _08129ADE
- .align 2, 0
-_08129AB4: .4byte gUnknown_203B0E0
-_08129AB8:
- movs r5, 0x4
- ldrsh r0, [r4, r5]
- bl sub_80FBD6C
-_08129AC0:
- movs r0, 0x3
- b _08129B06
-_08129AC4:
- ldr r0, _08129AD4 @ =gUnknown_203B0E0
- ldr r1, [r0]
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- beq _08129AE0
- movs r0, 0x2
- b _08129ADE
- .align 2, 0
-_08129AD4: .4byte gUnknown_203B0E0
-_08129AD8:
- ldr r0, _08129AE8 @ =gUnknown_203B0E0
- ldr r1, [r0]
- movs r0, 0x3
-_08129ADE:
- strb r0, [r1, 0x17]
-_08129AE0:
- adds r0, r5, 0
- bl DestroyTask
- b _08129B08
- .align 2, 0
-_08129AE8: .4byte gUnknown_203B0E0
-_08129AEC:
- bl sub_80FBA1C
- cmp r0, 0
- bne _08129B08
- ldr r0, _08129B10 @ =gUnknown_203B0E0
- ldr r1, [r0]
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _08129B04
- ldrb r0, [r1, 0xD]
- bl sub_80FB030
-_08129B04:
- movs r0, 0x1
-_08129B06:
- strh r0, [r4]
-_08129B08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08129B10: .4byte gUnknown_203B0E0
- thumb_func_end sub_81298F8
-
- thumb_func_start sub_8129B14
-sub_8129B14: @ 8129B14
- push {r4,lr}
- ldr r4, _08129B60 @ =gUnknown_203B0E4
- ldr r0, _08129B64 @ =0x00002168
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _08129B70
- bl sub_812AE70
- cmp r0, 0
- beq _08129B70
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08129B68 @ =gUnknown_845AA84
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, _08129B6C @ =gUnknown_845AA94
- bl InitWindows
- bl ResetTempTileDataBuffers
- bl sub_812AD50
- ldr r0, [r4]
- bl sub_8129BB8
- bl sub_8129BC4
- movs r0, 0
- movs r1, 0
- bl sub_8129C34
- movs r0, 0x1
- b _08129B72
- .align 2, 0
-_08129B60: .4byte gUnknown_203B0E4
-_08129B64: .4byte 0x00002168
-_08129B68: .4byte gUnknown_845AA84
-_08129B6C: .4byte gUnknown_845AA94
-_08129B70:
- movs r0, 0
-_08129B72:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129B14
-
- thumb_func_start sub_8129B78
-sub_8129B78: @ 8129B78
- push {lr}
- movs r0, 0
- bl sub_8129C8C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8129B78
-
- thumb_func_start sub_8129B88
-sub_8129B88: @ 8129B88
- push {r4,lr}
- bl sub_812AEB0
- ldr r4, _08129BB0 @ =gUnknown_203B0E4
- ldr r0, [r4]
- cmp r0, 0
- beq _08129B9E
- bl Free
- movs r0, 0
- str r0, [r4]
-_08129B9E:
- bl FreeAllWindowBuffers
- ldr r1, _08129BB4 @ =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BB0: .4byte gUnknown_203B0E4
-_08129BB4: .4byte gScanlineEffect
- thumb_func_end sub_8129B88
-
- thumb_func_start sub_8129BB8
-sub_8129BB8: @ 8129BB8
- movs r2, 0
- movs r1, 0xFF
- strh r1, [r0, 0x18]
- strh r1, [r0, 0x1E]
- strh r2, [r0, 0x1A]
- bx lr
- thumb_func_end sub_8129BB8
-
- thumb_func_start sub_8129BC4
-sub_8129BC4: @ 8129BC4
- push {r4,r5,lr}
- ldr r1, _08129BF4 @ =gUnknown_203B0E4
- ldr r0, [r1]
- cmp r0, 0
- beq _08129BEC
- movs r2, 0
- adds r4, r1, 0
- ldr r5, _08129BF8 @ =sub_812A420
- movs r3, 0
-_08129BD6:
- ldr r0, [r4]
- lsls r1, r2, 3
- adds r0, r1
- str r5, [r0]
- strb r3, [r0, 0x4]
- ldr r0, [r4]
- adds r0, r1
- strb r3, [r0, 0x5]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08129BD6
-_08129BEC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BF4: .4byte gUnknown_203B0E4
-_08129BF8: .4byte sub_812A420
- thumb_func_end sub_8129BC4
-
- thumb_func_start sub_8129BFC
-sub_8129BFC: @ 8129BFC
- push {r4-r6,lr}
- ldr r1, _08129C30 @ =gUnknown_203B0E4
- ldr r0, [r1]
- cmp r0, 0
- beq _08129C2A
- movs r5, 0
- adds r6, r1, 0
-_08129C0A:
- ldr r0, [r6]
- lsls r4, r5, 3
- adds r1, r0, r4
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08129C24
- adds r0, r1, 0x5
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, [r6]
- adds r1, r4
- strb r0, [r1, 0x4]
-_08129C24:
- adds r5, 0x1
- cmp r5, 0x2
- ble _08129C0A
-_08129C2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08129C30: .4byte gUnknown_203B0E4
- thumb_func_end sub_8129BFC
-
- thumb_func_start sub_8129C34
-sub_8129C34: @ 8129C34
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- ldr r3, _08129C70 @ =gUnknown_203B0E4
- ldr r0, [r3]
- lsrs r1, 21
- adds r0, r1
- ldr r2, _08129C74 @ =sub_812A420
- str r2, [r0]
- movs r4, 0
- adds r5, r3, 0
- adds r3, r1, 0
- mov r12, r4
- ldr r1, _08129C78 @ =gUnknown_845AABC
- movs r7, 0x1
- adds r2, r1, 0x4
-_08129C56:
- ldrh r0, [r1]
- cmp r0, r6
- bne _08129C7C
- ldr r1, [r5]
- adds r1, r3
- ldr r0, [r2]
- str r0, [r1]
- strb r7, [r1, 0x4]
- ldr r0, [r5]
- adds r0, r3
- mov r1, r12
- strb r1, [r0, 0x5]
- b _08129C86
- .align 2, 0
-_08129C70: .4byte gUnknown_203B0E4
-_08129C74: .4byte sub_812A420
-_08129C78: .4byte gUnknown_845AABC
-_08129C7C:
- adds r1, 0x8
- adds r2, 0x8
- adds r4, 0x1
- cmp r4, 0x14
- bls _08129C56
-_08129C86:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8129C34
-
- thumb_func_start sub_8129C8C
-sub_8129C8C: @ 8129C8C
- lsls r0, 24
- ldr r1, _08129C9C @ =gUnknown_203B0E4
- ldr r1, [r1]
- lsrs r0, 21
- adds r1, r0
- ldrb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08129C9C: .4byte gUnknown_203B0E4
- thumb_func_end sub_8129C8C
-
- thumb_func_start sub_8129CA0
-sub_8129CA0: @ 8129CA0
- push {r4,lr}
- adds r4, r0, 0
- bl FreeTempTileDataBuffersIfPossible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08129D36
- ldrb r0, [r4]
- cmp r0, 0x6
- bhi _08129D2C
- lsls r0, 2
- ldr r1, _08129CC0 @ =_08129CC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08129CC0: .4byte _08129CC4
- .align 2, 0
-_08129CC4:
- .4byte _08129CE0
- .4byte _08129CEA
- .4byte _08129CF0
- .4byte _08129CF6
- .4byte _08129CFC
- .4byte _08129D02
- .4byte _08129D14
-_08129CE0:
- bl sub_812AAD4
- bl sub_812AB8C
- b _08129D30
-_08129CEA:
- bl sub_812ABD8
- b _08129D30
-_08129CF0:
- bl sub_812AC08
- b _08129D30
-_08129CF6:
- bl sub_812AC58
- b _08129D30
-_08129CFC:
- bl sub_812AC9C
- b _08129D30
-_08129D02:
- bl sub_812ACC0
- bl sub_812ACEC
- bl sub_812AD20
- bl sub_812AD04
- b _08129D30
-_08129D14:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08129D30
- bl sub_812AEC8
- bl sub_812B048
- bl sub_812B100
- b _08129D30
-_08129D2C:
- movs r0, 0
- b _08129D38
-_08129D30:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08129D36:
- movs r0, 0x1
-_08129D38:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129CA0
-
- thumb_func_start sub_8129D40
-sub_8129D40: @ 8129D40
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08129D50
- cmp r0, 0x1
- beq _08129D5E
- b _08129D68
-_08129D50:
- bl sub_812AA10
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- b _08129D68
-_08129D5E:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _08129D70
-_08129D68:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
-_08129D70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129D40
-
- thumb_func_start sub_8129D78
-sub_8129D78: @ 8129D78
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08129D88
- cmp r0, 0x1
- beq _08129D96
- b _08129DA0
-_08129D88:
- bl sub_812AA64
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- b _08129DA0
-_08129D96:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _08129DA8
-_08129DA0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
-_08129DA8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129D78
-
- thumb_func_start sub_8129DB0
-sub_8129DB0: @ 8129DB0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08129DE6
- cmp r0, 0x1
- bgt _08129DC4
- cmp r0, 0
- beq _08129DCA
- b _08129E0C
-_08129DC4:
- cmp r0, 0x2
- beq _08129DF2
- b _08129E0C
-_08129DCA:
- movs r0, 0x1
- bl sub_812AEFC
- bl sub_812A980
- cmp r0, 0
- bne _08129E12
- bl sub_812A804
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- b _08129E0C
-_08129DE6:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _08129E0C
- b _08129E12
-_08129DF2:
- bl sub_812A9C8
- cmp r0, 0
- bne _08129E12
- bl sub_812AF1C
- movs r0, 0
- bl sub_812AEFC
- bl sub_812B160
- movs r0, 0
- b _08129E14
-_08129E0C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08129E12:
- movs r0, 0x1
-_08129E14:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129DB0
-
- thumb_func_start sub_8129E1C
-sub_8129E1C: @ 8129E1C
- push {lr}
- bl sub_812AF1C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8129E1C
-
- thumb_func_start sub_8129E28
-sub_8129E28: @ 8129E28
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08129E38
- cmp r0, 0x1
- beq _08129E5C
- b _08129E66
-_08129E38:
- movs r0, 0
- movs r1, 0
- bl sub_812A578
- movs r0, 0x17
- movs r1, 0xB
- movs r2, 0x1
- bl sub_812A424
- ldr r0, _08129E58 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- b _08129E66
- .align 2, 0
-_08129E58: .4byte gUnknown_203B0E4
-_08129E5C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _08129E6E
-_08129E66:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
-_08129E6E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129E28
-
- thumb_func_start sub_8129E74
-sub_8129E74: @ 8129E74
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08129E84
- cmp r0, 0x1
- beq _08129E94
- b _08129EAA
-_08129E84:
- bl sub_812A6F4
- bl sub_812A51C
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- b _08129EAA
-_08129E94:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08129EB0
- bl sub_812A728
- bl sub_812A544
- movs r0, 0
- b _08129EB2
-_08129EAA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08129EB0:
- movs r0, 0x1
-_08129EB2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129E74
-
- thumb_func_start sub_8129EB8
-sub_8129EB8: @ 8129EB8
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08129ECA
- cmp r0, 0x1
- beq _08129F02
- b _08129F14
-_08129ECA:
- add r1, sp, 0x8
- add r0, sp, 0x4
- bl sub_8129730
- ldr r0, [sp, 0x4]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x8]
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0
- bl sub_812A74C
- bl sub_8129714
- adds r1, r0, 0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_812A778
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _08129F14
-_08129F02:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08129F1A
- bl sub_812B160
- movs r0, 0
- b _08129F1C
-_08129F14:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08129F1A:
- movs r0, 0x1
-_08129F1C:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8129EB8
-
- thumb_func_start sub_8129F24
-sub_8129F24: @ 8129F24
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08129F80
- cmp r0, 0x1
- bgt _08129F3A
- cmp r0, 0
- beq _08129F44
- b _08129FBA
-_08129F3A:
- cmp r0, 0x2
- beq _08129FA4
- cmp r0, 0x3
- beq _08129FB6
- b _08129FBA
-_08129F44:
- bl sub_8129788
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_8129758
- adds r5, r0, 0
- bl StringLength_Multibyte
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x66
- bl sub_812A74C
- movs r0, 0x5
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x4
- bl sub_812A778
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _08129FBA
-_08129F80:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08129FC0
- movs r0, 0x1
- movs r1, 0x10
- bl sub_812A578
- ldr r0, _08129FA0 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- b _08129FBA
- .align 2, 0
-_08129FA0: .4byte gUnknown_203B0E4
-_08129FA4:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08129FC0
- movs r0, 0x1
- bl sub_812AF8C
- b _08129FBA
-_08129FB6:
- movs r0, 0
- b _08129FC2
-_08129FBA:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_08129FC0:
- movs r0, 0x1
-_08129FC2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8129F24
-
- thumb_func_start sub_8129FCC
-sub_8129FCC: @ 8129FCC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _0812A028
- cmp r0, 0x1
- bgt _08129FE2
- cmp r0, 0
- beq _08129FEC
- b _0812A062
-_08129FE2:
- cmp r0, 0x2
- beq _0812A048
- cmp r0, 0x3
- beq _0812A05E
- b _0812A062
-_08129FEC:
- bl sub_8129788
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_8129758
- adds r5, r0, 0
- bl StringLength_Multibyte
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_812A74C
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_812A778
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _0812A062
-_0812A028:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0812A068
- bl sub_812A6F4
- ldr r0, _0812A044 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- b _0812A062
- .align 2, 0
-_0812A044: .4byte gUnknown_203B0E4
-_0812A048:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0812A068
- movs r0, 0
- bl sub_812AF8C
- bl sub_812A728
- b _0812A062
-_0812A05E:
- movs r0, 0
- b _0812A06A
-_0812A062:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_0812A068:
- movs r0, 0x1
-_0812A06A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8129FCC
-
- thumb_func_start sub_812A074
-sub_812A074: @ 812A074
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A084
- cmp r0, 0x1
- beq _0812A098
- b _0812A0A6
-_0812A084:
- bl sub_812A804
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A0A6
-_0812A098:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0812A0A6
- movs r0, 0
- b _0812A0A8
-_0812A0A6:
- movs r0, 0x1
-_0812A0A8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A074
-
- thumb_func_start sub_812A0B0
-sub_812A0B0: @ 812A0B0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrb r0, [r6]
- cmp r0, 0x4
- bhi _0812A182
- lsls r0, 2
- ldr r1, _0812A0C4 @ =_0812A0C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812A0C4: .4byte _0812A0C8
- .align 2, 0
-_0812A0C8:
- .4byte _0812A0DC
- .4byte _0812A108
- .4byte _0812A138
- .4byte _0812A15C
- .4byte _0812A126
-_0812A0DC:
- ldr r0, _0812A104 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrh r5, [r0, 0x1A]
- bl sub_81297C4
- adds r4, r0, 0
- bl sub_81297D0
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_812AA78
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- b _0812A17C
- .align 2, 0
-_0812A104: .4byte gUnknown_203B0E4
-_0812A108:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0812A182
- ldr r0, _0812A12C @ =gUnknown_203B0E4
- ldr r1, [r0]
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x8
- bhi _0812A130
- adds r0, 0x1
- strh r0, [r1, 0x1A]
- movs r0, 0x4
- strb r0, [r6]
-_0812A126:
- movs r0, 0
- b _0812A184
- .align 2, 0
-_0812A12C: .4byte gUnknown_203B0E4
-_0812A130:
- strh r2, [r1, 0x1C]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_0812A138:
- movs r0, 0
- movs r1, 0
- movs r2, 0x5
- movs r3, 0x11
- bl ScrollWindow
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, _0812A178 @ =gUnknown_203B0E4
- ldr r1, [r0]
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_0812A15C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0812A182
- ldr r0, _0812A178 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1C]
- cmp r0, 0x2
- bhi _0812A17C
- ldrb r0, [r6]
- subs r0, 0x1
- b _0812A180
- .align 2, 0
-_0812A178: .4byte gUnknown_203B0E4
-_0812A17C:
- ldrb r0, [r6]
- adds r0, 0x1
-_0812A180:
- strb r0, [r6]
-_0812A182:
- movs r0, 0x1
-_0812A184:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_812A0B0
-
- thumb_func_start sub_812A18C
-sub_812A18C: @ 812A18C
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A19C
- cmp r0, 0x1
- beq _0812A1A8
- b _0812A1AE
-_0812A19C:
- bl sub_812AFC0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A1AE
-_0812A1A8:
- bl sub_812AFFC
- b _0812A1B0
-_0812A1AE:
- movs r0, 0x1
-_0812A1B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A18C
-
- thumb_func_start sub_812A1B8
-sub_812A1B8: @ 812A1B8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A1C8
- cmp r0, 0x1
- beq _0812A1E8
- b _0812A1F2
-_0812A1C8:
- movs r0, 0x3
- movs r1, 0x10
- bl sub_812A578
- ldr r0, _0812A1E4 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A1F2
- .align 2, 0
-_0812A1E4: .4byte gUnknown_203B0E4
-_0812A1E8:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A1F4
-_0812A1F2:
- movs r0, 0x1
-_0812A1F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A1B8
-
- thumb_func_start sub_812A1FC
-sub_812A1FC: @ 812A1FC
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A20C
- cmp r0, 0x1
- beq _0812A22C
- b _0812A236
-_0812A20C:
- movs r0, 0x4
- movs r1, 0
- bl sub_812A578
- ldr r0, _0812A228 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A236
- .align 2, 0
-_0812A228: .4byte gUnknown_203B0E4
-_0812A22C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A238
-_0812A236:
- movs r0, 0x1
-_0812A238:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A1FC
-
- thumb_func_start sub_812A240
-sub_812A240: @ 812A240
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A250
- cmp r0, 0x1
- beq _0812A280
- b _0812A28A
-_0812A250:
- bl DynamicPlaceholderTextUtil_Reset
- bl sub_8129814
- adds r1, r0, 0
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r0, 0x5
- movs r1, 0
- bl sub_812A578
- ldr r0, _0812A27C @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A28A
- .align 2, 0
-_0812A27C: .4byte gUnknown_203B0E4
-_0812A280:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A28C
-_0812A28A:
- movs r0, 0x1
-_0812A28C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A240
-
- thumb_func_start sub_812A294
-sub_812A294: @ 812A294
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A2A4
- cmp r0, 0x1
- beq _0812A2D0
- b _0812A2DA
-_0812A2A4:
- movs r0, 0x6
- movs r1, 0
- bl sub_812A578
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl sub_812A424
- ldr r0, _0812A2CC @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A2DA
- .align 2, 0
-_0812A2CC: .4byte gUnknown_203B0E4
-_0812A2D0:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A2DC
-_0812A2DA:
- movs r0, 0x1
-_0812A2DC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A294
-
- thumb_func_start sub_812A2E4
-sub_812A2E4: @ 812A2E4
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A2F4
- cmp r0, 0x1
- beq _0812A320
- b _0812A32A
-_0812A2F4:
- movs r0, 0x7
- movs r1, 0
- bl sub_812A578
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl sub_812A424
- ldr r0, _0812A31C @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A32A
- .align 2, 0
-_0812A31C: .4byte gUnknown_203B0E4
-_0812A320:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A32C
-_0812A32A:
- movs r0, 0x1
-_0812A32C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A2E4
-
- thumb_func_start sub_812A334
-sub_812A334: @ 812A334
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A344
- cmp r0, 0x1
- beq _0812A364
- b _0812A36E
-_0812A344:
- movs r0, 0x8
- movs r1, 0
- bl sub_812A578
- ldr r0, _0812A360 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A36E
- .align 2, 0
-_0812A360: .4byte gUnknown_203B0E4
-_0812A364:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A370
-_0812A36E:
- movs r0, 0x1
-_0812A370:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A334
-
- thumb_func_start sub_812A378
-sub_812A378: @ 812A378
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A388
- cmp r0, 0x1
- beq _0812A3BC
- b _0812A3C6
-_0812A388:
- bl DynamicPlaceholderTextUtil_Reset
- ldr r0, _0812A3B4 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r0, 0x9
- movs r1, 0
- bl sub_812A578
- ldr r0, _0812A3B8 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A3C6
- .align 2, 0
-_0812A3B4: .4byte gSaveBlock2Ptr
-_0812A3B8: .4byte gUnknown_203B0E4
-_0812A3BC:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A3C8
-_0812A3C6:
- movs r0, 0x1
-_0812A3C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A378
-
- thumb_func_start sub_812A3D0
-sub_812A3D0: @ 812A3D0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0812A3E0
- cmp r0, 0x1
- beq _0812A40C
- b _0812A416
-_0812A3E0:
- movs r0, 0xA
- movs r1, 0
- bl sub_812A578
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl sub_812A424
- ldr r0, _0812A408 @ =gUnknown_203B0E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x1E]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0812A416
- .align 2, 0
-_0812A408: .4byte gUnknown_203B0E4
-_0812A40C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- b _0812A418
-_0812A416:
- movs r0, 0x1
-_0812A418:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A3D0
-
- thumb_func_start sub_812A420
-sub_812A420: @ 812A420
- movs r0, 0
- bx lr
- thumb_func_end sub_812A420
-
- thumb_func_start sub_812A424
-sub_812A424: @ 812A424
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r4, _0812A4FC @ =0xffffff00
- ldr r2, [sp, 0xC]
- ands r2, r4
- lsrs r0, 16
- ldr r3, _0812A500 @ =0xffff00ff
- ands r2, r3
- orrs r2, r0
- lsrs r1, 8
- ldr r0, _0812A504 @ =0xff00ffff
- ands r2, r0
- orrs r2, r1
- ldr r0, _0812A508 @ =0x00ffffff
- ands r2, r0
- movs r0, 0xC0
- lsls r0, 19
- orrs r2, r0
- str r2, [sp, 0xC]
- ldr r0, [sp, 0x10]
- ands r0, r4
- movs r1, 0x4
- orrs r0, r1
- ands r0, r3
- movs r1, 0xE0
- lsls r1, 4
- orrs r0, r1
- ldr r1, _0812A50C @ =0x0000ffff
- ands r0, r1
- movs r1, 0xA4
- lsls r1, 15
- orrs r0, r1
- str r0, [sp, 0x10]
- add r0, sp, 0xC
- bl AddWindow
- adds r1, r0, 0
- ldr r6, _0812A510 @ =gUnknown_203B0E4
- ldr r0, [r6]
- movs r7, 0
- strh r1, [r0, 0x18]
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0xFF
- beq _0812A4F0
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, [r6]
- ldrb r0, [r0, 0x18]
- bl PutWindowTilemap
- ldr r0, [r6]
- ldrb r0, [r0, 0x18]
- ldr r2, _0812A514 @ =gText_Yes
- movs r5, 0x2
- str r5, [sp]
- movs r4, 0xFF
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r0, [r6]
- ldrb r0, [r0, 0x18]
- ldr r2, _0812A518 @ =gText_No
- movs r1, 0x10
- str r1, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r0, [r6]
- ldrb r0, [r0, 0x18]
- movs r1, 0x1
- movs r2, 0xD
- bl DrawTextBorderOuter
- ldr r0, [r6]
- ldrb r0, [r0, 0x18]
- movs r1, 0xE
- str r1, [sp]
- str r5, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
-_0812A4F0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4FC: .4byte 0xffffff00
-_0812A500: .4byte 0xffff00ff
-_0812A504: .4byte 0xff00ffff
-_0812A508: .4byte 0x00ffffff
-_0812A50C: .4byte 0x0000ffff
-_0812A510: .4byte gUnknown_203B0E4
-_0812A514: .4byte gText_Yes
-_0812A518: .4byte gText_No
- thumb_func_end sub_812A424
-
- thumb_func_start sub_812A51C
-sub_812A51C: @ 812A51C
- push {r4,lr}
- ldr r4, _0812A540 @ =gUnknown_203B0E4
- ldr r0, [r4]
- ldrh r0, [r0, 0x18]
- cmp r0, 0xFF
- beq _0812A53A
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl ClearStdWindowAndFrameToTransparent
- ldr r0, [r4]
- ldrb r0, [r0, 0x18]
- bl ClearWindowTilemap
-_0812A53A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A540: .4byte gUnknown_203B0E4
- thumb_func_end sub_812A51C
-
- thumb_func_start sub_812A544
-sub_812A544: @ 812A544
- push {r4,lr}
- ldr r4, _0812A564 @ =gUnknown_203B0E4
- ldr r0, [r4]
- ldrh r0, [r0, 0x18]
- cmp r0, 0xFF
- beq _0812A55E
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- ldr r1, [r4]
- movs r0, 0xFF
- strh r0, [r1, 0x18]
-_0812A55E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A564: .4byte gUnknown_203B0E4
- thumb_func_end sub_812A544
-
- thumb_func_start sub_812A568
-sub_812A568: @ 812A568
- push {lr}
- bl Menu_ProcessInput
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_812A568
-
- thumb_func_start sub_812A578
-sub_812A578: @ 812A578
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r1, _0812A624 @ =0xffffff00
- ldr r3, [sp, 0x14]
- ands r3, r1
- ldr r2, _0812A628 @ =0xffff00ff
- ands r3, r2
- movs r0, 0x80
- lsls r0, 4
- orrs r3, r0
- ldr r0, _0812A62C @ =0xff00ffff
- ands r3, r0
- movs r0, 0x80
- lsls r0, 13
- orrs r3, r0
- ldr r5, _0812A630 @ =0x00ffffff
- ands r3, r5
- movs r0, 0xA8
- lsls r0, 21
- orrs r3, r0
- str r3, [sp, 0x14]
- ldr r0, [sp, 0x18]
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- ands r0, r2
- movs r1, 0xE0
- lsls r1, 4
- orrs r0, r1
- ldr r1, _0812A634 @ =0x0000ffff
- ands r0, r1
- movs r1, 0xD4
- lsls r1, 15
- orrs r0, r1
- str r0, [sp, 0x18]
- ldr r1, _0812A638 @ =gUnknown_845AB64
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _0812A5F8
- lsls r0, r3, 16
- movs r1, 0xF9
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- ands r2, r3
- orrs r2, r0
- lsrs r1, r2, 24
- adds r1, 0x7
- lsls r1, 24
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
-_0812A5F8:
- add r0, sp, 0x14
- bl AddWindow
- ldr r5, _0812A63C @ =gUnknown_203B0E4
- ldr r1, [r5]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x1E]
- mov r8, r0
- cmp r0, 0xFF
- beq _0812A6E2
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0812A640
- adds r0, r1, 0
- adds r0, 0x22
- ldr r1, [r4]
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- ldr r0, [r5]
- adds r6, r0, 0
- adds r6, 0x22
- b _0812A642
- .align 2, 0
-_0812A624: .4byte 0xffffff00
-_0812A628: .4byte 0xffff00ff
-_0812A62C: .4byte 0xff00ffff
-_0812A630: .4byte 0x00ffffff
-_0812A634: .4byte 0x0000ffff
-_0812A638: .4byte gUnknown_845AB64
-_0812A63C: .4byte gUnknown_203B0E4
-_0812A640:
- ldr r6, [r4]
-_0812A642:
- mov r0, r9
- lsls r1, r0, 8
- movs r0, 0
- movs r2, 0
- bl ChangeBgY
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- ldr r1, _0812A6AC @ =gUnknown_845AB64
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- bne _0812A6B0
- adds r0, r5, 0
- movs r1, 0xA
- movs r2, 0x2
- bl DrawTextBorderInner
- ldrb r3, [r4, 0x5]
- adds r3, 0x8
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4, 0x6]
- adds r0, 0x8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- ldrb r0, [r4, 0x7]
- str r0, [sp, 0xC]
- ldrb r0, [r4, 0x8]
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r6, 0
- bl AddTextPrinterParameterized5
- b _0812A6DA
- .align 2, 0
-_0812A6AC: .4byte gUnknown_845AB64
-_0812A6B0:
- adds r0, r5, 0
- movs r1, 0xA
- movs r2, 0x2
- bl DrawTextBorderOuter
- ldrb r3, [r4, 0x5]
- ldrb r0, [r4, 0x6]
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- ldrb r0, [r4, 0x7]
- str r0, [sp, 0xC]
- ldrb r0, [r4, 0x8]
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r6, 0
- bl AddTextPrinterParameterized5
-_0812A6DA:
- ldr r0, _0812A6F0 @ =gUnknown_203B0E4
- ldr r0, [r0]
- mov r1, r8
- strh r1, [r0, 0x1E]
-_0812A6E2:
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A6F0: .4byte gUnknown_203B0E4
- thumb_func_end sub_812A578
-
- thumb_func_start sub_812A6F4
-sub_812A6F4: @ 812A6F4
- push {r4,lr}
- ldr r4, _0812A724 @ =gUnknown_203B0E4
- ldr r0, [r4]
- ldrh r0, [r0, 0x1E]
- cmp r0, 0xFF
- beq _0812A712
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl ClearStdWindowAndFrameToTransparent
- ldr r0, [r4]
- ldrb r0, [r0, 0x1E]
- bl ClearWindowTilemap
-_0812A712:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A724: .4byte gUnknown_203B0E4
- thumb_func_end sub_812A6F4
-
- thumb_func_start sub_812A728
-sub_812A728: @ 812A728
- push {r4,lr}
- ldr r4, _0812A748 @ =gUnknown_203B0E4
- ldr r0, [r4]
- ldrh r0, [r0, 0x1E]
- cmp r0, 0xFF
- beq _0812A742
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- ldr r1, [r4]
- movs r0, 0xFF
- strh r0, [r1, 0x1E]
-_0812A742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A748: .4byte gUnknown_203B0E4
- thumb_func_end sub_812A728
-
- thumb_func_start sub_812A74C
-sub_812A74C: @ 812A74C
- push {lr}
- sub sp, 0x8
- adds r3, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 19
- lsrs r3, 16
- lsls r1, 19
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0xE
- str r0, [sp, 0x4]
- movs r0, 0x1
- adds r1, r2, 0
- adds r2, r3, 0
- movs r3, 0x1
- bl FillWindowPixelRect
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_812A74C
-
- thumb_func_start sub_812A778
-sub_812A778: @ 812A778
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- mov r10, r1
- ldr r1, [sp, 0x54]
- lsls r0, 16
- lsrs r5, r0, 16
- mov r9, r5
- lsls r2, 24
- lsrs r4, r2, 24
- mov r8, r4
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r4, 0
- beq _0812A7B4
- bl sub_81297DC
- adds r1, r0, 0
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_812A74C
-_0812A7B4:
- add r0, sp, 0xC
- mov r1, r8
- strb r1, [r0]
- strb r7, [r0, 0x1]
- strb r6, [r0, 0x2]
- add r4, sp, 0x10
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x8
- strb r0, [r4, 0x2]
- mov r0, sp
- adds r0, 0x13
- mov r1, r10
- bl StringCopy
- mov r0, r9
- lsls r2, r0, 27
- lsrs r2, 24
- add r1, sp, 0xC
- str r1, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x2
- movs r3, 0x1
- bl AddTextPrinterParameterized3
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812A778
-
- thumb_func_start sub_812A804
-sub_812A804: @ 812A804
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- movs r0, 0x2
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- bl sub_81296F4
- lsls r0, 24
- lsrs r2, r0, 24
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- movs r0, 0xE
- strb r0, [r1, 0x1]
- movs r0, 0xD
- strb r0, [r1, 0x2]
- cmp r2, 0x3
- beq _0812A8A0
- add r1, sp, 0x10
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x8
- strb r0, [r1, 0x2]
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- cmp r2, 0x2
- bne _0812A84C
- movs r1, 0x6
- str r1, [sp, 0x40]
-_0812A84C:
- movs r7, 0
- movs r6, 0
- lsls r0, r2, 2
- ldr r1, _0812A89C @ =gUnknown_845A9AC
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldr r0, [sp, 0x40]
- lsls r5, r0, 24
-_0812A85E:
- ldr r1, [r4]
- cmp r1, 0
- bne _0812A866
- b _0812A96C
-_0812A866:
- mov r0, sp
- adds r0, 0x13
- bl StringCopy
- lsls r3, r6, 24
- lsrs r3, 24
- add r1, sp, 0xC
- str r1, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x44]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- lsrs r2, r5, 24
- bl AddTextPrinterParameterized3
- adds r4, 0x4
- adds r7, 0x1
- adds r0, r6, 0
- adds r0, 0xC
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r7, 0x9
- ble _0812A85E
- b _0812A96C
- .align 2, 0
-_0812A89C: .4byte gUnknown_845A9AC
-_0812A8A0:
- movs r1, 0x4
- str r1, [sp, 0x40]
- movs r7, 0
- movs r6, 0
-_0812A8A8:
- adds r0, r7, 0
- bl sub_81294B0
- adds r5, r0, 0
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- cmp r0, 0x28
- bgt _0812A8E6
- lsls r3, r6, 24
- lsrs r3, 24
- add r4, sp, 0xC
- str r4, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r4, 0x80
- lsls r4, 19
- lsrs r2, r4, 24
- bl AddTextPrinterParameterized3
- adds r0, r7, 0x1
- str r0, [sp, 0x48]
- adds r6, 0xC
- mov r10, r6
- b _0812A960
-_0812A8E6:
- adds r0, r5, 0
- bl StringLength_Multibyte
- adds r4, r0, 0
- mov r1, sp
- adds r1, 0x10
- str r1, [sp, 0x44]
- ldr r0, [sp, 0x40]
- lsls r0, 24
- mov r8, r0
- lsls r1, r6, 24
- mov r9, r1
- adds r0, r7, 0x1
- str r0, [sp, 0x48]
- adds r6, 0xC
- mov r10, r6
- ldr r7, [sp, 0x40]
- adds r7, 0x23
- ldr r6, [sp, 0x44]
-_0812A90C:
- subs r4, 0x1
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl StringCopyN_Multibyte
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- bl GetStringWidth
- cmp r0, 0x23
- bgt _0812A90C
- mov r1, r8
- lsrs r2, r1, 24
- mov r0, r9
- lsrs r4, r0, 24
- add r1, sp, 0xC
- str r1, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- ldr r1, [sp, 0x44]
- str r1, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized3
- adds r2, r7, 0
- add r0, sp, 0xC
- str r0, [sp]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0x4]
- ldr r0, _0812A97C @ =gUnknown_845ABE8
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized3
-_0812A960:
- ldr r7, [sp, 0x48]
- mov r4, r10
- lsls r0, r4, 16
- lsrs r6, r0, 16
- cmp r7, 0x9
- ble _0812A8A8
-_0812A96C:
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A97C: .4byte gUnknown_845ABE8
- thumb_func_end sub_812A804
-
- thumb_func_start sub_812A980
-sub_812A980: @ 812A980
- push {r4,lr}
- ldr r1, _0812A9A4 @ =gUnknown_203B0E4
- ldr r2, [r1]
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, 0x37
- bgt _0812A9B4
- adds r0, r3, 0
- adds r0, 0xC
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- ble _0812A9A8
- movs r0, 0x38
- strh r0, [r2, 0x20]
- b _0812A9B4
- .align 2, 0
-_0812A9A4: .4byte gUnknown_203B0E4
-_0812A9A8:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- bl sub_812ADA0
- movs r0, 0x1
- b _0812A9C0
-_0812A9B4:
- ldr r0, [r1]
- movs r4, 0x20
- ldrsh r0, [r0, r4]
- bl sub_812ADF8
- movs r0, 0
-_0812A9C0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A980
-
- thumb_func_start sub_812A9C8
-sub_812A9C8: @ 812A9C8
- push {r4,lr}
- ldr r1, _0812A9EC @ =gUnknown_203B0E4
- ldr r2, [r1]
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, 0
- ble _0812A9FC
- adds r0, r3, 0
- subs r0, 0xC
- strh r0, [r2, 0x20]
- lsls r0, 16
- cmp r0, 0
- bgt _0812A9F0
- movs r0, 0
- strh r0, [r2, 0x20]
- b _0812A9FC
- .align 2, 0
-_0812A9EC: .4byte gUnknown_203B0E4
-_0812A9F0:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- bl sub_812ADA0
- movs r0, 0x1
- b _0812AA08
-_0812A9FC:
- ldr r0, [r1]
- movs r4, 0x20
- ldrsh r0, [r0, r4]
- bl sub_812ADF8
- movs r0, 0
-_0812AA08:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812A9C8
-
- thumb_func_start sub_812AA10
-sub_812AA10: @ 812AA10
- push {lr}
- sub sp, 0xC
- movs r0, 0x3
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xD
- bl DrawTextBorderOuter
- ldr r0, _0812AA60 @ =gUnknown_845ABEC
- str r0, [sp]
- movs r0, 0x3
- movs r1, 0x2
- movs r2, 0xE
- movs r3, 0x5
- bl UnionRoomAndTradeMenuPrintOptions
- bl sub_81296F4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xE
- str r1, [sp]
- movs r1, 0x5
- str r1, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x2
- movs r2, 0
- movs r3, 0
- bl Menu_InitCursor
- movs r0, 0x3
- bl PutWindowTilemap
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0812AA60: .4byte gUnknown_845ABEC
- thumb_func_end sub_812AA10
-
- thumb_func_start sub_812AA64
-sub_812AA64: @ 812AA64
- push {lr}
- movs r0, 0x3
- movs r1, 0
- bl ClearStdWindowAndFrameToTransparent
- movs r0, 0x3
- bl ClearWindowTilemap
- pop {r0}
- bx r0
- thumb_func_end sub_812AA64
-
- thumb_func_start sub_812AA78
-sub_812AA78: @ 812AA78
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- add r3, sp, 0xC
- movs r1, 0x1
- strb r1, [r3]
- lsrs r2, 23
- adds r1, r2, 0x2
- strb r1, [r3, 0x1]
- adds r1, r3, 0
- adds r2, 0x3
- strb r2, [r1, 0x2]
- lsls r4, r0, 4
- subs r4, r0
- lsls r3, r4, 16
- lsrs r3, 16
- movs r0, 0xA8
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x11
- movs r2, 0
- bl FillWindowPixelRect
- lsls r4, 24
- lsrs r4, 24
- add r0, sp, 0xC
- str r0, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized3
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812AA78
-
- thumb_func_start sub_812AAD4
-sub_812AAD4: @ 812AAD4
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuRegBits
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r1, 0xE0
- lsls r1, 8
- movs r0, 0
- bl ClearGpuRegBits
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, _0812AB88 @ =0x000040f0
- movs r0, 0x40
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0x90
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3D
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x3F
- bl SetGpuReg
- pop {r0}
- bx r0
- .align 2, 0
-_0812AB88: .4byte 0x000040f0
- thumb_func_end sub_812AAD4
-
- thumb_func_start sub_812AB8C
-sub_812AB8C: @ 812AB8C
- push {r4,lr}
- ldr r4, _0812ABC8 @ =gUnknown_203B0E4
- ldr r1, [r4]
- movs r0, 0x94
- lsls r0, 1
- adds r1, r0
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _0812ABCC @ =0x00000928
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _0812ABD0 @ =0x00001128
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _0812ABD4 @ =0x00001928
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ABC8: .4byte gUnknown_203B0E4
-_0812ABCC: .4byte 0x00000928
-_0812ABD0: .4byte 0x00001128
-_0812ABD4: .4byte 0x00001928
- thumb_func_end sub_812AB8C
-
- thumb_func_start sub_812ABD8
-sub_812ABD8: @ 812ABD8
- push {lr}
- sub sp, 0x8
- movs r1, 0xC0
- lsls r1, 19
- movs r0, 0
- movs r2, 0x20
- movs r3, 0x1
- bl RequestDma3Fill
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_812ABD8
-
- thumb_func_start sub_812AC08
-sub_812AC08: @ 812AC08
- push {lr}
- sub sp, 0x4
- ldr r0, _0812AC48 @ =gUnknown_8EAA9F0
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0812AC4C @ =gUnknown_845AA24
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0812AC50 @ =gUnknown_8EAAA10
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r1, _0812AC54 @ =gUnknown_8EAAA6C
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812AC48: .4byte gUnknown_8EAA9F0
-_0812AC4C: .4byte gUnknown_845AA24
-_0812AC50: .4byte gUnknown_8EAAA10
-_0812AC54: .4byte gUnknown_8EAAA6C
- thumb_func_end sub_812AC08
-
- thumb_func_start sub_812AC58
-sub_812AC58: @ 812AC58
- push {lr}
- sub sp, 0x4
- ldr r0, _0812AC90 @ =gUnknown_8EA1700
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0812AC94 @ =gUnknown_8EA1720
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r1, _0812AC98 @ =gUnknown_8EA1958
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812AC90: .4byte gUnknown_8EA1700
-_0812AC94: .4byte gUnknown_8EA1720
-_0812AC98: .4byte gUnknown_8EA1958
- thumb_func_end sub_812AC58
-
- thumb_func_start sub_812AC9C
-sub_812AC9C: @ 812AC9C
- push {lr}
- ldr r0, _0812ACB8 @ =gUnknown_845AA44
- movs r1, 0x80
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0812ACBC @ =0x06004020
- movs r0, 0
- movs r2, 0x20
- movs r3, 0x1
- bl RequestDma3Fill
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACB8: .4byte gUnknown_845AA44
-_0812ACBC: .4byte 0x06004020
- thumb_func_end sub_812AC9C
-
- thumb_func_start sub_812ACC0
-sub_812ACC0: @ 812ACC0
- push {lr}
- ldr r0, _0812ACE8 @ =gUnknown_845AA64
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACE8: .4byte gUnknown_845AA64
- thumb_func_end sub_812ACC0
-
- thumb_func_start sub_812ACEC
-sub_812ACEC: @ 812ACEC
- push {lr}
- movs r0, 0x2
- bl PutWindowTilemap
- bl sub_812A804
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_812ACEC
-
- thumb_func_start sub_812AD04
-sub_812AD04: @ 812AD04
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_812AD04
-
- thumb_func_start sub_812AD20
-sub_812AD20: @ 812AD20
- push {lr}
- movs r0, 0x3
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xD0
- bl TextWindow_SetUserSelectedFrame
- movs r0, 0x3
- movs r1, 0xA
- movs r2, 0x20
- bl TextWindow_SetStdFrame0_WithPal
- ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD4C: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_812AD20
-
- thumb_func_start sub_812AD50
-sub_812AD50: @ 812AD50
- push {lr}
- sub sp, 0x10
- ldr r0, _0812AD8C @ =0xa2600001
- str r0, [sp, 0x4]
- ldr r0, _0812AD90 @ =0x04000014
- str r0, [sp]
- mov r2, sp
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- mov r0, sp
- strb r1, [r0, 0x9]
- ldr r0, _0812AD94 @ =gUnknown_203B0E4
- ldr r0, [r0]
- strh r1, [r0, 0x20]
- str r1, [sp, 0xC]
- add r0, sp, 0xC
- ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers
- ldr r2, _0812AD9C @ =0x010003c0
- bl CpuFastSet
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD8C: .4byte 0xa2600001
-_0812AD90: .4byte 0x04000014
-_0812AD94: .4byte gUnknown_203B0E4
-_0812AD98: .4byte gScanlineEffectRegBuffers
-_0812AD9C: .4byte 0x010003c0
- thumb_func_end sub_812AD50
-
- thumb_func_start sub_812ADA0
-sub_812ADA0: @ 812ADA0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- ldr r5, _0812ADE8 @ =gScanlineEffect
- ldrb r0, [r5, 0x14]
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 7
- ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers
- adds r1, r4
- ldr r2, _0812ADF0 @ =0x01000090
- mov r0, sp
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- movs r1, 0
- strh r1, [r0]
- ldrb r2, [r5, 0x14]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 7
- movs r2, 0x90
- lsls r2, 1
- adds r4, r2
- adds r1, r4
- ldr r2, _0812ADF4 @ =0x01000010
- bl CpuSet
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ADE8: .4byte gScanlineEffect
-_0812ADEC: .4byte gScanlineEffectRegBuffers
-_0812ADF0: .4byte 0x01000090
-_0812ADF4: .4byte 0x01000010
- thumb_func_end sub_812ADA0
-
- thumb_func_start sub_812ADF8
-sub_812ADF8: @ 812ADF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- strh r4, [r0]
- ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers
- ldr r0, _0812AE68 @ =0x01000090
- mov r9, r0
- mov r0, sp
- adds r1, r5, 0
- mov r2, r9
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- movs r6, 0
- strh r6, [r0]
- movs r2, 0x90
- lsls r2, 1
- adds r1, r5, r2
- ldr r2, _0812AE6C @ =0x01000010
- mov r8, r2
- bl CpuSet
- add r0, sp, 0x4
- strh r4, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r5, r2
- mov r2, r9
- bl CpuSet
- mov r0, sp
- adds r0, 0x6
- strh r6, [r0]
- movs r1, 0x8A
- lsls r1, 4
- adds r5, r1
- adds r1, r5, 0
- mov r2, r8
- bl CpuSet
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AE64: .4byte gScanlineEffectRegBuffers
-_0812AE68: .4byte 0x01000090
-_0812AE6C: .4byte 0x01000010
- thumb_func_end sub_812ADF8
-
- thumb_func_start sub_812AE70
-sub_812AE70: @ 812AE70
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0812AE9C @ =gUnknown_845AF58
-_0812AE76:
- adds r0, r4, 0
- bl LoadCompressedSpriteSheet
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, 0x4
- bls _0812AE76
- ldr r0, _0812AEA0 @ =gUnknown_845AF80
- bl LoadSpritePalette
- ldr r4, _0812AEA4 @ =gUnknown_203B0E8
- movs r0, 0x18
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _0812AEA8
- movs r0, 0x1
- b _0812AEAA
- .align 2, 0
-_0812AE9C: .4byte gUnknown_845AF58
-_0812AEA0: .4byte gUnknown_845AF80
-_0812AEA4: .4byte gUnknown_203B0E8
-_0812AEA8:
- movs r0, 0
-_0812AEAA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_812AE70
-
- thumb_func_start sub_812AEB0
-sub_812AEB0: @ 812AEB0
- push {lr}
- ldr r0, _0812AEC4 @ =gUnknown_203B0E8
- ldr r0, [r0]
- cmp r0, 0
- beq _0812AEBE
- bl Free
-_0812AEBE:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AEC4: .4byte gUnknown_203B0E8
- thumb_func_end sub_812AEB0
-
- thumb_func_start sub_812AEC8
-sub_812AEC8: @ 812AEC8
- push {lr}
- ldr r0, _0812AEF0 @ =gUnknown_845AFC0
- movs r1, 0xA
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812AEF4 @ =gUnknown_203B0E8
- ldr r2, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0812AEF8 @ =gSprites
- adds r1, r0
- str r1, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0812AEF0: .4byte gUnknown_845AFC0
-_0812AEF4: .4byte gUnknown_203B0E8
-_0812AEF8: .4byte gSprites
- thumb_func_end sub_812AEC8
-
- thumb_func_start sub_812AEFC
-sub_812AEFC: @ 812AEFC
- ldr r1, _0812AF18 @ =gUnknown_203B0E8
- ldr r1, [r1]
- ldr r2, [r1]
- adds r2, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r3, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .align 2, 0
-_0812AF18: .4byte gUnknown_203B0E8
- thumb_func_end sub_812AEFC
-
- thumb_func_start sub_812AF1C
-sub_812AF1C: @ 812AF1C
- push {r4,r5,lr}
- sub sp, 0x4
- bl sub_81296F4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- adds r5, 0x1
- mov r0, sp
- adds r1, r5, 0
- bl sub_8129700
- cmp r4, 0x3
- beq _0812AF5C
- ldr r4, _0812AF58 @ =gUnknown_203B0E8
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- ldr r1, [r4]
- ldr r2, [r1]
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0xA
- strh r0, [r2, 0x20]
- ldr r2, [r1]
- b _0812AF72
- .align 2, 0
-_0812AF58: .4byte gUnknown_203B0E8
-_0812AF5C:
- ldr r4, _0812AF88 @ =gUnknown_203B0E8
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, [r4]
- ldr r1, [r2]
- movs r0, 0x18
- strh r0, [r1, 0x20]
- ldr r2, [r2]
-_0812AF72:
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, 0x18
- strh r0, [r2, 0x22]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF88: .4byte gUnknown_203B0E8
- thumb_func_end sub_812AF1C
-
- thumb_func_start sub_812AF8C
-sub_812AF8C: @ 812AF8C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 2
- ldr r0, _0812AFB8 @ =gUnknown_845AC14 + 2
- adds r4, r0
- movs r0, 0
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- ldr r0, _0812AFBC @ =0x01010000
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x4
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AFB8: .4byte gUnknown_845AC14 + 2
-_0812AFBC: .4byte 0x01010000
- thumb_func_end sub_812AF8C
-
- thumb_func_start sub_812AFC0
-sub_812AFC0: @ 812AFC0
- push {lr}
- bl sub_81296F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0812AFE0
- ldr r0, _0812AFDC @ =gUnknown_203B0E8
- ldr r0, [r0]
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
- b _0812AFEC
- .align 2, 0
-_0812AFDC: .4byte gUnknown_203B0E8
-_0812AFE0:
- ldr r0, _0812AFF8 @ =gUnknown_203B0E8
- ldr r0, [r0]
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
-_0812AFEC:
- ldr r0, _0812AFF8 @ =gUnknown_203B0E8
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x14]
- pop {r0}
- bx r0
- .align 2, 0
-_0812AFF8: .4byte gUnknown_203B0E8
- thumb_func_end sub_812AFC0
-
- thumb_func_start sub_812AFFC
-sub_812AFFC: @ 812AFFC
- push {r4,lr}
- ldr r4, _0812B00C @ =gUnknown_203B0E8
- ldr r1, [r4]
- ldrh r0, [r1, 0x14]
- cmp r0, 0x3
- bls _0812B010
-_0812B008:
- movs r0, 0
- b _0812B042
- .align 2, 0
-_0812B00C: .4byte gUnknown_203B0E8
-_0812B010:
- adds r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0812B040
- bl sub_81296F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0812B034
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- b _0812B008
-_0812B034:
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- b _0812B008
-_0812B040:
- movs r0, 0x1
-_0812B042:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812AFFC
-
- thumb_func_start sub_812B048
-sub_812B048: @ 812B048
- push {r4,r5,lr}
- ldr r0, _0812B08C @ =gUnknown_845AFE0
- movs r1, 0x4C
- movs r2, 0x98
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0812B090 @ =gUnknown_203B0E8
- ldr r2, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r4, _0812B094 @ =gSprites
- adds r1, r4
- str r1, [r2, 0x8]
- ldr r0, _0812B098 @ =gUnknown_845AFF8
- movs r1, 0x40
- movs r2, 0x98
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r2, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B08C: .4byte gUnknown_845AFE0
-_0812B090: .4byte gUnknown_203B0E8
-_0812B094: .4byte gSprites
-_0812B098: .4byte gUnknown_845AFF8
- thumb_func_end sub_812B048
-
- thumb_func_start sub_812B09C
-sub_812B09C: @ 812B09C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_81297DC
- adds r3, r0, 0
- cmp r3, 0xF
- bne _0812B0B8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0812B0CC
-_0812B0B8:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- lsls r0, r3, 3
- adds r0, 0x4C
- strh r0, [r4, 0x20]
-_0812B0CC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812B09C
-
- thumb_func_start sub_812B0D4
-sub_812B0D4: @ 812B0D4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0812B0FA
- strh r2, [r1, 0x2E]
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0812B0FA
- strh r2, [r1, 0x24]
-_0812B0FA:
- pop {r0}
- bx r0
- thumb_func_end sub_812B0D4
-
- thumb_func_start sub_812B100
-sub_812B100: @ 812B100
- push {r4,r5,lr}
- ldr r0, _0812B150 @ =gUnknown_845B050
- movs r1, 0x8
- movs r2, 0x98
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0812B154 @ =gUnknown_203B0E8
- ldr r2, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r4, _0812B158 @ =gSprites
- adds r1, r4
- str r1, [r2, 0xC]
- ldr r0, _0812B15C @ =gUnknown_845B068
- movs r1, 0x20
- movs r2, 0x98
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r2, 0x10]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B150: .4byte gUnknown_845B050
-_0812B154: .4byte gUnknown_203B0E8
-_0812B158: .4byte gSprites
-_0812B15C: .4byte gUnknown_845B068
- thumb_func_end sub_812B100
-
- thumb_func_start sub_812B160
-sub_812B160: @ 812B160
- push {r4,lr}
- bl sub_81296F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0812B198
- bl sub_8129720
- cmp r0, 0
- beq _0812B1A2
- ldr r3, _0812B194 @ =gUnknown_203B0E8
- ldr r0, [r3]
- ldr r1, [r0, 0x10]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- ldr r0, [r0, 0x10]
- movs r1, 0x3
- bl StartSpriteAnim
- b _0812B1D6
- .align 2, 0
-_0812B194: .4byte gUnknown_203B0E8
-_0812B198:
- bl sub_81297E8
- adds r4, r0, 0
- cmp r4, 0x3
- bne _0812B1B8
-_0812B1A2:
- ldr r0, _0812B1B4 @ =gUnknown_203B0E8
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- b _0812B1D6
- .align 2, 0
-_0812B1B4: .4byte gUnknown_203B0E8
-_0812B1B8:
- ldr r3, _0812B1DC @ =gUnknown_203B0E8
- ldr r0, [r3]
- ldr r1, [r0, 0x10]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- ldr r0, [r0, 0x10]
- lsls r1, r4, 24
- lsrs r1, 24
- bl StartSpriteAnim
-_0812B1D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B1DC: .4byte gUnknown_203B0E8
- thumb_func_end sub_812B160
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/data_8479668.s b/data/data_8479668.s
index 8527b4f09..393a5cc44 100644
--- a/data/data_8479668.s
+++ b/data/data_8479668.s
@@ -75,64 +75,64 @@ gUnknown_847AA8F::
gUnknown_847AAA8::
.string "{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 18}'{CLEAR 18} $"
-gUnknown_847AAC1::
+gText_UnionRoomChatKeyboard_ABCDE::
.string "ABCDE$"
-gUnknown_847AAC7::
+gText_UnionRoomChatKeyboard_FGHIJ::
.string "FGHIJ$"
-gUnknown_847AACD::
+gText_UnionRoomChatKeyboard_KLMNO::
.string "KLMNO$"
-gUnknown_847AAD3::
+gText_UnionRoomChatKeyboard_PQRST::
.string "PQRST$"
-gUnknown_847AAD9::
+gText_UnionRoomChatKeyboard_UVWXY::
.string "UVWXY$"
-gUnknown_847AADF::
+gText_UnionRoomChatKeyboard_Z::
.string "Z $"
-gUnknown_847AAE5::
+gText_UnionRoomChatKeyboard_01234Upper::
.string "01234$"
-gUnknown_847AAEB::
+gText_UnionRoomChatKeyboard_56789Upper::
.string "56789$"
-gUnknown_847AAF1::
+gText_UnionRoomChatKeyboard_PunctuationUpper::
.string ".,!? $"
-gUnknown_847AAF7::
+gText_UnionRoomChatKeyboard_SymbolsUpper::
.string "-/&… $"
-gUnknown_847AAFD::
+gText_UnionRoomChatKeyboard_abcde::
.string "abcde$"
-gUnknown_847AB03::
+gText_UnionRoomChatKeyboard_fghij::
.string "fghij$"
-gUnknown_847AB09::
+gText_UnionRoomChatKeyboard_klmno::
.string "klmno$"
-gUnknown_847AB0F::
+gText_UnionRoomChatKeyboard_pqrst::
.string "pqrst$"
-gUnknown_847AB15::
+gText_UnionRoomChatKeyboard_uvwxy::
.string "uvwxy$"
-gUnknown_847AB1B::
+gText_UnionRoomChatKeyboard_z::
.string "z $"
-gUnknown_847AB21::
+gText_UnionRoomChatKeyboard_01234Lower::
.string "01234$"
-gUnknown_847AB27::
+gText_UnionRoomChatKeyboard_56789Lower::
.string "56789$"
-gUnknown_847AB2D::
+gText_UnionRoomChatKeyboard_PunctuationLower::
.string ".,!? $"
-gUnknown_847AB33::
+gText_UnionRoomChatKeyboard_SymbolsLower::
.string "-/&… $"
.string "$"
@@ -144,34 +144,34 @@ gUnknown_847AB33::
.string "$"
.string "$"
-gUnknown_847AB41::
+gText_UnionRoomChatKeyboard_Emoji1::
.string "{EXTRA 245}{EXTRA 246}{EXTRA 247}{EXTRA 248}{EXTRA 254}$"
-gUnknown_847AB4C::
+gText_UnionRoomChatKeyboard_Emoji2::
.string "{EXTRA 249}{EXTRA 250}{EXTRA 252}{EXTRA 251}{EXTRA 253}$"
-gUnknown_847AB57::
+gText_UnionRoomChatKeyboard_Emoji3::
.string "{EXTRA 236}{EXTRA 237}{EXTRA 238}{EXTRA 235}{EXTRA 234}$"
-gUnknown_847AB62::
+gText_UnionRoomChatKeyboard_Emoji4::
.string "♂♀{EXTRA 212}{EXTRA 213}{EXTRA 211}$"
-gUnknown_847AB6B::
+gText_UnionRoomChatKeyboard_Emoji5::
.string "{EXTRA 216}{EXTRA 217}{EXTRA 242}{EXTRA 243}{EXTRA 244}$"
-gUnknown_847AB76::
+gText_UnionRoomChatKeyboard_Emoji6::
.string "{EXTRA 218}{EXTRA 241}{EXTRA 224}{EXTRA 226}{EXTRA 227}$"
-gUnknown_847AB81::
+gText_UnionRoomChatKeyboard_Emoji7::
.string "{EXTRA 240}{EXTRA 239}{EXTRA 225}{EXTRA 214}{EXTRA 215}$"
-gUnknown_847AB8C::
+gText_UnionRoomChatKeyboard_Emoji8::
.string "{EXTRA 228}{EXTRA 229}{EXTRA 230}{EXTRA 231}{EXTRA 232}$"
-gUnknown_847AB97::
+gText_UnionRoomChatKeyboard_Emoji9::
.string "{EXTRA 233}{EXTRA 220}{EXTRA 221}{EXTRA 222}{EXTRA 209}$"
-gUnknown_847ABA2::
+gText_UnionRoomChatKeyboard_Emoji10::
.string "{EXTRA 210}{EXTRA 208}ょ: $"
// trainer_tower (again?)
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 950bc6d5d..e28093686 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -637,6 +637,8 @@ gStdScriptsEnd::
.include "data/maps/Route18/text.inc"
.include "data/maps/Route19/text.inc"
.include "data/maps/Route20/text.inc"
+ .include "data/maps/Route21_North/text.inc"
+ .include "data/maps/Route21_South/text.inc"
.include "data/maps/Route22/text.inc"
.include "data/maps/Route23/text.inc"
.include "data/maps/Route24/text.inc"
@@ -689,6 +691,7 @@ gStdScriptsEnd::
.include "data/maps/VermilionCity_House1/text.inc"
.include "data/maps/VermilionCity_PokemonCenter_1F/text.inc"
.include "data/maps/VermilionCity_PokemonFanClub/text.inc"
+ .include "data/maps/VermilionCity_House2/text.inc"
.include "data/maps/VermilionCity_Mart/text.inc"
.include "data/maps/VermilionCity_Gym/text.inc"
.include "data/maps/VermilionCity_House3/text.inc"
@@ -940,23 +943,7 @@ Text_DugUpItemFromGround:: @ 81A5700
.string "from deep in the ground.$"
.include "data/text/route23.inc"
-
-Text_1A58A7:: @ 81A58A7
- .string "Let's see…\n"
- .string "Uh-oh! You have caught only\l"
- .string "{STR_VAR_3} kinds of POKéMON!\p"
- .string "You need {STR_VAR_1} kinds\n"
- .string "if you want the {STR_VAR_2}.$"
-
-Text_1A5909:: @ 81A5909
- .string "…Oh. I see.\p"
- .string "When you get {STR_VAR_1} kinds of POKéMON,\n"
- .string "come back for the {STR_VAR_2}.$"
-
-Text_1A594D:: @ 81A594D
- .string "Oh! I see you don't have any\n"
- .string "room for the {STR_VAR_2}.$"
-
+ .include "data/text/aide.inc"
.include "data/text/ingame_trade.inc"
Text_CardKeyOpenedDoor:: @ 81A5B88
@@ -1076,13 +1063,7 @@ Text_FoundTMHMContainsMove:: @ 81A63E8
.string "{PLAYER} found a {STR_VAR_2}!\n"
.string "It contains {STR_VAR_1}.$"
-Text_1A6407:: @ 81A6407
- .string "おつかれさん!\n"
- .string "どこに いきたいんだ?$"
-
-Text_1A641B:: @ 81A641B
- .string "All right!\n"
- .string "All aboard SEAGALLOP HI-SPEED {STR_VAR_1}!$"
+ .include "data/text/seagallop.inc"
@ Call for legendary bird trio
Text_Gyaoo:: @ 81A6448
@@ -1430,20 +1411,7 @@ EventScript_1A7AB9:: @ 81A7AB9
special Special_GetElevatorFloor
return
-EventScript_1A7ABD:: @ 81A7ABD
- msgbox Text_1A58A7
- release
- end
-
-EventScript_1A7AC7:: @ 81A7AC7
- msgbox Text_1A594D
- release
- end
-
-EventScript_1A7AD1:: @ 81A7AD1
- msgbox Text_1A5909
- release
- end
+ .include "data/scripts/aide.inc"
gUnknown_81A7ADB:: @ 81A7ADB
special sub_80CADC4
@@ -1525,21 +1493,21 @@ Common_EventScript_DirectCornerAttendant:: @ 81A8D02
call CableClub_EventScript_DirectCornerAttendant
end
-VermilionCity_PokemonCenter_1F_EventScript_1A8D08:: @ 81A8D08
+VermilionCity_PokemonCenter_1F_EventScript_VSSeekerWoman:: @ 81A8D08
lock
faceplayer
- goto_if_set FLAG_GOT_VS_SEEKER, EventScript_1A8D3F
- msgbox Text_194234
+ goto_if_set FLAG_GOT_VS_SEEKER, VermilionCity_PokemonCenter_1F_EventScript_ExplainVSSeeker
+ msgbox VermilionCity_PokemonCenter_1F_Text_UrgeToBattleSomeoneAgain
setflag FLAG_GOT_VS_SEEKER
giveitem ITEM_VS_SEEKER
compare VAR_RESULT, FALSE
goto_if_eq EventScript_BagIsFull
- msgbox Text_19430F
+ msgbox VermilionCity_PokemonCenter_1F_Text_UseDeviceForRematches
release
end
-EventScript_1A8D3F:: @ 81A8D3F
- msgbox Text_194381
+VermilionCity_PokemonCenter_1F_EventScript_ExplainVSSeeker:: @ 81A8D3F
+ msgbox VermilionCity_PokemonCenter_1F_Text_ExplainVSSeeker
release
end
diff --git a/data/graphics.s b/data/graphics.s
index 809385e49..247a5d230 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -16374,16 +16374,16 @@ gFameCheckerBg3Tilemap:: @ 8EA0700
gFameCheckerBg2Tilemap:: @ 8EA0F00
.incbin "data/graphics/fame_checker_tilemap2.bin"
-gUnknown_8EA1700:: @ 8EA1700
+gLinkMiscMenu_Pal:: @ 8EA1700
.incbin "graphics/interface/union_room_chat.gbapal"
-gUnknown_8EA1720:: @ 8EA1720
+gLinkMiscMenu_Gfx:: @ 8EA1720
.incbin "graphics/interface/union_room_chat.4bpp.lz"
-gUnknown_8EA1958:: @ 8EA1958
+gLinkMiscMenu_Tilemap:: @ 8EA1958
.incbin "graphics/interface/union_room_chat.bin.lz"
-gUnknown_8EA1A50:: @ 8EA1A50
+gUnionRoomChatIcons:: @ 8EA1A50
.incbin "graphics/interface/union_room_chat_icons.4bpp.lz"
.align 2
@@ -16508,13 +16508,13 @@ gTilesetPalettes_8EA9D88:: @ 8EA9D88
gTilesetTiles_8EA9F88:: @ 8EA9F88
.incbin "data/tilesets/secondary/82D4E6C/tiles.4bpp.lz"
-gUnknown_8EAA9F0:: @ 8EAA9F0
+gUnionRoomChatPanelBgPal_7:: @ 8EAA9F0
.incbin "graphics/interface/union_room_chat_panel.gbapal"
-gUnknown_8EAAA10:: @ 8EAAA10
+gUnionRoomChatPanelBgTiles:: @ 8EAAA10
.incbin "graphics/interface/union_room_chat_panel.4bpp.lz"
-gUnknown_8EAAA6C:: @ 8EAAA6C
+gUnionRoomChatPanelBgMap:: @ 8EAAA6C
.incbin "graphics/interface/union_room_chat_panel.bin.lz"
gCreditsMonBackdropPals:: @ 8EAAB18
diff --git a/data/maps/CinnabarIsland/scripts.inc b/data/maps/CinnabarIsland/scripts.inc
index 5780a2bf6..e0260dac5 100644
--- a/data/maps/CinnabarIsland/scripts.inc
+++ b/data/maps/CinnabarIsland/scripts.inc
@@ -213,7 +213,7 @@ CinnabarIsland_EventScript_SailToOneIsland:: @ 81670E6
setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1
setvar VAR_0x8004, SEAGALLOP_CINNABAR_ISLAND
setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND
- goto EventScript_1A90DA
+ goto EventScript_SetSail
end
CinnabarIsland_EventScript_ApproachShore:: @ 8167142
diff --git a/data/maps/FiveIsland_Harbor/scripts.inc b/data/maps/FiveIsland_Harbor/scripts.inc
index 71f305d0b..47ee3487f 100644
--- a/data/maps/FiveIsland_Harbor/scripts.inc
+++ b/data/maps/FiveIsland_Harbor/scripts.inc
@@ -7,5 +7,5 @@ FiveIsland_Harbor_EventScript_171D43:: @ 8171D43
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_FIVE_ISLAND
- goto EventScript_1A900F
+ goto EventScript_ChooseDestFromIsland
end
diff --git a/data/maps/FourIsland_Harbor/scripts.inc b/data/maps/FourIsland_Harbor/scripts.inc
index 39d98de68..d8933d783 100644
--- a/data/maps/FourIsland_Harbor/scripts.inc
+++ b/data/maps/FourIsland_Harbor/scripts.inc
@@ -7,5 +7,5 @@ FourIsland_Harbor_EventScript_171C99:: @ 8171C99
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_FOUR_ISLAND
- goto EventScript_1A900F
+ goto EventScript_ChooseDestFromIsland
end
diff --git a/data/maps/LavenderTown_Mart/text.inc b/data/maps/LavenderTown_Mart/text.inc
index a5b0a4968..cdf25450e 100644
--- a/data/maps/LavenderTown_Mart/text.inc
+++ b/data/maps/LavenderTown_Mart/text.inc
@@ -18,3 +18,8 @@ LavenderTown_Mart_Text_TrainerDuosCanChallengeYou:: @ 8193DF1
.string "If that happens, you have to send\n"
.string "out two POKéMON to battle, too.$"
+LavenderTown_Mart_Text_SoldNuggetFromMountainsFor5000:: @ 8193E82
+ .string "この あいだ やまおくで\n"
+ .string "きんのたまを ひろい ましてね!\p"
+ .string "つかえない しなもの ですが\n"
+ .string "うったら なんと 5000¥でした$"
diff --git a/data/maps/OneIsland_Harbor/scripts.inc b/data/maps/OneIsland_Harbor/scripts.inc
index 754c6f7c6..bbbe36fb9 100644
--- a/data/maps/OneIsland_Harbor/scripts.inc
+++ b/data/maps/OneIsland_Harbor/scripts.inc
@@ -38,5 +38,5 @@ OneIsland_Harbor_EventScript_1713BD:: @ 81713BD
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_ONE_ISLAND
- goto EventScript_1A8EC5
+ goto EventScript_ChooseDestFromOneIsland
end
diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc
index 4f1a059ad..05f00c76b 100644
--- a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc
+++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc
@@ -503,7 +503,7 @@ EventScript_1711DA:: @ 81711DA
setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 3
setvar VAR_0x8004, SEAGALLOP_ONE_ISLAND
setvar VAR_0x8006, SEAGALLOP_CINNABAR_ISLAND
- goto EventScript_1A90DA
+ goto EventScript_SetSail
end
EventScript_1712E4:: @ 81712E4
diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
index d28125f72..0e466abd3 100644
--- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
+++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
@@ -346,7 +346,7 @@ EventScript_16939C:: @ 816939C
end
EventScript_1693AC:: @ 81693AC
- trainerbattle_tutorial TRAINER_RIVAL_OAKS_LAB_SQUIRTLE, 3, Text_18DDEA, Text_18DE1A
+ trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_SQUIRTLE, RIVAL_BATTLE_TUTORIAL, Text_18DDEA, Text_RivalVictory
goto EventScript_1694C2
end
@@ -402,7 +402,7 @@ EventScript_169414:: @ 8169414
end
EventScript_169424:: @ 8169424
- trainerbattle_tutorial TRAINER_RIVAL_OAKS_LAB_CHARMANDER, 3, Text_18DDEA, Text_18DE1A
+ trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_CHARMANDER, RIVAL_BATTLE_TUTORIAL, Text_18DDEA, Text_RivalVictory
goto EventScript_1694C2
end
@@ -461,7 +461,7 @@ EventScript_16948F:: @ 816948F
end
EventScript_16949F:: @ 816949F
- trainerbattle_tutorial TRAINER_RIVAL_OAKS_LAB_BULBASAUR, 3, Text_18DDEA, Text_18DE1A
+ trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_BULBASAUR, RIVAL_BATTLE_TUTORIAL, Text_18DDEA, Text_RivalVictory
goto EventScript_1694C2
end
diff --git a/data/maps/PalletTown_ProfessorOaksLab/text.inc b/data/maps/PalletTown_ProfessorOaksLab/text.inc
index 3d0c7ba57..e437d4b39 100644
--- a/data/maps/PalletTown_ProfessorOaksLab/text.inc
+++ b/data/maps/PalletTown_ProfessorOaksLab/text.inc
@@ -36,7 +36,8 @@ Text_18DDEA:: @ 818DDEA
.string "Unbelievable!\l"
.string "I picked the wrong POKéMON!$"
-Text_18DE1A:: @ 818DE1A
+@ Also used for early Route 22 battle
+Text_RivalVictory:: @ 818DE1A
.string "{RIVAL}: Yeah!\n"
.string "Am I great or what?$"
diff --git a/data/maps/Route1/map.json b/data/maps/Route1/map.json
index 8d636de9a..1a2426066 100644
--- a/data/maps/Route1/map.json
+++ b/data/maps/Route1/map.json
@@ -34,7 +34,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route1_EventScript_167EFE",
+ "script": "Route1_EventScript_MartClerk",
"flag": "0"
},
{
@@ -47,7 +47,7 @@
"movement_range_y": 3,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route1_EventScript_167F52",
+ "script": "Route1_EventScript_Boy",
"flag": "0"
}
],
@@ -59,7 +59,7 @@
"x": 9,
"y": 31,
"elevation": 0,
- "script": "Route1_EventScript_167F5B"
+ "script": "Route1_EventScript_RouteSign"
}
]
}
diff --git a/data/maps/Route1/scripts.inc b/data/maps/Route1/scripts.inc
index 8d5617e3f..36a42f65e 100644
--- a/data/maps/Route1/scripts.inc
+++ b/data/maps/Route1/scripts.inc
@@ -1,11 +1,11 @@
Route1_MapScripts:: @ 8167EFD
.byte 0
-Route1_EventScript_167EFE:: @ 8167EFE
+Route1_EventScript_MartClerk:: @ 8167EFE
lock
faceplayer
- goto_if_set FLAG_GOT_POTION_ON_ROUTE_1, EventScript_167F48
- msgbox gUnknown_818329D
+ goto_if_set FLAG_GOT_POTION_ON_ROUTE_1, Route1_EventScript_AlreadyGotPotion
+ msgbox Route1_Text_WorkAtPokeMartTakeSample
textcolor 3
checkitemspace ITEM_POTION, 1
compare VAR_RESULT, FALSE
@@ -16,21 +16,21 @@ Route1_EventScript_167EFE:: @ 8167EFE
waitmessage
waitfanfare
additem ITEM_POTION
- msgbox gUnknown_8183387
+ msgbox Route1_Text_PutPotionAway
call EventScript_1A6675
setflag FLAG_GOT_POTION_ON_ROUTE_1
release
end
-EventScript_167F48:: @ 8167F48
- msgbox gUnknown_8183347
+Route1_EventScript_AlreadyGotPotion:: @ 8167F48
+ msgbox Route1_Text_ComeSeeUsIfYouNeedPokeBalls
release
end
-Route1_EventScript_167F52:: @ 8167F52
- msgbox gUnknown_81833B9, MSGBOX_NPC
+Route1_EventScript_Boy:: @ 8167F52
+ msgbox Route1_Text_CanJumpFromLedges, MSGBOX_NPC
end
-Route1_EventScript_167F5B:: @ 8167F5B
- msgbox gUnknown_818343A, MSGBOX_SIGN
+Route1_EventScript_RouteSign:: @ 8167F5B
+ msgbox Route1_Text_RouteSign, MSGBOX_SIGN
end
diff --git a/data/maps/Route1/text.inc b/data/maps/Route1/text.inc
index 7b4150b03..57ebecb86 100644
--- a/data/maps/Route1/text.inc
+++ b/data/maps/Route1/text.inc
@@ -1,4 +1,4 @@
-gUnknown_818329D:: @ 818329D
+Route1_Text_WorkAtPokeMartTakeSample:: @ 818329D
.string "Hi!\n"
.string "I work at a POKéMON MART.\p"
.string "It's part of a convenient chain\n"
@@ -7,22 +7,22 @@ gUnknown_818329D:: @ 818329D
.string "I know, I'll give you a sample.\n"
.string "Here you go!$"
-gUnknown_8183347:: @ 8183347
+Route1_Text_ComeSeeUsIfYouNeedPokeBalls:: @ 8183347
.string "Please come see us if you need\n"
.string "POKé BALLS for catching POKéMON.$"
-gUnknown_8183387:: @ 8183387
+Route1_Text_PutPotionAway:: @ 8183387
.string "{PLAYER} put the POTION away in\n"
.string "the BAG's ITEMS POCKET.$"
-gUnknown_81833B9:: @ 81833B9
+Route1_Text_CanJumpFromLedges:: @ 81833B9
.string "See those ledges along the road?\p"
.string "It's a bit scary, but you can jump\n"
.string "from them.\p"
.string "You can get back to PALLET TOWN\n"
.string "quicker that way.$"
-gUnknown_818343A:: @ 818343A
+Route1_Text_RouteSign:: @ 818343A
.string "ROUTE 1\n"
.string "PALLET TOWN - VIRIDIAN CITY$"
diff --git a/data/maps/Route10_PokemonCenter_1F/scripts.inc b/data/maps/Route10_PokemonCenter_1F/scripts.inc
index f81563b0c..56e0b448e 100644
--- a/data/maps/Route10_PokemonCenter_1F/scripts.inc
+++ b/data/maps/Route10_PokemonCenter_1F/scripts.inc
@@ -34,17 +34,17 @@ Route10_PokemonCenter_1F_EventScript_16FC65:: @ 816FC65
goto_if_set FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE, EventScript_16FCE7
msgbox gUnknown_819E5FB, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_1A7AD1
+ goto_if_eq Aide_EventScript_DeclineCheckMons
setvar VAR_0x8004, 0
specialvar VAR_RESULT, Special_GetPokedexCount
getnumberstring 2, VAR_0x8006
call EventScript_16FCF1
compare VAR_0x8006, 20
- goto_if_lt EventScript_1A7ABD
+ goto_if_lt Aide_EventScript_HaventCaughtEnough
msgbox gUnknown_819E733
checkitemspace ITEM_EVERSTONE, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_1A7AC7
+ goto_if_eq Aide_EventScript_NoRoomForItem
giveitem_msg gUnknown_819E786, ITEM_EVERSTONE
setflag FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE
msgbox gUnknown_819E7AF
diff --git a/data/maps/Route11_EastEntrance_2F/scripts.inc b/data/maps/Route11_EastEntrance_2F/scripts.inc
index 68b520e47..91a6d20bd 100644
--- a/data/maps/Route11_EastEntrance_2F/scripts.inc
+++ b/data/maps/Route11_EastEntrance_2F/scripts.inc
@@ -61,17 +61,17 @@ Route11_EastEntrance_2F_EventScript_16FDD8:: @ 816FDD8
goto_if_set FLAG_GOT_ITEMFINDER, EventScript_16FE5A
msgbox gUnknown_819E9E5, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_1A7AD1
+ goto_if_eq Aide_EventScript_DeclineCheckMons
setvar VAR_0x8004, 0
specialvar VAR_RESULT, Special_GetPokedexCount
getnumberstring 2, VAR_0x8006
call EventScript_16FE64
compare VAR_0x8006, 30
- goto_if_lt EventScript_1A7ABD
+ goto_if_lt Aide_EventScript_HaventCaughtEnough
msgbox gUnknown_819EAE4
checkitemspace ITEM_ITEMFINDER, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_1A7AC7
+ goto_if_eq Aide_EventScript_NoRoomForItem
giveitem_msg gUnknown_819EB37, ITEM_ITEMFINDER
setflag FLAG_GOT_ITEMFINDER
msgbox gUnknown_819EB59
diff --git a/data/maps/Route15_WestEntrance_2F/scripts.inc b/data/maps/Route15_WestEntrance_2F/scripts.inc
index c4cc4b6fd..088a65876 100644
--- a/data/maps/Route15_WestEntrance_2F/scripts.inc
+++ b/data/maps/Route15_WestEntrance_2F/scripts.inc
@@ -24,17 +24,17 @@ Route15_WestEntrance_2F_EventScript_1700B9:: @ 81700B9
goto_if_set FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE, EventScript_17013B
msgbox gUnknown_819F5AB, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_1A7AD1
+ goto_if_eq Aide_EventScript_DeclineCheckMons
setvar VAR_0x8004, 0
specialvar VAR_RESULT, Special_GetPokedexCount
getnumberstring 2, VAR_0x8006
call EventScript_170145
compare VAR_0x8006, 50
- goto_if_lt EventScript_1A7ABD
+ goto_if_lt Aide_EventScript_HaventCaughtEnough
msgbox gUnknown_819F6AA
checkitemspace ITEM_EXP_SHARE, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_1A7AC7
+ goto_if_eq Aide_EventScript_NoRoomForItem
giveitem_msg gUnknown_819F6FD, ITEM_EXP_SHARE
setflag FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE
msgbox gUnknown_819F71F
diff --git a/data/maps/Route16_NorthEntrance_2F/scripts.inc b/data/maps/Route16_NorthEntrance_2F/scripts.inc
index 2dfd8f1b0..7ccba34c8 100644
--- a/data/maps/Route16_NorthEntrance_2F/scripts.inc
+++ b/data/maps/Route16_NorthEntrance_2F/scripts.inc
@@ -24,17 +24,17 @@ Route16_NorthEntrance_2F_EventScript_1702E3:: @ 81702E3
goto_if_set FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE, EventScript_170365
msgbox gUnknown_819FB0E, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_1A7AD1
+ goto_if_eq Aide_EventScript_DeclineCheckMons
setvar VAR_0x8004, 0
specialvar VAR_RESULT, Special_GetPokedexCount
getnumberstring 2, VAR_0x8006
call EventScript_17036F
compare VAR_0x8006, 40
- goto_if_lt EventScript_1A7ABD
+ goto_if_lt Aide_EventScript_HaventCaughtEnough
msgbox gUnknown_819FC15
checkitemspace ITEM_AMULET_COIN, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_1A7AC7
+ goto_if_eq Aide_EventScript_NoRoomForItem
giveitem_msg gUnknown_819FC68, ITEM_AMULET_COIN
setflag FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE
msgbox gUnknown_819FC93
diff --git a/data/maps/Route2/map.json b/data/maps/Route2/map.json
index ac504faae..86be51055 100644
--- a/data/maps/Route2/map.json
+++ b/data/maps/Route2/map.json
@@ -195,14 +195,14 @@
"x": 14,
"y": 12,
"elevation": 0,
- "script": "Route2_EventScript_167F6E"
+ "script": "Route2_EventScript_DiglettsCaveSign"
},
{
"type": "bg_event_type_0",
"x": 7,
"y": 73,
"elevation": 0,
- "script": "Route2_EventScript_167F65"
+ "script": "Route2_EventScript_RouteSign"
}
]
}
diff --git a/data/maps/Route2/scripts.inc b/data/maps/Route2/scripts.inc
index 75a3dd87b..2ecb31d72 100644
--- a/data/maps/Route2/scripts.inc
+++ b/data/maps/Route2/scripts.inc
@@ -1,10 +1,10 @@
Route2_MapScripts:: @ 8167F64
.byte 0
-Route2_EventScript_167F65:: @ 8167F65
- msgbox gUnknown_818345E, MSGBOX_SIGN
+Route2_EventScript_RouteSign:: @ 8167F65
+ msgbox Route2_Text_RouteSign, MSGBOX_SIGN
end
-Route2_EventScript_167F6E:: @ 8167F6E
- msgbox gUnknown_8183482, MSGBOX_SIGN
+Route2_EventScript_DiglettsCaveSign:: @ 8167F6E
+ msgbox Route2_Text_DiglettsCave, MSGBOX_SIGN
end
diff --git a/data/maps/Route2/text.inc b/data/maps/Route2/text.inc
index 4197b7071..1ca497d6b 100644
--- a/data/maps/Route2/text.inc
+++ b/data/maps/Route2/text.inc
@@ -1,7 +1,7 @@
-gUnknown_818345E:: @ 818345E
+Route2_Text_RouteSign:: @ 818345E
.string "ROUTE 2\n"
.string "VIRIDIAN CITY - PEWTER CITY$"
-gUnknown_8183482:: @ 8183482
+Route2_Text_DiglettsCave:: @ 8183482
.string "DIGLETT'S CAVE$"
diff --git a/data/maps/Route21_North/text.inc b/data/maps/Route21_North/text.inc
new file mode 100644
index 000000000..e8fc3223a
--- /dev/null
+++ b/data/maps/Route21_North/text.inc
@@ -0,0 +1,48 @@
+Text_1882E1:: @ 81882E1
+ .string "Strong TRAINERS and WATER POKéMON\n"
+ .string "are common sights in these parts.\p"
+ .string "They say that MISTY of the\n"
+ .string "CERULEAN GYM trains here.$"
+
+Text_18835A:: @ 818835A
+ .string "You want to know if the fish are\n"
+ .string "biting?$"
+
+Text_188383:: @ 8188383
+ .string "Dang!$"
+
+Text_188389:: @ 8188389
+ .string "I can't catch anything good.\n"
+ .string "Not one good POKéMON to be had!$"
+
+Text_1883C6:: @ 81883C6
+ .string "I got a big haul!\n"
+ .string "Wanna go for it?$"
+
+Text_1883E9:: @ 81883E9
+ .string "Heheh, MAGIKARP just don't make\n"
+ .string "the grade, do they?$"
+
+Text_18841D:: @ 818841D
+ .string "I seem to only catch MAGIKARP!$"
+
+Text_18843C:: @ 818843C
+ .string "The sea cleanses my body and soul!$"
+
+Text_18845F:: @ 818845F
+ .string "Ayah!$"
+
+Text_188465:: @ 8188465
+ .string "The sea is great and all, but I\n"
+ .string "like the mountains, too.$"
+
+Text_18849E:: @ 818849E
+ .string "おれだって たまには\n"
+ .string "およぎに くるぜ!$"
+
+Text_1884B3:: @ 81884B3
+ .string "ぐわわ!$"
+
+Text_1884B8:: @ 81884B8
+ .string "うきやすそう だと?\n"
+ .string "うるせー おおきな おせわだッ!$"
diff --git a/data/maps/Route21_South/text.inc b/data/maps/Route21_South/text.inc
new file mode 100644
index 000000000..8700006ef
--- /dev/null
+++ b/data/maps/Route21_South/text.inc
@@ -0,0 +1,87 @@
+Text_1884D4:: @ 81884D4
+ .string "I caught my POKéMON at sea.$"
+
+Text_1884F0:: @ 81884F0
+ .string "Diver!!\n"
+ .string "Down!!$"
+
+Text_1884FF:: @ 81884FF
+ .string "Where'd you catch your POKéMON?$"
+
+Text_18851F:: @ 818851F
+ .string "Right now, I'm in a triathlon meet.$"
+
+Text_188543:: @ 8188543
+ .string "Pant…\n"
+ .string "Pant… Pant…$"
+
+Text_188555:: @ 8188555
+ .string "I'm beat! But, I still have the\n"
+ .string "bike race and marathon left!$"
+
+Text_188592:: @ 8188592
+ .string "Ahh!\n"
+ .string "Feel the sun and the wind!$"
+
+Text_1885B2:: @ 81885B2
+ .string "Yow!\n"
+ .string "I lost!$"
+
+Text_1885BF:: @ 81885BF
+ .string "I'm sunburnt to a crisp!$"
+
+Text_1885D8:: @ 81885D8
+ .string "Hey, don't scare away the fish!$"
+
+Text_1885F8:: @ 81885F8
+ .string "Sorry! I'm just so frustrated from\n"
+ .string "not catching anything.$"
+
+Text_188632:: @ 8188632
+ .string "Sheesh, I haven't caught a thing.\n"
+ .string "Could this place actually be a\l"
+ .string "giant pool or something?$"
+
+Text_18868C:: @ 818868C
+ .string "Keep me company till I get a hit.$"
+
+Text_1886AE:: @ 81886AE
+ .string "That burned some time.$"
+
+Text_1886C5:: @ 81886C5
+ .string "Oh wait!\n"
+ .string "I got a bite! Yeah!$"
+
+Text_1886E2:: @ 81886E2
+ .string "LIL: Huh? A battle?\n"
+ .string "IAN, can't you do it alone?$"
+
+Text_188712:: @ 8188712
+ .string "LIL: Oh, see?\n"
+ .string "We lost. Happy now?$"
+
+Text_188734:: @ 8188734
+ .string "LIL: I'm tired.\n"
+ .string "Can't we go home already?$"
+
+Text_18875E:: @ 818875E
+ .string "LIL: Huh? A battle?\n"
+ .string "I can't be bothered to do it alone.\l"
+ .string "Bring two POKéMON, won't you?$"
+
+Text_1887B4:: @ 81887B4
+ .string "IAN: My sis doesn't get enough\n"
+ .string "exercise, so I made her come.$"
+
+Text_1887F1:: @ 81887F1
+ .string "IAN: Awww, Sis!\n"
+ .string "Get it together!$"
+
+Text_188812:: @ 8188812
+ .string "IAN: Come on, Sis!\p"
+ .string "You're not going to lose weight\n"
+ .string "like this!$"
+
+Text_188850:: @ 8188850
+ .string "IAN: We want a two-on-two battle.\n"
+ .string "So can you bring two POKéMON?$"
diff --git a/data/maps/Route22/map.json b/data/maps/Route22/map.json
index c6f903acc..e8695121f 100644
--- a/data/maps/Route22/map.json
+++ b/data/maps/Route22/map.json
@@ -62,7 +62,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE22",
"var_value": 1,
- "script": "Route22_EventScript_16828C"
+ "script": "Route22_EventScript_EarlyRivalTriggerTop"
},
{
"type": "trigger",
@@ -71,7 +71,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE22",
"var_value": 1,
- "script": "Route22_EventScript_168298"
+ "script": "Route22_EventScript_EarlyRivalTriggerMid"
},
{
"type": "trigger",
@@ -80,7 +80,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE22",
"var_value": 1,
- "script": "Route22_EventScript_1682AB"
+ "script": "Route22_EventScript_EarlyRivalTriggerBottom"
},
{
"type": "trigger",
@@ -89,7 +89,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE22",
"var_value": 3,
- "script": "Route22_EventScript_1683ED"
+ "script": "Route22_EventScript_LateRivalTriggerTop"
},
{
"type": "trigger",
@@ -98,7 +98,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE22",
"var_value": 3,
- "script": "Route22_EventScript_1683F9"
+ "script": "Route22_EventScript_LateRivalTriggerMid"
},
{
"type": "trigger",
@@ -107,7 +107,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE22",
"var_value": 3,
- "script": "Route22_EventScript_16840C"
+ "script": "Route22_EventScript_LateRivalTriggerBottom"
}
],
"bg_events": [
@@ -116,7 +116,7 @@
"x": 7,
"y": 12,
"elevation": 0,
- "script": "Route22_EventScript_1684E2"
+ "script": "Route22_EventScript_LeagueGateSign"
}
]
}
diff --git a/data/maps/Route22/scripts.inc b/data/maps/Route22/scripts.inc
index 8036883f3..dbc10e129 100644
--- a/data/maps/Route22/scripts.inc
+++ b/data/maps/Route22/scripts.inc
@@ -1,100 +1,94 @@
Route22_MapScripts:: @ 816828B
.byte 0
-Route22_EventScript_16828C:: @ 816828C
+Route22_EventScript_EarlyRivalTriggerTop:: @ 816828C
lockall
setvar VAR_TEMP_1, 0
- goto EventScript_1682BE
-
-EventScript_168297:: @ 8168297
+ goto Route22_EventScript_EarlyRival
end
-Route22_EventScript_168298:: @ 8168298
+Route22_EventScript_EarlyRivalTriggerMid:: @ 8168298
lockall
setvar VAR_TEMP_1, 1
setobjectxyperm 1, 25, 5
- goto EventScript_1682BE
-
-EventScript_1682AA:: @ 81682AA
+ goto Route22_EventScript_EarlyRival
end
-Route22_EventScript_1682AB:: @ 81682AB
+Route22_EventScript_EarlyRivalTriggerBottom:: @ 81682AB
lockall
setvar VAR_TEMP_1, 2
setobjectxyperm 1, 25, 5
- goto EventScript_1682BE
-
-EventScript_1682BD:: @ 81682BD
+ goto Route22_EventScript_EarlyRival
end
-EventScript_1682BE:: @ 81682BE
+Route22_EventScript_EarlyRival:: @ 81682BE
textcolor 0
playbgm MUS_RIVAL1, 0
addobject 1
compare VAR_TEMP_1, 0
- call_if_eq EventScript_168350
+ call_if_eq Route22_EventScript_EarlyRivalApproach
compare VAR_TEMP_1, 1
- call_if_eq EventScript_168350
+ call_if_eq Route22_EventScript_EarlyRivalApproach
compare VAR_TEMP_1, 2
- call_if_eq EventScript_16835B
+ call_if_eq Route22_EventScript_EarlyRivalApproachBottom
delay 6
- msgbox gUnknown_8188890
+ msgbox Route22_Text_EarlyRivalIntro
compare VAR_STARTER_MON, 2
- call_if_eq EventScript_16836D
+ call_if_eq Route22_EventScript_EarlyRivalSquirtle
compare VAR_STARTER_MON, 1
- call_if_eq EventScript_16837C
+ call_if_eq Route22_EventScript_EarlyRivalBulbasaur
compare VAR_STARTER_MON, 0
- call_if_eq EventScript_16838B
- msgbox gUnknown_8188974
+ call_if_eq Route22_EventScript_EarlyRivalCharmander
+ msgbox Route22_Text_EarlyRivalPostBattle
closemessage
delay 10
playbgm MUS_RIVAL2, 0
compare VAR_TEMP_1, 0
- call_if_eq EventScript_16839A
+ call_if_eq Route22_EventScript_EarlyRivalExit
compare VAR_TEMP_1, 1
- call_if_eq EventScript_16839A
+ call_if_eq Route22_EventScript_EarlyRivalExit
compare VAR_TEMP_1, 2
- call_if_eq EventScript_1683A5
+ call_if_eq Route22_EventScript_EarlyRivalExitBottom
fadedefaultbgm
removeobject 1
setvar VAR_MAP_SCENE_ROUTE22, 2
releaseall
end
-EventScript_168350:: @ 8168350
- applymovement 1, Movement_1683D1
+Route22_EventScript_EarlyRivalApproach:: @ 8168350
+ applymovement 1, Route22_Movement_RivalApproach
waitmovement 0
return
-EventScript_16835B:: @ 816835B
- applymovement 1, Movement_1683D9
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1683E3
+Route22_EventScript_EarlyRivalApproachBottom:: @ 816835B
+ applymovement 1, Route22_Movement_RivalApproachBottom
+ applymovement OBJ_EVENT_ID_PLAYER, Route22_Movement_PlayerFaceRival
waitmovement 0
return
-EventScript_16836D:: @ 816836D
- trainerbattle_tutorial TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE, 0, Text_188959, Text_18DE1A
+Route22_EventScript_EarlyRivalSquirtle:: @ 816836D
+ trainerbattle_earlyrival TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE, 0, Route22_Text_EarlyRivalDefeat, Text_RivalVictory
return
-EventScript_16837C:: @ 816837C
- trainerbattle_tutorial TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR, 0, Text_188959, Text_18DE1A
+Route22_EventScript_EarlyRivalBulbasaur:: @ 816837C
+ trainerbattle_earlyrival TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR, 0, Route22_Text_EarlyRivalDefeat, Text_RivalVictory
return
-EventScript_16838B:: @ 816838B
- trainerbattle_tutorial TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER, 0, Text_188959, Text_18DE1A
+Route22_EventScript_EarlyRivalCharmander:: @ 816838B
+ trainerbattle_earlyrival TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER, 0, Route22_Text_EarlyRivalDefeat, Text_RivalVictory
return
-EventScript_16839A:: @ 816839A
- applymovement 1, Movement_1683B8
+Route22_EventScript_EarlyRivalExit:: @ 816839A
+ applymovement 1, Route22_Movement_EarlyRivalExit
waitmovement 0
return
-EventScript_1683A5:: @ 81683A5
- applymovement 1, Movement_1683C5
+Route22_EventScript_EarlyRivalExitBottom:: @ 81683A5
+ applymovement 1, Route22_Movement_EarlyRivalExitBottom
waitmovement 0
return
-Movement_1683B0:: @ 8
+Route22_Movement_UnusedRivalExit:: @ 8
walk_right
walk_right
walk_right
@@ -104,7 +98,7 @@ Movement_1683B0:: @ 8
walk_right
step_end
-Movement_1683B8:: @ 81683B8
+Route22_Movement_EarlyRivalExit:: @ 81683B8
walk_down
walk_right
walk_right
@@ -119,7 +113,7 @@ Movement_1683B8:: @ 81683B8
walk_down
step_end
-Movement_1683C5:: @ 81683C5
+Route22_Movement_EarlyRivalExitBottom:: @ 81683C5
walk_right
walk_right
walk_right
@@ -133,7 +127,7 @@ Movement_1683C5:: @ 81683C5
walk_down
step_end
-Movement_1683D1:: @ 81683D1
+Route22_Movement_RivalApproach:: @ 81683D1
walk_right
walk_right
walk_right
@@ -143,7 +137,7 @@ Movement_1683D1:: @ 81683D1
walk_right
step_end
-Movement_1683D9:: @ 81683D9
+Route22_Movement_RivalApproachBottom:: @ 81683D9
walk_right
walk_right
walk_right
@@ -155,7 +149,7 @@ Movement_1683D9:: @ 81683D9
walk_in_place_fastest_down
step_end
-Movement_1683E3:: @ 81683E3
+Route22_Movement_PlayerFaceRival:: @ 81683E3
delay_16
delay_16
delay_16
@@ -167,55 +161,49 @@ Movement_1683E3:: @ 81683E3
walk_in_place_fastest_up
step_end
-Route22_EventScript_1683ED:: @ 81683ED
+Route22_EventScript_LateRivalTriggerTop:: @ 81683ED
lockall
setvar VAR_TEMP_1, 0
- goto EventScript_16841F
-
-EventScript_1683F8:: @ 81683F8
+ goto Route22_EventScript_LateRival
end
-Route22_EventScript_1683F9:: @ 81683F9
+Route22_EventScript_LateRivalTriggerMid:: @ 81683F9
lockall
setvar VAR_TEMP_1, 1
setobjectxyperm 1, 25, 5
- goto EventScript_16841F
-
-EventScript_16840B:: @ 816840B
+ goto Route22_EventScript_LateRival
end
-Route22_EventScript_16840C:: @ 816840C
+Route22_EventScript_LateRivalTriggerBottom:: @ 816840C
lockall
setvar VAR_TEMP_1, 2
setobjectxyperm 1, 25, 5
- goto EventScript_16841F
-
-EventScript_16841E:: @ 816841E
+ goto Route22_EventScript_LateRival
end
-EventScript_16841F:: @ 816841F
+Route22_EventScript_LateRival:: @ 816841F
textcolor 0
playbgm MUS_RIVAL1, 0
addobject 1
compare VAR_TEMP_1, 0
- call_if_eq EventScript_16849C
+ call_if_eq Route22_EventScript_LateRivalApproach
compare VAR_TEMP_1, 1
- call_if_eq EventScript_16849C
+ call_if_eq Route22_EventScript_LateRivalApproach
compare VAR_TEMP_1, 2
- call_if_eq EventScript_1684A7
- msgbox gUnknown_8188A3C
+ call_if_eq Route22_EventScript_LateRivalApproachBottom
+ msgbox Route22_Text_LateRivalIntro
setvar VAR_LAST_TALKED, 1
compare VAR_STARTER_MON, 2
- call_if_eq EventScript_1684B9
+ call_if_eq Route22_EventScript_LateRivalSquirtle
compare VAR_STARTER_MON, 1
- call_if_eq EventScript_1684C4
+ call_if_eq Route22_EventScript_LateRivalBulbasaur
compare VAR_STARTER_MON, 0
- call_if_eq EventScript_1684CF
- msgbox gUnknown_8188B29
+ call_if_eq Route22_EventScript_LateRivalCharmander
+ msgbox Route22_Text_LateRivalPostBattle
closemessage
delay 10
playbgm MUS_RIVAL2, 0
- applymovement 1, Movement_1684DA
+ applymovement 1, Route22_Movement_LateRivalExit
waitmovement 0
fadedefaultbgm
removeobject 1
@@ -223,30 +211,30 @@ EventScript_16841F:: @ 816841F
releaseall
end
-EventScript_16849C:: @ 816849C
- applymovement 1, Movement_1683D1
+Route22_EventScript_LateRivalApproach:: @ 816849C
+ applymovement 1, Route22_Movement_RivalApproach
waitmovement 0
return
-EventScript_1684A7:: @ 81684A7
- applymovement 1, Movement_1683D9
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1683E3
+Route22_EventScript_LateRivalApproachBottom:: @ 81684A7
+ applymovement 1, Route22_Movement_RivalApproachBottom
+ applymovement OBJ_EVENT_ID_PLAYER, Route22_Movement_PlayerFaceRival
waitmovement 0
return
-EventScript_1684B9:: @ 81684B9
- trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE, Text_188B08
+Route22_EventScript_LateRivalSquirtle:: @ 81684B9
+ trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE, Route22_Text_LateRivalDefeat
return
-EventScript_1684C4:: @ 81684C4
- trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR, Text_188B08
+Route22_EventScript_LateRivalBulbasaur:: @ 81684C4
+ trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR, Route22_Text_LateRivalDefeat
return
-EventScript_1684CF:: @ 81684CF
- trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER, Text_188B08
+Route22_EventScript_LateRivalCharmander:: @ 81684CF
+ trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER, Route22_Text_LateRivalDefeat
return
-Movement_1684DA:: @ 81684DA
+Route22_Movement_LateRivalExit:: @ 81684DA
walk_left
walk_left
walk_left
@@ -256,6 +244,6 @@ Movement_1684DA:: @ 81684DA
walk_left
step_end
-Route22_EventScript_1684E2:: @ 81684E2
- msgbox gUnknown_8188BFF, MSGBOX_SIGN
+Route22_EventScript_LeagueGateSign:: @ 81684E2
+ msgbox Route22_Text_LeagueGateSign, MSGBOX_SIGN
end
diff --git a/data/maps/Route22/text.inc b/data/maps/Route22/text.inc
index 7bfe6931b..72b4ca28b 100644
--- a/data/maps/Route22/text.inc
+++ b/data/maps/Route22/text.inc
@@ -1,201 +1,66 @@
-Text_1882E1:: @ 81882E1
- .string "Strong TRAINERS and WATER POKéMON\n"
- .string "are common sights in these parts.\p"
- .string "They say that MISTY of the\n"
- .string "CERULEAN GYM trains here.$"
-
-Text_18835A:: @ 818835A
- .string "You want to know if the fish are\n"
- .string "biting?$"
-
-Text_188383:: @ 8188383
- .string "Dang!$"
-
-Text_188389:: @ 8188389
- .string "I can't catch anything good.\n"
- .string "Not one good POKéMON to be had!$"
-
-Text_1883C6:: @ 81883C6
- .string "I got a big haul!\n"
- .string "Wanna go for it?$"
-
-Text_1883E9:: @ 81883E9
- .string "Heheh, MAGIKARP just don't make\n"
- .string "the grade, do they?$"
-
-Text_18841D:: @ 818841D
- .string "I seem to only catch MAGIKARP!$"
-
-Text_18843C:: @ 818843C
- .string "The sea cleanses my body and soul!$"
-
-Text_18845F:: @ 818845F
- .string "Ayah!$"
-
-Text_188465:: @ 8188465
- .string "The sea is great and all, but I\n"
- .string "like the mountains, too.$"
-
-Text_18849E:: @ 818849E
- .string "おれだって たまには\n"
- .string "およぎに くるぜ!$"
-
-Text_1884B3:: @ 81884B3
- .string "ぐわわ!$"
-
-Text_1884B8:: @ 81884B8
- .string "うきやすそう だと?\n"
- .string "うるせー おおきな おせわだッ!$"
-
-Text_1884D4:: @ 81884D4
- .string "I caught my POKéMON at sea.$"
-
-Text_1884F0:: @ 81884F0
- .string "Diver!!\n"
- .string "Down!!$"
-
-Text_1884FF:: @ 81884FF
- .string "Where'd you catch your POKéMON?$"
-
-Text_18851F:: @ 818851F
- .string "Right now, I'm in a triathlon meet.$"
-
-Text_188543:: @ 8188543
- .string "Pant…\n"
- .string "Pant… Pant…$"
-
-Text_188555:: @ 8188555
- .string "I'm beat! But, I still have the\n"
- .string "bike race and marathon left!$"
-
-Text_188592:: @ 8188592
- .string "Ahh!\n"
- .string "Feel the sun and the wind!$"
-
-Text_1885B2:: @ 81885B2
- .string "Yow!\n"
- .string "I lost!$"
-
-Text_1885BF:: @ 81885BF
- .string "I'm sunburnt to a crisp!$"
-
-Text_1885D8:: @ 81885D8
- .string "Hey, don't scare away the fish!$"
-
-Text_1885F8:: @ 81885F8
- .string "Sorry! I'm just so frustrated from\n"
- .string "not catching anything.$"
-
-Text_188632:: @ 8188632
- .string "Sheesh, I haven't caught a thing.\n"
- .string "Could this place actually be a\l"
- .string "giant pool or something?$"
-
-Text_18868C:: @ 818868C
- .string "Keep me company till I get a hit.$"
-
-Text_1886AE:: @ 81886AE
- .string "That burned some time.$"
-
-Text_1886C5:: @ 81886C5
- .string "Oh wait!\n"
- .string "I got a bite! Yeah!$"
-
-Text_1886E2:: @ 81886E2
- .string "LIL: Huh? A battle?\n"
- .string "IAN, can't you do it alone?$"
-
-Text_188712:: @ 8188712
- .string "LIL: Oh, see?\n"
- .string "We lost. Happy now?$"
-
-Text_188734:: @ 8188734
- .string "LIL: I'm tired.\n"
- .string "Can't we go home already?$"
-
-Text_18875E:: @ 818875E
- .string "LIL: Huh? A battle?\n"
- .string "I can't be bothered to do it alone.\l"
- .string "Bring two POKéMON, won't you?$"
-
-Text_1887B4:: @ 81887B4
- .string "IAN: My sis doesn't get enough\n"
- .string "exercise, so I made her come.$"
-
-Text_1887F1:: @ 81887F1
- .string "IAN: Awww, Sis!\n"
- .string "Get it together!$"
-
-Text_188812:: @ 8188812
- .string "IAN: Come on, Sis!\p"
- .string "You're not going to lose weight\n"
- .string "like this!$"
-
-Text_188850:: @ 8188850
- .string "IAN: We want a two-on-two battle.\n"
- .string "So can you bring two POKéMON?$"
-
-gUnknown_8188890:: @ 8188890
- .string "{RIVAL}: Hey! {PLAYER}!\p"
- .string "You're off to the POKéMON LEAGUE?\n"
- .string "Forget about it!\p"
- .string "You probably don't have any\n"
- .string "BADGES, do you?\p"
- .string "The guard won't let you through\n"
- .string "without them.\p"
- .string "By the way, did your POKéMON get\n"
- .string "any stronger?$"
-
-Text_188959:: @ 8188959
- .string "Awww!\n"
- .string "You just lucked out!$"
-
-gUnknown_8188974:: @ 8188974
- .string "I heard the POKéMON LEAGUE is\n"
- .string "crawling with tough TRAINERS.\p"
- .string "I have to figure out how to get\n"
- .string "past them.\p"
- .string "You should quit dawdling and get a\n"
- .string "move on!$"
-
-Text_188A07:: @ 8188A07
- .string "{RIVAL}“なんだ?\n"
- .string "ポケモン 2ひきも\l"
- .string "もってるの なぜか だって?\p"
- .string "おまえも\n"
- .string "つかまえれば いい じゃん!$"
-
-gUnknown_8188A3C:: @ 8188A3C
- .string "{RIVAL}: What? {PLAYER}!\n"
- .string "What a surprise to see you here!\p"
- .string "So you're going to the POKéMON\n"
- .string "LEAGUE?\p"
- .string "You collected all the BADGES, too?\n"
- .string "That's cool!\p"
- .string "Then I'll whip you, {PLAYER}, as a\n"
- .string "warm-up for the POKéMON LEAGUE!\p"
- .string "Come on!$"
-
-Text_188B08:: @ 8188B08
- .string "What!?\p"
- .string "I was just careless, you!$"
-
-gUnknown_8188B29:: @ 8188B29
- .string "That loosened me up.\n"
- .string "I'm ready for the POKéMON LEAGUE!\p"
- .string "{PLAYER}, you need more practice.\p"
- .string "But hey, you know that!\n"
- .string "I'm out of here. Smell ya!$"
-
-Text_188BAF:: @ 8188BAF
- .string "{RIVAL}“ひゃははッ {PLAYER}ー!\n"
- .string "それで がんばってるのかよ!\l"
- .string "おれの さいのうに くらべりゃ\l"
- .string "{PLAYER}は まだまだ だな!\p"
- .string "もっと れんしゅう こいよ!\n"
- .string "あははーッ!$"
-
-gUnknown_8188BFF:: @ 8188BFF
- .string "POKéMON LEAGUE\n"
- .string "Front Gate$"
+Route22_Text_EarlyRivalIntro:: @ 8188890
+ .string "{RIVAL}: Hey! {PLAYER}!\p"
+ .string "You're off to the POKéMON LEAGUE?\n"
+ .string "Forget about it!\p"
+ .string "You probably don't have any\n"
+ .string "BADGES, do you?\p"
+ .string "The guard won't let you through\n"
+ .string "without them.\p"
+ .string "By the way, did your POKéMON get\n"
+ .string "any stronger?$"
+
+Route22_Text_EarlyRivalDefeat:: @ 8188959
+ .string "Awww!\n"
+ .string "You just lucked out!$"
+
+Route22_Text_EarlyRivalPostBattle:: @ 8188974
+ .string "I heard the POKéMON LEAGUE is\n"
+ .string "crawling with tough TRAINERS.\p"
+ .string "I have to figure out how to get\n"
+ .string "past them.\p"
+ .string "You should quit dawdling and get a\n"
+ .string "move on!$"
+
+@ Translated in RB as "{RIVAL}: What? Why do I have 2 POKéMON? You should catch some more too!"
+Route22_Text_RivalShouldCatchSomeMons:: @ 8188A07
+ .string "{RIVAL}“なんだ?\n"
+ .string "ポケモン 2ひきも\l"
+ .string "もってるの なぜか だって?\p"
+ .string "おまえも\n"
+ .string "つかまえれば いい じゃん!$"
+
+Route22_Text_LateRivalIntro:: @ 8188A3C
+ .string "{RIVAL}: What? {PLAYER}!\n"
+ .string "What a surprise to see you here!\p"
+ .string "So you're going to the POKéMON\n"
+ .string "LEAGUE?\p"
+ .string "You collected all the BADGES, too?\n"
+ .string "That's cool!\p"
+ .string "Then I'll whip you, {PLAYER}, as a\n"
+ .string "warm-up for the POKéMON LEAGUE!\p"
+ .string "Come on!$"
+
+Route22_Text_LateRivalDefeat:: @ 8188B08
+ .string "What!?\p"
+ .string "I was just careless, you!$"
+
+Route22_Text_LateRivalPostBattle:: @ 8188B29
+ .string "That loosened me up.\n"
+ .string "I'm ready for the POKéMON LEAGUE!\p"
+ .string "{PLAYER}, you need more practice.\p"
+ .string "But hey, you know that!\n"
+ .string "I'm out of here. Smell ya!$"
+
+@ Translated in RB as "{RIVAL}: Hahaha! {PLAYER}! That's your best? You're nowhere near as good as me, pal! Go train some more! You loser!"
+Route22_Text_LateRivalVictory:: @ 8188BAF
+ .string "{RIVAL}“ひゃははッ {PLAYER}ー!\n"
+ .string "それで がんばってるのかよ!\l"
+ .string "おれの さいのうに くらべりゃ\l"
+ .string "{PLAYER}は まだまだ だな!\p"
+ .string "もっと れんしゅう こいよ!\n"
+ .string "あははーッ!$"
+
+Route22_Text_LeagueGateSign:: @ 8188BFF
+ .string "POKéMON LEAGUE\n"
+ .string "Front Gate$"
diff --git a/data/maps/Route2_EastBuilding/map.json b/data/maps/Route2_EastBuilding/map.json
index 2367b0b91..e966962c6 100644
--- a/data/maps/Route2_EastBuilding/map.json
+++ b/data/maps/Route2_EastBuilding/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_EastBuilding_EventScript_16F67F",
+ "script": "Route2_EastBuilding_EventScript_Aide",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_EastBuilding_EventScript_16F714",
+ "script": "Route2_EastBuilding_EventScript_Rocker",
"flag": "0"
}
],
diff --git a/data/maps/Route2_EastBuilding/scripts.inc b/data/maps/Route2_EastBuilding/scripts.inc
index cba95dc0b..a94d72fd7 100644
--- a/data/maps/Route2_EastBuilding/scripts.inc
+++ b/data/maps/Route2_EastBuilding/scripts.inc
@@ -1,40 +1,42 @@
+.equ REQUIRED_SEEN_MONS, 10
+
Route2_EastBuilding_MapScripts:: @ 816F67E
.byte 0
-Route2_EastBuilding_EventScript_16F67F:: @ 816F67F
+Route2_EastBuilding_EventScript_Aide:: @ 816F67F
lock
faceplayer
- call EventScript_16F70B
- goto_if_set FLAG_GOT_HM05, EventScript_16F701
- msgbox gUnknown_819D64F, MSGBOX_YESNO
+ call Route2_EastBuilding_EventScript_GetAideRequestInfo
+ goto_if_set FLAG_GOT_HM05, Route2_EastBuilding_EventScript_AlreadyGotHM05
+ msgbox Route2_EastBuilding_Text_GiveHM05IfSeen10Mons, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_1A7AD1
+ goto_if_eq Aide_EventScript_DeclineCheckMons
setvar VAR_0x8004, 0
specialvar VAR_RESULT, Special_GetPokedexCount
getnumberstring 2, VAR_0x8006
- call EventScript_16F70B
- compare VAR_0x8006, 10
- goto_if_lt EventScript_1A7ABD
- msgbox gUnknown_819D74E
+ call Route2_EastBuilding_EventScript_GetAideRequestInfo
+ compare VAR_0x8006, REQUIRED_SEEN_MONS
+ goto_if_lt Aide_EventScript_HaventCaughtEnough
+ msgbox Route2_EastBuilding_Text_GreatHereYouGo
checkitemspace ITEM_HM05, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_1A7AC7
- giveitem_msg gUnknown_819D7A1, ITEM_HM05
+ goto_if_eq Aide_EventScript_NoRoomForItem
+ giveitem_msg Route2_EastBuilding_Text_ReceivedHM05FromAide, ITEM_HM05
setflag FLAG_GOT_HM05
- msgbox gUnknown_819D7C1
+ msgbox Route2_EastBuilding_Text_ExplainHM05
release
end
-EventScript_16F701:: @ 816F701
- msgbox gUnknown_819D7C1
+Route2_EastBuilding_EventScript_AlreadyGotHM05:: @ 816F701
+ msgbox Route2_EastBuilding_Text_ExplainHM05
release
end
-EventScript_16F70B:: @ 816F70B
- getnumberstring 0, 10
+Route2_EastBuilding_EventScript_GetAideRequestInfo:: @ 816F70B
+ getnumberstring 0, REQUIRED_SEEN_MONS
getitemname 1, ITEM_HM05
return
-Route2_EastBuilding_EventScript_16F714:: @ 816F714
- msgbox gUnknown_819D81E, MSGBOX_NPC
+Route2_EastBuilding_EventScript_Rocker:: @ 816F714
+ msgbox Route2_EastBuilding_Text_CanGetThroughRockTunnel, MSGBOX_NPC
end
diff --git a/data/maps/Route2_EastBuilding/text.inc b/data/maps/Route2_EastBuilding/text.inc
index 228cf3c4d..1de4b8fc7 100644
--- a/data/maps/Route2_EastBuilding/text.inc
+++ b/data/maps/Route2_EastBuilding/text.inc
@@ -1,4 +1,4 @@
-gUnknown_819D64F:: @ 819D64F
+Route2_EastBuilding_Text_GiveHM05IfSeen10Mons:: @ 819D64F
.string "Hi! Remember me?\n"
.string "I'm one of PROF. OAK's AIDES.\p"
.string "If your POKéDEX has complete data\n"
@@ -10,23 +10,23 @@ gUnknown_819D64F:: @ 819D64F
.string "Have you gathered data on at least\n"
.string "ten kinds of POKéMON?$"
-gUnknown_819D74E:: @ 819D74E
+Route2_EastBuilding_Text_GreatHereYouGo:: @ 819D74E
.string "Great! You have caught or owned\n"
.string "{STR_VAR_3} kinds of POKéMON!\p"
.string "Congratulations!\n"
.string "Here you go!$"
-gUnknown_819D7A1:: @ 819D7A1
+Route2_EastBuilding_Text_ReceivedHM05FromAide:: @ 819D7A1
.string "{PLAYER} received HM05\n"
.string "from the AIDE.$"
-gUnknown_819D7C1:: @ 819D7C1
+Route2_EastBuilding_Text_ExplainHM05:: @ 819D7C1
.string "HM05 contains the hidden move\n"
.string "FLASH.\p"
.string "FLASH lights up even the darkest\n"
.string "of caves and dungeons.$"
-gUnknown_819D81E:: @ 819D81E
+Route2_EastBuilding_Text_CanGetThroughRockTunnel:: @ 819D81E
.string "Once a POKéMON learns FLASH, you\n"
.string "can get through ROCK TUNNEL.$"
diff --git a/data/maps/Route2_House/map.json b/data/maps/Route2_House/map.json
index 4c4b7e790..8f9785c33 100644
--- a/data/maps/Route2_House/map.json
+++ b/data/maps/Route2_House/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_House_EventScript_16F5F9",
+ "script": "Route2_House_EventScript_Scientist",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_House_EventScript_16F602",
+ "script": "Route2_House_EventScript_Reyley",
"flag": "0"
}
],
diff --git a/data/maps/Route2_House/scripts.inc b/data/maps/Route2_House/scripts.inc
index 2cdc2d8ec..6c442958c 100644
--- a/data/maps/Route2_House/scripts.inc
+++ b/data/maps/Route2_House/scripts.inc
@@ -1,43 +1,43 @@
Route2_House_MapScripts:: @ 816F5F8
.byte 0
-Route2_House_EventScript_16F5F9:: @ 816F5F9
- msgbox gUnknown_819D5E7, MSGBOX_NPC
+Route2_House_EventScript_Scientist:: @ 816F5F9
+ msgbox Route2_House_Text_FaintedMonsCanUseFieldMoves, MSGBOX_NPC
end
-Route2_House_EventScript_16F602:: @ 816F602
+Route2_House_EventScript_Reyley:: @ 816F602
lock
faceplayer
setvar VAR_0x8008, INGAME_TRADE_MR_MIME
call EventScript_GetInGameTradeSpeciesInfo
- goto_if_set FLAG_DID_MIMIEN_TRADE, EventScript_16F674
+ goto_if_set FLAG_DID_MIMIEN_TRADE, Route2_House_EventScript_AlreadyTraded
msgbox Trade_Text_LookingForMonWannaTradeForMon, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16F65C
+ goto_if_eq Route2_House_EventScript_DeclineTrade
call EventScript_ChooseMonForInGameTrade
compare VAR_0x8004, PARTY_SIZE
- goto_if_ge EventScript_16F65C
+ goto_if_ge Route2_House_EventScript_DeclineTrade
call EventScript_GetInGameTradeSpecies
compare VAR_RESULT, VAR_0x8009
- goto_if_ne EventScript_16F666
+ goto_if_ne Route2_House_EventScript_NotRequestedMon
call EventScript_DoInGameTrade
msgbox Trade_Text_HeyThanks
setflag FLAG_DID_MIMIEN_TRADE
release
end
-EventScript_16F65C:: @ 816F65C
+Route2_House_EventScript_DeclineTrade:: @ 816F65C
msgbox Trade_Text_AwwOhWell
release
end
-EventScript_16F666:: @ 816F666
+Route2_House_EventScript_NotRequestedMon:: @ 816F666
getspeciesname 0, VAR_0x8009
msgbox Trade_Text_WhatThatsNoMon
release
end
-EventScript_16F674:: @ 816F674
+Route2_House_EventScript_AlreadyTraded:: @ 816F674
msgbox Trade_Text_IsntMyOldMonGreat
release
end
diff --git a/data/maps/Route2_House/text.inc b/data/maps/Route2_House/text.inc
index 5fde449d3..76267c113 100644
--- a/data/maps/Route2_House/text.inc
+++ b/data/maps/Route2_House/text.inc
@@ -1,4 +1,4 @@
-gUnknown_819D5E7:: @ 819D5E7
+Route2_House_Text_FaintedMonsCanUseFieldMoves:: @ 819D5E7
.string "A fainted POKéMON just has no\n"
.string "energy left to battle.\p"
.string "It can still use moves like CUT\n"
diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/map.json b/data/maps/Route2_ViridianForest_NorthEntrance/map.json
index 1d73befbd..7f4225d23 100644
--- a/data/maps/Route2_ViridianForest_NorthEntrance/map.json
+++ b/data/maps/Route2_ViridianForest_NorthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_ViridianForest_NorthEntrance_EventScript_16F71E",
+ "script": "Route2_ViridianForest_NorthEntrance_EventScript_Youngster",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_ViridianForest_NorthEntrance_EventScript_16F727",
+ "script": "Route2_ViridianForest_NorthEntrance_EventScript_OldMan",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_ViridianForest_NorthEntrance_EventScript_16F730",
+ "script": "Route2_ViridianForest_NorthEntrance_EventScript_CooltrainerF",
"flag": "0"
}
],
diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc b/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc
index 29e6bd757..756cf31d9 100644
--- a/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc
+++ b/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc
@@ -1,14 +1,14 @@
Route2_ViridianForest_NorthEntrance_MapScripts:: @ 816F71D
.byte 0
-Route2_ViridianForest_NorthEntrance_EventScript_16F71E:: @ 816F71E
- msgbox gUnknown_819D85C, MSGBOX_NPC
+Route2_ViridianForest_NorthEntrance_EventScript_Youngster:: @ 816F71E
+ msgbox Route2_ViridianForest_NorthEntrance_Text_ManyMonsOnlyInForests, MSGBOX_NPC
end
-Route2_ViridianForest_NorthEntrance_EventScript_16F727:: @ 816F727
- msgbox gUnknown_819D8D0, MSGBOX_NPC
+Route2_ViridianForest_NorthEntrance_EventScript_OldMan:: @ 816F727
+ msgbox Route2_ViridianForest_NorthEntrance_Text_CanCutSkinnyTrees, MSGBOX_NPC
end
-Route2_ViridianForest_NorthEntrance_EventScript_16F730:: @ 816F730
- msgbox gUnknown_819D93B, MSGBOX_NPC
+Route2_ViridianForest_NorthEntrance_EventScript_CooltrainerF:: @ 816F730
+ msgbox Route2_ViridianForest_NorthEntrance_Text_CanCancelEvolution, MSGBOX_NPC
end
diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/text.inc b/data/maps/Route2_ViridianForest_NorthEntrance/text.inc
index 630d39fc9..9fec461a8 100644
--- a/data/maps/Route2_ViridianForest_NorthEntrance/text.inc
+++ b/data/maps/Route2_ViridianForest_NorthEntrance/text.inc
@@ -1,16 +1,16 @@
-gUnknown_819D85C:: @ 819D85C
+Route2_ViridianForest_NorthEntrance_Text_ManyMonsOnlyInForests:: @ 819D85C
.string "Many POKéMON live only in forests \n"
.string "and caves.\p"
.string "You need to be persistent and look\n"
.string "everywhere to get different kinds.$"
-gUnknown_819D8D0:: @ 819D8D0
+Route2_ViridianForest_NorthEntrance_Text_CanCutSkinnyTrees:: @ 819D8D0
.string "Have you noticed the skinny trees\n"
.string "on the roadside?\p"
.string "They can be cut down by a special\n"
.string "POKéMON move, I hear.$"
-gUnknown_819D93B:: @ 819D93B
+Route2_ViridianForest_NorthEntrance_Text_CanCancelEvolution:: @ 819D93B
.string "Do you know the evolution-cancel\n"
.string "technique?\p"
.string "When a POKéMON is evolving, you\n"
diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/map.json b/data/maps/Route2_ViridianForest_SouthEntrance/map.json
index 8d85f8f46..4e0ad0164 100644
--- a/data/maps/Route2_ViridianForest_SouthEntrance/map.json
+++ b/data/maps/Route2_ViridianForest_SouthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_ViridianForest_SouthEntrance_EventScript_16F5E6",
+ "script": "Route2_ViridianForest_SouthEntrance_EventScript_Woman1",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route2_ViridianForest_SouthEntrance_EventScript_16F5EF",
+ "script": "Route2_ViridianForest_SouthEntrance_EventScript_Woman2",
"flag": "0"
}
],
diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc b/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc
index aea8bfaa4..2a60a3772 100644
--- a/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc
+++ b/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc
@@ -1,10 +1,10 @@
Route2_ViridianForest_SouthEntrance_MapScripts:: @ 816F5E5
.byte 0
-Route2_ViridianForest_SouthEntrance_EventScript_16F5E6:: @ 816F5E6
- msgbox gUnknown_819D52C, MSGBOX_NPC
+Route2_ViridianForest_SouthEntrance_EventScript_Woman1:: @ 816F5E6
+ msgbox Route2_ViridianForest_SouthEntrance_Text_ForestIsMaze, MSGBOX_NPC
end
-Route2_ViridianForest_SouthEntrance_EventScript_16F5EF:: @ 816F5EF
- msgbox gUnknown_819D58B, MSGBOX_NPC
+Route2_ViridianForest_SouthEntrance_EventScript_Woman2:: @ 816F5EF
+ msgbox Route2_ViridianForest_SouthEntrance_Text_RattataHasWickedBite, MSGBOX_NPC
end
diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/text.inc b/data/maps/Route2_ViridianForest_SouthEntrance/text.inc
index c92538340..20e25429f 100644
--- a/data/maps/Route2_ViridianForest_SouthEntrance/text.inc
+++ b/data/maps/Route2_ViridianForest_SouthEntrance/text.inc
@@ -1,9 +1,9 @@
-gUnknown_819D52C:: @ 819D52C
+Route2_ViridianForest_SouthEntrance_Text_ForestIsMaze:: @ 819D52C
.string "Are you going to VIRIDIAN FOREST?\n"
.string "It's a natural maze in there.\l"
.string "Be careful you don't get lost.$"
-gUnknown_819D58B:: @ 819D58B
+Route2_ViridianForest_SouthEntrance_Text_RattataHasWickedBite:: @ 819D58B
.string "RATTATA may be small, but don't\n"
.string "underestimate its wicked bite.\p"
.string "Have you caught one already?$"
diff --git a/data/maps/SSAnne_1F_Corridor/map.json b/data/maps/SSAnne_1F_Corridor/map.json
index bf4c1e004..eab4e822a 100644
--- a/data/maps/SSAnne_1F_Corridor/map.json
+++ b/data/maps/SSAnne_1F_Corridor/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Corridor_EventScript_1608D5",
+ "script": "SSAnne_1F_Corridor_EventScript_Sailor",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Corridor_EventScript_1608CC",
+ "script": "SSAnne_1F_Corridor_EventScript_WorkerM",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Corridor/scripts.inc b/data/maps/SSAnne_1F_Corridor/scripts.inc
index 21967cf04..bc116f99b 100644
--- a/data/maps/SSAnne_1F_Corridor/scripts.inc
+++ b/data/maps/SSAnne_1F_Corridor/scripts.inc
@@ -1,10 +1,10 @@
SSAnne_1F_Corridor_MapScripts:: @ 81608CB
.byte 0
-SSAnne_1F_Corridor_EventScript_1608CC:: @ 81608CC
- msgbox gUnknown_8172EE7, MSGBOX_NPC
+SSAnne_1F_Corridor_EventScript_WorkerM:: @ 81608CC
+ msgbox SSAnne_1F_Corridor_Text_LeStrongSilentType, MSGBOX_NPC
end
-SSAnne_1F_Corridor_EventScript_1608D5:: @ 81608D5
- msgbox gUnknown_8172F60, MSGBOX_NPC
+SSAnne_1F_Corridor_EventScript_Sailor:: @ 81608D5
+ msgbox SSAnne_1F_Corridor_Text_PassengersAreRestless, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_1F_Corridor/text.inc b/data/maps/SSAnne_1F_Corridor/text.inc
index dff534c9a..f720e2ed9 100644
--- a/data/maps/SSAnne_1F_Corridor/text.inc
+++ b/data/maps/SSAnne_1F_Corridor/text.inc
@@ -1,4 +1,4 @@
-gUnknown_8172EE7:: @ 8172EE7
+SSAnne_1F_Corridor_Text_LeStrongSilentType:: @ 8172EE7
.string "Bonjour!\n"
.string "I am le waiter on this ship!\p"
.string "I will be happy to serve you\n"
@@ -6,7 +6,7 @@ gUnknown_8172EE7:: @ 8172EE7
.string "… … …\n"
.string "Ah! Le strong silent type!$"
-gUnknown_8172F60:: @ 8172F60
+SSAnne_1F_Corridor_Text_PassengersAreRestless:: @ 8172F60
.string "The passengers are restless from\n"
.string "this long voyage.\p"
.string "You might be challenged by the\n"
diff --git a/data/maps/SSAnne_1F_Room1/map.json b/data/maps/SSAnne_1F_Room1/map.json
index e8547d2e3..42c95079b 100644
--- a/data/maps/SSAnne_1F_Room1/map.json
+++ b/data/maps/SSAnne_1F_Room1/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Room1_EventScript_160BDC",
+ "script": "SSAnne_1F_Room1_EventScript_Gentleman",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Room1/scripts.inc b/data/maps/SSAnne_1F_Room1/scripts.inc
index 5f610c830..8cbf9edb7 100644
--- a/data/maps/SSAnne_1F_Room1/scripts.inc
+++ b/data/maps/SSAnne_1F_Room1/scripts.inc
@@ -1,6 +1,6 @@
SSAnne_1F_Room1_MapScripts:: @ 8160BDB
.byte 0
-SSAnne_1F_Room1_EventScript_160BDC:: @ 8160BDC
- msgbox gUnknown_817393B, MSGBOX_NPC
+SSAnne_1F_Room1_EventScript_Gentleman:: @ 8160BDC
+ msgbox SSAnne_1F_Room1_Text_ImAGlobalPoliceAgent, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_1F_Room1/text.inc b/data/maps/SSAnne_1F_Room1/text.inc
index 252ab2283..1466bcfe8 100644
--- a/data/maps/SSAnne_1F_Room1/text.inc
+++ b/data/maps/SSAnne_1F_Room1/text.inc
@@ -1,4 +1,4 @@
-gUnknown_817393B:: @ 817393B
+SSAnne_1F_Room1_Text_ImAGlobalPoliceAgent:: @ 817393B
.string "Ssh…!\n"
.string "I'm a GLOBAL POLICE agent.\p"
.string "I'm on the trail of TEAM ROCKET.\n"
diff --git a/data/maps/SSAnne_1F_Room2/map.json b/data/maps/SSAnne_1F_Room2/map.json
index db08152f0..8a779f450 100644
--- a/data/maps/SSAnne_1F_Room2/map.json
+++ b/data/maps/SSAnne_1F_Room2/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "SSAnne_1F_Room2_EventScript_160BEF",
+ "script": "SSAnne_1F_Room2_EventScript_Ann",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_1F_Room2_EventScript_160C06",
+ "script": "SSAnne_1F_Room2_EventScript_Tyler",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 1,
- "script": "SSAnne_1F_Room2_EventScript_160BE6",
+ "script": "SSAnne_1F_Room2_EventScript_Woman",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_1F_Room2/scripts.inc b/data/maps/SSAnne_1F_Room2/scripts.inc
index 3a80d3cfe..10154e734 100644
--- a/data/maps/SSAnne_1F_Room2/scripts.inc
+++ b/data/maps/SSAnne_1F_Room2/scripts.inc
@@ -1,16 +1,16 @@
SSAnne_1F_Room2_MapScripts:: @ 8160BE5
.byte 0
-SSAnne_1F_Room2_EventScript_160BE6:: @ 8160BE6
- msgbox gUnknown_8173AC5, MSGBOX_NPC
+SSAnne_1F_Room2_EventScript_Woman:: @ 8160BE6
+ msgbox SSAnne_1F_Room2_Text_CruisingAroundWorld, MSGBOX_NPC
end
-SSAnne_1F_Room2_EventScript_160BEF:: @ 8160BEF
- trainerbattle_single TRAINER_LASS_ANN, Text_173A1A, Text_173A4F
- msgbox gUnknown_8173A7A, MSGBOX_AUTOCLOSE
+SSAnne_1F_Room2_EventScript_Ann:: @ 8160BEF
+ trainerbattle_single TRAINER_LASS_ANN, SSAnne_1F_Room2_Text_AnnIntro, SSAnne_1F_Room2_Text_AnnDefeat
+ msgbox SSAnne_1F_Room2_Text_AnnPostBattle, MSGBOX_AUTOCLOSE
end
-SSAnne_1F_Room2_EventScript_160C06:: @ 8160C06
- trainerbattle_single TRAINER_YOUNGSTER_TYLER, Text_173999, Text_1739B1
- msgbox gUnknown_81739C5, MSGBOX_AUTOCLOSE
+SSAnne_1F_Room2_EventScript_Tyler:: @ 8160C06
+ trainerbattle_single TRAINER_YOUNGSTER_TYLER, SSAnne_1F_Room2_Text_TylerIntro, SSAnne_1F_Room2_Text_TylerDefeat
+ msgbox SSAnne_1F_Room2_Text_TylerPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_1F_Room2/text.inc b/data/maps/SSAnne_1F_Room2/text.inc
index 92dc9a93c..55daa017f 100644
--- a/data/maps/SSAnne_1F_Room2/text.inc
+++ b/data/maps/SSAnne_1F_Room2/text.inc
@@ -1,31 +1,31 @@
-Text_173999:: @ 8173999
+SSAnne_1F_Room2_Text_TylerIntro:: @ 8173999
.string "I love POKéMON!\n"
.string "Do you?$"
-Text_1739B1:: @ 81739B1
+SSAnne_1F_Room2_Text_TylerDefeat:: @ 81739B1
.string "Wow! \n"
.string "You're great!$"
-gUnknown_81739C5:: @ 81739C5
+SSAnne_1F_Room2_Text_TylerPostBattle:: @ 81739C5
.string "Listen, listen!\n"
.string "Let me be your friend, okay?\p"
.string "Then we can trade POKéMON and\n"
.string "do stuff.$"
-Text_173A1A:: @ 8173A1A
+SSAnne_1F_Room2_Text_AnnIntro:: @ 8173A1A
.string "I collected these POKéMON\n"
.string "from all around the world!$"
-Text_173A4F:: @ 8173A4F
+SSAnne_1F_Room2_Text_AnnDefeat:: @ 8173A4F
.string "Oh, no!\n"
.string "I went around the world for these!$"
-gUnknown_8173A7A:: @ 8173A7A
+SSAnne_1F_Room2_Text_AnnPostBattle:: @ 8173A7A
.string "You hurt my poor POKéMON!\p"
.string "I demand that you heal them at a\n"
.string "POKéMON CENTER!$"
-gUnknown_8173AC5:: @ 8173AC5
+SSAnne_1F_Room2_Text_CruisingAroundWorld:: @ 8173AC5
.string "We are cruising around the world,\n"
.string "my children and I.$"
diff --git a/data/maps/SSAnne_1F_Room3/map.json b/data/maps/SSAnne_1F_Room3/map.json
index 71febbbf9..d610ee30a 100644
--- a/data/maps/SSAnne_1F_Room3/map.json
+++ b/data/maps/SSAnne_1F_Room3/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 3,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Room3_EventScript_160C1E",
+ "script": "SSAnne_1F_Room3_EventScript_LittleGirl",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Room3_EventScript_160C30",
+ "script": "SSAnne_1F_Room3_EventScript_Wigglytuff",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Room3_EventScript_160C27",
+ "script": "SSAnne_1F_Room3_EventScript_BaldingMan",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Room3/scripts.inc b/data/maps/SSAnne_1F_Room3/scripts.inc
index 7b9651040..446106c4e 100644
--- a/data/maps/SSAnne_1F_Room3/scripts.inc
+++ b/data/maps/SSAnne_1F_Room3/scripts.inc
@@ -1,20 +1,20 @@
SSAnne_1F_Room3_MapScripts:: @ 8160C1D
.byte 0
-SSAnne_1F_Room3_EventScript_160C1E:: @ 8160C1E
- msgbox gUnknown_8173B21, MSGBOX_NPC
+SSAnne_1F_Room3_EventScript_LittleGirl:: @ 8160C1E
+ msgbox SSAnne_1F_Room3_Text_AlwaysTravelWithWigglytuff, MSGBOX_NPC
end
-SSAnne_1F_Room3_EventScript_160C27:: @ 8160C27
- msgbox gUnknown_8173AFA, MSGBOX_NPC
+SSAnne_1F_Room3_EventScript_BaldingMan:: @ 8160C27
+ msgbox SSAnne_1F_Room3_Text_CruiseIsElegantAndCozy, MSGBOX_NPC
end
-SSAnne_1F_Room3_EventScript_160C30:: @ 8160C30
+SSAnne_1F_Room3_EventScript_Wigglytuff:: @ 8160C30
lock
faceplayer
waitse
playmoncry SPECIES_WIGGLYTUFF, 0
- msgbox gUnknown_8173B61
+ msgbox SSAnne_1F_Room3_Text_Wigglytuff
waitmoncry
release
end
diff --git a/data/maps/SSAnne_1F_Room3/text.inc b/data/maps/SSAnne_1F_Room3/text.inc
index 32709c631..d79d495e9 100644
--- a/data/maps/SSAnne_1F_Room3/text.inc
+++ b/data/maps/SSAnne_1F_Room3/text.inc
@@ -1,11 +1,11 @@
-gUnknown_8173AFA:: @ 8173AFA
+SSAnne_1F_Room3_Text_CruiseIsElegantAndCozy:: @ 8173AFA
.string "A world cruise is so elegant yet\n"
.string "cozy!$"
-gUnknown_8173B21:: @ 8173B21
+SSAnne_1F_Room3_Text_AlwaysTravelWithWigglytuff:: @ 8173B21
.string "I always travel with WIGGLYTUFF.\n"
.string "I never leave home without it.$"
-gUnknown_8173B61:: @ 8173B61
+SSAnne_1F_Room3_Text_Wigglytuff:: @ 8173B61
.string "WIGGLYTUFF: Puup pupuu!$"
diff --git a/data/maps/SSAnne_1F_Room4/map.json b/data/maps/SSAnne_1F_Room4/map.json
index a97e88fcc..262a1a089 100644
--- a/data/maps/SSAnne_1F_Room4/map.json
+++ b/data/maps/SSAnne_1F_Room4/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Room4_EventScript_160C44",
+ "script": "SSAnne_1F_Room4_EventScript_Woman",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Room4/scripts.inc b/data/maps/SSAnne_1F_Room4/scripts.inc
index 9e6f3fdc2..7a4dfde80 100644
--- a/data/maps/SSAnne_1F_Room4/scripts.inc
+++ b/data/maps/SSAnne_1F_Room4/scripts.inc
@@ -1,17 +1,17 @@
SSAnne_1F_Room4_MapScripts:: @ 8160C43
.byte 0
-SSAnne_1F_Room4_EventScript_160C44:: @ 8160C44
+SSAnne_1F_Room4_EventScript_Woman:: @ 8160C44
lock
faceplayer
checkplayergender
compare VAR_RESULT, MALE
- goto_if_eq EventScript_160C5C
- msgbox gUnknown_8173BA4
+ goto_if_eq SSAnne_1F_Room4_EventScript_WomanPlayerMale
+ msgbox SSAnne_1F_Room4_Text_WaitressCherryPiePlease
release
end
-EventScript_160C5C:: @ 8160C5C
- msgbox gUnknown_8173B79
+SSAnne_1F_Room4_EventScript_WomanPlayerMale:: @ 8160C5C
+ msgbox SSAnne_1F_Room4_Text_WaiterCherryPiePlease
release
end
diff --git a/data/maps/SSAnne_1F_Room4/text.inc b/data/maps/SSAnne_1F_Room4/text.inc
index 8b3f4c775..e0eb0bcce 100644
--- a/data/maps/SSAnne_1F_Room4/text.inc
+++ b/data/maps/SSAnne_1F_Room4/text.inc
@@ -1,8 +1,8 @@
-gUnknown_8173B79:: @ 8173B79
+SSAnne_1F_Room4_Text_WaiterCherryPiePlease:: @ 8173B79
.string "Waiter, I would like a cherry pie,\n"
.string "please!$"
-gUnknown_8173BA4:: @ 8173BA4
+SSAnne_1F_Room4_Text_WaitressCherryPiePlease:: @ 8173BA4
.string "Waitress, I would like a cherry\n"
.string "pie, please!$"
diff --git a/data/maps/SSAnne_1F_Room5/map.json b/data/maps/SSAnne_1F_Room5/map.json
index 7d3c24e5b..6cdd3d088 100644
--- a/data/maps/SSAnne_1F_Room5/map.json
+++ b/data/maps/SSAnne_1F_Room5/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 4,
- "script": "SSAnne_1F_Room5_EventScript_160C67",
+ "script": "SSAnne_1F_Room5_EventScript_Arthur",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Room5/scripts.inc b/data/maps/SSAnne_1F_Room5/scripts.inc
index 028442449..e91e35bf6 100644
--- a/data/maps/SSAnne_1F_Room5/scripts.inc
+++ b/data/maps/SSAnne_1F_Room5/scripts.inc
@@ -1,7 +1,7 @@
SSAnne_1F_Room5_MapScripts:: @ 8160C66
.byte 0
-SSAnne_1F_Room5_EventScript_160C67:: @ 8160C67
- trainerbattle_single TRAINER_GENTLEMAN_ARTHUR, Text_173BD1, Text_173BFA
- msgbox gUnknown_8173C30, MSGBOX_AUTOCLOSE
+SSAnne_1F_Room5_EventScript_Arthur:: @ 8160C67
+ trainerbattle_single TRAINER_GENTLEMAN_ARTHUR, SSAnne_1F_Room5_Text_ArthurIntro, SSAnne_1F_Room5_Text_ArthurDefeat
+ msgbox SSAnne_1F_Room5_Text_ArthurPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_1F_Room5/text.inc b/data/maps/SSAnne_1F_Room5/text.inc
index 09d582707..dd2f80262 100644
--- a/data/maps/SSAnne_1F_Room5/text.inc
+++ b/data/maps/SSAnne_1F_Room5/text.inc
@@ -1,12 +1,12 @@
-Text_173BD1:: @ 8173BD1
+SSAnne_1F_Room5_Text_ArthurIntro:: @ 8173BD1
.string "You insolent pup!\n"
.string "How dare you barge in!$"
-Text_173BFA:: @ 8173BFA
+SSAnne_1F_Room5_Text_ArthurDefeat:: @ 8173BFA
.string "Humph! You rude child!\n"
.string "You have no sense of courtesy!$"
-gUnknown_8173C30:: @ 8173C30
+SSAnne_1F_Room5_Text_ArthurPostBattle:: @ 8173C30
.string "I wish to be left alone!\n"
.string "Get out!$"
diff --git a/data/maps/SSAnne_1F_Room6/map.json b/data/maps/SSAnne_1F_Room6/map.json
index 881554a8d..b9b25ff45 100644
--- a/data/maps/SSAnne_1F_Room6/map.json
+++ b/data/maps/SSAnne_1F_Room6/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_1F_Room6_EventScript_160DF3",
+ "script": "SSAnne_1F_Room6_EventScript_Woman",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Room6/scripts.inc b/data/maps/SSAnne_1F_Room6/scripts.inc
index 42c69fb3b..dec1181bf 100644
--- a/data/maps/SSAnne_1F_Room6/scripts.inc
+++ b/data/maps/SSAnne_1F_Room6/scripts.inc
@@ -1,27 +1,27 @@
SSAnne_1F_Room6_MapScripts:: @ 8160DF2
.byte 0
-SSAnne_1F_Room6_EventScript_160DF3:: @ 8160DF3
+SSAnne_1F_Room6_EventScript_Woman:: @ 8160DF3
lock
faceplayer
- msgbox gUnknown_817445B, MSGBOX_YESNO
+ msgbox SSAnne_1F_Room6_Text_TakeAShortRest, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_160E18
+ goto_if_eq SSAnne_1F_Room6_EventScript_DeclineHeal
closemessage
call EventScript_OutOfCenterPartyHeal
- msgbox gUnknown_8174490
+ msgbox SSAnne_1F_Room6_Text_GladEveryoneIsRefreshed
release
end
-EventScript_160E18:: @ 8160E18
+SSAnne_1F_Room6_EventScript_DeclineHeal:: @ 8160E18
checkplayergender
compare VAR_RESULT, MALE
- goto_if_eq EventScript_160E2E
- msgbox gUnknown_8174515
+ goto_if_eq SSAnne_1F_Room6_EventScript_DeclineHealMale
+ msgbox SSAnne_1F_Room6_Text_SorryYouLookLikeMySister
release
end
-EventScript_160E2E:: @ 8160E2E
- msgbox gUnknown_81744D0
+SSAnne_1F_Room6_EventScript_DeclineHealMale:: @ 8160E2E
+ msgbox SSAnne_1F_Room6_Text_SorryYouLookLikeMyBrother
release
end
diff --git a/data/maps/SSAnne_1F_Room6/text.inc b/data/maps/SSAnne_1F_Room6/text.inc
index 442992f02..6d4d98ff5 100644
--- a/data/maps/SSAnne_1F_Room6/text.inc
+++ b/data/maps/SSAnne_1F_Room6/text.inc
@@ -1,16 +1,16 @@
-gUnknown_817445B:: @ 817445B
+SSAnne_1F_Room6_Text_TakeAShortRest:: @ 817445B
.string "You look tired. Would you like to\n"
.string "take a short rest?$"
-gUnknown_8174490:: @ 8174490
+SSAnne_1F_Room6_Text_GladEveryoneIsRefreshed:: @ 8174490
.string "I'm glad to see that everyone is\n"
.string "looking refreshed and chipper.$"
-gUnknown_81744D0:: @ 81744D0
+SSAnne_1F_Room6_Text_SorryYouLookLikeMyBrother:: @ 81744D0
.string "Oh, I'm sorry for fussing over you.\n"
.string "You look like my little brother…$"
-gUnknown_8174515:: @ 8174515
+SSAnne_1F_Room6_Text_SorryYouLookLikeMySister:: @ 8174515
.string "Oh, I'm sorry for fussing over you.\n"
.string "You look like my little sister…$"
diff --git a/data/maps/SSAnne_1F_Room7/map.json b/data/maps/SSAnne_1F_Room7/map.json
index 887022650..98496a947 100644
--- a/data/maps/SSAnne_1F_Room7/map.json
+++ b/data/maps/SSAnne_1F_Room7/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_1F_Room7_EventScript_160C7F",
+ "script": "SSAnne_1F_Room7_EventScript_Thomas",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_1F_Room7/scripts.inc b/data/maps/SSAnne_1F_Room7/scripts.inc
index 5901ee65b..60e26dc73 100644
--- a/data/maps/SSAnne_1F_Room7/scripts.inc
+++ b/data/maps/SSAnne_1F_Room7/scripts.inc
@@ -1,7 +1,7 @@
SSAnne_1F_Room7_MapScripts:: @ 8160C7E
.byte 0
-SSAnne_1F_Room7_EventScript_160C7F:: @ 8160C7F
- trainerbattle_single TRAINER_GENTLEMAN_THOMAS, Text_173C52, Text_173CB4
- msgbox gUnknown_8173CC4, MSGBOX_AUTOCLOSE
+SSAnne_1F_Room7_EventScript_Thomas:: @ 8160C7F
+ trainerbattle_single TRAINER_GENTLEMAN_THOMAS, SSAnne_1F_Room7_Text_ThomasIntro, SSAnne_1F_Room7_Text_ThomasDefeat
+ msgbox SSAnne_1F_Room7_Text_ThomasPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_1F_Room7/text.inc b/data/maps/SSAnne_1F_Room7/text.inc
index d4fed83fb..3a8ce2f28 100644
--- a/data/maps/SSAnne_1F_Room7/text.inc
+++ b/data/maps/SSAnne_1F_Room7/text.inc
@@ -1,11 +1,11 @@
-Text_173C52:: @ 8173C52
+SSAnne_1F_Room7_Text_ThomasIntro:: @ 8173C52
.string "I am but a solitary traveler…\p"
.string "My sole companions and friends are\n"
.string "POKéMON I caught on my journeys…$"
-Text_173CB4:: @ 8173CB4
+SSAnne_1F_Room7_Text_ThomasDefeat:: @ 8173CB4
.string "My, my friends…$"
-gUnknown_8173CC4:: @ 8173CC4
+SSAnne_1F_Room7_Text_ThomasPostBattle:: @ 8173CC4
.string "You should be nice to friends!$"
diff --git a/data/maps/SSAnne_2F_Corridor/map.json b/data/maps/SSAnne_2F_Corridor/map.json
index 850b63fc4..e3b506027 100644
--- a/data/maps/SSAnne_2F_Corridor/map.json
+++ b/data/maps/SSAnne_2F_Corridor/map.json
@@ -36,7 +36,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Corridor_EventScript_160A54",
+ "script": "SSAnne_2F_Corridor_EventScript_Sailor",
"flag": "0"
}
],
@@ -113,7 +113,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR",
"var_value": 0,
- "script": "SSAnne_2F_Corridor_EventScript_1608DF"
+ "script": "SSAnne_2F_Corridor_EventScript_RivalTriggerLeft"
},
{
"type": "trigger",
@@ -122,7 +122,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR",
"var_value": 0,
- "script": "SSAnne_2F_Corridor_EventScript_1608EB"
+ "script": "SSAnne_2F_Corridor_EventScript_RivalTriggerMid"
},
{
"type": "trigger",
@@ -131,7 +131,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR",
"var_value": 0,
- "script": "SSAnne_2F_Corridor_EventScript_1608F7"
+ "script": "SSAnne_2F_Corridor_EventScript_RivalTriggerRight"
}
],
"bg_events": []
diff --git a/data/maps/SSAnne_2F_Corridor/scripts.inc b/data/maps/SSAnne_2F_Corridor/scripts.inc
index 02b06920a..ed0ddd056 100644
--- a/data/maps/SSAnne_2F_Corridor/scripts.inc
+++ b/data/maps/SSAnne_2F_Corridor/scripts.inc
@@ -1,31 +1,25 @@
SSAnne_2F_Corridor_MapScripts:: @ 81608DE
.byte 0
-SSAnne_2F_Corridor_EventScript_1608DF:: @ 81608DF
+SSAnne_2F_Corridor_EventScript_RivalTriggerLeft:: @ 81608DF
lockall
setvar VAR_TEMP_1, 0
- goto EventScript_160903
-
-EventScript_1608EA:: @ 81608EA
+ goto SSAnne_2F_Corridor_EventScript_RivalTrigger
end
-SSAnne_2F_Corridor_EventScript_1608EB:: @ 81608EB
+SSAnne_2F_Corridor_EventScript_RivalTriggerMid:: @ 81608EB
lockall
setvar VAR_TEMP_1, 1
- goto EventScript_160903
-
-EventScript_1608F6:: @ 81608F6
+ goto SSAnne_2F_Corridor_EventScript_RivalTrigger
end
-SSAnne_2F_Corridor_EventScript_1608F7:: @ 81608F7
+SSAnne_2F_Corridor_EventScript_RivalTriggerRight:: @ 81608F7
lockall
setvar VAR_TEMP_1, 2
- goto EventScript_160903
-
-EventScript_160902:: @ 8160902
+ goto SSAnne_2F_Corridor_EventScript_RivalTrigger
end
-EventScript_160903:: @ 8160903
+SSAnne_2F_Corridor_EventScript_RivalTrigger:: @ 8160903
textcolor 0
playse SE_KAIDAN
delay 5
@@ -36,80 +30,80 @@ EventScript_160903:: @ 8160903
waitmovement 0
delay 20
compare VAR_TEMP_1, 0
- call_if_eq EventScript_1609AD
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalApproachLeft
compare VAR_TEMP_1, 1
- call_if_eq EventScript_1609B8
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalApproachMid
compare VAR_TEMP_1, 2
- call_if_eq EventScript_1609CA
- msgbox gUnknown_8173035
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalApproachRight
+ msgbox SSAnne_2F_Corridor_Text_RivalIntro
setvar VAR_LAST_TALKED, 1
compare VAR_STARTER_MON, 2
- call_if_eq EventScript_1609DC
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalSquirtle
compare VAR_STARTER_MON, 1
- call_if_eq EventScript_1609E7
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalBulbasaur
compare VAR_STARTER_MON, 0
- call_if_eq EventScript_1609F2
- msgbox gUnknown_8173164
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalCharmander
+ msgbox SSAnne_2F_Corridor_Text_RivalPostBattle
closemessage
delay 10
playbgm MUS_RIVAL2, 0
compare VAR_TEMP_1, 0
- call_if_eq EventScript_1609FD
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalExitLeft
compare VAR_TEMP_1, 1
- call_if_eq EventScript_160A08
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalExitMid
compare VAR_TEMP_1, 2
- call_if_eq EventScript_160A13
+ call_if_eq SSAnne_2F_Corridor_EventScript_RivalExitRight
fadedefaultbgm
removeobject 1
setvar VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR, 1
releaseall
end
-EventScript_1609AD:: @ 81609AD
- applymovement 1, Movement_160A2A
+SSAnne_2F_Corridor_EventScript_RivalApproachLeft:: @ 81609AD
+ applymovement 1, SSAnne_2F_Corridor_Movement_RivalApproachLeft
waitmovement 0
return
-EventScript_1609B8:: @ 81609B8
- applymovement 1, Movement_160A2E
- applymovement OBJ_EVENT_ID_PLAYER, Movement_160A24
+SSAnne_2F_Corridor_EventScript_RivalApproachMid:: @ 81609B8
+ applymovement 1, SSAnne_2F_Corridor_Movement_RivalApproachMid
+ applymovement OBJ_EVENT_ID_PLAYER, SSAnne_2F_Corridor_Movement_PlayerFaceRivalMid
waitmovement 0
return
-EventScript_1609CA:: @ 81609CA
- applymovement OBJ_EVENT_ID_PLAYER, Movement_160A1E
- applymovement 1, Movement_160A34
+SSAnne_2F_Corridor_EventScript_RivalApproachRight:: @ 81609CA
+ applymovement OBJ_EVENT_ID_PLAYER, SSAnne_2F_Corridor_Movement_PlayerFaceRivalRight
+ applymovement 1, SSAnne_2F_Corridor_Movement_RivalApproachRight
waitmovement 0
return
-EventScript_1609DC:: @ 81609DC
- trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_SQUIRTLE, Text_173110
+SSAnne_2F_Corridor_EventScript_RivalSquirtle:: @ 81609DC
+ trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_SQUIRTLE, SSAnne_2F_Corridor_Text_RivalDefeat
return
-EventScript_1609E7:: @ 81609E7
- trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_BULBASAUR, Text_173110
+SSAnne_2F_Corridor_EventScript_RivalBulbasaur:: @ 81609E7
+ trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_BULBASAUR, SSAnne_2F_Corridor_Text_RivalDefeat
return
-EventScript_1609F2:: @ 81609F2
- trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_CHARMANDER, Text_173110
+SSAnne_2F_Corridor_EventScript_RivalCharmander:: @ 81609F2
+ trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_CHARMANDER, SSAnne_2F_Corridor_Text_RivalDefeat
return
-EventScript_1609FD:: @ 81609FD
- applymovement 1, Movement_160A3B
+SSAnne_2F_Corridor_EventScript_RivalExitLeft:: @ 81609FD
+ applymovement 1, SSAnne_2F_Corridor_Movement_RivalExitLeft
waitmovement 0
return
-EventScript_160A08:: @ 8160A08
- applymovement 1, Movement_160A44
+SSAnne_2F_Corridor_EventScript_RivalExitMid:: @ 8160A08
+ applymovement 1, SSAnne_2F_Corridor_Movement_RivalExitMid
waitmovement 0
return
-EventScript_160A13:: @ 8160A13
- applymovement 1, Movement_160A4C
+SSAnne_2F_Corridor_EventScript_RivalExitRight:: @ 8160A13
+ applymovement 1, SSAnne_2F_Corridor_Movement_RivalExitRight
waitmovement 0
return
-Movement_160A1E:: @ 8160A1E
+SSAnne_2F_Corridor_Movement_PlayerFaceRivalRight:: @ 8160A1E
delay_16
delay_16
delay_16
@@ -117,7 +111,7 @@ Movement_160A1E:: @ 8160A1E
walk_in_place_fastest_left
step_end
-Movement_160A24:: @ 8160A24
+SSAnne_2F_Corridor_Movement_PlayerFaceRivalMid:: @ 8160A24
delay_16
delay_16
delay_16
@@ -125,13 +119,13 @@ Movement_160A24:: @ 8160A24
walk_in_place_fastest_left
step_end
-Movement_160A2A:: @ 8160A2A
+SSAnne_2F_Corridor_Movement_RivalApproachLeft:: @ 8160A2A
walk_down
walk_down
walk_down
step_end
-Movement_160A2E:: @ 8160A2E
+SSAnne_2F_Corridor_Movement_RivalApproachMid:: @ 8160A2E
walk_down
walk_down
walk_down
@@ -139,7 +133,7 @@ Movement_160A2E:: @ 8160A2E
walk_in_place_fastest_right
step_end
-Movement_160A34:: @ 8160A34
+SSAnne_2F_Corridor_Movement_RivalApproachRight:: @ 8160A34
walk_down
walk_down
walk_down
@@ -148,7 +142,7 @@ Movement_160A34:: @ 8160A34
delay_4
step_end
-Movement_160A3B:: @ 8160A3B
+SSAnne_2F_Corridor_Movement_RivalExitLeft:: @ 8160A3B
walk_right
walk_down
walk_down
@@ -159,7 +153,7 @@ Movement_160A3B:: @ 8160A3B
walk_down
step_end
-Movement_160A44:: @ 8160A44
+SSAnne_2F_Corridor_Movement_RivalExitMid:: @ 8160A44
walk_down
walk_down
walk_down
@@ -169,7 +163,7 @@ Movement_160A44:: @ 8160A44
walk_down
step_end
-Movement_160A4C:: @ 8160A4C
+SSAnne_2F_Corridor_Movement_RivalExitRight:: @ 8160A4C
walk_down
walk_down
walk_down
@@ -179,6 +173,6 @@ Movement_160A4C:: @ 8160A4C
walk_down
step_end
-SSAnne_2F_Corridor_EventScript_160A54:: @ 8160A54
- msgbox gUnknown_8172FC3, MSGBOX_NPC
+SSAnne_2F_Corridor_EventScript_Sailor:: @ 8160A54
+ msgbox SSAnne_2F_Corridor_Text_ThisShipIsLuxuryLiner, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_2F_Corridor/text.inc b/data/maps/SSAnne_2F_Corridor/text.inc
index fde6846f2..2f830479d 100644
--- a/data/maps/SSAnne_2F_Corridor/text.inc
+++ b/data/maps/SSAnne_2F_Corridor/text.inc
@@ -1,10 +1,10 @@
-gUnknown_8172FC3:: @ 8172FC3
+SSAnne_2F_Corridor_Text_ThisShipIsLuxuryLiner:: @ 8172FC3
.string "This ship, she is a luxury liner for\n"
.string "TRAINERS of the world!\p"
.string "At every port, we hold parties with\n"
.string "invited TRAINERS.$"
-gUnknown_8173035:: @ 8173035
+SSAnne_2F_Corridor_Text_RivalIntro:: @ 8173035
.string "{RIVAL}: Bonjour!\n"
.string "{PLAYER}!\p"
.string "Imagine seeing you here!\n"
@@ -15,18 +15,18 @@ gUnknown_8173035:: @ 8173035
.string "Crawl around in grassy areas, and\n"
.string "look hard for them.$"
-Text_173110:: @ 8173110
+SSAnne_2F_Corridor_Text_RivalDefeat:: @ 8173110
.string "Humph!\p"
.string "At least you're raising your\n"
.string "POKéMON!$"
-Text_17313D:: @ 817313D
+SSAnne_2F_Corridor_Text_RivalVictory:: @ 817313D
.string "{PLAYER}‥!\n"
.string "ふなよい してるのか!\p"
.string "もっと からだ\n"
.string "きたえた ほうが いいぜ!$"
-gUnknown_8173164:: @ 8173164
+SSAnne_2F_Corridor_Text_RivalPostBattle:: @ 8173164
.string "{RIVAL}: I heard there was a CUT\n"
.string "master on board.\p"
.string "But he was just a seasick old man!\p"
diff --git a/data/maps/SSAnne_2F_Room1/map.json b/data/maps/SSAnne_2F_Room1/map.json
index eacfe5c91..20e221a85 100644
--- a/data/maps/SSAnne_2F_Room1/map.json
+++ b/data/maps/SSAnne_2F_Room1/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room1_EventScript_160C97",
+ "script": "SSAnne_2F_Room1_EventScript_Gentleman",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_2F_Room1/scripts.inc b/data/maps/SSAnne_2F_Room1/scripts.inc
index 9748777c7..a31c914c1 100644
--- a/data/maps/SSAnne_2F_Room1/scripts.inc
+++ b/data/maps/SSAnne_2F_Room1/scripts.inc
@@ -1,10 +1,10 @@
SSAnne_2F_Room1_MapScripts:: @ 8160C96
.byte 0
-SSAnne_2F_Room1_EventScript_160C97:: @ 8160C97
+SSAnne_2F_Room1_EventScript_Gentleman:: @ 8160C97
lock
faceplayer
- message Text_173CE3
+ message SSAnne_2F_Room1_Text_SleepingMonLookedLikeThis
waitmessage
setvar VAR_0x8004, SPECIES_SNORLAX
special Special_SetSeenMon
diff --git a/data/maps/SSAnne_2F_Room1/text.inc b/data/maps/SSAnne_2F_Room1/text.inc
index 5a18af424..c75f4adb7 100644
--- a/data/maps/SSAnne_2F_Room1/text.inc
+++ b/data/maps/SSAnne_2F_Room1/text.inc
@@ -1,4 +1,4 @@
-Text_173CE3:: @ 8173CE3
+SSAnne_2F_Room1_Text_SleepingMonLookedLikeThis:: @ 8173CE3
.string "I've journeyed far and wide, but in\n"
.string "all my travels I've never seen\l"
.string "any POKéMON sleep like this one!\p"
diff --git a/data/maps/SSAnne_2F_Room2/map.json b/data/maps/SSAnne_2F_Room2/map.json
index e01f65eb5..df5cf4bc8 100644
--- a/data/maps/SSAnne_2F_Room2/map.json
+++ b/data/maps/SSAnne_2F_Room2/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_2F_Room2_EventScript_160CB1",
+ "script": "SSAnne_2F_Room2_EventScript_Dale",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "SSAnne_2F_Room2_EventScript_160CC8",
+ "script": "SSAnne_2F_Room2_EventScript_Brooks",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_2F_Room2/scripts.inc b/data/maps/SSAnne_2F_Room2/scripts.inc
index 6568baa0e..3968c2726 100644
--- a/data/maps/SSAnne_2F_Room2/scripts.inc
+++ b/data/maps/SSAnne_2F_Room2/scripts.inc
@@ -1,12 +1,12 @@
SSAnne_2F_Room2_MapScripts:: @ 8160CB0
.byte 0
-SSAnne_2F_Room2_EventScript_160CB1:: @ 8160CB1
- trainerbattle_single TRAINER_FISHERMAN_DALE, Text_173DDB, Text_173DF7
- msgbox gUnknown_8173E04, MSGBOX_AUTOCLOSE
+SSAnne_2F_Room2_EventScript_Dale:: @ 8160CB1
+ trainerbattle_single TRAINER_FISHERMAN_DALE, SSAnne_2F_Room2_Text_DaleIntro, SSAnne_2F_Room2_Text_DaleDefeat
+ msgbox SSAnne_2F_Room2_Text_DalePostBattle, MSGBOX_AUTOCLOSE
end
-SSAnne_2F_Room2_EventScript_160CC8:: @ 8160CC8
- trainerbattle_single TRAINER_GENTLEMAN_BROOKS, Text_173D63, Text_173D92
- msgbox gUnknown_8173DB6, MSGBOX_AUTOCLOSE
+SSAnne_2F_Room2_EventScript_Brooks:: @ 8160CC8
+ trainerbattle_single TRAINER_GENTLEMAN_BROOKS, SSAnne_2F_Room2_Text_BrooksIntro, SSAnne_2F_Room2_Text_BrooksDefeat
+ msgbox SSAnne_2F_Room2_Text_BrooksPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_2F_Room2/text.inc b/data/maps/SSAnne_2F_Room2/text.inc
index a931a8e47..e7fb8ea8a 100644
--- a/data/maps/SSAnne_2F_Room2/text.inc
+++ b/data/maps/SSAnne_2F_Room2/text.inc
@@ -1,22 +1,22 @@
-Text_173D63:: @ 8173D63
+SSAnne_2F_Room2_Text_BrooksIntro:: @ 8173D63
.string "Competing against the young keeps\n"
.string "me youthful.$"
-Text_173D92:: @ 8173D92
+SSAnne_2F_Room2_Text_BrooksDefeat:: @ 8173D92
.string "Good match!\n"
.string "Ah, I feel young again!$"
-gUnknown_8173DB6:: @ 8173DB6
+SSAnne_2F_Room2_Text_BrooksPostBattle:: @ 8173DB6
.string "Fifteen years ago, I would\n"
.string "have won!$"
-Text_173DDB:: @ 8173DDB
+SSAnne_2F_Room2_Text_DaleIntro:: @ 8173DDB
.string "Check out what I fished up!$"
-Text_173DF7:: @ 8173DF7
+SSAnne_2F_Room2_Text_DaleDefeat:: @ 8173DF7
.string "I'm all out!$"
-gUnknown_8173E04:: @ 8173E04
+SSAnne_2F_Room2_Text_DalePostBattle:: @ 8173E04
.string "Party?\p"
.string "The cruise ship's party should be\n"
.string "over by now.$"
diff --git a/data/maps/SSAnne_2F_Room3/map.json b/data/maps/SSAnne_2F_Room3/map.json
index 7cc2af8e7..8dbb1e408 100644
--- a/data/maps/SSAnne_2F_Room3/map.json
+++ b/data/maps/SSAnne_2F_Room3/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room3_EventScript_160CE0",
+ "script": "SSAnne_2F_Room3_EventScript_Gentleman",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room3_EventScript_160CE9",
+ "script": "SSAnne_2F_Room3_EventScript_OldMan",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_2F_Room3/scripts.inc b/data/maps/SSAnne_2F_Room3/scripts.inc
index 33924805b..8de8f47f3 100644
--- a/data/maps/SSAnne_2F_Room3/scripts.inc
+++ b/data/maps/SSAnne_2F_Room3/scripts.inc
@@ -1,10 +1,10 @@
SSAnne_2F_Room3_MapScripts:: @ 8160CDF
.byte 0
-SSAnne_2F_Room3_EventScript_160CE0:: @ 8160CE0
- msgbox gUnknown_8173E3A, MSGBOX_NPC
+SSAnne_2F_Room3_EventScript_Gentleman:: @ 8160CE0
+ msgbox SSAnne_2F_Room3_Text_SeenMonsFerryPeople, MSGBOX_NPC
end
-SSAnne_2F_Room3_EventScript_160CE9:: @ 8160CE9
- msgbox gUnknown_8173E7B, MSGBOX_NPC
+SSAnne_2F_Room3_EventScript_OldMan:: @ 8160CE9
+ msgbox SSAnne_2F_Room3_Text_SomeTreesCanBeCutDown, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_2F_Room3/text.inc b/data/maps/SSAnne_2F_Room3/text.inc
index c87c96ae0..680267ced 100644
--- a/data/maps/SSAnne_2F_Room3/text.inc
+++ b/data/maps/SSAnne_2F_Room3/text.inc
@@ -1,8 +1,8 @@
-gUnknown_8173E3A:: @ 8173E3A
+SSAnne_2F_Room3_Text_SeenMonsFerryPeople:: @ 8173E3A
.string "Ah, yes, I have seen some POKéMON\n"
.string "ferry people across the water!$"
-gUnknown_8173E7B:: @ 8173E7B
+SSAnne_2F_Room3_Text_SomeTreesCanBeCutDown:: @ 8173E7B
.string "Small trees can be chopped down\n"
.string "using the move CUT.\p"
.string "But remember this!\n"
diff --git a/data/maps/SSAnne_2F_Room4/map.json b/data/maps/SSAnne_2F_Room4/map.json
index 9b15b4707..dca8226dd 100644
--- a/data/maps/SSAnne_2F_Room4/map.json
+++ b/data/maps/SSAnne_2F_Room4/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_2F_Room4_EventScript_160CF3",
+ "script": "SSAnne_2F_Room4_EventScript_Lamar",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_2F_Room4_EventScript_160D0A",
+ "script": "SSAnne_2F_Room4_EventScript_Dawn",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_2F_Room4/scripts.inc b/data/maps/SSAnne_2F_Room4/scripts.inc
index 85ecb21bf..13694bcfb 100644
--- a/data/maps/SSAnne_2F_Room4/scripts.inc
+++ b/data/maps/SSAnne_2F_Room4/scripts.inc
@@ -1,12 +1,12 @@
SSAnne_2F_Room4_MapScripts:: @ 8160CF2
.byte 0
-SSAnne_2F_Room4_EventScript_160CF3:: @ 8160CF3
- trainerbattle_single TRAINER_GENTLEMAN_LAMAR, Text_173F07, Text_173F42
- msgbox gUnknown_8173F55, MSGBOX_AUTOCLOSE
+SSAnne_2F_Room4_EventScript_Lamar:: @ 8160CF3
+ trainerbattle_single TRAINER_GENTLEMAN_LAMAR, SSAnne_2F_Room4_Text_LamarIntro, SSAnne_2F_Room4_Text_LamarDefeat
+ msgbox SSAnne_2F_Room4_Text_LamarPostBattle, MSGBOX_AUTOCLOSE
end
-SSAnne_2F_Room4_EventScript_160D0A:: @ 8160D0A
- trainerbattle_single TRAINER_LASS_DAWN, Text_173F83, Text_173FAB
- msgbox gUnknown_8173FB9, MSGBOX_AUTOCLOSE
+SSAnne_2F_Room4_EventScript_Dawn:: @ 8160D0A
+ trainerbattle_single TRAINER_LASS_DAWN, SSAnne_2F_Room4_Text_DawnIntro, SSAnne_2F_Room4_Text_DawnDefeat
+ msgbox SSAnne_2F_Room4_Text_DawnPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_2F_Room4/text.inc b/data/maps/SSAnne_2F_Room4/text.inc
index 69e7a7b0d..9eb19a2b4 100644
--- a/data/maps/SSAnne_2F_Room4/text.inc
+++ b/data/maps/SSAnne_2F_Room4/text.inc
@@ -1,22 +1,22 @@
-Text_173F07:: @ 8173F07
+SSAnne_2F_Room4_Text_LamarIntro:: @ 8173F07
.string "Which do you find more worthy,\n"
.string "a strong or a rare POKéMON?$"
-Text_173F42:: @ 8173F42
+SSAnne_2F_Room4_Text_LamarDefeat:: @ 8173F42
.string "I must salute you!$"
-gUnknown_8173F55:: @ 8173F55
+SSAnne_2F_Room4_Text_LamarPostBattle:: @ 8173F55
.string "Personally, I prefer strong and\n"
.string "rare POKéMON.$"
-Text_173F83:: @ 8173F83
+SSAnne_2F_Room4_Text_DawnIntro:: @ 8173F83
.string "I don't believe I saw you at the\n"
.string "party?$"
-Text_173FAB:: @ 8173FAB
+SSAnne_2F_Room4_Text_DawnDefeat:: @ 8173FAB
.string "Take it easy!$"
-gUnknown_8173FB9:: @ 8173FB9
+SSAnne_2F_Room4_Text_DawnPostBattle:: @ 8173FB9
.string "Oh, I adore your strong POKéMON!\n"
.string "Oh, how I envy you for them!$"
diff --git a/data/maps/SSAnne_2F_Room5/map.json b/data/maps/SSAnne_2F_Room5/map.json
index 87a4b8adc..0821d13bd 100644
--- a/data/maps/SSAnne_2F_Room5/map.json
+++ b/data/maps/SSAnne_2F_Room5/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room5_EventScript_160D22",
+ "script": "SSAnne_2F_Room5_EventScript_Gentleman",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room5_EventScript_160D2B",
+ "script": "SSAnne_2F_Room5_EventScript_LittleBoy",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_2F_Room5/scripts.inc b/data/maps/SSAnne_2F_Room5/scripts.inc
index 9635b4bf7..2a02c6d91 100644
--- a/data/maps/SSAnne_2F_Room5/scripts.inc
+++ b/data/maps/SSAnne_2F_Room5/scripts.inc
@@ -1,10 +1,10 @@
SSAnne_2F_Room5_MapScripts:: @ 8160D21
.byte 0
-SSAnne_2F_Room5_EventScript_160D22:: @ 8160D22
- msgbox gUnknown_8173FF7, MSGBOX_NPC
+SSAnne_2F_Room5_EventScript_Gentleman:: @ 8160D22
+ msgbox SSAnne_2F_Room5_Text_HaveYouGoneToSafariZone, MSGBOX_NPC
end
-SSAnne_2F_Room5_EventScript_160D2B:: @ 8160D2B
- msgbox gUnknown_817404F, MSGBOX_NPC
+SSAnne_2F_Room5_EventScript_LittleBoy:: @ 8160D2B
+ msgbox SSAnne_2F_Room5_Text_WeThinkSafariZoneIsAwesome, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_2F_Room5/text.inc b/data/maps/SSAnne_2F_Room5/text.inc
index 75d44d3a5..7aa3e2ade 100644
--- a/data/maps/SSAnne_2F_Room5/text.inc
+++ b/data/maps/SSAnne_2F_Room5/text.inc
@@ -1,10 +1,10 @@
-gUnknown_8173FF7:: @ 8173FF7
+SSAnne_2F_Room5_Text_HaveYouGoneToSafariZone:: @ 8173FF7
.string "Have you gone to the SAFARI ZONE\n"
.string "in FUCHSIA CITY?\p"
.string "There are many kinds of rare\n"
.string "POKéMON.$"
-gUnknown_817404F:: @ 817404F
+SSAnne_2F_Room5_Text_WeThinkSafariZoneIsAwesome:: @ 817404F
.string "Me and my daddy think the SAFARI\n"
.string "ZONE is awesome!\l"
.string "I wish we could go there again.$"
diff --git a/data/maps/SSAnne_2F_Room6/map.json b/data/maps/SSAnne_2F_Room6/map.json
index 8e79519a0..56b6e6201 100644
--- a/data/maps/SSAnne_2F_Room6/map.json
+++ b/data/maps/SSAnne_2F_Room6/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room6_EventScript_160D3E",
+ "script": "SSAnne_2F_Room6_EventScript_Woman2",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_2F_Room6_EventScript_160D35",
+ "script": "SSAnne_2F_Room6_EventScript_Woman1",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_2F_Room6/scripts.inc b/data/maps/SSAnne_2F_Room6/scripts.inc
index e92a5501e..458e7c35b 100644
--- a/data/maps/SSAnne_2F_Room6/scripts.inc
+++ b/data/maps/SSAnne_2F_Room6/scripts.inc
@@ -1,10 +1,10 @@
SSAnne_2F_Room6_MapScripts:: @ 8160D34
.byte 0
-SSAnne_2F_Room6_EventScript_160D35:: @ 8160D35
- msgbox gUnknown_81740A1, MSGBOX_NPC
+SSAnne_2F_Room6_EventScript_Woman1:: @ 8160D35
+ msgbox SSAnne_2F_Room6_Text_CaptainIsAwfullySick, MSGBOX_NPC
end
-SSAnne_2F_Room6_EventScript_160D3E:: @ 8160D3E
- msgbox gUnknown_81740D6, MSGBOX_NPC
+SSAnne_2F_Room6_EventScript_Woman2:: @ 8160D3E
+ msgbox SSAnne_2F_Room6_Text_ManyPeopleGetSeasick, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_2F_Room6/text.inc b/data/maps/SSAnne_2F_Room6/text.inc
index 6f5b0abff..9820c1870 100644
--- a/data/maps/SSAnne_2F_Room6/text.inc
+++ b/data/maps/SSAnne_2F_Room6/text.inc
@@ -1,7 +1,7 @@
-gUnknown_81740A1:: @ 81740A1
+SSAnne_2F_Room6_Text_CaptainIsAwfullySick:: @ 81740A1
.string "The CAPTAIN said he's awfully sick.\n"
.string "He was all pale.$"
-gUnknown_81740D6:: @ 81740D6
+SSAnne_2F_Room6_Text_ManyPeopleGetSeasick:: @ 81740D6
.string "I hear many people get seasick.$"
diff --git a/data/maps/SSAnne_3F_Corridor/map.json b/data/maps/SSAnne_3F_Corridor/map.json
index 78aa22911..7c11905f1 100644
--- a/data/maps/SSAnne_3F_Corridor/map.json
+++ b/data/maps/SSAnne_3F_Corridor/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_3F_Corridor_EventScript_160A5E",
+ "script": "SSAnne_3F_Corridor_EventScript_Sailor",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_3F_Corridor/scripts.inc b/data/maps/SSAnne_3F_Corridor/scripts.inc
index 5e67f5532..549fe8f84 100644
--- a/data/maps/SSAnne_3F_Corridor/scripts.inc
+++ b/data/maps/SSAnne_3F_Corridor/scripts.inc
@@ -1,6 +1,6 @@
SSAnne_3F_Corridor_MapScripts:: @ 8160A5D
.byte 0
-SSAnne_3F_Corridor_EventScript_160A5E:: @ 8160A5E
- msgbox gUnknown_817320C, MSGBOX_NPC
+SSAnne_3F_Corridor_EventScript_Sailor:: @ 8160A5E
+ msgbox SSAnne_3F_Corridor_Text_CaptainTeachesCutToMons, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_3F_Corridor/text.inc b/data/maps/SSAnne_3F_Corridor/text.inc
index 7d4a71bb4..a76f43a11 100644
--- a/data/maps/SSAnne_3F_Corridor/text.inc
+++ b/data/maps/SSAnne_3F_Corridor/text.inc
@@ -1,4 +1,4 @@
-gUnknown_817320C:: @ 817320C
+SSAnne_3F_Corridor_Text_CaptainTeachesCutToMons:: @ 817320C
.string "Our CAPTAIN is a sword master.\n"
.string "He's awesome at using CUT.\p"
.string "They say he even teaches CUT\n"
diff --git a/data/maps/SSAnne_B1F_Room1/map.json b/data/maps/SSAnne_B1F_Room1/map.json
index a5fa829d4..4608e6c9a 100644
--- a/data/maps/SSAnne_B1F_Room1/map.json
+++ b/data/maps/SSAnne_B1F_Room1/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "SSAnne_B1F_Room1_EventScript_160D48",
+ "script": "SSAnne_B1F_Room1_EventScript_Barny",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "SSAnne_B1F_Room1_EventScript_160D5F",
+ "script": "SSAnne_B1F_Room1_EventScript_Phillip",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_B1F_Room1/scripts.inc b/data/maps/SSAnne_B1F_Room1/scripts.inc
index 44cb7d2d1..eb35be89e 100644
--- a/data/maps/SSAnne_B1F_Room1/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room1/scripts.inc
@@ -1,12 +1,12 @@
SSAnne_B1F_Room1_MapScripts:: @ 8160D47
.byte 0
-SSAnne_B1F_Room1_EventScript_160D48:: @ 8160D48
- trainerbattle_single TRAINER_FISHERMAN_BARNY, Text_174177, Text_1741EF
- msgbox gUnknown_817420E, MSGBOX_AUTOCLOSE
+SSAnne_B1F_Room1_EventScript_Barny:: @ 8160D48
+ trainerbattle_single TRAINER_FISHERMAN_BARNY, SSAnne_B1F_Room1_Text_BarnyIntro, SSAnne_B1F_Room1_Text_BarnyDefeat
+ msgbox SSAnne_B1F_Room1_Text_BarnyPostBattle, MSGBOX_AUTOCLOSE
end
-SSAnne_B1F_Room1_EventScript_160D5F:: @ 8160D5F
- trainerbattle_single TRAINER_SAILOR_PHILLIP, Text_1740F6, Text_174123
- msgbox gUnknown_817413A, MSGBOX_AUTOCLOSE
+SSAnne_B1F_Room1_EventScript_Phillip:: @ 8160D5F
+ trainerbattle_single TRAINER_SAILOR_PHILLIP, SSAnne_B1F_Room1_Text_PhillipIntro, SSAnne_B1F_Room1_Text_PhillipDefeat
+ msgbox SSAnne_B1F_Room1_Text_PhillipPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_B1F_Room1/text.inc b/data/maps/SSAnne_B1F_Room1/text.inc
index 2802e4a84..bdd4b753c 100644
--- a/data/maps/SSAnne_B1F_Room1/text.inc
+++ b/data/maps/SSAnne_B1F_Room1/text.inc
@@ -1,26 +1,26 @@
-Text_1740F6:: @ 81740F6
+SSAnne_B1F_Room1_Text_PhillipIntro:: @ 81740F6
.string "Matey, you're walking the plank if\n"
.string "you lose!$"
-Text_174123:: @ 8174123
+SSAnne_B1F_Room1_Text_PhillipDefeat:: @ 8174123
.string "Argh!\n"
.string "Beaten by a kid!$"
-gUnknown_817413A:: @ 817413A
+SSAnne_B1F_Room1_Text_PhillipPostBattle:: @ 817413A
.string "When we're out at sea, jellyfish\n"
.string "POKéMON sometimes drift by.$"
-Text_174177:: @ 8174177
+SSAnne_B1F_Room1_Text_BarnyIntro:: @ 8174177
.string "Hello, stranger!\p"
.string "I can't tell if you're from the seas\n"
.string "or mountains, but stop and chat.\p"
.string "All my POKéMON are from the sea.$"
-Text_1741EF:: @ 81741EF
+SSAnne_B1F_Room1_Text_BarnyDefeat:: @ 81741EF
.string "Darn!\n"
.string "I let that one get away!$"
-gUnknown_817420E:: @ 817420E
+SSAnne_B1F_Room1_Text_BarnyPostBattle:: @ 817420E
.string "I was going to make you my\n"
.string "assistant, too!$"
diff --git a/data/maps/SSAnne_B1F_Room2/map.json b/data/maps/SSAnne_B1F_Room2/map.json
index 462ce7098..31c7d6eb7 100644
--- a/data/maps/SSAnne_B1F_Room2/map.json
+++ b/data/maps/SSAnne_B1F_Room2/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "SSAnne_B1F_Room2_EventScript_160D77",
+ "script": "SSAnne_B1F_Room2_EventScript_Huey",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_B1F_Room2/scripts.inc b/data/maps/SSAnne_B1F_Room2/scripts.inc
index db9f37fe3..011950863 100644
--- a/data/maps/SSAnne_B1F_Room2/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room2/scripts.inc
@@ -1,7 +1,7 @@
SSAnne_B1F_Room2_MapScripts:: @ 8160D76
.byte 0
-SSAnne_B1F_Room2_EventScript_160D77:: @ 8160D77
- trainerbattle_single TRAINER_SAILOR_HUEY, Text_174239, Text_17425C
- msgbox gUnknown_8174272, MSGBOX_AUTOCLOSE
+SSAnne_B1F_Room2_EventScript_Huey:: @ 8160D77
+ trainerbattle_single TRAINER_SAILOR_HUEY, SSAnne_B1F_Room2_Text_HueyIntro, SSAnne_B1F_Room2_Text_HueyDefeat
+ msgbox SSAnne_B1F_Room2_Text_HueyPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_B1F_Room2/text.inc b/data/maps/SSAnne_B1F_Room2/text.inc
index df94d6351..852bf55b1 100644
--- a/data/maps/SSAnne_B1F_Room2/text.inc
+++ b/data/maps/SSAnne_B1F_Room2/text.inc
@@ -1,10 +1,10 @@
-Text_174239:: @ 8174239
+SSAnne_B1F_Room2_Text_HueyIntro:: @ 8174239
.string "Even us sailors have POKéMON, too!$"
-Text_17425C:: @ 817425C
+SSAnne_B1F_Room2_Text_HueyDefeat:: @ 817425C
.string "Okay, you're not bad.$"
-gUnknown_8174272:: @ 8174272
+SSAnne_B1F_Room2_Text_HueyPostBattle:: @ 8174272
.string "We caught all our POKéMON while\n"
.string "we were out at sea.$"
diff --git a/data/maps/SSAnne_B1F_Room3/map.json b/data/maps/SSAnne_B1F_Room3/map.json
index 78786691b..70237229c 100644
--- a/data/maps/SSAnne_B1F_Room3/map.json
+++ b/data/maps/SSAnne_B1F_Room3/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_B1F_Room3_EventScript_160D8F",
+ "script": "SSAnne_B1F_Room3_EventScript_Dylan",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_B1F_Room3/scripts.inc b/data/maps/SSAnne_B1F_Room3/scripts.inc
index df90031ac..9d0ffc95e 100644
--- a/data/maps/SSAnne_B1F_Room3/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room3/scripts.inc
@@ -1,7 +1,7 @@
SSAnne_B1F_Room3_MapScripts:: @ 8160D8E
.byte 0
-SSAnne_B1F_Room3_EventScript_160D8F:: @ 8160D8F
- trainerbattle_single TRAINER_SAILOR_DYLAN, Text_1742A6, Text_1742C3
- msgbox gUnknown_81742D2, MSGBOX_AUTOCLOSE
+SSAnne_B1F_Room3_EventScript_Dylan:: @ 8160D8F
+ trainerbattle_single TRAINER_SAILOR_DYLAN, SSAnne_B1F_Room3_Text_DylanIntro, SSAnne_B1F_Room3_Text_DylanDefeat
+ msgbox SSAnne_B1F_Room3_Text_DylanPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_B1F_Room3/text.inc b/data/maps/SSAnne_B1F_Room3/text.inc
index f74b96052..cec2b5ec6 100644
--- a/data/maps/SSAnne_B1F_Room3/text.inc
+++ b/data/maps/SSAnne_B1F_Room3/text.inc
@@ -1,11 +1,11 @@
-Text_1742A6:: @ 81742A6
+SSAnne_B1F_Room3_Text_DylanIntro:: @ 81742A6
.string "I like feisty kids like you!$"
-Text_1742C3:: @ 81742C3
+SSAnne_B1F_Room3_Text_DylanDefeat:: @ 81742C3
.string "Argh!\n"
.string "Lost it!$"
-gUnknown_81742D2:: @ 81742D2
+SSAnne_B1F_Room3_Text_DylanPostBattle:: @ 81742D2
.string "Sea POKéMON live in deep water.\n"
.string "You'll need a ROD to fish them up!$"
diff --git a/data/maps/SSAnne_B1F_Room4/map.json b/data/maps/SSAnne_B1F_Room4/map.json
index ff6030afb..8222e4dbc 100644
--- a/data/maps/SSAnne_B1F_Room4/map.json
+++ b/data/maps/SSAnne_B1F_Room4/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "SSAnne_B1F_Room4_EventScript_160DBE",
+ "script": "SSAnne_B1F_Room4_EventScript_Duncan",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "SSAnne_B1F_Room4_EventScript_160DA7",
+ "script": "SSAnne_B1F_Room4_EventScript_Leonard",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_B1F_Room4/scripts.inc b/data/maps/SSAnne_B1F_Room4/scripts.inc
index c84b55b07..66b928b4c 100644
--- a/data/maps/SSAnne_B1F_Room4/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room4/scripts.inc
@@ -1,12 +1,12 @@
SSAnne_B1F_Room4_MapScripts:: @ 8160DA6
.byte 0
-SSAnne_B1F_Room4_EventScript_160DA7:: @ 8160DA7
- trainerbattle_single TRAINER_SAILOR_LEONARD, Text_174315, Text_174348
- msgbox gUnknown_8174362, MSGBOX_AUTOCLOSE
+SSAnne_B1F_Room4_EventScript_Leonard:: @ 8160DA7
+ trainerbattle_single TRAINER_SAILOR_LEONARD, SSAnne_B1F_Room4_Text_LeonardIntro, SSAnne_B1F_Room4_Text_LeonardDefeat
+ msgbox SSAnne_B1F_Room4_Text_LeonardPostBattle, MSGBOX_AUTOCLOSE
end
-SSAnne_B1F_Room4_EventScript_160DBE:: @ 8160DBE
- trainerbattle_single TRAINER_SAILOR_DUNCAN, Text_174385, Text_1743B3
- msgbox gUnknown_81743C8, MSGBOX_AUTOCLOSE
+SSAnne_B1F_Room4_EventScript_Duncan:: @ 8160DBE
+ trainerbattle_single TRAINER_SAILOR_DUNCAN, SSAnne_B1F_Room4_Text_DuncanIntro, SSAnne_B1F_Room4_Text_DuncanDefeat
+ msgbox SSAnne_B1F_Room4_Text_DuncanPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_B1F_Room4/text.inc b/data/maps/SSAnne_B1F_Room4/text.inc
index d2f19f49f..fa6d7eb2e 100644
--- a/data/maps/SSAnne_B1F_Room4/text.inc
+++ b/data/maps/SSAnne_B1F_Room4/text.inc
@@ -1,23 +1,23 @@
-Text_174315:: @ 8174315
+SSAnne_B1F_Room4_Text_LeonardIntro:: @ 8174315
.string "You know what they say about\n"
.string "sailors and battling!$"
-Text_174348:: @ 8174348
+SSAnne_B1F_Room4_Text_LeonardDefeat:: @ 8174348
.string "Right!\n"
.string "Good battle, mate!$"
-gUnknown_8174362:: @ 8174362
+SSAnne_B1F_Room4_Text_LeonardPostBattle:: @ 8174362
.string "Hahaha!\n"
.string "Want to be a sailor, mate?$"
-Text_174385:: @ 8174385
+SSAnne_B1F_Room4_Text_DuncanIntro:: @ 8174385
.string "Come on, then!\n"
.string "My sailor's pride is at stake!$"
-Text_1743B3:: @ 81743B3
+SSAnne_B1F_Room4_Text_DuncanDefeat:: @ 81743B3
.string "Your spirit sank me!$"
-gUnknown_81743C8:: @ 81743C8
+SSAnne_B1F_Room4_Text_DuncanPostBattle:: @ 81743C8
.string "Did you see the FISHING GURU in\n"
.string "VERMILION CITY?$"
diff --git a/data/maps/SSAnne_B1F_Room5/map.json b/data/maps/SSAnne_B1F_Room5/map.json
index 8896c897f..5ed5383ea 100644
--- a/data/maps/SSAnne_B1F_Room5/map.json
+++ b/data/maps/SSAnne_B1F_Room5/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_B1F_Room5_EventScript_160DD6",
+ "script": "SSAnne_B1F_Room5_EventScript_Boy",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_B1F_Room5_EventScript_160DDF",
+ "script": "SSAnne_B1F_Room5_EventScript_Machoke",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_B1F_Room5/scripts.inc b/data/maps/SSAnne_B1F_Room5/scripts.inc
index 37d26661b..320f233fd 100644
--- a/data/maps/SSAnne_B1F_Room5/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room5/scripts.inc
@@ -1,16 +1,16 @@
SSAnne_B1F_Room5_MapScripts:: @ 8160DD5
.byte 0
-SSAnne_B1F_Room5_EventScript_160DD6:: @ 8160DD6
- msgbox gUnknown_81743F8, MSGBOX_NPC
+SSAnne_B1F_Room5_EventScript_Boy:: @ 8160DD6
+ msgbox SSAnne_B1F_Room5_Text_MachokeHasStrengthToMoveRocks, MSGBOX_NPC
end
-SSAnne_B1F_Room5_EventScript_160DDF:: @ 8160DDF
+SSAnne_B1F_Room5_EventScript_Machoke:: @ 8160DDF
lock
faceplayer
waitse
playmoncry SPECIES_MACHOKE, 0
- msgbox gUnknown_8174444
+ msgbox SSAnne_B1F_Room5_Text_Machoke
waitmoncry
release
end
diff --git a/data/maps/SSAnne_B1F_Room5/text.inc b/data/maps/SSAnne_B1F_Room5/text.inc
index ac30dbe95..3126f97e3 100644
--- a/data/maps/SSAnne_B1F_Room5/text.inc
+++ b/data/maps/SSAnne_B1F_Room5/text.inc
@@ -1,8 +1,8 @@
-gUnknown_81743F8:: @ 81743F8
+SSAnne_B1F_Room5_Text_MachokeHasStrengthToMoveRocks:: @ 81743F8
.string "My buddy MACHOKE is super strong!\p"
.string "He has enough STRENGTH to move\n"
.string "big rocks!$"
-gUnknown_8174444:: @ 8174444
+SSAnne_B1F_Room5_Text_Machoke:: @ 8174444
.string "MACHOKE: Gwoh! Goggoh!$"
diff --git a/data/maps/SSAnne_CaptainsOffice/map.json b/data/maps/SSAnne_CaptainsOffice/map.json
index 8ec955624..0f79b1014 100644
--- a/data/maps/SSAnne_CaptainsOffice/map.json
+++ b/data/maps/SSAnne_CaptainsOffice/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_CaptainsOffice_EventScript_160B3A",
+ "script": "SSAnne_CaptainsOffice_EventScript_Captain",
"flag": "0"
}
],
@@ -43,21 +43,21 @@
"x": 2,
"y": 4,
"elevation": 0,
- "script": "SSAnne_CaptainsOffice_EventScript_160BD2"
+ "script": "SSAnne_CaptainsOffice_EventScript_Book"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 3,
"elevation": 0,
- "script": "SSAnne_CaptainsOffice_EventScript_160BC9"
+ "script": "SSAnne_CaptainsOffice_EventScript_TrashCan"
},
{
"type": "bg_event_type_0",
"x": 2,
"y": 3,
"elevation": 0,
- "script": "SSAnne_CaptainsOffice_EventScript_160BD2"
+ "script": "SSAnne_CaptainsOffice_EventScript_Book"
}
]
}
diff --git a/data/maps/SSAnne_CaptainsOffice/scripts.inc b/data/maps/SSAnne_CaptainsOffice/scripts.inc
index 7171cae6d..d5d976e21 100644
--- a/data/maps/SSAnne_CaptainsOffice/scripts.inc
+++ b/data/maps/SSAnne_CaptainsOffice/scripts.inc
@@ -1,12 +1,12 @@
SSAnne_CaptainsOffice_MapScripts:: @ 8160B39
.byte 0
-SSAnne_CaptainsOffice_EventScript_160B3A:: @ 8160B3A
+SSAnne_CaptainsOffice_EventScript_Captain:: @ 8160B3A
lock
- goto_if_set FLAG_GOT_HM01, EventScript_160BB5
- msgbox gUnknown_8173646
+ goto_if_set FLAG_GOT_HM01, SSAnne_CaptainsOffice_EventScript_AlreadyGotCut
+ msgbox SSAnne_CaptainsOffice_Text_CaptainIFeelSeasick
textcolor 3
- message Text_173676
+ message SSAnne_CaptainsOffice_Text_RubbedCaptainsBack
waitmessage
playfanfare MUS_ME_ASA
waitfanfare
@@ -14,33 +14,34 @@ SSAnne_CaptainsOffice_EventScript_160B3A:: @ 8160B3A
delay 50
applymovement 1, Movement_FacePlayer
waitmovement 0
- msgbox gUnknown_81736A6
- giveitem_msg gUnknown_81737AF, ITEM_HM01, 1, MUS_FAN5
- msgbox gUnknown_81737D2
+ msgbox SSAnne_CaptainsOffice_Text_ThankYouHaveHMForCut
+ giveitem_msg SSAnne_CaptainsOffice_Text_ObtainedHM01FromCaptain, ITEM_HM01, 1, MUS_FAN5
+ msgbox SSAnne_CaptainsOffice_Text_ExplainCut
setflag FLAG_GOT_HM01
setvar VAR_MAP_SCENE_VERMILION_CITY, 1
release
end
-EventScript_160BA0:: @ 8160BA0
- msgbox gUnknown_81738C3
+@ Unused
+SSAnne_CaptainsOffice_EventScript_NoRoomForCut:: @ 8160BA0
+ msgbox SSAnne_CaptainsOffice_Text_YouHaveNoRoomForThis
closemessage
applymovement 1, Movement_FaceOriginalDirection
waitmovement 0
release
end
-EventScript_160BB5:: @ 8160BB5
+SSAnne_CaptainsOffice_EventScript_AlreadyGotCut:: @ 8160BB5
applymovement 1, Movement_FacePlayer
waitmovement 0
- msgbox gUnknown_8173831
+ msgbox SSAnne_CaptainsOffice_Text_SSAnneWillSetSailSoon
release
end
-SSAnne_CaptainsOffice_EventScript_160BC9:: @ 8160BC9
- msgbox gUnknown_81738E6, MSGBOX_SIGN
+SSAnne_CaptainsOffice_EventScript_TrashCan:: @ 8160BC9
+ msgbox SSAnne_CaptainsOffice_Text_YuckShouldntHaveLooked, MSGBOX_SIGN
end
-SSAnne_CaptainsOffice_EventScript_160BD2:: @ 8160BD2
- msgbox gUnknown_8173903, MSGBOX_SIGN
+SSAnne_CaptainsOffice_EventScript_Book:: @ 8160BD2
+ msgbox SSAnne_CaptainsOffice_Text_HowToConquerSeasickness, MSGBOX_SIGN
end
diff --git a/data/maps/SSAnne_CaptainsOffice/text.inc b/data/maps/SSAnne_CaptainsOffice/text.inc
index eab68b9bd..f4860b998 100644
--- a/data/maps/SSAnne_CaptainsOffice/text.inc
+++ b/data/maps/SSAnne_CaptainsOffice/text.inc
@@ -1,15 +1,15 @@
-gUnknown_8173646:: @ 8173646
+SSAnne_CaptainsOffice_Text_CaptainIFeelSeasick:: @ 8173646
.string "CAPTAIN: Ooargh…\n"
.string "I feel hideous…\l"
.string "Urrp! Seasick…$"
-Text_173676:: @ 8173676
+SSAnne_CaptainsOffice_Text_RubbedCaptainsBack:: @ 8173676
.string "{PLAYER} rubbed the CAPTAIN's\n"
.string "back!\p"
.string "Rub-rub…\n"
.string "Rub-rub…$"
-gUnknown_81736A6:: @ 81736A6
+SSAnne_CaptainsOffice_Text_ThankYouHaveHMForCut:: @ 81736A6
.string "CAPTAIN: Whew! Thank you!\n"
.string "I'm feeling much better now.\p"
.string "You want to see my hidden CUT\n"
@@ -21,17 +21,17 @@ gUnknown_81736A6:: @ 81736A6
.string "Teach CUT to your POKéMON, and\n"
.string "you can see it CUT anytime!$"
-gUnknown_81737AF:: @ 81737AF
+SSAnne_CaptainsOffice_Text_ObtainedHM01FromCaptain:: @ 81737AF
.string "{PLAYER} obtained HM01\n"
.string "from the CAPTAIN!$"
-gUnknown_81737D2:: @ 81737D2
+SSAnne_CaptainsOffice_Text_ExplainCut:: @ 81737D2
.string "Using CUT, you can chop down\n"
.string "small trees.\p"
.string "Why not try it with the trees\n"
.string "around VERMILION CITY?$"
-gUnknown_8173831:: @ 8173831
+SSAnne_CaptainsOffice_Text_SSAnneWillSetSailSoon:: @ 8173831
.string "CAPTAIN: …Whew!\p"
.string "Now that I'm not sick anymore,\n"
.string "I guess it's time.\p"
@@ -39,15 +39,15 @@ gUnknown_8173831:: @ 8173831
.string "Farewell, until our return to\n"
.string "VERMILION CITY!$"
-gUnknown_81738C3:: @ 81738C3
+SSAnne_CaptainsOffice_Text_YouHaveNoRoomForThis:: @ 81738C3
.string "Oh, no!\n"
.string "You have no room for this!$"
-gUnknown_81738E6:: @ 81738E6
+SSAnne_CaptainsOffice_Text_YuckShouldntHaveLooked:: @ 81738E6
.string "Yuck!\n"
.string "Shouldn't have looked!$"
-gUnknown_8173903:: @ 8173903
+SSAnne_CaptainsOffice_Text_HowToConquerSeasickness:: @ 8173903
.string "How to Conquer Seasickness…\n"
.string "The CAPTAIN's reading this!$"
diff --git a/data/maps/SSAnne_Deck/map.json b/data/maps/SSAnne_Deck/map.json
index 43fcf5c4d..617a770b3 100644
--- a/data/maps/SSAnne_Deck/map.json
+++ b/data/maps/SSAnne_Deck/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "SSAnne_Deck_EventScript_160A9B",
+ "script": "SSAnne_Deck_EventScript_Trevor",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Deck_EventScript_160A72",
+ "script": "SSAnne_Deck_EventScript_BaldingMan",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Deck_EventScript_160A7B",
+ "script": "SSAnne_Deck_EventScript_Sailor",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "SSAnne_Deck_EventScript_160A84",
+ "script": "SSAnne_Deck_EventScript_Edmond",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Deck_EventScript_160A69",
+ "script": "SSAnne_Deck_EventScript_Youngster",
"flag": "0"
}
],
diff --git a/data/maps/SSAnne_Deck/scripts.inc b/data/maps/SSAnne_Deck/scripts.inc
index d61b65d87..feee8040c 100644
--- a/data/maps/SSAnne_Deck/scripts.inc
+++ b/data/maps/SSAnne_Deck/scripts.inc
@@ -1,24 +1,24 @@
SSAnne_Deck_MapScripts:: @ 8160A68
.byte 0
-SSAnne_Deck_EventScript_160A69:: @ 8160A69
- msgbox gUnknown_817326F, MSGBOX_NPC
+SSAnne_Deck_EventScript_Youngster:: @ 8160A69
+ msgbox SSAnne_Deck_Text_ShipDepartingSoon, MSGBOX_NPC
end
-SSAnne_Deck_EventScript_160A72:: @ 8160A72
- msgbox gUnknown_81732C6, MSGBOX_NPC
+SSAnne_Deck_EventScript_BaldingMan:: @ 8160A72
+ msgbox SSAnne_Deck_Text_FeelSeasick, MSGBOX_NPC
end
-SSAnne_Deck_EventScript_160A7B:: @ 8160A7B
- msgbox gUnknown_81732A2, MSGBOX_NPC
+SSAnne_Deck_EventScript_Sailor:: @ 8160A7B
+ msgbox SSAnne_Deck_Text_ScrubbingDecksHardWork, MSGBOX_NPC
end
-SSAnne_Deck_EventScript_160A84:: @ 8160A84
- trainerbattle_single TRAINER_SAILOR_EDMOND, Text_173308, Text_17332B
- msgbox gUnknown_817333E, MSGBOX_AUTOCLOSE
+SSAnne_Deck_EventScript_Edmond:: @ 8160A84
+ trainerbattle_single TRAINER_SAILOR_EDMOND, SSAnne_Deck_Text_EdmondIntro, SSAnne_Deck_Text_EdmondDefeat
+ msgbox SSAnne_Deck_Text_EdmondPostBattle, MSGBOX_AUTOCLOSE
end
-SSAnne_Deck_EventScript_160A9B:: @ 8160A9B
- trainerbattle_single TRAINER_SAILOR_TREVOR, Text_173382, Text_1733A0
- msgbox gUnknown_81733B5, MSGBOX_AUTOCLOSE
+SSAnne_Deck_EventScript_Trevor:: @ 8160A9B
+ trainerbattle_single TRAINER_SAILOR_TREVOR, SSAnne_Deck_Text_TrevorIntro, SSAnne_Deck_Text_TrevorDefeat
+ msgbox SSAnne_Deck_Text_TrevorPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/SSAnne_Deck/text.inc b/data/maps/SSAnne_Deck/text.inc
index 08be9fc7d..73c4f42e5 100644
--- a/data/maps/SSAnne_Deck/text.inc
+++ b/data/maps/SSAnne_Deck/text.inc
@@ -1,35 +1,35 @@
-gUnknown_817326F:: @ 817326F
+SSAnne_Deck_Text_ShipDepartingSoon:: @ 817326F
.string "The party's over.\n"
.string "The ship will be departing soon.$"
-gUnknown_81732A2:: @ 81732A2
+SSAnne_Deck_Text_ScrubbingDecksHardWork:: @ 81732A2
.string "Whew!\n"
.string "Scrubbing decks is hard work!$"
-gUnknown_81732C6:: @ 81732C6
+SSAnne_Deck_Text_FeelSeasick:: @ 81732C6
.string "Urf… I feel ill…\p"
.string "I got seasick, so I stepped out to\n"
.string "get some air…$"
-Text_173308:: @ 8173308
+SSAnne_Deck_Text_EdmondIntro:: @ 8173308
.string "Hey, matey!\p"
.string "Let's do a little jig!$"
-Text_17332B:: @ 817332B
+SSAnne_Deck_Text_EdmondDefeat:: @ 817332B
.string "You're impressive!$"
-gUnknown_817333E:: @ 817333E
+SSAnne_Deck_Text_EdmondPostBattle:: @ 817333E
.string "How many kinds of POKéMON do you\n"
.string "think there are in this big world?$"
-Text_173382:: @ 8173382
+SSAnne_Deck_Text_TrevorIntro:: @ 8173382
.string "Ahoy, there!\n"
.string "Are you seasick?$"
-Text_1733A0:: @ 81733A0
+SSAnne_Deck_Text_TrevorDefeat:: @ 81733A0
.string "I was just careless!$"
-gUnknown_81733B5:: @ 81733B5
+SSAnne_Deck_Text_TrevorPostBattle:: @ 81733B5
.string "My pa said there are 100 kinds of\n"
.string "POKéMON. I think there are more.$"
diff --git a/data/maps/SSAnne_Exterior/scripts.inc b/data/maps/SSAnne_Exterior/scripts.inc
index a8ad24173..416c98cd6 100644
--- a/data/maps/SSAnne_Exterior/scripts.inc
+++ b/data/maps/SSAnne_Exterior/scripts.inc
@@ -8,22 +8,22 @@ SSAnne_Exterior_OnTransition:: @ 816084B
end
SSAnne_Exterior_OnFrame:: @ 816084F
- map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 1, SSAnne_Exterior_160859
+ map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 1, SSAnne_Exterior_ExitSSAnne
.2byte 0
-SSAnne_Exterior_160859:: @ 8160859
+SSAnne_Exterior_ExitSSAnne:: @ 8160859
lockall
getplayerxy VAR_0x8004, VAR_0x8005
compare VAR_0x8005, 6
- call_if_le EventScript_1608A1
+ call_if_le SSAnne_Exterior_WalkDown
compare VAR_0x8005, 7
- call_if_ge EventScript_1608AC
+ call_if_ge SSAnne_Exterior_WalkInPlaceDown
fadenewbgm MUS_NAMINORI
delay 50
special Special_SSAnneDepartureCutscene
waitstate
removeobject 1
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1608B7
+ applymovement OBJ_EVENT_ID_PLAYER, SSAnne_Exterior_Movement_Exit
waitmovement 0
setvar VAR_MAP_SCENE_VERMILION_CITY, 2
setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 0
@@ -32,17 +32,17 @@ SSAnne_Exterior_160859:: @ 8160859
releaseall
end
-EventScript_1608A1:: @ 81608A1
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1608C1
+SSAnne_Exterior_WalkDown:: @ 81608A1
+ applymovement OBJ_EVENT_ID_PLAYER, SSAnne_Exterior_Movement_WalkDown
waitmovement 0
return
-EventScript_1608AC:: @ 81608AC
+SSAnne_Exterior_WalkInPlaceDown:: @ 81608AC
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown
waitmovement 0
return
-Movement_1608B7:: @ 81608B7
+SSAnne_Exterior_Movement_Exit:: @ 81608B7
walk_up
walk_up
walk_up
@@ -54,7 +54,7 @@ Movement_1608B7:: @ 81608B7
walk_up
step_end
-Movement_1608C1:: @ 81608C1
+SSAnne_Exterior_Movement_WalkDown:: @ 81608C1
walk_down
walk_down
walk_down
diff --git a/data/maps/SSAnne_Kitchen/map.json b/data/maps/SSAnne_Kitchen/map.json
index 25cc15fad..579f9e9b0 100644
--- a/data/maps/SSAnne_Kitchen/map.json
+++ b/data/maps/SSAnne_Kitchen/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160AB3",
+ "script": "SSAnne_Kitchen_EventScript_Chef1",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160ABC",
+ "script": "SSAnne_Kitchen_EventScript_Chef2",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160AC5",
+ "script": "SSAnne_Kitchen_EventScript_Chef3",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160ACE",
+ "script": "SSAnne_Kitchen_EventScript_Chef4",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160B1E",
+ "script": "SSAnne_Kitchen_EventScript_Chef5",
"flag": "0"
},
{
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160B27",
+ "script": "SSAnne_Kitchen_EventScript_Chef6",
"flag": "0"
},
{
@@ -101,7 +101,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SSAnne_Kitchen_EventScript_160B30",
+ "script": "SSAnne_Kitchen_EventScript_Chef7",
"flag": "0"
},
{
diff --git a/data/maps/SSAnne_Kitchen/scripts.inc b/data/maps/SSAnne_Kitchen/scripts.inc
index 565efd607..2f3d0ee06 100644
--- a/data/maps/SSAnne_Kitchen/scripts.inc
+++ b/data/maps/SSAnne_Kitchen/scripts.inc
@@ -1,53 +1,53 @@
SSAnne_Kitchen_MapScripts:: @ 8160AB2
.byte 0
-SSAnne_Kitchen_EventScript_160AB3:: @ 8160AB3
- msgbox gUnknown_81733F8, MSGBOX_NPC
+SSAnne_Kitchen_EventScript_Chef1:: @ 8160AB3
+ msgbox SSAnne_Kitchen_Text_BusyOutOfTheWay, MSGBOX_NPC
end
-SSAnne_Kitchen_EventScript_160ABC:: @ 8160ABC
- msgbox gUnknown_8173429, MSGBOX_NPC
+SSAnne_Kitchen_EventScript_Chef2:: @ 8160ABC
+ msgbox SSAnne_Kitchen_Text_SawOddBerryInTrash, MSGBOX_NPC
end
-SSAnne_Kitchen_EventScript_160AC5:: @ 8160AC5
- msgbox gUnknown_8173462, MSGBOX_NPC
+SSAnne_Kitchen_EventScript_Chef3:: @ 8160AC5
+ msgbox SSAnne_Kitchen_Text_SoBusyImDizzy, MSGBOX_NPC
end
-SSAnne_Kitchen_EventScript_160ACE:: @ 8160ACE
+SSAnne_Kitchen_EventScript_Chef4:: @ 8160ACE
lock
faceplayer
- msgbox gUnknown_8173570
+ msgbox SSAnne_Kitchen_Text_IAmLeChefMainCourseIs
random 3
copyvar VAR_0x8008, VAR_RESULT
compare VAR_0x8008, 0
- call_if_eq EventScript_160B03
+ call_if_eq SSAnne_Kitchen_EventScript_SalmonDuSalad
compare VAR_0x8008, 1
- call_if_eq EventScript_160B0C
+ call_if_eq SSAnne_Kitchen_EventScript_EelsAuBarbecue
compare VAR_0x8008, 2
- call_if_eq EventScript_160B15
+ call_if_eq SSAnne_Kitchen_EventScript_PrimeBeefsteak
release
end
-EventScript_160B03:: @ 8160B03
- msgbox gUnknown_817359F
+SSAnne_Kitchen_EventScript_SalmonDuSalad:: @ 8160B03
+ msgbox SSAnne_Kitchen_Text_SalmonDuSalad
return
-EventScript_160B0C:: @ 8160B0C
- msgbox gUnknown_81735DF
+SSAnne_Kitchen_EventScript_EelsAuBarbecue:: @ 8160B0C
+ msgbox SSAnne_Kitchen_Text_EelsAuBarbecue
return
-EventScript_160B15:: @ 8160B15
- msgbox gUnknown_8173611
+SSAnne_Kitchen_EventScript_PrimeBeefsteak:: @ 8160B15
+ msgbox SSAnne_Kitchen_Text_PrimeBeefsteak
return
-SSAnne_Kitchen_EventScript_160B1E:: @ 8160B1E
- msgbox gUnknown_81734A0, MSGBOX_NPC
+SSAnne_Kitchen_EventScript_Chef5:: @ 8160B1E
+ msgbox SSAnne_Kitchen_Text_PeelSpudsEveryDay, MSGBOX_NPC
end
-SSAnne_Kitchen_EventScript_160B27:: @ 8160B27
- msgbox gUnknown_81734D3, MSGBOX_NPC
+SSAnne_Kitchen_EventScript_Chef6:: @ 8160B27
+ msgbox SSAnne_Kitchen_Text_HearAboutSnorlaxItsAGlutton, MSGBOX_NPC
end
-SSAnne_Kitchen_EventScript_160B30:: @ 8160B30
- msgbox gUnknown_817353E, MSGBOX_NPC
+SSAnne_Kitchen_EventScript_Chef7:: @ 8160B30
+ msgbox SSAnne_Kitchen_Text_OnlyGetToPeelOnions, MSGBOX_NPC
end
diff --git a/data/maps/SSAnne_Kitchen/text.inc b/data/maps/SSAnne_Kitchen/text.inc
index edd115076..24146ac8a 100644
--- a/data/maps/SSAnne_Kitchen/text.inc
+++ b/data/maps/SSAnne_Kitchen/text.inc
@@ -1,47 +1,47 @@
-gUnknown_81733F8:: @ 81733F8
+SSAnne_Kitchen_Text_BusyOutOfTheWay:: @ 81733F8
.string "You, mon petit!\n"
.string "We're busy here!\l"
.string "Out of the way!$"
-gUnknown_8173429:: @ 8173429
+SSAnne_Kitchen_Text_SawOddBerryInTrash:: @ 8173429
.string "I saw an odd BERRY in the trash.\n"
.string "I wonder what that was?$"
-gUnknown_8173462:: @ 8173462
+SSAnne_Kitchen_Text_SoBusyImDizzy:: @ 8173462
.string "I'm so busy I'm getting dizzy!\n"
.string "You have to give me room here!$"
-gUnknown_81734A0:: @ 81734A0
+SSAnne_Kitchen_Text_PeelSpudsEveryDay:: @ 81734A0
.string "Hum-de-hum-de-ho…\p"
.string "I peel spuds every day!\n"
.string "Hum-hum…$"
-gUnknown_81734D3:: @ 81734D3
+SSAnne_Kitchen_Text_HearAboutSnorlaxItsAGlutton:: @ 81734D3
.string "Did you hear about SNORLAX?\n"
.string "It's a glutton.\p"
.string "No other POKéMON eats and sleeps\n"
.string "the way SNORLAX can and does!$"
-gUnknown_817353E:: @ 817353E
+SSAnne_Kitchen_Text_OnlyGetToPeelOnions:: @ 817353E
.string "Snivel… Sniff…\p"
.string "I only get to peel onions…\n"
.string "Snivel…$"
-gUnknown_8173570:: @ 8173570
+SSAnne_Kitchen_Text_IAmLeChefMainCourseIs:: @ 8173570
.string "Er-hem!\n"
.string "Indeed I am le CHEF!\p"
.string "Le main course is$"
-gUnknown_817359F:: @ 817359F
+SSAnne_Kitchen_Text_SalmonDuSalad:: @ 817359F
.string "Salmon du Salad!\p"
.string "Les guests may gripe it's fish\n"
.string "again, however!$"
-gUnknown_81735DF:: @ 81735DF
+SSAnne_Kitchen_Text_EelsAuBarbecue:: @ 81735DF
.string "Eels au Barbecue!\p"
.string "Les guests will mutiny, I fear.$"
-gUnknown_8173611:: @ 8173611
+SSAnne_Kitchen_Text_PrimeBeefsteak:: @ 8173611
.string "Prime Beefsteak!\p"
.string "But, have I enough fillets du\n"
.string "beef?$"
diff --git a/data/maps/SevenIsland_Harbor/scripts.inc b/data/maps/SevenIsland_Harbor/scripts.inc
index dfa2da755..f042ca668 100644
--- a/data/maps/SevenIsland_Harbor/scripts.inc
+++ b/data/maps/SevenIsland_Harbor/scripts.inc
@@ -7,5 +7,5 @@ SevenIsland_Harbor_EventScript_170BE5:: @ 8170BE5
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_SEVEN_ISLAND
- goto EventScript_1A900F
+ goto EventScript_ChooseDestFromIsland
end
diff --git a/data/maps/SixIsland_Harbor/scripts.inc b/data/maps/SixIsland_Harbor/scripts.inc
index 8db4500ca..11ed9c7b8 100644
--- a/data/maps/SixIsland_Harbor/scripts.inc
+++ b/data/maps/SixIsland_Harbor/scripts.inc
@@ -7,5 +7,5 @@ SixIsland_Harbor_EventScript_171E48:: @ 8171E48
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_SIX_ISLAND
- goto EventScript_1A900F
+ goto EventScript_ChooseDestFromIsland
end
diff --git a/data/maps/ThreeIsland_Harbor/scripts.inc b/data/maps/ThreeIsland_Harbor/scripts.inc
index 0edd8cac9..6705741cb 100644
--- a/data/maps/ThreeIsland_Harbor/scripts.inc
+++ b/data/maps/ThreeIsland_Harbor/scripts.inc
@@ -7,5 +7,5 @@ ThreeIsland_Harbor_EventScript_171EAA:: @ 8171EAA
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_THREE_ISLAND
- goto EventScript_1A900F
+ goto EventScript_ChooseDestFromIsland
end
diff --git a/data/maps/TwoIsland_Harbor/scripts.inc b/data/maps/TwoIsland_Harbor/scripts.inc
index ff1bb82bf..8c2eab36d 100644
--- a/data/maps/TwoIsland_Harbor/scripts.inc
+++ b/data/maps/TwoIsland_Harbor/scripts.inc
@@ -7,5 +7,5 @@ TwoIsland_Harbor_EventScript_171806:: @ 8171806
message Text_WhereDoYouWantToSail
waitmessage
setvar VAR_0x8004, SEAGALLOP_TWO_ISLAND
- goto EventScript_1A8F54
+ goto EventScript_ChooseDestFromTwoIsland
end
diff --git a/data/maps/VermilionCity/map.json b/data/maps/VermilionCity/map.json
index e4286aa87..0a5fe287a 100644
--- a/data/maps/VermilionCity/map.json
+++ b/data/maps/VermilionCity/map.json
@@ -34,7 +34,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166917",
+ "script": "VermilionCity_EventScript_Woman",
"flag": "0"
},
{
@@ -47,7 +47,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166920",
+ "script": "VermilionCity_EventScript_OldMan1",
"flag": "0"
},
{
@@ -60,7 +60,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166C2F",
+ "script": "VermilionCity_EventScript_OldMan2",
"flag": "0"
},
{
@@ -73,7 +73,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166C38",
+ "script": "VermilionCity_EventScript_Machop",
"flag": "0"
},
{
@@ -86,7 +86,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166C17",
+ "script": "VermilionCity_EventScript_Sailor",
"flag": "0"
},
{
@@ -99,7 +99,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166941",
+ "script": "VermilionCity_EventScript_FerrySailor",
"flag": "0"
},
{
@@ -125,7 +125,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_EventScript_166C20",
+ "script": "VermilionCity_EventScript_OaksAide",
"flag": "FLAG_HIDE_VERMILION_CITY_OAKS_AIDE"
}
],
@@ -209,7 +209,7 @@
"elevation": 0,
"var": "VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER",
"var_value": 0,
- "script": "VermilionCity_EventScript_166B8A"
+ "script": "VermilionCity_EventScript_CheckTicketLeft"
},
{
"type": "trigger",
@@ -218,7 +218,7 @@
"elevation": 0,
"var": "VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER",
"var_value": 0,
- "script": "VermilionCity_EventScript_166B91"
+ "script": "VermilionCity_EventScript_CheckTicketRight"
},
{
"type": "trigger",
@@ -227,7 +227,7 @@
"elevation": 0,
"var": "VAR_TEMP_1",
"var_value": 0,
- "script": "VermilionCity_EventScript_166B98"
+ "script": "VermilionCity_EventScript_ExitedTicketCheck"
},
{
"type": "trigger",
@@ -236,7 +236,7 @@
"elevation": 0,
"var": "VAR_TEMP_1",
"var_value": 0,
- "script": "VermilionCity_EventScript_166B98"
+ "script": "VermilionCity_EventScript_ExitedTicketCheck"
}
],
"bg_events": [
@@ -245,35 +245,35 @@
"x": 33,
"y": 6,
"elevation": 0,
- "script": "VermilionCity_EventScript_166C53"
+ "script": "VermilionCity_EventScript_CitySign"
},
{
"type": "bg_event_type_0",
"x": 10,
"y": 17,
"elevation": 3,
- "script": "VermilionCity_EventScript_166C65"
+ "script": "VermilionCity_EventScript_PokemonFanClubSign"
},
{
"type": "bg_event_type_0",
"x": 10,
"y": 24,
"elevation": 0,
- "script": "VermilionCity_EventScript_166C6E"
+ "script": "VermilionCity_EventScript_GymSign"
},
{
"type": "bg_event_type_0",
"x": 34,
"y": 18,
"elevation": 0,
- "script": "VermilionCity_EventScript_166C86"
+ "script": "VermilionCity_EventScript_HarborSign"
},
{
"type": "bg_event_type_0",
"x": 45,
"y": 17,
"elevation": 3,
- "script": "VermilionCity_EventScript_166C5C"
+ "script": "VermilionCity_EventScript_SnorlaxNotice"
},
{
"type": "hidden_item",
diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc
index ad6a36007..0442f3d02 100644
--- a/data/maps/VermilionCity/scripts.inc
+++ b/data/maps/VermilionCity/scripts.inc
@@ -1,62 +1,64 @@
+.equ LOCALID_FERRY_SAILOR, 6
+
VermilionCity_MapScripts:: @ 81668DC
map_script MAP_SCRIPT_ON_TRANSITION, VermilionCity_OnTransition
map_script MAP_SCRIPT_ON_FRAME_TABLE, VermilionCity_OnFrame
.byte 0
VermilionCity_OnFrame:: @ 81668E7
- map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 2, EventScript_1668F1
+ map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 2, VermilionCity_EventScript_ExitSSAnne
.2byte 0
-EventScript_1668F1:: @ 81668F1
+VermilionCity_EventScript_ExitSSAnne:: @ 81668F1
lockall
- applymovement OBJ_EVENT_ID_PLAYER, Movement_166903
+ applymovement OBJ_EVENT_ID_PLAYER, VermilionCity_Movement_ExitSSAnne
waitmovement 0
setvar VAR_MAP_SCENE_VERMILION_CITY, 3
releaseall
end
-Movement_166903:: @ 8166903
+VermilionCity_Movement_ExitSSAnne:: @ 8166903
walk_up
walk_up
step_end
VermilionCity_OnTransition:: @ 8166906
setworldmapflag FLAG_WORLD_MAP_VERMILION_CITY
- call_if_set FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION, EventScript_166913
+ call_if_set FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION, VermilionCity_EventScript_HideOaksAide
end
-EventScript_166913:: @ 8166913
+VermilionCity_EventScript_HideOaksAide:: @ 8166913
setflag FLAG_HIDE_VERMILION_CITY_OAKS_AIDE
return
-VermilionCity_EventScript_166917:: @ 8166917
- msgbox gUnknown_817F723, MSGBOX_NPC
+VermilionCity_EventScript_Woman:: @ 8166917
+ msgbox VermilionCity_Text_GrimerMultipliesInSludge, MSGBOX_NPC
end
-VermilionCity_EventScript_166920:: @ 8166920
+VermilionCity_EventScript_OldMan1:: @ 8166920
lock
faceplayer
compare VAR_MAP_SCENE_VERMILION_CITY, 3
- goto_if_eq EventScript_166937
- msgbox gUnknown_817F776
+ goto_if_eq VermilionCity_EventScript_OldMan1SSAnneLeft
+ msgbox VermilionCity_Text_DidYouSeeSSAnneInHarbor
release
end
-EventScript_166937:: @ 8166937
- msgbox gUnknown_817F7A6
+VermilionCity_EventScript_OldMan1SSAnneLeft:: @ 8166937
+ msgbox VermilionCity_Text_SSAnneHasDepartedForYear
release
end
-VermilionCity_EventScript_166941:: @ 8166941
+VermilionCity_EventScript_FerrySailor:: @ 8166941
lock
faceplayer
compare VAR_MAP_SCENE_VERMILION_CITY, 3
- goto_if_eq EventScript_166996
- msgbox gUnknown_817FA22
+ goto_if_eq VermilionCity_EventScript_CheckSeagallopPresent
+ msgbox VermilionCity_Text_WelcomeToTheSSAnne
release
end
-EventScript_166958:: @ 8166958
+VermilionCity_EventScript_CheckHasMysticTicket:: @ 8166958
goto_if_unset FLAG_SYS_GOT_MYSTIC_TICKET, EventScript_SetResultFalse
checkitem ITEM_MYSTIC_TICKET, 1
compare VAR_RESULT, FALSE
@@ -64,7 +66,7 @@ EventScript_166958:: @ 8166958
goto EventScript_SetResultTrue
end
-EventScript_166977:: @ 8166977
+VermilionCity_EventScript_CheckHasAuroraTicket:: @ 8166977
goto_if_unset FLAG_SYS_GOT_AURORA_TICKET, EventScript_SetResultFalse
checkitem ITEM_AURORA_TICKET, 1
compare VAR_RESULT, FALSE
@@ -72,206 +74,207 @@ EventScript_166977:: @ 8166977
goto EventScript_SetResultTrue
end
-EventScript_166996:: @ 8166996
+VermilionCity_EventScript_CheckSeagallopPresent:: @ 8166996
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5
- goto_if_ge EventScript_1669BB
+ goto_if_ge VermilionCity_EventScript_ChooseSeagallopDestRainbowPass
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1
- goto_if_ge EventScript_166B3B
- msgbox gUnknown_817FB10
+ goto_if_ge VermilionCity_EventScript_ChooseSeagallopDestTriPass
+ msgbox VermilionCity_Text_TheShipSetSail
release
end
-EventScript_1669BB:: @ 81669BB
+VermilionCity_EventScript_ChooseSeagallopDestRainbowPass:: @ 81669BB
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
- call EventScript_166958
- compare VAR_RESULT, 1
- goto_if_eq EventScript_1669FD
- call EventScript_166977
- compare VAR_RESULT, 1
- goto_if_eq EventScript_166A5F
+ call VermilionCity_EventScript_CheckHasMysticTicket
+ compare VAR_RESULT, TRUE
+ goto_if_eq VermilionCity_EventScript_HasMysticTicket
+ call VermilionCity_EventScript_CheckHasAuroraTicket
+ compare VAR_RESULT, TRUE
+ goto_if_eq VermilionCity_EventScript_HasAuroraTicket
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
- message Text_17FBB8
+ message VermilionCity_Text_BoardSeagallopRainbowPass
waitmessage
- goto EventScript_1A911E
+ goto EventScript_SeviiDestinationsPage1
end
-EventScript_1669FD:: @ 81669FD
- call EventScript_166977
- compare VAR_RESULT, 1
- goto_if_eq EventScript_166AB1
- call_if_unset FLAG_SHOWED_MYSTICTICKET_TO_CAPTAIN, EventScript_166A53
- message Text_17FCC1
+VermilionCity_EventScript_HasMysticTicket:: @ 81669FD
+ call VermilionCity_EventScript_CheckHasAuroraTicket
+ compare VAR_RESULT, TRUE
+ goto_if_eq VermilionCity_EventScript_HasMysticAndAuroraTickets
+ call_if_unset FLAG_SHOWED_MYSTICTICKET_TO_CAPTAIN, VermilionCity_EventScript_ShowMysticTicket
+ message VermilionCity_Text_BoardSeagallopFerry
waitmessage
multichoice 17, 6, MULTICHOICE_SEVII_NAVEL, FALSE
switch VAR_RESULT
- case 0, EventScript_1A911E
- case 1, EventScript_166B0B
+ case 0, EventScript_SeviiDestinationsPage1
+ case 1, EventScript_SailToNavelRock
case 2, EventScript_CancelSail
case 127, EventScript_CancelSail
end
-EventScript_166A53:: @ 8166A53
+VermilionCity_EventScript_ShowMysticTicket:: @ 8166A53
setflag FLAG_SHOWED_MYSTICTICKET_TO_CAPTAIN
- msgbox gUnknown_817FC00
+ msgbox VermilionCity_Text_OhMysticTicketTakeYouToNavelRock
return
-EventScript_166A5F:: @ 8166A5F
- call_if_unset FLAG_SHOWED_AURORATICKET_TO_CAPTAIN, EventScript_166AA5
- message Text_17FCC1
+VermilionCity_EventScript_HasAuroraTicket:: @ 8166A5F
+ call_if_unset FLAG_SHOWED_AURORATICKET_TO_CAPTAIN, VermilionCity_EventScript_ShowAuroraTicket
+ message VermilionCity_Text_BoardSeagallopFerry
waitmessage
multichoice 13, 6, MULTICHOICE_SEVII_BIRTH, FALSE
switch VAR_RESULT
- case 0, EventScript_1A911E
- case 1, EventScript_166B23
+ case 0, EventScript_SeviiDestinationsPage1
+ case 1, EventScript_SailToBirthIsland
case 2, EventScript_CancelSail
case 127, EventScript_CancelSail
end
-EventScript_166AA5:: @ 8166AA5
+VermilionCity_EventScript_ShowAuroraTicket:: @ 8166AA5
setflag FLAG_SHOWED_AURORATICKET_TO_CAPTAIN
- msgbox gUnknown_817FC5F
+ msgbox VermilionCity_Text_OhAuroraTicketTakeYouToBirthIsland
return
-EventScript_166AB1:: @ 8166AB1
- call_if_unset FLAG_SHOWED_MYSTICTICKET_TO_CAPTAIN, EventScript_166A53
- call_if_unset FLAG_SHOWED_AURORATICKET_TO_CAPTAIN, EventScript_166AA5
- message Text_17FCC1
+VermilionCity_EventScript_HasMysticAndAuroraTickets:: @ 8166AB1
+ call_if_unset FLAG_SHOWED_MYSTICTICKET_TO_CAPTAIN, VermilionCity_EventScript_ShowMysticTicket
+ call_if_unset FLAG_SHOWED_AURORATICKET_TO_CAPTAIN, VermilionCity_EventScript_ShowAuroraTicket
+ message VermilionCity_Text_BoardSeagallopFerry
waitmessage
multichoice 13, 5, MULTICHOICE_SEVII_NAVEL_BIRTH, FALSE
switch VAR_RESULT
- case 0, EventScript_1A911E
- case 1, EventScript_166B0B
- case 2, EventScript_166B23
+ case 0, EventScript_SeviiDestinationsPage1
+ case 1, EventScript_SailToNavelRock
+ case 2, EventScript_SailToBirthIsland
case 3, EventScript_CancelSail
case 127, EventScript_CancelSail
end
-EventScript_166B0B:: @ 8166B0B
- msgbox gUnknown_817FCEC
+EventScript_SailToNavelRock:: @ 8166B0B
+ msgbox VermilionCity_Text_Seagallop10Departing
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
setvar VAR_0x8006, SEAGALLOP_NAVEL_ROCK
- goto EventScript_1A90DA
+ goto EventScript_SetSail
end
-EventScript_166B23:: @ 8166B23
- msgbox gUnknown_817FD5F
+EventScript_SailToBirthIsland:: @ 8166B23
+ msgbox VermilionCity_Text_Seagallop12Departing
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
setvar VAR_0x8006, SEAGALLOP_BIRTH_ISLAND
- goto EventScript_1A90DA
+ goto EventScript_SetSail
end
-EventScript_166B3B:: @ 8166B3B
- message Text_17FB23
+VermilionCity_EventScript_ChooseSeagallopDestTriPass:: @ 8166B3B
+ message VermilionCity_Text_BoardSeagallopTriPass
waitmessage
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
multichoice 19, 5, MULTICHOICE_SEAGALLOP_123, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FEE
- case 1, EventScript_1A8FF9
- case 2, EventScript_1A9004
+ case 0, EventScript_SailToOneIsland2
+ case 1, EventScript_SailToTwoIsland2
+ case 2, EventScript_SailToThreeIsland2
case 3, EventScript_CancelSail
case 127, EventScript_CancelSail
end
-EventScript_166B88:: @ 8166B88
+@ Unreachable
+Vermilion_EventScript_Unused:: @ 8166B88
release
end
-VermilionCity_EventScript_166B8A:: @ 8166B8A
+VermilionCity_EventScript_CheckTicketLeft:: @ 8166B8A
lockall
- goto EventScript_166BA0
+ goto VermilionCity_EventScript_CheckTicket
end
-VermilionCity_EventScript_166B91:: @ 8166B91
+VermilionCity_EventScript_CheckTicketRight:: @ 8166B91
lockall
- goto EventScript_166BA0
+ goto VermilionCity_EventScript_CheckTicket
end
-VermilionCity_EventScript_166B98:: @ 8166B98
+VermilionCity_EventScript_ExitedTicketCheck:: @ 8166B98
lockall
setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 0
releaseall
end
-EventScript_166BA0:: @ 8166BA0
+VermilionCity_EventScript_CheckTicket:: @ 8166BA0
textcolor 0
- applymovement 6, Movement_WalkInPlaceFastestLeft
+ applymovement LOCALID_FERRY_SAILOR, Movement_WalkInPlaceFastestLeft
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight
waitmovement 0
compare VAR_MAP_SCENE_VERMILION_CITY, 3
- goto_if_eq EventScript_166BED
- msgbox gUnknown_817FA3C
- goto_if_unset FLAG_GOT_SS_TICKET, EventScript_166BDE
- msgbox gUnknown_817FA77
+ goto_if_eq VermilionCity_EventScript_CheckSeagallopPresentTrigger
+ msgbox VermilionCity_Text_DoYouHaveATicket
+ goto_if_unset FLAG_GOT_SS_TICKET, VermilionCity_EventScript_DontHaveSSTicket
+ msgbox VermilionCity_Text_FlashedSSTicket
setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 1
releaseall
end
-EventScript_166BDE:: @ 8166BDE
- msgbox gUnknown_817FABA
+VermilionCity_EventScript_DontHaveSSTicket:: @ 8166BDE
+ msgbox VermilionCity_Text_DontHaveNeededSSTicket
closemessage
- goto EventScript_1A9108
+ goto VermilionCity_EventScript_WalkUpPier
end
-EventScript_166BED:: @ 8166BED
+VermilionCity_EventScript_CheckSeagallopPresentTrigger:: @ 8166BED
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5
- goto_if_ge EventScript_1669BB
+ goto_if_ge VermilionCity_EventScript_ChooseSeagallopDestRainbowPass
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1
- goto_if_ge EventScript_166B3B
- msgbox gUnknown_817FB10
+ goto_if_ge VermilionCity_EventScript_ChooseSeagallopDestTriPass
+ msgbox VermilionCity_Text_TheShipSetSail
closemessage
- goto EventScript_1A9108
+ goto VermilionCity_EventScript_WalkUpPier
end
-VermilionCity_EventScript_166C17:: @ 8166C17
- msgbox gUnknown_817F8AC, MSGBOX_NPC
+VermilionCity_EventScript_Sailor:: @ 8166C17
+ msgbox VermilionCity_Text_SSAnneVisitsOnceAYear, MSGBOX_NPC
end
-VermilionCity_EventScript_166C20:: @ 8166C20
+VermilionCity_EventScript_OaksAide:: @ 8166C20
lock
faceplayer
setflag FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION
- msgbox gUnknown_817FDD2
+ msgbox VermilionCity_Text_Route2AideHasPackageForYou
release
end
-VermilionCity_EventScript_166C2F:: @ 8166C2F
- msgbox gUnknown_817F7FD, MSGBOX_NPC
+VermilionCity_EventScript_OldMan2:: @ 8166C2F
+ msgbox VermilionCity_Text_BuildingOnThisLand, MSGBOX_NPC
end
-VermilionCity_EventScript_166C38:: @ 8166C38
+VermilionCity_EventScript_Machop:: @ 8166C38
lock
faceplayer
waitse
playmoncry SPECIES_MACHOP, 0
- msgbox gUnknown_817F871
+ msgbox VermilionCity_Text_Machop
waitmoncry
- msgbox gUnknown_817F888
+ msgbox VermilionCity_Text_MachopStompingLandFlat
release
end
-VermilionCity_EventScript_166C53:: @ 8166C53
- msgbox gUnknown_817F8FB, MSGBOX_SIGN
+VermilionCity_EventScript_CitySign:: @ 8166C53
+ msgbox VermilionCity_Text_CitySign, MSGBOX_SIGN
end
-VermilionCity_EventScript_166C5C:: @ 8166C5C
- msgbox gUnknown_817F928, MSGBOX_SIGN
+VermilionCity_EventScript_SnorlaxNotice:: @ 8166C5C
+ msgbox VermilionCity_Text_SnorlaxBlockingRoute12, MSGBOX_SIGN
end
-VermilionCity_EventScript_166C65:: @ 8166C65
- msgbox gUnknown_817F9A1, MSGBOX_SIGN
+VermilionCity_EventScript_PokemonFanClubSign:: @ 8166C65
+ msgbox VermilionCity_Text_PokemonFanClubSign, MSGBOX_SIGN
end
-VermilionCity_EventScript_166C6E:: @ 8166C6E
+VermilionCity_EventScript_GymSign:: @ 8166C6E
lockall
famechecker FAMECHECKER_LTSURGE, 0
- msgbox gUnknown_817F9CC
+ msgbox VermilionCity_Text_GymSign
releaseall
end
-VermilionCity_EventScript_166C86:: @ 8166C86
- msgbox gUnknown_817FA11, MSGBOX_SIGN
+VermilionCity_EventScript_HarborSign:: @ 8166C86
+ msgbox VermilionCity_Text_VermilionHarbor, MSGBOX_SIGN
end
diff --git a/data/maps/VermilionCity/text.inc b/data/maps/VermilionCity/text.inc
index bce18d9fb..bb784b83a 100644
--- a/data/maps/VermilionCity/text.inc
+++ b/data/maps/VermilionCity/text.inc
@@ -1,39 +1,39 @@
-gUnknown_817F723:: @ 817F723
+VermilionCity_Text_GrimerMultipliesInSludge:: @ 817F723
.string "We're careful about pollution here.\p"
.string "We've heard GRIMER multiplies in\n"
.string "toxic sludge.$"
-gUnknown_817F776:: @ 817F776
+VermilionCity_Text_DidYouSeeSSAnneInHarbor:: @ 817F776
.string "Did you see the S.S. ANNE moored\n"
.string "in the harbor?$"
-gUnknown_817F7A6:: @ 817F7A6
+VermilionCity_Text_SSAnneHasDepartedForYear:: @ 817F7A6
.string "So, the S.S. ANNE has departed?\p"
.string "She'll be back in VERMILION about\n"
.string "this time next year.$"
-gUnknown_817F7FD:: @ 817F7FD
+VermilionCity_Text_BuildingOnThisLand:: @ 817F7FD
.string "I'm putting up a building on this\n"
.string "plot of land. I own it all.\p"
.string "My POKéMON is tamping the land\n"
.string "to lay the foundation.$"
-gUnknown_817F871:: @ 817F871
+VermilionCity_Text_Machop:: @ 817F871
.string "MACHOP: Guoh! Gogogoh!$"
-gUnknown_817F888:: @ 817F888
+VermilionCity_Text_MachopStompingLandFlat:: @ 817F888
.string "A MACHOP is stomping the land flat.$"
-gUnknown_817F8AC:: @ 817F8AC
+VermilionCity_Text_SSAnneVisitsOnceAYear:: @ 817F8AC
.string "The S.S. ANNE is a famous luxury\n"
.string "cruise ship.\p"
.string "It visits VERMILION once a year.$"
-gUnknown_817F8FB:: @ 817F8FB
+VermilionCity_Text_CitySign:: @ 817F8FB
.string "VERMILION CITY\n"
.string "The Port of Exquisite Sunsets$"
-gUnknown_817F928:: @ 817F928
+VermilionCity_Text_SnorlaxBlockingRoute12:: @ 817F928
.string "NOTICE!\p"
.string "ROUTE 12 may be blocked off by a\n"
.string "sleeping POKéMON.\p"
@@ -41,83 +41,83 @@ gUnknown_817F928:: @ 817F928
.string "LAVENDER TOWN.\p"
.string "VERMILION POLICE$"
-gUnknown_817F9A1:: @ 817F9A1
+VermilionCity_Text_PokemonFanClubSign:: @ 817F9A1
.string "POKéMON FAN CLUB\n"
.string "All POKéMON fans welcome!$"
-gUnknown_817F9CC:: @ 817F9CC
+VermilionCity_Text_GymSign:: @ 817F9CC
.string "VERMILION CITY POKéMON GYM\n"
.string "LEADER: LT. SURGE\l"
.string "The Lightning American!$"
-gUnknown_817FA11:: @ 817FA11
+VermilionCity_Text_VermilionHarbor:: @ 817FA11
.string "VERMILION HARBOR$"
-gUnknown_817FA22:: @ 817FA22
+VermilionCity_Text_WelcomeToTheSSAnne:: @ 817FA22
.string "Welcome to the S.S. ANNE!$"
-gUnknown_817FA3C:: @ 817FA3C
+VermilionCity_Text_DoYouHaveATicket:: @ 817FA3C
.string "Welcome to the S.S. ANNE!\p"
.string "Excuse me, do you have a ticket?$"
-gUnknown_817FA77:: @ 817FA77
+VermilionCity_Text_FlashedSSTicket:: @ 817FA77
.string "{SIZE}Á{PLAYER} flashed the S.S. TICKET!\p"
.string "{SIZE}ÇGreat!\n"
.string "Welcome to the S.S. ANNE!$"
-gUnknown_817FABA:: @ 817FABA
+VermilionCity_Text_DontHaveNeededSSTicket:: @ 817FABA
.string "{SIZE}Á{PLAYER} doesn't have the needed\n"
.string "S.S. TICKET.\p"
.string "{SIZE}ÇSorry!\p"
.string "You need a ticket to get aboard.$"
-gUnknown_817FB10:: @ 817FB10
+VermilionCity_Text_TheShipSetSail:: @ 817FB10
.string "The ship set sail.$"
-Text_17FB23:: @ 817FB23
+VermilionCity_Text_BoardSeagallopTriPass:: @ 817FB23
.string "Ah, you have a TRI-PASS.\p"
.string "Would you like to board\n"
.string "a SEAGALLOP ferry?$"
-Text_17FB67:: @ 817FB67
+VermilionCity_Text_Seagallop7Departing:: @ 817FB67
.string "Okay, everything's in order.\p"
.string "SEAGALLOP HI-SPEED 7 will be\n"
.string "departing immediately.$"
-Text_17FBB8:: @ 817FBB8
+VermilionCity_Text_BoardSeagallopRainbowPass:: @ 817FBB8
.string "Ah, you have a RAINBOW PASS.\p"
.string "Would you like to board\n"
.string "a SEAGALLOP ferry?$"
-gUnknown_817FC00:: @ 817FC00
+VermilionCity_Text_OhMysticTicketTakeYouToNavelRock:: @ 817FC00
.string "Oh! That's a MYSTICTICKET!\n"
.string "Now that is rare.\p"
.string "We'll be happy to take you to\n"
.string "NAVEL ROCK anytime.$"
-gUnknown_817FC5F:: @ 817FC5F
+VermilionCity_Text_OhAuroraTicketTakeYouToBirthIsland:: @ 817FC5F
.string "Oh! That's an AURORATICKET!\n"
.string "Now that is rare.\p"
.string "We'll be happy to take you to\n"
.string "BIRTH ISLAND anytime.$"
-Text_17FCC1:: @ 817FCC1
+VermilionCity_Text_BoardSeagallopFerry:: @ 817FCC1
.string "Would you like to board\n"
.string "a SEAGALLOP ferry?$"
-gUnknown_817FCEC:: @ 817FCEC
+VermilionCity_Text_Seagallop10Departing:: @ 817FCEC
.string "Okay, everything's in order for you\n"
.string "to board a special ferry.\p"
.string "SEAGALLOP HI-SPEED 10 will be\n"
.string "departing immediately.$"
-gUnknown_817FD5F:: @ 817FD5F
+VermilionCity_Text_Seagallop12Departing:: @ 817FD5F
.string "Okay, everything's in order for you\n"
.string "to board a special ferry.\p"
.string "SEAGALLOP HI-SPEED 12 will be\n"
.string "departing immediately.$"
-gUnknown_817FDD2:: @ 817FDD2
+VermilionCity_Text_Route2AideHasPackageForYou:: @ 817FDD2
.string "Oh, hello, {PLAYER}!\n"
.string "How are you doing?\p"
.string "It's me, one of PROF. OAK's AIDES.\p"
diff --git a/data/maps/VermilionCity_Gym/map.json b/data/maps/VermilionCity_Gym/map.json
index 8ed2603da..628d88070 100644
--- a/data/maps/VermilionCity_Gym/map.json
+++ b/data/maps/VermilionCity_Gym/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_Gym_EventScript_16B94A",
+ "script": "VermilionCity_Gym_EventScript_LtSurge",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "VermilionCity_Gym_EventScript_16BA1E",
+ "script": "VermilionCity_Gym_EventScript_Baily",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "VermilionCity_Gym_EventScript_16B9FA",
+ "script": "VermilionCity_Gym_EventScript_Dwayne",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_Gym_EventScript_16BA6C",
+ "script": "VermilionCity_Gym_EventScript_GymGuy",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "VermilionCity_Gym_EventScript_16BA35",
+ "script": "VermilionCity_Gym_EventScript_Tucker",
"flag": "0"
}
],
@@ -109,119 +109,119 @@
"x": 3,
"y": 17,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16BA8B"
+ "script": "VermilionCity_Gym_EventScript_GymStatue"
},
{
"type": "bg_event_type_0",
"x": 7,
"y": 17,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16BA8B"
+ "script": "VermilionCity_Gym_EventScript_GymStatue"
},
{
"type": "bg_event_type_0",
"x": 1,
"y": 10,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B78F"
+ "script": "VermilionCity_Gym_EventScript_TrashCan1"
},
{
"type": "bg_event_type_0",
"x": 3,
"y": 10,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B79B"
+ "script": "VermilionCity_Gym_EventScript_TrashCan2"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 10,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7A7"
+ "script": "VermilionCity_Gym_EventScript_TrashCan3"
},
{
"type": "bg_event_type_0",
"x": 7,
"y": 10,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7B3"
+ "script": "VermilionCity_Gym_EventScript_TrashCan4"
},
{
"type": "bg_event_type_0",
"x": 9,
"y": 10,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7BF"
+ "script": "VermilionCity_Gym_EventScript_TrashCan5"
},
{
"type": "bg_event_type_0",
"x": 1,
"y": 12,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7CB"
+ "script": "VermilionCity_Gym_EventScript_TrashCan6"
},
{
"type": "bg_event_type_0",
"x": 3,
"y": 12,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7D7"
+ "script": "VermilionCity_Gym_EventScript_TrashCan7"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 12,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7E3"
+ "script": "VermilionCity_Gym_EventScript_TrashCan8"
},
{
"type": "bg_event_type_0",
"x": 7,
"y": 12,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7EF"
+ "script": "VermilionCity_Gym_EventScript_TrashCan9"
},
{
"type": "bg_event_type_0",
"x": 9,
"y": 12,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B7FB"
+ "script": "VermilionCity_Gym_EventScript_TrashCan10"
},
{
"type": "bg_event_type_0",
"x": 1,
"y": 14,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B807"
+ "script": "VermilionCity_Gym_EventScript_TrashCan11"
},
{
"type": "bg_event_type_0",
"x": 3,
"y": 14,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B813"
+ "script": "VermilionCity_Gym_EventScript_TrashCan12"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 14,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B81F"
+ "script": "VermilionCity_Gym_EventScript_TrashCan13"
},
{
"type": "bg_event_type_0",
"x": 7,
"y": 14,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B82B"
+ "script": "VermilionCity_Gym_EventScript_TrashCan14"
},
{
"type": "bg_event_type_0",
"x": 9,
"y": 14,
"elevation": 0,
- "script": "VermilionCity_Gym_EventScript_16B837"
+ "script": "VermilionCity_Gym_EventScript_TrashCan15"
}
]
}
diff --git a/data/maps/VermilionCity_Gym/scripts.inc b/data/maps/VermilionCity_Gym/scripts.inc
index 0d95d76f8..5d3760df9 100644
--- a/data/maps/VermilionCity_Gym/scripts.inc
+++ b/data/maps/VermilionCity_Gym/scripts.inc
@@ -1,180 +1,185 @@
+.equ FOUND_FIRST_SWITCH, FLAG_TEMP_1
+.equ SWITCH1_ID, VAR_0x8004
+.equ SWITCH2_ID, VAR_0x8005
+.equ TRASH_CAN_ID, VAR_0x8008
+
VermilionCity_Gym_MapScripts:: @ 816B69E
map_script MAP_SCRIPT_ON_LOAD, VermilionCity_Gym_OnLoad
map_script MAP_SCRIPT_ON_TRANSITION, VermilionCity_Gym_OnTransition
.byte 0
VermilionCity_Gym_OnLoad:: @ 816B6A9
- call_if_set FLAG_TEMP_1, EventScript_16B6BC
- call_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, EventScript_16B717
- end
-
-EventScript_16B6BC:: @ 816B6BC
- setmetatile 3, 6, 699, 1
- setmetatile 4, 6, 700, 1
- setmetatile 5, 6, 701, 1
- setmetatile 6, 6, 702, 1
- setmetatile 7, 6, 703, 1
- setmetatile 3, 7, 707, 1
- setmetatile 4, 7, 708, 1
- setmetatile 5, 7, 709, 1
- setmetatile 6, 7, 710, 1
- setmetatile 7, 7, 711, 1
+ call_if_set FOUND_FIRST_SWITCH, VermilionCity_Gym_EventScript_SetOneBeamOff
+ call_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_SetBeamsOff
+ end
+
+VermilionCity_Gym_EventScript_SetOneBeamOff:: @ 816B6BC
+ setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn, 1
+ setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn, 1
+ setmetatile 5, 6, METATILE_VermilionGym_Beam_MidTop_HalfOn, 1
+ setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn, 1
+ setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_HalfOn, 1
+ setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn, 1
+ setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn, 1
+ setmetatile 5, 7, METATILE_VermilionGym_Beam_MidBottom_HalfOn, 1
+ setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn, 1
+ setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn, 1
return
-EventScript_16B717:: @ 816B717
- setmetatile 3, 6, 659, 1
- setmetatile 4, 6, 660, 0
- setmetatile 5, 6, 641, 0
- setmetatile 6, 6, 661, 0
- setmetatile 7, 6, 662, 1
- setmetatile 3, 7, 667, 1
- setmetatile 4, 7, 668, 0
- setmetatile 5, 7, 641, 0
- setmetatile 6, 7, 669, 0
- setmetatile 7, 7, 670, 1
+VermilionCity_Gym_EventScript_SetBeamsOff:: @ 816B717
+ setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Off, 1
+ setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off, 0
+ setmetatile 5, 6, METATILE_VermilionGym_Floor, 0
+ setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off, 0
+ setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_Off, 1
+ setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Off, 1
+ setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off, 0
+ setmetatile 5, 7, METATILE_VermilionGym_Floor, 0
+ setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off, 0
+ setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Off, 1
return
VermilionCity_Gym_OnTransition:: @ 816B772
- call EventScript_16B778
+ call VermilionCity_Gym_EventScript_InitTrashCans
end
-EventScript_16B778:: @ 816B778
+VermilionCity_Gym_EventScript_InitTrashCans:: @ 816B778
goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, EventScript_Return
special Special_SetVermilionTrashCans
- copyvar VAR_TEMP_0, VAR_0x8004
- copyvar VAR_TEMP_1, VAR_0x8005
+ copyvar VAR_TEMP_0, SWITCH1_ID
+ copyvar VAR_TEMP_1, SWITCH2_ID
return
-VermilionCity_Gym_EventScript_16B78F:: @ 816B78F
+VermilionCity_Gym_EventScript_TrashCan1:: @ 816B78F
lockall
- setvar VAR_0x8008, 1
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 1
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B79B:: @ 816B79B
+VermilionCity_Gym_EventScript_TrashCan2:: @ 816B79B
lockall
- setvar VAR_0x8008, 2
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 2
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7A7:: @ 816B7A7
+VermilionCity_Gym_EventScript_TrashCan3:: @ 816B7A7
lockall
- setvar VAR_0x8008, 3
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 3
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7B3:: @ 816B7B3
+VermilionCity_Gym_EventScript_TrashCan4:: @ 816B7B3
lockall
- setvar VAR_0x8008, 4
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 4
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7BF:: @ 816B7BF
+VermilionCity_Gym_EventScript_TrashCan5:: @ 816B7BF
lockall
- setvar VAR_0x8008, 5
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 5
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7CB:: @ 816B7CB
+VermilionCity_Gym_EventScript_TrashCan6:: @ 816B7CB
lockall
- setvar VAR_0x8008, 6
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 6
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7D7:: @ 816B7D7
+VermilionCity_Gym_EventScript_TrashCan7:: @ 816B7D7
lockall
- setvar VAR_0x8008, 7
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 7
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7E3:: @ 816B7E3
+VermilionCity_Gym_EventScript_TrashCan8:: @ 816B7E3
lockall
- setvar VAR_0x8008, 8
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 8
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7EF:: @ 816B7EF
+VermilionCity_Gym_EventScript_TrashCan9:: @ 816B7EF
lockall
- setvar VAR_0x8008, 9
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 9
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B7FB:: @ 816B7FB
+VermilionCity_Gym_EventScript_TrashCan10:: @ 816B7FB
lockall
- setvar VAR_0x8008, 10
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 10
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B807:: @ 816B807
+VermilionCity_Gym_EventScript_TrashCan11:: @ 816B807
lockall
- setvar VAR_0x8008, 11
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 11
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B813:: @ 816B813
+VermilionCity_Gym_EventScript_TrashCan12:: @ 816B813
lockall
- setvar VAR_0x8008, 12
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 12
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B81F:: @ 816B81F
+VermilionCity_Gym_EventScript_TrashCan13:: @ 816B81F
lockall
- setvar VAR_0x8008, 13
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 13
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B82B:: @ 816B82B
+VermilionCity_Gym_EventScript_TrashCan14:: @ 816B82B
lockall
- setvar VAR_0x8008, 14
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 14
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-VermilionCity_Gym_EventScript_16B837:: @ 816B837
+VermilionCity_Gym_EventScript_TrashCan15:: @ 816B837
lockall
- setvar VAR_0x8008, 15
- goto EventScript_16B843
+ setvar TRASH_CAN_ID, 15
+ goto VermilionCity_Gym_EventScript_TrashCan
end
-EventScript_16B843:: @ 816B843
+VermilionCity_Gym_EventScript_TrashCan:: @ 816B843
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
- copyvar VAR_0x8004, VAR_TEMP_0
- copyvar VAR_0x8005, VAR_TEMP_1
- goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, EventScript_16B8E5
- goto_if_set FLAG_TEMP_1, EventScript_16B89E
- compare VAR_0x8004, VAR_0x8008
- goto_if_eq EventScript_16B885
- msgbox gUnknown_8195289
+ copyvar SWITCH1_ID, VAR_TEMP_0
+ copyvar SWITCH2_ID, VAR_TEMP_1
+ goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_LocksAlreadyOpen
+ goto_if_set FOUND_FIRST_SWITCH, VermilionCity_Gym_EventScript_TrySwitchTwo
+ compare SWITCH1_ID, TRASH_CAN_ID
+ goto_if_eq VermilionCity_Gym_EventScript_FoundSwitchOne
+ msgbox VermilionCity_Gym_Text_NopeOnlyTrashHere
releaseall
end
-EventScript_16B885:: @ 816B885
- msgbox gUnknown_81952A8
+VermilionCity_Gym_EventScript_FoundSwitchOne:: @ 816B885
+ msgbox VermilionCity_Gym_Text_SwitchUnderTrashFirstLockOpened
playse SE_PIN
waitse
- call EventScript_16B6BC
+ call VermilionCity_Gym_EventScript_SetOneBeamOff
special DrawWholeMapView
- setflag FLAG_TEMP_1
+ setflag FOUND_FIRST_SWITCH
releaseall
end
-EventScript_16B89E:: @ 816B89E
- compare VAR_0x8005, VAR_0x8008
- goto_if_eq EventScript_16B8CB
- msgbox gUnknown_819536C
- clearflag FLAG_TEMP_1
+VermilionCity_Gym_EventScript_TrySwitchTwo:: @ 816B89E
+ compare SWITCH2_ID, TRASH_CAN_ID
+ goto_if_eq VermilionCity_Gym_EventScript_FoundSwitchTwo
+ msgbox VermilionCity_Gym_Text_OnlyTrashLocksWereReset
+ clearflag FOUND_FIRST_SWITCH
special Special_SetVermilionTrashCans
- copyvar VAR_TEMP_0, VAR_0x8004
- copyvar VAR_TEMP_1, VAR_0x8005
- call EventScript_16B8EF
+ copyvar VAR_TEMP_0, SWITCH1_ID
+ copyvar VAR_TEMP_1, SWITCH2_ID
+ call VermilionCity_Gym_EventScript_SetBeamsOn
special DrawWholeMapView
releaseall
end
-EventScript_16B8CB:: @ 816B8CB
- msgbox gUnknown_8195330
+VermilionCity_Gym_EventScript_FoundSwitchTwo:: @ 816B8CB
+ msgbox VermilionCity_Gym_Text_SecondLockOpened
closemessage
- call EventScript_16B717
+ call VermilionCity_Gym_EventScript_SetBeamsOff
special DrawWholeMapView
playse SE_KI_GASYAN
waitse
@@ -182,105 +187,105 @@ EventScript_16B8CB:: @ 816B8CB
releaseall
end
-EventScript_16B8E5:: @ 816B8E5
- msgbox gUnknown_8195289
+VermilionCity_Gym_EventScript_LocksAlreadyOpen:: @ 816B8E5
+ msgbox VermilionCity_Gym_Text_NopeOnlyTrashHere
releaseall
end
-EventScript_16B8EF:: @ 816B8EF
- setmetatile 3, 6, 681, 1
- setmetatile 4, 6, 682, 1
- setmetatile 5, 6, 645, 1
- setmetatile 6, 6, 683, 1
- setmetatile 7, 6, 684, 1
- setmetatile 3, 7, 689, 1
- setmetatile 4, 7, 690, 1
- setmetatile 5, 7, 653, 1
- setmetatile 6, 7, 691, 1
- setmetatile 7, 7, 692, 1
+VermilionCity_Gym_EventScript_SetBeamsOn:: @ 816B8EF
+ setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_On, 1
+ setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On, 1
+ setmetatile 5, 6, METATILE_VermilionGym_Beam_MidTop, 1
+ setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_On, 1
+ setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_On, 1
+ setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_On, 1
+ setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On, 1
+ setmetatile 5, 7, METATILE_VermilionGym_Beam_MidBottom, 1
+ setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On, 1
+ setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_On, 1
return
-VermilionCity_Gym_EventScript_16B94A:: @ 816B94A
+VermilionCity_Gym_EventScript_LtSurge:: @ 816B94A
famechecker FAMECHECKER_LTSURGE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle_single TRAINER_LEADER_LT_SURGE, Text_194BA4, Text_194E03, EventScript_16B97C, NO_MUSIC
- goto_if_unset FLAG_GOT_TM34_FROM_SURGE, EventScript_16B9AF
- msgbox gUnknown_8194C8E
+ trainerbattle_single TRAINER_LEADER_LT_SURGE, VermilionCity_Gym_Text_LtSurgeIntro, VermilionCity_Gym_Text_LtSurgeDefeat, VermilionCity_Gym_EventScript_DefeatedLtSurge, NO_MUSIC
+ goto_if_unset FLAG_GOT_TM34_FROM_SURGE, VermilionCity_Gym_EventScript_GiveTM43
+ msgbox VermilionCity_Gym_Text_LtSurgePostBattle
release
end
-EventScript_16B97C:: @ 816B97C
+VermilionCity_Gym_EventScript_DefeatedLtSurge:: @ 816B97C
famechecker FAMECHECKER_LTSURGE, 1
- call_if_unset FLAG_GOT_HM05, EventScript_16B9AB
+ call_if_unset FLAG_GOT_HM05, VermilionCity_Gym_EventScript_ShowOaksAide
clearflag FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL
setflag FLAG_DEFEATED_LT_SURGE
setflag FLAG_BADGE03_GET
set_gym_trainers 3
- goto EventScript_16B9AF
+ goto VermilionCity_Gym_EventScript_GiveTM43
end
-EventScript_16B9AB:: @ 816B9AB
+VermilionCity_Gym_EventScript_ShowOaksAide:: @ 816B9AB
clearflag FLAG_HIDE_VERMILION_CITY_OAKS_AIDE
return
-EventScript_16B9AF:: @ 816B9AF
- msgbox gUnknown_8194CFA
+VermilionCity_Gym_EventScript_GiveTM43:: @ 816B9AF
+ msgbox VermilionCity_Gym_Text_ExplainThunderBadgeTakeThis
checkitemspace ITEM_TM34, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16B9F0
- giveitem_msg gUnknown_8194D87, ITEM_TM34
+ goto_if_eq VermilionCity_Gym_EventScript_NoRoomForTM43
+ giveitem_msg VermilionCity_Gym_Text_ReceivedTM43FromLtSurge, ITEM_TM34
setflag FLAG_GOT_TM34_FROM_SURGE
- msgbox gUnknown_8194DA8
+ msgbox VermilionCity_Gym_Text_ExplainTM34
release
end
-EventScript_16B9F0:: @ 816B9F0
- msgbox gUnknown_8194DE3
+VermilionCity_Gym_EventScript_NoRoomForTM43:: @ 816B9F0
+ msgbox VermilionCity_Gym_Text_MakeRoomInYourBag
release
end
-VermilionCity_Gym_EventScript_16B9FA:: @ 816B9FA
- trainerbattle_single TRAINER_SAILOR_DWAYNE, Text_194FBD, Text_194FF1
+VermilionCity_Gym_EventScript_Dwayne:: @ 816B9FA
+ trainerbattle_single TRAINER_SAILOR_DWAYNE, VermilionCity_Gym_Text_DwayneIntro, VermilionCity_Gym_Text_DwayneDefeat
famechecker FAMECHECKER_LTSURGE, 4
- msgbox gUnknown_8195004, MSGBOX_AUTOCLOSE
+ msgbox VermilionCity_Gym_Text_DwaynePostBattle, MSGBOX_AUTOCLOSE
end
-VermilionCity_Gym_EventScript_16BA1E:: @ 816BA1E
- trainerbattle_single TRAINER_ENGINEER_BAILY, Text_194F1F, Text_194F6F
- msgbox gUnknown_8194F76, MSGBOX_AUTOCLOSE
+VermilionCity_Gym_EventScript_Baily:: @ 816BA1E
+ trainerbattle_single TRAINER_ENGINEER_BAILY, VermilionCity_Gym_Text_BailyIntro, VermilionCity_Gym_Text_BailyDefeat
+ msgbox VermilionCity_Gym_Text_BailyPostBattle, MSGBOX_AUTOCLOSE
end
-VermilionCity_Gym_EventScript_16BA35:: @ 816BA35
- trainerbattle_single TRAINER_GENTLEMAN_TUCKER, Text_194E57, Text_194EA5, EventScript_16BA5D
+VermilionCity_Gym_EventScript_Tucker:: @ 816BA35
+ trainerbattle_single TRAINER_GENTLEMAN_TUCKER, VermilionCity_Gym_Text_TuckerIntro, VermilionCity_Gym_Text_TuckerDefeat, VermilionCity_Gym_EventScript_DefeatedTucker
famechecker FAMECHECKER_LTSURGE, 3
- msgbox gUnknown_8194EBD, MSGBOX_AUTOCLOSE
+ msgbox VermilionCity_Gym_Text_TuckerPostBattle, MSGBOX_AUTOCLOSE
end
-EventScript_16BA5D:: @ 816BA5D
+VermilionCity_Gym_EventScript_DefeatedTucker:: @ 816BA5D
famechecker FAMECHECKER_LTSURGE, 2
release
end
-VermilionCity_Gym_EventScript_16BA6C:: @ 816BA6C
+VermilionCity_Gym_EventScript_GymGuy:: @ 816BA6C
lock
faceplayer
- goto_if_set FLAG_DEFEATED_LT_SURGE, EventScript_16BA81
- msgbox gUnknown_81950B4
+ goto_if_set FLAG_DEFEATED_LT_SURGE, VermilionCity_Gym_EventScript_GymGuyPostVictory
+ msgbox VermilionCity_Gym_Text_GymGuyAdvice
release
end
-EventScript_16BA81:: @ 816BA81
- msgbox gUnknown_81951EC
+VermilionCity_Gym_EventScript_GymGuyPostVictory:: @ 816BA81
+ msgbox VermilionCity_Gym_Text_GymGuyPostVictory
release
end
-VermilionCity_Gym_EventScript_16BA8B:: @ 816BA8B
+VermilionCity_Gym_EventScript_GymStatue:: @ 816BA8B
lockall
- goto_if_set FLAG_BADGE03_GET, EventScript_16BA9F
- msgbox gUnknown_819520B
+ goto_if_set FLAG_BADGE03_GET, VermilionCity_Gym_EventScript_GymStatuePostVictory
+ msgbox VermilionCity_Gym_Text_GymStatue
releaseall
end
-EventScript_16BA9F:: @ 816BA9F
- msgbox gUnknown_8195248
+VermilionCity_Gym_EventScript_GymStatuePostVictory:: @ 816BA9F
+ msgbox VermilionCity_Gym_Text_GymStatuePlayerWon
releaseall
end
diff --git a/data/maps/VermilionCity_Gym/text.inc b/data/maps/VermilionCity_Gym/text.inc
index b0cff583a..e364f8d10 100644
--- a/data/maps/VermilionCity_Gym/text.inc
+++ b/data/maps/VermilionCity_Gym/text.inc
@@ -1,4 +1,4 @@
-Text_194BA4:: @ 8194BA4
+VermilionCity_Gym_Text_LtSurgeIntro:: @ 8194BA4
.string "Hey, kid! What do you think you're\n"
.string "doing here?\p"
.string "You won't live long in combat!\n"
@@ -9,13 +9,13 @@ Text_194BA4:: @ 8194BA4
.string "paralysis!\p"
.string "The same as I'll do to you!{PLAY_BGM}{MUS_EXEYE}$"
-gUnknown_8194C8E:: @ 8194C8E
+VermilionCity_Gym_Text_LtSurgePostBattle:: @ 8194C8E
.string "A little word of advice, kid!\p"
.string "Electricity is sure powerful!\p"
.string "But, it's useless against GROUND-\n"
.string "type POKéMON!$"
-gUnknown_8194CFA:: @ 8194CFA
+VermilionCity_Gym_Text_ExplainThunderBadgeTakeThis:: @ 8194CFA
.string "The THUNDERBADGE cranks up your\n"
.string "POKéMON's SPEED!\p"
.string "It also lets your POKéMON FLY\n"
@@ -23,58 +23,58 @@ gUnknown_8194CFA:: @ 8194CFA
.string "You're special, kid!\n"
.string "Take this!$"
-gUnknown_8194D87:: @ 8194D87
+VermilionCity_Gym_Text_ReceivedTM43FromLtSurge:: @ 8194D87
.string "{PLAYER} received TM34\n"
.string "from LT. SURGE.$"
-gUnknown_8194DA8:: @ 8194DA8
+VermilionCity_Gym_Text_ExplainTM34:: @ 8194DA8
.string "TM34 contains SHOCK WAVE!\p"
.string "Teach it to an ELECTRIC POKéMON!$"
-gUnknown_8194DE3:: @ 8194DE3
+VermilionCity_Gym_Text_MakeRoomInYourBag:: @ 8194DE3
.string "Yo, kid, make room in your BAG!$"
-Text_194E03:: @ 8194E03
+VermilionCity_Gym_Text_LtSurgeDefeat:: @ 8194E03
.string "Now that's a shocker!\p"
.string "You're the real deal, kid!\p"
.string "Fine, then, take the THUNDERBADGE!$"
-Text_194E57:: @ 8194E57
+VermilionCity_Gym_Text_TuckerIntro:: @ 8194E57
.string "When I was in the Army, LT. SURGE\n"
.string "was my strict CO.\p"
.string "He was a hard taskmaster.$"
-Text_194EA5:: @ 8194EA5
+VermilionCity_Gym_Text_TuckerDefeat:: @ 8194EA5
.string "Stop!\n"
.string "You're very good!$"
-gUnknown_8194EBD:: @ 8194EBD
+VermilionCity_Gym_Text_TuckerPostBattle:: @ 8194EBD
.string "It's not easy opening that door.\p"
.string "LT. SURGE was always famous for\n"
.string "his cautious nature in the Army.$"
-Text_194F1F:: @ 8194F1F
+VermilionCity_Gym_Text_BailyIntro:: @ 8194F1F
.string "I'm a lightweight, but I'm good\n"
.string "with electricity!\p"
.string "That's why I joined this GYM.$"
-Text_194F6F:: @ 8194F6F
+VermilionCity_Gym_Text_BailyDefeat:: @ 8194F6F
.string "Fried!$"
-gUnknown_8194F76:: @ 8194F76
+VermilionCity_Gym_Text_BailyPostBattle:: @ 8194F76
.string "Okay, I'll talk!\p"
.string "LT. SURGE said he hid door\n"
.string "switches inside something.$"
-Text_194FBD:: @ 8194FBD
+VermilionCity_Gym_Text_DwayneIntro:: @ 8194FBD
.string "This is no place for kids!\n"
.string "Not even if you're good!$"
-Text_194FF1:: @ 8194FF1
+VermilionCity_Gym_Text_DwayneDefeat:: @ 8194FF1
.string "Wow!\n"
.string "Surprised me!$"
-gUnknown_8195004:: @ 8195004
+VermilionCity_Gym_Text_DwaynePostBattle:: @ 8195004
.string "LT. SURGE installed the traps in\n"
.string "the GYM himself.\p"
.string "He set up double locks everywhere.\n"
@@ -82,7 +82,7 @@ gUnknown_8195004:: @ 8195004
.string "When you open the first lock, the\n"
.string "second lock is right next to it.$"
-gUnknown_81950B4:: @ 81950B4
+VermilionCity_Gym_Text_GymGuyAdvice:: @ 81950B4
.string "Yo!\n"
.string "Champ in the making!\p"
.string "LT. SURGE has a nickname.\p"
@@ -97,42 +97,42 @@ gUnknown_81950B4:: @ 81950B4
.string "He's locked himself in, so it won't\n"
.string "be easy getting to him.$"
-gUnknown_81951EC:: @ 81951EC
+VermilionCity_Gym_Text_GymGuyPostVictory:: @ 81951EC
.string "Whew!\n"
.string "That match was electric!$"
-gUnknown_819520B:: @ 819520B
+VermilionCity_Gym_Text_GymStatue:: @ 819520B
.string "VERMILION POKéMON GYM\n"
.string "LEADER: LT. SURGE\p"
.string "WINNING TRAINERS:\n"
.string "{RIVAL}$"
-gUnknown_8195248:: @ 8195248
+VermilionCity_Gym_Text_GymStatuePlayerWon:: @ 8195248
.string "VERMILION POKéMON GYM\n"
.string "LEADER: LT. SURGE\p"
.string "WINNING TRAINERS:\n"
.string "{RIVAL}, {PLAYER}$"
-gUnknown_8195289:: @ 8195289
+VermilionCity_Gym_Text_NopeOnlyTrashHere:: @ 8195289
.string "Nope!\n"
.string "There's only trash here.$"
-gUnknown_81952A8:: @ 81952A8
+VermilionCity_Gym_Text_SwitchUnderTrashFirstLockOpened:: @ 81952A8
.string "Hey! There's a switch under the\n"
.string "trash! Turn it on!\p"
.string "The first electric lock opened!$"
-Text_1952FB:: @ 81952FB
+VermilionCity_Gym_Text_AnotherSwitchInTrash:: @ 81952FB
.string "ガサゴソ‥!\n"
.string "おっと! ゴミばこの そこに\l"
.string "また スイッチが あった!\l"
.string "おして みよう! ‥ ポチッとな$"
-gUnknown_8195330:: @ 8195330
+VermilionCity_Gym_Text_SecondLockOpened:: @ 8195330
.string "The second electric lock opened!\n"
.string "The motorized door opened!$"
-gUnknown_819536C:: @ 819536C
+VermilionCity_Gym_Text_OnlyTrashLocksWereReset:: @ 819536C
.string "Nope!\n"
.string "There's only trash here.\p"
.string "Hey!\n"
diff --git a/data/maps/VermilionCity_House1/map.json b/data/maps/VermilionCity_House1/map.json
index 7eec8c8e8..008e98610 100644
--- a/data/maps/VermilionCity_House1/map.json
+++ b/data/maps/VermilionCity_House1/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_House1_EventScript_16B3A7",
+ "script": "VermilionCity_House1_EventScript_FishingGuru",
"flag": "0"
}
],
diff --git a/data/maps/VermilionCity_House1/scripts.inc b/data/maps/VermilionCity_House1/scripts.inc
index 3fb54afee..8ab0b17f2 100644
--- a/data/maps/VermilionCity_House1/scripts.inc
+++ b/data/maps/VermilionCity_House1/scripts.inc
@@ -1,35 +1,35 @@
VermilionCity_House1_MapScripts:: @ 816B3A6
.byte 0
-VermilionCity_House1_EventScript_16B3A7:: @ 816B3A7
+VermilionCity_House1_EventScript_FishingGuru:: @ 816B3A7
lock
faceplayer
- goto_if_set FLAG_GOT_OLD_ROD, EventScript_16B3CF
- msgbox gUnknown_8193EC1, MSGBOX_YESNO
+ goto_if_set FLAG_GOT_OLD_ROD, VermilionCity_House1_EventScript_AlreadyGotOldRod
+ msgbox VermilionCity_House1_Text_ImFishingGuruDoYouLikeToFish, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16B3D9
- msgbox gUnknown_8194028
+ goto_if_eq VermilionCity_House1_EventScript_GiveOldRod
+ msgbox VermilionCity_House1_Text_OhThatsSoDisappointing
release
end
-EventScript_16B3CF:: @ 816B3CF
- msgbox gUnknown_8194045
+VermilionCity_House1_EventScript_AlreadyGotOldRod:: @ 816B3CF
+ msgbox VermilionCity_House1_Text_HowAreTheFishBiting
release
end
-EventScript_16B3D9:: @ 816B3D9
+VermilionCity_House1_EventScript_GiveOldRod:: @ 816B3D9
checkitemspace ITEM_OLD_ROD, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16B41A
+ goto_if_eq VermilionCity_House1_EventScript_NoRoomForOldRod
additem ITEM_OLD_ROD
- msgbox gUnknown_8193F2A
- msgreceiveditem gUnknown_8193F81, ITEM_OLD_ROD
+ msgbox VermilionCity_House1_Text_TakeThisAndFish
+ msgreceiveditem VermilionCity_House1_Text_ReceivedOldRodFromFishingGuru, ITEM_OLD_ROD
setflag FLAG_GOT_OLD_ROD
- msgbox gUnknown_8193FAF
+ msgbox VermilionCity_House1_Text_FishingIsAWayOfLife
release
end
-EventScript_16B41A:: @ 816B41A
- msgbox gUnknown_819406F
+VermilionCity_House1_EventScript_NoRoomForOldRod:: @ 816B41A
+ msgbox VermilionCity_House1_Text_NoRoomForNiceGift
release
end
diff --git a/data/maps/VermilionCity_House1/text.inc b/data/maps/VermilionCity_House1/text.inc
index 66ea21646..55c2c700c 100644
--- a/data/maps/VermilionCity_House1/text.inc
+++ b/data/maps/VermilionCity_House1/text.inc
@@ -1,39 +1,33 @@
-Text_193E82:: @ 8193E82
- .string "この あいだ やまおくで\n"
- .string "きんのたまを ひろい ましてね!\p"
- .string "つかえない しなもの ですが\n"
- .string "うったら なんと 5000¥でした$"
-
-gUnknown_8193EC1:: @ 8193EC1
+VermilionCity_House1_Text_ImFishingGuruDoYouLikeToFish:: @ 8193EC1
.string "I'm the FISHING GURU!\p"
.string "I simply looove fishing!\n"
.string "I can't bear to go without.\p"
.string "Tell me, do you like to fish?$"
-gUnknown_8193F2A:: @ 8193F2A
+VermilionCity_House1_Text_TakeThisAndFish:: @ 8193F2A
.string "Grand! I like your style.\n"
.string "I think we can be friends.\p"
.string "Take this and fish, young friend!$"
-gUnknown_8193F81:: @ 8193F81
+VermilionCity_House1_Text_ReceivedOldRodFromFishingGuru:: @ 8193F81
.string "{PLAYER} received an OLD ROD from\n"
.string "the FISHING GURU.$"
-gUnknown_8193FAF:: @ 8193FAF
+VermilionCity_House1_Text_FishingIsAWayOfLife:: @ 8193FAF
.string "Fishing is a way of life!\n"
.string "It is like the finest poetry.\p"
.string "From the seas to rivers, go out\n"
.string "and land the big one, my friend.$"
-gUnknown_8194028:: @ 8194028
+VermilionCity_House1_Text_OhThatsSoDisappointing:: @ 8194028
.string "Oh…\n"
.string "That's so disappointing…$"
-gUnknown_8194045:: @ 8194045
+VermilionCity_House1_Text_HowAreTheFishBiting:: @ 8194045
.string "Hello there, {PLAYER}!\p"
.string "How are the fish biting?$"
-gUnknown_819406F:: @ 819406F
+VermilionCity_House1_Text_NoRoomForNiceGift:: @ 819406F
.string "Oh, no!\p"
.string "I had a nice gift for you, but you\n"
.string "have no room for it!$"
diff --git a/data/maps/VermilionCity_House2/map.json b/data/maps/VermilionCity_House2/map.json
index a503a2aa6..3c40bf806 100644
--- a/data/maps/VermilionCity_House2/map.json
+++ b/data/maps/VermilionCity_House2/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_House2_EventScript_16B5D7",
+ "script": "VermilionCity_House2_EventScript_Elyssa",
"flag": "0"
}
],
diff --git a/data/maps/VermilionCity_House2/scripts.inc b/data/maps/VermilionCity_House2/scripts.inc
index 82cc901ba..8dbdd4888 100644
--- a/data/maps/VermilionCity_House2/scripts.inc
+++ b/data/maps/VermilionCity_House2/scripts.inc
@@ -1,39 +1,39 @@
VermilionCity_House2_MapScripts:: @ 816B5D6
.byte 0
-VermilionCity_House2_EventScript_16B5D7:: @ 816B5D7
+VermilionCity_House2_EventScript_Elyssa:: @ 816B5D7
lock
faceplayer
setvar VAR_0x8008, INGAME_TRADE_FARFETCHD
call EventScript_GetInGameTradeSpeciesInfo
- goto_if_set FLAG_DID_CH_DING_TRADE, EventScript_16B649
- msgbox gUnknown_81949CB, MSGBOX_YESNO
+ goto_if_set FLAG_DID_CH_DING_TRADE, VermilionCity_House2_EventScript_AlreadyTraded
+ msgbox VermilionCity_House2_Text_DoYouHaveMonWantToTradeForMyMon, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16B631
+ goto_if_eq VermilionCity_House2_EventScript_DeclineTrade
call EventScript_ChooseMonForInGameTrade
compare VAR_0x8004, PARTY_SIZE
- goto_if_ge EventScript_16B631
+ goto_if_ge VermilionCity_House2_EventScript_DeclineTrade
call EventScript_GetInGameTradeSpecies
compare VAR_RESULT, VAR_0x8009
- goto_if_ne EventScript_16B63B
+ goto_if_ne VermilionCity_House2_EventScript_NotRequestedMon
call EventScript_DoInGameTrade
- msgbox gUnknown_8194A44
+ msgbox VermilionCity_House2_Text_ThankYou
setflag FLAG_DID_CH_DING_TRADE
release
end
-EventScript_16B631:: @ 816B631
- msgbox gUnknown_81949FD
+VermilionCity_House2_EventScript_DeclineTrade:: @ 816B631
+ msgbox VermilionCity_House2_Text_ThatsTooBad
release
end
-EventScript_16B63B:: @ 816B63B
+VermilionCity_House2_EventScript_NotRequestedMon:: @ 816B63B
getspeciesname 0, VAR_0x8009
- msgbox gUnknown_8194A0D
+ msgbox VermilionCity_House2_Text_ThisIsNoMon
release
end
-EventScript_16B649:: @ 816B649
- msgbox gUnknown_8194A4F
+VermilionCity_House2_EventScript_AlreadyTraded:: @ 816B649
+ msgbox VermilionCity_House2_Text_HowIsMyOldMon
release
end
diff --git a/data/maps/VermilionCity_House2/text.inc b/data/maps/VermilionCity_House2/text.inc
new file mode 100644
index 000000000..2908cb450
--- /dev/null
+++ b/data/maps/VermilionCity_House2/text.inc
@@ -0,0 +1,20 @@
+VermilionCity_House2_Text_DoYouHaveMonWantToTradeForMyMon:: @ 81949CB
+ .string "Hi!\n"
+ .string "Do you have a {STR_VAR_1}?\p"
+ .string "Want to trade it for my\n"
+ .string "{STR_VAR_2}?$"
+
+VermilionCity_House2_Text_ThatsTooBad:: @ 81949FD
+ .string "That's too bad.$"
+
+VermilionCity_House2_Text_ThisIsNoMon:: @ 8194A0D
+ .string "…This is no {STR_VAR_1}.\p"
+ .string "If you get one, please trade it\n"
+ .string "to me!$"
+
+VermilionCity_House2_Text_ThankYou:: @ 8194A44
+ .string "Thank you!$"
+
+VermilionCity_House2_Text_HowIsMyOldMon:: @ 8194A4F
+ .string "How is my old {STR_VAR_2}?\p"
+ .string "My {STR_VAR_1} is doing great!$"
diff --git a/data/maps/VermilionCity_Mart/map.json b/data/maps/VermilionCity_Mart/map.json
index e2aaee125..3ef4658f1 100644
--- a/data/maps/VermilionCity_Mart/map.json
+++ b/data/maps/VermilionCity_Mart/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_Mart_EventScript_16B666",
+ "script": "VermilionCity_Mart_EventScript_Clerk",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_Mart_EventScript_16B654",
+ "script": "VermilionCity_Mart_EventScript_CooltrainerF",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_Mart_EventScript_16B65D",
+ "script": "VermilionCity_Mart_EventScript_BaldingMan",
"flag": "0"
}
],
diff --git a/data/maps/VermilionCity_Mart/scripts.inc b/data/maps/VermilionCity_Mart/scripts.inc
index 3af796ada..3ce0d842a 100644
--- a/data/maps/VermilionCity_Mart/scripts.inc
+++ b/data/maps/VermilionCity_Mart/scripts.inc
@@ -1,27 +1,27 @@
VermilionCity_Mart_MapScripts:: @ 816B653
.byte 0
-VermilionCity_Mart_EventScript_16B654:: @ 816B654
- msgbox gUnknown_8194B65, MSGBOX_NPC
+VermilionCity_Mart_EventScript_CooltrainerF:: @ 816B654
+ msgbox VermilionCity_Mart_Text_MonsGoodOrBadDependingOnTrainer, MSGBOX_NPC
end
-VermilionCity_Mart_EventScript_16B65D:: @ 816B65D
- msgbox gUnknown_8194A77, MSGBOX_NPC
+VermilionCity_Mart_EventScript_BaldingMan:: @ 816B65D
+ msgbox VermilionCity_Mart_Text_TeamRocketAreWickedPeople, MSGBOX_NPC
end
-VermilionCity_Mart_EventScript_16B666:: @ 816B666
+VermilionCity_Mart_EventScript_Clerk:: @ 816B666
goto_if_questlog EventScript_ReleaseEnd
lock
faceplayer
message Text_MayIHelpYou
waitmessage
- pokemart Items_16B68C
+ pokemart VermilionCity_Mart_Items
msgbox Text_PleaseComeAgain
release
end
.align 2
-Items_16B68C:: @ 816B68C
+VermilionCity_Mart_Items:: @ 816B68C
.2byte ITEM_POKE_BALL
.2byte ITEM_SUPER_POTION
.2byte ITEM_ANTIDOTE
diff --git a/data/maps/VermilionCity_Mart/text.inc b/data/maps/VermilionCity_Mart/text.inc
index 2d85d941f..b8685b62a 100644
--- a/data/maps/VermilionCity_Mart/text.inc
+++ b/data/maps/VermilionCity_Mart/text.inc
@@ -1,4 +1,4 @@
-gUnknown_8194A77:: @ 8194A77
+VermilionCity_Mart_Text_TeamRocketAreWickedPeople:: @ 8194A77
.string "There are wicked people who will\n"
.string "use POKéMON for criminal acts.\p"
.string "TEAM ROCKET traffics in rare\n"
@@ -8,7 +8,7 @@ gUnknown_8194A77:: @ 8194A77
.string "That's the sort of horrid people\n"
.string "they are, TEAM ROCKET.$"
-gUnknown_8194B65:: @ 8194B65
+VermilionCity_Mart_Text_MonsGoodOrBadDependingOnTrainer:: @ 8194B65
.string "I think POKéMON can be good or\n"
.string "bad. It depends on the TRAINER.$"
diff --git a/data/maps/VermilionCity_PokemonCenter_1F/map.json b/data/maps/VermilionCity_PokemonCenter_1F/map.json
index 70b50d7fe..b9837fca2 100644
--- a/data/maps/VermilionCity_PokemonCenter_1F/map.json
+++ b/data/maps/VermilionCity_PokemonCenter_1F/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_16B433",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_Nurse",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_16B43C",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_Man",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_16B445",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_Hiker",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_16B44E",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_Youngster",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_1A8D08",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_VSSeekerWoman",
"flag": "0"
},
{
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_1ACE83",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_PokemonJournalLtSurge",
"flag": "FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL"
},
{
@@ -101,7 +101,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonCenter_1F_EventScript_1ACE83",
+ "script": "VermilionCity_PokemonCenter_1F_EventScript_PokemonJournalLtSurge",
"flag": "FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL"
}
],
diff --git a/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc b/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc
index ad7e02455..5f4338101 100644
--- a/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc
@@ -7,21 +7,21 @@ VermilionCity_PokemonCenter_1F_OnTransition:: @ 816B42F
setrespawn SPAWN_VERMILION_CITY
end
-VermilionCity_PokemonCenter_1F_EventScript_16B433:: @ 816B433
+VermilionCity_PokemonCenter_1F_EventScript_Nurse:: @ 816B433
lock
faceplayer
call EventScript_PkmnCenterNurse
release
end
-VermilionCity_PokemonCenter_1F_EventScript_16B43C:: @ 816B43C
- msgbox gUnknown_8194145, MSGBOX_NPC
+VermilionCity_PokemonCenter_1F_EventScript_Man:: @ 816B43C
+ msgbox VermilionCity_PokemonCenter_1F_Text_PoisonedMonFaintedWhileWalking, MSGBOX_NPC
end
-VermilionCity_PokemonCenter_1F_EventScript_16B445:: @ 816B445
- msgbox gUnknown_81940AF, MSGBOX_NPC
+VermilionCity_PokemonCenter_1F_EventScript_Hiker:: @ 816B445
+ msgbox VermilionCity_PokemonCenter_1F_Text_TrainerMonsStrongerThanWild, MSGBOX_NPC
end
-VermilionCity_PokemonCenter_1F_EventScript_16B44E:: @ 816B44E
- msgbox gUnknown_8194180, MSGBOX_NPC
+VermilionCity_PokemonCenter_1F_EventScript_Youngster:: @ 816B44E
+ msgbox VermilionCity_PokemonCenter_1F_Text_AllMonWeakToSpecificTypes, MSGBOX_NPC
end
diff --git a/data/maps/VermilionCity_PokemonCenter_1F/text.inc b/data/maps/VermilionCity_PokemonCenter_1F/text.inc
index 811f01edf..cd3780286 100644
--- a/data/maps/VermilionCity_PokemonCenter_1F/text.inc
+++ b/data/maps/VermilionCity_PokemonCenter_1F/text.inc
@@ -1,15 +1,15 @@
-gUnknown_81940AF:: @ 81940AF
+VermilionCity_PokemonCenter_1F_Text_TrainerMonsStrongerThanWild:: @ 81940AF
.string "Even if they are the same level,\n"
.string "POKéMON can have very different\l"
.string "stats and abilities.\p"
.string "A POKéMON raised by a TRAINER is\n"
.string "stronger than one in the wild.$"
-gUnknown_8194145:: @ 8194145
+VermilionCity_PokemonCenter_1F_Text_PoisonedMonFaintedWhileWalking:: @ 8194145
.string "My POKéMON was poisoned!\n"
.string "It fainted while we were walking!$"
-gUnknown_8194180:: @ 8194180
+VermilionCity_PokemonCenter_1F_Text_AllMonWeakToSpecificTypes:: @ 8194180
.string "It is true that a higher-level\n"
.string "POKéMON will be more powerful…\p"
.string "But, all POKéMON will have weak\n"
@@ -17,3 +17,28 @@ gUnknown_8194180:: @ 8194180
.string "So, there appears to be no\n"
.string "universally strong POKéMON.$"
+VermilionCity_PokemonCenter_1F_Text_UrgeToBattleSomeoneAgain:: @ 8194234
+ .string "The urge to battle with someone\n"
+ .string "you've tangled with before…\p"
+ .string "Have you ever had that urge?\n"
+ .string "I'm sure you have.\p"
+ .string "I wanted to battle certain people\n"
+ .string "again over and over, too.\p"
+ .string "So, I've been giving these away.\n"
+ .string "Please, take one!$"
+
+VermilionCity_PokemonCenter_1F_Text_UseDeviceForRematches:: @ 819430F
+ .string "Use that device and you'll find\n"
+ .string "TRAINERS looking for a rematch.\p"
+ .string "You have to charge its battery to\n"
+ .string "use it, though.$"
+
+VermilionCity_PokemonCenter_1F_Text_ExplainVSSeeker:: @ 8194381
+ .string "How do you use the VS SEEKER?\n"
+ .string "There's nothing to it.\p"
+ .string "Use it like beep-beep-beep, and\n"
+ .string "TRAINERS around you will notice.\p"
+ .string "If any TRAINER wants a rematch,\n"
+ .string "it will let you know immediately.\p"
+ .string "Charge its battery and use it\n"
+ .string "while you're on a road.$"
diff --git a/data/maps/VermilionCity_PokemonFanClub/map.json b/data/maps/VermilionCity_PokemonFanClub/map.json
index c9f0c45ed..c669797e7 100644
--- a/data/maps/VermilionCity_PokemonFanClub/map.json
+++ b/data/maps/VermilionCity_PokemonFanClub/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B47F",
+ "script": "VermilionCity_PokemonFanClub_EventScript_Chairman",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B4FC",
+ "script": "VermilionCity_PokemonFanClub_EventScript_WorkerF",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B59E",
+ "script": "VermilionCity_PokemonFanClub_EventScript_Pikachu",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B5B1",
+ "script": "VermilionCity_PokemonFanClub_EventScript_Seel",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B528",
+ "script": "VermilionCity_PokemonFanClub_EventScript_Woman",
"flag": "0"
},
{
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B563",
+ "script": "VermilionCity_PokemonFanClub_EventScript_FatMan",
"flag": "0"
}
],
@@ -122,14 +122,14 @@
"x": 2,
"y": 1,
"elevation": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B5C4"
+ "script": "VermilionCity_PokemonFanClub_EventScript_RulesSign1"
},
{
"type": "bg_event_type_0",
"x": 9,
"y": 1,
"elevation": 0,
- "script": "VermilionCity_PokemonFanClub_EventScript_16B5CD"
+ "script": "VermilionCity_PokemonFanClub_EventScript_RulesSign2"
}
]
}
diff --git a/data/maps/VermilionCity_PokemonFanClub/scripts.inc b/data/maps/VermilionCity_PokemonFanClub/scripts.inc
index 23b24b9a2..09f8d1d8b 100644
--- a/data/maps/VermilionCity_PokemonFanClub/scripts.inc
+++ b/data/maps/VermilionCity_PokemonFanClub/scripts.inc
@@ -1,118 +1,121 @@
+.equ SPOKE_TO_WOMAN_LAST, FLAG_TEMP_2
+.equ SPOKE_TO_FAT_MAN_LAST, FLAG_TEMP_3
+
VermilionCity_PokemonFanClub_MapScripts:: @ 816B47E
.byte 0
-VermilionCity_PokemonFanClub_EventScript_16B47F:: @ 816B47F
+VermilionCity_PokemonFanClub_EventScript_Chairman:: @ 816B47F
lock
faceplayer
- goto_if_set FLAG_GOT_BIKE_VOUCHER, EventScript_16B4A7
- msgbox gUnknown_819457E, MSGBOX_YESNO
+ goto_if_set FLAG_GOT_BIKE_VOUCHER, VermilionCity_PokemonFanClub_EventScript_AlreadyHeardStory
+ msgbox VermilionCity_PokemonFanClub_Text_DidYouComeToHearAboutMyMons, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16B4B1
- msgbox gUnknown_8194860
+ goto_if_eq VermilionCity_PokemonFanClub_EventScript_ChairmanStory
+ msgbox VermilionCity_PokemonFanClub_Text_ComeBackToHearStory
release
end
-EventScript_16B4A7:: @ 816B4A7
- msgbox gUnknown_819488E
+VermilionCity_PokemonFanClub_EventScript_AlreadyHeardStory:: @ 816B4A7
+ msgbox VermilionCity_PokemonFanClub_Text_DidntComeToSeeAboutMonsAgain
release
end
-EventScript_16B4B1:: @ 816B4B1
- msgbox gUnknown_8194628
+VermilionCity_PokemonFanClub_EventScript_ChairmanStory:: @ 816B4B1
+ msgbox VermilionCity_PokemonFanClub_Text_ChairmansStory
checkitemspace ITEM_BIKE_VOUCHER, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16B4F2
+ goto_if_eq VermilionCity_PokemonFanClub_EventScript_NoRoomForBikeVoucher
setflag FLAG_GOT_BIKE_VOUCHER
- giveitem_msg gUnknown_819474E, ITEM_BIKE_VOUCHER, 1, MUS_FAN5
- msgbox gUnknown_819477C
+ giveitem_msg VermilionCity_PokemonFanClub_Text_ReceivedBikeVoucherFromChairman, ITEM_BIKE_VOUCHER, 1, MUS_FAN5
+ msgbox VermilionCity_PokemonFanClub_Text_ExplainBikeVoucher
release
end
-EventScript_16B4F2:: @ 816B4F2
- msgbox gUnknown_81948D2
+VermilionCity_PokemonFanClub_EventScript_NoRoomForBikeVoucher:: @ 816B4F2
+ msgbox VermilionCity_PokemonFanClub_Text_MakeRoomForThis
release
end
-VermilionCity_PokemonFanClub_EventScript_16B4FC:: @ 816B4FC
+VermilionCity_PokemonFanClub_EventScript_WorkerF:: @ 816B4FC
lock
faceplayer
- goto_if_set FLAG_SYS_GAME_CLEAR, EventScript_16B511
- msgbox gUnknown_81948E6
+ goto_if_set FLAG_SYS_GAME_CLEAR, VermilionCity_PokemonFanClub_EventScript_WorkerFGameClear
+ msgbox VermilionCity_PokemonFanClub_Text_ChairmanVeryVocalAboutPokemon
release
end
-EventScript_16B511:: @ 816B511
+VermilionCity_PokemonFanClub_EventScript_WorkerFGameClear:: @ 816B511
famechecker FAMECHECKER_DAISY, 1
- msgbox gUnknown_8194960
+ msgbox VermilionCity_PokemonFanClub_Text_ChairmanReallyAdoresHisMons
release
end
-VermilionCity_PokemonFanClub_EventScript_16B528:: @ 816B528
+VermilionCity_PokemonFanClub_EventScript_Woman:: @ 816B528
lock
faceplayer
- goto_if_set FLAG_TEMP_3, EventScript_16B54B
- msgbox gUnknown_81944CC
+ goto_if_set SPOKE_TO_FAT_MAN_LAST, VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan
+ msgbox VermilionCity_PokemonFanClub_Text_AdoreMySeel
closemessage
applymovement 5, Movement_FaceOriginalDirection
waitmovement 0
- setflag FLAG_TEMP_2
+ setflag SPOKE_TO_WOMAN_LAST
release
end
-EventScript_16B54B:: @ 816B54B
- msgbox gUnknown_8194518
+VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan:: @ 816B54B
+ msgbox VermilionCity_PokemonFanClub_Text_SeelFarMoreAttractive
closemessage
applymovement 5, Movement_FaceOriginalDirection
waitmovement 0
- clearflag FLAG_TEMP_3
+ clearflag SPOKE_TO_FAT_MAN_LAST
release
end
-VermilionCity_PokemonFanClub_EventScript_16B563:: @ 816B563
+VermilionCity_PokemonFanClub_EventScript_FatMan:: @ 816B563
lock
faceplayer
- goto_if_set FLAG_TEMP_2, EventScript_16B586
- msgbox gUnknown_819446F
+ goto_if_set SPOKE_TO_WOMAN_LAST, VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman
+ msgbox VermilionCity_PokemonFanClub_Text_AdmirePikachusTail
closemessage
applymovement 6, Movement_FaceOriginalDirection
waitmovement 0
- setflag FLAG_TEMP_3
+ setflag SPOKE_TO_FAT_MAN_LAST
release
end
-EventScript_16B586:: @ 816B586
- msgbox gUnknown_819449C
+VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman:: @ 816B586
+ msgbox VermilionCity_PokemonFanClub_Text_PikachuTwiceAsCute
closemessage
applymovement 6, Movement_FaceOriginalDirection
waitmovement 0
- clearflag FLAG_TEMP_2
+ clearflag SPOKE_TO_WOMAN_LAST
release
end
-VermilionCity_PokemonFanClub_EventScript_16B59E:: @ 816B59E
+VermilionCity_PokemonFanClub_EventScript_Pikachu:: @ 816B59E
lock
faceplayer
waitse
playmoncry SPECIES_PIKACHU, 0
- msgbox gUnknown_819455A
+ msgbox VermilionCity_PokemonFanClub_Text_Pikachu
waitmoncry
release
end
-VermilionCity_PokemonFanClub_EventScript_16B5B1:: @ 816B5B1
+VermilionCity_PokemonFanClub_EventScript_Seel:: @ 816B5B1
lock
faceplayer
waitse
playmoncry SPECIES_SEEL, 0
- msgbox gUnknown_8194571
+ msgbox VermilionCity_PokemonFanClub_Text_Seel
waitmoncry
release
end
-VermilionCity_PokemonFanClub_EventScript_16B5C4:: @ 816B5C4
- msgbox gUnknown_8194910, MSGBOX_SIGN
+VermilionCity_PokemonFanClub_EventScript_RulesSign1:: @ 816B5C4
+ msgbox VermilionCity_PokemonFanClub_Text_ListenPolitelyToOtherTrainers, MSGBOX_SIGN
end
-VermilionCity_PokemonFanClub_EventScript_16B5CD:: @ 816B5CD
- msgbox gUnknown_819493D, MSGBOX_SIGN
+VermilionCity_PokemonFanClub_EventScript_RulesSign2:: @ 816B5CD
+ msgbox VermilionCity_PokemonFanClub_Text_SomeoneBragsBragBack, MSGBOX_SIGN
end
diff --git a/data/maps/VermilionCity_PokemonFanClub/text.inc b/data/maps/VermilionCity_PokemonFanClub/text.inc
index 1264be24d..7e28fd548 100644
--- a/data/maps/VermilionCity_PokemonFanClub/text.inc
+++ b/data/maps/VermilionCity_PokemonFanClub/text.inc
@@ -1,56 +1,30 @@
-Text_194234:: @ 8194234
- .string "The urge to battle with someone\n"
- .string "you've tangled with before…\p"
- .string "Have you ever had that urge?\n"
- .string "I'm sure you have.\p"
- .string "I wanted to battle certain people\n"
- .string "again over and over, too.\p"
- .string "So, I've been giving these away.\n"
- .string "Please, take one!$"
-
-Text_19430F:: @ 819430F
- .string "Use that device and you'll find\n"
- .string "TRAINERS looking for a rematch.\p"
- .string "You have to charge its battery to\n"
- .string "use it, though.$"
-
-Text_194381:: @ 8194381
- .string "How do you use the VS SEEKER?\n"
- .string "There's nothing to it.\p"
- .string "Use it like beep-beep-beep, and\n"
- .string "TRAINERS around you will notice.\p"
- .string "If any TRAINER wants a rematch,\n"
- .string "it will let you know immediately.\p"
- .string "Charge its battery and use it\n"
- .string "while you're on a road.$"
-
-gUnknown_819446F:: @ 819446F
+VermilionCity_PokemonFanClub_Text_AdmirePikachusTail:: @ 819446F
.string "Won't you admire my PIKACHU's\n"
.string "adorable tail?$"
-gUnknown_819449C:: @ 819449C
+VermilionCity_PokemonFanClub_Text_PikachuTwiceAsCute:: @ 819449C
.string "Humph!\p"
.string "My PIKACHU is twice as cute as\n"
.string "that one!$"
-gUnknown_81944CC:: @ 81944CC
+VermilionCity_PokemonFanClub_Text_AdoreMySeel:: @ 81944CC
.string "I just adore my SEEL!\n"
.string "It's so lovable!\p"
.string "It squeals, “Kyuuuh,” when I\n"
.string "hug it!$"
-gUnknown_8194518:: @ 8194518
+VermilionCity_PokemonFanClub_Text_SeelFarMoreAttractive:: @ 8194518
.string "Oh, dear!\p"
.string "My SEEL is far more attractive.\n"
.string "By double, I would say.$"
-gUnknown_819455A:: @ 819455A
+VermilionCity_PokemonFanClub_Text_Pikachu:: @ 819455A
.string "PIKACHU: Chu! Pikachu!$"
-gUnknown_8194571:: @ 8194571
+VermilionCity_PokemonFanClub_Text_Seel:: @ 8194571
.string "SEEL: Kyuoo!$"
-gUnknown_819457E:: @ 819457E
+VermilionCity_PokemonFanClub_Text_DidYouComeToHearAboutMyMons:: @ 819457E
.string "I chair the POKéMON Fan Club!\p"
.string "I raise more than a hundred\n"
.string "POKéMON!\p"
@@ -60,7 +34,7 @@ gUnknown_819457E:: @ 819457E
.string "Did you come visit to hear about\n"
.string "my POKéMON?$"
-gUnknown_8194628:: @ 8194628
+VermilionCity_PokemonFanClub_Text_ChairmansStory:: @ 8194628
.string "Good!\n"
.string "Then listen up!\p"
.string "My favorite RAPIDASH…\p"
@@ -76,11 +50,11 @@ gUnknown_8194628:: @ 8194628
.string "Thanks for hearing me out!\n"
.string "I want you to have this!$"
-gUnknown_819474E:: @ 819474E
+VermilionCity_PokemonFanClub_Text_ReceivedBikeVoucherFromChairman:: @ 819474E
.string "{PLAYER} received a BIKE VOUCHER\n"
.string "from the CHAIRMAN.$"
-gUnknown_819477C:: @ 819477C
+VermilionCity_PokemonFanClub_Text_ExplainBikeVoucher:: @ 819477C
.string "Take that BIKE VOUCHER to the\n"
.string "BIKE SHOP in CERULEAN CITY.\p"
.string "Exchange that for a BICYCLE\n"
@@ -90,55 +64,33 @@ gUnknown_819477C:: @ 819477C
.string "So, I have no need for a BICYCLE.\p"
.string "I hope you like cycling!$"
-gUnknown_8194860:: @ 8194860
+VermilionCity_PokemonFanClub_Text_ComeBackToHearStory:: @ 8194860
.string "Oh. Come back when you want to\n"
.string "hear my story!$"
-gUnknown_819488E:: @ 819488E
+VermilionCity_PokemonFanClub_Text_DidntComeToSeeAboutMonsAgain:: @ 819488E
.string "Hello, {PLAYER}!\p"
.string "Did you come see me about my\n"
.string "POKéMON again?\p"
.string "No?\n"
.string "Too bad!$"
-gUnknown_81948D2:: @ 81948D2
+VermilionCity_PokemonFanClub_Text_MakeRoomForThis:: @ 81948D2
.string "Make room for this!$"
-gUnknown_81948E6:: @ 81948E6
+VermilionCity_PokemonFanClub_Text_ChairmanVeryVocalAboutPokemon:: @ 81948E6
.string "Our CHAIRMAN is very vocal about\n"
.string "POKéMON.$"
-gUnknown_8194910:: @ 8194910
+VermilionCity_PokemonFanClub_Text_ListenPolitelyToOtherTrainers:: @ 8194910
.string "Let's all listen politely to other\n"
.string "TRAINERS!$"
-gUnknown_819493D:: @ 819493D
+VermilionCity_PokemonFanClub_Text_SomeoneBragsBragBack:: @ 819493D
.string "If someone brags, brag right back!$"
-gUnknown_8194960:: @ 8194960
+VermilionCity_PokemonFanClub_Text_ChairmanReallyAdoresHisMons:: @ 8194960
.string "Our CHAIRMAN really does adore his\n"
.string "POKéMON.\p"
.string "But the person who is most liked by\n"
.string "POKéMON is DAISY, I think.$"
-
-gUnknown_81949CB:: @ 81949CB
- .string "Hi!\n"
- .string "Do you have a {STR_VAR_1}?\p"
- .string "Want to trade it for my\n"
- .string "{STR_VAR_2}?$"
-
-gUnknown_81949FD:: @ 81949FD
- .string "That's too bad.$"
-
-gUnknown_8194A0D:: @ 8194A0D
- .string "…This is no {STR_VAR_1}.\p"
- .string "If you get one, please trade it\n"
- .string "to me!$"
-
-gUnknown_8194A44:: @ 8194A44
- .string "Thank you!$"
-
-gUnknown_8194A4F:: @ 8194A4F
- .string "How is my old {STR_VAR_2}?\p"
- .string "My {STR_VAR_1} is doing great!$"
-
diff --git a/data/maps/ViridianCity/map.json b/data/maps/ViridianCity/map.json
index ca30e0c6e..a83f47f5a 100644
--- a/data/maps/ViridianCity/map.json
+++ b/data/maps/ViridianCity/map.json
@@ -65,7 +65,7 @@
"movement_range_y": 0,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_EventScript_1659CA",
+ "script": "ViridianCity_EventScript_OldMan",
"flag": "0"
},
{
@@ -78,7 +78,7 @@
"movement_range_y": 3,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_EventScript_1659F6",
+ "script": "ViridianCity_EventScript_TutorialOldMan",
"flag": "0"
},
{
@@ -91,7 +91,7 @@
"movement_range_y": 3,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_EventScript_165AC4",
+ "script": "ViridianCity_EventScript_Woman",
"flag": "0"
},
{
@@ -104,7 +104,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_EventScript_165A8F",
+ "script": "ViridianCity_EventScript_Youngster",
"flag": "0"
},
{
@@ -117,7 +117,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_EventScript_1659C1",
+ "script": "ViridianCity_EventScript_Boy",
"flag": "0"
},
{
@@ -192,7 +192,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN",
"var_value": 0,
- "script": "ViridianCity_EventScript_165AF6"
+ "script": "ViridianCity_EventScript_RoadBlocked"
},
{
"type": "trigger",
@@ -201,7 +201,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR",
"var_value": 0,
- "script": "ViridianCity_EventScript_16596D"
+ "script": "ViridianCity_EventScript_GymDoorLocked"
},
{
"type": "trigger",
@@ -210,7 +210,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN",
"var_value": 1,
- "script": "ViridianCity_EventScript_165B10"
+ "script": "ViridianCity_EventScript_TutorialTriggerLeft"
},
{
"type": "trigger",
@@ -219,7 +219,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN",
"var_value": 1,
- "script": "ViridianCity_EventScript_165B2E"
+ "script": "ViridianCity_EventScript_TutorialTriggerRight"
}
],
"bg_events": [
@@ -228,35 +228,35 @@
"x": 23,
"y": 1,
"elevation": 3,
- "script": "ViridianCity_EventScript_16599D"
+ "script": "ViridianCity_EventScript_TrainerTips1"
},
{
"type": "bg_event_type_0",
"x": 32,
"y": 10,
"elevation": 0,
- "script": "ViridianCity_EventScript_1659AF"
+ "script": "ViridianCity_EventScript_GymSign"
},
{
"type": "bg_event_type_0",
"x": 20,
"y": 31,
"elevation": 0,
- "script": "ViridianCity_EventScript_1659A6"
+ "script": "ViridianCity_EventScript_TrainerTips2"
},
{
"type": "bg_event_type_0",
"x": 20,
"y": 16,
"elevation": 0,
- "script": "ViridianCity_EventScript_165994"
+ "script": "ViridianCity_EventScript_CitySign"
},
{
"type": "bg_event_type_0",
"x": 36,
"y": 10,
"elevation": 0,
- "script": "ViridianCity_EventScript_1659B8"
+ "script": "ViridianCity_EventScript_GymDoor"
}
]
}
diff --git a/data/maps/ViridianCity/scripts.inc b/data/maps/ViridianCity/scripts.inc
index c317a92eb..4fb140b24 100644
--- a/data/maps/ViridianCity/scripts.inc
+++ b/data/maps/ViridianCity/scripts.inc
@@ -1,3 +1,5 @@
+.equ LOCALID_TUTORIAL_MAN, 4
+
ViridianCity_MapScripts:: @ 81658D3
map_script MAP_SCRIPT_ON_TRANSITION, ViridianCity_OnTransition
.byte 0
@@ -5,32 +7,32 @@ ViridianCity_MapScripts:: @ 81658D3
ViridianCity_OnTransition:: @ 81658D9
setworldmapflag FLAG_WORLD_MAP_VIRIDIAN_CITY
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 0
- call_if_eq EventScript_165920
+ call_if_eq ViridianCity_EventScript_SetOldManBlockingRoad
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1
- call_if_eq EventScript_16590F
+ call_if_eq ViridianCity_EventScript_SetOldManStandingByRoad
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 2
- call_if_ge EventScript_165909
+ call_if_ge ViridianCity_EventScript_SetOldManNormal
compare VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 0
- call_if_eq EventScript_165931
+ call_if_eq ViridianCity_EventScript_TryUnlockGym
end
-EventScript_165909:: @ 8165909
+ViridianCity_EventScript_SetOldManNormal:: @ 8165909
setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_OLD_MAN_1
return
-EventScript_16590F:: @ 816590F
+ViridianCity_EventScript_SetOldManStandingByRoad:: @ 816590F
setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_OLD_MAN_1
- setobjectxyperm 4, 21, 8
- setobjectmovementtype 4, 1
+ setobjectxyperm LOCALID_TUTORIAL_MAN, 21, 8
+ setobjectmovementtype LOCALID_TUTORIAL_MAN, MOVEMENT_TYPE_LOOK_AROUND
return
-EventScript_165920:: @ 8165920
- setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_VIRIDIAN_DRUNK
- setobjectxyperm 4, 21, 11
- setobjectmovementtype 4, 8
+ViridianCity_EventScript_SetOldManBlockingRoad:: @ 8165920
+ setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_OLD_MAN_LYING_DOWN
+ setobjectxyperm LOCALID_TUTORIAL_MAN, 21, 11
+ setobjectmovementtype LOCALID_TUTORIAL_MAN, MOVEMENT_TYPE_FACE_DOWN
return
-EventScript_165931:: @ 8165931
+ViridianCity_EventScript_TryUnlockGym:: @ 8165931
goto_if_unset FLAG_BADGE02_GET, EventScript_Return
goto_if_unset FLAG_BADGE03_GET, EventScript_Return
goto_if_unset FLAG_BADGE04_GET, EventScript_Return
@@ -40,106 +42,109 @@ EventScript_165931:: @ 8165931
setvar VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 1
return
-ViridianCity_EventScript_16596D:: @ 816596D
+ViridianCity_EventScript_GymDoorLocked:: @ 816596D
lockall
textcolor 3
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp
waitmovement 0
delay 20
- msgbox gUnknown_817E2F5
+ msgbox ViridianCity_Text_GymDoorsAreLocked
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_165992
+ applymovement OBJ_EVENT_ID_PLAYER, ViridianCity_Movement_JumpDownLedge
waitmovement 0
releaseall
end
-Movement_165992:: @ 8165992
+ViridianCity_Movement_JumpDownLedge:: @ 8165992
jump_2_down
step_end
-ViridianCity_EventScript_165994:: @ 8165994
- msgbox gUnknown_817E1BB, MSGBOX_SIGN
+ViridianCity_EventScript_CitySign:: @ 8165994
+ msgbox ViridianCity_Text_CitySign, MSGBOX_SIGN
end
-ViridianCity_EventScript_16599D:: @ 816599D
- msgbox gUnknown_817E1E7, MSGBOX_SIGN
+ViridianCity_EventScript_TrainerTips1:: @ 816599D
+ msgbox ViridianCity_Text_CatchMonsForEasierBattles, MSGBOX_SIGN
end
-ViridianCity_EventScript_1659A6:: @ 81659A6
- msgbox gUnknown_817E24D, MSGBOX_SIGN
+ViridianCity_EventScript_TrainerTips2:: @ 81659A6
+ msgbox ViridianCity_Text_MovesLimitedByPP, MSGBOX_SIGN
end
-ViridianCity_EventScript_1659AF:: @ 81659AF
- msgbox gUnknown_817E2DB, MSGBOX_SIGN
+ViridianCity_EventScript_GymSign:: @ 81659AF
+ msgbox ViridianCity_Text_GymSign, MSGBOX_SIGN
end
-ViridianCity_EventScript_1659B8:: @ 81659B8
- msgbox gUnknown_817E2F5, MSGBOX_SIGN
+ViridianCity_EventScript_GymDoor:: @ 81659B8
+ msgbox ViridianCity_Text_GymDoorsAreLocked, MSGBOX_SIGN
end
-ViridianCity_EventScript_1659C1:: @ 81659C1
- msgbox gUnknown_817DABB, MSGBOX_NPC
+ViridianCity_EventScript_Boy:: @ 81659C1
+ msgbox ViridianCity_Text_CanCarryMonsAnywhere, MSGBOX_NPC
end
-ViridianCity_EventScript_1659CA:: @ 81659CA
+@ Other old man, not the tutorial old man
+ViridianCity_EventScript_OldMan:: @ 81659CA
lock
faceplayer
compare VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 1
- goto_if_eq EventScript_1659EC
- msgbox gUnknown_817DB39
+ goto_if_eq ViridianCity_EventScript_OldManGymLeaderReturned
+ msgbox ViridianCity_Text_GymClosedWonderWhoLeaderIs
closemessage
applymovement 3, Movement_FaceOriginalDirection
waitmovement 0
release
end
-EventScript_1659EC:: @ 81659EC
- msgbox gUnknown_817DB78
+ViridianCity_EventScript_OldManGymLeaderReturned:: @ 81659EC
+ msgbox ViridianCity_Text_ViridiansGymLeaderReturned
release
end
-ViridianCity_EventScript_1659F6:: @ 81659F6
+ViridianCity_EventScript_TutorialOldMan:: @ 81659F6
lock
faceplayer
- goto_if_set FLAG_BADGE01_GET, EventScript_165A23
+ goto_if_set FLAG_BADGE01_GET, ViridianCity_EventScript_AskIfTeachyTVHelpful
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 2
- goto_if_ge EventScript_165A4A
+ goto_if_ge ViridianCity_EventScript_TutorialCompleted
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1
- goto_if_eq EventScript_165A54
+ goto_if_eq ViridianCity_EventScript_TutorialStart
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 0
- goto_if_eq EventScript_165A84
+ goto_if_eq ViridianCity_EventScript_TutorialNotReady
end
-EventScript_165A23:: @ 8165A23
- msgbox gUnknown_817E046, MSGBOX_YESNO
+ViridianCity_EventScript_AskIfTeachyTVHelpful:: @ 8165A23
+ msgbox ViridianCity_Text_HowsTeachyTVHelping, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_165A40
- msgbox gUnknown_817E0EA
+ goto_if_eq ViridianCity_EventScript_TeachyTVNotHelpful
+ msgbox ViridianCity_Text_MyGrandsonOnTheShow
release
end
-EventScript_165A40:: @ 8165A40
- msgbox gUnknown_817E14E
+ViridianCity_EventScript_TeachyTVNotHelpful:: @ 8165A40
+ msgbox ViridianCity_Text_TooBusyForTeachyTV
release
end
-EventScript_165A4A:: @ 8165A4A
- msgbox gUnknown_817DF61
+ViridianCity_EventScript_TutorialCompleted:: @ 8165A4A
+ msgbox ViridianCity_Text_WeakenMonsFirstToCatch
release
end
-EventScript_165A54:: @ 8165A54
- call EventScript_165B4C
+ViridianCity_EventScript_TutorialStart:: @ 8165A54
+ call ViridianCity_EventScript_DoTutorialBattle
release
end
-EventScript_165A5B:: @ 8165A5B
- msgbox gUnknown_817DEEB
+@ Unused
+ViridianCity_EventScript_WatchToLearnBasics:: @ 8165A5B
+ msgbox ViridianCity_Text_WatchThatToLearnBasics
release
end
-EventScript_165A65:: @ 8165A65
- msgbox gUnknown_817DE9B
+@ Unused. Starts battle after the post battle text, which is odd.
+ViridianCity_EventScript_TutorialUnused:: @ 8165A65
+ msgbox ViridianCity_Text_ThatWasEducationalTakeThis
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
special ScrSpecial_StartOldManTutorialBattle
@@ -147,43 +152,43 @@ EventScript_165A65:: @ 8165A65
release
end
-EventScript_165A84:: @ 8165A84
- msgbox gUnknown_817DD03
+ViridianCity_EventScript_TutorialNotReady:: @ 8165A84
+ msgbox ViridianCity_Text_ThisIsPrivateProperty
closemessage
release
end
-ViridianCity_EventScript_165A8F:: @ 8165A8F
+ViridianCity_EventScript_Youngster:: @ 8165A8F
lock
faceplayer
- msgbox gUnknown_817DB98, MSGBOX_YESNO
+ msgbox ViridianCity_Text_WantToKnowAboutCaterpillarMons, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_165AB0
+ goto_if_eq ViridianCity_EventScript_YoungsterExplainCaterpillars
compare VAR_RESULT, NO
- goto_if_eq EventScript_165ABA
+ goto_if_eq ViridianCity_EventScript_YoungsterDeclineExplanation
end
-EventScript_165AB0:: @ 8165AB0
- msgbox gUnknown_817DBE4
+ViridianCity_EventScript_YoungsterExplainCaterpillars:: @ 8165AB0
+ msgbox ViridianCity_Text_ExplainCaterpieWeedle
release
end
-EventScript_165ABA:: @ 8165ABA
- msgbox gUnknown_817DBD5
+ViridianCity_EventScript_YoungsterDeclineExplanation:: @ 8165ABA
+ msgbox ViridianCity_Text_OhOkayThen
release
end
-ViridianCity_EventScript_165AC4:: @ 8165AC4
+ViridianCity_EventScript_Woman:: @ 8165AC4
lock
faceplayer
compare VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 0
- goto_if_eq EventScript_165ADB
- msgbox gUnknown_817DC99
+ goto_if_eq ViridianCity_EventScript_WomanRoadBlocked
+ msgbox ViridianCity_Text_GoShoppingInPewterOccasionally
release
end
-EventScript_165ADB:: @ 8165ADB
- msgbox gUnknown_817DC4E
+ViridianCity_EventScript_WomanRoadBlocked:: @ 8165ADB
+ msgbox ViridianCity_Text_GrandpaHasntHadCoffeeYet
closemessage
applymovement 5, Movement_FaceOriginalDirection
waitmovement 0
@@ -194,44 +199,44 @@ ViridianCity_EventScript_DreamEaterTutor:: @ 8165AF0
goto EventScript_DreamEaterTutor
end
-ViridianCity_EventScript_165AF6:: @ 8165AF6
+ViridianCity_EventScript_RoadBlocked:: @ 8165AF6
lockall
textcolor 0
- msgbox gUnknown_817DD03
+ msgbox ViridianCity_Text_ThisIsPrivateProperty
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_165B0E
+ applymovement OBJ_EVENT_ID_PLAYER, ViridianCity_Movement_WalkDown
waitmovement 0
releaseall
end
-Movement_165B0E:: @ 8165B0E
+ViridianCity_Movement_WalkDown:: @ 8165B0E
walk_down
step_end
-ViridianCity_EventScript_165B10:: @ 8165B10
+ViridianCity_EventScript_TutorialTriggerLeft:: @ 8165B10
lockall
textcolor 0
- applymovement 4, Movement_WalkInPlaceFastestLeft
+ applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFastestLeft
waitmovement 0
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight
waitmovement 0
- call EventScript_165B4C
+ call ViridianCity_EventScript_DoTutorialBattle
release
end
-ViridianCity_EventScript_165B2E:: @ 8165B2E
+ViridianCity_EventScript_TutorialTriggerRight:: @ 8165B2E
lockall
textcolor 0
- applymovement 4, Movement_WalkInPlaceFastestRight
+ applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFastestRight
waitmovement 0
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft
waitmovement 0
- call EventScript_165B4C
+ call ViridianCity_EventScript_DoTutorialBattle
release
end
-EventScript_165B4C:: @ 8165B4C
- msgbox gUnknown_817DD4E
+ViridianCity_EventScript_DoTutorialBattle:: @ 8165B4C
+ msgbox ViridianCity_Text_ShowYouHowToCatchMons
closemessage
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
@@ -239,8 +244,8 @@ EventScript_165B4C:: @ 8165B4C
waitstate
lock
faceplayer
- msgbox gUnknown_817DE9B
+ msgbox ViridianCity_Text_ThatWasEducationalTakeThis
setvar VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 2
giveitem ITEM_TEACHY_TV
- msgbox gUnknown_817DEEB
+ msgbox ViridianCity_Text_WatchThatToLearnBasics
return
diff --git a/data/maps/ViridianCity/text.inc b/data/maps/ViridianCity/text.inc
index 37b1d3c55..d029c942d 100644
--- a/data/maps/ViridianCity/text.inc
+++ b/data/maps/ViridianCity/text.inc
@@ -1,47 +1,47 @@
-gUnknown_817DABB:: @ 817DABB
+ViridianCity_Text_CanCarryMonsAnywhere:: @ 817DABB
.string "Those POKé BALLS at your waist!\n"
.string "You have POKéMON, don't you?\p"
.string "It's great that you can carry and\n"
.string "use POKéMON anytime, anywhere.$"
-gUnknown_817DB39:: @ 817DB39
+ViridianCity_Text_GymClosedWonderWhoLeaderIs:: @ 817DB39
.string "This POKéMON GYM is always closed.\p"
.string "I wonder who the LEADER is?$"
-gUnknown_817DB78:: @ 817DB78
+ViridianCity_Text_ViridiansGymLeaderReturned:: @ 817DB78
.string "VIRIDIAN GYM's LEADER returned!$"
-gUnknown_817DB98:: @ 817DB98
+ViridianCity_Text_WantToKnowAboutCaterpillarMons:: @ 817DB98
.string "You want to know about the two\n"
.string "kinds of caterpillar POKéMON?$"
-gUnknown_817DBD5:: @ 817DBD5
+ViridianCity_Text_OhOkayThen:: @ 817DBD5
.string "Oh, okay then!$"
-gUnknown_817DBE4:: @ 817DBE4
+ViridianCity_Text_ExplainCaterpieWeedle:: @ 817DBE4
.string "CATERPIE has no poison,\n"
.string "but WEEDLE does.\p"
.string "Watch that your POKéMON aren't\n"
.string "stabbed by WEEDLE's POISON STING.$"
-gUnknown_817DC4E:: @ 817DC4E
+ViridianCity_Text_GrandpaHasntHadCoffeeYet:: @ 817DC4E
.string "Oh, Grandpa!\n"
.string "Don't be so mean!\p"
.string "I'm so sorry.\n"
.string "He hasn't had his coffee yet.$"
-gUnknown_817DC99:: @ 817DC99
+ViridianCity_Text_GoShoppingInPewterOccasionally:: @ 817DC99
.string "I go shopping in PEWTER CITY\n"
.string "occasionally.\p"
.string "I have to take the winding trail in\n"
.string "VIRIDIAN FOREST when I go.$"
-gUnknown_817DD03:: @ 817DD03
+ViridianCity_Text_ThisIsPrivateProperty:: @ 817DD03
.string "I absolutely forbid you from\n"
.string "going through here!\p"
.string "This is private property!$"
-gUnknown_817DD4E:: @ 817DD4E
+ViridianCity_Text_ShowYouHowToCatchMons:: @ 817DD4E
.string "Well, now, I've had my coffee, and\n"
.string "that's what I need to get going!\p"
.string "Hm?\n"
@@ -58,18 +58,18 @@ gUnknown_817DD4E:: @ 817DD4E
.string "I suppose I had better show you\n"
.string "then!$"
-gUnknown_817DE9B:: @ 817DE9B
+ViridianCity_Text_ThatWasEducationalTakeThis:: @ 817DE9B
.string "There! Now tell me, that was\n"
.string "educational, was it not?\p"
.string "And here, take this, too.$"
-gUnknown_817DEEB:: @ 817DEEB
+ViridianCity_Text_WatchThatToLearnBasics:: @ 817DEEB
.string "If there's something you don't\n"
.string "understand, watch that.\p"
.string "It will teach you about the basics\n"
.string "of being a POKéMON TRAINER.$"
-gUnknown_817DF61:: @ 817DF61
+ViridianCity_Text_WeakenMonsFirstToCatch:: @ 817DF61
.string "Well, now, I've had my coffee, and\n"
.string "that's what I need to get going!\p"
.string "But I made it too strong.\n"
@@ -79,7 +79,7 @@ gUnknown_817DF61:: @ 817DF61
.string "At first, focus on weakening the\n"
.string "POKéMON before trying to catch it.$"
-gUnknown_817E046:: @ 817E046
+ViridianCity_Text_HowsTeachyTVHelping:: @ 817E046
.string "Well, now, I've had my coffee, and\n"
.string "that's what I need to get going!\p"
.string "But I made it too strong.\n"
@@ -87,39 +87,39 @@ gUnknown_817E046:: @ 817E046
.string "Incidentally, is my old TEACHY TV\n"
.string "helping you?$"
-gUnknown_817E0EA:: @ 817E0EA
+ViridianCity_Text_MyGrandsonOnTheShow:: @ 817E0EA
.string "Wahaha!\n"
.string "It's my grandson on the show!\p"
.string "Since he's the one doing the\n"
.string "teaching, you're bound to learn.$"
-gUnknown_817E14E:: @ 817E14E
+ViridianCity_Text_TooBusyForTeachyTV:: @ 817E14E
.string "Hm… You're too busy to not even\n"
.string "have the time for TEACHY TV…\p"
.string "Time is money, and neither should\n"
.string "be ill spent…$"
-gUnknown_817E1BB:: @ 817E1BB
+ViridianCity_Text_CitySign:: @ 817E1BB
.string "VIRIDIAN CITY \n"
.string "The Eternally Green Paradise$"
-gUnknown_817E1E7:: @ 817E1E7
+ViridianCity_Text_CatchMonsForEasierBattles:: @ 817E1E7
.string "TRAINER TIPS\p"
.string "Catch POKéMON and expand your\n"
.string "collection.\p"
.string "The more you have, the easier it\n"
.string "is to battle.$"
-gUnknown_817E24D:: @ 817E24D
+ViridianCity_Text_MovesLimitedByPP:: @ 817E24D
.string "TRAINER TIPS\p"
.string "The battle moves of POKéMON are\n"
.string "limited by their POWER POINTS, PP.\p"
.string "To replenish PP, rest your tired\n"
.string "POKéMON at a POKéMON CENTER.$"
-gUnknown_817E2DB:: @ 817E2DB
+ViridianCity_Text_GymSign:: @ 817E2DB
.string "VIRIDIAN CITY POKéMON GYM$"
-gUnknown_817E2F5:: @ 817E2F5
+ViridianCity_Text_GymDoorsAreLocked:: @ 817E2F5
.string "VIRIDIAN GYM's doors are locked…$"
diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json
index 0297a31b1..b4c9a93e4 100644
--- a/data/maps/ViridianCity_Gym/map.json
+++ b/data/maps/ViridianCity_Gym/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "ViridianCity_Gym_EventScript_169FD6",
+ "script": "ViridianCity_Gym_EventScript_Takashi",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "ViridianCity_Gym_EventScript_16A004",
+ "script": "ViridianCity_Gym_EventScript_Yuji",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "ViridianCity_Gym_EventScript_169FA8",
+ "script": "ViridianCity_Gym_EventScript_Atsushi",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "ViridianCity_Gym_EventScript_169F7A",
+ "script": "ViridianCity_Gym_EventScript_Jason",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "ViridianCity_Gym_EventScript_169F91",
+ "script": "ViridianCity_Gym_EventScript_Cole",
"flag": "0"
},
{
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "ViridianCity_Gym_EventScript_169FBF",
+ "script": "ViridianCity_Gym_EventScript_Kiyo",
"flag": "0"
},
{
@@ -101,7 +101,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "ViridianCity_Gym_EventScript_169FED",
+ "script": "ViridianCity_Gym_EventScript_Samuel",
"flag": "0"
},
{
@@ -114,7 +114,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_Gym_EventScript_169ECA",
+ "script": "ViridianCity_Gym_EventScript_Giovanni",
"flag": "FLAG_HIDE_VIRIDIAN_GIOVANNI"
},
{
@@ -127,7 +127,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "ViridianCity_Gym_EventScript_16A01B",
+ "script": "ViridianCity_Gym_EventScript_Warren",
"flag": "0"
},
{
@@ -140,7 +140,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_Gym_EventScript_16A032",
+ "script": "ViridianCity_Gym_EventScript_GymGuy",
"flag": "0"
}
],
@@ -174,14 +174,14 @@
"x": 15,
"y": 20,
"elevation": 0,
- "script": "ViridianCity_Gym_EventScript_16A05E"
+ "script": "ViridianCity_Gym_EventScript_GymStatue"
},
{
"type": "bg_event_type_0",
"x": 19,
"y": 20,
"elevation": 0,
- "script": "ViridianCity_Gym_EventScript_16A05E"
+ "script": "ViridianCity_Gym_EventScript_GymStatue"
},
{
"type": "hidden_item",
diff --git a/data/maps/ViridianCity_Gym/scripts.inc b/data/maps/ViridianCity_Gym/scripts.inc
index 0579e9e32..c14dceddf 100644
--- a/data/maps/ViridianCity_Gym/scripts.inc
+++ b/data/maps/ViridianCity_Gym/scripts.inc
@@ -1,11 +1,11 @@
ViridianCity_Gym_MapScripts:: @ 8169EC9
.byte 0
-ViridianCity_Gym_EventScript_169ECA:: @ 8169ECA
+ViridianCity_Gym_EventScript_Giovanni:: @ 8169ECA
famechecker FAMECHECKER_GIOVANNI, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle_single TRAINER_LEADER_GIOVANNI, Text_18F352, Text_18F43F, EventScript_169F04, NO_MUSIC
- goto_if_unset FLAG_GOT_TM26_FROM_GIOVANNI, EventScript_169F2F
- msgbox gUnknown_818F4A2
+ trainerbattle_single TRAINER_LEADER_GIOVANNI, ViridianCity_Gym_Text_GiovanniIntro, ViridianCity_Gym_Text_GiovanniDefeat, ViridianCity_Gym_EventScript_DefeatedGiovanni, NO_MUSIC
+ goto_if_unset FLAG_GOT_TM26_FROM_GIOVANNI, ViridianCity_Gym_EventScript_GiveTM26
+ msgbox ViridianCity_Gym_Text_GiovanniPostBattle
closemessage
fadescreen FADE_TO_BLACK
removeobject 8
@@ -13,94 +13,94 @@ ViridianCity_Gym_EventScript_169ECA:: @ 8169ECA
release
end
-EventScript_169F04:: @ 8169F04
+ViridianCity_Gym_EventScript_DefeatedGiovanni:: @ 8169F04
famechecker FAMECHECKER_GIOVANNI, 3
setflag FLAG_HIDE_MISC_KANTO_ROCKETS
setflag FLAG_DEFEATED_LEADER_GIOVANNI
setflag FLAG_BADGE08_GET
setvar VAR_MAP_SCENE_ROUTE22, 3
set_gym_trainers 8
- goto EventScript_169F2F
+ goto ViridianCity_Gym_EventScript_GiveTM26
end
-EventScript_169F2F:: @ 8169F2F
- msgbox gUnknown_818F586
+ViridianCity_Gym_EventScript_GiveTM26:: @ 8169F2F
+ msgbox ViridianCity_Gym_Text_ExplainEarthBadgeTakeThis
checkitemspace ITEM_TM26, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_169F70
- giveitem_msg gUnknown_818F675, ITEM_TM26
+ goto_if_eq ViridianCity_Gym_EventScript_NoRoomForTM26
+ giveitem_msg ViridianCity_Gym_Text_ReceivedTM26FromGiovanni, ITEM_TM26
setflag FLAG_GOT_TM26_FROM_GIOVANNI
- msgbox gUnknown_818F695
+ msgbox ViridianCity_Gym_Text_ExplainTM26
release
end
-EventScript_169F70:: @ 8169F70
- msgbox gUnknown_818F71B
+ViridianCity_Gym_EventScript_NoRoomForTM26:: @ 8169F70
+ msgbox ViridianCity_Gym_Text_YouDoNotHaveSpace
release
end
-ViridianCity_Gym_EventScript_169F7A:: @ 8169F7A
- trainerbattle_single TRAINER_TAMER_JASON, Text_18F7F3, Text_18F824
- msgbox gUnknown_818F840, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Jason:: @ 8169F7A
+ trainerbattle_single TRAINER_TAMER_JASON, ViridianCity_Gym_Text_JasonIntro, ViridianCity_Gym_Text_JasonDefeat
+ msgbox ViridianCity_Gym_Text_JasonPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_169F91:: @ 8169F91
- trainerbattle_single TRAINER_TAMER_COLE, Text_18F98A, Text_18F9BB
- msgbox gUnknown_818F9CC, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Cole:: @ 8169F91
+ trainerbattle_single TRAINER_TAMER_COLE, ViridianCity_Gym_Text_ColeIntro, ViridianCity_Gym_Text_ColeDefeat
+ msgbox ViridianCity_Gym_Text_ColePostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_169FA8:: @ 8169FA8
- trainerbattle_single TRAINER_BLACK_BELT_ATSUSHI, Text_18F7AD, Text_18F7D6
- msgbox gUnknown_818F7DD, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Atsushi:: @ 8169FA8
+ trainerbattle_single TRAINER_BLACK_BELT_ATSUSHI, ViridianCity_Gym_Text_AtsushiIntro, ViridianCity_Gym_Text_AtsushiDefeat
+ msgbox ViridianCity_Gym_Text_AtsushiPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_169FBF:: @ 8169FBF
- trainerbattle_single TRAINER_BLACK_BELT_KIYO, Text_18F86C, Text_18F899
- msgbox gUnknown_818F8A0, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Kiyo:: @ 8169FBF
+ trainerbattle_single TRAINER_BLACK_BELT_KIYO, ViridianCity_Gym_Text_KiyoIntro, ViridianCity_Gym_Text_KiyoDefeat
+ msgbox ViridianCity_Gym_Text_KiyoPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_169FD6:: @ 8169FD6
- trainerbattle_single TRAINER_BLACK_BELT_TAKASHI, Text_18F92C, Text_18F95A
- msgbox gUnknown_818F960, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Takashi:: @ 8169FD6
+ trainerbattle_single TRAINER_BLACK_BELT_TAKASHI, ViridianCity_Gym_Text_TakashiIntro, ViridianCity_Gym_Text_TakashiDefeat
+ msgbox ViridianCity_Gym_Text_TakashiPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_169FED:: @ 8169FED
- trainerbattle_single TRAINER_COOLTRAINER_SAMUEL, Text_18F9E7, Text_18FA2D
- msgbox gUnknown_818FA3B, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Samuel:: @ 8169FED
+ trainerbattle_single TRAINER_COOLTRAINER_SAMUEL, ViridianCity_Gym_Text_SamuelIntro, ViridianCity_Gym_Text_SamuelDefeat
+ msgbox ViridianCity_Gym_Text_SamuelPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_16A004:: @ 816A004
- trainerbattle_single TRAINER_COOLTRAINER_YUJI, Text_18F73B, Text_18F769
- msgbox gUnknown_818F77B, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Yuji:: @ 816A004
+ trainerbattle_single TRAINER_COOLTRAINER_YUJI, ViridianCity_Gym_Text_YujiIntro, ViridianCity_Gym_Text_YujiDefeat
+ msgbox ViridianCity_Gym_Text_YujiPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_16A01B:: @ 816A01B
- trainerbattle_single TRAINER_COOLTRAINER_WARREN, Text_18F8CB, Text_18F8EE
- msgbox gUnknown_818F8FE, MSGBOX_AUTOCLOSE
+ViridianCity_Gym_EventScript_Warren:: @ 816A01B
+ trainerbattle_single TRAINER_COOLTRAINER_WARREN, ViridianCity_Gym_Text_WarrenIntro, ViridianCity_Gym_Text_WarrenDefeat
+ msgbox ViridianCity_Gym_Text_WarrenPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianCity_Gym_EventScript_16A032:: @ 816A032
+ViridianCity_Gym_EventScript_GymGuy:: @ 816A032
lock
faceplayer
- goto_if_set FLAG_DEFEATED_LEADER_GIOVANNI, EventScript_16A047
- msgbox gUnknown_818FA81
+ goto_if_set FLAG_DEFEATED_LEADER_GIOVANNI, ViridianCity_Gym_EventScript_GymGuyPostVictory
+ msgbox ViridianCity_Gym_Text_GymGuyAdvice
release
end
-EventScript_16A047:: @ 816A047
+ViridianCity_Gym_EventScript_GymGuyPostVictory:: @ 816A047
famechecker FAMECHECKER_GIOVANNI, 4
- msgbox gUnknown_818FB56
+ msgbox ViridianCity_Gym_Text_GymGuyPostVictory
release
end
-ViridianCity_Gym_EventScript_16A05E:: @ 816A05E
+ViridianCity_Gym_EventScript_GymStatue:: @ 816A05E
lockall
- goto_if_set FLAG_BADGE08_GET, EventScript_16A072
- msgbox gUnknown_818FB8D
+ goto_if_set FLAG_BADGE08_GET, ViridianCity_Gym_EventScript_GymStatuePostVictory
+ msgbox ViridianCity_Gym_Text_GymStatue
releaseall
end
-EventScript_16A072:: @ 816A072
- msgbox gUnknown_818FBC1
+ViridianCity_Gym_EventScript_GymStatuePostVictory:: @ 816A072
+ msgbox ViridianCity_Gym_Text_GymStatuePlayerWon
releaseall
end
diff --git a/data/maps/ViridianCity_Gym/text.inc b/data/maps/ViridianCity_Gym/text.inc
index 7372bd6d3..38561c011 100644
--- a/data/maps/ViridianCity_Gym/text.inc
+++ b/data/maps/ViridianCity_Gym/text.inc
@@ -1,4 +1,4 @@
-Text_18F352:: @ 818F352
+ViridianCity_Gym_Text_GiovanniIntro:: @ 818F352
.string "Fwahahaha!\n"
.string "Welcome to my hideout!\p"
.string "It shall be so until I can restore\n"
@@ -9,14 +9,14 @@ Text_18F352:: @ 818F352
.string "Once more, you shall face\n"
.string "GIOVANNI, the greatest TRAINER!{PLAY_BGM}{MUS_ROCKET}$"
-Text_18F43F:: @ 818F43F
+ViridianCity_Gym_Text_GiovanniDefeat:: @ 818F43F
.string "Ha!\n"
.string "That was a truly intense fight.\l"
.string "You have won!\p"
.string "As proof, here is the EARTHBADGE!\n"
.string "{PAUSE_MUSIC}{PLAY_BGM}{MUS_ME_BACHI}{PAUSE 0xFE}{PAUSE 0x56}{RESUME_MUSIC}$"
-gUnknown_818F4A2:: @ 818F4A2
+ViridianCity_Gym_Text_GiovanniPostBattle:: @ 818F4A2
.string "Having lost in this fashion, \n"
.string "I can't face my followers.\l"
.string "I have betrayed their trust.\p"
@@ -27,7 +27,7 @@ gUnknown_818F4A2:: @ 818F4A2
.string "Let us meet again someday!\n"
.string "Farewell!$"
-gUnknown_818F586:: @ 818F586
+ViridianCity_Gym_Text_ExplainEarthBadgeTakeThis:: @ 818F586
.string "The EARTHBADGE makes POKéMON of\n"
.string "any level obey without question.\p"
.string "It is evidence of your mastery as\n"
@@ -38,111 +38,111 @@ gUnknown_818F586:: @ 818F586
.string "Consider it a gift for your POKéMON\n"
.string "LEAGUE challenge.$"
-gUnknown_818F675:: @ 818F675
+ViridianCity_Gym_Text_ReceivedTM26FromGiovanni:: @ 818F675
.string "{PLAYER} received TM26\n"
.string "from GIOVANNI.$"
-gUnknown_818F695:: @ 818F695
+ViridianCity_Gym_Text_ExplainTM26:: @ 818F695
.string "TM26 contains EARTHQUAKE.\p"
.string "It is a powerful attack that causes\n"
.string "a massive tremor.\p"
.string "I made it when I ran the GYM here,\n"
.string "far too long ago… $"
-gUnknown_818F71B:: @ 818F71B
+ViridianCity_Gym_Text_YouDoNotHaveSpace:: @ 818F71B
.string "You do not have space for this!$"
-Text_18F73B:: @ 818F73B
+ViridianCity_Gym_Text_YujiIntro:: @ 818F73B
.string "Heh!\n"
.string "You must be running out of steam\l"
.string "by now!$"
-Text_18F769:: @ 818F769
+ViridianCity_Gym_Text_YujiDefeat:: @ 818F769
.string "I ran out of gas!$"
-gUnknown_818F77B:: @ 818F77B
+ViridianCity_Gym_Text_YujiPostBattle:: @ 818F77B
.string "You'll need power to keep up with\n"
.string "our GYM LEADER.$"
-Text_18F7AD:: @ 818F7AD
+ViridianCity_Gym_Text_AtsushiIntro:: @ 818F7AD
.string "Rrrroar!\n"
.string "I'm working myself into a rage!$"
-Text_18F7D6:: @ 818F7D6
+ViridianCity_Gym_Text_AtsushiDefeat:: @ 818F7D6
.string "Wargh!$"
-gUnknown_818F7DD:: @ 818F7DD
+ViridianCity_Gym_Text_AtsushiPostBattle:: @ 818F7DD
.string "I'm still not worthy!$"
-Text_18F7F3:: @ 818F7F3
+ViridianCity_Gym_Text_JasonIntro:: @ 818F7F3
.string "POKéMON and I, we make wonderful\n"
.string "music together!$"
-Text_18F824:: @ 818F824
+ViridianCity_Gym_Text_JasonDefeat:: @ 818F824
.string "You are in perfect harmony!$"
-gUnknown_818F840:: @ 818F840
+ViridianCity_Gym_Text_JasonPostBattle:: @ 818F840
.string "Do you know the identity of our\n"
.string "GYM LEADER?$"
-Text_18F86C:: @ 818F86C
+ViridianCity_Gym_Text_KiyoIntro:: @ 818F86C
.string "Karate is the ultimate form of\n"
.string "martial arts!$"
-Text_18F899:: @ 818F899
+ViridianCity_Gym_Text_KiyoDefeat:: @ 818F899
.string "Aiyah!$"
-gUnknown_818F8A0:: @ 818F8A0
+ViridianCity_Gym_Text_KiyoPostBattle:: @ 818F8A0
.string "If my POKéMON were as good at\n"
.string "karate as I…$"
-Text_18F8CB:: @ 818F8CB
+ViridianCity_Gym_Text_WarrenIntro:: @ 818F8CB
.string "The truly talented win with style.$"
-Text_18F8EE:: @ 818F8EE
+ViridianCity_Gym_Text_WarrenDefeat:: @ 818F8EE
.string "I lost my grip!$"
-gUnknown_818F8FE:: @ 818F8FE
+ViridianCity_Gym_Text_WarrenPostBattle:: @ 818F8FE
.string "The LEADER will scold me for\n"
.string "losing this way…$"
-Text_18F92C:: @ 818F92C
+ViridianCity_Gym_Text_TakashiIntro:: @ 818F92C
.string "I'm the KARATE KING!\n"
.string "Your fate rests with me!$"
-Text_18F95A:: @ 818F95A
+ViridianCity_Gym_Text_TakashiDefeat:: @ 818F95A
.string "Ayah!$"
-gUnknown_818F960:: @ 818F960
+ViridianCity_Gym_Text_TakashiPostBattle:: @ 818F960
.string "The POKéMON LEAGUE?\n"
.string "You? Don't get cocky!$"
-Text_18F98A:: @ 818F98A
+ViridianCity_Gym_Text_ColeIntro:: @ 818F98A
.string "Your POKéMON will cower at the\n"
.string "crack of my whip!$"
-Text_18F9BB:: @ 818F9BB
+ViridianCity_Gym_Text_ColeDefeat:: @ 818F9BB
.string "Yowch!\n"
.string "Whiplash!$"
-gUnknown_818F9CC:: @ 818F9CC
+ViridianCity_Gym_Text_ColePostBattle:: @ 818F9CC
.string "Wait!\n"
.string "I was just careless!$"
-Text_18F9E7:: @ 818F9E7
+ViridianCity_Gym_Text_SamuelIntro:: @ 818F9E7
.string "VIRIDIAN GYM was closed for a\n"
.string "long time.\p"
.string "But now, our LEADER is back!$"
-Text_18FA2D:: @ 818FA2D
+ViridianCity_Gym_Text_SamuelDefeat:: @ 818FA2D
.string "I was beaten?$"
-gUnknown_818FA3B:: @ 818FA3B
+ViridianCity_Gym_Text_SamuelPostBattle:: @ 818FA3B
.string "You can go on to the POKéMON\n"
.string "LEAGUE only by defeating our GYM\l"
.string "LEADER!$"
-gUnknown_818FA81:: @ 818FA81
+ViridianCity_Gym_Text_GymGuyAdvice:: @ 818FA81
.string "Yo!\n"
.string "Champ in the making!\p"
.string "Even I don't know the VIRIDIAN\n"
@@ -153,17 +153,17 @@ gUnknown_818FA81:: @ 818FA81
.string "Also, I heard that the TRAINERS\n"
.string "here like GROUND-type POKéMON.$"
-gUnknown_818FB56:: @ 818FB56
+ViridianCity_Gym_Text_GymGuyPostVictory:: @ 818FB56
.string "Blow me away! GIOVANNI was the\n"
.string "GYM LEADER of VIRIDIAN?$"
-gUnknown_818FB8D:: @ 818FB8D
+ViridianCity_Gym_Text_GymStatue:: @ 818FB8D
.string "VIRIDIAN POKéMON GYM\n"
.string "LEADER: ?\p"
.string "WINNING TRAINERS:\n"
.string "{RIVAL}$"
-gUnknown_818FBC1:: @ 818FBC1
+ViridianCity_Gym_Text_GymStatuePlayerWon:: @ 818FBC1
.string "VIRIDIAN POKéMON GYM\n"
.string "LEADER: GIOVANNI\p"
.string "WINNING TRAINERS:\n"
diff --git a/data/maps/ViridianCity_House1/map.json b/data/maps/ViridianCity_House1/map.json
index 1a960169e..167069bc6 100644
--- a/data/maps/ViridianCity_House1/map.json
+++ b/data/maps/ViridianCity_House1/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_House1_EventScript_169E9B",
+ "script": "ViridianCity_House1_EventScript_BaldingMan",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 2,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_House1_EventScript_169EA4",
+ "script": "ViridianCity_House1_EventScript_LittleGirl",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_House1_EventScript_169EAD",
+ "script": "ViridianCity_House1_EventScript_Speary",
"flag": "0"
}
],
@@ -83,7 +83,7 @@
"x": 7,
"y": 1,
"elevation": 0,
- "script": "ViridianCity_House1_EventScript_169EC0"
+ "script": "ViridianCity_House1_EventScript_NicknameSign"
}
]
}
diff --git a/data/maps/ViridianCity_House1/scripts.inc b/data/maps/ViridianCity_House1/scripts.inc
index 446035efe..0af4621cf 100644
--- a/data/maps/ViridianCity_House1/scripts.inc
+++ b/data/maps/ViridianCity_House1/scripts.inc
@@ -1,24 +1,24 @@
ViridianCity_House1_MapScripts:: @ 8169E9A
.byte 0
-ViridianCity_House1_EventScript_169E9B:: @ 8169E9B
- msgbox gUnknown_818F292, MSGBOX_NPC
+ViridianCity_House1_EventScript_BaldingMan:: @ 8169E9B
+ msgbox ViridianCity_House1_Text_NicknamingIsFun, MSGBOX_NPC
end
-ViridianCity_House1_EventScript_169EA4:: @ 8169EA4
- msgbox gUnknown_818F30F, MSGBOX_NPC
+ViridianCity_House1_EventScript_LittleGirl:: @ 8169EA4
+ msgbox ViridianCity_House1_Text_MyDaddyLovesMonsToo, MSGBOX_NPC
end
-ViridianCity_House1_EventScript_169EAD:: @ 8169EAD
+ViridianCity_House1_EventScript_Speary:: @ 8169EAD
lock
faceplayer
waitse
playmoncry SPECIES_SPEAROW, 0
- msgbox gUnknown_818F32C
+ msgbox ViridianCity_House1_Text_Speary
waitmoncry
release
end
-ViridianCity_House1_EventScript_169EC0:: @ 8169EC0
- msgbox gUnknown_818F33D, MSGBOX_SIGN
+ViridianCity_House1_EventScript_NicknameSign:: @ 8169EC0
+ msgbox ViridianCity_House1_Text_SpearowNameSpeary, MSGBOX_SIGN
end
diff --git a/data/maps/ViridianCity_House1/text.inc b/data/maps/ViridianCity_House1/text.inc
index c1ec37238..15b066efa 100644
--- a/data/maps/ViridianCity_House1/text.inc
+++ b/data/maps/ViridianCity_House1/text.inc
@@ -1,16 +1,16 @@
-gUnknown_818F292:: @ 818F292
+ViridianCity_House1_Text_NicknamingIsFun:: @ 818F292
.string "Coming up with nicknames is fun,\n"
.string "but it's not so easy to do.\p"
.string "Clever names are nice, but simple\n"
.string "names are easier to remember.$"
-gUnknown_818F30F:: @ 818F30F
+ViridianCity_House1_Text_MyDaddyLovesMonsToo:: @ 818F30F
.string "My daddy loves POKéMON, too.$"
-gUnknown_818F32C:: @ 818F32C
+ViridianCity_House1_Text_Speary:: @ 818F32C
.string "SPEARY: Tetweet!$"
-gUnknown_818F33D:: @ 818F33D
+ViridianCity_House1_Text_SpearowNameSpeary:: @ 818F33D
.string "SPEAROW\n"
.string "Name: SPEARY$"
diff --git a/data/maps/ViridianCity_House2/map.json b/data/maps/ViridianCity_House2/map.json
index 5190a5d28..dc80606ec 100644
--- a/data/maps/ViridianCity_House2/map.json
+++ b/data/maps/ViridianCity_House2/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_House2_EventScript_16A094",
+ "script": "ViridianCity_House2_EventScript_Woman",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_House2_EventScript_16A07D",
+ "script": "ViridianCity_House2_EventScript_Lass",
"flag": "0"
}
],
@@ -70,35 +70,35 @@
"x": 4,
"y": 4,
"elevation": 0,
- "script": "ViridianCity_House2_EventScript_16A0AB"
+ "script": "ViridianCity_House2_EventScript_Notebook"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 1,
"elevation": 0,
- "script": "ViridianCity_House2_EventScript_16A11D"
+ "script": "ViridianCity_House2_EventScript_Blackboard"
},
{
"type": "bg_event_type_0",
"x": 4,
"y": 1,
"elevation": 0,
- "script": "ViridianCity_House2_EventScript_16A11D"
+ "script": "ViridianCity_House2_EventScript_Blackboard"
},
{
"type": "bg_event_type_1",
"x": 9,
"y": 2,
"elevation": 0,
- "script": "ViridianCity_House2_EventScript_1ACD65"
+ "script": "ViridianCity_House2_EventScript_PokemonJournal"
},
{
"type": "bg_event_type_1",
"x": 8,
"y": 2,
"elevation": 0,
- "script": "ViridianCity_House2_EventScript_1ACD65"
+ "script": "ViridianCity_House2_EventScript_PokemonJournal"
}
]
}
diff --git a/data/maps/ViridianCity_House2/scripts.inc b/data/maps/ViridianCity_House2/scripts.inc
index 6a0845622..0c08b447d 100644
--- a/data/maps/ViridianCity_House2/scripts.inc
+++ b/data/maps/ViridianCity_House2/scripts.inc
@@ -1,97 +1,97 @@
ViridianCity_House2_MapScripts:: @ 816A07C
.byte 0
-ViridianCity_House2_EventScript_16A07D:: @ 816A07D
+ViridianCity_House2_EventScript_Lass:: @ 816A07D
lock
faceplayer
- msgbox gUnknown_818FC00
+ msgbox ViridianCity_House2_Text_TryingToMemorizeNotes
closemessage
applymovement 2, Movement_WalkInPlaceFastestUp
waitmovement 0
release
end
-ViridianCity_House2_EventScript_16A094:: @ 816A094
+ViridianCity_House2_EventScript_Woman:: @ 816A094
lock
faceplayer
- msgbox gUnknown_818FC2B
+ msgbox ViridianCity_House2_Text_ReadBlackboardCarefully
closemessage
applymovement 1, Movement_FaceOriginalDirection
waitmovement 0
release
end
-ViridianCity_House2_EventScript_16A0AB:: @ 816A0AB
+ViridianCity_House2_EventScript_Notebook:: @ 816A0AB
lockall
- msgbox gUnknown_818FC65
- msgbox gUnknown_818FF19, MSGBOX_YESNO
+ msgbox ViridianCity_House2_Text_NotebookFirstPage
+ msgbox ViridianCity_House2_Text_TurnThePage, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16A11B
- msgbox gUnknown_818FD23
- msgbox gUnknown_818FF19, MSGBOX_YESNO
+ goto_if_eq ViridianCity_House2_EventScript_StopReadingNotebook
+ msgbox ViridianCity_House2_Text_NotebookSecondPage
+ msgbox ViridianCity_House2_Text_TurnThePage, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16A11B
- msgbox gUnknown_818FDA8
- msgbox gUnknown_818FF19, MSGBOX_YESNO
+ goto_if_eq ViridianCity_House2_EventScript_StopReadingNotebook
+ msgbox ViridianCity_House2_Text_NotebookThirdPage
+ msgbox ViridianCity_House2_Text_TurnThePage, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16A11B
- msgbox gUnknown_818FE5C
+ goto_if_eq ViridianCity_House2_EventScript_StopReadingNotebook
+ msgbox ViridianCity_House2_Text_NotebookFourthPage
applymovement 2, Movement_WalkInPlaceFastestUp
waitmovement 0
textcolor 1
- msgbox gUnknown_818FF28
+ msgbox ViridianCity_House2_Text_HeyDontLookAtMyNotes
releaseall
end
-EventScript_16A11B:: @ 816A11B
+ViridianCity_House2_EventScript_StopReadingNotebook:: @ 816A11B
releaseall
end
-ViridianCity_House2_EventScript_16A11D:: @ 816A11D
+ViridianCity_House2_EventScript_Blackboard:: @ 816A11D
lockall
- msgbox gUnknown_818FF4B
- goto EventScript_16A12C
+ msgbox ViridianCity_House2_Text_BlackboardListsStatusProblems
+ goto ViridianCity_House2_EventScript_ChooseBlackboardTopic
end
-EventScript_16A12C:: @ 816A12C
- message Text_18FF88
+ViridianCity_House2_EventScript_ChooseBlackboardTopic:: @ 816A12C
+ message ViridianCity_House2_Text_ReadWhichTopic
waitmessage
multichoicegrid 7, 1, MULTICHOICE_TRAINER_SCHOOL_WHITEBOARD, 3, FALSE
switch VAR_RESULT
- case 0, EventScript_16A18B
- case 1, EventScript_16A1A7
- case 2, EventScript_16A1C3
- case 3, EventScript_16A199
- case 4, EventScript_16A1B5
- case 5, EventScript_16A1D1
- case 127, EventScript_16A1D1
+ case 0, ViridianCity_House2_EventScript_ReadSleep
+ case 1, ViridianCity_House2_EventScript_ReadPoison
+ case 2, ViridianCity_House2_EventScript_ReadParalysis
+ case 3, ViridianCity_House2_EventScript_ReadBurn
+ case 4, ViridianCity_House2_EventScript_ReadFreeze
+ case 5, ViridianCity_House2_EventScript_ExitBlackboard
+ case 127, ViridianCity_House2_EventScript_ExitBlackboard
end
-EventScript_16A18B:: @ 816A18B
- msgbox gUnknown_818FFA9
- goto EventScript_16A12C
+ViridianCity_House2_EventScript_ReadSleep:: @ 816A18B
+ msgbox ViridianCity_House2_Text_ExplainSleep
+ goto ViridianCity_House2_EventScript_ChooseBlackboardTopic
end
-EventScript_16A199:: @ 816A199
- msgbox gUnknown_8190025
- goto EventScript_16A12C
+ViridianCity_House2_EventScript_ReadBurn:: @ 816A199
+ msgbox ViridianCity_House2_Text_ExplainBurn
+ goto ViridianCity_House2_EventScript_ChooseBlackboardTopic
end
-EventScript_16A1A7:: @ 816A1A7
- msgbox gUnknown_819009F
- goto EventScript_16A12C
+ViridianCity_House2_EventScript_ReadPoison:: @ 816A1A7
+ msgbox ViridianCity_House2_Text_ExplainPoison
+ goto ViridianCity_House2_EventScript_ChooseBlackboardTopic
end
-EventScript_16A1B5:: @ 816A1B5
- msgbox gUnknown_819010F
- goto EventScript_16A12C
+ViridianCity_House2_EventScript_ReadFreeze:: @ 816A1B5
+ msgbox ViridianCity_House2_Text_ExplainFreeze
+ goto ViridianCity_House2_EventScript_ChooseBlackboardTopic
end
-EventScript_16A1C3:: @ 816A1C3
- msgbox gUnknown_8190199
- goto EventScript_16A12C
+ViridianCity_House2_EventScript_ReadParalysis:: @ 816A1C3
+ msgbox ViridianCity_House2_Text_ExplainParalysis
+ goto ViridianCity_House2_EventScript_ChooseBlackboardTopic
end
-EventScript_16A1D1:: @ 816A1D1
+ViridianCity_House2_EventScript_ExitBlackboard:: @ 816A1D1
releaseall
end
diff --git a/data/maps/ViridianCity_House2/text.inc b/data/maps/ViridianCity_House2/text.inc
index a575c0f34..176bb713a 100644
--- a/data/maps/ViridianCity_House2/text.inc
+++ b/data/maps/ViridianCity_House2/text.inc
@@ -1,13 +1,13 @@
-gUnknown_818FC00:: @ 818FC00
+ViridianCity_House2_Text_TryingToMemorizeNotes:: @ 818FC00
.string "Whew! I'm trying to memorize all my\n"
.string "notes.$"
-gUnknown_818FC2B:: @ 818FC2B
+ViridianCity_House2_Text_ReadBlackboardCarefully:: @ 818FC2B
.string "Okay!\p"
.string "Be sure to read what's on the\n"
.string "blackboard carefully!$"
-gUnknown_818FC65:: @ 818FC65
+ViridianCity_House2_Text_NotebookFirstPage:: @ 818FC65
.string "Let's check out the notebook.\p"
.string "First page…\p"
.string "POKé BALLS are used to catch\n"
@@ -17,14 +17,14 @@ gUnknown_818FC65:: @ 818FC65
.string "People who raise and battle\n"
.string "with POKéMON are called TRAINERS.$"
-gUnknown_818FD23:: @ 818FD23
+ViridianCity_House2_Text_NotebookSecondPage:: @ 818FD23
.string "Second page…\p"
.string "A healthy POKéMON may be hard to\n"
.string "catch, so weaken it first.\p"
.string "Poison, burn, or cause another\n"
.string "status problem to weaken it.$"
-gUnknown_818FDA8:: @ 818FDA8
+ViridianCity_House2_Text_NotebookThirdPage:: @ 818FDA8
.string "Third page…\p"
.string "POKéMON TRAINERS seek others to\n"
.string "engage in POKéMON battles.\p"
@@ -33,7 +33,7 @@ gUnknown_818FDA8:: @ 818FDA8
.string "Battles are constantly waged at\n"
.string "POKéMON GYMS everywhere.$"
-gUnknown_818FE5C:: @ 818FE5C
+ViridianCity_House2_Text_NotebookFourthPage:: @ 818FE5C
.string "Fourth page…\p"
.string "The ultimate goal for all POKéMON\n"
.string "TRAINERS is simple.\p"
@@ -43,21 +43,21 @@ gUnknown_818FE5C:: @ 818FE5C
.string "The ELITE FOUR of the POKéMON\n"
.string "LEAGUE!$"
-gUnknown_818FF19:: @ 818FF19
+ViridianCity_House2_Text_TurnThePage:: @ 818FF19
.string "Turn the page?$"
-gUnknown_818FF28:: @ 818FF28
+ViridianCity_House2_Text_HeyDontLookAtMyNotes:: @ 818FF28
.string "GIRL: Hey!\n"
.string "Don't look at my notes!$"
-gUnknown_818FF4B:: @ 818FF4B
+ViridianCity_House2_Text_BlackboardListsStatusProblems:: @ 818FF4B
.string "The blackboard lists POKéMON\n"
.string "STATUS problems during battles.$"
-Text_18FF88:: @ 818FF88
+ViridianCity_House2_Text_ReadWhichTopic:: @ 818FF88
.string "Which topic do you want to read?$"
-gUnknown_818FFA9:: @ 818FFA9
+ViridianCity_House2_Text_ExplainSleep:: @ 818FFA9
.string "A POKéMON can't attack if it's\n"
.string "asleep.\p"
.string "POKéMON will stay asleep even\n"
@@ -65,19 +65,19 @@ gUnknown_818FFA9:: @ 818FFA9
.string "Use AWAKENING to awaken one\n"
.string "from sleep.$"
-gUnknown_8190025:: @ 8190025
+ViridianCity_House2_Text_ExplainBurn:: @ 8190025
.string "A burn reduces ATTACK power.\n"
.string "It also causes ongoing HP loss.\p"
.string "A burn remains after a battle.\n"
.string "Use BURN HEAL to cure a burn.$"
-gUnknown_819009F:: @ 819009F
+ViridianCity_House2_Text_ExplainPoison:: @ 819009F
.string "When poisoned, a POKéMON's health\n"
.string "steadily drops.\p"
.string "Poison lingers after battles.\n"
.string "Use an ANTIDOTE to cure poison!$"
-gUnknown_819010F:: @ 819010F
+ViridianCity_House2_Text_ExplainFreeze:: @ 819010F
.string "A frozen POKéMON becomes\n"
.string "helplessly immobile.\p"
.string "It stays frozen even after the\n"
@@ -85,7 +85,7 @@ gUnknown_819010F:: @ 819010F
.string "Use ICE HEAL to thaw out the\n"
.string "suffering POKéMON.$"
-gUnknown_8190199:: @ 8190199
+ViridianCity_House2_Text_ExplainParalysis:: @ 8190199
.string "Paralysis reduces SPEED and may\n"
.string "prevent the POKéMON from moving.\p"
.string "Paralysis remains after battles.\n"
diff --git a/data/maps/ViridianCity_Mart/map.json b/data/maps/ViridianCity_Mart/map.json
index 09f58a9d5..5a4ae7bc0 100644
--- a/data/maps/ViridianCity_Mart/map.json
+++ b/data/maps/ViridianCity_Mart/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_Mart_EventScript_16A268",
+ "script": "ViridianCity_Mart_EventScript_Clerk",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_Mart_EventScript_16A2B7",
+ "script": "ViridianCity_Mart_EventScript_Youngster",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_Mart_EventScript_16A2AE",
+ "script": "ViridianCity_Mart_EventScript_Woman",
"flag": "0"
}
],
diff --git a/data/maps/ViridianCity_Mart/scripts.inc b/data/maps/ViridianCity_Mart/scripts.inc
index 1f66937cf..5ad0d9a2f 100644
--- a/data/maps/ViridianCity_Mart/scripts.inc
+++ b/data/maps/ViridianCity_Mart/scripts.inc
@@ -4,36 +4,36 @@ ViridianCity_Mart_MapScripts:: @ 816A1D3
.byte 0
ViridianCity_Mart_OnLoad:: @ 816A1DE
- goto_if_unset FLAG_SYS_POKEDEX_GET, EventScript_16A1E8
+ goto_if_unset FLAG_SYS_POKEDEX_GET, ViridianCity_Mart_EventScript_HideQuestionnaire
end
-EventScript_16A1E8:: @ 816A1E8
- setmetatile 1, 3, 703, 1
- setmetatile 1, 4, 704, 1
+ViridianCity_Mart_EventScript_HideQuestionnaire:: @ 816A1E8
+ setmetatile 1, 3, METATILE_Shop_CounterMid_Top, 1
+ setmetatile 1, 4, METATILE_Shop_CounterMid_Bottom, 1
end
ViridianCity_Mart_OnFrame:: @ 816A1FB
- map_script_2 VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 0, EventScript_16A205
+ map_script_2 VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 0, ViridianCity_Mart_EventScript_ParcelScene
.2byte 0
-EventScript_16A205:: @ 816A205
+ViridianCity_Mart_EventScript_ParcelScene:: @ 816A205
lockall
textcolor 0
applymovement 1, Movement_WalkInPlaceFastestDown
waitmovement 0
- msgbox gUnknown_819021A
+ msgbox ViridianCity_Mart_Text_YouCameFromPallet
closemessage
- applymovement 1, Movement_16A262
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16A25C
+ applymovement 1, ViridianCity_Mart_Movement_FacePlayer
+ applymovement OBJ_EVENT_ID_PLAYER, ViridianCity_Mart_Movement_ApproachCounter
waitmovement 0
- msgbox gUnknown_819023A
+ msgbox ViridianCity_Mart_Text_TakeThisToProfOak
setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1
- giveitem_msg gUnknown_8190289, ITEM_OAKS_PARCEL, 1, MUS_FAN5
+ giveitem_msg ViridianCity_Mart_Text_ReceivedOaksParcelFromClerk, ITEM_OAKS_PARCEL, 1, MUS_FAN5
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 5
releaseall
end
-Movement_16A25C:: @ 816A25C
+ViridianCity_Mart_Movement_ApproachCounter:: @ 816A25C
walk_up
walk_up
walk_up
@@ -41,7 +41,7 @@ Movement_16A25C:: @ 816A25C
walk_in_place_fastest_left
step_end
-Movement_16A262:: @ 816A262
+ViridianCity_Mart_Movement_FacePlayer:: @ 816A262
delay_16
delay_16
delay_16
@@ -49,21 +49,21 @@ Movement_16A262:: @ 816A262
walk_in_place_fastest_right
step_end
-ViridianCity_Mart_EventScript_16A268:: @ 816A268
+ViridianCity_Mart_EventScript_Clerk:: @ 816A268
lock
faceplayer
compare VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1
- goto_if_eq EventScript_16A2A4
+ goto_if_eq ViridianCity_Mart_EventScript_SayHiToOak
goto_if_questlog EventScript_ReleaseEnd
message Text_MayIHelpYou
waitmessage
- pokemart Items_16A298
+ pokemart ViridianCity_Mart_Items
msgbox Text_PleaseComeAgain
release
end
.align 2
-Items_16A298:: @ 816A298
+ViridianCity_Mart_Items:: @ 816A298
.2byte ITEM_POKE_BALL
.2byte ITEM_POTION
.2byte ITEM_ANTIDOTE
@@ -72,15 +72,15 @@ Items_16A298:: @ 816A298
release
end
-EventScript_16A2A4:: @ 816A2A4
- msgbox Text_1902BF
+ViridianCity_Mart_EventScript_SayHiToOak:: @ 816A2A4
+ msgbox ViridianCity_Mart_Text_SayHiToOakForMe
release
end
-ViridianCity_Mart_EventScript_16A2AE:: @ 816A2AE
- msgbox gUnknown_81902F5, MSGBOX_NPC
+ViridianCity_Mart_EventScript_Woman:: @ 816A2AE
+ msgbox ViridianCity_Mart_Text_ShopDoesGoodBusinessInAntidotes, MSGBOX_NPC
end
-ViridianCity_Mart_EventScript_16A2B7:: @ 816A2B7
- msgbox gUnknown_819032C, MSGBOX_NPC
+ViridianCity_Mart_EventScript_Youngster:: @ 816A2B7
+ msgbox ViridianCity_Mart_Text_GotToBuySomePotions, MSGBOX_NPC
end
diff --git a/data/maps/ViridianCity_Mart/text.inc b/data/maps/ViridianCity_Mart/text.inc
index a610e83cd..c54f4220a 100644
--- a/data/maps/ViridianCity_Mart/text.inc
+++ b/data/maps/ViridianCity_Mart/text.inc
@@ -1,25 +1,25 @@
-gUnknown_819021A:: @ 819021A
+ViridianCity_Mart_Text_YouCameFromPallet:: @ 819021A
.string "Hey!\n"
.string "You came from PALLET TOWN?$"
-gUnknown_819023A:: @ 819023A
+ViridianCity_Mart_Text_TakeThisToProfOak:: @ 819023A
.string "You know PROF. OAK, right?\p"
.string "His order came in.\n"
.string "Can I get you to take it to him?$"
-gUnknown_8190289:: @ 8190289
+ViridianCity_Mart_Text_ReceivedOaksParcelFromClerk:: @ 8190289
.string "{PLAYER} received OAK'S PARCEL\n"
.string "from the POKéMON MART clerk.$"
-Text_1902BF:: @ 81902BF
+ViridianCity_Mart_Text_SayHiToOakForMe:: @ 81902BF
.string "Okay, thanks! Please say hi to\n"
.string "PROF. OAK for me, too.$"
-gUnknown_81902F5:: @ 81902F5
+ViridianCity_Mart_Text_ShopDoesGoodBusinessInAntidotes:: @ 81902F5
.string "This shop does good business in\n"
.string "ANTIDOTES, I've heard.$"
-gUnknown_819032C:: @ 819032C
+ViridianCity_Mart_Text_GotToBuySomePotions:: @ 819032C
.string "I've got to buy some POTIONS.\p"
.string "You never know when your POKéMON\n"
.string "will need quick healing.$"
diff --git a/data/maps/ViridianCity_PokemonCenter_1F/map.json b/data/maps/ViridianCity_PokemonCenter_1F/map.json
index 3e5822608..c531d4b59 100644
--- a/data/maps/ViridianCity_PokemonCenter_1F/map.json
+++ b/data/maps/ViridianCity_PokemonCenter_1F/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2CF",
+ "script": "ViridianCity_PokemonCenter_1F_EventScript_Nurse",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2E1",
+ "script": "ViridianCity_PokemonCenter_1F_EventScript_Gentleman",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2D8",
+ "script": "ViridianCity_PokemonCenter_1F_EventScript_Boy",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2EA",
+ "script": "ViridianCity_PokemonCenter_1F_EventScript_Youngster",
"flag": "0"
}
],
diff --git a/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc b/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc
index 43e74ef4c..ca02e1113 100644
--- a/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc
@@ -7,21 +7,21 @@ ViridianCity_PokemonCenter_1F_OnTransition:: @ 816A2CB
setrespawn SPAWN_VIRIDIAN_CITY
end
-ViridianCity_PokemonCenter_1F_EventScript_16A2CF:: @ 816A2CF
+ViridianCity_PokemonCenter_1F_EventScript_Nurse:: @ 816A2CF
lock
faceplayer
call EventScript_PkmnCenterNurse
release
end
-ViridianCity_PokemonCenter_1F_EventScript_16A2D8:: @ 816A2D8
- msgbox gUnknown_81903E5, MSGBOX_NPC
+ViridianCity_PokemonCenter_1F_EventScript_Boy:: @ 816A2D8
+ msgbox ViridianCity_PokemonCenter_1F_Text_PokeCenterInEveryTown, MSGBOX_NPC
end
-ViridianCity_PokemonCenter_1F_EventScript_16A2E1:: @ 816A2E1
- msgbox gUnknown_8190384, MSGBOX_NPC
+ViridianCity_PokemonCenter_1F_EventScript_Gentleman:: @ 816A2E1
+ msgbox ViridianCity_PokemonCenter_1F_Text_FeelFreeToUsePC, MSGBOX_NPC
end
-ViridianCity_PokemonCenter_1F_EventScript_16A2EA:: @ 816A2EA
- msgbox gUnknown_8190450, MSGBOX_NPC
+ViridianCity_PokemonCenter_1F_EventScript_Youngster:: @ 816A2EA
+ msgbox ViridianCity_PokemonCenter_1F_Text_PokeCentersHealMons, MSGBOX_NPC
end
diff --git a/data/maps/ViridianCity_PokemonCenter_1F/text.inc b/data/maps/ViridianCity_PokemonCenter_1F/text.inc
index 18b535a45..f0e636704 100644
--- a/data/maps/ViridianCity_PokemonCenter_1F/text.inc
+++ b/data/maps/ViridianCity_PokemonCenter_1F/text.inc
@@ -1,16 +1,16 @@
-gUnknown_8190384:: @ 8190384
+ViridianCity_PokemonCenter_1F_Text_FeelFreeToUsePC:: @ 8190384
.string "Please feel free to use that PC in\n"
.string "the corner.\p"
.string "The receptionist told me so.\n"
.string "It's so kind of her!$"
-gUnknown_81903E5:: @ 81903E5
+ViridianCity_PokemonCenter_1F_Text_PokeCenterInEveryTown:: @ 81903E5
.string "There's a POKéMON CENTER in every\n"
.string "town ahead.\p"
.string "They charge no money, so don't\n"
.string "be shy about healing POKéMON.$"
-gUnknown_8190450:: @ 8190450
+ViridianCity_PokemonCenter_1F_Text_PokeCentersHealMons:: @ 8190450
.string "POKéMON CENTERS heal your tired,\n"
.string "hurt, or fainted POKéMON.\p"
.string "They make all POKéMON completely\n"
diff --git a/data/maps/ViridianForest/map.json b/data/maps/ViridianForest/map.json
index 90f689a9f..463bc53f5 100644
--- a/data/maps/ViridianForest/map.json
+++ b/data/maps/ViridianForest/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianForest_EventScript_160529",
+ "script": "ViridianForest_EventScript_Youngster",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "ViridianForest_EventScript_160532",
+ "script": "ViridianForest_EventScript_Boy",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 5,
- "script": "ViridianForest_EventScript_160571",
+ "script": "ViridianForest_EventScript_Rick",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 4,
- "script": "ViridianForest_EventScript_160588",
+ "script": "ViridianForest_EventScript_Doug",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 4,
- "script": "ViridianForest_EventScript_16059F",
+ "script": "ViridianForest_EventScript_Sammy",
"flag": "0"
},
{
@@ -127,7 +127,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "ViridianForest_EventScript_1605B6",
+ "script": "ViridianForest_EventScript_Anthony",
"flag": "0"
},
{
@@ -140,7 +140,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "ViridianForest_EventScript_1605CD",
+ "script": "ViridianForest_EventScript_Charlie",
"flag": "0"
},
{
@@ -208,42 +208,42 @@
"x": 39,
"y": 59,
"elevation": 3,
- "script": "ViridianForest_EventScript_16053B"
+ "script": "ViridianForest_EventScript_TrainerTips1"
},
{
"type": "bg_event_type_0",
"x": 43,
"y": 26,
"elevation": 0,
- "script": "ViridianForest_EventScript_16054D"
+ "script": "ViridianForest_EventScript_TrainerTips3"
},
{
"type": "bg_event_type_0",
"x": 9,
"y": 29,
"elevation": 0,
- "script": "ViridianForest_EventScript_160556"
+ "script": "ViridianForest_EventScript_TrainerTips4"
},
{
"type": "bg_event_type_0",
"x": 6,
"y": 12,
"elevation": 0,
- "script": "ViridianForest_EventScript_160568"
+ "script": "ViridianForest_EventScript_ExitSign"
},
{
"type": "bg_event_type_0",
"x": 28,
"y": 44,
"elevation": 0,
- "script": "ViridianForest_EventScript_160544"
+ "script": "ViridianForest_EventScript_TrainerTips2"
},
{
"type": "bg_event_type_0",
"x": 31,
"y": 60,
"elevation": 0,
- "script": "ViridianForest_EventScript_16055F"
+ "script": "ViridianForest_EventScript_TrainerTips5"
},
{
"type": "hidden_item",
diff --git a/data/maps/ViridianForest/scripts.inc b/data/maps/ViridianForest/scripts.inc
index 6fb97d075..a54fa1377 100644
--- a/data/maps/ViridianForest/scripts.inc
+++ b/data/maps/ViridianForest/scripts.inc
@@ -6,59 +6,59 @@ ViridianForest_OnTransition:: @ 8160525
setworldmapflag FLAG_WORLD_MAP_VIRIDIAN_FOREST
end
-ViridianForest_EventScript_160529:: @ 8160529
- msgbox gUnknown_8172255, MSGBOX_NPC
+ViridianForest_EventScript_Youngster:: @ 8160529
+ msgbox ViridianForest_Text_FriendsItchingToBattle, MSGBOX_NPC
end
-ViridianForest_EventScript_160532:: @ 8160532
- msgbox gUnknown_8172559, MSGBOX_NPC
+ViridianForest_EventScript_Boy:: @ 8160532
+ msgbox ViridianForest_Text_RanOutOfPokeBalls, MSGBOX_NPC
end
-ViridianForest_EventScript_16053B:: @ 816053B
- msgbox gUnknown_81725C7, MSGBOX_SIGN
+ViridianForest_EventScript_TrainerTips1:: @ 816053B
+ msgbox ViridianForest_Text_AvoidGrassyAreasWhenWeak, MSGBOX_SIGN
end
-ViridianForest_EventScript_160544:: @ 8160544
- msgbox gUnknown_8172629, MSGBOX_SIGN
+ViridianForest_EventScript_TrainerTips2:: @ 8160544
+ msgbox ViridianForest_Text_UseAntidoteForPoison, MSGBOX_SIGN
end
-ViridianForest_EventScript_16054D:: @ 816054D
- msgbox gUnknown_817265C, MSGBOX_SIGN
+ViridianForest_EventScript_TrainerTips3:: @ 816054D
+ msgbox ViridianForest_Text_ContactOakViaPCToRatePokedex, MSGBOX_SIGN
end
-ViridianForest_EventScript_160556:: @ 8160556
- msgbox gUnknown_81726A3, MSGBOX_SIGN
+ViridianForest_EventScript_TrainerTips4:: @ 8160556
+ msgbox ViridianForest_Text_CantCatchOwnedMons, MSGBOX_SIGN
end
-ViridianForest_EventScript_16055F:: @ 816055F
- msgbox gUnknown_817271D, MSGBOX_SIGN
+ViridianForest_EventScript_TrainerTips5:: @ 816055F
+ msgbox ViridianForest_Text_WeakenMonsBeforeCapture, MSGBOX_SIGN
end
-ViridianForest_EventScript_160568:: @ 8160568
- msgbox gUnknown_8172773, MSGBOX_SIGN
+ViridianForest_EventScript_ExitSign:: @ 8160568
+ msgbox ViridianForest_Text_LeavingViridianForest, MSGBOX_SIGN
end
-ViridianForest_EventScript_160571:: @ 8160571
- trainerbattle_single TRAINER_BUG_CATCHER_RICK, Text_1722C7, Text_1722F9
- msgbox gUnknown_8172315, MSGBOX_AUTOCLOSE
+ViridianForest_EventScript_Rick:: @ 8160571
+ trainerbattle_single TRAINER_BUG_CATCHER_RICK, ViridianForest_Text_RickIntro, ViridianForest_Text_RickDefeat
+ msgbox ViridianForest_Text_RickPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianForest_EventScript_160588:: @ 8160588
- trainerbattle_single TRAINER_BUG_CATCHER_DOUG, Text_17234A, Text_17237D
- msgbox gUnknown_8172398, MSGBOX_AUTOCLOSE
+ViridianForest_EventScript_Doug:: @ 8160588
+ trainerbattle_single TRAINER_BUG_CATCHER_DOUG, ViridianForest_Text_DougIntro, ViridianForest_Text_DougDefeat
+ msgbox ViridianForest_Text_DougPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianForest_EventScript_16059F:: @ 816059F
- trainerbattle_single TRAINER_BUG_CATCHER_SAMMY, Text_1723D4, Text_172402
- msgbox gUnknown_817241F, MSGBOX_AUTOCLOSE
+ViridianForest_EventScript_Sammy:: @ 816059F
+ trainerbattle_single TRAINER_BUG_CATCHER_SAMMY, ViridianForest_Text_SammyIntro, ViridianForest_Text_SammyDefeat
+ msgbox ViridianForest_Text_SammyPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianForest_EventScript_1605B6:: @ 81605B6
- trainerbattle_single TRAINER_BUG_CATCHER_ANTHONY, Text_172482, Text_1724BF
- msgbox gUnknown_81724DC, MSGBOX_AUTOCLOSE
+ViridianForest_EventScript_Anthony:: @ 81605B6
+ trainerbattle_single TRAINER_BUG_CATCHER_ANTHONY, ViridianForest_Text_AnthonyIntro, ViridianForest_Text_AnthonyDefeat
+ msgbox ViridianForest_Text_AnthonyPostBattle, MSGBOX_AUTOCLOSE
end
-ViridianForest_EventScript_1605CD:: @ 81605CD
- trainerbattle_single TRAINER_BUG_CATCHER_CHARLIE, Text_1724F9, Text_17251B
- msgbox gUnknown_8172527, MSGBOX_AUTOCLOSE
+ViridianForest_EventScript_Charlie:: @ 81605CD
+ trainerbattle_single TRAINER_BUG_CATCHER_CHARLIE, ViridianForest_Text_CharlieIntro, ViridianForest_Text_CharlieDefeat
+ msgbox ViridianForest_Text_CharliePostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/ViridianForest/text.inc b/data/maps/ViridianForest/text.inc
index e3dc737a2..226d9f905 100644
--- a/data/maps/ViridianForest/text.inc
+++ b/data/maps/ViridianForest/text.inc
@@ -1,105 +1,105 @@
-gUnknown_8172255:: @ 8172255
+ViridianForest_Text_FriendsItchingToBattle:: @ 8172255
.string "I came here with some friends to\n"
.string "catch us some BUG POKéMON!\p"
.string "They're all itching to get into\n"
.string "some POKéMON battles!$"
-Text_1722C7:: @ 81722C7
+ViridianForest_Text_RickIntro:: @ 81722C7
.string "Hey! You have POKéMON!\n"
.string "Come on!\l"
.string "Let's battle 'em!$"
-Text_1722F9:: @ 81722F9
+ViridianForest_Text_RickDefeat:: @ 81722F9
.string "No!\nCATERPIE can't hack it!$"
-gUnknown_8172315:: @ 8172315
+ViridianForest_Text_RickPostBattle:: @ 8172315
.string "Ssh! You'll scare the bugs away.\n"
.string "Another time, okay?$"
-Text_17234A:: @ 817234A
+ViridianForest_Text_DougIntro:: @ 817234A
.string "Yo!\n"
.string "You can't jam out if you're a\l"
.string "POKéMON TRAINER!$"
-Text_17237D:: @ 817237D
+ViridianForest_Text_DougDefeat:: @ 817237D
.string "Huh?\n"
.string "I ran out of POKéMON!$"
-gUnknown_8172398:: @ 8172398
+ViridianForest_Text_DougPostBattle:: @ 8172398
.string "That totally stinks! I'm going to\n"
.string "catch some stronger ones!$"
-Text_1723D4:: @ 81723D4
+ViridianForest_Text_SammyIntro:: @ 81723D4
.string "Hey, wait up!\n"
.string "What's the hurry? Why the rush?$"
-Text_172402:: @ 8172402
+ViridianForest_Text_SammyDefeat:: @ 8172402
.string "I give!\n"
.string "You're good at this!$"
-gUnknown_817241F:: @ 817241F
+ViridianForest_Text_SammyPostBattle:: @ 817241F
.string "Sometimes, you can find stuff on\n"
.string "the ground.\p"
.string "I'm looking for the stuff I\n"
.string "dropped. Can you help me?$"
-Text_172482:: @ 8172482
+ViridianForest_Text_AnthonyIntro:: @ 8172482
.string "I might be little, but I won't like\n"
.string "it if you go easy on me!$"
-Text_1724BF:: @ 81724BF
+ViridianForest_Text_AnthonyDefeat:: @ 81724BF
.string "Oh, boo.\n"
.string "Nothing went right.$"
-gUnknown_81724DC:: @ 81724DC
+ViridianForest_Text_AnthonyPostBattle:: @ 81724DC
.string "I lost some of my allowance…$"
-Text_1724F9:: @ 81724F9
+ViridianForest_Text_CharlieIntro:: @ 81724F9
.string "Did you know that POKéMON evolve?$"
-Text_17251B:: @ 817251B
+ViridianForest_Text_CharlieDefeat:: @ 817251B
.string "Oh!\n"
.string "I lost!$"
-gUnknown_8172527:: @ 8172527
+ViridianForest_Text_CharliePostBattle:: @ 8172527
.string "BUG POKéMON evolve quickly.\n"
.string "They're a lot of fun!$"
-gUnknown_8172559:: @ 8172559
+ViridianForest_Text_RanOutOfPokeBalls:: @ 8172559
.string "I was throwing POKé BALLS to\n"
.string "catch POKéMON, and I ran out.\p"
.string "That's why you can never have too\n"
.string "many POKé BALLS.$"
-gUnknown_81725C7:: @ 81725C7
+ViridianForest_Text_AvoidGrassyAreasWhenWeak:: @ 81725C7
.string "TRAINER TIPS\p"
.string "If your POKéMON are weak and you\n"
.string "want to avoid battles, stay away\l"
.string "from grassy areas!$"
-gUnknown_8172629:: @ 8172629
+ViridianForest_Text_UseAntidoteForPoison:: @ 8172629
.string "For poison, use ANTIDOTE!\n"
.string "Get it at POKéMON MARTS!$"
-gUnknown_817265C:: @ 817265C
+ViridianForest_Text_ContactOakViaPCToRatePokedex:: @ 817265C
.string "TRAINER TIPS\p"
.string "Contact PROF. OAK via a PC to\n"
.string "get your POKéDEX evaluated!$"
-gUnknown_81726A3:: @ 81726A3
+ViridianForest_Text_CantCatchOwnedMons:: @ 81726A3
.string "TRAINER TIPS\p"
.string "You can't catch a POKéMON that\n"
.string "belongs to someone else.\p"
.string "Throw POKé BALLS only at wild\n"
.string "POKéMON to catch them!$"
-gUnknown_817271D:: @ 817271D
+ViridianForest_Text_WeakenMonsBeforeCapture:: @ 817271D
.string "TRAINER TIPS\p"
.string "Weaken POKéMON before attempting\n"
.string "capture!\p"
.string "When healthy, they may escape!$"
-gUnknown_8172773:: @ 8172773
+ViridianForest_Text_LeavingViridianForest:: @ 8172773
.string "LEAVING VIRIDIAN FOREST\n"
.string "PEWTER CITY AHEAD$"
diff --git a/data/scripts/aide.inc b/data/scripts/aide.inc
new file mode 100644
index 000000000..3201de769
--- /dev/null
+++ b/data/scripts/aide.inc
@@ -0,0 +1,14 @@
+Aide_EventScript_HaventCaughtEnough:: @ 81A7ABD
+ msgbox Aide_Text_HaventCaughtEnoughMonsForItem
+ release
+ end
+
+Aide_EventScript_NoRoomForItem:: @ 81A7AC7
+ msgbox Aide_Text_DontHaveAnyRoomForItem
+ release
+ end
+
+Aide_EventScript_DeclineCheckMons:: @ 81A7AD1
+ msgbox Aide_Text_GetEnoughMonsComeBackForItem
+ release
+ end
diff --git a/data/scripts/fame_checker.inc b/data/scripts/fame_checker.inc
index 8bf111541..36383bfb8 100644
--- a/data/scripts/fame_checker.inc
+++ b/data/scripts/fame_checker.inc
@@ -1,10 +1,10 @@
-ViridianCity_House2_EventScript_1ACD65:: @ 81ACD65
+ViridianCity_House2_EventScript_PokemonJournal:: @ 81ACD65
lock
faceplayer
famechecker FAMECHECKER_OAK, 3
famechecker FAMECHECKER_DAISY, 3
textcolor 3
- msgbox gUnknown_81B1AB9
+ msgbox PokemonJournal_Text_SpecialFeatureProfOak
release
end
@@ -14,7 +14,7 @@ EventScript_1ACD8D:: @ 81ACD8D
famechecker FAMECHECKER_DAISY, 1
famechecker FAMECHECKER_OAK, 4
textcolor 3
- msgbox gUnknown_81B1AB9
+ msgbox PokemonJournal_Text_SpecialFeatureProfOak
release
end
@@ -23,7 +23,7 @@ EventScript_1ACDB5:: @ 81ACDB5
faceplayer
famechecker FAMECHECKER_DAISY, 4
textcolor 3
- msgbox gUnknown_81B1AB9
+ msgbox PokemonJournal_Text_SpecialFeatureProfOak
release
end
@@ -84,11 +84,11 @@ CeruleanCity_PokemonCenter_1F_EventScript_PokemonJournalMisty:: @ 81ACE68
release
end
-VermilionCity_PokemonCenter_1F_EventScript_1ACE83:: @ 81ACE83
+VermilionCity_PokemonCenter_1F_EventScript_PokemonJournalLtSurge:: @ 81ACE83
lockall
famechecker FAMECHECKER_LTSURGE, 5
textcolor 3
- msgbox gUnknown_81B1558
+ msgbox PokemonJournal_Text_SpecialFeatureLtSurge
releaseall
end
diff --git a/data/scripts/seagallop.inc b/data/scripts/seagallop.inc
index 77ed21b7a..c5489d7ee 100644
--- a/data/scripts/seagallop.inc
+++ b/data/scripts/seagallop.inc
@@ -1,205 +1,206 @@
-EventScript_1A8EC5:: @ 81A8EC5
+@ Separate selection menus for before the Rainbow Pass is obtained
+EventScript_ChooseDestFromOneIsland:: @ 81A8EC5
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5
- goto_if_ge EventScript_1A911E
+ goto_if_ge EventScript_SeviiDestinationsPage1
compare VAR_MAP_SCENE_CINNABAR_ISLAND, 4
- goto_if_ge EventScript_1A8F12
+ goto_if_ge EventScript_ChooseDestFromOneIslandVermilionAllowed
multichoice 19, 6, MULTICHOICE_ISLAND_23, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FF9
- case 1, EventScript_1A9004
+ case 0, EventScript_SailToTwoIsland2
+ case 1, EventScript_SailToThreeIsland2
case 2, EventScript_CancelSail
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A8F12:: @ 81A8F12
+EventScript_ChooseDestFromOneIslandVermilionAllowed:: @ 81A8F12
multichoice 19, 5, MULTICHOICE_SEAGALLOP_V23, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FE3
- case 1, EventScript_1A8FF9
- case 2, EventScript_1A9004
+ case 0, EventScript_SailToVermilion2
+ case 1, EventScript_SailToTwoIsland2
+ case 2, EventScript_SailToThreeIsland2
case 3, EventScript_CancelSail
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A8F54:: @ 81A8F54
+EventScript_ChooseDestFromTwoIsland:: @ 81A8F54
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5
- goto_if_ge EventScript_1A911E
+ goto_if_ge EventScript_SeviiDestinationsPage1
compare VAR_MAP_SCENE_CINNABAR_ISLAND, 4
- goto_if_ge EventScript_1A8FA1
+ goto_if_ge EventScript_ChooseDestFromTwoIslandVermilionAllowed
multichoice 19, 6, MULTICHOICE_ISLAND_13, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FEE
- case 1, EventScript_1A9004
+ case 0, EventScript_SailToOneIsland2
+ case 1, EventScript_SailToThreeIsland2
case 2, EventScript_CancelSail
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A8FA1:: @ 81A8FA1
+EventScript_ChooseDestFromTwoIslandVermilionAllowed:: @ 81A8FA1
multichoice 19, 5, MULTICHOICE_SEAGALLOP_V13, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FE3
- case 1, EventScript_1A8FEE
- case 2, EventScript_1A9004
+ case 0, EventScript_SailToVermilion2
+ case 1, EventScript_SailToOneIsland2
+ case 2, EventScript_SailToThreeIsland2
case 3, EventScript_CancelSail
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A8FE3:: @ 81A8FE3
+EventScript_SailToVermilion2:: @ 81A8FE3
setvar VAR_0x8006, SEAGALLOP_VERMILION_CITY
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A8FEE:: @ 81A8FEE
+EventScript_SailToOneIsland2:: @ 81A8FEE
setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A8FF9:: @ 81A8FF9
+EventScript_SailToTwoIsland2:: @ 81A8FF9
setvar VAR_0x8006, SEAGALLOP_TWO_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A9004:: @ 81A9004
+EventScript_SailToThreeIsland2:: @ 81A9004
setvar VAR_0x8006, SEAGALLOP_THREE_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A900F:: @ 81A900F
+EventScript_ChooseDestFromIsland:: @ 81A900F
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5
- goto_if_ge EventScript_1A911E
+ goto_if_ge EventScript_SeviiDestinationsPage1
compare VAR_MAP_SCENE_CINNABAR_ISLAND, 4
- goto_if_ge EventScript_1A905C
+ goto_if_ge EventScript_ChooseDestFromIslandVermilionAllowed
multichoice 19, 6, MULTICHOICE_ISLAND_12, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FEE
- case 1, EventScript_1A8FF9
+ case 0, EventScript_SailToOneIsland2
+ case 1, EventScript_SailToTwoIsland2
case 2, EventScript_CancelSail
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A905C:: @ 81A905C
+EventScript_ChooseDestFromIslandVermilionAllowed:: @ 81A905C
multichoice 19, 5, MULTICHOICE_SEAGALLOP_V12, FALSE
switch VAR_RESULT
- case 0, EventScript_1A8FE3
- case 1, EventScript_1A8FEE
- case 2, EventScript_1A8FF9
+ case 0, EventScript_SailToVermilion2
+ case 1, EventScript_SailToOneIsland2
+ case 2, EventScript_SailToTwoIsland2
case 3, EventScript_CancelSail
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A909E:: @ 81A909E
- specialvar VAR_RESULT, sub_8147500
+EventScript_SailToDest:: @ 81A909E
+ specialvar VAR_RESULT, GetSeagallopNumber
getnumberstring 0, VAR_RESULT
compare VAR_0x8004, SEAGALLOP_VERMILION_CITY
- goto_if_eq EventScript_1A90BE
+ goto_if_eq EventScript_DepartingVermilion
compare VAR_0x8004, SEAGALLOP_VERMILION_CITY
- goto_if_ne EventScript_1A90CC
+ goto_if_ne EventScript_DepartingNotVermilion
end
-EventScript_1A90BE:: @ 81A90BE
- msgbox Text_17FB67
- goto EventScript_1A90DA
+EventScript_DepartingVermilion:: @ 81A90BE
+ msgbox VermilionCity_Text_Seagallop7Departing
+ goto EventScript_SetSail
end
-EventScript_1A90CC:: @ 81A90CC
- msgbox Text_1A641B
- goto EventScript_1A90DA
+EventScript_DepartingNotVermilion:: @ 81A90CC
+ msgbox Text_AllAboardSeagallopNum
+ goto EventScript_SetSail
end
-EventScript_1A90DA:: @ 81A90DA
+EventScript_SetSail:: @ 81A90DA
closemessage
delay 20
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
fadescreen FADE_TO_BLACK
- special ScrSpecial_SeagallopFerry
+ special DoSeagallopFerryScene
waitstate
end
EventScript_CancelSail:: @ 81A90F6
- specialvar VAR_RESULT, sub_8147594
- compare VAR_RESULT, 1
- goto_if_eq EventScript_1A9108
+ specialvar VAR_RESULT, IsPlayerLeftOfVermilionSailor
+ compare VAR_RESULT, TRUE
+ goto_if_eq VermilionCity_EventScript_WalkUpPier
release
end
-EventScript_1A9108:: @ 81A9108
+VermilionCity_EventScript_WalkUpPier:: @ 81A9108
closemessage
- applymovement 6, Movement_FaceOriginalDirection
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1A911C
+ applymovement LOCALID_FERRY_SAILOR, Movement_FaceOriginalDirection
+ applymovement OBJ_EVENT_ID_PLAYER, VermilionCity_Movement_WalkUp
waitmovement 0
releaseall
end
-Movement_1A911C:: @ 81A911C
+VermilionCity_Movement_WalkUp:: @ 81A911C
walk_up
step_end
-EventScript_1A911E:: @ 81A911E
+EventScript_SeviiDestinationsPage1:: @ 81A911E
setvar VAR_0x8005, 0
special Special_DrawSeagallopDestinationMenu
waitstate
specialvar VAR_0x8006, Special_GetSelectedSeagallopDestination
switch VAR_0x8006
case SEAGALLOP_VERMILION_CITY, EventScript_SailToVermilionCity
- case SEAGALLOP_ONE_ISLAND, EventScript_1A91E0
- case SEAGALLOP_TWO_ISLAND, EventScript_1A91EB
- case SEAGALLOP_THREE_ISLAND, EventScript_1A91F6
- case SEAGALLOP_FOUR_ISLAND, EventScript_1A9201
- case SEAGALLOP_MORE, EventScript_1A917F
+ case SEAGALLOP_ONE_ISLAND, EventScript_SailToOneIsland
+ case SEAGALLOP_TWO_ISLAND, EventScript_SailToTwoIsland
+ case SEAGALLOP_THREE_ISLAND, EventScript_SailToThreeIsland
+ case SEAGALLOP_FOUR_ISLAND, EventScript_SailToFourIsland
+ case SEAGALLOP_MORE, EventScript_SeviiDestinationsPage2
case SCR_MENU_CANCEL, EventScript_CancelSail
end
-EventScript_1A917F:: @ 81A917F
+EventScript_SeviiDestinationsPage2:: @ 81A917F
setvar VAR_0x8005, 1
special Special_DrawSeagallopDestinationMenu
waitstate
specialvar VAR_0x8006, Special_GetSelectedSeagallopDestination
switch VAR_0x8006
- case SEAGALLOP_FOUR_ISLAND, EventScript_1A9201
- case SEAGALLOP_FIVE_ISLAND, EventScript_1A920C
- case SEAGALLOP_SIX_ISLAND, EventScript_1A9217
- case SEAGALLOP_SEVEN_ISLAND, EventScript_1A9222
- case SEAGALLOP_MORE, EventScript_1A911E
+ case SEAGALLOP_FOUR_ISLAND, EventScript_SailToFourIsland
+ case SEAGALLOP_FIVE_ISLAND, EventScript_SailToFiveIsland
+ case SEAGALLOP_SIX_ISLAND, EventScript_SailToSixIsland
+ case SEAGALLOP_SEVEN_ISLAND, EventScript_SailToSevenIsland
+ case SEAGALLOP_MORE, EventScript_SeviiDestinationsPage1
case SCR_MENU_CANCEL, EventScript_CancelSail
end
EventScript_SailToVermilionCity:: @ 81A91D5
setvar VAR_0x8006, SEAGALLOP_VERMILION_CITY
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A91E0:: @ 81A91E0
+EventScript_SailToOneIsland:: @ 81A91E0
setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A91EB:: @ 81A91EB
+EventScript_SailToTwoIsland:: @ 81A91EB
setvar VAR_0x8006, SEAGALLOP_TWO_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A91F6:: @ 81A91F6
+EventScript_SailToThreeIsland:: @ 81A91F6
setvar VAR_0x8006, SEAGALLOP_THREE_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A9201:: @ 81A9201
+EventScript_SailToFourIsland:: @ 81A9201
setvar VAR_0x8006, SEAGALLOP_FOUR_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A920C:: @ 81A920C
+EventScript_SailToFiveIsland:: @ 81A920C
setvar VAR_0x8006, SEAGALLOP_FIVE_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A9217:: @ 81A9217
+EventScript_SailToSixIsland:: @ 81A9217
setvar VAR_0x8006, SEAGALLOP_SIX_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
-EventScript_1A9222:: @ 81A9222
+EventScript_SailToSevenIsland:: @ 81A9222
setvar VAR_0x8006, SEAGALLOP_SEVEN_ISLAND
- goto EventScript_1A909E
+ goto EventScript_SailToDest
end
diff --git a/data/specials.inc b/data/specials.inc
index 92256dfab..39ce252a4 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -387,7 +387,7 @@ gSpecials:: @ 815FD60
def_special IsThereMonInRoute5Daycare
def_special GetNumLevelsGainedForRoute5DaycareMon
def_special TakePokemonFromRoute5Daycare
- def_special ScrSpecial_SeagallopFerry
+ def_special DoSeagallopFerryScene
def_special Special_PlayerPartyContainsSpecies
def_special Special_SetSomeVariable
def_special HelpSystem_BackupSomeVariable
@@ -433,11 +433,11 @@ gSpecials:: @ 815FD60
def_special ShowDodrioBerryPickingRecords
def_special Special_DrawSeagallopDestinationMenu
def_special Special_GetSelectedSeagallopDestination
- def_special sub_8147500
+ def_special GetSeagallopNumber
def_special GetPlayerFacingDirection
def_special DoDeoxysRockInteraction
def_special Special_SetDeoxysTriangleObjectPal
- def_special sub_8147594
+ def_special IsPlayerLeftOfVermilionSailor
def_special Special_BadEggInParty
def_special sub_815D834
def_special HasAllMons
diff --git a/data/strings.s b/data/strings.s
index e77730429..5cff90fcd 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -3093,40 +3093,40 @@ gUnknown_841B32E:: @ 841B32E
.string "{DYNAMIC 0x00} learned\n"
.string "{DYNAMIC 0x01}!$"
-gUnknown_841B33D:: @ 0x841B33D
+gText_Upper:: @ 0x841B33D
.string "UPPER$"
-gUnknown_841B343:: @ 0x841B343
+gText_Lower:: @ 0x841B343
.string "lower$"
-gUnknown_841B349:: @ 0x841B349
+gText_Others:: @ 0x841B349
.string "OTHERS$"
-gUnknown_841B350:: @ 0x841B350
+gText_Symbols:: @ 0x841B350
.string "SYMBOLS$"
-gUnknown_841B358:: @ 0x841B358
+gText_Register2:: @ 0x841B358
.string "REGISTER$"
-gUnknown_841B361:: @ 0x841B361
+gText_Exit:: @ 0x841B361
.string "EXIT$"
-gUnknown_841B366:: @ 0x841B366
+gText_QuitChatting:: @ 0x841B366
.string "Quit chatting?$"
-gUnknown_841B375:: @ 0x841B375
+gText_RegisterTextWhere:: @ 0x841B375
.string "Register text where?$"
-gUnknown_841B38A:: @ 0x841B38A
+gText_RegisterTextHere:: @ 0x841B38A
.string "Register text here?$"
-gUnknown_841B39E:: @ 0x841B39E
+gText_InputText:: @ 0x841B39E
.string "Input text.$"
-gUnknown_841B3AA:: @ 841B3AA
+gText_F700JoinedChat:: @ 841B3AA
.string "{DYNAMIC 0x00} joined the chat!$"
-gUnknown_841B3BE:: @ 841B3BE
+gText_F700LeftChat:: @ 841B3BE
.string "{DYNAMIC 0x00} left the chat.$"
gUnknown_841B3D0:: @ 0x841B3D0
@@ -3135,60 +3135,60 @@ gUnknown_841B3D0:: @ 0x841B3D0
gUnknown_841B3DA:: @ 0x841B3DA
.string "{DYNAMIC 0x00}の{DYNAMIC 0x01}ひきめは いません$"
-gUnknown_841B3E9:: @ 0x841B3E9
+gText_ExitingTheChat:: @ 0x841B3E9
.string "Exiting the chat‥$"
-gUnknown_841B3FB:: @ 0x841B3FB
+gText_LeaderHasLeftEndingChat:: @ 0x841B3FB
.string "The LEADER, {DYNAMIC 0x00}, has\n"
.string "left, ending the chat.$"
-gUnknown_841B426:: @ 0x841B426
+gText_RegisteredTextChanged_OKtoSave:: @ 0x841B426
.string "The registered text has been changed.\n"
.string "Is it okay to save the game?$"
-gUnknown_841B469:: @ 0x841B469
+gText_RegisteredTextChanged_AlreadySavedFile:: @ 0x841B469
.string "There is already a saved file.\n"
.string "Is it okay to overwrite it?$"
-gUnknown_841B4A4:: @ 0x841B4A4
+gText_RegisteredTextChanged_SavingDontTurnOff:: @ 0x841B4A4
.string "SAVING‥\n"
.string "DON'T TURN OFF THE POWER.$"
-gUnknown_841B4C6:: @ 0x841B4C6
+gText_RegisteredTextChanged_SavedTheGame:: @ 0x841B4C6
.string "{DYNAMIC 0x00} saved the game.$"
-gUnknown_841B4D9:: @ 0x841B4D9
+gText_IfLeaderLeavesChatWillEnd:: @ 0x841B4D9
.string "If the LEADER leaves, the chat\n"
.string "will end. Is that okay?$"
-gUnknown_841B510:: @ 841B510
+gText_Hello:: @ 841B510
.string "HELLO$"
-gUnknown_841B516:: @ 841B516
+gText_Pokemon2:: @ 841B516
.string "POKéMON$"
-gUnknown_841B51E:: @ 841B51E
+gText_Trade:: @ 841B51E
.string "TRADE$"
-gUnknown_841B524:: @ 841B524
+gText_Battle:: @ 841B524
.string "BATTLE$"
-gUnknown_841B52B:: @ 841B52B
+gText_Lets:: @ 841B52B
.string "LET'S$"
-gUnknown_841B531:: @ 841B531
+gText_Ok:: @ 841B531
.string "OK!$"
-gUnknown_841B535:: @ 841B535
+gText_Sorry:: @ 841B535
.string "SORRY$"
-gUnknown_841B53B:: @ 841B53B
+gText_YaySmileEmoji:: @ 841B53B
.string "YAY{EXTRA 0xF9}$"
-gUnknown_841B541:: @ 841B541
+gText_ThankYou:: @ 841B541
.string "THANK YOU$"
-gUnknown_841B54B:: @ 841B54B
+gText_ByeBye:: @ 841B54B
.string "BYE-BYE!$"
gUnknown_841B554:: @ 841B554
diff --git a/data/text/aide.inc b/data/text/aide.inc
new file mode 100644
index 000000000..70bf4aa70
--- /dev/null
+++ b/data/text/aide.inc
@@ -0,0 +1,15 @@
+Aide_Text_HaventCaughtEnoughMonsForItem:: @ 81A58A7
+ .string "Let's see…\n"
+ .string "Uh-oh! You have caught only\l"
+ .string "{STR_VAR_3} kinds of POKéMON!\p"
+ .string "You need {STR_VAR_1} kinds\n"
+ .string "if you want the {STR_VAR_2}.$"
+
+Aide_Text_GetEnoughMonsComeBackForItem:: @ 81A5909
+ .string "…Oh. I see.\p"
+ .string "When you get {STR_VAR_1} kinds of POKéMON,\n"
+ .string "come back for the {STR_VAR_2}.$"
+
+Aide_Text_DontHaveAnyRoomForItem:: @ 81A594D
+ .string "Oh! I see you don't have any\n"
+ .string "room for the {STR_VAR_2}.$"
diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc
index ded2719f6..0705caffe 100644
--- a/data/text/fame_checker.inc
+++ b/data/text/fame_checker.inc
@@ -1387,7 +1387,7 @@ PokemonJournal_Text_SpecialFeatureMisty:: @ 81B14E8
.string "MISTY is said to worship LORELEI\n"
.string "of the ELITE FOUR.$"
-gUnknown_81B1558:: @ 81B1558
+PokemonJournal_Text_SpecialFeatureLtSurge:: @ 81B1558
.string "POKéMON JOURNAL\p"
.string "Special Feature: VERMILION GYM\n"
.string "LEADER LT. SURGE!\p"
@@ -1461,7 +1461,7 @@ gUnknown_81B1A31:: @ 81B1A31
.string "be the elder of a famous clan of\l"
.string "dragon masters.$"
-gUnknown_81B1AB9:: @ 81B1AB9
+PokemonJournal_Text_SpecialFeatureProfOak:: @ 81B1AB9
.string "POKéMON JOURNAL\p"
.string "Special Feature: PROF. OAK,\n"
.string "the POKéMON Researcher!\p"
diff --git a/data/text/seagallop.inc b/data/text/seagallop.inc
new file mode 100644
index 000000000..3d4d0d958
--- /dev/null
+++ b/data/text/seagallop.inc
@@ -0,0 +1,7 @@
+Text_WhereDoYouWantToGo:: @ 81A6407
+ .string "おつかれさん!\n"
+ .string "どこに いきたいんだ?$"
+
+Text_AllAboardSeagallopNum:: @ 81A641B
+ .string "All right!\n"
+ .string "All aboard SEAGALLOP HI-SPEED {STR_VAR_1}!$"
diff --git a/data/union_room_chat.s b/data/union_room_chat.s
deleted file mode 100644
index b61c5f44d..000000000
--- a/data/union_room_chat.s
+++ /dev/null
@@ -1,358 +0,0 @@
-#include "constants/region_map.h"
-#include "constants/flags.h"
-#include "constants/moves.h"
- .include "asm/macros.inc"
- .include "constants/constants.inc"
- .section .rodata
- .align 2
-
-gUnknown_845A880:: @ 845A880
- .4byte sub_8128640
- .4byte sub_81286C4
- .4byte sub_81287B4
- .4byte sub_81288D4
- .4byte sub_8128DA4
- .4byte sub_8128E78
- .4byte sub_8128AA0
- .4byte sub_8128C04
- .4byte sub_8128CA8
- .4byte sub_8128FB8
-
-gUnknown_845A8A8:: @ 845A8A8
- .byte 0x09, 0x09, 0x09, 0x09
-
-gUnknown_845A8AC:: @ 845A8AC
- .byte 0x00, 0x16, 0x17, 0x68, 0x19, 0x1a, 0x1b, 0x1c
- .byte 0x1d, 0x1e, 0x00, 0x20, 0x21, 0x22, 0x23, 0x24
- .byte 0x25, 0x26, 0x27, 0x28, 0x29, 0x15, 0x01, 0x02
- .byte 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
- .byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12
- .byte 0x13, 0x14, 0x2a, 0x2b, 0x2c, 0x2d, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x53, 0x54, 0x55, 0x56, 0x00
- .byte 0x00, 0x00, 0x6f, 0x5b, 0x5c, 0x5d, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x85, 0x86, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7
- .byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf
- .byte 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7
- .byte 0xb8, 0xb9, 0xba, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9
- .byte 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1
- .byte 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9
- .byte 0xea, 0xeb, 0xec, 0xed, 0xee, 0xbb, 0xbc, 0xbd
- .byte 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5
- .byte 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd
- .byte 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xef
- .byte 0xf0, 0xf4, 0xf5, 0xf6, 0xf1, 0xf2, 0xf3, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-gUnknown_845A9AC:: @ 845A9AC
- .4byte gUnknown_847AAC1
- .4byte gUnknown_847AAC7
- .4byte gUnknown_847AACD
- .4byte gUnknown_847AAD3
- .4byte gUnknown_847AAD9
- .4byte gUnknown_847AADF
- .4byte gUnknown_847AAE5
- .4byte gUnknown_847AAEB
- .4byte gUnknown_847AAF1
- .4byte gUnknown_847AAF7
- .4byte gUnknown_847AAFD
- .4byte gUnknown_847AB03
- .4byte gUnknown_847AB09
- .4byte gUnknown_847AB0F
- .4byte gUnknown_847AB15
- .4byte gUnknown_847AB1B
- .4byte gUnknown_847AB21
- .4byte gUnknown_847AB27
- .4byte gUnknown_847AB2D
- .4byte gUnknown_847AB33
- .4byte gUnknown_847AB41
- .4byte gUnknown_847AB4C
- .4byte gUnknown_847AB57
- .4byte gUnknown_847AB62
- .4byte gUnknown_847AB6B
- .4byte gUnknown_847AB76
- .4byte gUnknown_847AB81
- .4byte gUnknown_847AB8C
- .4byte gUnknown_847AB97
- .4byte gUnknown_847ABA2
-
-gUnknown_845AA24:: @ 845AA24
- .incbin "graphics/union_room_chat/unk_845AA24.gbapal"
-
-gUnknown_845AA44:: @ 845AA44
- .incbin "graphics/union_room_chat/unk_845AA44.gbapal"
-
-gUnknown_845AA64:: @ 845AA64
- .incbin "graphics/union_room_chat/unk_845AA64.gbapal"
-
-gUnknown_845AA84:: @ 845AA84
- .4byte 0x00000070
- @ {
- @ .bg = 0,
- @ .charBaseIndex = 0,
- @ .mapBaseIndex = 7,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 0,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000011fd
- @ {
- @ .bg = 1,
- @ .charBaseIndex = 3,
- @ .mapBaseIndex = 31,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 1,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x0000217a
- @ {
- @ .bg = 2,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 23,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 2,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000070f7
- @ {
- @ .bg = 3,
- @ .charBaseIndex = 1,
- @ .mapBaseIndex = 15,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 3,
- @ .baseTile = 0x0001
- @ }
-
-gUnknown_845AA94:: @ 845AA94
- .byte 3, 8, 1, 21, 19, 15
- .2byte 0x0001
- .byte 1, 9, 18, 15, 2, 12
- .2byte 0x007a
- .byte 1, 0, 2, 6, 15, 7
- .2byte 0x0020
- .byte 0, 1, 2, 7, 9, 14
- .2byte 0x0013
- .byte 255, 0, 0, 0, 0, 0
- .2byte 0x0000
-
-gUnknown_845AABC:: @ 845AABC
- .2byte 0x00
- .align 2
- .4byte sub_8129CA0
- .2byte 0x03
- .align 2
- .4byte sub_8129D40
- .2byte 0x04
- .align 2
- .4byte sub_8129D78
- .2byte 0x05
- .align 2
- .4byte sub_8129DB0
- .2byte 0x01
- .align 2
- .4byte sub_8129E1C
- .2byte 0x06
- .align 2
- .4byte sub_8129E28
- .2byte 0x07
- .align 2
- .4byte sub_8129E74
- .2byte 0x08
- .align 2
- .4byte sub_8129EB8
- .2byte 0x09
- .align 2
- .4byte sub_8129F24
- .2byte 0x0a
- .align 2
- .4byte sub_8129FCC
- .2byte 0x0b
- .align 2
- .4byte sub_812A074
- .2byte 0x0c
- .align 2
- .4byte sub_812A0B0
- .2byte 0x02
- .align 2
- .4byte sub_812A18C
- .2byte 0x0d
- .align 2
- .4byte sub_812A1B8
- .2byte 0x12
- .align 2
- .4byte sub_812A1FC
- .2byte 0x13
- .align 2
- .4byte sub_812A240
- .2byte 0x0e
- .align 2
- .4byte sub_812A294
- .2byte 0x0f
- .align 2
- .4byte sub_812A2E4
- .2byte 0x10
- .align 2
- .4byte sub_812A334
- .2byte 0x11
- .align 2
- .4byte sub_812A378
- .2byte 0x14
- .align 2
- .4byte sub_812A3D0
-
-gUnknown_845AB64:: @ 845AB64
- .4byte gUnknown_841B366
- .byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .align 2
- .4byte gUnknown_841B375
- .byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .align 2
- .4byte gUnknown_841B38A
- .byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .align 2
- .4byte gUnknown_841B39E
- .byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .align 2
- .4byte gUnknown_841B3E9
- .byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .align 2
- .4byte gUnknown_841B3FB
- .byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00
- .align 2
- .4byte gUnknown_841B426
- .byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
- .align 2
- .4byte gUnknown_841B469
- .byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
- .align 2
- .4byte gUnknown_841B4A4
- .byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
- .align 2
- .4byte gUnknown_841B4C6
- .byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x01, 0x01
- .align 2
- .4byte gUnknown_841B4D9
- .byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
- .align 2
-
-gUnknown_845ABE8:: @ 845ABE8
- .string "…$"
-
- .align 2
-gUnknown_845ABEC:: @ 845ABEC
- .4byte gUnknown_841B33D, 0
- .4byte gUnknown_841B343, 0
- .4byte gUnknown_841B350, 0
- .4byte gUnknown_841B358, 0
- .4byte gUnknown_841B361, 0
-
-gUnknown_845AC14:: @ 845AC14
- .incbin "graphics/union_room_chat/unk_845AC14.gbapal"
-
-gUnknown_845AC34::
- .incbin "graphics/union_room_chat/unk_845AC34.4bpp.lz"
-
-gUnknown_845AEB8::
- .incbin "graphics/union_room_chat/unk_845AEB8.4bpp.lz"
-
-gUnknown_845AED8::
- .incbin "graphics/union_room_chat/unk_845AED8.4bpp.lz"
-
-gUnknown_845AF04::
- .incbin "graphics/union_room_chat/unk_845AF04.4bpp.lz"
-
-gUnknown_845AF58:: @ 845AF58
- obj_tiles gUnknown_845AC34, 0x1000, 0
- obj_tiles gUnknown_845AED8, 0x0040, 1
- obj_tiles gUnknown_845AEB8, 0x0040, 2
- obj_tiles gUnknown_845AF04, 0x0080, 3
- obj_tiles gUnknown_8EA1A50, 0x0400, 4
-
-gUnknown_845AF80:: @ 845AF80
- obj_pal gUnknown_845AC14, 0
-
-gOamData_845AF88::
- .4byte 0xc0004000, 0x00000400
-
-gAnimCmd_845AF90::
- obj_image_anim_frame 0x0000, 30
- obj_image_anim_end
-
-gAnimCmd_845AF98::
- obj_image_anim_frame 0x0020, 30
- obj_image_anim_end
-
-gAnimCmd_845AFA0::
- obj_image_anim_frame 0x0040, 30
- obj_image_anim_end
-
-gAnimCmd_845AFA8::
- obj_image_anim_frame 0x0060, 30
- obj_image_anim_end
-
-gSpriteAnimTable_845AFB0::
- .4byte gAnimCmd_845AF90
- .4byte gAnimCmd_845AF98
- .4byte gAnimCmd_845AFA0
- .4byte gAnimCmd_845AFA8
-
-gUnknown_845AFC0:: @ 845AFC0
- spr_template 0, 0, gOamData_845AF88, gSpriteAnimTable_845AFB0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gOamData_845AFD8::
- .4byte 0x00008000, 0x00000800
-
-gUnknown_845AFE0:: @ 845AFE0
- spr_template 2, 0, gOamData_845AFD8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812B09C
-
-gUnknown_845AFF8:: @ 845AFF8
- spr_template 1, 0, gOamData_845AFD8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812B0D4
-
-gOamData_845B010::
- .4byte 0x40000000, 0x00000800
-
-gOamData_845B018::
- .4byte 0x80004000, 0x00000800
-
-gAnimCmd_845B020::
- obj_image_anim_frame 0x0000, 2
- obj_image_anim_end
-
-gAnimCmd_845B028::
- obj_image_anim_frame 0x0008, 2
- obj_image_anim_end
-
-gAnimCmd_845B030::
- obj_image_anim_frame 0x0010, 2
- obj_image_anim_end
-
-gAnimCmd_845B038::
- obj_image_anim_frame 0x0018, 2
- obj_image_anim_end
-
-gSpriteAnimTable_845B040::
- .4byte gAnimCmd_845B020
- .4byte gAnimCmd_845B028
- .4byte gAnimCmd_845B030
- .4byte gAnimCmd_845B038
-
-gUnknown_845B050:: @ 845B050
- spr_template 3, 0, gOamData_845B010, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_845B068:: @ 845B068
- spr_template 4, 0, gOamData_845B018, gSpriteAnimTable_845B040, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 4dc2f10f0..2aecbb0a4 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -19,7 +19,7 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerSc
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
void SetUpTrainerMovement(void);
u8 ScrSpecial_GetTrainerBattleMode(void);
-u16 sub_80803D8(void);
+u16 GetRivalBattleFlags(void);
u16 ScrSpecial_HasTrainerBeenFought(void);
void SetBattledTrainerFlag(void);
bool8 HasTrainerBeenFought(u16 trainerId);
diff --git a/include/constants/battle.h b/include/constants/battle.h
index b28955210..63be37936 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -81,6 +81,9 @@
#define IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && !((flags) & BATTLE_TYPE_GHOST_UNVEILED))
#define IS_BATTLE_TYPE_GHOST_WITH_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && (flags) & BATTLE_TYPE_GHOST_UNVEILED)
+#define RIVAL_BATTLE_HEAL_AFTER 1
+#define RIVAL_BATTLE_TUTORIAL 3
+
// Battle Outcome defines
#define B_OUTCOME_WON 0x1
#define B_OUTCOME_LOST 0x2
diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h
index 8f700dc04..1e804fd18 100644
--- a/include/constants/battle_setup.h
+++ b/include/constants/battle_setup.h
@@ -10,6 +10,6 @@
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
#define TRAINER_BATTLE_REMATCH_DOUBLE 7
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
-#define TRAINER_BATTLE_TUTORIAL 9
+#define TRAINER_BATTLE_EARLY_RIVAL 9
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
diff --git a/include/constants/global.h b/include/constants/global.h
index 77ef6f203..7f3c80bb4 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -38,6 +38,10 @@
#define FEMALE 1
#define GENDER_COUNT 2
+#define BARD_SONG_LENGTH 6
+#define NUM_STORYTELLER_TALES 4
+#define NUM_TRADER_ITEMS 4
+
#define OPTIONS_BUTTON_MODE_HELP 0
#define OPTIONS_BUTTON_MODE_LR 1
#define OPTIONS_BUTTON_MODE_L_EQUALS_A 2
@@ -62,6 +66,7 @@
#define MAX_MON_MOVES 4
+#define TRAINER_ID_LENGTH 4
#define PARTY_SIZE 6
#define MULTI_PARTY_SIZE (PARTY_SIZE / 2)
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index 7cdfb25e5..8726113f4 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -4,6 +4,41 @@
// General
#define METATILE_General_CalmWater 0x12B
+// PokeMart
+#define METATILE_Shop_CounterMid_Top 0x2BF
+#define METATILE_Shop_CounterMid_Bottom 0x2C0
+
+// Vermilion Gym
+#define METATILE_VermilionGym_Floor 0x281
+#define METATILE_VermilionGym_Beam_MidTop 0x285
+#define METATILE_VermilionGym_Beam_MidBottom 0x28D
+#define METATILE_VermilionGym_Beam_Node_TopLeft_Off 0x293
+#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off 0x294
+#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off 0x295
+#define METATILE_VermilionGym_Beam_Node_TopRight_Off 0x296
+#define METATILE_VermilionGym_Beam_Node_BottomLeft_Off 0x29B
+#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off 0x29C
+#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off 0x29D
+#define METATILE_VermilionGym_Beam_Node_BottomRight_Off 0x29E
+#define METATILE_VermilionGym_Beam_Node_TopLeft_On 0x2A9
+#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On 0x2AA
+#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_On 0x2AB
+#define METATILE_VermilionGym_Beam_Node_TopRight_On 0x2AC
+#define METATILE_VermilionGym_Beam_Node_BottomLeft_On 0x2B1
+#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On 0x2B2
+#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On 0x2B3
+#define METATILE_VermilionGym_Beam_Node_BottomRight_On 0x2B4
+#define METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn 0x2BB
+#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn 0x2BC
+#define METATILE_VermilionGym_Beam_MidTop_HalfOn 0x2BD
+#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn 0x2BE
+#define METATILE_VermilionGym_Beam_Node_TopRight_HalfOn 0x2BF
+#define METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn 0x2C3
+#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn 0x2C4
+#define METATILE_VermilionGym_Beam_MidBottom_HalfOn 0x2C5
+#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn 0x2C6
+#define METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn 0x2C7
+
// Pokemon Mansion
#define METATILE_PokemonMansion_Floor 0x284
#define METATILE_PokemonMansion_Floor_ShadeFull 0x285
diff --git a/include/constants/object_events.h b/include/constants/object_events.h
index 60783a793..d6f33b33c 100644
--- a/include/constants/object_events.h
+++ b/include/constants/object_events.h
@@ -35,7 +35,7 @@
#define OBJECT_EVENT_GFX_WOMAN_3 31
#define OBJECT_EVENT_GFX_OLD_MAN_1 32
#define OBJECT_EVENT_GFX_OLD_MAN_2 33
-#define OBJECT_EVENT_GFX_VIRIDIAN_DRUNK 34
+#define OBJECT_EVENT_GFX_OLD_MAN_LYING_DOWN 34
#define OBJECT_EVENT_GFX_OLD_WOMAN 35
#define OBJECT_EVENT_GFX_TUBER_M_1 36
#define OBJECT_EVENT_GFX_TUBER_F 37
diff --git a/include/data_8479668.h b/include/data_8479668.h
new file mode 100644
index 000000000..1a1f44267
--- /dev/null
+++ b/include/data_8479668.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_DATA_8479668_H
+#define GUARD_DATA_8479668_H
+
+extern const u8 gText_UnionRoomChatKeyboard_ABCDE[];
+extern const u8 gText_UnionRoomChatKeyboard_FGHIJ[];
+extern const u8 gText_UnionRoomChatKeyboard_KLMNO[];
+extern const u8 gText_UnionRoomChatKeyboard_PQRST[];
+extern const u8 gText_UnionRoomChatKeyboard_UVWXY[];
+extern const u8 gText_UnionRoomChatKeyboard_Z[];
+extern const u8 gText_UnionRoomChatKeyboard_01234Upper[];
+extern const u8 gText_UnionRoomChatKeyboard_56789Upper[];
+extern const u8 gText_UnionRoomChatKeyboard_PunctuationUpper[];
+extern const u8 gText_UnionRoomChatKeyboard_SymbolsUpper[];
+extern const u8 gText_UnionRoomChatKeyboard_abcde[];
+extern const u8 gText_UnionRoomChatKeyboard_fghij[];
+extern const u8 gText_UnionRoomChatKeyboard_klmno[];
+extern const u8 gText_UnionRoomChatKeyboard_pqrst[];
+extern const u8 gText_UnionRoomChatKeyboard_uvwxy[];
+extern const u8 gText_UnionRoomChatKeyboard_z[];
+extern const u8 gText_UnionRoomChatKeyboard_01234Lower[];
+extern const u8 gText_UnionRoomChatKeyboard_56789Lower[];
+extern const u8 gText_UnionRoomChatKeyboard_PunctuationLower[];
+extern const u8 gText_UnionRoomChatKeyboard_SymbolsLower[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji1[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji2[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji3[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji4[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji5[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji6[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji7[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji8[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji9[];
+extern const u8 gText_UnionRoomChatKeyboard_Emoji10[];
+
+#endif //GUARD_DATA_8479668_H
diff --git a/include/global.h b/include/global.h
index 180a1e0a3..2f87a0c29 100644
--- a/include/global.h
+++ b/include/global.h
@@ -182,13 +182,13 @@ struct BerryCrush
u32 unk;
};
-#define PLAYER_NAME_LENGTH 8
+#define PLAYER_NAME_LENGTH 7
#define LINK_B_RECORDS_COUNT 5
struct LinkBattleRecord
{
- u8 name[PLAYER_NAME_LENGTH];
+ u8 name[PLAYER_NAME_LENGTH + 1];
u16 trainerId;
u16 wins;
u16 losses;
@@ -261,7 +261,7 @@ struct BattleTowerData // Leftover from R/S
struct SaveBlock2
{
- /*0x000*/ u8 playerName[PLAYER_NAME_LENGTH];
+ /*0x000*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x008*/ u8 playerGender; // MALE, FEMALE
/*0x009*/ u8 specialSaveWarpFlags;
/*0x00A*/ u8 playerTrainerId[4];
@@ -312,7 +312,7 @@ struct SecretBaseRecord
/*0x1A9D*/ u8 gender:1;
/*0x1A9D*/ u8 sbr_field_1_5:1;
/*0x1A9D*/ u8 sbr_field_1_6:2;
- /*0x1A9E*/ u8 trainerName[7]; // TODO: Change PLAYER_NAME_LENGTH to 7
+ /*0x1A9E*/ u8 trainerName[PLAYER_NAME_LENGTH];
/*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1AA9*/ u8 language;
/*0x1AAA*/ u16 sbr_field_e;
@@ -398,41 +398,68 @@ struct MailStruct
/*0x20*/ u16 itemId;
};
-struct UnkMauvilleOldManStruct
+struct MauvilleManCommon
{
- u8 unk_2D94;
- u8 unk_2D95;
- /*0x2D96*/ u16 mauvilleOldMan_ecArray[6];
- /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6];
- /*0x2DAE*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
- /*0x2DB6*/ u8 filler_2DB6[0x3];
- /*0x2DB9*/ u8 playerTrainerId[4];
- u8 unk_2DBD;
+ u8 id;
+};
+
+struct MauvilleManBard
+{
+ /*0x00*/ u8 id;
+ /*0x02*/ u16 songLyrics[BARD_SONG_LENGTH];
+ /*0x0E*/ u16 temporaryLyrics[BARD_SONG_LENGTH];
+ /*0x1A*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
+ /*0x22*/ u8 filler_2DB6[0x3];
+ /*0x25*/ u8 playerTrainerId[TRAINER_ID_LENGTH];
+ /*0x29*/ bool8 hasChangedSong;
+ /*0x2A*/ u8 language;
}; /*size = 0x2C*/
-struct UnkMauvilleOldManStruct2
+struct MauvilleManStoryteller
+{
+ u8 id;
+ bool8 alreadyRecorded;
+ u8 filler2[2];
+ u8 gameStatIDs[NUM_STORYTELLER_TALES];
+ u8 trainerNames[NUM_STORYTELLER_TALES][PLAYER_NAME_LENGTH];
+ u8 statValues[NUM_STORYTELLER_TALES][4];
+ u8 language[NUM_STORYTELLER_TALES];
+};
+
+struct MauvilleManGiddy
{
- u8 filler0;
- u8 unk1;
- u8 unk2;
- u16 mauvilleOldMan_ecArray[10];
- u8 mauvilleOldMan_ecArray2[12];
- u8 fillerF[0x2];
+ /*0x00*/ u8 id;
+ /*0x01*/ u8 taleCounter;
+ /*0x02*/ u8 questionNum;
+ /*0x04*/ u16 randomWords[10];
+ /*0x18*/ u8 questionList[8];
+ /*0x20*/ u8 language;
}; /*size = 0x2C*/
+struct MauvilleManHipster
+{
+ u8 id;
+ bool8 alreadySpoken;
+ u8 language;
+};
+
struct MauvilleOldManTrader
{
- u8 unk0;
- u8 unk1[4];
- u8 unk5[4][11];
- u8 unk31;
+ u8 id;
+ u8 decorIds[NUM_TRADER_ITEMS];
+ u8 playerNames[NUM_TRADER_ITEMS][11];
+ u8 alreadyTraded;
+ u8 language[NUM_TRADER_ITEMS];
};
typedef union OldMan
{
- struct UnkMauvilleOldManStruct oldMan1;
- struct UnkMauvilleOldManStruct2 oldMan2;
+ struct MauvilleManCommon common;
+ struct MauvilleManBard bard;
+ struct MauvilleManGiddy giddy;
+ struct MauvilleManHipster hipster;
struct MauvilleOldManTrader trader;
+ struct MauvilleManStoryteller storyteller;
u8 filler[0x40];
} OldMan;
@@ -715,9 +742,11 @@ struct TrainerRematchState
struct TrainerNameRecord
{
u32 trainerId;
- u8 trainerName[PLAYER_NAME_LENGTH];
+ u8 trainerName[PLAYER_NAME_LENGTH + 1];
};
+#define UNION_ROOM_KB_ROW_COUNT 10
+
struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
@@ -770,9 +799,10 @@ struct SaveBlock1
/*0x361C*/ struct RamScript ramScript;
/*0x3A08*/ u8 filler3A08[16];
/*0x3A18*/ u8 seen2[DEX_FLAGS_NO];
- /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH];
+ /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH + 1];
/*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS];
- /*0x3A94*/ u8 filler3A94[0x114];
+ /*0x3A94*/ u8 filler3A94[0x40];
+ /*0x3AD4*/ u8 registeredTexts[UNION_ROOM_KB_ROW_COUNT][21];
/*0x3BA8*/ struct TrainerNameRecord trainerNameRecords[20];
/*0x3C98*/ struct DaycareMon route5DayCareMon;
/*0x3D24*/ u8 filler3D24[0x10];
diff --git a/include/graphics.h b/include/graphics.h
index e87acb556..467a1d461 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4864,4 +4864,15 @@ extern const u32 gUnknown_8E83444[];
extern const u32 gBagBgPalette[];
extern const u32 gBagBgPalette_FemaleOverride[];
+// union_room_chat_display
+extern const u16 gUnionRoomChatPanelBgPal_7[];
+extern const u32 gUnionRoomChatPanelBgTiles[];
+extern const u32 gUnionRoomChatPanelBgMap[];
+extern const u16 gLinkMiscMenu_Pal[];
+extern const u32 gLinkMiscMenu_Gfx[];
+extern const u32 gLinkMiscMenu_Tilemap[];
+
+// union_room_chat_objects
+extern const u32 gUnionRoomChatIcons[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/help_system.h b/include/help_system.h
index 273b5e119..59adec912 100644
--- a/include/help_system.h
+++ b/include/help_system.h
@@ -92,5 +92,6 @@ bool8 MoveCursor(u8 by, u8 dirn);
void HelpSystem_BackupSomeVariable(void);
void HelpSystem_RestoreSomeVariable(void);
void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height);
+void sub_812B4AC(void);
#endif //GUARD_HELP_SYSTEM_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 790429870..81dd7fdf0 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -216,7 +216,7 @@ struct UnkRfuStruct_2
/* 0x99d */ u8 unk_ce5;
/* 0x99e */ u8 unk_ce6;
/* 0x99f */ u8 unk_ce7;
- /* 0x9a0 */ u8 unk_ce8;
+ /* 0x9a0 */ bool8 unk_ce8;
/* 0x9a1 */ u8 unk_ce9;
/* 0x9a2 */ u8 unk_cea[RFU_CHILD_MAX];
/* 0x9a6 */ u8 unk_cee[RFU_CHILD_MAX];
@@ -325,6 +325,10 @@ void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2);
bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name);
bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx);
bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx);
+bool32 GetRfuUnkCE8(void);
+void sub_80FA4A8(void);
+void sub_80FB9D0(void);
+void sub_80FB030(u32 a0);
#include "mevent_server.h"
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
diff --git a/include/main.h b/include/main.h
index c962cf7bd..f89ffbd63 100644
--- a/include/main.h
+++ b/include/main.h
@@ -73,5 +73,6 @@ extern const char RomHeaderGameCode[4];
extern const char RomHeaderSoftwareVersion;
extern u8 gLinkTransferringData;
+extern u16 gKeyRepeatStartDelay;
#endif // GUARD_MAIN_H
diff --git a/include/strings.h b/include/strings.h
index 0969a8338..5c8ffde4b 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -40,7 +40,6 @@ extern const u8 gText_Second[];
extern const u8 gText_Third[];
extern const u8 gText_NoDecorations[];
extern const u8 gText_NoDecorationsInUse[];
-extern const u8 gText_Exit[];
extern const u8 gText_Cancel[];
extern const u8 gText_Color161Shadow161[];
extern const u8 gText_GoBackPrevMenu[];
@@ -288,7 +287,6 @@ extern const u8 gText_ThreePkmnAreNeeded[];
extern const u8 gText_TwoPokemonAreNeeded[];
extern const u8 gText_PokemonCantBeSame[];
extern const u8 gText_NoIdenticalHoldItems[];
-extern const u8 gString_Dummy[];
extern const u8 gText_DoWhatWithPokemon[];
extern const u8 gText_RestoreWhichMove[];
extern const u8 gText_BoostPp[];
@@ -327,13 +325,9 @@ extern const u8 gText_SendOut[];
extern const u8 gText_Enter[];
extern const u8 gText_NoEntry[];
extern const u8 gText_Store[];
-extern const u8 gText_Register[];
extern const u8 gText_Trade4[];
extern const u8 gText_NotPkmnOtherTrainerWants[];
extern const u8 gText_ThatIsntAnEgg[];
-extern const u8 gText_PkmnCantBeTradedNow[];
-extern const u8 gText_OtherTrainersPkmnCantBeTraded[];
-extern const u8 gText_EggCantBeTradedNow[];
extern const u8 gText_OtherTrainerCantAcceptPkmn[];
extern const u8 gText_CantTradeWithTrainer[];
extern const u8 gUnknown_84176CF[];
@@ -346,7 +340,6 @@ extern const u8 gText_PkmnCantParticipate[];
extern const u8 gText_CancelParticipation[];
extern const u8 gUnknown_8417494[];
extern const u8 gMenuText_Confirm[];
-extern const u8 gText_Lv[];
extern const u8 gText_MaleSymbol[];
extern const u8 gText_FemaleSymbol[];
extern const u8 gText_Slash[];
@@ -984,6 +977,16 @@ extern const u8 gUnknown_8415F6C[];
extern const u8 gUnknown_8415FFF[];
extern const u8 gUnknown_8416002[];
+// daycare
+extern const u8 gText_Lv[];
+extern const u8 gDaycareText_GetAlongVeryWell[];
+extern const u8 gDaycareText_GetAlong[];
+extern const u8 gDaycareText_DontLikeOther[];
+extern const u8 gDaycareText_PlayOther[];
+extern const u8 gExpandedPlaceholder_Empty[];
+extern const u8 gText_HatchedFromEgg[];
+extern const u8 gText_NickHatchPrompt[];
+
// trainer card
extern const u8 gText_WaitingTrainerFinishReading[];
extern const u8 gText_TrainerCardName[];
@@ -1065,4 +1068,36 @@ extern const u8 gText_CommStandbyAwaitingOtherPlayer[];
extern const u8 gText_RefusedBattle[];
extern const u8 gText_BattleWasRefused[];
+// union_room_chat
+extern const u8 gText_F700JoinedChat[];
+extern const u8 gText_F700LeftChat[];
+extern const u8 gText_Hello[];
+extern const u8 gText_Pokemon2[];
+extern const u8 gText_Trade[];
+extern const u8 gText_Battle[];
+extern const u8 gText_Lets[];
+extern const u8 gText_Ok[];
+extern const u8 gText_Sorry[];
+extern const u8 gText_YaySmileEmoji[];
+extern const u8 gText_ThankYou[];
+extern const u8 gText_ByeBye[];
+
+// union_room_chat_display
+extern const u8 gText_QuitChatting[];
+extern const u8 gText_RegisterTextWhere[];
+extern const u8 gText_RegisterTextHere[];
+extern const u8 gText_InputText[];
+extern const u8 gText_ExitingTheChat[];
+extern const u8 gText_LeaderHasLeftEndingChat[];
+extern const u8 gText_RegisteredTextChanged_OKtoSave[];
+extern const u8 gText_RegisteredTextChanged_AlreadySavedFile[];
+extern const u8 gText_RegisteredTextChanged_SavingDontTurnOff[];
+extern const u8 gText_RegisteredTextChanged_SavedTheGame[];
+extern const u8 gText_IfLeaderLeavesChatWillEnd[];
+extern const u8 gText_Upper[];
+extern const u8 gText_Lower[];
+extern const u8 gText_Symbols[];
+extern const u8 gText_Register2[];
+extern const u8 gText_Exit[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index cd059e0e5..ff8b033e9 100644
--- a/include/text.h
+++ b/include/text.h
@@ -5,10 +5,24 @@
#define CHAR_SPACE 0x00
#define CHAR_0 0xA1
+#define CHAR_1 0xA2
+#define CHAR_2 0xA3
+#define CHAR_3 0xA4
+#define CHAR_4 0xA5
+#define CHAR_5 0xA6
+#define CHAR_6 0xA7
+#define CHAR_7 0xA8
+#define CHAR_8 0xA9
+#define CHAR_9 0xAA
+#define CHAR_EXCL_MARK 0xAB
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE
#define CHAR_ELLIPSIS 0xB0
+#define CHAR_DBL_QUOT_LEFT 0xB1
+#define CHAR_DBL_QUOT_RIGHT 0xB2
+#define CHAR_SGL_QUOT_LEFT 0xB3
+#define CHAR_SGL_QUOT_RIGHT 0xB4
#define CHAR_MALE 0xB5
#define CHAR_FEMALE 0xB6
#define CHAR_CURRENCY 0xB7
diff --git a/include/text_window.h b/include/text_window.h
index 8e8466145..3796629b4 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -26,6 +26,7 @@ void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette);
void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette);
void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette);
+void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum);
void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset);
void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx);
void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx);
diff --git a/include/trade.h b/include/trade.h
index d5106b172..f8e285e40 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -8,6 +8,10 @@
extern struct MailStruct gLinkPartnerMail[6];
extern u8 gSelectedTradeMonPositions[2];
+extern const u8 gText_MaleSymbol4[];
+extern const u8 gText_FemaleSymbol4[];
+extern const u8 gText_GenderlessSymbol[];
+
extern const u16 gUnknown_826601C[];
void CB2_ReturnFromLinkTrade(void);
s32 sub_804FB34(void);
diff --git a/include/trainer_card.h b/include/trainer_card.h
index 06844dc2e..ed3e803d5 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -24,7 +24,7 @@ struct TrainerCard
/*0x20*/ u16 pokemonTrades;
/*0x24*/ u32 money;
/*0x28*/ u16 var_28[4];
- /*0x30*/ u8 playerName[PLAYER_NAME_LENGTH];
+ /*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x38*/ u8 version;
/*0x3A*/ u16 var_3A;
/*0x3C*/ u32 berryCrushPoints;
diff --git a/include/union_room.h b/include/union_room.h
index 3cb8eb84a..7e48b3e6e 100644
--- a/include/union_room.h
+++ b/include/union_room.h
@@ -7,7 +7,7 @@
struct UnkStruct_Shared
{
struct GFtgtGname gname;
- u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH];
+ u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1];
};
struct UnkStruct_x1C
diff --git a/include/union_room_chat.h b/include/union_room_chat.h
index 66daac376..3ce78b210 100644
--- a/include/union_room_chat.h
+++ b/include/union_room_chat.h
@@ -1,8 +1,30 @@
#ifndef GUARD_UNION_ROOM_CHAT_H
#define GUARD_UNION_ROOM_CHAT_H
-void sub_801DD98(void);
-void sub_8128420(void);
-void copy_strings_to_sav1(void);
+enum
+{
+ UNION_ROOM_KB_PAGE_UPPER,
+ UNION_ROOM_KB_PAGE_LOWER,
+ UNION_ROOM_KB_PAGE_EMOJI,
+ UNION_ROOM_KB_PAGE_COUNT
+};
+
+extern const u8 *const gUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT];
+
+void EnterUnionRoomChat(void);
+u8 *UnionRoomChat_GetWorkRegisteredText(int arg0);
+void UnionRoomChat_GetCursorColAndRow(u8 *colp, u8 *rowp);
+u8 *UnionRoomChat_GetMessageEntryBuffer(void);
+int UnionRoomChat_LenMessageEntryBuffer(void);
+void UnionRoomChat_GetBufferSelectionRegion(u32 *startp, u32 *diffp);
+u8 *UnionRoomChat_GetEndOfMessageEntryBuffer(void);
+u16 UnionRoomChat_GetNumCharsInMessageEntryBuffer(void);
+u8 *UnionRoomChat_GetLastReceivedMessage(void);
+u16 UnionRoomChat_GetReceivedPlayerIndex(void);
+int UnionRoomChat_GetMessageEntryCursorPosition(void);
+int UnionRoomChat_GetWhetherShouldShowCaseToggleIcon(void);
+u8 *UnionRoomChat_GetNameOfPlayerWhoDisbandedChat(void);
+void UnionRoomChat_InitializeRegisteredTexts(void);
+u8 GetCurrentKeyboardPage(void);
#endif // GUARD_UNION_ROOM_CHAT_H
diff --git a/include/union_room_chat_display.h b/include/union_room_chat_display.h
new file mode 100644
index 000000000..f880eeecb
--- /dev/null
+++ b/include/union_room_chat_display.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_UNION_ROOM_CHAT_DISPLAY_H
+#define GUARD_UNION_ROOM_CHAT_DISPLAY_H
+
+#define CHATDISPLAYROUTINE_LOADGFX 0
+#define CHATDISPLAYROUTINE_MOVEKBCURSOR 1
+#define CHATDISPLAYROUTINE_CURSORBLINK 2
+#define CHATDISPLAYROUTINE_SHOWKBSWAPMENU 3
+#define CHATDISPLAYROUTINE_HIDEKBSWAPMENU 4
+#define CHATDISPLAYROUTINE_SWITCHPAGES 5
+#define CHATDISPLAYROUTINE_SHOWQUITCHATTINGDIALOG 6
+#define CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO 7
+#define CHATDISPLAYROUTINE_PRINTMSG 8
+#define CHATDISPLAYROUTINE_PRINTREGISTERWHERE 9
+#define CHATDISPLAYROUTINE_CANCELREGISTER 10
+#define CHATDISPLAYROUTINE_RETURNTOKB 11
+#define CHATDISPLAYROUTINE_SCROLLCHAT 12
+#define CHATDISPLAYROUTINE_PRINTINPUTTEXT 13
+#define CHATDISPLAYROUTINE_ASKSAVE 14
+#define CHATDISPLAYROUTINE_ASKOVERWRITESAVE 15
+#define CHATDISPLAYROUTINE_PRINTSAVING 16
+#define CHATDISPLAYROUTINE_PRINTSAVEDTHEGAME 17
+#define CHATDISPLAYROUTINE_PRINTEXITINGCHAT 18
+#define CHATDISPLAYROUTINE_PRINTLEADERLEFT 19
+#define CHATDISPLAYROUTINE_SHOWCONFIRMLEADERLEAVEDIALOG 20
+
+bool8 UnionRoomChat_TryAllocGraphicsWork(void);
+bool32 UnionRoomChat_RunDisplaySubtask0(void);
+void UnionRoomChat_FreeGraphicsWork(void);
+void UnionRoomChat_RunDisplaySubtasks(void);
+void UnionRoomChat_StartDisplaySubtask(u16 a0, u8 a1);
+u8 RunDisplaySubtask(u8 a0);
+s8 UnionRoomChat_ProcessInput(void);
+
+#endif //GUARD_UNION_ROOM_CHAT_DISPLAY_H
diff --git a/include/union_room_chat_objects.h b/include/union_room_chat_objects.h
new file mode 100644
index 000000000..879f9f86b
--- /dev/null
+++ b/include/union_room_chat_objects.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_UNION_ROOM_CHAT_OBJECTS_H
+#define GUARD_UNION_ROOM_CHAT_OBJECTS_H
+
+bool32 UnionRoomChat_TryAllocSpriteWork(void);
+void UnionRoomChat_FreeSpriteWork(void);
+void UnionRoomChat_CreateSelectorCursorObj(void);
+void UnionRoomChat_ToggleSelectorCursorObjVisibility(bool32 invisible);
+void UnionRoomChat_MoveSelectorCursorObj(void);
+void UnionRoomChat_UpdateObjPalCycle(u32 idx);
+void UnionRoomChat_SetSelectorCursorClosedImage(void);
+bool32 UnionRoomChat_AnimateSelectorCursorReopen(void);
+void UnionRoomChat_SpawnTextEntryPointerSprites(void);
+void CreatePageSwitchUISprites(void);
+void UpdateVisibleUnionRoomChatIcon(void);
+
+#endif //GUARD_UNION_ROOM_CHAT_OBJECTS_H
diff --git a/ld_script.txt b/ld_script.txt
index 97e4a6b5e..5fbf5616e 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -245,7 +245,9 @@ SECTIONS {
src/union_room_battle.o(.text);
asm/pokemon_special_anim.o(.text);
src/party_menu.o(.text);
- asm/union_room_chat.o(.text);
+ src/union_room_chat.o(.text);
+ src/union_room_chat_display.o(.text);
+ src/union_room_chat_objects.o(.text);
src/help_system_812B1E0.o(.text);
src/quest_log_battle.o(.text);
src/fame_checker.o(.text);
@@ -532,7 +534,9 @@ SECTIONS {
src/union_room_message.o(.rodata);
data/pokemon_special_anim.o(.rodata);
src/party_menu.o(.rodata);
- data/union_room_chat.o(.rodata);
+ src/union_room_chat.o(.rodata);
+ src/union_room_chat_display.o(.rodata);
+ src/union_room_chat_objects.o(.rodata);
src/help_system_812B1E0.o(.rodata);
src/fame_checker.o(.rodata);
src/menu2.o(.rodata);
diff --git a/src/battle_main.c b/src/battle_main.c
index fd8aeffbc..76f373f8f 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -50,6 +50,7 @@
#include "cable_club.h"
#include "constants/abilities.h"
#include "constants/battle_move_effects.h"
+#include "constants/battle_setup.h"
#include "constants/hold_effects.h"
#include "constants/items.h"
#include "constants/moves.h"
@@ -3716,12 +3717,12 @@ static void HandleEndTurn_BattleLost(void)
}
else
{
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && ScrSpecial_GetTrainerBattleMode() == 9)
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && ScrSpecial_GetTrainerBattleMode() == TRAINER_BATTLE_EARLY_RIVAL)
{
- if (sub_80803D8() & 1)
- gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ if (GetRivalBattleFlags() & RIVAL_BATTLE_HEAL_AFTER)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1; // Dont do white out text
else
- gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2; // Do white out text
gBattlerAttacker = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
}
else
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 102a1b969..ae6aaf8be 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -78,7 +78,7 @@ static EWRAM_DATA u8 *sTrainerVictorySpeech = NULL;
static EWRAM_DATA u8 *sTrainerCannotBattleSpeech = NULL;
static EWRAM_DATA u8 *sTrainerBattleEndScript = NULL;
static EWRAM_DATA u8 *sTrainerABattleScriptRetAddr = NULL;
-static EWRAM_DATA u16 gUnknown_20386CC = 0;
+static EWRAM_DATA u16 sRivalBattleFlags = 0;
static const u8 sBattleTransitionTable_Wild[][2] =
{
@@ -148,11 +148,11 @@ static const struct TrainerBattleParameter sOrdinaryNoIntroBattleParams[] =
{&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
};
-static const struct TrainerBattleParameter sTutorialBattleParams[] =
+static const struct TrainerBattleParameter sEarlyRivalBattleParams[] =
{
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
{&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
- {&gUnknown_20386CC, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sRivalBattleFlags, TRAINER_PARAM_LOAD_VAL_16BIT},
{&sTrainerAIntroSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
{&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
{&sTrainerVictorySpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
@@ -706,7 +706,7 @@ static void InitTrainerBattleVariables(void)
sTrainerCannotBattleSpeech = NULL;
sTrainerBattleEndScript = NULL;
sTrainerABattleScriptRetAddr = NULL;
- gUnknown_20386CC = 0;
+ sRivalBattleFlags = 0;
}
static inline void SetU8(void *ptr, u8 value)
@@ -808,8 +808,8 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
SetMapVarsToTrainer();
gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
return EventScript_TryDoRematchBattle;
- case TRAINER_BATTLE_TUTORIAL:
- TrainerBattleLoadArgs(sTutorialBattleParams, data);
+ case TRAINER_BATTLE_EARLY_RIVAL:
+ TrainerBattleLoadArgs(sEarlyRivalBattleParams, data);
return EventScript_DoTrainerBattle;
default:
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
@@ -846,9 +846,9 @@ u8 ScrSpecial_GetTrainerBattleMode(void)
return sTrainerBattleMode;
}
-u16 sub_80803D8(void)
+u16 GetRivalBattleFlags(void)
{
- return gUnknown_20386CC;
+ return sRivalBattleFlags;
}
u16 ScrSpecial_HasTrainerBeenFought(void)
@@ -885,8 +885,7 @@ void ClearTrainerFlag(u16 trainerId)
void BattleSetup_StartTrainerBattle(void)
{
gBattleTypeFlags = BATTLE_TYPE_TRAINER;
- if (ScrSpecial_GetTrainerBattleMode() == TRAINER_BATTLE_TUTORIAL
- && sub_80803D8() & 3)
+ if (ScrSpecial_GetTrainerBattleMode() == TRAINER_BATTLE_EARLY_RIVAL && GetRivalBattleFlags() & RIVAL_BATTLE_TUTORIAL)
gBattleTypeFlags |= BATTLE_TYPE_FIRST_BATTLE;
gMain.savedCallback = CB2_EndTrainerBattle;
DoTrainerBattle();
@@ -895,12 +894,12 @@ void BattleSetup_StartTrainerBattle(void)
static void CB2_EndTrainerBattle(void)
{
- if (sTrainerBattleMode == TRAINER_BATTLE_TUTORIAL)
+ if (sTrainerBattleMode == TRAINER_BATTLE_EARLY_RIVAL)
{
if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{
- gSpecialVar_Result = 1;
- if (gUnknown_20386CC & 1)
+ gSpecialVar_Result = TRUE;
+ if (sRivalBattleFlags & RIVAL_BATTLE_HEAL_AFTER)
{
HealPlayerParty();
}
@@ -915,7 +914,7 @@ static void CB2_EndTrainerBattle(void)
}
else
{
- gSpecialVar_Result = 0;
+ gSpecialVar_Result = FALSE;
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
SetBattledTrainerFlag();
sub_81139BC();
diff --git a/src/daycare.c b/src/daycare.c
index a377e97f5..277a382c7 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -1,44 +1,34 @@
#include "global.h"
-#include "pokemon.h"
+#include "gflib.h"
#include "battle.h"
#include "daycare.h"
-#include "string_util.h"
#include "constants/species.h"
#include "constants/items.h"
#include "mail_data.h"
#include "pokemon_storage_system.h"
#include "event_data.h"
#include "random.h"
-#include "main.h"
#include "constants/moves.h"
-#include "text.h"
#include "menu.h"
#include "new_menu_helpers.h"
#include "script.h"
#include "strings.h"
-#include "task.h"
-#include "window.h"
#include "party_menu.h"
#include "list_menu.h"
#include "overworld.h"
#include "pokedex.h"
#include "decompress.h"
-#include "palette.h"
-#include "sound.h"
#include "constants/songs.h"
#include "text_window.h"
#include "trig.h"
-#include "malloc.h"
-#include "gpu_regs.h"
-#include "bg.h"
#include "m4a.h"
#include "graphics.h"
#include "scanline_effect.h"
#include "naming_screen.h"
#include "help_system.h"
#include "field_fadetransition.h"
+#include "trade.h"
#include "constants/daycare.h"
-#include "constants/pokemon.h"
#include "constants/region_map.h"
// Combination of RSE's Day-Care (re-used on Four Island), FRLG's Day-Care, and egg_hatch.c
@@ -60,20 +50,6 @@ struct EggHatchData
u8 textColor[3];
};
-extern const u8 gText_MaleSymbol4[];
-extern const u8 gText_FemaleSymbol4[];
-extern const u8 gText_GenderlessSymbol[];
-extern const u8 gText_Lv[];
-extern const u8 gDaycareText_GetAlongVeryWell[];
-extern const u8 gDaycareText_GetAlong[];
-extern const u8 gDaycareText_DontLikeOther[];
-extern const u8 gDaycareText_PlayOther[];
-extern const u8 gExpandedPlaceholder_Empty[];
-
-extern const u32 gUnknown_826601C[]; // tilemap gameboy circle
-extern const u8 gText_HatchedFromEgg[];
-extern const u8 gText_NickHatchPrompt[];
-
// this file's functions
static void ClearDaycareMonMail(struct DayCareMail *mail);
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
@@ -638,7 +614,7 @@ static void ClearDaycareMonMail(struct DayCareMail *mail)
{
s32 i;
- for (i = 0; i < PLAYER_NAME_LENGTH/* + 1*/; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
mail->OT_name[i] = 0;
for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
mail->monName[i] = 0;
diff --git a/src/fame_checker.c b/src/fame_checker.c
index b8f2c0055..6f60b4a44 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -33,7 +33,7 @@
#define SPRITETAG_QUESTION_MARK 1001
#define SPRITETAG_SPINNING_POKEBALL 1002
#define SPRITETAG_SCROLL_INDICATORS 1004
-#define SPRITETAG_DAISY 1006
+#define SPRITETAG_DAISY 1006 // TODO: Investigate, seems to be used for other NPCs (e.g. Fan Club Chairman)
#define SPRITETAG_FUJI 1007
#define SPRITETAG_OAK 1008
#define SPRITETAG_BILL 1009
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index 17f604ee8..a27948650 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -30,7 +30,7 @@ static u16 gUnknown_3002008[7];
struct GFtgtGname gHostRFUtgtGnameBuffer;
struct UnkRfuStruct_2 Rfu;
-u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH];
+u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH + 1];
static void sub_80F8AA4(void);
static void sub_80F8AEC(void);
@@ -448,7 +448,7 @@ static void sub_80F8B34(u8 taskId)
gTasks[taskId].data[1] = 8;
Rfu.unk_0c = 1;
CreateTask(sub_80FA834, 5);
- Rfu.unk_ce8 = 1;
+ Rfu.unk_ce8 = TRUE;
DestroyTask(taskId);
break;
}
@@ -1337,7 +1337,7 @@ static void sub_80FA1C4(void)
static void sub_80FA224(void)
{
- if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
+ if (gSendCmd[0] == 0 && !Rfu.unk_ce8)
{
sub_80F9D04(0x5f00);
Rfu.RfuFunc = sub_80FA1C4;
@@ -1620,7 +1620,7 @@ static void sub_80FA834(u8 taskId)
if (Rfu.unk_f1 == 1 || Rfu.unk_f1 == 2)
{
- Rfu.unk_ce8 = 0;
+ Rfu.unk_ce8 = FALSE;
DestroyTask(taskId);
}
switch (gTasks[taskId].data[0])
@@ -1681,7 +1681,7 @@ static void sub_80FA834(u8 taskId)
case 6:
DestroyTask(taskId);
gReceivedRemoteLinkPlayers = 1;
- Rfu.unk_ce8 = 0;
+ Rfu.unk_ce8 = FALSE;
sub_80FEA34(1, 0x258);
if (Rfu.unk_ce6)
{
@@ -1740,7 +1740,7 @@ static void sub_80FAA94(u8 taskId)
u8 r4 = Rfu.unk_cde[gUnknown_843EC38[Rfu.unk_ce9]];
if (Rfu.unk_f1 == 1 || Rfu.unk_f1 == 2)
{
- Rfu.unk_ce8 = 0;
+ Rfu.unk_ce8 = FALSE;
DestroyTask(taskId);
}
switch (gTasks[taskId].data[0])
@@ -1790,7 +1790,7 @@ static void sub_80FAA94(u8 taskId)
{
CpuFill16(0, gBlockRecvBuffer, sizeof(struct UnkRfuStruct_8010A14));
ResetBlockReceivedFlag(0);
- Rfu.unk_ce8 = 0;
+ Rfu.unk_ce8 = FALSE;
if (Rfu.unk_ce6)
{
for (i = 0; i < RFU_CHILD_MAX; i++)
@@ -1799,7 +1799,7 @@ static void sub_80FAA94(u8 taskId)
{
Rfu.unk_ce5 = 1 << i;
Rfu.unk_ce6 ^= (1 << i);
- Rfu.unk_ce8 = 1;
+ Rfu.unk_ce8 = TRUE;
break;
}
}
@@ -1948,7 +1948,7 @@ void sub_80FB008(u8 a0, u32 a1, u32 a2)
rfu_REQ_configGameData(0, 2, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer);
}
-void sub_80FB030(u32 a0)
+void sub_80FB030(u32 linkPlayerCount)
{
s32 i;
u32 r5;
@@ -1964,9 +1964,10 @@ void sub_80FB030(u32 a0)
{
if ((r8 >> i) & 1)
{
- r7 |= ((0x80 | ((gLinkPlayers[Rfu.unk_cde[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.unk_cde[i]].trainerId & 7)) << (r5 << 3));
+ r7 |= ((
+ 0x80 | ((gLinkPlayers[Rfu.unk_cde[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.unk_cde[i]].trainerId & 7)) << (r5 << 3));
r5++;
- if (r5 == a0 - 1)
+ if (r5 == linkPlayerCount - 1)
break;
}
}
@@ -2214,11 +2215,11 @@ static void sub_80FB5EC(u8 a0, u8 unused1)
if (idx != 0)
{
r1 = 1 << sub_80F886C(idx);
- if (Rfu.unk_ce6 == 0 && Rfu.unk_ce8 == 0)
+ if (Rfu.unk_ce6 == 0 && !Rfu.unk_ce8)
{
Rfu.unk_ce5 = r1;
Rfu.unk_ce6 |= (r1 ^ idx);
- Rfu.unk_ce8 = 1;
+ Rfu.unk_ce8 = TRUE;
}
else
{
@@ -2360,7 +2361,7 @@ bool32 sub_80FBA00(void)
return FALSE;
}
-bool32 sub_80FBA1C(void)
+bool32 GetRfuUnkCE8(void)
{
return Rfu.unk_ce8;
}
@@ -2534,7 +2535,7 @@ void sub_80FBD6C(u32 a0)
static void sub_80FBDB8(u8 taskId)
{
- if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
+ if (gSendCmd[0] == 0 && !Rfu.unk_ce8)
{
sub_80F9D04(0xED00);
gSendCmd[1] = gTasks[taskId].data[0];
diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c
index 31ea0830b..69b6603a8 100644
--- a/src/link_rfu_3.c
+++ b/src/link_rfu_3.c
@@ -848,7 +848,7 @@ static void ZeroName(u8 *name)
{
s32 i;
- for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
{
*name++ = 0;
}
@@ -858,7 +858,7 @@ static bool32 NameIsEmpty(const u8 *name)
{
s32 i;
- for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
{
if (*name++ != 0)
{
diff --git a/src/mail_data.c b/src/mail_data.c
index d4fa649e1..43ca1d0e6 100644
--- a/src/mail_data.c
+++ b/src/mail_data.c
@@ -20,7 +20,7 @@ void ClearMailStruct(struct MailStruct *mail)
for (i = 0; i < MAIL_WORDS_COUNT; i++)
mail->words[i] = 0xFFFF;
- for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
mail->playerName[i] = EOS;
for (i = 0; i < 4; i++)
mail->trainerId[i] = 0;
@@ -52,7 +52,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
{
for (i = 0; i < MAIL_WORDS_COUNT; i++)
gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF;
- for (i = 0; i < PLAYER_NAME_LENGTH - 1 && gSaveBlock2Ptr->playerName[i] != EOS; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH && gSaveBlock2Ptr->playerName[i] != EOS; i++)
gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i];
for (; i <= 5; i++)
gSaveBlock1Ptr->mail[id].playerName[i] = CHAR_SPACE;
diff --git a/src/new_game.c b/src/new_game.c
index 381ba28c8..05fb9c83e 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -108,7 +108,7 @@ void ResetMenuAndMonGlobals(void)
void NewGameInitData(void)
{
- u8 rivalName[PLAYER_NAME_LENGTH];
+ u8 rivalName[PLAYER_NAME_LENGTH + 1];
StringCopy(rivalName, gSaveBlock1Ptr->rivalName);
gDifferentSaveFile = TRUE;
@@ -143,7 +143,7 @@ void NewGameInitData(void)
sub_809C794();
InitEasyChatPhrases();
ResetTrainerFanClub();
- copy_strings_to_sav1();
+ UnionRoomChat_InitializeRegisteredTexts();
ResetMiniGamesResults();
sub_8143D24();
SetAllRenewableItemFlags();
diff --git a/src/oak_speech.c b/src/oak_speech.c
index 0ad5d6a6f..6887ff85a 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -1902,8 +1902,8 @@ static void GetDefaultName(u8 arg0, u8 namePick)
src = sRivalNameChoices[namePick];
dest = gSaveBlock1Ptr->rivalName;
}
- for (i = 0; i < PLAYER_NAME_LENGTH - 1 && src[i] != EOS; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH && src[i] != EOS; i++)
dest[i] = src[i];
- for (; i < PLAYER_NAME_LENGTH; i++)
+ for (; i < PLAYER_NAME_LENGTH + 1; i++)
dest[i] = EOS;
}
diff --git a/src/pokemon.c b/src/pokemon.c
index d1305861a..09e2ed998 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2991,7 +2991,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
{
retVal = 0;
- // FRLG changed this to 7 which used to be PLAYER_NAME_LENGTH
+ // FRLG changed this to 7 which used to be PLAYER_NAME_LENGTH + 1
while (retVal < 7)
{
data[retVal] = boxMon->otName[retVal];
@@ -5769,7 +5769,7 @@ s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor)
bool8 IsTradedMon(struct Pokemon *mon)
{
- u8 otName[7 + 1]; // change PLAYER_NAME_LENGTH to 7
+ u8 otName[PLAYER_NAME_LENGTH];
u32 otId;
GetMonData(mon, MON_DATA_OT_NAME, otName);
otId = GetMonData(mon, MON_DATA_OT_ID, 0);
diff --git a/src/quest_log.c b/src/quest_log.c
index 0cda4eb77..a02aea302 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -2411,8 +2411,8 @@ static void BufferFanClubTrainerName(struct LinkBattleRecords *linkRecords, u8 w
else
{
str = gStringVar1;
- StringCopyN(str, linkTrainerName, PLAYER_NAME_LENGTH - 1);
- str[PLAYER_NAME_LENGTH - 1] = EOS;
+ StringCopyN(str, linkTrainerName, PLAYER_NAME_LENGTH);
+ str[PLAYER_NAME_LENGTH] = EOS;
if ( str[0] == EXT_CTRL_CODE_BEGIN
&& str[1] == EXT_CTRL_CODE_JPN)
{
@@ -3401,8 +3401,8 @@ static const u16 *BufferQuestLogText_LinkTraded(const u16 *a0)
{
const u16 *r6 = a0 + 4;
- memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
- memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH - 1);
+ memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
+ memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH);
BufferLinkPartnersName(gStringVar1);
QuestLog_GetSpeciesName(a0[3], gStringVar2, 0); // Mon received
@@ -3435,7 +3435,7 @@ static u16 *BufferQuestLogData_LinkBattledSingle(u16 *a0, const u16 *eventData)
a0[0] = QL_EVENT_LINK_BATTLED_SINGLE;
a0[1] = sQuestLogIdx;
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0);
- memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
+ memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
a0 += 6;
return a0;
}
@@ -3444,8 +3444,8 @@ static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0)
{
DynamicPlaceholderTextUtil_Reset();
- memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
- memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1);
+ memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
+ memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH);
BufferLinkPartnersName(gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sBattleOutcomeTexts[((const u8 *)a0)[4]]);
@@ -3459,7 +3459,7 @@ static u16 *BufferQuestLogData_LinkBattledDouble(u16 *a0, const u16 *eventData)
a0[0] = QL_EVENT_LINK_BATTLED_DOUBLE;
a0[1] = sQuestLogIdx;
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0);
- memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
+ memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
a0 += 6;
return a0;
}
@@ -3468,8 +3468,8 @@ static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0)
{
DynamicPlaceholderTextUtil_Reset();
- memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
- memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1);
+ memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
+ memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH);
BufferLinkPartnersName(gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sBattleOutcomeTexts[((const u8 *)a0)[4]]);
@@ -3483,9 +3483,9 @@ static u16 *BufferQuestLogData_LinkBattledMulti(u16 *a0, const u16 *eventData)
a0[0] = QL_EVENT_LINK_BATTLED_MULTI;
a0[1] = sQuestLogIdx;
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0);
- memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
- memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH - 1);
- memcpy((u8 *)a0 + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH - 1);
+ memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
+ memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH);
+ memcpy((u8 *)a0 + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH);
a0 += 13;
return a0;
}
@@ -3494,9 +3494,9 @@ static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0)
{
DynamicPlaceholderTextUtil_Reset();
- memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
- memset(gStringVar2, EOS, PLAYER_NAME_LENGTH);
- memset(gStringVar3, EOS, PLAYER_NAME_LENGTH);
+ memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
+ memset(gStringVar2, EOS, PLAYER_NAME_LENGTH + 1);
+ memset(gStringVar3, EOS, PLAYER_NAME_LENGTH + 1);
StringCopy7(gStringVar1, (const u8 *)a0 + 5);
StringCopy7(gStringVar2, (const u8 *)a0 + 12);
StringCopy7(gStringVar3, (const u8 *)a0 + 19);
@@ -3548,7 +3548,7 @@ static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData
a0[1] = sQuestLogIdx;
a0[2] = eventData[0];
a0[3] = eventData[1];
- memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH - 1);
+ memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH);
r4 += 8;
return (u16 *)r4;
}
@@ -3556,8 +3556,8 @@ static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData
static const u16 *BufferQuestLogText_LinkTradedUnionRoom(const u16 *a0)
{
const u8 *r6 = (const u8 *)(a0 + 4);
- memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
- memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH - 1);
+ memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
+ memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH);
BufferLinkPartnersName(gStringVar1);
QuestLog_GetSpeciesName(a0[3], gStringVar2, 0);
QuestLog_GetSpeciesName(a0[2], gStringVar3, 0);
@@ -3571,15 +3571,15 @@ static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *a0, const u16 *eventDat
a0[0] = QL_EVENT_LINK_BATTLED_UNION;
a0[1] = sQuestLogIdx;
*(u8 *)&a0[2] = *(const u8 *)&eventData[0];
- memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
+ memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
a0 += 6;
return a0;
}
static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *a0)
{
- memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
- memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1);
+ memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
+ memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH);
BufferLinkPartnersName(gStringVar1);
StringCopy(gStringVar2, sBattleOutcomeTexts[*(const u8 *)&a0[2]]);
StringExpandPlaceholders(gStringVar4, QuestLog_Text_BattledTrainerEndedInOutcome);
diff --git a/src/seagallop.c b/src/seagallop.c
index 10ea97fec..aa0c48da1 100644
--- a/src/seagallop.c
+++ b/src/seagallop.c
@@ -176,7 +176,7 @@ static const struct SpriteTemplate sWakeSpriteTemplate = {
SpriteCB_Wake
};
-void ScrSpecial_SeagallopFerry(void)
+void DoSeagallopFerryScene(void)
{
SetVBlankCallback(NULL);
HelpSystem_Disable();
@@ -459,7 +459,8 @@ static bool8 GetDirectionOfTravel(void)
return (sTravelDirectionMatrix[gSpecialVar_0x8004] >> gSpecialVar_0x8006) & 1;
}
-u8 sub_8147500(void)
+// For "All aboard SEAGALLOP HI-SPEED ##" text
+u8 GetSeagallopNumber(void)
{
u16 originId, destId;
@@ -478,21 +479,34 @@ u8 sub_8147500(void)
if (originId == SEAGALLOP_BIRTH_ISLAND || destId == SEAGALLOP_BIRTH_ISLAND)
return 12;
- if ((originId == SEAGALLOP_ONE_ISLAND || originId == SEAGALLOP_TWO_ISLAND || originId == SEAGALLOP_THREE_ISLAND) && (destId == SEAGALLOP_ONE_ISLAND || destId == SEAGALLOP_TWO_ISLAND || destId == SEAGALLOP_THREE_ISLAND))
+ if ((originId == SEAGALLOP_ONE_ISLAND
+ || originId == SEAGALLOP_TWO_ISLAND
+ || originId == SEAGALLOP_THREE_ISLAND)
+ && (destId == SEAGALLOP_ONE_ISLAND
+ || destId == SEAGALLOP_TWO_ISLAND
+ || destId == SEAGALLOP_THREE_ISLAND))
return 2;
- if ((originId == SEAGALLOP_FOUR_ISLAND || originId == SEAGALLOP_FIVE_ISLAND) && (destId == SEAGALLOP_FOUR_ISLAND || destId == SEAGALLOP_FIVE_ISLAND))
+ if ((originId == SEAGALLOP_FOUR_ISLAND
+ || originId == SEAGALLOP_FIVE_ISLAND)
+ && (destId == SEAGALLOP_FOUR_ISLAND
+ || destId == SEAGALLOP_FIVE_ISLAND))
return 3;
- if ((originId == SEAGALLOP_SIX_ISLAND || originId == SEAGALLOP_SEVEN_ISLAND) && (destId == SEAGALLOP_SIX_ISLAND || destId == SEAGALLOP_SEVEN_ISLAND))
+ if ((originId == SEAGALLOP_SIX_ISLAND
+ || originId == SEAGALLOP_SEVEN_ISLAND)
+ && (destId == SEAGALLOP_SIX_ISLAND
+ || destId == SEAGALLOP_SEVEN_ISLAND))
return 5;
return 6;
}
-bool8 sub_8147594(void)
+bool8 IsPlayerLeftOfVermilionSailor(void)
{
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(VERMILION_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(VERMILION_CITY) && gSaveBlock1Ptr->pos.x < 24)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(VERMILION_CITY)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(VERMILION_CITY)
+ && gSaveBlock1Ptr->pos.x < 24)
return TRUE;
return FALSE;
diff --git a/src/trade.c b/src/trade.c
index 05a259e60..fe5f53be9 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -1,41 +1,22 @@
#include "global.h"
-#include "palette.h"
+#include "gflib.h"
#include "task.h"
#include "decompress.h"
-#include "gpu_regs.h"
-#include "malloc.h"
-#include "bg.h"
-#include "text.h"
-#include "window.h"
-#include "librfu.h"
#include "text_window.h"
-#include "evolution_scene.h"
#include "pokemon_icon.h"
-#include "pokedex.h"
-#include "mail_data.h"
#include "graphics.h"
#include "link.h"
-#include "random.h"
-#include "save.h"
#include "load_save.h"
-#include "quest_log.h"
-#include "field_fadetransition.h"
-#include "mevent.h"
-#include "help_system.h"
#include "link_rfu.h"
#include "cable_club.h"
#include "data.h"
-#include "sound.h"
-#include "string_util.h"
#include "strings.h"
#include "menu.h"
#include "overworld.h"
#include "battle_anim.h"
#include "pokeball.h"
#include "party_menu.h"
-#include "util.h"
#include "daycare.h"
-#include "script.h"
#include "event_data.h"
#include "battle_interface.h"
#include "pokemon_summary_screen.h"
@@ -43,11 +24,7 @@
#include "new_menu_helpers.h"
#include "trade.h"
#include "trade_scene.h"
-#include "constants/species.h"
-#include "constants/items.h"
-#include "constants/easy_chat.h"
#include "constants/songs.h"
-#include "constants/region_map.h"
#include "constants/moves.h"
struct TradeMenuResources
diff --git a/src/union_room.c b/src/union_room.c
index 4e3428cc6..f942fb7d3 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -1852,7 +1852,7 @@ static void sub_81175BC(u8 taskId)
sub_80F8D14();
SetHostRFUtgtGname(69, 0, 1);
}
- sub_8128420();
+ EnterUnionRoomChat();
break;
case 8:
case 72:
@@ -3385,7 +3385,7 @@ static void sub_81199FC(u8 taskId)
case 2:
if (sUnionRoomPlayerName[0] == EOS)
{
- for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
{
if (structPtr->field_0->arr[i].field_1A_0 == 1)
{
diff --git a/src/union_room_chat.c b/src/union_room_chat.c
new file mode 100644
index 000000000..15601c028
--- /dev/null
+++ b/src/union_room_chat.c
@@ -0,0 +1,1452 @@
+#include "global.h"
+#include "gflib.h"
+#include "dynamic_placeholder_text_util.h"
+#include "help_system.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "load_save.h"
+#include "menu.h"
+#include "overworld.h"
+#include "quest_log.h"
+#include "save.h"
+#include "scanline_effect.h"
+#include "strings.h"
+#include "task.h"
+#include "union_room_chat.h"
+#include "union_room_chat_display.h"
+#include "data_8479668.h"
+#include "constants/songs.h"
+
+#define MESSAGE_BUFFER_NCHAR 15
+
+#define CHAT_MESSAGE_0 0
+#define CHAT_MESSAGE_CHAT 1
+#define CHAT_MESSAGE_JOIN 2
+#define CHAT_MESSAGE_LEAVE 3
+#define CHAT_MESSAGE_DROP 4
+#define CHAT_MESSAGE_DISBAND 5
+
+#define CHATENTRYROUTINE_JOIN 0
+#define CHATNETRYROUTINE_HANDLE_INPUT 1
+#define CHATENTRYROUTINE_SWITCH 2
+#define CHATENTRYROUTINE_ASKQUITCHATTING 3
+#define CHATENTRYROUTINE_SEND 4
+#define CHATENTRYROUTINE_REGISTER 5
+#define CHATENTRYROUTINE_EXITCHAT 6
+#define CHATENTRYROUTINE_DROP 7
+#define CHATENTRYROUTINE_DISBANDED 8
+#define CHATENTRYROUTINE_SAVEANDEXIT 9
+
+#define CHATEXIT_NONE 0
+#define CHATEXIT_LEADER_LAST 1
+#define CHATEXIT_DROPPED 2
+#define CHATEXIT_DISBANDED 3
+
+struct UnionRoomChat
+{
+ u8 filler0[0x4];
+ u16 routineNo;
+ u16 routineState;
+ u8 filler8[0x2];
+ u16 exitDelayTimer;
+ u8 fillerC[0x1];
+ u8 linkPlayerCount;
+ u8 handleInputTask;
+ u8 receiveMessagesTask;
+ u8 currentPage;
+ u8 currentCol;
+ u8 currentRow;
+ u8 multiplayerId;
+ u8 lastBufferCursorPos;
+ u8 bufferCursorPos;
+ u8 receivedPlayerIndex;
+ u8 exitType;
+ bool8 changedRegisteredTexts;
+ u8 afterSaveTimer;
+ u8 messageEntryBuffer[2 * MESSAGE_BUFFER_NCHAR + 1];
+ u8 receivedMessage[0x40];
+ u8 hostName[0x40];
+ u8 registeredTexts[UNION_ROOM_KB_ROW_COUNT][21];
+ u8 filler18B[0x5];
+ u8 sendMessageBuffer[0x28];
+};
+
+static EWRAM_DATA struct UnionRoomChat * sWork = NULL;
+
+static void InitChatWork(struct UnionRoomChat * unionRoomChat);
+static void CB2_LoadInterface(void);
+static void VBlankCB_UnionRoomChatMain(void);
+static void CB2_UnionRoomChatMain(void);
+static void Task_HandlePlayerInput(u8 taskId);
+static void ChatEntryRoutine_Join(void);
+static void ChatEntryRoutine_HandleInput(void);
+static void ChatEntryRoutine_Switch(void);
+static void ChatEntryRoutine_AskQuitChatting(void);
+static void ChatEntryRoutine_ExitChat(void);
+static void ChatEntryRoutine_Drop(void);
+static void ChatEntryRoutine_Disbanded(void);
+static void ChatEntryRoutine_SendMessage(void);
+static void ChatEntryRoutine_Register(void);
+static void ChatEntryRoutine_SaveAndExit(void);
+static void GoToRoutine(u16 routineNo);
+static bool32 TypeChatMessage_HandleDPad(void);
+static void AppendCharacterToChatMessageBuffer(void);
+static void DeleteLastCharacterOfChatMessageBuffer(void);
+static void ToggleCaseOfLastCharacterInChatMessageBuffer(void);
+static bool32 ChatMsgHasAtLeastOneCharcter(void);
+static void RegisterTextAtRow(void);
+static void ResetMessageEntryBuffer(void);
+static void SaveRegisteredTextsToSB1(void);
+static u8 *GetEndOfUnk1A(void);
+static u8 *GetPtrToLastCharOfUnk1A(void);
+static void PrepareSendBuffer_Null(u8 *ptr);
+static void PrepareSendBuffer_Join(u8 *ptr);
+static void PrepareSendBuffer_Chat(u8 *ptr);
+static void PrepareSendBuffer_Leave(u8 *ptr);
+static void PrepareSendBuffer_Drop(u8 *ptr);
+static void PrepareSendBuffer_Disband(u8 *ptr);
+static void Task_ReceiveChatMessage(u8 taskId);
+
+static void (*const sChatEntryRoutines[])(void) = {
+ [CHATENTRYROUTINE_JOIN] = ChatEntryRoutine_Join,
+ [CHATNETRYROUTINE_HANDLE_INPUT] = ChatEntryRoutine_HandleInput,
+ [CHATENTRYROUTINE_SWITCH] = ChatEntryRoutine_Switch,
+ [CHATENTRYROUTINE_ASKQUITCHATTING] = ChatEntryRoutine_AskQuitChatting,
+ [CHATENTRYROUTINE_SEND] = ChatEntryRoutine_SendMessage,
+ [CHATENTRYROUTINE_REGISTER] = ChatEntryRoutine_Register,
+ [CHATENTRYROUTINE_EXITCHAT] = ChatEntryRoutine_ExitChat,
+ [CHATENTRYROUTINE_DROP] = ChatEntryRoutine_Drop,
+ [CHATENTRYROUTINE_DISBANDED] = ChatEntryRoutine_Disbanded,
+ [CHATENTRYROUTINE_SAVEANDEXIT] = ChatEntryRoutine_SaveAndExit
+};
+
+static const u8 sKeyboardPageMaxRow[] =
+{
+ [UNION_ROOM_KB_PAGE_UPPER] = 9,
+ [UNION_ROOM_KB_PAGE_LOWER] = 9,
+ [UNION_ROOM_KB_PAGE_EMOJI] = 9,
+ 9
+};
+
+static const u8 sCaseToggleTable[] = {
+ 0x00, 0x16, 0x17, 0x68, 0x19, 0x1A, 0x1B, 0x1C,
+ 0x1D, 0x1E, 0x00, 0x20, 0x21, 0x22, 0x23, 0x24,
+ 0x25, 0x26, 0x27, 0x28, 0x29, 0x15, 0x01, 0x02,
+ 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00,
+ 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12,
+ 0x13, 0x14, 0x2A, 0x2B, 0x2C, 0x2D, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x53, 0x54, 0x55, 0x56, 0x00,
+ 0x00, 0x00, 0x6F, 0x5B, 0x5C, 0x5D, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x84, 0x85, 0x86, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
+ 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
+ 0xB8, 0xB9, 0xBA, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,
+ 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1,
+ 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
+ 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xBB, 0xBC, 0xBD,
+ 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5,
+ 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD,
+ 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xEF,
+ 0xF0, 0xF4, 0xF5, 0xF6, 0xF1, 0xF2, 0xF3, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const u8 *const gUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT] = {
+ [UNION_ROOM_KB_PAGE_UPPER] = {
+ gText_UnionRoomChatKeyboard_ABCDE,
+ gText_UnionRoomChatKeyboard_FGHIJ,
+ gText_UnionRoomChatKeyboard_KLMNO,
+ gText_UnionRoomChatKeyboard_PQRST,
+ gText_UnionRoomChatKeyboard_UVWXY,
+ gText_UnionRoomChatKeyboard_Z,
+ gText_UnionRoomChatKeyboard_01234Upper,
+ gText_UnionRoomChatKeyboard_56789Upper,
+ gText_UnionRoomChatKeyboard_PunctuationUpper,
+ gText_UnionRoomChatKeyboard_SymbolsUpper
+ },
+ [UNION_ROOM_KB_PAGE_LOWER] = {
+ gText_UnionRoomChatKeyboard_abcde,
+ gText_UnionRoomChatKeyboard_fghij,
+ gText_UnionRoomChatKeyboard_klmno,
+ gText_UnionRoomChatKeyboard_pqrst,
+ gText_UnionRoomChatKeyboard_uvwxy,
+ gText_UnionRoomChatKeyboard_z,
+ gText_UnionRoomChatKeyboard_01234Lower,
+ gText_UnionRoomChatKeyboard_56789Lower,
+ gText_UnionRoomChatKeyboard_PunctuationLower,
+ gText_UnionRoomChatKeyboard_SymbolsLower
+ },
+ [UNION_ROOM_KB_PAGE_EMOJI] = {
+ gText_UnionRoomChatKeyboard_Emoji1,
+ gText_UnionRoomChatKeyboard_Emoji2,
+ gText_UnionRoomChatKeyboard_Emoji3,
+ gText_UnionRoomChatKeyboard_Emoji4,
+ gText_UnionRoomChatKeyboard_Emoji5,
+ gText_UnionRoomChatKeyboard_Emoji6,
+ gText_UnionRoomChatKeyboard_Emoji7,
+ gText_UnionRoomChatKeyboard_Emoji8,
+ gText_UnionRoomChatKeyboard_Emoji9,
+ gText_UnionRoomChatKeyboard_Emoji10
+ }
+};
+
+void EnterUnionRoomChat(void)
+{
+ sWork = Alloc(sizeof(struct UnionRoomChat));
+ InitChatWork(sWork);
+ gKeyRepeatStartDelay = 20;
+ sub_812B4AC();
+ SetVBlankCallback(NULL);
+ SetMainCallback2(CB2_LoadInterface);
+}
+
+static void InitChatWork(struct UnionRoomChat * unionRoomChat)
+{
+ int i;
+
+ unionRoomChat->routineNo = CHATENTRYROUTINE_JOIN;
+ unionRoomChat->routineState = 0;
+ unionRoomChat->currentPage = UNION_ROOM_KB_PAGE_UPPER;
+ unionRoomChat->currentCol = 0;
+ unionRoomChat->currentRow = 0;
+ unionRoomChat->lastBufferCursorPos = 0;
+ unionRoomChat->bufferCursorPos = 0;
+ unionRoomChat->receivedPlayerIndex = 0;
+ unionRoomChat->messageEntryBuffer[0] = EOS;
+ unionRoomChat->linkPlayerCount = GetLinkPlayerCount();
+ unionRoomChat->multiplayerId = GetMultiplayerId();
+ unionRoomChat->exitType = 0;
+ unionRoomChat->changedRegisteredTexts = FALSE;
+ PrepareSendBuffer_Null(unionRoomChat->sendMessageBuffer);
+ for (i = 0; i < UNION_ROOM_KB_ROW_COUNT; i++)
+ StringCopy(unionRoomChat->registeredTexts[i], gSaveBlock1Ptr->registeredTexts[i]);
+}
+
+static void FreeChatWork(void)
+{
+ DestroyTask(sWork->handleInputTask);
+ DestroyTask(sWork->receiveMessagesTask);
+ Free(sWork);
+}
+
+static void CB2_LoadInterface(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ ResetTasks();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ UnionRoomChat_TryAllocGraphicsWork();
+ gMain.state++;
+ break;
+ case 1:
+ UnionRoomChat_RunDisplaySubtasks();
+ if (!UnionRoomChat_RunDisplaySubtask0())
+ {
+ BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
+ SetVBlankCallback(VBlankCB_UnionRoomChatMain);
+ gMain.state++;
+ }
+ break;
+ case 2:
+ UpdatePaletteFade();
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(CB2_UnionRoomChatMain);
+ SetQuestLogEvent(QL_EVENT_USED_UNION_ROOM_CHAT, NULL);
+ sWork->handleInputTask = CreateTask(Task_HandlePlayerInput, 8);
+ sWork->receiveMessagesTask = CreateTask(Task_ReceiveChatMessage, 7);
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(232, 150);
+ }
+ break;
+ }
+}
+
+static void VBlankCB_UnionRoomChatMain(void)
+{
+ TransferPlttBuffer();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+static void CB2_UnionRoomChatMain(void)
+{
+ RunTasks();
+ UnionRoomChat_RunDisplaySubtasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void Task_HandlePlayerInput(u8 taskId)
+{
+ switch (sWork->exitType)
+ {
+ case CHATEXIT_LEADER_LAST:
+ GoToRoutine(CHATENTRYROUTINE_EXITCHAT);
+ sWork->exitType = CHATEXIT_NONE;
+ break;
+ case CHATEXIT_DROPPED:
+ GoToRoutine(CHATENTRYROUTINE_DROP);
+ sWork->exitType = CHATEXIT_NONE;
+ break;
+ case CHATEXIT_DISBANDED:
+ GoToRoutine(CHATENTRYROUTINE_DISBANDED);
+ sWork->exitType = CHATEXIT_NONE;
+ break;
+ }
+
+ sChatEntryRoutines[sWork->routineNo]();
+}
+
+static void ChatEntryRoutine_Join(void)
+{
+ switch (sWork->routineState)
+ {
+ case 0:
+ PrepareSendBuffer_Join(sWork->sendMessageBuffer);
+ sWork->routineState++;
+ // fall through
+ case 1:
+ if (IsLinkTaskFinished() && !GetRfuUnkCE8())
+ {
+ if (SendBlock(0, sWork->sendMessageBuffer, sizeof(sWork->sendMessageBuffer)))
+ sWork->routineState++;
+ }
+ break;
+ case 2:
+ if (IsLinkTaskFinished())
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ }
+}
+
+static void ChatEntryRoutine_HandleInput(void)
+{
+ bool8 var0, var1;
+
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (JOY_NEW(START_BUTTON))
+ {
+ if (sWork->bufferCursorPos)
+ GoToRoutine(CHATENTRYROUTINE_SEND);
+ }
+ else if (JOY_NEW(SELECT_BUTTON))
+ {
+ GoToRoutine(CHATENTRYROUTINE_SWITCH);
+ }
+ else if (JOY_REPT(B_BUTTON))
+ {
+ if (sWork->bufferCursorPos)
+ {
+ DeleteLastCharacterOfChatMessageBuffer();
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTMSG, 0);
+ sWork->routineState = 1;
+ }
+ else
+ {
+ GoToRoutine(CHATENTRYROUTINE_ASKQUITCHATTING);
+ }
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ AppendCharacterToChatMessageBuffer();
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTMSG, 0);
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_CURSORBLINK, 1);
+ sWork->routineState = 1;
+ }
+ else if (JOY_NEW(R_BUTTON))
+ {
+ if (sWork->currentPage != UNION_ROOM_KB_PAGE_COUNT)
+ {
+ ToggleCaseOfLastCharacterInChatMessageBuffer();
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTMSG, 0);
+ sWork->routineState = 1;
+ }
+ else
+ {
+ GoToRoutine(CHATENTRYROUTINE_REGISTER);
+ }
+ }
+ else if (TypeChatMessage_HandleDPad())
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_MOVEKBCURSOR, 0);
+ sWork->routineState = 1;
+ }
+ break;
+ case 1:
+ var0 = RunDisplaySubtask(0);
+ var1 = RunDisplaySubtask(1);
+ if (!var0 && !var1)
+ sWork->routineState = 0;
+ break;
+ }
+}
+
+static void ChatEntryRoutine_Switch(void)
+{
+ s16 input;
+ bool32 shouldSwitchPages;
+
+ switch (sWork->routineState)
+ {
+ case 0:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_SHOWKBSWAPMENU, 0);
+ sWork->routineState++;
+ break;
+ case 1:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState++;
+ break;
+ case 2:
+ input = Menu_ProcessInput();
+ switch (input)
+ {
+ default:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_HIDEKBSWAPMENU, 0);
+ shouldSwitchPages = TRUE;
+ if (sWork->currentPage == input || input > UNION_ROOM_KB_PAGE_COUNT)
+ shouldSwitchPages = FALSE;
+ break;
+ case MENU_NOTHING_CHOSEN:
+ if (JOY_NEW(SELECT_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ Menu_MoveCursor(1);
+ }
+ return;
+ case MENU_B_PRESSED:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_HIDEKBSWAPMENU, 0);
+ sWork->routineState = 3;
+ return;
+ }
+
+ if (!shouldSwitchPages)
+ {
+ sWork->routineState = 3;
+ return;
+ }
+
+ sWork->currentCol = 0;
+ sWork->currentRow = 0;
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_SWITCHPAGES, 1);
+ sWork->currentPage = input;
+ sWork->routineState = 4;
+ break;
+ case 3:
+ // Wait Return To Prev Page
+ if (!RunDisplaySubtask(0))
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ case 4:
+ // Wait Page Switch
+ if (!RunDisplaySubtask(0) && !RunDisplaySubtask(1))
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ }
+}
+
+static void ChatEntryRoutine_AskQuitChatting(void)
+{
+ s8 input;
+
+ switch (sWork->routineState)
+ {
+ case 0:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_SHOWQUITCHATTINGDIALOG, 0);
+ sWork->routineState = 1;
+ break;
+ case 1:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState = 2;
+ break;
+ case 2:
+ input = UnionRoomChat_ProcessInput();
+ switch (input)
+ {
+ case -1:
+ case 1:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 3;
+ break;
+ case 0:
+ if (sWork->multiplayerId == 0)
+ {
+ PrepareSendBuffer_Disband(sWork->sendMessageBuffer);
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 9;
+ }
+ else
+ {
+ PrepareSendBuffer_Leave(sWork->sendMessageBuffer);
+ sWork->routineState = 4;
+ }
+ break;
+ }
+ break;
+ case 3:
+ if (!RunDisplaySubtask(0))
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ case 9:
+ if (!RunDisplaySubtask(0))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_SHOWCONFIRMLEADERLEAVEDIALOG, 0);
+ sWork->routineState = 10;
+ }
+ break;
+ case 10:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState = 8;
+ break;
+ case 8:
+ input = UnionRoomChat_ProcessInput();
+ switch (input)
+ {
+ case -1:
+ case 1:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 3;
+ break;
+ case 0:
+ sub_80FA4A8();
+ PrepareSendBuffer_Disband(sWork->sendMessageBuffer);
+ sWork->routineState = 4;
+ break;
+ }
+ break;
+ case 4:
+ if (IsLinkTaskFinished() && !GetRfuUnkCE8() && SendBlock(0, sWork->sendMessageBuffer, sizeof(sWork->sendMessageBuffer)))
+ {
+ if (sWork->multiplayerId == 0)
+ sWork->routineState = 6;
+ else
+ sWork->routineState = 5;
+ }
+ break;
+ case 5:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ GoToRoutine(CHATENTRYROUTINE_SAVEANDEXIT);
+ }
+ break;
+ }
+}
+
+static void ChatEntryRoutine_ExitChat(void)
+{
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (!FuncIsActiveTask(Task_ReceiveChatMessage))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState++;
+ }
+ break;
+ case 1:
+ if (!RunDisplaySubtask(0))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTEXITINGCHAT, 0);
+ sWork->routineState++;
+ }
+ break;
+ case 2:
+ if (!RunDisplaySubtask(0))
+ {
+ PrepareSendBuffer_Drop(sWork->sendMessageBuffer);
+ sWork->routineState++;
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished() && !GetRfuUnkCE8() && SendBlock(0, sWork->sendMessageBuffer, sizeof(sWork->sendMessageBuffer)))
+ sWork->routineState++;
+ break;
+ case 4:
+ if ((GetBlockReceivedStatus() & 1) && !GetRfuUnkCE8())
+ sWork->routineState++;
+ break;
+ case 5:
+ if (IsLinkTaskFinished() && !GetRfuUnkCE8())
+ {
+ sub_800AAC0();
+ sWork->exitDelayTimer = 0;
+ sWork->routineState++;
+ }
+ break;
+ case 6:
+ if (sWork->exitDelayTimer < 150)
+ sWork->exitDelayTimer++;
+
+ if (!gReceivedRemoteLinkPlayers)
+ sWork->routineState++;
+ break;
+ case 7:
+ if (sWork->exitDelayTimer >= 150)
+ GoToRoutine(CHATENTRYROUTINE_SAVEANDEXIT);
+ else
+ sWork->exitDelayTimer++;
+ break;
+ }
+}
+
+static void ChatEntryRoutine_Drop(void)
+{
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (!FuncIsActiveTask(Task_ReceiveChatMessage))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState++;
+ }
+ break;
+ case 1:
+ if (!RunDisplaySubtask(0) && IsLinkTaskFinished() && !GetRfuUnkCE8())
+ {
+ sub_800AAC0();
+ sWork->exitDelayTimer = 0;
+ sWork->routineState++;
+ }
+ break;
+ case 2:
+ if (sWork->exitDelayTimer < 150)
+ sWork->exitDelayTimer++;
+
+ if (!gReceivedRemoteLinkPlayers)
+ sWork->routineState++;
+ break;
+ case 3:
+ if (sWork->exitDelayTimer >= 150)
+ GoToRoutine(CHATENTRYROUTINE_SAVEANDEXIT);
+ else
+ sWork->exitDelayTimer++;
+ break;
+ }
+}
+
+static void ChatEntryRoutine_Disbanded(void)
+{
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (!FuncIsActiveTask(Task_ReceiveChatMessage))
+ {
+ if (sWork->multiplayerId)
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+
+ sWork->routineState++;
+ }
+ break;
+ case 1:
+ if (!RunDisplaySubtask(0))
+ {
+ if (sWork->multiplayerId != 0)
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTLEADERLEFT, 0);
+
+ sWork->routineState++;
+ }
+ break;
+ case 2:
+ if (RunDisplaySubtask(0) != TRUE && IsLinkTaskFinished() && !GetRfuUnkCE8())
+ {
+ sub_800AAC0();
+ sWork->exitDelayTimer = 0;
+ sWork->routineState++;
+ }
+ break;
+ case 3:
+ if (sWork->exitDelayTimer < 150)
+ sWork->exitDelayTimer++;
+
+ if (!gReceivedRemoteLinkPlayers)
+ sWork->routineState++;
+ break;
+ case 4:
+ if (sWork->exitDelayTimer >= 150)
+ GoToRoutine(CHATENTRYROUTINE_SAVEANDEXIT);
+ else
+ sWork->exitDelayTimer++;
+ break;
+ }
+}
+
+static void ChatEntryRoutine_SendMessage(void)
+{
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ }
+
+ PrepareSendBuffer_Chat(sWork->sendMessageBuffer);
+ sWork->routineState++;
+ // fall through
+ case 1:
+ if (IsLinkTaskFinished() == TRUE && !GetRfuUnkCE8() && SendBlock(0, sWork->sendMessageBuffer, sizeof(sWork->sendMessageBuffer)))
+ sWork->routineState++;
+ break;
+ case 2:
+ ResetMessageEntryBuffer();
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTMSG, 0);
+ sWork->routineState++;
+ break;
+ case 3:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState++;
+ break;
+ case 4:
+ if (IsLinkTaskFinished())
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ }
+}
+
+static void ChatEntryRoutine_Register(void)
+{
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (ChatMsgHasAtLeastOneCharcter())
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTREGISTERWHERE, 0);
+ sWork->routineState = 2;
+ }
+ else
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTINPUTTEXT, 0);
+ sWork->routineState = 5;
+ }
+ break;
+ case 1:
+ if (JOY_NEW(A_BUTTON))
+ {
+ RegisterTextAtRow();
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_RETURNTOKB, 0);
+ sWork->routineState = 3;
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_CANCELREGISTER, 0);
+ sWork->routineState = 4;
+ }
+ else if (TypeChatMessage_HandleDPad())
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_MOVEKBCURSOR, 0);
+ sWork->routineState = 2;
+ }
+ break;
+ case 2:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState = 1;
+ break;
+ case 3:
+ if (!RunDisplaySubtask(0))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_CANCELREGISTER, 0);
+ sWork->routineState = 4;
+ }
+ break;
+ case 4:
+ if (!RunDisplaySubtask(0))
+ GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT);
+ break;
+ case 5:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState = 6;
+ break;
+ case 6:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 4;
+ }
+ break;
+ }
+}
+
+static void ChatEntryRoutine_SaveAndExit(void)
+{
+ s8 input;
+
+ switch (sWork->routineState)
+ {
+ case 0:
+ if (!sWork->changedRegisteredTexts)
+ {
+ sWork->routineState = 12;
+ }
+ else
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 1;
+ }
+ break;
+ case 1:
+ if (!RunDisplaySubtask(0))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_ASKSAVE, 0);
+ sWork->routineState = 2;
+ }
+ break;
+ case 2:
+ input = UnionRoomChat_ProcessInput();
+ switch (input)
+ {
+ case -1:
+ case 1:
+ sWork->routineState = 12;
+ break;
+ case 0:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 3;
+ break;
+ }
+ break;
+ case 3:
+ if (!RunDisplaySubtask(0))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_ASKOVERWRITESAVE, 0);
+ sWork->routineState = 4;
+ }
+ break;
+ case 4:
+ if (!RunDisplaySubtask(0))
+ sWork->routineState = 5;
+ break;
+ case 5:
+ input = UnionRoomChat_ProcessInput();
+ switch (input)
+ {
+ case -1:
+ case 1:
+ sWork->routineState = 12;
+ break;
+ case 0:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0);
+ sWork->routineState = 6;
+ break;
+ }
+ break;
+ case 6:
+ if (!RunDisplaySubtask(0))
+ {
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTSAVING, 0);
+ SaveRegisteredTextsToSB1();
+ sWork->routineState = 7;
+ }
+ break;
+ case 7:
+ if (!RunDisplaySubtask(0))
+ {
+ SetContinueGameWarpStatusToDynamicWarp();
+ TrySavingData(SAVE_NORMAL);
+ sWork->routineState = 8;
+ }
+ break;
+ case 8:
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_PRINTSAVEDTHEGAME, 0);
+ sWork->routineState = 9;
+ break;
+ case 9:
+ if (!RunDisplaySubtask(0))
+ {
+ PlaySE(SE_SAVE);
+ ClearContinueGameWarpStatus2();
+ sWork->routineState = 10;
+ }
+ break;
+ case 10:
+ sWork->afterSaveTimer = 0;
+ sWork->routineState = 11;
+ break;
+ case 11:
+ sWork->afterSaveTimer++;
+ if (sWork->afterSaveTimer > 120)
+ sWork->routineState = 12;
+ break;
+ case 12:
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
+ sWork->routineState = 13;
+ break;
+ case 13:
+ if (!gPaletteFade.active)
+ {
+ sub_812B4B8();
+ UnionRoomChat_FreeGraphicsWork();
+ FreeChatWork();
+ SetMainCallback2(CB2_ReturnToField);
+ }
+ break;
+ }
+}
+
+static void GoToRoutine(u16 routineNo)
+{
+ sWork->routineNo = routineNo;
+ sWork->routineState = 0;
+}
+
+static bool32 TypeChatMessage_HandleDPad(void)
+{
+ do
+ {
+ if (JOY_REPT(DPAD_UP))
+ {
+ if (sWork->currentRow)
+ sWork->currentRow--;
+ else
+ sWork->currentRow = sKeyboardPageMaxRow[sWork->currentPage];
+
+ break;
+ }
+ if (JOY_REPT(DPAD_DOWN))
+ {
+ if (sWork->currentRow < sKeyboardPageMaxRow[sWork->currentPage])
+ {
+ sWork->currentRow++;
+ }
+ else
+ {
+ sWork->currentRow = 0;
+ }
+
+ break;
+ }
+ if (sWork->currentPage != UNION_ROOM_KB_PAGE_COUNT)
+ {
+ if (JOY_REPT(DPAD_LEFT))
+ {
+ if (sWork->currentCol)
+ sWork->currentCol--;
+ else
+ sWork->currentCol = 4;
+ break;
+ }
+ if (JOY_REPT(DPAD_RIGHT))
+ {
+ if (sWork->currentCol < 4)
+ sWork->currentCol++;
+ else
+ sWork->currentCol = 0;
+ break;
+ }
+ }
+
+ return FALSE;
+ } while (0);
+ return TRUE;
+}
+
+static void AppendCharacterToChatMessageBuffer(void)
+{
+ int i;
+ const u8 *charsStr;
+ int strLength;
+ u8 *str;
+ u8 buffer[21];
+
+ if (sWork->currentPage != UNION_ROOM_KB_PAGE_COUNT)
+ {
+ charsStr = gUnionRoomKeyboardText[sWork->currentPage][sWork->currentRow];
+ for (i = 0; i < sWork->currentCol; i++)
+ {
+ if (*charsStr == CHAR_EXTRA_EMOJI)
+ charsStr++;
+ charsStr++;
+ }
+
+ strLength = 1;
+ }
+ else
+ {
+ u8 *tempStr = StringCopy(buffer, sWork->registeredTexts[sWork->currentRow]);
+ tempStr[0] = CHAR_SPACE;
+ tempStr[1] = EOS;
+ charsStr = buffer;
+ strLength = StringLength_Multibyte(buffer);
+ }
+
+ sWork->lastBufferCursorPos = sWork->bufferCursorPos;
+ if (!charsStr)
+ return;
+
+ str = GetEndOfUnk1A();
+ while (--strLength != -1 && sWork->bufferCursorPos < MESSAGE_BUFFER_NCHAR)
+ {
+ if (*charsStr == CHAR_EXTRA_EMOJI)
+ {
+ *str = *charsStr;
+ charsStr++;
+ str++;
+ }
+
+ *str = *charsStr;
+ charsStr++;
+ str++;
+
+ sWork->bufferCursorPos++;
+ }
+
+ *str = EOS;
+}
+
+static void DeleteLastCharacterOfChatMessageBuffer(void)
+{
+ sWork->lastBufferCursorPos = sWork->bufferCursorPos;
+ if (sWork->bufferCursorPos)
+ {
+ u8 *str = GetPtrToLastCharOfUnk1A();
+ *str = EOS;
+ sWork->bufferCursorPos--;
+ }
+}
+
+static void ToggleCaseOfLastCharacterInChatMessageBuffer(void)
+{
+ u8 *str;
+ u8 character;
+
+ sWork->lastBufferCursorPos = sWork->bufferCursorPos - 1;
+ str = GetPtrToLastCharOfUnk1A();
+ if (*str != CHAR_EXTRA_EMOJI)
+ {
+ character = sCaseToggleTable[*str];
+ if (character)
+ *str = character;
+ }
+}
+
+static bool32 ChatMsgHasAtLeastOneCharcter(void)
+{
+ if (sWork->bufferCursorPos)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void RegisterTextAtRow(void)
+{
+ u8 *src = UnionRoomChat_GetEndOfMessageEntryBuffer();
+ StringCopy(sWork->registeredTexts[sWork->currentRow], src);
+ sWork->changedRegisteredTexts = TRUE;
+}
+
+static void ResetMessageEntryBuffer(void)
+{
+ sWork->messageEntryBuffer[0] = EOS;
+ sWork->lastBufferCursorPos = MESSAGE_BUFFER_NCHAR;
+ sWork->bufferCursorPos = 0;
+}
+
+static void SaveRegisteredTextsToSB1(void)
+{
+ int i;
+ for (i = 0; i < UNION_ROOM_KB_ROW_COUNT; i++)
+ StringCopy(gSaveBlock1Ptr->registeredTexts[i], sWork->registeredTexts[i]);
+}
+
+u8 *UnionRoomChat_GetWorkRegisteredText(int arg0)
+{
+ return sWork->registeredTexts[arg0];
+}
+
+static u8 *GetEndOfUnk1A(void)
+{
+ u8 *str = sWork->messageEntryBuffer;
+ while (*str != EOS)
+ str++;
+
+ return str;
+}
+
+static u8 *GetPtrToLastCharOfUnk1A(void)
+{
+ u8 *str = sWork->messageEntryBuffer;
+ u8 *str2 = str;
+ while (*str != EOS)
+ {
+ str2 = str;
+ if (*str == CHAR_EXTRA_EMOJI)
+ str++;
+ str++;
+ }
+
+ return str2;
+}
+
+static u16 GetNumCharsInMessageEntryBuffer(void)
+{
+ u8 *str;
+ u32 i, numChars, strLength;
+
+ strLength = StringLength_Multibyte(sWork->messageEntryBuffer);
+ str = sWork->messageEntryBuffer;
+ numChars = 0;
+ if (strLength > 10)
+ {
+ strLength -= 10;
+ for (i = 0; i < strLength; i++)
+ {
+ if (*str == CHAR_EXTRA_EMOJI)
+ str++;
+
+ str++;
+ numChars++;
+ }
+ }
+
+ return numChars;
+}
+
+static void PrepareSendBuffer_Null(u8 *arg0)
+{
+ arg0[0] = CHAT_MESSAGE_0;
+}
+
+static void PrepareSendBuffer_Join(u8 *arg0)
+{
+ arg0[0] = CHAT_MESSAGE_JOIN;
+ StringCopy(&arg0[1], gSaveBlock2Ptr->playerName);
+ arg0[1 + (PLAYER_NAME_LENGTH + 1)] = sWork->multiplayerId;
+}
+
+static void PrepareSendBuffer_Chat(u8 *arg0)
+{
+ arg0[0] = CHAT_MESSAGE_CHAT;
+ StringCopy(&arg0[1], gSaveBlock2Ptr->playerName);
+ StringCopy(&arg0[1 + (PLAYER_NAME_LENGTH + 1)], sWork->messageEntryBuffer);
+}
+
+static void PrepareSendBuffer_Leave(u8 *arg0)
+{
+ arg0[0] = CHAT_MESSAGE_LEAVE;
+ StringCopy(&arg0[1], gSaveBlock2Ptr->playerName);
+ arg0[1 + (PLAYER_NAME_LENGTH + 1)] = sWork->multiplayerId;
+ sub_80FB9D0();
+}
+
+static void PrepareSendBuffer_Drop(u8 *arg0)
+{
+ arg0[0] = CHAT_MESSAGE_DROP;
+ StringCopy(&arg0[1], gSaveBlock2Ptr->playerName);
+ arg0[1 + (PLAYER_NAME_LENGTH + 1)] = sWork->multiplayerId;
+}
+
+static void PrepareSendBuffer_Disband(u8 *arg0)
+{
+ arg0[0] = CHAT_MESSAGE_DISBAND;
+ StringCopy(&arg0[1], gSaveBlock2Ptr->playerName);
+ arg0[1 + (PLAYER_NAME_LENGTH + 1)] = sWork->multiplayerId;
+}
+
+static bool32 ProcessReceivedChatMessage(u8 *dest, u8 *recvMessage)
+{
+ u8 *tempStr;
+ u8 cmd = *recvMessage;
+ u8 *name = recvMessage + 1;
+ recvMessage = name;
+ recvMessage += PLAYER_NAME_LENGTH + 1;
+
+ switch (cmd)
+ {
+ case CHAT_MESSAGE_JOIN:
+ if (sWork->multiplayerId != name[PLAYER_NAME_LENGTH + 1])
+ {
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, name);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(dest, gText_F700JoinedChat);
+ return TRUE;
+ }
+ break;
+ case CHAT_MESSAGE_CHAT:
+ tempStr = StringCopy(dest, name);
+ *(tempStr++) = EXT_CTRL_CODE_BEGIN;
+ *(tempStr++) = EXT_CTRL_CODE_CLEAR_TO;
+ *(tempStr++) = 42;
+ *(tempStr++) = CHAR_COLON;
+ StringCopy(tempStr, recvMessage);
+ return TRUE;
+ case CHAT_MESSAGE_DISBAND:
+ StringCopy(sWork->hostName, name);
+ // fall through
+ case CHAT_MESSAGE_LEAVE:
+ if (sWork->multiplayerId != *recvMessage)
+ {
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, name);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(dest, gText_F700LeftChat);
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+u8 GetCurrentKeyboardPage(void)
+{
+ return sWork->currentPage;
+}
+
+void UnionRoomChat_GetCursorColAndRow(u8 *colp, u8 *rowp)
+{
+ *colp = sWork->currentCol;
+ *rowp = sWork->currentRow;
+}
+
+u8 *UnionRoomChat_GetMessageEntryBuffer(void)
+{
+ return sWork->messageEntryBuffer;
+}
+
+int UnionRoomChat_LenMessageEntryBuffer(void)
+{
+ u8 *str = UnionRoomChat_GetMessageEntryBuffer();
+ return StringLength_Multibyte(str);
+}
+
+void UnionRoomChat_GetBufferSelectionRegion(u32 *startp, u32 *diffp)
+{
+ int diff = sWork->bufferCursorPos - sWork->lastBufferCursorPos;
+ if (diff < 0)
+ {
+ diff *= -1;
+ *startp = sWork->bufferCursorPos;
+ }
+ else
+ {
+ *startp = sWork->lastBufferCursorPos;
+ }
+
+ *diffp = diff;
+}
+
+u8 *UnionRoomChat_GetEndOfMessageEntryBuffer(void)
+{
+ int i;
+ u16 numChars = GetNumCharsInMessageEntryBuffer();
+ u8 *str = sWork->messageEntryBuffer;
+ for (i = 0; i < numChars; i++)
+ {
+ if (*str == CHAR_EXTRA_EMOJI)
+ str++;
+
+ str++;
+ }
+
+ return str;
+}
+
+// Useless overhead
+u16 UnionRoomChat_GetNumCharsInMessageEntryBuffer(void)
+{
+ u16 count;
+ u32 i;
+ u16 numChars = GetNumCharsInMessageEntryBuffer();
+ u8 *str = sWork->messageEntryBuffer;
+ for (count = 0, i = 0; i < numChars; count++, i++)
+ {
+ if (*str == CHAR_EXTRA_EMOJI)
+ str++;
+
+ str++;
+ }
+
+ return count;
+}
+
+u8 *UnionRoomChat_GetLastReceivedMessage(void)
+{
+ return sWork->receivedMessage;
+}
+
+u16 UnionRoomChat_GetReceivedPlayerIndex(void)
+{
+ return sWork->receivedPlayerIndex;
+}
+
+int UnionRoomChat_GetMessageEntryCursorPosition(void)
+{
+ return sWork->bufferCursorPos;
+}
+
+// This probably does more in the Japanese titles.
+int UnionRoomChat_GetWhetherShouldShowCaseToggleIcon(void)
+{
+ u8 *str = GetPtrToLastCharOfUnk1A();
+ u32 character = *str;
+ if (character > 0xFF || sCaseToggleTable[character] == character || sCaseToggleTable[character] == 0)
+ return 3;
+ else
+ return 0;
+}
+
+u8 *UnionRoomChat_GetNameOfPlayerWhoDisbandedChat(void)
+{
+ return sWork->hostName;
+}
+
+void UnionRoomChat_InitializeRegisteredTexts(void)
+{
+ StringCopy(gSaveBlock1Ptr->registeredTexts[0], gText_Hello);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[1], gText_Pokemon2);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[2], gText_Trade);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[3], gText_Battle);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[4], gText_Lets);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[5], gText_Ok);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[6], gText_Sorry);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[7], gText_YaySmileEmoji);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[8], gText_ThankYou);
+ StringCopy(gSaveBlock1Ptr->registeredTexts[9], gText_ByeBye);
+}
+
+#define tState data[0]
+#define tI data[1]
+#define tCurrLinkPlayer data[2]
+#define tBlockReceivedStatus data[3]
+#define tLinkPlayerCount data[4]
+#define tNextState data[5]
+
+static void Task_ReceiveChatMessage(u8 taskId)
+{
+ u8 *buffer;
+ s16 *data = gTasks[taskId].data;
+
+ switch (tState)
+ {
+ case 0:
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ DestroyTask(taskId);
+ return;
+ }
+
+ tState = 1;
+ // fall through
+ case 1:
+ tLinkPlayerCount = GetLinkPlayerCount();
+ if (sWork->linkPlayerCount != tLinkPlayerCount)
+ {
+ tState = 2;
+ sWork->linkPlayerCount = tLinkPlayerCount;
+ return;
+ }
+
+ tBlockReceivedStatus = GetBlockReceivedStatus();
+ if (!tBlockReceivedStatus && GetRfuUnkCE8())
+ return;
+
+ tI = 0;
+ tState = 3;
+ // fall through
+ case 3:
+ // Idle listen
+ for (; tI < 5 && ((tBlockReceivedStatus >> tI) & 1) == 0; tI++)
+ ;
+
+ if (tI == 5)
+ {
+ tState = 1;
+ return;
+ }
+
+ tCurrLinkPlayer = tI;
+ ResetBlockReceivedFlag(tCurrLinkPlayer);
+ buffer = (u8 *)gBlockRecvBuffer[tI];
+ switch (buffer[0])
+ {
+ default:
+ case CHAT_MESSAGE_CHAT: tNextState = 3; break;
+ case CHAT_MESSAGE_JOIN: tNextState = 3; break;
+ case CHAT_MESSAGE_LEAVE: tNextState = 4; break;
+ case CHAT_MESSAGE_DROP: tNextState = 5; break;
+ case CHAT_MESSAGE_DISBAND: tNextState = 6; break;
+ }
+
+ if (ProcessReceivedChatMessage(sWork->receivedMessage, (u8 *)gBlockRecvBuffer[tI]))
+ {
+ sWork->receivedPlayerIndex = tI;
+ UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_SCROLLCHAT, 2);
+ tState = 7;
+ }
+ else
+ {
+ tState = tNextState;
+ }
+
+ tI++;
+ break;
+ case 7:
+ if (!RunDisplaySubtask(2))
+ tState = tNextState;
+ break;
+ case 4:
+ // Someone is leaving
+ if (sWork->multiplayerId == 0 && tCurrLinkPlayer != 0)
+ {
+ // You're the leader, and the person who left is not you
+ if (GetLinkPlayerCount() == 2)
+ {
+ sub_80FA4A8();
+ sWork->exitType = CHATEXIT_LEADER_LAST;
+ DestroyTask(taskId);
+ return;
+ }
+
+ sub_80FBD6C(tCurrLinkPlayer);
+ }
+
+ tState = 3;
+ break;
+ case 5:
+ // Person left
+ if (sWork->multiplayerId != 0)
+ sWork->exitType = CHATEXIT_DROPPED;
+
+ DestroyTask(taskId);
+ break;
+ case 6:
+ // The leader disbanded the chat
+ sWork->exitType = CHATEXIT_DISBANDED;
+ DestroyTask(taskId);
+ break;
+ case 2:
+ if (!GetRfuUnkCE8())
+ {
+ if (sWork->multiplayerId == 0)
+ sub_80FB030(sWork->linkPlayerCount);
+
+ tState = 1;
+ }
+ break;
+ }
+}
+
+#undef tNextState
+#undef tLinkPlayerCount
+#undef tBlockReceivedStatus
+#undef tCurrLinkPlayer
+#undef tI
+#undef tState
diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c
new file mode 100644
index 000000000..54aef8d65
--- /dev/null
+++ b/src/union_room_chat_display.c
@@ -0,0 +1,1339 @@
+#include "global.h"
+#include "gflib.h"
+#include "dynamic_placeholder_text_util.h"
+#include "graphics.h"
+#include "menu.h"
+#include "new_menu_helpers.h"
+#include "scanline_effect.h"
+#include "strings.h"
+#include "text_window.h"
+#include "union_room_chat.h"
+#include "union_room_chat_display.h"
+#include "union_room_chat_objects.h"
+
+#define STDMESSAGE_QUIT_CHATTING 0
+#define STDMESSAGE_REGISTER_WHERE 1
+#define STDMESSAGE_REGISTER_HERE 2
+#define STDMESSAGE_INPUT_TEXT 3
+#define STDMESSAGE_EXITING_CHAT 4
+#define STDMESSAGE_LEADER_LEFT 5
+#define STDMESSAGE_ASK_SAVE 6
+#define STDMESSAGE_ASK_OVERWRITE 7
+#define STDMESSAGE_SAVING_NO_OFF 8
+#define STDMESSAGE_SAVED_THE_GAME 9
+#define STDMESSAGE_WARN_LEADER_LEAVE 10
+
+struct UnionRoomChat2Subtask
+{
+ bool32 (*callback)(u8 *);
+ u8 active;
+ u8 state;
+};
+
+struct UnionRoomChat2
+{
+ struct UnionRoomChat2Subtask subtasks[3];
+ u16 yesNoMenuWinId;
+ u16 curLine;
+ u16 scrollCount;
+ u16 messageWindowId;
+ s16 bg1hofs;
+ u8 expandedPlaceholdersBuffer[0x106];
+ u8 bg0Buffer[BG_SCREEN_SIZE];
+ u8 bg1Buffer[BG_SCREEN_SIZE];
+ u8 bg3Buffer[BG_SCREEN_SIZE];
+ u8 bg2Buffer[BG_SCREEN_SIZE];
+ u8 unk2128[0x20];
+ u8 unk2148[0x20];
+};
+
+struct SubtaskInfo
+{
+ u16 idx;
+ bool32 (*callback)(u8 *);
+};
+
+struct MessageWindowInfo
+{
+ const u8 *text;
+ bool8 boxType;
+ u8 x;
+ u8 y;
+ u8 letterSpacing;
+ u8 lineSpacing;
+ bool8 expandPlaceholders;
+ bool8 widerBox;
+};
+
+static EWRAM_DATA struct UnionRoomChat2 * sWork = NULL;
+
+static void InitWork(struct UnionRoomChat2 * ptr);
+static void UnionRoomChat_ResetDisplaySubtasks(void);
+static bool32 DisplaySubtask_LoadGfx(u8 *state);
+static bool32 DisplaySubtask_PrintWin3(u8 *state);
+static bool32 DisplaySubtask_HideWin3(u8 *state);
+static bool32 DisplaySubtask_SwitchPages(u8 *state);
+static bool32 DisplaySubtask_MoveSelectorCursorObj(u8 *state);
+static bool32 DisplaySubtask_ShowQuitChattingDialog(u8 *state);
+static bool32 DisplaySubtask_HideQuitChattingDialog(u8 *state);
+static bool32 DisplaySubtask_UpdateMessageBuffer(u8 *state);
+static bool32 DisplaySubtask_PrintRegisterWhere(u8 *state);
+static bool32 DisplaySubtask_CancelRegister(u8 *state);
+static bool32 DisplaySubtask_ReturnToKeyboard(u8 *state);
+static bool32 DisplaySubtask_ScrollChat(u8 *state);
+static bool32 DisplaySubtask_AnimateSelectorCursorBlink(u8 *state);
+static bool32 DisplaySubtask_PrintInputText(u8 *state);
+static bool32 DisplaySubtask_PrintExitingChat(u8 *state);
+static bool32 DisplaySubtask_PrintLeaderLeft(u8 *state);
+static bool32 DisplaySubtask_AskSave(u8 *state);
+static bool32 DisplaySubtask_AskOverwriteSave(u8 *state);
+static bool32 DisplaySubtask_PrintSavingDontTurnOffPower(u8 *state);
+static bool32 DisplaySubtask_PrintSavedTheGame(u8 *state);
+static bool32 DisplaySubtask_ShowConfirmLeaderLeaveDialog(u8 *state);
+static bool32 DisplaySubtaskDummy(u8 *state);
+static void PlaceYesNoMenuAt(u8 a0, u8 a1, u8 a2);
+static void HideYesNoMenuWindow(void);
+static void DestroyYesNoMenuWindow(void);
+static void PlaceStdMessageWindow(int id, u16 bg0vofs);
+static void HideStdMessageWindow(void);
+static void DestroyStdMessageWindow(void);
+static void FillWin1Rect(u16 x, u16 width, u8 fillValue);
+static void PrintOnWin1Parameterized(u16 x, u8 *str, u8 bgColor, u8 fgColor, u8 shadowColor);
+static void PrintCurrentKeyboardPage(void);
+static bool32 AnimateMoveBg1Right(void);
+static bool32 AnimateMoveBg1Left(void);
+static void PrintKeyboardSwapTextsOnWin3(void);
+static void ClearWin3(void);
+static void PrintTextOnWin0Colorized(u16 row, u8 *str, u8 colorIdx);
+static void ResetGpuBgState(void);
+static void SetBgTilemapWorkBuffers(void);
+static void ClearBg0(void);
+static void LoadUnionRoomChatPanelGfx(void);
+static void LoadLinkMiscMenuGfx(void);
+static void LoadBg1Pal8(void);
+static void LoadWin0(void);
+static void LoadWin2(void);
+static void LoadWin1(void);
+static void LoadWin3(void);
+static void sub_812AD50(void);
+static void FillScanlineEffectWithValue1col(s16 a0);
+static void FillScanlineEffectWithValue2col(s16 a0);
+
+static const u16 sUnionRoomChatPanelBgPal_C[] = INCBIN_U16("graphics/union_room_chat/unk_845AA24.gbapal");
+static const u16 sBg1Pal8[] = INCBIN_U16("graphics/union_room_chat/unk_845AA44.gbapal");
+static const u16 sWin0PalF[] = INCBIN_U16("graphics/union_room_chat/unk_845AA64.gbapal");
+
+static const struct BgTemplate gUnknown_845AA84[] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 7,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x0000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x0000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 23,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x0000
+ }, {
+ .bg = 3,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 15,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x0001
+ }
+};
+
+static const struct WindowTemplate gUnknown_845AA94[] = {
+ {
+ .bg = 3,
+ .tilemapLeft = 8,
+ .tilemapTop = 1,
+ .width = 21,
+ .height = 19,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+ }, {
+ .bg = 1,
+ .tilemapLeft = 9,
+ .tilemapTop = 18,
+ .width = 15,
+ .height = 2,
+ .paletteNum = 12,
+ .baseBlock = 0x07a
+ }, {
+ .bg = 1,
+ .tilemapLeft = 0,
+ .tilemapTop = 2,
+ .width = 6,
+ .height = 15,
+ .paletteNum = 7,
+ .baseBlock = 0x020
+ }, {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 2,
+ .width = 7,
+ .height = 9,
+ .paletteNum = 14,
+ .baseBlock = 0x013
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const struct SubtaskInfo sSubtaskInfo[] = {
+ {CHATDISPLAYROUTINE_LOADGFX, DisplaySubtask_LoadGfx},
+ {CHATDISPLAYROUTINE_SHOWKBSWAPMENU, DisplaySubtask_PrintWin3},
+ {CHATDISPLAYROUTINE_HIDEKBSWAPMENU, DisplaySubtask_HideWin3},
+ {CHATDISPLAYROUTINE_SWITCHPAGES, DisplaySubtask_SwitchPages},
+ {CHATDISPLAYROUTINE_MOVEKBCURSOR, DisplaySubtask_MoveSelectorCursorObj},
+ {CHATDISPLAYROUTINE_SHOWQUITCHATTINGDIALOG, DisplaySubtask_ShowQuitChattingDialog},
+ {CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, DisplaySubtask_HideQuitChattingDialog},
+ {CHATDISPLAYROUTINE_PRINTMSG, DisplaySubtask_UpdateMessageBuffer},
+ {CHATDISPLAYROUTINE_PRINTREGISTERWHERE, DisplaySubtask_PrintRegisterWhere},
+ {CHATDISPLAYROUTINE_CANCELREGISTER, DisplaySubtask_CancelRegister},
+ {CHATDISPLAYROUTINE_RETURNTOKB, DisplaySubtask_ReturnToKeyboard},
+ {CHATDISPLAYROUTINE_SCROLLCHAT, DisplaySubtask_ScrollChat},
+ {CHATDISPLAYROUTINE_CURSORBLINK, DisplaySubtask_AnimateSelectorCursorBlink},
+ {CHATDISPLAYROUTINE_PRINTINPUTTEXT, DisplaySubtask_PrintInputText},
+ {CHATDISPLAYROUTINE_PRINTEXITINGCHAT, DisplaySubtask_PrintExitingChat},
+ {CHATDISPLAYROUTINE_PRINTLEADERLEFT, DisplaySubtask_PrintLeaderLeft},
+ {CHATDISPLAYROUTINE_ASKSAVE, DisplaySubtask_AskSave},
+ {CHATDISPLAYROUTINE_ASKOVERWRITESAVE, DisplaySubtask_AskOverwriteSave},
+ {CHATDISPLAYROUTINE_PRINTSAVING, DisplaySubtask_PrintSavingDontTurnOffPower},
+ {CHATDISPLAYROUTINE_PRINTSAVEDTHEGAME, DisplaySubtask_PrintSavedTheGame},
+ {CHATDISPLAYROUTINE_SHOWCONFIRMLEADERLEAVEDIALOG, DisplaySubtask_ShowConfirmLeaderLeaveDialog}
+};
+
+static const struct MessageWindowInfo sMessageWindowInfo[] = {
+
+ [STDMESSAGE_QUIT_CHATTING] = {
+ .text = gText_QuitChatting,
+ .boxType = 1,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = FALSE
+ },
+ [STDMESSAGE_REGISTER_WHERE] = {
+ .text = gText_RegisterTextWhere,
+ .boxType = 1,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = FALSE
+ },
+ [STDMESSAGE_REGISTER_HERE] = {
+ .text = gText_RegisterTextHere,
+ .boxType = 1,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = FALSE
+ },
+ [STDMESSAGE_INPUT_TEXT] = {
+ .text = gText_InputText,
+ .boxType = 1,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = FALSE
+ },
+ [STDMESSAGE_EXITING_CHAT] = {
+ .text = gText_ExitingTheChat,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = FALSE
+ },
+ [STDMESSAGE_LEADER_LEFT] = {
+ .text = gText_LeaderHasLeftEndingChat,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 0,
+ .lineSpacing = 2,
+ .expandPlaceholders = TRUE,
+ .widerBox = FALSE
+ },
+ [STDMESSAGE_ASK_SAVE] = {
+ .text = gText_RegisteredTextChanged_OKtoSave,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = TRUE
+ },
+ [STDMESSAGE_ASK_OVERWRITE] = {
+ .text = gText_RegisteredTextChanged_AlreadySavedFile,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = TRUE
+ },
+ [STDMESSAGE_SAVING_NO_OFF] = {
+ .text = gText_RegisteredTextChanged_SavingDontTurnOff,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = TRUE
+ },
+ [STDMESSAGE_SAVED_THE_GAME] = {
+ .text = gText_RegisteredTextChanged_SavedTheGame,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = TRUE,
+ .widerBox = TRUE
+ },
+ [STDMESSAGE_WARN_LEADER_LEAVE] = {
+ .text = gText_IfLeaderLeavesChatWillEnd,
+ .boxType = 2,
+ .x = 0,
+ .y = 0,
+ .letterSpacing = 1,
+ .lineSpacing = 2,
+ .expandPlaceholders = FALSE,
+ .widerBox = TRUE
+ }
+};
+
+static const u8 gText_Ellipsis[] = _("…");
+
+static const struct MenuAction sKeyboardSwapTexts[] = {
+ {gText_Upper},
+ {gText_Lower},
+ {gText_Symbols},
+ {gText_Register2},
+ {gText_Exit}
+};
+
+bool8 UnionRoomChat_TryAllocGraphicsWork(void)
+{
+ sWork = Alloc(sizeof(*sWork));
+ if (sWork && UnionRoomChat_TryAllocSpriteWork())
+ {
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_845AA84, NELEMS(gUnknown_845AA84));
+ InitWindows(gUnknown_845AA94);
+ ResetTempTileDataBuffers();
+ sub_812AD50();
+ InitWork(sWork);
+ UnionRoomChat_ResetDisplaySubtasks();
+ UnionRoomChat_StartDisplaySubtask(0, 0);
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool32 UnionRoomChat_RunDisplaySubtask0(void)
+{
+ return RunDisplaySubtask(0);
+}
+
+void UnionRoomChat_FreeGraphicsWork(void)
+{
+ UnionRoomChat_FreeSpriteWork();
+ if (sWork != NULL)
+ FREE_AND_SET_NULL(sWork);
+
+ FreeAllWindowBuffers();
+ gScanlineEffect.state = 3;
+}
+
+static void InitWork(struct UnionRoomChat2 *arg0)
+{
+ arg0->yesNoMenuWinId = 0xFF;
+ arg0->messageWindowId = 0xFF;
+ arg0->curLine = 0;
+}
+
+void UnionRoomChat_ResetDisplaySubtasks(void)
+{
+ int i;
+
+ if (sWork == NULL)
+ return;
+
+ for (i = 0; i < 3; i++)
+ {
+ sWork->subtasks[i].callback = DisplaySubtaskDummy;
+ sWork->subtasks[i].active = FALSE;
+ sWork->subtasks[i].state = 0;
+ }
+}
+
+void UnionRoomChat_RunDisplaySubtasks(void)
+{
+ int i;
+
+ if (sWork == NULL)
+ return;
+
+ for (i = 0; i < 3; i++)
+ {
+ if (sWork->subtasks[i].active)
+ sWork->subtasks[i].active = sWork->subtasks[i].callback(&sWork->subtasks[i].state);
+ }
+}
+
+void UnionRoomChat_StartDisplaySubtask(u16 arg0, u8 arg1)
+{
+ int i;
+
+ sWork->subtasks[arg1].callback = DisplaySubtaskDummy;
+ for (i = 0; i < NELEMS(sSubtaskInfo); i++)
+ {
+ if (sSubtaskInfo[i].idx == arg0)
+ {
+ sWork->subtasks[arg1].callback = sSubtaskInfo[i].callback;
+ sWork->subtasks[arg1].active = TRUE;
+ sWork->subtasks[arg1].state = 0;
+ break;
+ }
+ }
+}
+
+bool8 RunDisplaySubtask(u8 arg0)
+{
+ return sWork->subtasks[arg0].active;
+}
+
+static bool32 DisplaySubtask_LoadGfx(u8 *state)
+{
+ if (FreeTempTileDataBuffersIfPossible() == TRUE)
+ return TRUE;
+
+ switch (*state)
+ {
+ case 0:
+ ResetGpuBgState();
+ SetBgTilemapWorkBuffers();
+ break;
+ case 1:
+ ClearBg0();
+ break;
+ case 2:
+ LoadUnionRoomChatPanelGfx();
+ break;
+ case 3:
+ LoadLinkMiscMenuGfx();
+ break;
+ case 4:
+ LoadBg1Pal8();
+ break;
+ case 5:
+ LoadWin0();
+ LoadWin2();
+ LoadWin3();
+ LoadWin1();
+ break;
+ case 6:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ UnionRoomChat_CreateSelectorCursorObj();
+ UnionRoomChat_SpawnTextEntryPointerSprites();
+ CreatePageSwitchUISprites();
+ }
+ break;
+ default:
+ return FALSE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintWin3(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PrintKeyboardSwapTextsOnWin3();
+ CopyWindowToVram(3, 3);
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_HideWin3(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ ClearWin3();
+ CopyWindowToVram(3, 3);
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_SwitchPages(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ UnionRoomChat_ToggleSelectorCursorObjVisibility(TRUE);
+ if (AnimateMoveBg1Right())
+ return TRUE;
+
+ PrintCurrentKeyboardPage();
+ CopyWindowToVram(2, 2);
+ break;
+ case 1:
+ if (IsDma3ManagerBusyWithBgCopy())
+ return TRUE;
+ break;
+ case 2:
+ if (AnimateMoveBg1Left())
+ return TRUE;
+
+ UnionRoomChat_MoveSelectorCursorObj();
+ UnionRoomChat_ToggleSelectorCursorObjVisibility(FALSE);
+ UpdateVisibleUnionRoomChatIcon();
+ return FALSE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_MoveSelectorCursorObj(u8 *state)
+{
+ UnionRoomChat_MoveSelectorCursorObj();
+ return FALSE;
+}
+
+static bool32 DisplaySubtask_ShowQuitChattingDialog(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_QUIT_CHATTING, 0);
+ PlaceYesNoMenuAt(23, 11, 1);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_HideQuitChattingDialog(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ HideStdMessageWindow();
+ HideYesNoMenuWindow();
+ CopyBgTilemapBufferToVram(0);
+ break;
+ case 1:
+ if (IsDma3ManagerBusyWithBgCopy())
+ return TRUE;
+
+ DestroyStdMessageWindow();
+ DestroyYesNoMenuWindow();
+ return FALSE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_UpdateMessageBuffer(u8 *state)
+{
+ u32 start, length;
+ u8 *str;
+
+ switch (*state)
+ {
+ case 0:
+ UnionRoomChat_GetBufferSelectionRegion(&start, &length);
+ FillWin1Rect(start, length, PIXEL_FILL(0));
+ str = UnionRoomChat_GetMessageEntryBuffer();
+ PrintOnWin1Parameterized(0, str, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY);
+ CopyWindowToVram(1, 2);
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ UpdateVisibleUnionRoomChatIcon();
+ return FALSE;
+ }
+ return TRUE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintRegisterWhere(u8 *state)
+{
+ u16 var0;
+ u8 *str;
+ u16 length;
+
+ switch (*state)
+ {
+ case 0:
+ var0 = UnionRoomChat_GetNumCharsInMessageEntryBuffer();
+ str = UnionRoomChat_GetEndOfMessageEntryBuffer();
+ length = StringLength_Multibyte(str);
+ FillWin1Rect(var0, length, PIXEL_FILL(6));
+ PrintOnWin1Parameterized(var0, str, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED);
+ CopyWindowToVram(1, 2);
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PlaceStdMessageWindow(STDMESSAGE_REGISTER_WHERE, 16);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ }
+ else
+ {
+ return TRUE;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ UnionRoomChat_UpdateObjPalCycle(1);
+ else
+ return TRUE;
+ break;
+ case 3:
+ return FALSE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_CancelRegister(u8 *state)
+{
+ u16 x;
+ u8 *str;
+ u16 length;
+
+ switch (*state)
+ {
+ case 0:
+ x = UnionRoomChat_GetNumCharsInMessageEntryBuffer();
+ str = UnionRoomChat_GetEndOfMessageEntryBuffer();
+ length = StringLength_Multibyte(str);
+ FillWin1Rect(x, length, PIXEL_FILL(0));
+ PrintOnWin1Parameterized(x, str, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY);
+ CopyWindowToVram(1, 2);
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ HideStdMessageWindow();
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ }
+ else
+ {
+ return TRUE;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ UnionRoomChat_UpdateObjPalCycle(0);
+ DestroyStdMessageWindow();
+ }
+ else
+ {
+ return TRUE;
+ }
+ break;
+ case 3:
+ return FALSE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_ReturnToKeyboard(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PrintCurrentKeyboardPage();
+ CopyWindowToVram(2, 2);
+ (*state)++;
+ break;
+ case 1:
+ if (IsDma3ManagerBusyWithBgCopy())
+ return TRUE;
+ else
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_ScrollChat(u8 *state)
+{
+ u16 row;
+ u8 *str;
+ u8 colorIdx;
+
+ switch (*state)
+ {
+ case 0:
+ row = sWork->curLine;
+ str = UnionRoomChat_GetLastReceivedMessage();
+ colorIdx = UnionRoomChat_GetReceivedPlayerIndex();
+ PrintTextOnWin0Colorized(row, str, colorIdx);
+ CopyWindowToVram(0, 2);
+ break;
+ case 1:
+ if (IsDma3ManagerBusyWithBgCopy())
+ return TRUE;
+
+ if (sWork->curLine < 9)
+ {
+ sWork->curLine++;
+ *state = 4;
+ return FALSE;
+ }
+ else
+ {
+ sWork->scrollCount = 0;
+ (*state)++;
+ }
+ // fall through
+ case 2:
+ ScrollWindow(0, 0, 5, PIXEL_FILL(1));
+ CopyWindowToVram(0, 2);
+ sWork->scrollCount++;
+ (*state)++;
+ // fall through
+ case 3:
+ if (IsDma3ManagerBusyWithBgCopy())
+ return TRUE;
+
+ if (sWork->scrollCount < 3)
+ {
+ (*state)--;
+ return TRUE;
+ }
+ break;
+ case 4:
+ return FALSE;
+ default:
+ return TRUE;
+ }
+
+ (*state)++;
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_AnimateSelectorCursorBlink(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ UnionRoomChat_SetSelectorCursorClosedImage();
+ (*state)++;
+ break;
+ case 1:
+ return UnionRoomChat_AnimateSelectorCursorReopen();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintInputText(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_INPUT_TEXT, 16);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintExitingChat(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_EXITING_CHAT, 0);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintLeaderLeft(u8 *state)
+{
+ u8 *str;
+
+ switch (*state)
+ {
+ case 0:
+ DynamicPlaceholderTextUtil_Reset();
+ str = UnionRoomChat_GetNameOfPlayerWhoDisbandedChat();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str);
+ PlaceStdMessageWindow(STDMESSAGE_LEADER_LEFT, 0);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_AskSave(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_ASK_SAVE, 0);
+ PlaceYesNoMenuAt(23, 10, 1);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_AskOverwriteSave(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_ASK_OVERWRITE, 0);
+ PlaceYesNoMenuAt(23, 10, 1);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintSavingDontTurnOffPower(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_SAVING_NO_OFF, 0);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_PrintSavedTheGame(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
+ PlaceStdMessageWindow(STDMESSAGE_SAVED_THE_GAME, 0);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtask_ShowConfirmLeaderLeaveDialog(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ PlaceStdMessageWindow(STDMESSAGE_WARN_LEADER_LEAVE, 0);
+ PlaceYesNoMenuAt(23, 10, 1);
+ CopyWindowToVram(sWork->messageWindowId, 3);
+ (*state)++;
+ break;
+ case 1:
+ return IsDma3ManagerBusyWithBgCopy();
+ }
+
+ return TRUE;
+}
+
+static bool32 DisplaySubtaskDummy(u8 *arg0)
+{
+ return FALSE;
+}
+
+static void PlaceYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos)
+{
+ struct WindowTemplate template;
+ template.bg = 0;
+ template.tilemapLeft = left;
+ template.tilemapTop = top;
+ template.width = 6;
+ template.height = 4;
+ template.paletteNum = 14;
+ template.baseBlock = 0x052;
+ sWork->yesNoMenuWinId = AddWindow(&template);
+ if (sWork->yesNoMenuWinId != 0xFF)
+ {
+ FillWindowPixelBuffer(sWork->yesNoMenuWinId, PIXEL_FILL(1));
+ PutWindowTilemap(sWork->yesNoMenuWinId);
+ AddTextPrinterParameterized(sWork->yesNoMenuWinId, 2, gText_Yes, 8, 2, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(sWork->yesNoMenuWinId, 2, gText_No, 8, 16, TEXT_SPEED_FF, NULL);
+ DrawTextBorderOuter(sWork->yesNoMenuWinId, 1, 13);
+ Menu_InitCursor(sWork->yesNoMenuWinId, 2, 0, 2, 14, 2, initialCursorPos);
+ }
+}
+
+static void HideYesNoMenuWindow(void)
+{
+ if (sWork->yesNoMenuWinId != 0xFF)
+ {
+ ClearStdWindowAndFrameToTransparent(sWork->yesNoMenuWinId, FALSE);
+ ClearWindowTilemap(sWork->yesNoMenuWinId);
+ }
+}
+
+static void DestroyYesNoMenuWindow(void)
+{
+ if (sWork->yesNoMenuWinId != 0xFF)
+ {
+ RemoveWindow(sWork->yesNoMenuWinId);
+ sWork->yesNoMenuWinId = 0xFF;
+ }
+}
+
+s8 UnionRoomChat_ProcessInput(void)
+{
+ return Menu_ProcessInput();
+}
+
+static void PlaceStdMessageWindow(int id, u16 bg0vofs)
+{
+ const u8 *str;
+ int windowId;
+ struct WindowTemplate template;
+ template.bg = 0;
+ template.tilemapLeft = 8;
+ template.tilemapTop = 16;
+ template.width = 21;
+ template.height = 4;
+ template.paletteNum = 14;
+ template.baseBlock = 0x06A;
+ if (sMessageWindowInfo[id].widerBox)
+ {
+ template.tilemapLeft -= 7;
+ template.width += 7;
+ }
+
+ sWork->messageWindowId = AddWindow(&template);
+ windowId = sWork->messageWindowId;
+ if (sWork->messageWindowId == 0xFF)
+ return;
+
+ if (sMessageWindowInfo[id].expandPlaceholders)
+ {
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(sWork->expandedPlaceholdersBuffer, sMessageWindowInfo[id].text);
+ str = sWork->expandedPlaceholdersBuffer;
+ }
+ else
+ {
+ str = sMessageWindowInfo[id].text;
+ }
+
+ ChangeBgY(0, bg0vofs * 256, 0);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ PutWindowTilemap(windowId);
+ if (sMessageWindowInfo[id].boxType == 1)
+ {
+ DrawTextBorderInner(windowId, 0xA, 2);
+ AddTextPrinterParameterized5(
+ windowId,
+ 2,
+ str,
+ sMessageWindowInfo[id].x + 8,
+ sMessageWindowInfo[id].y + 8,
+ TEXT_SPEED_FF,
+ NULL,
+ sMessageWindowInfo[id].letterSpacing,
+ sMessageWindowInfo[id].lineSpacing);
+ }
+ else
+ {
+ DrawTextBorderOuter(windowId, 0xA, 2);
+ AddTextPrinterParameterized5(
+ windowId,
+ 2,
+ str,
+ sMessageWindowInfo[id].x,
+ sMessageWindowInfo[id].y,
+ TEXT_SPEED_FF,
+ NULL,
+ sMessageWindowInfo[id].letterSpacing,
+ sMessageWindowInfo[id].lineSpacing);
+ }
+
+ sWork->messageWindowId = windowId;
+}
+
+static void HideStdMessageWindow(void)
+{
+ if (sWork->messageWindowId != 0xFF)
+ {
+ ClearStdWindowAndFrameToTransparent(sWork->messageWindowId, FALSE);
+ ClearWindowTilemap(sWork->messageWindowId);
+ }
+
+ ChangeBgY(0, 0, 0);
+}
+
+static void DestroyStdMessageWindow(void)
+{
+ if (sWork->messageWindowId != 0xFF)
+ {
+ RemoveWindow(sWork->messageWindowId);
+ sWork->messageWindowId = 0xFF;
+ }
+}
+
+static void FillWin1Rect(u16 x, u16 width, u8 fillValue)
+{
+ FillWindowPixelRect(1, fillValue, x * 8, 1, width * 8, 14);
+}
+
+static void PrintOnWin1Parameterized(u16 x, u8 *str, u8 bgColor, u8 fgColor, u8 shadowColor)
+{
+ u8 color[3];
+ u8 strbuf[35];
+
+ if (bgColor != TEXT_COLOR_TRANSPARENT)
+ FillWin1Rect(x, UnionRoomChat_GetMessageEntryCursorPosition() - x, bgColor);
+
+ color[0] = bgColor;
+ color[1] = fgColor;
+ color[2] = shadowColor;
+ strbuf[0] = EXT_CTRL_CODE_BEGIN;
+ strbuf[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING;
+ strbuf[2] = 8;
+ StringCopy(&strbuf[3], str);
+ AddTextPrinterParameterized3(1, 2, x * 8, 1, color, TEXT_SPEED_FF, strbuf);
+}
+
+static void PrintCurrentKeyboardPage(void)
+{
+ u8 page;
+ int i;
+ u16 left;
+ u16 top;
+ u8 color[3];
+ u8 str[45];
+ u8 *str2;
+
+ FillWindowPixelBuffer(2, PIXEL_FILL(15));
+ page = GetCurrentKeyboardPage();
+ color[0] = TEXT_COLOR_TRANSPARENT;
+ color[1] = TEXT_DYNAMIC_COLOR_5;
+ color[2] = TEXT_DYNAMIC_COLOR_4;
+ if (page != UNION_ROOM_KB_PAGE_COUNT)
+ {
+ str[0] = EXT_CTRL_CODE_BEGIN;
+ str[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING;
+ str[2] = 8;
+
+ if (page == UNION_ROOM_KB_PAGE_EMOJI)
+ left = 6;
+ else
+ left = 8;
+ for (i = 0, top = 0; i < UNION_ROOM_KB_ROW_COUNT; i++, top += 12)
+ {
+ if (!gUnionRoomKeyboardText[page][i])
+ return;
+
+ StringCopy(&str[3], gUnionRoomKeyboardText[page][i]);
+ AddTextPrinterParameterized3(2, 0, left, top, color, TEXT_SPEED_FF, str);
+ }
+ }
+ else
+ {
+ left = 4;
+ for (i = 0, top = 0; i < 10; i++, top += 12)
+ {
+ str2 = UnionRoomChat_GetWorkRegisteredText(i);
+ if (GetStringWidth(0, str2, 0) <= 40)
+ {
+ AddTextPrinterParameterized3(2, 0, left, top, color, TEXT_SPEED_FF, str2);
+ }
+ else
+ {
+ int length = StringLength_Multibyte(str2);
+ do
+ {
+ length--;
+ StringCopyN_Multibyte(str, str2, length);
+ } while (GetStringWidth(0, str, 0) > 35);
+
+ AddTextPrinterParameterized3(2, 0, left, top, color, TEXT_SPEED_FF, str);
+ AddTextPrinterParameterized3(2, 0, left + 35, top, color, TEXT_SPEED_FF, gText_Ellipsis);
+ }
+ }
+ }
+}
+
+static bool32 AnimateMoveBg1Right(void)
+{
+ if (sWork->bg1hofs < 56)
+ {
+ sWork->bg1hofs += 12;
+ if (sWork->bg1hofs >= 56)
+ sWork->bg1hofs = 56;
+
+ if (sWork->bg1hofs < 56)
+ {
+ FillScanlineEffectWithValue1col(sWork->bg1hofs);
+ return TRUE;
+ }
+ }
+
+ FillScanlineEffectWithValue2col(sWork->bg1hofs);
+ return FALSE;
+}
+
+static bool32 AnimateMoveBg1Left(void)
+{
+ if (sWork->bg1hofs > 0)
+ {
+ sWork->bg1hofs -= 12;
+ if (sWork->bg1hofs <= 0)
+ sWork->bg1hofs = 0;
+
+ if (sWork->bg1hofs > 0)
+ {
+ FillScanlineEffectWithValue1col(sWork->bg1hofs);
+ return TRUE;
+ }
+ }
+
+ FillScanlineEffectWithValue2col(sWork->bg1hofs);
+ return FALSE;
+}
+
+static void PrintKeyboardSwapTextsOnWin3(void)
+{
+ FillWindowPixelBuffer(3, PIXEL_FILL(1));
+ DrawTextBorderOuter(3, 1, 13);
+ UnionRoomAndTradeMenuPrintOptions(3, 2, 14, 5, sKeyboardSwapTexts);
+ Menu_InitCursor(3, 2, 0, 0, 14, 5, GetCurrentKeyboardPage());
+ PutWindowTilemap(3);
+}
+
+static void ClearWin3(void)
+{
+ ClearStdWindowAndFrameToTransparent(3, FALSE);
+ ClearWindowTilemap(3);
+}
+
+static void PrintTextOnWin0Colorized(u16 row, u8 *str, u8 colorIdx)
+// colorIdx: 0 = grey, 1 = red, 2 = green, 3 = blue
+{
+ u8 color[3];
+ color[0] = TEXT_COLOR_WHITE;
+ color[1] = colorIdx * 2 + 2;
+ color[2] = colorIdx * 2 + 3;
+ FillWindowPixelRect(0, PIXEL_FILL(1), 0, row * 15, 168, 15);
+ AddTextPrinterParameterized3(0, 2, 0, row * 15, color, TEXT_SPEED_FF, str);
+}
+
+static void ResetGpuBgState(void)
+{
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(64, 240));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 144));
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG2 | WININ_WIN0_BG3
+ | WININ_WIN0_OBJ | WININ_WIN0_CLR);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
+}
+
+static void SetBgTilemapWorkBuffers(void)
+{
+ SetBgTilemapBuffer(0, sWork->bg0Buffer);
+ SetBgTilemapBuffer(1, sWork->bg1Buffer);
+ SetBgTilemapBuffer(3, sWork->bg3Buffer);
+ SetBgTilemapBuffer(2, sWork->bg2Buffer);
+}
+
+static void ClearBg0(void)
+{
+ RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, 1);
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
+ CopyBgTilemapBufferToVram(0);
+}
+
+static void LoadUnionRoomChatPanelGfx(void)
+{
+ LoadPalette(gUnionRoomChatPanelBgPal_7, 0x70, 0x20);
+ LoadPalette(sUnionRoomChatPanelBgPal_C, 0xC0, 0x20);
+ DecompressAndCopyTileDataToVram(1, gUnionRoomChatPanelBgTiles, 0, 0, 0);
+ CopyToBgTilemapBuffer(1, gUnionRoomChatPanelBgMap, 0, 0);
+ CopyBgTilemapBufferToVram(1);
+}
+
+static void LoadLinkMiscMenuGfx(void)
+{
+ u8 *ptr;
+
+ LoadPalette(gLinkMiscMenu_Pal, 0, 0x20);
+ ptr = DecompressAndCopyTileDataToVram(2, gLinkMiscMenu_Gfx, 0, 0, 0);
+ CopyToBgTilemapBuffer(2, gLinkMiscMenu_Tilemap, 0, 0);
+ CopyBgTilemapBufferToVram(2);
+}
+
+static void LoadBg1Pal8(void)
+{
+ LoadPalette(sBg1Pal8, 0x80, 0x20);
+ RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1);
+}
+
+static void LoadWin0(void)
+{
+ LoadPalette(sWin0PalF, 0xF0, 0x20);
+ PutWindowTilemap(0);
+ FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ CopyWindowToVram(0, 3);
+}
+
+static void LoadWin2(void)
+{
+ PutWindowTilemap(2);
+ PrintCurrentKeyboardPage();
+ CopyWindowToVram(2, 3);
+}
+
+static void LoadWin1(void)
+{
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ PutWindowTilemap(1);
+ CopyWindowToVram(1, 3);
+}
+
+static void LoadWin3(void)
+{
+ FillWindowPixelBuffer(3, PIXEL_FILL(1));
+ TextWindow_SetUserSelectedFrame(3, 1, 0xD0);
+ TextWindow_SetStdFrame0_WithPal(3, 0xA, 0x20);
+ LoadPalette(gTMCaseMainWindowPalette, 0xE0, 0x20);
+}
+
+static void sub_812AD50(void)
+{
+ struct ScanlineEffectParams params;
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.dmaDest = &REG_BG1HOFS;
+ params.initState = 1;
+ params.unused9 = 0;
+ sWork->bg1hofs = 0;
+ CpuFastFill(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
+ ScanlineEffect_SetParams(params);
+}
+
+static void FillScanlineEffectWithValue1col(s16 arg0)
+{
+ CpuFill16(arg0, gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], 0x120);
+ CpuFill16(0, gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer] + 0x90, 0x20);
+}
+
+static void FillScanlineEffectWithValue2col(s16 arg0)
+{
+ CpuFill16(arg0, gScanlineEffectRegBuffers[0], 0x120);
+ CpuFill16(0, gScanlineEffectRegBuffers[0] + 0x90, 0x20);
+ CpuFill16(arg0, gScanlineEffectRegBuffers[0] + 0x3C0, 0x120);
+ CpuFill16(0, gScanlineEffectRegBuffers[0] + 0x450, 0x20);
+}
diff --git a/src/union_room_chat_objects.c b/src/union_room_chat_objects.c
new file mode 100644
index 000000000..f97136a0a
--- /dev/null
+++ b/src/union_room_chat_objects.c
@@ -0,0 +1,318 @@
+#include "global.h"
+#include "gflib.h"
+#include "decompress.h"
+#include "graphics.h"
+#include "union_room_chat.h"
+
+struct UnionRoomChat3
+{
+ struct Sprite *selectorCursorSprite;
+ struct Sprite *characterSelectCursorSprite;
+ struct Sprite *textEntryCursorSprite;
+ struct Sprite *rButtonSprite;
+ struct Sprite *chatIconsSprite;
+ u16 cursorBlinkTimer;
+};
+
+static EWRAM_DATA struct UnionRoomChat3 *sWork = NULL;
+
+static void SpriteCB_TextEntryCursor(struct Sprite * sprite);
+static void SpriteCB_CharacterSelectCursor(struct Sprite * sprite);
+
+static const u16 sUnionRoomChatInterfacePal[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal");
+static const u32 sSelectorCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz");
+static const u32 sHorizontalBarGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz");
+static const u32 sMenuCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz");
+static const u32 sRButtonGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz");
+
+static const struct CompressedSpriteSheet sSpriteSheets[] = {
+ {sSelectorCursorGfxTiles, 0x1000, 0},
+ {sMenuCursorGfxTiles, 0x0040, 1},
+ {sHorizontalBarGfxTiles, 0x0040, 2},
+ {sRButtonGfxTiles, 0x0080, 3},
+ {gUnionRoomChatIcons, 0x0400, 4}
+};
+
+static const struct SpritePalette sSpritePalette = {
+ sUnionRoomChatInterfacePal, 0
+};
+
+static const struct OamData sOamData_64x32_1 = {
+ .shape = SPRITE_SHAPE(64x32),
+ .size = SPRITE_SIZE(64x32),
+ .priority = 1
+};
+
+static const union AnimCmd sAnim_CursorSmallOpen[] = {
+ ANIMCMD_FRAME(0x00, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnim_CursorSmallClosed[] = {
+ ANIMCMD_FRAME(0x20, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnim_CursorLargeOpen[] = {
+ ANIMCMD_FRAME(0x40, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnim_CursorLargeClosed[] = {
+ ANIMCMD_FRAME(0x60, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnims_SelectorCursor[] = {
+ sAnim_CursorSmallOpen,
+ sAnim_CursorSmallClosed,
+ sAnim_CursorLargeOpen,
+ sAnim_CursorLargeClosed
+};
+
+static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = {
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &sOamData_64x32_1,
+ .anims = sSpriteAnims_SelectorCursor,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct OamData sOamData_8x16_2 = {
+ .shape = SPRITE_SHAPE(8x16),
+ .size = SPRITE_SIZE(8x16),
+ .priority = 2
+};
+
+static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = {
+ .tileTag = 2,
+ .paletteTag = 0,
+ .oam = &sOamData_8x16_2,
+ .anims = gDummySpriteAnimTable,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_TextEntryCursor
+};
+
+static const struct SpriteTemplate sSpriteTemplate_CharacterSelectCursor = {
+ .tileTag = 1,
+ .paletteTag = 0,
+ .oam = &sOamData_8x16_2,
+ .anims = gDummySpriteAnimTable,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_CharacterSelectCursor
+};
+
+static const struct OamData sOamData_16x16_2 = {
+ .shape = SPRITE_SHAPE(16x16),
+ .size = SPRITE_SIZE(16x16),
+ .priority = 2
+};
+
+static const struct OamData sOamData_32x16_2 = {
+ .shape = SPRITE_SHAPE(32x16),
+ .size = SPRITE_SIZE(32x16),
+ .priority = 2
+};
+
+static const union AnimCmd sAnim_UnionRoomChatIcons_ToggleCase[] = {
+ ANIMCMD_FRAME(0x00, 2),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnim_UnionRoomChatIcons_Dummy1[] = {
+ ANIMCMD_FRAME(0x08, 2),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnim_UnionRoomChatIcons_Dummy2[] = {
+ ANIMCMD_FRAME(0x10, 2),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnim_UnionRoomChatIcons_Register[] = {
+ ANIMCMD_FRAME(0x18, 2),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_UnionRoomChatIcons[] = {
+ sAnim_UnionRoomChatIcons_ToggleCase,
+ sAnim_UnionRoomChatIcons_Dummy1,
+ sAnim_UnionRoomChatIcons_Dummy2,
+ sAnim_UnionRoomChatIcons_Register
+};
+
+static const struct SpriteTemplate sSpriteTemplate_RButton = {
+ .tileTag = 3,
+ .paletteTag = 0,
+ .oam = &sOamData_16x16_2,
+ .anims = gDummySpriteAnimTable,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate sSpriteTemplate_UnionRoomChatIcons = {
+ .tileTag = 4,
+ .paletteTag = 0,
+ .oam = &sOamData_32x16_2,
+ .anims = sSpriteAnimTable_UnionRoomChatIcons,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+bool32 UnionRoomChat_TryAllocSpriteWork(void)
+{
+ int i;
+ for (i = 0; i < NELEMS(sSpriteSheets); i++)
+ LoadCompressedSpriteSheet(&sSpriteSheets[i]);
+
+ LoadSpritePalette(&sSpritePalette);
+ sWork = Alloc(sizeof(struct UnionRoomChat3));
+ if (sWork == NULL)
+ return FALSE;
+
+ return TRUE;
+}
+
+void UnionRoomChat_FreeSpriteWork(void)
+{
+ if (sWork != NULL)
+ Free(sWork);
+}
+
+void UnionRoomChat_CreateSelectorCursorObj(void)
+{
+ u8 spriteId = CreateSprite(&sSpriteTemplate_SelectorCursor, 10, 24, 0);
+ sWork->selectorCursorSprite = &gSprites[spriteId];
+}
+
+void UnionRoomChat_ToggleSelectorCursorObjVisibility(bool32 invisible)
+{
+ sWork->selectorCursorSprite->invisible = invisible;
+}
+
+void UnionRoomChat_MoveSelectorCursorObj(void)
+{
+ u8 x, y;
+ u8 page = GetCurrentKeyboardPage();
+ UnionRoomChat_GetCursorColAndRow(&x, &y);
+ if (page != UNION_ROOM_KB_PAGE_COUNT)
+ {
+ StartSpriteAnim(sWork->selectorCursorSprite, 0);
+ sWork->selectorCursorSprite->pos1.x = x * 8 + 10;
+ sWork->selectorCursorSprite->pos1.y = y * 12 + 24;
+ }
+ else
+ {
+ StartSpriteAnim(sWork->selectorCursorSprite, 2);
+ sWork->selectorCursorSprite->pos1.x = 24;
+ sWork->selectorCursorSprite->pos1.y = y * 12 + 24;
+ }
+}
+
+void UnionRoomChat_UpdateObjPalCycle(int arg0)
+{
+ const u16 *palette = &sUnionRoomChatInterfacePal[arg0 * 2 + 1];
+ u8 index = IndexOfSpritePaletteTag(0);
+ LoadPalette(palette, index * 16 + 0x101, 4);
+}
+
+void UnionRoomChat_SetSelectorCursorClosedImage(void)
+{
+ if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT)
+ StartSpriteAnim(sWork->selectorCursorSprite, 1);
+ else
+ StartSpriteAnim(sWork->selectorCursorSprite, 3);
+
+ sWork->cursorBlinkTimer = 0;
+}
+
+bool32 UnionRoomChat_AnimateSelectorCursorReopen(void)
+{
+ if (sWork->cursorBlinkTimer > 3)
+ return FALSE;
+
+ if (++sWork->cursorBlinkTimer > 3)
+ {
+ if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT)
+ StartSpriteAnim(sWork->selectorCursorSprite, 0);
+ else
+ StartSpriteAnim(sWork->selectorCursorSprite, 2);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void UnionRoomChat_SpawnTextEntryPointerSprites(void)
+{
+ u8 spriteId = CreateSprite(&sSpriteTemplate_TextEntryCursor, 76, 152, 2);
+ sWork->textEntryCursorSprite = &gSprites[spriteId];
+ spriteId = CreateSprite(&sSpriteTemplate_CharacterSelectCursor, 64, 152, 1);
+ sWork->characterSelectCursorSprite = &gSprites[spriteId];
+}
+
+static void SpriteCB_TextEntryCursor(struct Sprite *sprite)
+{
+ int var0 = UnionRoomChat_GetMessageEntryCursorPosition();
+ if (var0 == 15)
+ {
+ sprite->invisible = TRUE;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ sprite->pos1.x = var0 * 8 + 76;
+ }
+}
+
+static void SpriteCB_CharacterSelectCursor(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 4)
+ {
+ sprite->data[0] = 0;
+ if (++sprite->pos2.x > 4)
+ sprite->pos2.x = 0;
+ }
+}
+
+void CreatePageSwitchUISprites(void)
+{
+ u8 spriteId = CreateSprite(&sSpriteTemplate_RButton, 8, 152, 3);
+ sWork->rButtonSprite = &gSprites[spriteId];
+ spriteId = CreateSprite(&sSpriteTemplate_UnionRoomChatIcons, 32, 152, 4);
+ sWork->chatIconsSprite = &gSprites[spriteId];
+ sWork->chatIconsSprite->invisible = TRUE;
+}
+
+void UpdateVisibleUnionRoomChatIcon(void)
+{
+ if (GetCurrentKeyboardPage() == UNION_ROOM_KB_PAGE_COUNT)
+ {
+ if (UnionRoomChat_LenMessageEntryBuffer() != 0)
+ {
+ // REGISTER
+ sWork->chatIconsSprite->invisible = FALSE;
+ StartSpriteAnim(sWork->chatIconsSprite, 3);
+ }
+ else
+ {
+ sWork->chatIconsSprite->invisible = TRUE;
+ }
+ }
+ else
+ {
+ int anim = UnionRoomChat_GetWhetherShouldShowCaseToggleIcon();
+ if (anim == 3)
+ {
+ sWork->chatIconsSprite->invisible = TRUE;
+ }
+ else
+ {
+ // A <--> a
+ sWork->chatIconsSprite->invisible = FALSE;
+ StartSpriteAnim(sWork->chatIconsSprite, anim);
+ }
+ }
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 3ab110c7b..b9b7063d0 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -369,17 +369,12 @@ gUnknown_203B098: @ 203B098
.align 2
.include "src/party_menu.o"
-
.align 2
-gUnknown_203B0E0: @ 203B0E0
- .space 0x4
-
-gUnknown_203B0E4: @ 203B0E4
- .space 0x4
-
-gUnknown_203B0E8: @ 203B0E8
- .space 0x4
-
+ .include "src/union_room_chat.o"
+ .align 2
+ .include "src/union_room_chat_display.o"
+ .align 2
+ .include "src/union_room_chat_objects.o"
.align 2
.include "src/help_system_812B1E0.o"
.align 2