summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-01-23 10:24:11 -0500
committerGitHub <noreply@github.com>2020-01-23 10:24:11 -0500
commita01d83a4341cd0cdad01fe2d0b96920301257f2a (patch)
treeac4f4ce6086d4664ea49d515759a8044ecd1d973
parente7cd8c59f4ca0f6c56a3b3782c21e896c203694e (diff)
parent91099dbd0c451188742bf045a26a036e0e8d9f89 (diff)
Merge branch 'master' into sync-ai
-rw-r--r--asm/cable_club.s28
-rw-r--r--asm/event_object_80688E4.s8
-rw-r--r--asm/event_object_movement.s8
-rw-r--r--asm/field_control_avatar.s12
-rw-r--r--asm/field_player_avatar.s6
-rw-r--r--asm/field_weather.s6
-rw-r--r--asm/item_menu.s7021
-rw-r--r--asm/macros/event.inc7
-rw-r--r--asm/overworld.s46
-rw-r--r--asm/pokemon_storage_system.s6
-rw-r--r--asm/script_movement.s2
-rw-r--r--asm/union_room.s11147
-rw-r--r--asm/union_room_player_avatar.s2064
-rw-r--r--data/event_scripts.s797
-rw-r--r--data/graphics.s8
-rw-r--r--data/item_menu.s116
-rw-r--r--data/layouts/FuchsiaCity_SafariZone_Office/border.bin (renamed from data/layouts/FuchsiaCity_Building1/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/FuchsiaCity_SafariZone_Office/map.bin (renamed from data/layouts/FuchsiaCity_ZooBuilding/map.bin)0
-rw-r--r--data/layouts/FuchsiaCity_WardensHouse/border.bin (renamed from data/layouts/FuchsiaCity_ZooBuilding/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/FuchsiaCity_WardensHouse/map.bin (renamed from data/layouts/FuchsiaCity_Building1/map.bin)0
-rw-r--r--data/layouts/SafariZone_RestHouse/border.bin (renamed from data/layouts/SafariZone_Building/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/SafariZone_RestHouse/map.bin (renamed from data/layouts/SafariZone_Building/map.bin)0
-rw-r--r--data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin (renamed from data/layouts/UnusedLayout_833B6EC/border.bin)0
-rw-r--r--data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin (renamed from data/layouts/UnusedLayout_833B6EC/map.bin)0
-rw-r--r--data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin (renamed from data/layouts/UnusedLayout_833BE30/border.bin)0
-rw-r--r--data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin (renamed from data/layouts/UnusedLayout_833BE30/map.bin)0
-rw-r--r--data/layouts/layouts.json40
-rw-r--r--data/maps/CeruleanCave_B1F/map.json2
-rw-r--r--data/maps/CeruleanCave_B1F/scripts.inc26
-rw-r--r--data/maps/CeruleanCave_B1F/text.inc2
-rw-r--r--data/maps/DiglettsCave_NorthEntrance/map.json2
-rw-r--r--data/maps/DiglettsCave_NorthEntrance/scripts.inc4
-rw-r--r--data/maps/DiglettsCave_NorthEntrance/text.inc2
-rw-r--r--data/maps/DiglettsCave_SouthEntrance/map.json2
-rw-r--r--data/maps/DiglettsCave_SouthEntrance/scripts.inc4
-rw-r--r--data/maps/DiglettsCave_SouthEntrance/text.inc2
-rw-r--r--data/maps/FourIsland/map.json2
-rw-r--r--data/maps/FourIsland/scripts.inc50
-rw-r--r--data/maps/FourIsland_PokemonDayCare/map.json2
-rw-r--r--data/maps/FourIsland_PokemonDayCare/scripts.inc174
-rw-r--r--data/maps/FuchsiaCity/map.json36
-rw-r--r--data/maps/FuchsiaCity/scripts.inc83
-rw-r--r--data/maps/FuchsiaCity/text.inc39
-rw-r--r--data/maps/FuchsiaCity_Building1/scripts.inc63
-rw-r--r--data/maps/FuchsiaCity_Gym/map.json20
-rw-r--r--data/maps/FuchsiaCity_Gym/scripts.inc82
-rw-r--r--data/maps/FuchsiaCity_Gym/text.inc58
-rw-r--r--data/maps/FuchsiaCity_House1/map.json6
-rw-r--r--data/maps/FuchsiaCity_House1/scripts.inc12
-rw-r--r--data/maps/FuchsiaCity_House1/text.inc6
-rw-r--r--data/maps/FuchsiaCity_House2/map.json2
-rw-r--r--data/maps/FuchsiaCity_House2/scripts.inc28
-rw-r--r--data/maps/FuchsiaCity_House2/text.inc14
-rw-r--r--data/maps/FuchsiaCity_House3/map.json2
-rw-r--r--data/maps/FuchsiaCity_House3/scripts.inc50
-rw-r--r--data/maps/FuchsiaCity_House3/text.inc16
-rw-r--r--data/maps/FuchsiaCity_Mart/map.json6
-rw-r--r--data/maps/FuchsiaCity_Mart/scripts.inc14
-rw-r--r--data/maps/FuchsiaCity_Mart/text.inc4
-rw-r--r--data/maps/FuchsiaCity_PokemonCenter_1F/map.json8
-rw-r--r--data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc14
-rw-r--r--data/maps/FuchsiaCity_PokemonCenter_1F/text.inc6
-rw-r--r--data/maps/FuchsiaCity_SafariZone_Entrance/map.json8
-rw-r--r--data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc139
-rw-r--r--data/maps/FuchsiaCity_SafariZone_Entrance/text.inc28
-rw-r--r--data/maps/FuchsiaCity_SafariZone_Office/map.json (renamed from data/maps/FuchsiaCity_ZooBuilding/map.json)14
-rw-r--r--data/maps/FuchsiaCity_SafariZone_Office/scripts.inc18
-rw-r--r--data/maps/FuchsiaCity_SafariZone_Office/text.inc (renamed from data/maps/FuchsiaCity_ZooBuilding/text.inc)8
-rw-r--r--data/maps/FuchsiaCity_WardensHouse/map.json (renamed from data/maps/FuchsiaCity_Building1/map.json)22
-rw-r--r--data/maps/FuchsiaCity_WardensHouse/scripts.inc63
-rw-r--r--data/maps/FuchsiaCity_WardensHouse/text.inc (renamed from data/maps/FuchsiaCity_Building1/text.inc)25
-rw-r--r--data/maps/FuchsiaCity_ZooBuilding/scripts.inc18
-rw-r--r--data/maps/MtEmber_Exterior/map.json16
-rw-r--r--data/maps/MtEmber_Exterior/scripts.inc92
-rw-r--r--data/maps/MtEmber_Exterior/text.inc53
-rw-r--r--data/maps/MtEmber_RubyPath_B3F/scripts.inc6
-rw-r--r--data/maps/MtEmber_RubyPath_B3F/text.inc2
-rw-r--r--data/maps/MtEmber_RubyPath_B4F/map.json52
-rw-r--r--data/maps/MtEmber_RubyPath_B4F/scripts.inc40
-rw-r--r--data/maps/MtEmber_RubyPath_B5F/map.json4
-rw-r--r--data/maps/MtEmber_RubyPath_B5F/scripts.inc39
-rw-r--r--data/maps/MtEmber_Summit/map.json2
-rw-r--r--data/maps/MtEmber_Summit/scripts.inc22
-rw-r--r--data/maps/PowerPlant/map.json6
-rw-r--r--data/maps/PowerPlant/scripts.inc50
-rw-r--r--data/maps/Route12/map.json6
-rw-r--r--data/maps/Route12/scripts.inc36
-rw-r--r--data/maps/Route12/text.inc10
-rw-r--r--data/maps/Route16/map.json6
-rw-r--r--data/maps/Route16/scripts.inc44
-rw-r--r--data/maps/Route16/text.inc6
-rw-r--r--data/maps/Route22_NorthEntrance/map.json4
-rw-r--r--data/maps/Route22_NorthEntrance/scripts.inc12
-rw-r--r--data/maps/Route23/map.json100
-rw-r--r--data/maps/Route23/scripts.inc88
-rw-r--r--data/maps/Route23/text.inc2
-rw-r--r--data/maps/Route5_PokemonDayCare/map.json2
-rw-r--r--data/maps/Route5_PokemonDayCare/scripts.inc2
-rw-r--r--data/maps/Route5_PokemonDayCare/text.inc60
-rw-r--r--data/maps/Route5_SouthEntrance/text.inc61
-rw-r--r--data/maps/SafariZone_Building1/scripts.inc10
-rw-r--r--data/maps/SafariZone_Building2/scripts.inc14
-rw-r--r--data/maps/SafariZone_Building3/scripts.inc14
-rw-r--r--data/maps/SafariZone_Building4/scripts.inc14
-rw-r--r--data/maps/SafariZone_Center/map.json8
-rw-r--r--data/maps/SafariZone_Center/scripts.inc12
-rw-r--r--data/maps/SafariZone_Center/text.inc6
-rw-r--r--data/maps/SafariZone_Center_RestHouse/map.json (renamed from data/maps/SafariZone_Building1/map.json)10
-rw-r--r--data/maps/SafariZone_Center_RestHouse/scripts.inc10
-rw-r--r--data/maps/SafariZone_Center_RestHouse/text.inc (renamed from data/maps/SafariZone_Building1/text.inc)4
-rw-r--r--data/maps/SafariZone_East/map.json8
-rw-r--r--data/maps/SafariZone_East/scripts.inc12
-rw-r--r--data/maps/SafariZone_East/text.inc6
-rw-r--r--data/maps/SafariZone_East_RestHouse/map.json (renamed from data/maps/SafariZone_Building2/map.json)12
-rw-r--r--data/maps/SafariZone_East_RestHouse/scripts.inc14
-rw-r--r--data/maps/SafariZone_East_RestHouse/text.inc (renamed from data/maps/SafariZone_Building2/text.inc)6
-rw-r--r--data/maps/SafariZone_North/map.json12
-rw-r--r--data/maps/SafariZone_North/scripts.inc20
-rw-r--r--data/maps/SafariZone_North/text.inc10
-rw-r--r--data/maps/SafariZone_North_RestHouse/map.json (renamed from data/maps/SafariZone_Building3/map.json)14
-rw-r--r--data/maps/SafariZone_North_RestHouse/scripts.inc14
-rw-r--r--data/maps/SafariZone_North_RestHouse/text.inc (renamed from data/maps/SafariZone_Building3/text.inc)6
-rw-r--r--data/maps/SafariZone_SecretHouse/map.json2
-rw-r--r--data/maps/SafariZone_SecretHouse/scripts.inc20
-rw-r--r--data/maps/SafariZone_SecretHouse/text.inc8
-rw-r--r--data/maps/SafariZone_West/map.json10
-rw-r--r--data/maps/SafariZone_West/scripts.inc16
-rw-r--r--data/maps/SafariZone_West/text.inc8
-rw-r--r--data/maps/SafariZone_West_RestHouse/map.json (renamed from data/maps/SafariZone_Building4/map.json)12
-rw-r--r--data/maps/SafariZone_West_RestHouse/scripts.inc14
-rw-r--r--data/maps/SafariZone_West_RestHouse/text.inc (renamed from data/maps/SafariZone_Building4/text.inc)8
-rw-r--r--data/maps/SeafoamIslands_B3F/scripts.inc60
-rw-r--r--data/maps/SeafoamIslands_B4F/map.json12
-rw-r--r--data/maps/SeafoamIslands_B4F/scripts.inc131
-rw-r--r--data/maps/SeafoamIslands_B4F/text.inc4
-rw-r--r--data/maps/SixIsland_DottedHole_1F/scripts.inc8
-rw-r--r--data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc77
-rw-r--r--data/maps/SixIsland_RuinValley/scripts.inc2
-rw-r--r--data/maps/UndergroundPath_EastEntrance/map.json2
-rw-r--r--data/maps/UndergroundPath_EastEntrance/scripts.inc4
-rw-r--r--data/maps/UndergroundPath_EastEntrance/text.inc2
-rw-r--r--data/maps/UndergroundPath_NorthEntrance/map.json2
-rw-r--r--data/maps/UndergroundPath_NorthEntrance/scripts.inc16
-rw-r--r--data/maps/UndergroundPath_SouthEntrance/map.json2
-rw-r--r--data/maps/UndergroundPath_SouthEntrance/scripts.inc4
-rw-r--r--data/maps/UndergroundPath_SouthEntrance/text.inc2
-rw-r--r--data/maps/UndergroundPath_WestEntrance/map.json2
-rw-r--r--data/maps/UndergroundPath_WestEntrance/scripts.inc4
-rw-r--r--data/maps/UndergroundPath_WestEntrance/text.inc2
-rw-r--r--data/maps/UnionRoom/map.json34
-rw-r--r--data/maps/UnionRoom/scripts.inc36
-rw-r--r--data/maps/map_groups.json12
-rw-r--r--data/scripts/day_care.inc233
-rw-r--r--data/scripts/fame_checker.inc8
-rw-r--r--data/scripts/flavor_text.inc113
-rw-r--r--data/scripts/item_ball_scripts.inc2
-rw-r--r--data/scripts/obtain_item.inc16
-rw-r--r--data/scripts/route23.inc181
-rw-r--r--data/scripts/safari_zone.inc37
-rw-r--r--data/scripts/test.inc20
-rw-r--r--data/scripts/trainer_tower.inc2
-rw-r--r--data/specials.inc2
-rw-r--r--data/strings.s32
-rw-r--r--data/text/berries.inc226
-rw-r--r--data/text/braille.inc78
-rw-r--r--data/text/competitive_brothers.inc39
-rw-r--r--data/text/day_care.inc130
-rw-r--r--data/text/eon_ticket.inc44
-rw-r--r--data/text/fame_checker.inc2
-rw-r--r--data/text/flavor_text.inc122
-rw-r--r--data/text/safari_zone.inc168
-rw-r--r--data/text/teachy_tv.inc6
-rw-r--r--data/union_room.s1571
-rw-r--r--include/bag.h28
-rw-r--r--include/battle.h1
-rw-r--r--include/battle_controllers.h1
-rw-r--r--include/berry_crush.h6
-rw-r--r--include/cable_club.h1
-rw-r--r--include/constants/daycare.h27
-rw-r--r--include/constants/event_object_movement.h7
-rw-r--r--include/constants/flags.h18
-rw-r--r--include/constants/global.h3
-rw-r--r--include/constants/item_menu.h35
-rw-r--r--include/constants/layouts.h10
-rw-r--r--include/constants/map_groups.h12
-rw-r--r--include/constants/menu.h31
-rw-r--r--include/constants/metatile_labels.h6
-rw-r--r--include/constants/pokemon.h118
-rw-r--r--include/constants/region_map.h4
-rw-r--r--include/data.h2
-rw-r--r--include/daycare.h2
-rw-r--r--include/dodrio_berry_picking.h6
-rw-r--r--include/event_object_80688E4.h5
-rw-r--r--include/event_object_8097404.h2
-rw-r--r--include/event_object_lock.h1
-rw-r--r--include/event_object_movement.h4
-rw-r--r--include/event_scripts.h12
-rw-r--r--include/field_control_avatar.h1
-rw-r--r--include/field_fadetransition.h2
-rw-r--r--include/field_player_avatar.h1
-rw-r--r--include/field_weather.h2
-rw-r--r--include/fieldmap.h1
-rw-r--r--include/gflib.h18
-rw-r--r--include/global.fieldmap.h6
-rw-r--r--include/graphics.h15
-rw-r--r--include/item_menu.h33
-rw-r--r--include/item_menu_icons.h18
-rw-r--r--include/link.h1
-rw-r--r--include/link_rfu.h38
-rw-r--r--include/map_name_popup.h1
-rw-r--r--include/menu_helpers.h4
-rw-r--r--include/mevent.h3
-rw-r--r--include/mevent_server.h1
-rw-r--r--include/mystery_gift_menu.h3
-rw-r--r--include/overworld.h3
-rw-r--r--include/party_menu.h2
-rw-r--r--include/pokemon.h150
-rw-r--r--include/pokemon_jump.h1
-rw-r--r--include/rfu_union_tool.h17
-rw-r--r--include/save_location.h1
-rw-r--r--include/strings.h29
-rw-r--r--include/teachy_tv.h10
-rw-r--r--include/tm_case.h12
-rw-r--r--include/union_room.h109
-rw-r--r--include/union_room_chat.h1
-rw-r--r--include/union_room_message.h114
-rw-r--r--ld_script.txt14
-rw-r--r--src/bag.c272
-rw-r--r--src/battle_controller_oak_old_man.c4
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_controller_pokedude.c11
-rw-r--r--src/battle_main.c6
-rw-r--r--src/battle_message.c4
-rw-r--r--src/battle_setup.c4
-rw-r--r--src/berry_pouch.c6
-rw-r--r--src/credits.c4
-rw-r--r--src/data.c10
-rw-r--r--src/data/trainer_graphics/back_pic_anims.h8
-rw-r--r--src/data/trainer_graphics/back_pic_tables.h4
-rw-r--r--src/daycare.c235
-rw-r--r--src/event_object_lock.c2
-rw-r--r--src/field_fadetransition.c22
-rw-r--r--src/field_specials.c2
-rw-r--r--src/item_menu.c2400
-rw-r--r--src/item_menu_icons.c148
-rw-r--r--src/item_pc.c14
-rw-r--r--src/item_use.c44
-rw-r--r--src/link_rfu_2.c4
-rw-r--r--src/link_rfu_3.c8
-rw-r--r--src/menu_helpers.c4
-rw-r--r--src/mevent.c4
-rw-r--r--src/new_game.c2
-rw-r--r--src/party_menu.c14
-rw-r--r--src/player_pc.c10
-rw-r--r--src/pokemon.c52
-rw-r--r--src/quest_log.c4
-rw-r--r--src/rfu_union_tool.c663
-rw-r--r--src/safari_zone.c8
-rw-r--r--src/scrcmd.c8
-rw-r--r--src/script_menu.c59
-rw-r--r--src/shop.c6
-rw-r--r--src/start_menu.c4
-rw-r--r--src/teachy_tv.c16
-rw-r--r--src/tm_case.c34
-rw-r--r--src/trade_scene.c2
-rw-r--r--src/union_room.c4607
-rw-r--r--src/union_room_battle.c225
-rw-r--r--src/union_room_message.c543
-rw-r--r--src/vs_seeker.c2
-rw-r--r--src/wireless_communication_status_screen.c4
-rw-r--r--sym_bss.txt11
-rw-r--r--sym_common.txt4
-rw-r--r--sym_ewram.txt79
273 files changed, 12193 insertions, 25454 deletions
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 2aa355ab4..27a3d93f4 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -773,10 +773,10 @@ _08080D44:
_08080D50: .4byte sub_8080F78
_08080D54:
bl GetLinkPlayerCount_2
- ldr r4, _08080D7C @ =gUnknown_3005030
+ ldr r4, _08080D7C @ =gFieldLinkPlayerCount
strb r0, [r4]
bl GetMultiplayerId
- ldr r1, _08080D80 @ =gUnknown_300502C
+ ldr r1, _08080D80 @ =gLocalLinkPlayerId
strb r0, [r1]
ldrb r0, [r4]
bl sub_800A900
@@ -790,8 +790,8 @@ _08080D74:
pop {r0}
bx r0
.align 2, 0
-_08080D7C: .4byte gUnknown_3005030
-_08080D80: .4byte gUnknown_300502C
+_08080D7C: .4byte gFieldLinkPlayerCount
+_08080D80: .4byte gLocalLinkPlayerId
_08080D84: .4byte gBlockSendBuffer
_08080D88: .4byte sub_8080E6C
thumb_func_end sub_8080CDC
@@ -876,10 +876,10 @@ _08080E18: .4byte gTasks
_08080E1C: .4byte sub_8080F78
_08080E20:
bl GetLinkPlayerCount_2
- ldr r4, _08080E58 @ =gUnknown_3005030
+ ldr r4, _08080E58 @ =gFieldLinkPlayerCount
strb r0, [r4]
bl GetMultiplayerId
- ldr r1, _08080E5C @ =gUnknown_300502C
+ ldr r1, _08080E5C @ =gLocalLinkPlayerId
strb r0, [r1]
ldrb r0, [r4]
bl sub_800A900
@@ -899,8 +899,8 @@ _08080E50:
pop {r0}
bx r0
.align 2, 0
-_08080E58: .4byte gUnknown_3005030
-_08080E5C: .4byte gUnknown_300502C
+_08080E58: .4byte gFieldLinkPlayerCount
+_08080E5C: .4byte gLocalLinkPlayerId
_08080E60: .4byte gBlockSendBuffer
_08080E64: .4byte gTasks
_08080E68: .4byte sub_8080E6C
@@ -1536,7 +1536,7 @@ _08081344:
_0808135C:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r1, _08081374 @ =gLinkType
ldr r2, _08081378 @ =0x00002211
adds r0, r2, 0
@@ -1693,7 +1693,7 @@ _08081480:
_080814A0:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, _080814BC @ =gLinkType
ldr r2, _080814C0 @ =0x00002211
adds r1, r2, 0
@@ -1931,7 +1931,7 @@ sub_8081668: @ 8081668
ldrh r0, [r0]
cmp r0, 0x5
beq _0808170A
- ldr r0, _080816BC @ =gUnknown_300502C
+ ldr r0, _080816BC @ =gLocalLinkPlayerId
ldrb r0, [r0]
movs r5, 0x1
eors r0, r5
@@ -1951,7 +1951,7 @@ sub_8081668: @ 8081668
_080816B0: .4byte gBattleTypeFlags
_080816B4: .4byte 0x0000ffdf
_080816B8: .4byte gSpecialVar_0x8004
-_080816BC: .4byte gUnknown_300502C
+_080816BC: .4byte gLocalLinkPlayerId
_080816C0: .4byte gWirelessCommType
_080816C4: .4byte gBattleOutcome
_080816C8:
@@ -2179,7 +2179,7 @@ _08081882:
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
bl ClearLinkCallback_2
b _080818B8
_08081894:
@@ -2255,7 +2255,7 @@ _0808191A:
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
bl Rfu_set_zero
b _08081950
_0808192C:
diff --git a/asm/event_object_80688E4.s b/asm/event_object_80688E4.s
index 1482529fe..93309a80d 100644
--- a/asm/event_object_80688E4.s
+++ b/asm/event_object_80688E4.s
@@ -154,8 +154,8 @@ _080689EC: .4byte gObjectEvents
_080689F0: .4byte gPlayerAvatar
thumb_func_end FreezeObjectEventsExceptOne
- thumb_func_start npc_sync_anim_pause_bits
-npc_sync_anim_pause_bits: @ 80689F4
+ thumb_func_start UnfreezeObjectEvent
+UnfreezeObjectEvent: @ 80689F4
push {r4,r5,lr}
adds r5, r0, 0
ldrh r2, [r5]
@@ -207,7 +207,7 @@ _08068A4C:
.align 2, 0
_08068A54: .4byte 0x00000101
_08068A58: .4byte gSprites
- thumb_func_end npc_sync_anim_pause_bits
+ thumb_func_end UnfreezeObjectEvent
thumb_func_start UnfreezeObjectEvents
UnfreezeObjectEvents: @ 8068A5C
@@ -224,7 +224,7 @@ _08068A62:
cmp r0, 0
beq _08068A78
adds r0, r1, 0
- bl npc_sync_anim_pause_bits
+ bl UnfreezeObjectEvent
_08068A78:
adds r0, r4, 0x1
lsls r0, 24
diff --git a/asm/event_object_movement.s b/asm/event_object_movement.s
index 66207007c..30af8949b 100644
--- a/asm/event_object_movement.s
+++ b/asm/event_object_movement.s
@@ -1427,8 +1427,8 @@ SpawnSpecialObjectEventParameterized: @ 805E830
_0805E894: .4byte 0xfff90000
thumb_func_end SpawnSpecialObjectEventParameterized
- thumb_func_start show_sprite
-show_sprite: @ 805E898
+ thumb_func_start TrySpawnObjectEvent
+TrySpawnObjectEvent: @ 805E898
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
@@ -1468,7 +1468,7 @@ _0805E8E0:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end show_sprite
+ thumb_func_end TrySpawnObjectEvent
thumb_func_start sub_805E8E8
sub_805E8E8: @ 805E8E8
@@ -13157,7 +13157,7 @@ _08063CC8:
bl ObjectEventClearAnimIfSpecialAnimActive
_08063CCE:
adds r0, r4, 0
- bl npc_sync_anim_pause_bits
+ bl UnfreezeObjectEvent
movs r3, 0
strb r5, [r4, 0x1C]
ldrb r0, [r4]
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 673c8bfc3..83f9a5700 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -1100,11 +1100,11 @@ sub_806D0E4: @ 806D0E4
ldr r0, [r5, 0x8]
cmp r0, 0
bne _0806D120
- ldr r0, _0806D11C @ =EventScript_1C555B
+ ldr r0, _0806D11C @ =Test_EventScript_Sign
b _0806D1E6
.align 2, 0
_0806D118: .4byte gMapHeader
-_0806D11C: .4byte EventScript_1C555B
+_0806D11C: .4byte Test_EventScript_Sign
_0806D120:
adds r0, r7, 0
adds r1, r6, 0
@@ -1834,11 +1834,11 @@ _0806D704:
beq _0806D720
movs r0, 0xD
bl IncrementGameStat
- ldr r0, _0806D71C @ =EventScript_81BF546
+ ldr r0, _0806D71C @ =EventScript_EggHatch
bl ScriptContext1_SetupScript
b _0806D730
.align 2, 0
-_0806D71C: .4byte EventScript_81BF546
+_0806D71C: .4byte EventScript_EggHatch
_0806D720:
bl SafariZoneTakeStep
lsls r0, 24
@@ -2150,13 +2150,13 @@ _0806D950:
ldr r0, [r0, 0x8]
cmp r0, 0
bne _0806D958
- ldr r0, _0806D960 @ =EventScript_1C555B
+ ldr r0, _0806D960 @ =Test_EventScript_Sign
_0806D958:
pop {r4}
pop {r1}
bx r1
.align 2, 0
-_0806D960: .4byte EventScript_1C555B
+_0806D960: .4byte Test_EventScript_Sign
thumb_func_end sub_806D928
thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index e4b28d6c6..a605f1439 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -2445,8 +2445,8 @@ _0805C560: .4byte gObjectEvents
_0805C564: .4byte gPlayerAvatar
thumb_func_end PlayerGetDestCoords
- thumb_func_start plaer_get_pos_including_state_based_drift
-plaer_get_pos_including_state_based_drift: @ 805C568
+ thumb_func_start player_get_pos_including_state_based_drift
+player_get_pos_including_state_based_drift: @ 805C568
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -2580,7 +2580,7 @@ _0805C6BC:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end plaer_get_pos_including_state_based_drift
+ thumb_func_end player_get_pos_including_state_based_drift
thumb_func_start GetPlayerFacingDirection
GetPlayerFacingDirection: @ 805C6C4
diff --git a/asm/field_weather.s b/asm/field_weather.s
index ece13573f..7960543a6 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -1584,8 +1584,8 @@ _0807A810: .4byte 0x000006c6
_0807A814: .4byte 0x000006c2
thumb_func_end sub_807A7C4
- thumb_func_start fade_screen
-fade_screen: @ 807A818
+ thumb_func_start FadeScreen
+FadeScreen: @ 807A818
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
@@ -1735,7 +1735,7 @@ _0807A934: .4byte gUnknown_2037F34
_0807A938: .4byte 0x000006c6
_0807A93C: .4byte 0x000006ca
_0807A940: .4byte 0x000006cb
- thumb_func_end fade_screen
+ thumb_func_end FadeScreen
thumb_func_start FieldWeather_StartFadingOutCreditsMap
FieldWeather_StartFadingOutCreditsMap: @ 807A944
diff --git a/asm/item_menu.s b/asm/item_menu.s
deleted file mode 100644
index 704d8d5d8..000000000
--- a/asm/item_menu.s
+++ /dev/null
@@ -1,7021 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GoToBagMenu
-GoToBagMenu: @ 8107DB4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- bl sub_81081AC
- ldr r5, _08107DE4 @ =gUnknown_203AD10
- movs r0, 0x14
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- bne _08107DE8
- adds r0, r4, 0
- bl SetMainCallback2
- b _08107E9A
- .align 2, 0
-_08107DE4: .4byte gUnknown_203AD10
-_08107DE8:
- cmp r6, 0xB
- beq _08107DF0
- ldr r0, _08107E38 @ =gUnknown_203ACFC
- strb r6, [r0, 0x4]
-_08107DF0:
- cmp r4, 0
- beq _08107DF8
- ldr r0, _08107E38 @ =gUnknown_203ACFC
- str r4, [r0]
-_08107DF8:
- ldr r1, [r5]
- movs r0, 0
- str r0, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- movs r0, 0x31
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x5]
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x5]
- ldr r1, [r5]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldr r1, [r5]
- strb r0, [r1, 0x9]
- cmp r6, 0x3
- bne _08107E3C
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- subs r0, 0xF
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- b _08107E5A
- .align 2, 0
-_08107E38: .4byte gUnknown_203ACFC
-_08107E3C:
- cmp r7, 0x6
- bne _08107E50
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- b _08107E5A
-_08107E50:
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
-_08107E5A:
- strb r0, [r2, 0x5]
- movs r1, 0
- ldr r4, _08107EA4 @ =gTextFlags
- ldr r5, _08107EA8 @ =gSpecialVar_ItemId
- ldr r6, _08107EAC @ =sub_8107F10
- ldr r3, _08107EB0 @ =gUnknown_203AD10
- movs r2, 0
-_08107E68:
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _08107E68
- mov r0, r8
- cmp r0, 0x2
- bhi _08107E86
- ldr r0, _08107EB4 @ =gUnknown_203ACFC
- mov r1, r8
- strh r1, [r0, 0x6]
-_08107E86:
- ldrb r0, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0
- strh r0, [r5]
- adds r0, r6, 0
- bl SetMainCallback2
-_08107E9A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08107EA4: .4byte gTextFlags
-_08107EA8: .4byte gSpecialVar_ItemId
-_08107EAC: .4byte sub_8107F10
-_08107EB0: .4byte gUnknown_203AD10
-_08107EB4: .4byte gUnknown_203ACFC
- thumb_func_end GoToBagMenu
-
- thumb_func_start CB2_BagMenuFromStartMenu
-CB2_BagMenuFromStartMenu: @ 8107EB8
- push {lr}
- ldr r2, _08107EC8 @ =CB2_ReturnToFieldWithOpenMenu
- movs r0, 0
- movs r1, 0x3
- bl GoToBagMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08107EC8: .4byte CB2_ReturnToFieldWithOpenMenu
- thumb_func_end CB2_BagMenuFromStartMenu
-
- thumb_func_start sub_8107ECC
-sub_8107ECC: @ 8107ECC
- push {lr}
- ldr r2, _08107EDC @ =SetCB2ToReshowScreenAfterMenu2
- movs r0, 0x5
- movs r1, 0x3
- bl GoToBagMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08107EDC: .4byte SetCB2ToReshowScreenAfterMenu2
- thumb_func_end sub_8107ECC
-
- thumb_func_start sub_8107EE0
-sub_8107EE0: @ 8107EE0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl DoScheduledBgTilemapCopiesToVram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8107EE0
-
- thumb_func_start sub_8107EFC
-sub_8107EFC: @ 8107EFC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8107EFC
-
- thumb_func_start sub_8107F10
-sub_8107F10: @ 8107F10
- push {lr}
-_08107F12:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08107F36
- bl sub_8107F3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08107F36
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08107F12
-_08107F36:
- pop {r0}
- bx r0
- thumb_func_end sub_8107F10
-
- thumb_func_start sub_8107F3C
-sub_8107F3C: @ 8107F3C
- push {r4,r5,lr}
- ldr r0, _08107F58 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _08107F4E
- b _0810811C
-_08107F4E:
- lsls r0, 2
- ldr r1, _08107F5C @ =_08107F60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08107F58: .4byte gMain
-_08107F5C: .4byte _08107F60
- .align 2, 0
-_08107F60:
- .4byte _08107FB0
- .4byte _08107FBA
- .4byte _08107FC0
- .4byte _08107FC6
- .4byte _08107FD8
- .4byte _08107FDE
- .4byte _08107FE4
- .4byte _08107FF6
- .4byte _08108010
- .4byte _08108020
- .4byte _08108026
- .4byte _08108034
- .4byte _08108046
- .4byte _08108054
- .4byte _0810806E
- .4byte _081080B8
- .4byte _081080C8
- .4byte _081080D2
- .4byte _081080D8
- .4byte _081080DE
-_08107FB0:
- bl SetVBlankHBlankCallbacksToNull
- bl ClearScheduledBgCopiesToVram
- b _08108104
-_08107FBA:
- bl ScanlineEffect_Stop
- b _08108104
-_08107FC0:
- bl FreeAllSpritePalettes
- b _08108104
-_08107FC6:
- bl ResetPaletteFade
- ldr r2, _08107FD4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- b _08108102
- .align 2, 0
-_08107FD4: .4byte gPaletteFade
-_08107FD8:
- bl ResetSpriteData
- b _08108104
-_08107FDE:
- bl ResetItemMenuIconState
- b _08108104
-_08107FE4:
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- cmp r0, 0
- beq _08107FF0
- b _08108104
-_08107FF0:
- bl ResetTasks
- b _08108104
-_08107FF6:
- bl sub_81081D0
- lsls r0, 24
- cmp r0, 0
- beq _0810803E
- ldr r0, _0810800C @ =gUnknown_203AD10
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x10]
- b _08108104
- .align 2, 0
-_0810800C: .4byte gUnknown_203AD10
-_08108010:
- bl sub_8108240
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810801E
- b _08108134
-_0810801E:
- b _08108104
-_08108020:
- bl sub_810B858
- b _08108104
-_08108026:
- bl sub_8108E54
- bl sub_8108A68
- bl sub_8108A84
- b _08108104
-_08108034:
- bl sub_81083F4
- lsls r0, 24
- cmp r0, 0
- bne _08108104
-_0810803E:
- bl sub_810813C
- movs r0, 0x1
- b _08108136
-_08108046:
- ldr r0, _08108050 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- bl sub_810842C
- b _08108104
- .align 2, 0
-_08108050: .4byte gUnknown_203ACFC
-_08108054:
- ldr r0, _08108064 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x3
- beq _08108068
- bl sub_81087EC
- b _08108104
- .align 2, 0
-_08108064: .4byte gUnknown_203ACFC
-_08108068:
- bl sub_810B994
- b _08108104
-_0810806E:
- ldr r4, _081080AC @ =gUnknown_203ACFC
- ldrb r0, [r4, 0x4]
- bl sub_8108388
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _081080B0 @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r1, r4, 0
- adds r1, 0xE
- adds r1, r2, r1
- ldrh r1, [r1]
- adds r4, 0x8
- adds r2, r4
- ldrh r2, [r2]
- bl ListMenuInit
- ldr r2, _081080B4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x18]
- b _08108104
- .align 2, 0
-_081080AC: .4byte gUnknown_203ACFC
-_081080B0: .4byte gMultiuseListMenuTemplate
-_081080B4: .4byte gTasks
-_081080B8:
- ldr r0, _081080C4 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- bl sub_80984FC
- b _08108104
- .align 2, 0
-_081080C4: .4byte gUnknown_203ACFC
-_081080C8:
- bl sub_8108888
- bl sub_81088D8
- b _08108104
-_081080D2:
- bl sub_80985E4
- b _08108104
-_081080D8:
- bl sub_8108C10
- b _08108104
-_081080DE:
- ldr r0, _081080F0 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x3
- bne _081080F4
- movs r0, 0x1D
- bl HelpSystem_SetSomeVariable2
- b _081080FA
- .align 2, 0
-_081080F0: .4byte gUnknown_203ACFC
-_081080F4:
- movs r0, 0x9
- bl HelpSystem_SetSomeVariable2
-_081080FA:
- ldr r2, _08108114 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
-_08108102:
- strb r0, [r2, 0x8]
-_08108104:
- ldr r1, _08108118 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08108134
- .align 2, 0
-_08108114: .4byte gPaletteFade
-_08108118: .4byte gMain
-_0810811C:
- ldr r0, _0810812C @ =sub_8107EFC
- bl SetVBlankCallback
- ldr r0, _08108130 @ =sub_8107EE0
- bl SetMainCallback2
- movs r0, 0x1
- b _08108136
- .align 2, 0
-_0810812C: .4byte sub_8107EFC
-_08108130: .4byte sub_8107EE0
-_08108134:
- movs r0, 0
-_08108136:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8107F3C
-
- thumb_func_start sub_810813C
-sub_810813C: @ 810813C
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810816C @ =sub_8108178
- movs r1, 0
- bl CreateTask
- ldr r0, _08108170 @ =sub_8107EFC
- bl SetVBlankCallback
- ldr r0, _08108174 @ =sub_8107EE0
- bl SetMainCallback2
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810816C: .4byte sub_8108178
-_08108170: .4byte sub_8107EFC
-_08108174: .4byte sub_8107EE0
- thumb_func_end sub_810813C
-
- thumb_func_start sub_8108178
-sub_8108178: @ 8108178
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081081A4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810819C
- ldr r0, _081081A8 @ =gUnknown_203ACFC
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_8108B04
- adds r0, r4, 0
- bl DestroyTask
-_0810819C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081081A4: .4byte gPaletteFade
-_081081A8: .4byte gUnknown_203ACFC
- thumb_func_end sub_8108178
-
- thumb_func_start sub_81081AC
-sub_81081AC: @ 81081AC
- ldr r0, _081081C0 @ =gUnknown_203AD10
- movs r1, 0
- str r1, [r0]
- ldr r0, _081081C4 @ =gUnknown_203AD14
- str r1, [r0]
- ldr r0, _081081C8 @ =gUnknown_203AD18
- str r1, [r0]
- ldr r0, _081081CC @ =gUnknown_203AD1C
- str r1, [r0]
- bx lr
- .align 2, 0
-_081081C0: .4byte gUnknown_203AD10
-_081081C4: .4byte gUnknown_203AD14
-_081081C8: .4byte gUnknown_203AD18
-_081081CC: .4byte gUnknown_203AD1C
- thumb_func_end sub_81081AC
-
- thumb_func_start sub_81081D0
-sub_81081D0: @ 81081D0
- push {r4,r5,lr}
- bl ResetAllBgsCoordinatesAndBgCntRegs
- ldr r5, _08108230 @ =gUnknown_203AD14
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _08108238
- movs r1, 0
- adds r2, r4, 0
- bl memset
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08108234 @ =gUnknown_8452CF4
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r1, [r5]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl ScheduleBgCopyTilemapToVram
- movs r1, 0xC1
- lsls r1, 6
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- b _0810823A
- .align 2, 0
-_08108230: .4byte gUnknown_203AD14
-_08108234: .4byte gUnknown_8452CF4
-_08108238:
- movs r0, 0
-_0810823A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81081D0
-
- thumb_func_start sub_8108240
-sub_8108240: @ 8108240
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _0810825C @ =gUnknown_203AD10
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x5
- bls _08108250
- b _08108368
-_08108250:
- lsls r0, 2
- ldr r1, _08108260 @ =_08108264
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810825C: .4byte gUnknown_203AD10
-_08108260: .4byte _08108264
- .align 2, 0
-_08108264:
- .4byte _0810827C
- .4byte _08108298
- .4byte _081082D8
- .4byte _08108310
- .4byte _08108340
- .4byte _0810834C
-_0810827C:
- bl ResetTempTileDataBuffers
- ldr r1, _08108294 @ =gUnknown_8E830CC
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- b _08108352
- .align 2, 0
-_08108294: .4byte gUnknown_8E830CC
-_08108298:
- bl FreeTempTileDataBuffersIfPossible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810837C
- ldr r0, _081082B8 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x3
- beq _081082C4
- ldr r0, _081082BC @ =gUnknown_8E832C0
- ldr r1, _081082C0 @ =gUnknown_203AD14
- ldr r1, [r1]
- bl LZDecompressWram
- b _08108352
- .align 2, 0
-_081082B8: .4byte gUnknown_203ACFC
-_081082BC: .4byte gUnknown_8E832C0
-_081082C0: .4byte gUnknown_203AD14
-_081082C4:
- ldr r0, _081082D0 @ =gUnknown_8E83444
- ldr r1, _081082D4 @ =gUnknown_203AD14
- ldr r1, [r1]
- bl LZDecompressWram
- b _08108352
- .align 2, 0
-_081082D0: .4byte gUnknown_8E83444
-_081082D4: .4byte gUnknown_203AD14
-_081082D8:
- ldr r0, _08108304 @ =gUnknown_8E835B4
- movs r1, 0
- movs r2, 0x60
- bl LoadCompressedPalette
- bl sub_810ADAC
- lsls r0, 24
- cmp r0, 0
- bne _08108352
- ldr r0, _08108308 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _08108352
- ldr r0, _0810830C @ =gUnknown_8E83604
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08108352
- .align 2, 0
-_08108304: .4byte gUnknown_8E835B4
-_08108308: .4byte gSaveBlock2Ptr
-_0810830C: .4byte gUnknown_8E83604
-_08108310:
- bl sub_810ADAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08108326
- ldr r0, _0810832C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08108334
-_08108326:
- ldr r0, _08108330 @ =gUnknown_83D41E4
- b _0810834E
- .align 2, 0
-_0810832C: .4byte gSaveBlock2Ptr
-_08108330: .4byte gUnknown_83D41E4
-_08108334:
- ldr r0, _0810833C @ =gUnknown_83D41EC
- bl LoadCompressedSpriteSheet
- b _08108352
- .align 2, 0
-_0810833C: .4byte gUnknown_83D41EC
-_08108340:
- ldr r0, _08108348 @ =gUnknown_83D41F4
- bl LoadCompressedSpritePalette
- b _08108352
- .align 2, 0
-_08108348: .4byte gUnknown_83D41F4
-_0810834C:
- ldr r0, _08108360 @ =gBagSwapSpriteSheet
-_0810834E:
- bl LoadCompressedSpriteSheet
-_08108352:
- ldr r0, _08108364 @ =gUnknown_203AD10
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- strb r0, [r1, 0x10]
- b _0810837C
- .align 2, 0
-_08108360: .4byte gBagSwapSpriteSheet
-_08108364: .4byte gUnknown_203AD10
-_08108368:
- ldr r0, _08108378 @ =gBagSwapSpritePalette
- bl LoadCompressedSpritePalette
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x10]
- movs r0, 0x1
- b _0810837E
- .align 2, 0
-_08108378: .4byte gBagSwapSpritePalette
-_0810837C:
- movs r0, 0
-_0810837E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8108240
-
- thumb_func_start sub_8108388
-sub_8108388: @ 8108388
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x6
- cmp r0, 0x4
- bhi _081083E0
- lsls r0, 2
- ldr r1, _081083A0 @ =_081083A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081083A0: .4byte _081083A4
- .align 2, 0
-_081083A4:
- .4byte _081083B8
- .4byte _081083D0
- .4byte _081083D8
- .4byte _081083C0
- .4byte _081083C8
-_081083B8:
- ldr r0, _081083BC @ =sub_810AF9C
- b _081083E2
- .align 2, 0
-_081083BC: .4byte sub_810AF9C
-_081083C0:
- ldr r0, _081083C4 @ =sub_810B1D4
- b _081083E2
- .align 2, 0
-_081083C4: .4byte sub_810B1D4
-_081083C8:
- ldr r0, _081083CC @ =sub_810B5D4
- b _081083E2
- .align 2, 0
-_081083CC: .4byte sub_810B5D4
-_081083D0:
- ldr r0, _081083D4 @ =sub_810B4BC
- b _081083E2
- .align 2, 0
-_081083D4: .4byte sub_810B4BC
-_081083D8:
- ldr r0, _081083DC @ =sub_810B378
- b _081083E2
- .align 2, 0
-_081083DC: .4byte sub_810B378
-_081083E0:
- ldr r0, _081083F0 @ =sub_8108F0C
-_081083E2:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_081083F0: .4byte sub_8108F0C
- thumb_func_end sub_8108388
-
- thumb_func_start sub_81083F4
-sub_81083F4: @ 81083F4
- push {r4,lr}
- ldr r4, _08108418 @ =gUnknown_203AD18
- movs r0, 0xAC
- lsls r0, 1
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _08108424
- ldr r4, _0810841C @ =gUnknown_203AD1C
- ldr r0, _08108420 @ =0x00000331
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _08108424
- movs r0, 0x1
- b _08108426
- .align 2, 0
-_08108418: .4byte gUnknown_203AD18
-_0810841C: .4byte gUnknown_203AD1C
-_08108420: .4byte 0x00000331
-_08108424:
- movs r0, 0
-_08108426:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81083F4
-
- thumb_func_start sub_810842C
-sub_810842C: @ 810842C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 3
- ldr r0, _0810853C @ =gBagPockets
- adds r1, r0
- mov r8, r1
- movs r6, 0
- ldr r0, _08108540 @ =gUnknown_203AD10
- ldr r0, [r0]
- adds r0, 0xA
- adds r0, r7
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0810848C
- ldr r5, _08108544 @ =gUnknown_203AD1C
-_08108450:
- lsls r2, r6, 2
- adds r4, r2, r6
- lsls r4, 2
- subs r4, r6
- ldr r0, [r5]
- adds r0, r4
- mov r3, r8
- ldr r1, [r3]
- adds r2, r1
- ldrh r1, [r2]
- bl sub_8108560
- ldr r0, _08108548 @ =gUnknown_203AD18
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r5]
- adds r0, r4
- str r0, [r1]
- str r6, [r1, 0x4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08108540 @ =gUnknown_203AD10
- ldr r0, [r0]
- adds r0, 0xA
- adds r0, r7
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08108450
-_0810848C:
- ldr r5, _08108544 @ =gUnknown_203AD1C
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 2
- subs r4, r6
- ldr r0, [r5]
- adds r0, r4
- ldr r1, _0810854C @ =gUnknown_8452F60
- bl StringCopy
- ldr r0, [r5]
- adds r0, r4
- ldr r1, _08108550 @ =gFameCheckerText_Cancel
- bl StringAppend
- ldr r0, _08108548 @ =gUnknown_203AD18
- ldr r2, [r0]
- lsls r1, r6, 3
- adds r1, r2
- ldr r0, [r5]
- adds r0, r4
- str r0, [r1]
- str r6, [r1, 0x4]
- ldr r3, _08108554 @ =gMultiuseListMenuTemplate
- str r2, [r3]
- ldr r0, _08108540 @ =gUnknown_203AD10
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xA
- adds r0, r7
- ldrb r0, [r0]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0xC]
- strb r1, [r3, 0x10]
- strb r1, [r3, 0x11]
- movs r0, 0x9
- strb r0, [r3, 0x12]
- movs r0, 0x1
- strb r0, [r3, 0x13]
- ldrb r0, [r3, 0x16]
- movs r4, 0x8
- negs r4, r4
- ands r4, r0
- movs r0, 0x39
- negs r0, r0
- ands r4, r0
- movs r0, 0x10
- orrs r4, r0
- strb r4, [r3, 0x16]
- ldrb r0, [r3, 0x14]
- movs r1, 0x10
- negs r1, r1
- ands r1, r0
- movs r5, 0x2
- orrs r1, r5
- strb r1, [r3, 0x14]
- adds r2, 0xD
- adds r2, r7
- ldrb r0, [r2]
- strh r0, [r3, 0xE]
- ldrb r0, [r3, 0x17]
- movs r2, 0x40
- negs r2, r2
- ands r2, r0
- orrs r2, r5
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r3, 0x14]
- movs r0, 0x30
- strb r0, [r3, 0x15]
- ldr r0, _08108558 @ =sub_81085A4
- str r0, [r3, 0x4]
- ldr r0, _0810855C @ =sub_8108654
- str r0, [r3, 0x8]
- movs r0, 0x3F
- ands r2, r0
- strb r2, [r3, 0x17]
- ands r4, r0
- strb r4, [r3, 0x16]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810853C: .4byte gBagPockets
-_08108540: .4byte gUnknown_203AD10
-_08108544: .4byte gUnknown_203AD1C
-_08108548: .4byte gUnknown_203AD18
-_0810854C: .4byte gUnknown_8452F60
-_08108550: .4byte gFameCheckerText_Cancel
-_08108554: .4byte gMultiuseListMenuTemplate
-_08108558: .4byte sub_81085A4
-_0810855C: .4byte sub_8108654
- thumb_func_end sub_810842C
-
- thumb_func_start sub_8108560
-sub_8108560: @ 8108560
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _0810857C @ =0xfe940000
- adds r1, r0
- lsrs r1, 16
- cmp r1, 0x1
- bhi _08108584
- ldr r1, _08108580 @ =gUnknown_8452F66
- adds r0, r4, 0
- bl StringCopy
- b _0810858C
- .align 2, 0
-_0810857C: .4byte 0xfe940000
-_08108580: .4byte gUnknown_8452F66
-_08108584:
- ldr r1, _081085A0 @ =gUnknown_8452F60
- adds r0, r4, 0
- bl StringCopy
-_0810858C:
- adds r0, r5, 0
- bl ItemId_GetName
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringAppend
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081085A0: .4byte gUnknown_8452F60
- thumb_func_end sub_8108560
-
- thumb_func_start sub_81085A4
-sub_81085A4: @ 81085A4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081085BA
- movs r0, 0xF5
- bl PlaySE
- bl sub_8098580
-_081085BA:
- ldr r4, _08108604 @ =gUnknown_203AD10
- ldr r1, [r4]
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFF
- bne _08108644
- ldrb r1, [r1, 0x5]
- lsls r1, 26
- lsrs r1, 30
- movs r0, 0x1
- eors r0, r1
- bl DestroyItemMenuIcon
- ldr r2, [r4]
- ldr r0, _08108608 @ =gUnknown_203ACFC
- ldrh r1, [r0, 0x6]
- adds r0, r2, 0
- adds r0, 0xA
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, r5
- beq _0810860C
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r5, 16
- lsrs r1, 16
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [r4]
- ldrb r1, [r1, 0x5]
- lsls r1, 26
- lsrs r1, 30
- bl CreateItemMenuIcon
- b _08108618
- .align 2, 0
-_08108604: .4byte gUnknown_203AD10
-_08108608: .4byte gUnknown_203ACFC
-_0810860C:
- ldr r0, _0810864C @ =0x00000177
- ldrb r1, [r2, 0x5]
- lsls r1, 26
- lsrs r1, 30
- bl CreateItemMenuIcon
-_08108618:
- ldr r4, _08108650 @ =gUnknown_203AD10
- ldr r3, [r4]
- ldrb r2, [r3, 0x5]
- lsls r0, r2, 26
- lsrs r0, 30
- movs r1, 0x1
- eors r1, r0
- lsls r1, 4
- movs r0, 0x31
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r4]
- ldrb r1, [r0, 0x5]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- bne _08108644
- adds r0, r5, 0
- bl sub_8108818
-_08108644:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810864C: .4byte 0x00000177
-_08108650: .4byte gUnknown_203AD10
- thumb_func_end sub_81085A4
-
- thumb_func_start sub_8108654
-sub_8108654: @ 8108654
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _08108684 @ =gUnknown_203AD10
- ldr r0, [r0]
- ldrb r1, [r0, 0x4]
- cmp r1, 0xFF
- beq _08108690
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08108688
- adds r0, r6, 0
- movs r1, 0x2
- bl bag_menu_print_cursor
- b _08108690
- .align 2, 0
-_08108684: .4byte gUnknown_203AD10
-_08108688:
- adds r0, r6, 0
- movs r1, 0xFF
- bl bag_menu_print_cursor
-_08108690:
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08108752
- ldr r0, _08108718 @ =gUnknown_203AD10
- ldr r0, [r0]
- ldr r5, _0810871C @ =gUnknown_203ACFC
- ldrh r1, [r5, 0x6]
- adds r0, 0xA
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, r4
- beq _08108752
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r7, r0, 16
- ldrb r0, [r5, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl BagGetQuantityByPocketPosition
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r0, [r5, 0x6]
- cmp r0, 0x1
- beq _0810872C
- adds r0, r7, 0
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0810872C
- ldr r0, _08108720 @ =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08108724 @ =gStringVar4
- ldr r1, _08108728 @ =gText_TimesStrVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- str r6, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x6E
- bl sub_810B8F0
- b _08108752
- .align 2, 0
-_08108718: .4byte gUnknown_203AD10
-_0810871C: .4byte gUnknown_203ACFC
-_08108720: .4byte gStringVar1
-_08108724: .4byte gStringVar4
-_08108728: .4byte gText_TimesStrVar1
-_0810872C:
- ldr r0, _08108760 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08108764 @ =0x00000296
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _08108752
- cmp r0, r7
- bne _08108752
- ldr r1, _08108768 @ =gUnknown_8452F7C
- movs r0, 0x18
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- mov r0, r8
- movs r2, 0x70
- adds r3, r6, 0
- bl BlitBitmapToWindow
-_08108752:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108760: .4byte gSaveBlock1Ptr
-_08108764: .4byte 0x00000296
-_08108768: .4byte gUnknown_8452F7C
- thumb_func_end sub_8108654
-
- thumb_func_start bag_menu_print_cursor_
-bag_menu_print_cursor_: @ 810876C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl bag_menu_print_cursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bag_menu_print_cursor_
-
- thumb_func_start bag_menu_print_cursor
-bag_menu_print_cursor: @ 810878C
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _081087C8
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1
- adds r3, r5, 0
- bl FillWindowPixelRect
- b _081087DE
-_081087C8:
- ldr r2, _081087E8 @ =gFameCheckerText_ListMenuCursor
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0x1
- bl sub_810B8F0
-_081087DE:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081087E8: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end bag_menu_print_cursor
-
- thumb_func_start sub_81087EC
-sub_81087EC: @ 81087EC
- push {lr}
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r2, _08108810 @ =gUnknown_8452CFC
- ldr r0, _08108814 @ =gUnknown_203ACFC
- ldrh r1, [r0, 0x6]
- lsls r0, r1, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 24
- lsrs r1, 24
- bl sub_810B958
- pop {r0}
- bx r0
- .align 2, 0
-_08108810: .4byte gUnknown_8452CFC
-_08108814: .4byte gUnknown_203ACFC
- thumb_func_end sub_81087EC
-
- thumb_func_start sub_8108818
-sub_8108818: @ 8108818
- push {r4,lr}
- sub sp, 0x14
- adds r2, r0, 0
- ldr r0, _0810884C @ =gUnknown_203AD10
- ldr r0, [r0]
- ldr r1, _08108850 @ =gUnknown_203ACFC
- ldrh r1, [r1, 0x6]
- adds r0, 0xA
- adds r0, r1
- ldrb r0, [r0]
- cmp r2, r0
- beq _08108854
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r2, 16
- lsrs r1, 16
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _08108856
- .align 2, 0
-_0810884C: .4byte gUnknown_203AD10
-_08108850: .4byte gUnknown_203ACFC
-_08108854:
- ldr r4, _08108884 @ =gUnknown_84162F5
-_08108856:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_810B8F0
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08108884: .4byte gUnknown_84162F5
- thumb_func_end sub_8108818
-
- thumb_func_start sub_8108888
-sub_8108888: @ 8108888
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _081088D0 @ =gUnknown_203AD10
- ldr r1, [r4]
- ldr r2, _081088D4 @ =gUnknown_203ACFC
- ldrh r3, [r2, 0x6]
- adds r0, r1, 0
- adds r0, 0xA
- adds r0, r3
- ldrb r0, [r0]
- adds r1, 0xD
- adds r1, r3
- ldrb r1, [r1]
- subs r0, r1
- adds r0, 0x1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldrh r0, [r2, 0x6]
- lsls r0, 1
- adds r2, 0xE
- adds r0, r2
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xA0
- movs r2, 0x8
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081088D0: .4byte gUnknown_203AD10
-_081088D4: .4byte gUnknown_203ACFC
- thumb_func_end sub_8108888
-
- thumb_func_start sub_81088D8
-sub_81088D8: @ 81088D8
- push {r4,lr}
- ldr r4, _081088FC @ =gUnknown_203AD10
- ldr r0, [r4]
- ldrb r1, [r0, 0x5]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- beq _081088F4
- ldr r0, _08108900 @ =gUnknown_8452F6C
- ldr r1, _08108904 @ =gUnknown_203AD02
- bl AddScrollIndicatorArrowPair
- ldr r1, [r4]
- strb r0, [r1, 0x9]
-_081088F4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081088FC: .4byte gUnknown_203AD10
-_08108900: .4byte gUnknown_8452F6C
-_08108904: .4byte gUnknown_203AD02
- thumb_func_end sub_81088D8
-
- thumb_func_start sub_8108908
-sub_8108908: @ 8108908
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0810893C @ =gUnknown_203AD10
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0x6]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r1, 0x6
- str r1, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x98
- movs r2, 0x48
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810893C: .4byte gUnknown_203AD10
- thumb_func_end sub_8108908
-
- thumb_func_start sub_8108940
-sub_8108940: @ 8108940
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08108974 @ =gUnknown_203AD10
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0x6]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r1, 0x6
- str r1, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xD4
- movs r2, 0x78
- movs r3, 0x98
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08108974: .4byte gUnknown_203AD10
- thumb_func_end sub_8108940
-
- thumb_func_start sub_8108978
-sub_8108978: @ 8108978
- push {r4,lr}
- ldr r4, _08108998 @ =gUnknown_203AD10
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _0810898E
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
-_0810898E:
- bl sub_810899C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08108998: .4byte gUnknown_203AD10
- thumb_func_end sub_8108978
-
- thumb_func_start sub_810899C
-sub_810899C: @ 810899C
- push {r4,lr}
- ldr r4, _081089B8 @ =gUnknown_203AD10
- ldr r1, [r4]
- ldrb r0, [r1, 0x9]
- cmp r0, 0xFF
- beq _081089B2
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
-_081089B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081089B8: .4byte gUnknown_203AD10
- thumb_func_end sub_810899C
-
- thumb_func_start sub_81089BC
-sub_81089BC: @ 81089BC
- push {r4,r5,lr}
- ldr r0, _081089F0 @ =gUnknown_203ACFC
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x6]
- strb r2, [r0, 0x5]
- movs r2, 0
- adds r5, r0, 0
- adds r5, 0x8
- movs r3, 0
- adds r4, r0, 0
- adds r4, 0xE
-_081089D4:
- lsls r1, r2, 1
- adds r0, r1, r5
- strh r3, [r0]
- adds r1, r4
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _081089D4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081089F0: .4byte gUnknown_203ACFC
- thumb_func_end sub_81089BC
-
- thumb_func_start sub_81089F4
-sub_81089F4: @ 81089F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _08108A60 @ =gUnknown_203ACFC
- lsls r1, r4, 1
- adds r0, r2, 0
- adds r0, 0xE
- adds r3, r1, r0
- ldrh r0, [r3]
- adds r7, r2, 0
- ldr r6, _08108A64 @ =gUnknown_203AD10
- cmp r0, 0
- beq _08108A2E
- adds r2, r0, 0
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xD
- adds r0, r4
- ldrb r5, [r0]
- adds r2, r5
- adds r1, 0xA
- adds r1, r4
- ldrb r1, [r1]
- adds r0, r1, 0x1
- cmp r2, r0
- ble _08108A2E
- subs r0, r5, 0x1
- subs r0, r1, r0
- strh r0, [r3]
-_08108A2E:
- lsls r2, r4, 1
- adds r0, r7, 0
- adds r0, 0xE
- adds r0, r2, r0
- ldrh r1, [r0]
- adds r0, r7, 0
- adds r0, 0x8
- adds r2, r0
- ldrh r0, [r2]
- adds r1, r0
- ldr r0, [r6]
- adds r0, 0xA
- adds r0, r4
- ldrb r0, [r0]
- adds r3, r0, 0x1
- cmp r1, r3
- blt _08108A58
- cmp r3, 0x1
- bgt _08108A56
- movs r0, 0
-_08108A56:
- strh r0, [r2]
-_08108A58:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108A60: .4byte gUnknown_203ACFC
-_08108A64: .4byte gUnknown_203AD10
- thumb_func_end sub_81089F4
-
- thumb_func_start sub_8108A68
-sub_8108A68: @ 8108A68
- push {r4,lr}
- movs r4, 0
-_08108A6C:
- adds r0, r4, 0
- bl sub_81089F4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08108A6C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108A68
-
- thumb_func_start sub_8108A84
-sub_8108A84: @ 8108A84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08108AF8 @ =gUnknown_203AD04
- mov r8, r0
-_08108A90:
- lsls r2, r6, 1
- mov r3, r8
- adds r1, r2, r3
- ldrh r0, [r1]
- adds r7, r6, 0x1
- cmp r0, 0x3
- bls _08108AE6
- movs r5, 0
- subs r0, 0x3
- cmp r5, r0
- bgt _08108AE6
- ldr r0, _08108AFC @ =gUnknown_203AD0A
- ldr r3, _08108B00 @ =gUnknown_203AD10
- mov r12, r3
- adds r4, r2, r0
- adds r3, r1, 0
-_08108AB0:
- ldrh r2, [r4]
- mov r0, r12
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xD
- adds r0, r6
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0xA
- adds r1, r6
- ldrb r0, [r1]
- adds r0, 0x1
- cmp r2, r0
- beq _08108AE6
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r3]
- subs r0, 0x3
- cmp r5, r0
- ble _08108AB0
-_08108AE6:
- lsls r0, r7, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _08108A90
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108AF8: .4byte gUnknown_203AD04
-_08108AFC: .4byte gUnknown_203AD0A
-_08108B00: .4byte gUnknown_203AD10
- thumb_func_end sub_8108A84
-
- thumb_func_start sub_8108B04
-sub_8108B04: @ 8108B04
- push {lr}
- ldr r0, _08108B40 @ =gUnknown_203AD10
- ldr r0, [r0]
- cmp r0, 0
- beq _08108B12
- bl Free
-_08108B12:
- ldr r0, _08108B44 @ =gUnknown_203AD14
- ldr r0, [r0]
- cmp r0, 0
- beq _08108B1E
- bl Free
-_08108B1E:
- ldr r0, _08108B48 @ =gUnknown_203AD18
- ldr r0, [r0]
- cmp r0, 0
- beq _08108B2A
- bl Free
-_08108B2A:
- ldr r0, _08108B4C @ =gUnknown_203AD1C
- ldr r0, [r0]
- cmp r0, 0
- beq _08108B36
- bl Free
-_08108B36:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .align 2, 0
-_08108B40: .4byte gUnknown_203AD10
-_08108B44: .4byte gUnknown_203AD14
-_08108B48: .4byte gUnknown_203AD18
-_08108B4C: .4byte gUnknown_203AD1C
- thumb_func_end sub_8108B04
-
- thumb_func_start ItemMenu_StartFadeToExitCallback
-ItemMenu_StartFadeToExitCallback: @ 8108B50
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08108B84 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08108B88 @ =sub_8108B8C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08108B84: .4byte gTasks
-_08108B88: .4byte sub_8108B8C
- thumb_func_end ItemMenu_StartFadeToExitCallback
-
- thumb_func_start sub_8108B8C
-sub_8108B8C: @ 8108B8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08108BE0 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r0, _08108BE4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08108C08
- ldr r0, _08108BE8 @ =sub_8108CFC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08108C08
- ldrb r0, [r4]
- ldr r4, _08108BEC @ =gUnknown_203ACFC
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r1, r4, 0
- adds r1, 0xE
- adds r1, r2, r1
- adds r3, r4, 0
- adds r3, 0x8
- adds r2, r3
- bl DestroyListMenuTask
- ldr r0, _08108BF0 @ =gUnknown_203AD10
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _08108BF4
- bl SetMainCallback2
- b _08108BFA
- .align 2, 0
-_08108BE0: .4byte gTasks+0x8
-_08108BE4: .4byte gPaletteFade
-_08108BE8: .4byte sub_8108CFC
-_08108BEC: .4byte gUnknown_203ACFC
-_08108BF0: .4byte gUnknown_203AD10
-_08108BF4:
- ldr r0, [r4]
- bl SetMainCallback2
-_08108BFA:
- bl sub_8108978
- bl sub_8108B04
- adds r0, r5, 0
- bl DestroyTask
-_08108C08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8108B8C
-
- thumb_func_start sub_8108C10
-sub_8108C10: @ 8108C10
- push {r4,r5,lr}
- sub sp, 0x8
- movs r5, 0
- add r0, sp, 0x4
- strh r5, [r0]
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x3F
- bl SetGpuReg
- 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
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r4, _08108C68 @ =gUnknown_203ACFC
- ldrb r0, [r4, 0x5]
- cmp r0, 0x1
- bne _08108C6C
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- b _08108C9E
- .align 2, 0
-_08108C68: .4byte gUnknown_203ACFC
-_08108C6C:
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0xA0
- bl SetGpuReg
- ldr r0, _08108CA8 @ =sub_8108CFC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08108CAC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0xC0
- strh r0, [r1, 0x8]
- ldr r0, _08108CB0 @ =0x0000fff0
- strh r0, [r1, 0xA]
- movs r0, 0x1
- strb r0, [r4, 0x5]
-_08108C9E:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08108CA8: .4byte sub_8108CFC
-_08108CAC: .4byte gTasks
-_08108CB0: .4byte 0x0000fff0
- thumb_func_end sub_8108C10
-
- thumb_func_start sub_8108CB4
-sub_8108CB4: @ 8108CB4
- push {lr}
- ldr r0, _08108CE0 @ =sub_8108CFC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08108CE4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- ldr r0, _08108CE8 @ =0x0000fff0
- strh r0, [r1, 0x8]
- movs r0, 0x10
- strh r0, [r1, 0xA]
- ldr r0, _08108CEC @ =gUnknown_203ACFC
- strb r2, [r0, 0x5]
- pop {r0}
- bx r0
- .align 2, 0
-_08108CE0: .4byte sub_8108CFC
-_08108CE4: .4byte gTasks
-_08108CE8: .4byte 0x0000fff0
-_08108CEC: .4byte gUnknown_203ACFC
- thumb_func_end sub_8108CB4
-
- thumb_func_start CB2_SetUpReshowBattleScreenAfterMenu
-CB2_SetUpReshowBattleScreenAfterMenu: @ 8108CF0
- ldr r1, _08108CF8 @ =gUnknown_203ACFC
- movs r0, 0
- strb r0, [r1, 0x5]
- bx lr
- .align 2, 0
-_08108CF8: .4byte gUnknown_203ACFC
- thumb_func_end CB2_SetUpReshowBattleScreenAfterMenu
-
- thumb_func_start sub_8108CFC
-sub_8108CFC: @ 8108CFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08108D28 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _08108D2C
- movs r0, 0x44
- movs r1, 0xA0
- bl SetGpuReg
- b _08108D34
- .align 2, 0
-_08108D28: .4byte gTasks+0x8
-_08108D2C:
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
-_08108D34:
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- cmp r1, 0x10
- bne _08108D44
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0xA0
- beq _08108D54
-_08108D44:
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bne _08108D5A
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08108D5A
-_08108D54:
- adds r0, r5, 0
- bl DestroyTask
-_08108D5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8108CFC
-
- thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray
-ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r3, r2, 0
- cmp r1, r3
- beq _08108DC0
- lsls r0, r1, 2
- adds r0, r4
- ldr r6, [r0]
- cmp r3, r1
- bls _08108D98
- subs r3, 0x1
- lsls r1, 16
- lsls r0, r3, 16
- asrs r2, r0, 16
- cmp r1, r0
- bge _08108DBA
- adds r5, r2, 0
-_08108D82:
- asrs r2, r1, 16
- lsls r0, r2, 2
- adds r0, r4
- ldr r1, [r0, 0x4]
- str r1, [r0]
- adds r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, r5
- blt _08108D82
- b _08108DBA
-_08108D98:
- lsls r1, 16
- lsls r0, r3, 16
- asrs r2, r0, 16
- cmp r1, r0
- ble _08108DBA
- adds r5, r2, 0
-_08108DA4:
- asrs r2, r1, 16
- lsls r1, r2, 2
- adds r1, r4
- subs r0, r1, 0x4
- ldr r0, [r0]
- str r0, [r1]
- subs r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, r5
- bgt _08108DA4
-_08108DBA:
- lsls r0, r3, 2
- adds r0, r4
- str r6, [r0]
-_08108DC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray
-
- thumb_func_start sub_8108DC8
-sub_8108DC8: @ 8108DC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, r5, 3
- ldr r0, _08108E3C @ =gBagPockets
- adds r4, r1, r0
- ldr r0, [r4]
- ldrb r1, [r4, 0x4]
- bl BagPocketCompaction
- ldr r3, _08108E40 @ =gUnknown_203AD10
- ldr r0, [r3]
- adds r0, 0xA
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- movs r2, 0
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08108E1C
- ldr r0, [r4]
- ldrh r0, [r0]
- cmp r0, 0
- beq _08108E1C
-_08108DF8:
- ldr r0, [r3]
- adds r0, 0xA
- adds r0, r5
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08108E1C
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08108DF8
-_08108E1C:
- ldr r0, _08108E40 @ =gUnknown_203AD10
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xA
- adds r0, r5
- ldrb r0, [r0]
- adds r2, r0, 0x1
- cmp r2, 0x6
- ble _08108E44
- adds r0, r1, 0
- adds r0, 0xD
- adds r0, r5
- movs r1, 0x6
- strb r1, [r0]
- b _08108E4C
- .align 2, 0
-_08108E3C: .4byte gBagPockets
-_08108E40: .4byte gUnknown_203AD10
-_08108E44:
- adds r0, r1, 0
- adds r0, 0xD
- adds r0, r5
- strb r2, [r0]
-_08108E4C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8108DC8
-
- thumb_func_start sub_8108E54
-sub_8108E54: @ 8108E54
- push {r4,lr}
- movs r4, 0
-_08108E58:
- adds r0, r4, 0
- bl sub_8108DC8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08108E58
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108E54
-
- thumb_func_start DisplayItemMessageInBag
-DisplayItemMessageInBag: @ 8108E70
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- mov r9, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08108EDC @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x5
- bl sub_810BA70
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- bl GetTextSpeedSetting
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0x14]
- str r6, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x6D
- movs r3, 0xD
- bl DisplayMessageAndContinueTask
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08108EDC: .4byte gTasks+0x8
- thumb_func_end DisplayItemMessageInBag
-
- thumb_func_start ItemMenu_SetExitCallback
-ItemMenu_SetExitCallback: @ 8108EE0
- ldr r1, _08108EE8 @ =gUnknown_203AD10
- ldr r1, [r1]
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108EE8: .4byte gUnknown_203AD10
- thumb_func_end ItemMenu_SetExitCallback
-
- thumb_func_start sub_8108EEC
-sub_8108EEC: @ 8108EEC
- lsls r0, 24
- ldr r1, _08108F08 @ =gUnknown_203ACFC
- lsrs r0, 23
- adds r2, r1, 0
- adds r2, 0xE
- adds r2, r0, r2
- adds r1, 0x8
- adds r0, r1
- ldrb r0, [r0]
- ldrb r2, [r2]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08108F08: .4byte gUnknown_203ACFC
- thumb_func_end sub_8108EEC
-
- thumb_func_start sub_8108F0C
-sub_8108F0C: @ 8108F0C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08108F78 @ =gTasks+0x8
- adds r7, r0, r1
- ldr r0, _08108F7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08108F2C
- b _081090C6
-_08108F2C:
- ldr r0, _08108F80 @ =sub_8108CFC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08108F3C
- b _081090C6
-_08108F3C:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08108F4A
- b _081090C6
-_08108F4A:
- ldr r4, _08108F84 @ =gUnknown_203ACFC
- ldrb r1, [r4, 0x6]
- adds r0, r6, 0
- bl sub_8109168
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08108F8C
- cmp r0, 0x2
- beq _08108F94
- ldr r0, _08108F88 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08108FE4
- adds r5, r4, 0
- ldrb r0, [r5, 0x4]
- cmp r0, 0
- bne _08108FE4
- b _08108FA0
- .align 2, 0
-_08108F78: .4byte gTasks+0x8
-_08108F7C: .4byte gPaletteFade
-_08108F80: .4byte sub_8108CFC
-_08108F84: .4byte gUnknown_203ACFC
-_08108F88: .4byte gMain
-_08108F8C:
- movs r1, 0x1
- negs r1, r1
- adds r0, r6, 0
- b _08108F98
-_08108F94:
- adds r0, r6, 0
- movs r1, 0x1
-_08108F98:
- movs r2, 0
- bl sub_81091D0
- b _081090C6
-_08108FA0:
- ldrb r0, [r7]
- mov r4, sp
- adds r4, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl ListMenuGetScrollAndRow
- mov r0, sp
- ldrh r1, [r0]
- ldrh r0, [r4]
- adds r1, r0
- ldr r0, _08108FE0 @ =gUnknown_203AD10
- ldr r0, [r0]
- adds r0, 0xA
- ldrh r5, [r5, 0x6]
- adds r0, r5
- ldrb r0, [r0]
- cmp r1, r0
- beq _08108FE4
- movs r0, 0x5
- bl PlaySE
- mov r0, sp
- ldrh r1, [r4]
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r6, 0
- bl sub_81093B8
- b _081090C6
- .align 2, 0
-_08108FE0: .4byte gUnknown_203AD10
-_08108FE4:
- ldrb r0, [r7]
- bl ListMenu_ProcessInput
- adds r4, r0, 0
- ldrb r0, [r7]
- ldr r5, _08109014 @ =gUnknown_203ACFC
- ldrh r2, [r5, 0x6]
- lsls r2, 1
- adds r1, r5, 0
- adds r1, 0xE
- adds r1, r2, r1
- adds r3, r5, 0
- adds r3, 0x8
- adds r2, r3
- bl ListMenuGetScrollAndRow
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08109018
- adds r0, 0x1
- cmp r4, r0
- bne _08109044
- b _081090C6
- .align 2, 0
-_08109014: .4byte gUnknown_203ACFC
-_08109018:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08109038 @ =gSpecialVar_ItemId
- movs r0, 0
- strh r0, [r1]
- bl sub_8108CB4
- ldr r1, _0810903C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08109040 @ =ItemMenu_StartFadeToExitCallback
- b _081090C4
- .align 2, 0
-_08109038: .4byte gSpecialVar_ItemId
-_0810903C: .4byte gTasks
-_08109040: .4byte ItemMenu_StartFadeToExitCallback
-_08109044:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08109074 @ =gUnknown_203AD10
- ldr r0, [r0]
- adds r0, 0xA
- ldrh r1, [r5, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- bne _08109084
- ldr r1, _08109078 @ =gSpecialVar_ItemId
- movs r0, 0
- strh r0, [r1]
- bl sub_8108CB4
- ldr r1, _0810907C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08109080 @ =ItemMenu_StartFadeToExitCallback
- b _081090C4
- .align 2, 0
-_08109074: .4byte gUnknown_203AD10
-_08109078: .4byte gSpecialVar_ItemId
-_0810907C: .4byte gTasks
-_08109080: .4byte ItemMenu_StartFadeToExitCallback
-_08109084:
- bl sub_8108978
- ldrb r0, [r7]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- strh r4, [r7, 0x2]
- ldrb r0, [r5, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl BagGetQuantityByPocketPosition
- strh r0, [r7, 0x4]
- ldrb r0, [r5, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl BagGetItemIdByPocketPosition
- ldr r1, _081090D0 @ =gSpecialVar_ItemId
- strh r0, [r1]
- ldr r1, _081090D4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _081090D8 @ =sub_81090DC
-_081090C4:
- str r1, [r0]
-_081090C6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081090D0: .4byte gSpecialVar_ItemId
-_081090D4: .4byte gTasks
-_081090D8: .4byte sub_81090DC
- thumb_func_end sub_8108F0C
-
- thumb_func_start sub_81090DC
-sub_81090DC: @ 81090DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8109140
- ldr r1, _08109104 @ =gUnknown_8452F34
- ldr r0, _08109108 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109104: .4byte gUnknown_8452F34
-_08109108: .4byte gUnknown_203ACFC
- thumb_func_end sub_81090DC
-
- thumb_func_start sub_810910C
-sub_810910C: @ 810910C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8109140
- bl sub_8108888
- bl sub_81088D8
- ldr r1, _08109138 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810913C @ =sub_8108F0C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109138: .4byte gTasks
-_0810913C: .4byte sub_8108F0C
- thumb_func_end sub_810910C
-
- thumb_func_start sub_8109140
-sub_8109140: @ 8109140
- push {lr}
- sub sp, 0x8
- movs r1, 0x6
- str r1, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x1E
- bl SetBgTilemapPalette
- movs r0, 0x1
- bl ScheduleBgCopyTilemapToVram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8109140
-
- thumb_func_start sub_8109168
-sub_8109168: @ 8109168
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _081091A4 @ =gUnknown_203AD10
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081091C6
- bl GetLRKeysState
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081091A8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08109194
- cmp r2, 0x1
- bne _081091AC
-_08109194:
- cmp r4, 0
- beq _081091C6
- movs r0, 0xF6
- bl PlaySE
- movs r0, 0x1
- b _081091C8
- .align 2, 0
-_081091A4: .4byte gUnknown_203AD10
-_081091A8: .4byte gMain
-_081091AC:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081091B8
- cmp r2, 0x2
- bne _081091C6
-_081091B8:
- cmp r4, 0x1
- bhi _081091C6
- movs r0, 0xF6
- bl PlaySE
- movs r0, 0x2
- b _081091C8
-_081091C6:
- movs r0, 0
-_081091C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8109168
-
- thumb_func_start sub_81091D0
-sub_81091D0: @ 81091D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r6, r1, 0
- lsls r2, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _08109288 @ =gTasks+0x8
- mov r8, r0
- adds r4, r7, r0
- movs r0, 0
- strh r0, [r4, 0x1A]
- strh r0, [r4, 0x18]
- strh r6, [r4, 0x16]
- cmp r2, 0
- bne _08109242
- movs r0, 0
- bl ClearWindowTilemap
- movs r0, 0x1
- bl ClearWindowTilemap
- movs r0, 0x2
- bl ClearWindowTilemap
- ldrb r0, [r4]
- ldr r3, _0810928C @ =gUnknown_203ACFC
- ldrh r2, [r3, 0x6]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0xE
- adds r1, r2, r1
- adds r3, 0x8
- adds r2, r3
- bl DestroyListMenuTask
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldr r0, _08109290 @ =gUnknown_203AD10
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- lsls r1, 26
- lsrs r1, 30
- movs r0, 0x1
- eors r0, r1
- bl DestroyItemMenuIcon
- bl sub_8108978
-_08109242:
- movs r0, 0x12
- str r0, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x2D
- movs r2, 0xB
- movs r3, 0x1
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl ScheduleBgCopyTilemapToVram
- ldr r0, _0810928C @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl sub_8098528
- ldr r1, _08109294 @ =sub_8109298
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r2, [r0]
- adds r0, r5, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08109288: .4byte gTasks+0x8
-_0810928C: .4byte gUnknown_203ACFC
-_08109290: .4byte gUnknown_203AD10
-_08109294: .4byte sub_8109298
- thumb_func_end sub_81091D0
-
- thumb_func_start sub_8109298
-sub_8109298: @ 8109298
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081092DC @ =gTasks+0x8
- adds r5, r0, r1
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- cmp r0, 0
- bne _08109314
- bl sub_810ADAC
- lsls r0, 24
- cmp r0, 0
- bne _08109314
- ldr r4, _081092E0 @ =gUnknown_203ACFC
- ldrb r1, [r5, 0x16]
- ldrb r0, [r4, 0x6]
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8109168
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081092E4
- cmp r0, 0x2
- beq _081092FA
- b _08109314
- .align 2, 0
-_081092DC: .4byte gTasks+0x8
-_081092E0: .4byte gUnknown_203ACFC
-_081092E4:
- ldrh r0, [r5, 0x16]
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl SwitchTaskToFollowupFunc
- movs r1, 0x1
- negs r1, r1
- adds r0, r6, 0
- b _0810930C
-_081092FA:
- ldrh r0, [r5, 0x16]
- ldrh r2, [r4, 0x6]
- adds r0, r2
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl SwitchTaskToFollowupFunc
- adds r0, r6, 0
- movs r1, 0x1
-_0810930C:
- movs r2, 0x1
- bl sub_81091D0
- b _081093AA
-_08109314:
- movs r1, 0x1A
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08109322
- cmp r0, 0x1
- beq _08109358
- b _081093AA
-_08109322:
- ldrh r1, [r5, 0x18]
- movs r2, 0x18
- ldrsh r0, [r5, r2]
- ldr r4, _08109354 @ =0x00007fff
- cmp r0, r4
- beq _0810934C
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8109854
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- cmp r0, 0xC
- bne _08109344
- strh r4, [r5, 0x18]
-_08109344:
- movs r2, 0x18
- ldrsh r0, [r5, r2]
- cmp r0, r4
- bne _081093AA
-_0810934C:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- strh r0, [r5, 0x1A]
- b _081093AA
- .align 2, 0
-_08109354: .4byte 0x00007fff
-_08109358:
- ldr r4, _081093B0 @ =gUnknown_203ACFC
- ldrh r0, [r5, 0x16]
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r4, 0x6]
- bl sub_81087EC
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _081093B4 @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r1, r4, 0
- adds r1, 0xE
- adds r1, r2, r1
- ldrh r1, [r1]
- adds r4, 0x8
- adds r2, r4
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- bl sub_8108888
- bl sub_81088D8
- adds r0, r6, 0
- bl SwitchTaskToFollowupFunc
-_081093AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081093B0: .4byte gUnknown_203ACFC
-_081093B4: .4byte gMultiuseListMenuTemplate
- thumb_func_end sub_8109298
-
- thumb_func_start sub_81093B8
-sub_81093B8: @ 81093B8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x18
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r0, _08109494 @ =gTasks+0x8
- mov r9, r0
- adds r1, r5, 0
- add r1, r9
- mov r8, r1
- ldrb r0, [r1]
- mov r2, sp
- adds r2, 0x16
- add r1, sp, 0x14
- bl ListMenuGetScrollAndRow
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x10
- movs r2, 0x1
- bl ListMenuSetUnkIndicatorsStructField
- mov r0, r8
- strh r4, [r0, 0x2]
- ldr r0, _08109498 @ =gUnknown_203AD10
- ldr r0, [r0]
- movs r6, 0
- strb r4, [r0, 0x4]
- ldr r4, _0810949C @ =gStringVar1
- ldr r0, _081094A0 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrh r1, [r2, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetName
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _081094A4 @ =gStringVar4
- ldr r1, _081094A8 @ =gOtherText_WhereShouldTheStrVar1BePlaced
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_810B8F0
- mov r1, r8
- ldrb r0, [r1]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl sub_80986A8
- movs r0, 0
- bl sub_8098660
- bl sub_810899C
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x8
- negs r0, r0
- add r9, r0
- add r5, r9
- ldr r0, _081094AC @ =sub_81094B0
- str r0, [r5]
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109494: .4byte gTasks+0x8
-_08109498: .4byte gUnknown_203AD10
-_0810949C: .4byte gStringVar1
-_081094A0: .4byte gUnknown_203ACFC
-_081094A4: .4byte gStringVar4
-_081094A8: .4byte gOtherText_WhereShouldTheStrVar1BePlaced
-_081094AC: .4byte sub_81094B0
- thumb_func_end sub_81093B8
-
- thumb_func_start sub_81094B0
-sub_81094B0: @ 81094B0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08109538 @ =gTasks+0x8
- adds r4, r0, r1
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810959E
- ldrb r0, [r4]
- bl ListMenu_ProcessInput
- adds r5, r0, 0
- ldrb r0, [r4]
- ldr r3, _0810953C @ =gUnknown_203ACFC
- ldrh r2, [r3, 0x6]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0xE
- adds r1, r2, r1
- adds r3, 0x8
- adds r2, r3
- bl ListMenuGetScrollAndRow
- ldrb r0, [r4]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl sub_80986A8
- ldr r0, _08109540 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08109548
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08109544 @ =gUnknown_203AD10
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r4]
- mov r4, sp
- adds r4, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl ListMenuGetScrollAndRow
- mov r0, sp
- ldrh r1, [r0]
- ldrh r0, [r4]
- adds r1, r0
- adds r0, r6, 0
- bl sub_81095AC
- b _0810959E
- .align 2, 0
-_08109538: .4byte gTasks+0x8
-_0810953C: .4byte gUnknown_203ACFC
-_08109540: .4byte gMain
-_08109544: .4byte gUnknown_203AD10
-_08109548:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08109558
- adds r0, 0x1
- cmp r5, r0
- bne _08109588
- b _0810959E
-_08109558:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08109584 @ =gUnknown_203AD10
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r4]
- mov r4, sp
- adds r4, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl ListMenuGetScrollAndRow
- mov r0, sp
- ldrh r1, [r0]
- ldrh r0, [r4]
- adds r1, r0
- adds r0, r6, 0
- bl sub_810967C
- b _0810959E
- .align 2, 0
-_08109584: .4byte gUnknown_203AD10
-_08109588:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081095A8 @ =gUnknown_203AD10
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_81095AC
-_0810959E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081095A8: .4byte gUnknown_203AD10
- thumb_func_end sub_81094B0
-
- thumb_func_start sub_81095AC
-sub_81095AC: @ 81095AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- mov r9, r0
- ldr r0, _081095E4 @ =gTasks+0x8
- mov r10, r0
- mov r6, r9
- add r6, r10
- movs r3, 0x2
- ldrsh r2, [r6, r3]
- cmp r2, r5
- beq _081095DA
- subs r0, r5, 0x1
- cmp r2, r0
- bne _081095E8
-_081095DA:
- adds r0, r1, 0
- adds r1, r5, 0
- bl sub_810967C
- b _0810965C
- .align 2, 0
-_081095E4: .4byte gTasks+0x8
-_081095E8:
- ldr r1, _0810966C @ =gBagPockets
- ldr r4, _08109670 @ =gUnknown_203ACFC
- ldrh r0, [r4, 0x6]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- adds r2, r5, 0
- bl ItemMenu_MoveItemSlotToNewPositionInArray
- ldrb r0, [r6]
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- movs r1, 0xE
- adds r1, r4
- mov r8, r1
- adds r1, r2, r1
- adds r7, r4, 0
- adds r7, 0x8
- adds r2, r7
- bl DestroyListMenuTask
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- cmp r0, r5
- bcs _08109628
- ldrh r1, [r4, 0x6]
- lsls r1, 1
- adds r1, r7
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_08109628:
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _08109674 @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- mov r3, r8
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r2, r7
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- bl sub_81088D8
- mov r0, r10
- subs r0, 0x8
- add r0, r9
- ldr r1, _08109678 @ =sub_8108F0C
- str r1, [r0]
-_0810965C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810966C: .4byte gBagPockets
-_08109670: .4byte gUnknown_203ACFC
-_08109674: .4byte gMultiuseListMenuTemplate
-_08109678: .4byte sub_8108F0C
- thumb_func_end sub_81095AC
-
- thumb_func_start sub_810967C
-sub_810967C: @ 810967C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r8, r1
- ldr r0, _0810970C @ =gTasks+0x8
- mov r10, r0
- mov r6, r8
- add r6, r10
- ldrb r0, [r6]
- ldr r5, _08109710 @ =gUnknown_203ACFC
- ldrh r2, [r5, 0x6]
- lsls r2, 1
- movs r1, 0xE
- adds r1, r5
- mov r9, r1
- adds r1, r2, r1
- adds r7, r5, 0
- adds r7, 0x8
- adds r2, r7
- bl DestroyListMenuTask
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- cmp r0, r4
- bcs _081096CA
- ldrh r1, [r5, 0x6]
- lsls r1, 1
- adds r1, r7
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_081096CA:
- ldrb r0, [r5, 0x6]
- bl sub_810842C
- ldr r0, _08109714 @ =gMultiuseListMenuTemplate
- ldrh r2, [r5, 0x6]
- lsls r2, 1
- mov r3, r9
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r2, r7
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- bl sub_81088D8
- mov r0, r10
- subs r0, 0x8
- add r0, r8
- ldr r1, _08109718 @ =sub_8108F0C
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810970C: .4byte gTasks+0x8
-_08109710: .4byte gUnknown_203ACFC
-_08109714: .4byte gMultiuseListMenuTemplate
-_08109718: .4byte sub_8108F0C
- thumb_func_end sub_810967C
-
- thumb_func_start sub_810971C
-sub_810971C: @ 810971C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x14
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x6
- movs r1, 0x2
- bl sub_810B9DC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _081097D4 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _081097D8 @ =gStringVar1
- mov r10, r1
- bl CopyItemName
- ldr r0, _081097DC @ =gStringVar4
- mov r9, r0
- adds r1, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [sp]
- movs r1, 0x1
- mov r8, r1
- str r1, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- str r1, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, r9
- movs r3, 0
- bl sub_810B8F0
- movs r0, 0
- movs r1, 0
- bl sub_810B9DC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, _081097E0 @ =gText_TimesStrVar1
- mov r0, r9
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- str r0, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0
- mov r2, r9
- movs r3, 0x4
- bl sub_810B8F0
- bl sub_8108940
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081097D4: .4byte gUnknown_203ACFC
-_081097D8: .4byte gStringVar1
-_081097DC: .4byte gStringVar4
-_081097E0: .4byte gText_TimesStrVar1
- thumb_func_end sub_810971C
-
- thumb_func_start sub_81097E4
-sub_81097E4: @ 81097E4
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- bl sub_810BAD8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r6, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, _08109848 @ =gStringVar1
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- movs r2, 0x2
- adds r3, r5, 0
- bl ConvertIntToDecimalStringN
- ldr r4, _0810984C @ =gStringVar4
- ldr r1, _08109850 @ =gText_TimesStrVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x4
- bl sub_810B8F0
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109848: .4byte gStringVar1
-_0810984C: .4byte gStringVar4
-_08109850: .4byte gText_TimesStrVar1
- thumb_func_end sub_81097E4
-
- thumb_func_start sub_8109854
-sub_8109854: @ 8109854
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xC
- subs r2, r0
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- ldr r2, _0810988C @ =gUnknown_8452D08
- adds r1, r2
- movs r3, 0xD
- subs r3, r0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r2, 0xB
- bl CopyToBgTilemapBufferRect
- movs r0, 0x1
- bl ScheduleBgCopyTilemapToVram
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0810988C: .4byte gUnknown_8452D08
- thumb_func_end sub_8109854
-
- thumb_func_start sub_8109890
-sub_8109890: @ 8109890
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _081098A8 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- beq _08109924
- cmp r0, 0x6
- bgt _081098AC
- cmp r0, 0x5
- beq _081098B6
- b _0810993C
- .align 2, 0
-_081098A8: .4byte gUnknown_203ACFC
-_081098AC:
- cmp r0, 0x7
- beq _081098B6
- cmp r0, 0x8
- beq _08109924
- b _0810993C
-_081098B6:
- ldr r2, _081098D4 @ =gSpecialVar_ItemId
- ldrh r1, [r2]
- ldr r0, _081098D8 @ =0x0000016d
- cmp r1, r0
- bne _081098E8
- ldr r1, _081098DC @ =gUnknown_203AD20
- movs r0, 0x8
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r0, _081098E0 @ =gUnknown_203AD24
- str r1, [r0]
- ldr r1, _081098E4 @ =gUnknown_203AD28
- movs r0, 0x2
- b _08109AD0
- .align 2, 0
-_081098D4: .4byte gSpecialVar_ItemId
-_081098D8: .4byte 0x0000016d
-_081098DC: .4byte gUnknown_203AD20
-_081098E0: .4byte gUnknown_203AD24
-_081098E4: .4byte gUnknown_203AD28
-_081098E8:
- ldrh r0, [r2]
- bl ItemId_GetBattleUsage
- lsls r0, 24
- cmp r0, 0
- beq _0810990C
- ldr r1, _08109900 @ =gUnknown_203AD24
- ldr r0, _08109904 @ =gUnknown_8452F30
- str r0, [r1]
- ldr r1, _08109908 @ =gUnknown_203AD28
- movs r0, 0x2
- b _08109AD0
- .align 2, 0
-_08109900: .4byte gUnknown_203AD24
-_08109904: .4byte gUnknown_8452F30
-_08109908: .4byte gUnknown_203AD28
-_0810990C:
- ldr r1, _08109918 @ =gUnknown_203AD24
- ldr r0, _0810991C @ =gUnknown_8452F32
- str r0, [r1]
- ldr r1, _08109920 @ =gUnknown_203AD28
- movs r0, 0x1
- b _08109AD0
- .align 2, 0
-_08109918: .4byte gUnknown_203AD24
-_0810991C: .4byte gUnknown_8452F32
-_08109920: .4byte gUnknown_203AD28
-_08109924:
- ldr r1, _08109930 @ =gUnknown_203AD24
- ldr r0, _08109934 @ =gUnknown_8452F30
- str r0, [r1]
- ldr r1, _08109938 @ =gUnknown_203AD28
- movs r0, 0x2
- b _08109AD0
- .align 2, 0
-_08109930: .4byte gUnknown_203AD24
-_08109934: .4byte gUnknown_8452F30
-_08109938: .4byte gUnknown_203AD28
-_0810993C:
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08109950
- bl InUnionRoom
- cmp r0, 0x1
- bne _081099C4
-_08109950:
- ldr r1, _08109970 @ =gSpecialVar_ItemId
- ldr r2, _08109974 @ =0xfffffe94
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08109984
- ldr r1, _08109978 @ =gUnknown_203AD24
- ldr r0, _0810997C @ =gUnknown_8452F2E
- str r0, [r1]
- ldr r1, _08109980 @ =gUnknown_203AD28
- movs r0, 0x2
- b _08109AD0
- .align 2, 0
-_08109970: .4byte gSpecialVar_ItemId
-_08109974: .4byte 0xfffffe94
-_08109978: .4byte gUnknown_203AD24
-_0810997C: .4byte gUnknown_8452F2E
-_08109980: .4byte gUnknown_203AD28
-_08109984:
- ldr r0, _08109998 @ =gUnknown_203ACFC
- ldrh r2, [r0, 0x6]
- adds r3, r0, 0
- cmp r2, 0x1
- bne _081099A0
- ldr r0, _0810999C @ =gUnknown_203AD28
- strb r2, [r0]
- adds r7, r0, 0
- b _081099A8
- .align 2, 0
-_08109998: .4byte gUnknown_203ACFC
-_0810999C: .4byte gUnknown_203AD28
-_081099A0:
- ldr r1, _081099B8 @ =gUnknown_203AD28
- movs r0, 0x2
- strb r0, [r1]
- adds r7, r1, 0
-_081099A8:
- ldr r0, _081099BC @ =gUnknown_203AD24
- ldrh r1, [r3, 0x6]
- lsls r1, 1
- ldr r2, _081099C0 @ =gUnknown_8452F28
- adds r1, r2
- str r1, [r0]
- b _08109AD4
- .align 2, 0
-_081099B8: .4byte gUnknown_203AD28
-_081099BC: .4byte gUnknown_203AD24
-_081099C0: .4byte gUnknown_8452F28
-_081099C4:
- ldr r5, _081099D8 @ =gUnknown_203ACFC
- ldrh r0, [r5, 0x6]
- cmp r0, 0x1
- beq _08109A34
- cmp r0, 0x1
- bgt _081099E0
- cmp r0, 0
- beq _081099EC
- ldr r7, _081099DC @ =gUnknown_203AD28
- b _08109AD4
- .align 2, 0
-_081099D8: .4byte gUnknown_203ACFC
-_081099DC: .4byte gUnknown_203AD28
-_081099E0:
- cmp r0, 0x2
- beq _08109AC4
- ldr r7, _081099E8 @ =gUnknown_203AD28
- b _08109AD4
- .align 2, 0
-_081099E8: .4byte gUnknown_203AD28
-_081099EC:
- ldr r4, _08109A0C @ =gUnknown_203AD28
- movs r0, 0x4
- strb r0, [r4]
- ldr r0, _08109A10 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08109A1C
- ldr r1, _08109A14 @ =gUnknown_203AD24
- ldr r0, _08109A18 @ =gUnknown_8452F24
- str r0, [r1]
- adds r7, r4, 0
- b _08109AD4
- .align 2, 0
-_08109A0C: .4byte gUnknown_203AD28
-_08109A10: .4byte gSpecialVar_ItemId
-_08109A14: .4byte gUnknown_203AD24
-_08109A18: .4byte gUnknown_8452F24
-_08109A1C:
- ldr r0, _08109A2C @ =gUnknown_203AD24
- ldrh r1, [r5, 0x6]
- lsls r1, 2
- ldr r2, _08109A30 @ =gUnknown_8452F18
- adds r1, r2
- str r1, [r0]
- adds r7, r4, 0
- b _08109AD4
- .align 2, 0
-_08109A2C: .4byte gUnknown_203AD24
-_08109A30: .4byte gUnknown_8452F18
-_08109A34:
- ldr r0, _08109A5C @ =gUnknown_203AD24
- ldr r2, _08109A60 @ =gUnknown_203AD20
- str r2, [r0]
- ldr r3, _08109A64 @ =gUnknown_203AD28
- movs r0, 0x3
- strb r0, [r3]
- movs r0, 0x4
- strb r0, [r2, 0x2]
- ldr r0, _08109A68 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08109A6C @ =0x00000296
- adds r0, r1
- ldr r1, _08109A70 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- adds r7, r3, 0
- ldrh r3, [r1]
- cmp r0, r3
- bne _08109A74
- movs r0, 0xA
- b _08109A76
- .align 2, 0
-_08109A5C: .4byte gUnknown_203AD24
-_08109A60: .4byte gUnknown_203AD20
-_08109A64: .4byte gUnknown_203AD28
-_08109A68: .4byte gSaveBlock1Ptr
-_08109A6C: .4byte 0x00000296
-_08109A70: .4byte gSpecialVar_ItemId
-_08109A74:
- movs r0, 0x2
-_08109A76:
- strb r0, [r2, 0x1]
- ldrh r1, [r1]
- ldr r3, _08109A8C @ =0xfffffe94
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08109A90
- movs r0, 0x7
- strb r0, [r2]
- b _08109AD4
- .align 2, 0
-_08109A8C: .4byte 0xfffffe94
-_08109A90:
- lsls r1, 16
- movs r0, 0xB4
- lsls r0, 17
- cmp r1, r0
- bne _08109AB0
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08109AB0
- ldr r1, _08109AAC @ =gUnknown_203AD20
- movs r0, 0x9
- b _08109AB4
- .align 2, 0
-_08109AAC: .4byte gUnknown_203AD20
-_08109AB0:
- ldr r1, _08109ABC @ =gUnknown_203AD20
- movs r0, 0
-_08109AB4:
- strb r0, [r1]
- ldr r7, _08109AC0 @ =gUnknown_203AD28
- b _08109AD4
- .align 2, 0
-_08109ABC: .4byte gUnknown_203AD20
-_08109AC0: .4byte gUnknown_203AD28
-_08109AC4:
- ldr r1, _08109B98 @ =gUnknown_203AD24
- ldr r0, _08109B9C @ =gUnknown_8452F18
- adds r0, 0x8
- str r0, [r1]
- ldr r1, _08109BA0 @ =gUnknown_203AD28
- movs r0, 0x3
-_08109AD0:
- strb r0, [r1]
- adds r7, r1, 0
-_08109AD4:
- ldrb r1, [r7]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xA
- bl sub_810B9DC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x2
- movs r1, 0x2
- bl GetFontAttribute
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- ldr r0, _08109BA4 @ =gUnknown_8452EB8
- str r0, [sp, 0xC]
- ldr r0, _08109B98 @ =gUnknown_203AD24
- ldr r0, [r0]
- str r0, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r5, 0
- movs r3, 0x2
- bl AddItemMenuActionTextPrinters
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldrb r0, [r7]
- str r0, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- movs r0, 0x6
- movs r1, 0
- bl sub_810B9DC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08109BA8 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08109BAC @ =gStringVar1
- bl CopyItemName
- ldr r6, _08109BB0 @ =gStringVar4
- ldr r1, _08109BB4 @ =gOtherText_StrVar1
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r0, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r6, 0
- movs r3, 0
- bl sub_810B8F0
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08109B98: .4byte gUnknown_203AD24
-_08109B9C: .4byte gUnknown_8452F18
-_08109BA0: .4byte gUnknown_203AD28
-_08109BA4: .4byte gUnknown_8452EB8
-_08109BA8: .4byte gSpecialVar_ItemId
-_08109BAC: .4byte gStringVar1
-_08109BB0: .4byte gStringVar4
-_08109BB4: .4byte gOtherText_StrVar1
- thumb_func_end sub_8109890
-
- thumb_func_start sub_8109BB8
-sub_8109BB8: @ 8109BB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8109890
- ldr r1, _08109BDC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08109BE0 @ =sub_8109BE4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109BDC: .4byte gTasks
-_08109BE0: .4byte sub_8109BE4
- thumb_func_end sub_8109BB8
-
- thumb_func_start sub_8109BE4
-sub_8109BE4: @ 8109BE4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08109C42
- bl Menu_ProcessInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08109C42
- adds r0, 0x1
- cmp r4, r0
- bne _08109C24
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08109C20 @ =gUnknown_8452EB8
- ldr r1, [r0, 0x24]
- adds r0, r5, 0
- bl _call_via_r1
- b _08109C42
- .align 2, 0
-_08109C20: .4byte gUnknown_8452EB8
-_08109C24:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08109C48 @ =gUnknown_8452EB8
- ldr r0, _08109C4C @ =gUnknown_203AD24
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_08109C42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109C48: .4byte gUnknown_8452EB8
-_08109C4C: .4byte gUnknown_203AD24
- thumb_func_end sub_8109BE4
-
- thumb_func_start sub_8109C50
-sub_8109C50: @ 8109C50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _08109CA0 @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- bl ItemId_GetFieldFunc
- cmp r0, 0
- beq _08109CB4
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _08109CA4
- ldrh r0, [r5]
- bl ItemId_GetType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08109CA4
- adds r0, r4, 0
- bl sub_810A170
- b _08109CB4
- .align 2, 0
-_08109CA0: .4byte gSpecialVar_ItemId
-_08109CA4:
- ldr r0, _08109CBC @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_08109CB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08109CBC: .4byte gSpecialVar_ItemId
- thumb_func_end sub_8109C50
-
- thumb_func_start sub_8109CC0
-sub_8109CC0: @ 8109CC0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _08109D14 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0xA
- bl sub_810BAD8
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- movs r0, 0x6
- bl sub_810BAD8
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08109D18
- adds r0, r5, 0
- bl sub_8109D38
- b _08109D2A
- .align 2, 0
-_08109D14: .4byte gTasks+0x8
-_08109D18:
- ldrh r0, [r4, 0x2]
- ldr r1, _08109D30 @ =gText_TossOutHowManyStrVar1s
- bl sub_810971C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08109D34 @ =sub_8109DEC
- str r1, [r0]
-_08109D2A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08109D30: .4byte gText_TossOutHowManyStrVar1s
-_08109D34: .4byte sub_8109DEC
- thumb_func_end sub_8109CC0
-
- thumb_func_start sub_8109D38
-sub_8109D38: @ 8109D38
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- ldr r0, _08109D9C @ =gTasks+0x8
- adds r1, r0
- ldr r0, _08109DA0 @ =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r1, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r5, _08109DA4 @ =gStringVar4
- ldr r1, _08109DA8 @ =gText_ThrowAwayStrVar2OfThisItemQM
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x6
- movs r1, 0x1
- bl sub_810B9DC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- str r1, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl sub_810B8F0
- ldr r1, _08109DAC @ =gUnknown_8452F50
- adds r0, r4, 0
- bl sub_810BAE8
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08109D9C: .4byte gTasks+0x8
-_08109DA0: .4byte gStringVar2
-_08109DA4: .4byte gStringVar4
-_08109DA8: .4byte gText_ThrowAwayStrVar2OfThisItemQM
-_08109DAC: .4byte gUnknown_8452F50
- thumb_func_end sub_8109D38
-
- thumb_func_start sub_8109DB0
-sub_8109DB0: @ 8109DB0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08109DE8 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r4]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- adds r0, r5, 0
- bl sub_810910C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08109DE8: .4byte gTasks+0x8
- thumb_func_end sub_8109DB0
-
- thumb_func_start sub_8109DEC
-sub_8109DEC: @ 8109DEC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08109E1C @ =gTasks+0x8
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x10
- ldrh r1, [r4, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08109E20
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl sub_81097E4
- b _08109EA2
- .align 2, 0
-_08109E1C: .4byte gTasks+0x8
-_08109E20:
- ldr r0, _08109E60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109E64
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- bl sub_810BAD8
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl sub_810BA3C
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- bl sub_8108978
- adds r0, r5, 0
- bl sub_8109D38
- b _08109EA2
- .align 2, 0
-_08109E60: .4byte gMain
-_08109E64:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08109EA2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r4]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- bl sub_8108978
- adds r0, r6, 0
- bl sub_810910C
-_08109EA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8109DEC
-
- thumb_func_start sub_8109EA8
-sub_8109EA8: @ 8109EA8
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _08109F28 @ =gTasks+0x8
- adds r6, r4, r5
- movs r0, 0x6
- bl sub_810BA3C
- ldr r0, _08109F2C @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08109F30 @ =gStringVar1
- bl CopyItemName
- ldr r0, _08109F34 @ =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r6, _08109F38 @ =gStringVar4
- ldr r1, _08109F3C @ =gText_ThrewAwayStrVar2StrVar1s
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x6
- movs r1, 0x3
- bl sub_810B9DC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- str r1, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0x2
- adds r2, r6, 0
- movs r3, 0
- bl sub_810B8F0
- subs r5, 0x8
- adds r4, r5
- ldr r0, _08109F40 @ =sub_8109F44
- str r0, [r4]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109F28: .4byte gTasks+0x8
-_08109F2C: .4byte gUnknown_203ACFC
-_08109F30: .4byte gStringVar1
-_08109F34: .4byte gStringVar2
-_08109F38: .4byte gStringVar4
-_08109F3C: .4byte gText_ThrewAwayStrVar2StrVar1s
-_08109F40: .4byte sub_8109F44
- thumb_func_end sub_8109EA8
-
- thumb_func_start sub_8109F44
-sub_8109F44: @ 8109F44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _08109FEC @ =gTasks+0x8
- adds r7, r0, r1
- ldr r0, _08109FF0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08109F6E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08109FE0
-_08109F6E:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08109FF4 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldrh r1, [r7, 0x10]
- bl RemoveBagItem
- movs r0, 0x6
- bl sub_810BA3C
- ldrb r0, [r7]
- ldr r4, _08109FF8 @ =gUnknown_203ACFC
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r4, 0
- adds r5, 0xE
- adds r1, r2, r5
- adds r6, r4, 0
- adds r6, 0x8
- adds r2, r6
- bl DestroyListMenuTask
- ldrb r0, [r4, 0x6]
- bl sub_8108DC8
- ldrb r0, [r4, 0x6]
- bl sub_81089F4
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _08109FFC @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r2, r5
- ldrh r1, [r5]
- adds r2, r6
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r7]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- mov r0, r8
- bl sub_810910C
-_08109FE0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08109FEC: .4byte gTasks+0x8
-_08109FF0: .4byte gMain
-_08109FF4: .4byte gSpecialVar_ItemId
-_08109FF8: .4byte gUnknown_203ACFC
-_08109FFC: .4byte gMultiuseListMenuTemplate
- thumb_func_end sub_8109F44
-
- thumb_func_start sub_810A000
-sub_810A000: @ 810A000
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _0810A040 @ =gTasks+0x8
- adds r7, r0, r1
- ldr r0, _0810A044 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _0810A048 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, _0810A04C @ =0x00000296
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, r2
- bne _0810A050
- movs r0, 0
- strh r0, [r1]
- b _0810A052
- .align 2, 0
-_0810A040: .4byte gTasks+0x8
-_0810A044: .4byte gUnknown_203ACFC
-_0810A048: .4byte gSaveBlock1Ptr
-_0810A04C: .4byte 0x00000296
-_0810A050:
- strh r2, [r1]
-_0810A052:
- ldrb r0, [r7]
- ldr r4, _0810A0A0 @ =gUnknown_203ACFC
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r4, 0
- adds r5, 0xE
- adds r1, r2, r5
- adds r6, r4, 0
- adds r6, 0x8
- adds r2, r6
- bl DestroyListMenuTask
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r2, r5
- ldrh r1, [r5]
- adds r2, r6
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- mov r0, r8
- bl sub_810A2DC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A0A0: .4byte gUnknown_203ACFC
-_0810A0A4: .4byte gMultiuseListMenuTemplate
- thumb_func_end sub_810A000
-
- thumb_func_start sub_810A0A8
-sub_810A0A8: @ 810A0A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r6, r0, 3
- ldr r0, _0810A110 @ =gTasks+0x8
- mov r8, r0
- adds r1, r6, r0
- ldr r0, _0810A114 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r1, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- adds r0, r5, 0
- bl itemid_80BF6D8_mail_related
- lsls r0, 24
- cmp r0, 0
- bne _0810A120
- ldr r2, _0810A118 @ =gUnknown_841630F
- ldr r3, _0810A11C @ =sub_810A1D0
- adds r0, r4, 0
- movs r1, 0x2
- bl DisplayItemMessageInBag
- b _0810A166
- .align 2, 0
-_0810A110: .4byte gTasks+0x8
-_0810A114: .4byte gUnknown_203ACFC
-_0810A118: .4byte gUnknown_841630F
-_0810A11C: .4byte sub_810A1D0
-_0810A120:
- adds r0, r5, 0
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _0810A160
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _0810A13E
- adds r0, r4, 0
- bl sub_810A170
- b _0810A166
-_0810A13E:
- ldr r0, _0810A154 @ =gUnknown_203AD10
- ldr r1, [r0]
- ldr r0, _0810A158 @ =CB2_ChooseMonToGiveItem
- str r0, [r1]
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810A15C @ =ItemMenu_StartFadeToExitCallback
- str r1, [r0]
- b _0810A166
- .align 2, 0
-_0810A154: .4byte gUnknown_203AD10
-_0810A158: .4byte CB2_ChooseMonToGiveItem
-_0810A15C: .4byte ItemMenu_StartFadeToExitCallback
-_0810A160:
- adds r0, r7, 0
- bl sub_810A18C
-_0810A166:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810A0A8
-
- thumb_func_start sub_810A170
-sub_810A170: @ 810A170
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810A184 @ =gText_ThereIsNoPokemon
- ldr r3, _0810A188 @ =sub_810A1D0
- movs r1, 0x2
- bl DisplayItemMessageInBag
- pop {r0}
- bx r0
- .align 2, 0
-_0810A184: .4byte gText_ThereIsNoPokemon
-_0810A188: .4byte sub_810A1D0
- thumb_func_end sub_810A170
-
- thumb_func_start sub_810A18C
-sub_810A18C: @ 810A18C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810A1BC @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _0810A1C0 @ =gStringVar1
- bl CopyItemName
- ldr r5, _0810A1C4 @ =gStringVar4
- ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r3, _0810A1CC @ =sub_810A1D0
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl DisplayItemMessageInBag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A1BC: .4byte gSpecialVar_ItemId
-_0810A1C0: .4byte gStringVar1
-_0810A1C4: .4byte gStringVar4
-_0810A1C8: .4byte gText_ItemCantBeHeld
-_0810A1CC: .4byte sub_810A1D0
- thumb_func_end sub_810A18C
-
- thumb_func_start sub_810A1D0
-sub_810A1D0: @ 810A1D0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810A1F4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810A1EE
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810A1F8
-_0810A1EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A1F4: .4byte gMain
- thumb_func_end sub_810A1D0
-
- thumb_func_start sub_810A1F8
-sub_810A1F8: @ 810A1F8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, r0, 2
- add r5, r8
- lsls r5, 3
- ldr r0, _0810A27C @ =gTasks+0x8
- adds r5, r0
- movs r0, 0x5
- bl sub_810BA9C
- ldrb r0, [r5]
- ldr r4, _0810A280 @ =gUnknown_203ACFC
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r6, r4, 0
- adds r6, 0xE
- adds r1, r2, r6
- movs r3, 0x8
- adds r3, r4
- mov r9, r3
- add r2, r9
- bl DestroyListMenuTask
- ldrb r0, [r4, 0x6]
- bl sub_8108DC8
- ldrb r0, [r4, 0x6]
- bl sub_81089F4
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _0810A284 @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r6, r2, r6
- ldrh r1, [r6]
- add r2, r9
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r5]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- mov r0, r8
- bl sub_810910C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A27C: .4byte gTasks+0x8
-_0810A280: .4byte gUnknown_203ACFC
-_0810A284: .4byte gMultiuseListMenuTemplate
- thumb_func_end sub_810A1F8
-
- thumb_func_start sub_810A288
-sub_810A288: @ 810A288
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _0810A2D8 @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4]
- mov r6, sp
- adds r6, 0x2
- mov r1, sp
- adds r2, r6, 0
- bl ListMenuGetScrollAndRow
- mov r0, sp
- ldrh r0, [r0]
- ldrh r1, [r6]
- adds r0, r1
- bl sub_8108818
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r4]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- adds r0, r5, 0
- bl sub_810910C
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A2D8: .4byte gTasks+0x8
- thumb_func_end sub_810A288
-
- thumb_func_start sub_810A2DC
-sub_810A2DC: @ 810A2DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldr r1, _0810A320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- adds r0, r4, 0
- bl sub_810910C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A320: .4byte gTasks
- thumb_func_end sub_810A2DC
-
- thumb_func_start sub_810A324
-sub_810A324: @ 810A324
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0810A36C @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- bl ItemId_GetBattleFunc
- cmp r0, 0
- beq _0810A364
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- ldrh r0, [r5]
- bl ItemId_GetBattleFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_0810A364:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A36C: .4byte gSpecialVar_ItemId
- thumb_func_end sub_810A324
-
- thumb_func_start sub_810A370
-sub_810A370: @ 810A370
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _0810A3BC @ =gTasks+0x8
- mov r9, r0
- adds r1, r7, r0
- ldr r2, _0810A3C0 @ =gUnknown_203ACFC
- mov r8, r2
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r1, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- adds r0, r4, 0
- bl itemid_80BF6D8_mail_related
- lsls r0, 24
- cmp r0, 0
- bne _0810A3CC
- ldr r2, _0810A3C4 @ =gUnknown_841630F
- ldr r3, _0810A3C8 @ =sub_810A1D0
- adds r0, r5, 0
- movs r1, 0x2
- bl DisplayItemMessageInBag
- b _0810A426
- .align 2, 0
-_0810A3BC: .4byte gTasks+0x8
-_0810A3C0: .4byte gUnknown_203ACFC
-_0810A3C4: .4byte gUnknown_841630F
-_0810A3C8: .4byte sub_810A1D0
-_0810A3CC:
- movs r0, 0xB6
- lsls r0, 1 @ ITEM_TM_CASE
- cmp r4, r0
- bne _0810A3DC
- ldr r0, _0810A3D8 @ =sub_810A434
- b _0810A3E4
- .align 2, 0
-_0810A3D8: .4byte sub_810A434
-_0810A3DC:
- ldr r0, _0810A3F0 @ =ITEM_BERRY_POUCH
- cmp r4, r0
- bne _0810A3F8
- ldr r0, _0810A3F4 @ =sub_810A448
-_0810A3E4:
- bl ItemMenu_SetExitCallback
- adds r0, r5, 0
- bl ItemMenu_StartFadeToExitCallback
- b _0810A426
- .align 2, 0
-_0810A3F0: .4byte 0x0000016d @ ITEM_BERRY_POUCH
-_0810A3F4: .4byte sub_810A448
-_0810A3F8:
- mov r1, r8
- ldrh r0, [r1, 0x6]
- cmp r0, 0x1
- beq _0810A420
- adds r0, r6, 0
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _0810A420
- bl sub_8108CB4
- mov r0, r9
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810A41C @ =ItemMenu_StartFadeToExitCallback
- str r1, [r0]
- b _0810A426
- .align 2, 0
-_0810A41C: .4byte ItemMenu_StartFadeToExitCallback
-_0810A420:
- adds r0, r5, 0
- bl sub_810A18C
-_0810A426:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810A370
-
- thumb_func_start sub_810A434
-sub_810A434: @ 810A434
- push {lr}
- ldr r1, _0810A444 @ =sub_810A45C
- movs r0, 0x1
- movs r2, 0
- bl InitTMCase
- pop {r0}
- bx r0
- .align 2, 0
-_0810A444: .4byte sub_810A45C
- thumb_func_end sub_810A434
-
- thumb_func_start sub_810A448
-sub_810A448: @ 810A448
- push {lr}
- ldr r1, _0810A458 @ =sub_810A45C
- movs r0, 0x1
- movs r2, 0
- bl InitBerryPouch
- pop {r0}
- bx r0
- .align 2, 0
-_0810A458: .4byte sub_810A45C
- thumb_func_end sub_810A448
-
- thumb_func_start sub_810A45C
-sub_810A45C: @ 810A45C
- push {lr}
- bl CB2_SelectBagItemToGive
- pop {r0}
- bx r0
- thumb_func_end sub_810A45C
-
- thumb_func_start sub_810A468
-sub_810A468: @ 810A468
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _0810A4B4 @ =gTasks+0x8
- mov r9, r0
- adds r1, r7, r0
- ldr r2, _0810A4B8 @ =gUnknown_203ACFC
- mov r8, r2
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r1, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- adds r0, r4, 0
- bl ItemIsMail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810A4C4
- ldr r2, _0810A4BC @ =gUnknown_841630F
- ldr r3, _0810A4C0 @ =sub_810A1D0
- adds r0, r5, 0
- movs r1, 0x2
- bl DisplayItemMessageInBag
- b _0810A51E
- .align 2, 0
-_0810A4B4: .4byte gTasks+0x8
-_0810A4B8: .4byte gUnknown_203ACFC
-_0810A4BC: .4byte gUnknown_841630F
-_0810A4C0: .4byte sub_810A1D0
-_0810A4C4:
- movs r0, 0xB6
- lsls r0, 1 @ ITEM_TM_CASE
- cmp r4, r0
- bne _0810A4D4
- ldr r0, _0810A4D0 @ =sub_810A52C
- b _0810A4DC
- .align 2, 0
-_0810A4D0: .4byte sub_810A52C
-_0810A4D4:
- ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH
- cmp r4, r0
- bne _0810A4F0
- ldr r0, _0810A4EC @ =sub_810A540
-_0810A4DC:
- bl ItemMenu_SetExitCallback
- adds r0, r5, 0
- bl ItemMenu_StartFadeToExitCallback
- b _0810A51E
- .align 2, 0
-_0810A4E8: .4byte 0x0000016d
-_0810A4EC: .4byte sub_810A540
-_0810A4F0:
- mov r1, r8
- ldrh r0, [r1, 0x6]
- cmp r0, 0x1
- beq _0810A518
- adds r0, r6, 0
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _0810A518
- bl sub_8108CB4
- mov r0, r9
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810A514 @ =ItemMenu_StartFadeToExitCallback
- str r1, [r0]
- b _0810A51E
- .align 2, 0
-_0810A514: .4byte ItemMenu_StartFadeToExitCallback
-_0810A518:
- adds r0, r5, 0
- bl sub_810A18C
-_0810A51E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810A468
-
- thumb_func_start sub_810A52C
-sub_810A52C: @ 810A52C
- push {lr}
- ldr r1, _0810A53C @ =sub_810A554
- movs r0, 0x3
- movs r2, 0
- bl InitTMCase
- pop {r0}
- bx r0
- .align 2, 0
-_0810A53C: .4byte sub_810A554
- thumb_func_end sub_810A52C
-
- thumb_func_start sub_810A540
-sub_810A540: @ 810A540
- push {lr}
- ldr r1, _0810A550 @ =sub_810A554
- movs r0, 0x3
- movs r2, 0
- bl InitBerryPouch
- pop {r0}
- bx r0
- .align 2, 0
-_0810A550: .4byte sub_810A554
- thumb_func_end sub_810A540
-
- thumb_func_start sub_810A554
-sub_810A554: @ 810A554
- push {lr}
- ldr r2, _0810A564 @ =sub_808CE60
- movs r0, 0x4
- movs r1, 0x3
- bl GoToBagMenu
- pop {r0}
- bx r0
- .align 2, 0
-_0810A564: .4byte sub_808CE60
- thumb_func_end sub_810A554
-
- thumb_func_start sub_810A568
-sub_810A568: @ 810A568
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810A58C @ =gTasks+0x8
- adds r4, r0, r1
- ldr r6, _0810A590 @ =gSpecialVar_ItemId
- ldrh r1, [r6]
- movs r0, 0xB6
- lsls r0, 1
- cmp r1, r0
- bne _0810A598
- ldr r0, _0810A594 @ =sub_810A654
- b _0810A5A0
- .align 2, 0
-_0810A58C: .4byte gTasks+0x8
-_0810A590: .4byte gSpecialVar_ItemId
-_0810A594: .4byte sub_810A654
-_0810A598:
- ldr r0, _0810A5AC @ =0x0000016d
- cmp r1, r0
- bne _0810A5B4
- ldr r0, _0810A5B0 @ =sub_810A668
-_0810A5A0:
- bl ItemMenu_SetExitCallback
- adds r0, r5, 0
- bl ItemMenu_StartFadeToExitCallback
- b _0810A63E
- .align 2, 0
-_0810A5AC: .4byte 0x0000016d
-_0810A5B0: .4byte sub_810A668
-_0810A5B4:
- ldrh r0, [r6]
- bl itemid_get_market_price
- lsls r0, 16
- cmp r0, 0
- bne _0810A5F8
- ldrh r0, [r6]
- ldr r1, _0810A5E8 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0810A5EC @ =gStringVar4
- ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810A5F4 @ =sub_810A1F8
- adds r0, r5, 0
- adds r2, r4, 0
- bl DisplayItemMessageInBag
- b _0810A63E
- .align 2, 0
-_0810A5E8: .4byte gStringVar1
-_0810A5EC: .4byte gStringVar4
-_0810A5F0: .4byte gText_OhNoICantBuyThat
-_0810A5F4: .4byte sub_810A1F8
-_0810A5F8:
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0810A610
- bl sub_810BB40
- adds r0, r5, 0
- bl sub_810A690
- b _0810A63E
-_0810A610:
- cmp r0, 0x63
- ble _0810A618
- movs r0, 0x63
- strh r0, [r4, 0x4]
-_0810A618:
- ldrh r0, [r6]
- ldr r1, _0810A644 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0810A648 @ =gStringVar4
- ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810A650 @ =sub_810A770
- adds r0, r7, 0
- adds r2, r4, 0
- bl DisplayItemMessageInBag
-_0810A63E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A644: .4byte gStringVar1
-_0810A648: .4byte gStringVar4
-_0810A64C: .4byte gText_HowManyWouldYouLikeToSell
-_0810A650: .4byte sub_810A770
- thumb_func_end sub_810A568
-
- thumb_func_start sub_810A654
-sub_810A654: @ 810A654
- push {lr}
- ldr r1, _0810A664 @ =sub_810A67C
- movs r0, 0x2
- movs r2, 0
- bl InitTMCase
- pop {r0}
- bx r0
- .align 2, 0
-_0810A664: .4byte sub_810A67C
- thumb_func_end sub_810A654
-
- thumb_func_start sub_810A668
-sub_810A668: @ 810A668
- push {lr}
- ldr r1, _0810A678 @ =sub_810A67C
- movs r0, 0x2
- movs r2, 0
- bl InitBerryPouch
- pop {r0}
- bx r0
- .align 2, 0
-_0810A678: .4byte sub_810A67C
- thumb_func_end sub_810A668
-
- thumb_func_start sub_810A67C
-sub_810A67C: @ 810A67C
- push {lr}
- ldr r2, _0810A68C @ =CB2_ReturnToField
- movs r0, 0x2
- movs r1, 0x3
- bl GoToBagMenu
- pop {r0}
- bx r0
- .align 2, 0
-_0810A68C: .4byte CB2_ReturnToField
- thumb_func_end sub_810A67C
-
- thumb_func_start sub_810A690
-sub_810A690: @ 810A690
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _0810A6F4 @ =gTasks+0x8
- adds r4, r0
- ldr r6, _0810A6F8 @ =gStringVar3
- ldr r0, _0810A6FC @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _0810A700 @ =gStringVar4
- ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810A708 @ =sub_810A70C
- adds r0, r5, 0
- adds r2, r4, 0
- bl DisplayItemMessageInBag
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A6F4: .4byte gTasks+0x8
-_0810A6F8: .4byte gStringVar3
-_0810A6FC: .4byte gUnknown_203ACFC
-_0810A700: .4byte gStringVar4
-_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
-_0810A708: .4byte sub_810A70C
- thumb_func_end sub_810A690
-
- thumb_func_start sub_810A70C
-sub_810A70C: @ 810A70C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810A71C @ =gUnknown_8452F58
- bl sub_810BB14
- pop {r0}
- bx r0
- .align 2, 0
-_0810A71C: .4byte gUnknown_8452F58
- thumb_func_end sub_810A70C
-
- thumb_func_start sub_810A720
-sub_810A720: @ 810A720
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _0810A76C @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x2
- bl sub_810BA3C
- movs r0, 0x5
- bl sub_810BA9C
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r4]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- adds r0, r5, 0
- bl sub_810910C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A76C: .4byte gTasks+0x8
- thumb_func_end sub_810A720
-
- thumb_func_start sub_810A770
-sub_810A770: @ 810A770
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r0, _0810A81C @ =gTasks+0x8
- mov r8, r0
- adds r2, r5, 0
- add r2, r8
- mov r9, r2
- movs r0, 0
- movs r1, 0x1
- bl sub_810B9DC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810A820 @ =gStringVar1
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r6, _0810A824 @ =gStringVar4
- ldr r1, _0810A828 @ =gText_TimesStrVar1
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r6, 0
- movs r3, 0x4
- bl sub_810B8F0
- ldr r0, _0810A82C @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r3, r9
- ldrh r1, [r3, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r2, r9
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- muls r0, r1
- bl sub_810A834
- bl sub_810BB40
- bl sub_8108908
- movs r0, 0x8
- negs r0, r0
- add r8, r0
- add r5, r8
- ldr r0, _0810A830 @ =sub_810A85C
- str r0, [r5]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A81C: .4byte gTasks+0x8
-_0810A820: .4byte gStringVar1
-_0810A824: .4byte gStringVar4
-_0810A828: .4byte gText_TimesStrVar1
-_0810A82C: .4byte gUnknown_203ACFC
-_0810A830: .4byte sub_810A85C
- thumb_func_end sub_810A770
-
- thumb_func_start sub_810A834
-sub_810A834: @ 810A834
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0
- bl sub_810BAD8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- str r1, [sp]
- movs r1, 0x38
- movs r2, 0xA
- adds r3, r4, 0
- bl PrintMoneyAmount
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810A834
-
- thumb_func_start sub_810A85C
-sub_810A85C: @ 810A85C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0810A8B4 @ =gTasks+0x8
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x10
- ldrh r1, [r5, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810A8BC
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r1, 0x2
- bl sub_81097E4
- ldr r0, _0810A8B8 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- muls r0, r1
- bl sub_810A834
- b _0810A93A
- .align 2, 0
-_0810A8B4: .4byte gTasks+0x8
-_0810A8B8: .4byte gUnknown_203ACFC
-_0810A8BC:
- ldr r0, _0810A8EC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810A8F0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- bl sub_8108978
- adds r0, r4, 0
- bl sub_810A690
- b _0810A93A
- .align 2, 0
-_0810A8EC: .4byte gMain
-_0810A8F0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810A93A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_810BA3C
- movs r0, 0x2
- bl sub_810BA3C
- movs r0, 0x5
- bl sub_810BA9C
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- bl sub_8108978
- ldrb r0, [r5]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- adds r0, r6, 0
- bl sub_810910C
-_0810A93A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810A85C
-
- thumb_func_start sub_810A940
-sub_810A940: @ 810A940
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _0810A9B4 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldr r0, _0810A9B8 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _0810A9BC @ =gStringVar1
- bl CopyItemName
- ldr r6, _0810A9C0 @ =gStringVar3
- ldr r0, _0810A9C4 @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x6]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _0810A9C8 @ =gStringVar4
- ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, _0810A9D0 @ =sub_810A9D4
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl DisplayItemMessageInBag
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A9B4: .4byte gTasks+0x8
-_0810A9B8: .4byte gSpecialVar_ItemId
-_0810A9BC: .4byte gStringVar1
-_0810A9C0: .4byte gStringVar3
-_0810A9C4: .4byte gUnknown_203ACFC
-_0810A9C8: .4byte gStringVar4
-_0810A9CC: .4byte gText_TurnedOverItemsWorthYen
-_0810A9D0: .4byte sub_810A9D4
- thumb_func_end sub_810A940
-
- thumb_func_start sub_810A9D4
-sub_810A9D4: @ 810A9D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- ldr r0, _0810AAD8 @ =gTasks+0x8
- mov r10, r0
- adds r1, r6, 0
- add r1, r10
- mov r8, r1
- movs r0, 0xF8
- bl PlaySE
- ldr r5, _0810AADC @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- bl RemoveBagItem
- ldr r3, _0810AAE0 @ =gSaveBlock1Ptr
- ldr r4, [r3]
- movs r7, 0xA4
- lsls r7, 2
- adds r4, r7
- ldrh r0, [r5]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r2, r8
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- muls r1, r0
- adds r0, r4, 0
- bl AddMoney
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- movs r2, 0x2
- bl RecordItemPurchase
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _0810AAE4 @ =gUnknown_203ACFC
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r4, 0
- adds r5, 0xE
- adds r1, r2, r5
- movs r3, 0x8
- adds r3, r4
- mov r9, r3
- add r2, r9
- bl DestroyListMenuTask
- ldrb r0, [r4, 0x6]
- bl sub_8108DC8
- ldrb r0, [r4, 0x6]
- bl sub_81089F4
- ldr r0, _0810AAE8 @ =gUnknown_203AD10
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r2, r5
- ldrh r1, [r5]
- add r2, r9
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x2
- bl sub_810BAD8
- lsls r0, 24
- lsrs r0, 24
- bl sub_810BB74
- movs r0, 0x2
- bl sub_810BAD8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _0810AAE0 @ =gSaveBlock1Ptr
- ldr r0, [r2]
- adds r0, r7
- bl GetMoney
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- bl PrintMoneyAmountInMoneyBox
- movs r3, 0x8
- negs r3, r3
- add r10, r3
- add r6, r10
- ldr r0, _0810AAF0 @ =sub_810AAF4
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AAD8: .4byte gTasks+0x8
-_0810AADC: .4byte gSpecialVar_ItemId
-_0810AAE0: .4byte gSaveBlock1Ptr
-_0810AAE4: .4byte gUnknown_203ACFC
-_0810AAE8: .4byte gUnknown_203AD10
-_0810AAEC: .4byte gMultiuseListMenuTemplate
-_0810AAF0: .4byte sub_810AAF4
- thumb_func_end sub_810A9D4
-
- thumb_func_start sub_810AAF4
-sub_810AAF4: @ 810AAF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810AB38 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810AB0E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810AB32
-_0810AB0E:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- bl sub_810BA3C
- movs r0, 0x2
- bl PutWindowTilemap
- ldr r0, _0810AB3C @ =gUnknown_203AD10
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x5]
- adds r0, r4, 0
- bl sub_810A1F8
-_0810AB32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AB38: .4byte gMain
-_0810AB3C: .4byte gUnknown_203AD10
- thumb_func_end sub_810AAF4
-
- thumb_func_start sub_810AB40
-sub_810AB40: @ 810AB40
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r4, r0, 3
- ldr r5, _0810AB64 @ =gTasks+0x8
- adds r1, r4, r5
- movs r0, 0x1
- strh r0, [r1, 0x10]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- bne _0810AB68
- adds r0, r2, 0
- bl sub_810AC40
- b _0810AB7A
- .align 2, 0
-_0810AB64: .4byte gTasks+0x8
-_0810AB68:
- ldrh r0, [r1, 0x2]
- ldr r1, _0810AB80 @ =gUnknown_841638F
- bl sub_810971C
- adds r0, r5, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, _0810AB84 @ =sub_810AB88
- str r1, [r0]
-_0810AB7A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AB80: .4byte gUnknown_841638F
-_0810AB84: .4byte sub_810AB88
- thumb_func_end sub_810AB40
-
- thumb_func_start sub_810AB88
-sub_810AB88: @ 810AB88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810ABB8 @ =gTasks+0x8
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x10
- ldrh r1, [r4, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810ABBC
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl sub_81097E4
- b _0810AC38
- .align 2, 0
-_0810ABB8: .4byte gTasks+0x8
-_0810ABBC:
- ldr r0, _0810ABFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810AC00
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- bl sub_810BAD8
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl sub_810BA3C
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- bl sub_8108978
- adds r0, r5, 0
- bl sub_810AC40
- b _0810AC38
- .align 2, 0
-_0810ABFC: .4byte gMain
-_0810AC00:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810AC38
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl sub_810BA3C
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- ldrb r0, [r4]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- bl sub_8108978
- adds r0, r6, 0
- bl sub_810910C
-_0810AC38:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810AB88
-
- thumb_func_start sub_810AC40
-sub_810AC40: @ 810AC40
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, _0810ACCC @ =gTasks+0x8
- mov r9, r0
- mov r7, r8
- add r7, r9
- ldr r5, _0810ACD0 @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- ldrh r1, [r7, 0x10]
- bl AddPCItem
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bne _0810ACEC
- ldrh r2, [r5]
- ldr r3, _0810ACD4 @ =0x0000ffff
- movs r0, 0x1C
- movs r1, 0
- bl ItemUse_SetQuestLogEvent
- ldrh r0, [r5]
- ldr r1, _0810ACD8 @ =gStringVar1
- bl CopyItemName
- ldr r0, _0810ACDC @ =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r7, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810ACE0 @ =gStringVar4
- ldr r1, _0810ACE4 @ =gUnknown_84163A7
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x6
- movs r1, 0x3
- bl sub_810B9DC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- str r1, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_810B8F0
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _0810ACE8 @ =sub_8109F44
- str r1, [r0]
- b _0810ACF8
- .align 2, 0
-_0810ACCC: .4byte gTasks+0x8
-_0810ACD0: .4byte gSpecialVar_ItemId
-_0810ACD4: .4byte 0x0000ffff
-_0810ACD8: .4byte gStringVar1
-_0810ACDC: .4byte gStringVar2
-_0810ACE0: .4byte gStringVar4
-_0810ACE4: .4byte gUnknown_84163A7
-_0810ACE8: .4byte sub_8109F44
-_0810ACEC:
- ldr r2, _0810AD08 @ =gUnknown_84163BB
- ldr r3, _0810AD0C @ =sub_810A1D0
- adds r0, r4, 0
- movs r1, 0x2
- bl DisplayItemMessageInBag
-_0810ACF8:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AD08: .4byte gUnknown_84163BB
-_0810AD0C: .4byte sub_810A1D0
- thumb_func_end sub_810AC40
-
- thumb_func_start UseRegisteredKeyItemOnField
-UseRegisteredKeyItemOnField: @ 810AD10
- push {r4-r6,lr}
- bl InUnionRoom
- cmp r0, 0x1
- bne _0810AD1E
- movs r0, 0
- b _0810ADA0
-_0810AD1E:
- bl DismissMapNamePopup
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r4, _0810AD80 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r5, _0810AD84 @ =0x00000296
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0
- beq _0810AD98
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bne _0810AD90
- bl ScriptContext2_Enable
- bl FreezeObjectEvents
- bl sub_805C270
- bl sub_805C780
- ldr r2, _0810AD88 @ =gSpecialVar_ItemId
- ldr r0, [r4]
- adds r0, r5
- ldrh r1, [r0]
- strh r1, [r2]
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810AD8C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0xE]
- b _0810AD9E
- .align 2, 0
-_0810AD80: .4byte gSaveBlock1Ptr
-_0810AD84: .4byte 0x00000296
-_0810AD88: .4byte gSpecialVar_ItemId
-_0810AD8C: .4byte gTasks
-_0810AD90:
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0
- strh r1, [r0]
-_0810AD98:
- ldr r0, _0810ADA8 @ =gUnknown_81A77A0
- bl ScriptContext1_SetupScript
-_0810AD9E:
- movs r0, 0x1
-_0810ADA0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0810ADA8: .4byte gUnknown_81A77A0
- thumb_func_end UseRegisteredKeyItemOnField
-
- thumb_func_start sub_810ADAC
-sub_810ADAC: @ 810ADAC
- push {lr}
- ldr r0, _0810ADCC @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- beq _0810ADC6
- cmp r0, 0x8
- beq _0810ADC6
- cmp r0, 0x7
- beq _0810ADC6
- cmp r0, 0x9
- beq _0810ADC6
- cmp r0, 0xA
- bne _0810ADD0
-_0810ADC6:
- movs r0, 0x1
- b _0810ADD2
- .align 2, 0
-_0810ADCC: .4byte gUnknown_203ACFC
-_0810ADD0:
- movs r0, 0
-_0810ADD2:
- pop {r1}
- bx r1
- thumb_func_end sub_810ADAC
-
- thumb_func_start sub_810ADD8
-sub_810ADD8: @ 810ADD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _0810AEBC @ =gUnknown_203AD2C
- movs r0, 0xB2
- lsls r0, 1
- bl AllocZeroed
- str r0, [r5]
- ldr r4, _0810AEC0 @ =gSaveBlock1Ptr
- ldr r1, [r4]
- movs r2, 0xC4
- lsls r2, 2
- adds r1, r2
- movs r2, 0xA8
- bl memcpy
- ldr r0, [r5]
- adds r0, 0xA8
- ldr r1, [r4]
- movs r3, 0xEE
- lsls r3, 2
- adds r1, r3
- movs r2, 0x78
- bl memcpy
- ldr r0, [r5]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- ldr r1, [r4]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- movs r2, 0x34
- bl memcpy
- ldr r2, [r5]
- ldr r0, [r4]
- ldr r3, _0810AEC4 @ =0x00000296
- adds r0, r3
- ldrh r1, [r0]
- movs r3, 0xB0
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _0810AEC8 @ =gUnknown_203ACFC
- ldrh r0, [r1, 0x6]
- adds r3, 0x2
- adds r2, r3
- strh r0, [r2]
- movs r4, 0
- mov r8, r5
- movs r7, 0xAA
- lsls r7, 1
- movs r0, 0xE
- adds r0, r1
- mov r12, r0
- movs r6, 0xAD
- lsls r6, 1
- adds r5, r1, 0
- adds r5, 0x8
-_0810AE54:
- mov r1, r8
- ldr r2, [r1]
- lsls r3, r4, 1
- adds r0, r2, r7
- adds r0, r3
- ldrh r1, [r5]
- strh r1, [r0]
- adds r2, r6
- adds r2, r3
- mov r3, r12
- ldrh r0, [r3]
- strh r0, [r2]
- movs r0, 0x2
- add r12, r0
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- bls _0810AE54
- ldr r4, _0810AEC0 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r1, 0xC4
- lsls r1, 2
- adds r0, r1
- movs r1, 0x2A
- bl ClearItemSlots
- ldr r0, [r4]
- movs r2, 0xEE
- lsls r2, 2
- adds r0, r2
- movs r1, 0x1E
- bl ClearItemSlots
- ldr r0, [r4]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- movs r1, 0xD
- bl ClearItemSlots
- ldr r0, [r4]
- ldr r1, _0810AEC4 @ =0x00000296
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bl sub_81089BC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AEBC: .4byte gUnknown_203AD2C
-_0810AEC0: .4byte gSaveBlock1Ptr
-_0810AEC4: .4byte 0x00000296
-_0810AEC8: .4byte gUnknown_203ACFC
- thumb_func_end sub_810ADD8
-
- thumb_func_start sub_810AECC
-sub_810AECC: @ 810AECC
- push {r4-r7,lr}
- ldr r4, _0810AF64 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r1, 0xC4
- lsls r1, 2
- adds r0, r1
- ldr r5, _0810AF68 @ =gUnknown_203AD2C
- ldr r1, [r5]
- movs r2, 0xA8
- bl memcpy
- ldr r0, [r4]
- movs r2, 0xEE
- lsls r2, 2
- adds r0, r2
- ldr r1, [r5]
- adds r1, 0xA8
- movs r2, 0x78
- bl memcpy
- ldr r0, [r4]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- ldr r1, [r5]
- movs r2, 0x90
- lsls r2, 1
- adds r1, r2
- movs r2, 0x34
- bl memcpy
- ldr r1, [r4]
- ldr r2, [r5]
- movs r3, 0xB0
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- ldr r3, _0810AF6C @ =0x00000296
- adds r1, r3
- strh r0, [r1]
- ldr r1, _0810AF70 @ =gUnknown_203ACFC
- movs r3, 0xB1
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1, 0x6]
- movs r4, 0
- mov r12, r5
- adds r3, r1, 0
- adds r3, 0x8
- mov r7, r12
- movs r6, 0xAA
- lsls r6, 1
- movs r5, 0xAD
- lsls r5, 1
-_0810AF3A:
- lsls r2, r4, 1
- ldr r1, [r7]
- adds r0, r1, r6
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- adds r1, r5
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r3, 0x6]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- bls _0810AF3A
- mov r1, r12
- ldr r0, [r1]
- bl Free
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AF64: .4byte gSaveBlock1Ptr
-_0810AF68: .4byte gUnknown_203AD2C
-_0810AF6C: .4byte 0x00000296
-_0810AF70: .4byte gUnknown_203ACFC
- thumb_func_end sub_810AECC
-
- thumb_func_start sub_810AF74
-sub_810AF74: @ 810AF74
- push {lr}
- bl sub_810ADD8
- movs r0, 0xD
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0x4
- movs r1, 0x1
- bl AddBagItem
- ldr r2, _0810AF98 @ =SetCB2ToReshowScreenAfterMenu2
- movs r0, 0x6
- movs r1, 0
- bl GoToBagMenu
- pop {r0}
- bx r0
- .align 2, 0
-_0810AF98: .4byte SetCB2ToReshowScreenAfterMenu2
- thumb_func_end sub_810AF74
-
- thumb_func_start sub_810AF9C
-sub_810AF9C: @ 810AF9C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r6, r0, 3
- ldr r7, _0810AFCC @ =gTasks+0x8
- adds r5, r6, r7
- ldr r0, _0810AFD0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810B06A
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- cmp r1, 0xCC
- beq _0810AFE4
- cmp r1, 0xCC
- bgt _0810AFD4
- cmp r1, 0x66
- beq _0810AFE4
- b _0810B064
- .align 2, 0
-_0810AFCC: .4byte gTasks+0x8
-_0810AFD0: .4byte gPaletteFade
-_0810AFD4:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _0810AFF6
- adds r0, 0x66
- cmp r1, r0
- beq _0810B01C
- b _0810B064
-_0810AFE4:
- movs r0, 0xF6
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_81091D0
- b _0810B064
-_0810AFF6:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x1
- bl sub_8109140
- ldr r1, _0810B018 @ =gSpecialVar_ItemId
- movs r0, 0x4
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8109890
- b _0810B064
- .align 2, 0
-_0810B018: .4byte gSpecialVar_ItemId
-_0810B01C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- bl sub_810AECC
- bl sub_8108CB4
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810B060 @ =sub_810B070
- str r1, [r0]
- b _0810B06A
- .align 2, 0
-_0810B060: .4byte sub_810B070
-_0810B064:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
-_0810B06A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810AF9C
-
- thumb_func_start sub_810B070
-sub_810B070: @ 810B070
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810B0A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810B0A8 @ =sub_810B0AC
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B0A4: .4byte gTasks
-_0810B0A8: .4byte sub_810B0AC
- thumb_func_end sub_810B070
-
- thumb_func_start sub_810B0AC
-sub_810B0AC: @ 810B0AC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810B0DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810B0FE
- ldr r0, _0810B0E0 @ =sub_8108CFC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810B0FE
- ldr r0, _0810B0E4 @ =gUnknown_203AD10
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _0810B0E8
- bl SetMainCallback2
- b _0810B0F0
- .align 2, 0
-_0810B0DC: .4byte gPaletteFade
-_0810B0E0: .4byte sub_8108CFC
-_0810B0E4: .4byte gUnknown_203AD10
-_0810B0E8:
- ldr r0, _0810B104 @ =gUnknown_203ACFC
- ldr r0, [r0]
- bl SetMainCallback2
-_0810B0F0:
- bl sub_8108978
- bl sub_8108B04
- adds r0, r4, 0
- bl DestroyTask
-_0810B0FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B104: .4byte gUnknown_203ACFC
- thumb_func_end sub_810B0AC
-
- thumb_func_start sub_810B108
-sub_810B108: @ 810B108
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_810ADD8
- movs r0, 0xD
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0xE
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0xB7
- lsls r0, 1
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0xB6
- lsls r0, 1
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0x4
- movs r1, 0x5
- bl AddBagItem
- movs r0, 0x3
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0x8
- movs r1, 0x1
- bl AddBagItem
- cmp r4, 0x7
- beq _0810B160
- cmp r4, 0x8
- beq _0810B16C
- ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV
- adds r0, r4, 0
- b _0810B170
- .align 2, 0
-_0810B15C: .4byte CB2_ReturnToTeachyTV
-_0810B160:
- ldr r2, _0810B168 @ =SetCB2ToReshowScreenAfterMenu2
- movs r0, 0x7
- b _0810B170
- .align 2, 0
-_0810B168: .4byte SetCB2ToReshowScreenAfterMenu2
-_0810B16C:
- ldr r2, _0810B17C @ =SetCB2ToReshowScreenAfterMenu2
- movs r0, 0x8
-_0810B170:
- movs r1, 0
- bl GoToBagMenu
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B17C: .4byte SetCB2ToReshowScreenAfterMenu2
- thumb_func_end sub_810B108
-
- thumb_func_start sub_810B180
-sub_810B180: @ 810B180
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810B198 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0810B19C
- movs r0, 0
- b _0810B1BC
- .align 2, 0
-_0810B198: .4byte gMain
-_0810B19C:
- bl sub_810AECC
- bl SetTeachyTvControllerModeToResume
- ldr r0, _0810B1C4 @ =gUnknown_203AD10
- ldr r1, [r0]
- ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV
- str r0, [r1]
- ldr r1, _0810B1CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810B1D0 @ =sub_810B070
- str r1, [r0]
- movs r0, 0x1
-_0810B1BC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810B1C4: .4byte gUnknown_203AD10
-_0810B1C8: .4byte CB2_ReturnToTeachyTV
-_0810B1CC: .4byte gTasks
-_0810B1D0: .4byte sub_810B070
- thumb_func_end sub_810B180
-
- thumb_func_start sub_810B1D4
-sub_810B1D4: @ 810B1D4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r6, _0810B220 @ =gTasks+0x8
- adds r7, r5, r6
- ldr r0, _0810B224 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810B1F2
- b _0810B372
-_0810B1F2:
- adds r0, r4, 0
- bl sub_810B180
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B202
- b _0810B372
-_0810B202:
- movs r0, 0x10
- ldrsh r1, [r7, r0]
- movs r0, 0xCC
- lsls r0, 1
- cmp r1, r0
- beq _0810B29E
- cmp r1, r0
- bgt _0810B232
- cmp r1, 0xCC
- beq _0810B266
- cmp r1, 0xCC
- bgt _0810B228
- cmp r1, 0x66
- beq _0810B254
- b _0810B36C
- .align 2, 0
-_0810B220: .4byte gTasks+0x8
-_0810B224: .4byte gPaletteFade
-_0810B228:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _0810B290
- b _0810B36C
-_0810B232:
- movs r0, 0x99
- lsls r0, 2
- cmp r1, r0
- beq _0810B32C
- cmp r1, r0
- bgt _0810B246
- subs r0, 0x66
- cmp r1, r0
- beq _0810B32C
- b _0810B36C
-_0810B246:
- ldr r0, _0810B250 @ =0x000002ca
- cmp r1, r0
- bne _0810B24E
- b _0810B344
-_0810B24E:
- b _0810B36C
- .align 2, 0
-_0810B250: .4byte 0x000002ca
-_0810B254:
- movs r0, 0xF6
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_81091D0
- b _0810B36C
-_0810B266:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r7]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x1
- bl sub_8109140
- ldr r1, _0810B28C @ =gSpecialVar_ItemId
- movs r2, 0xB7
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8109890
- b _0810B36C
- .align 2, 0
-_0810B28C: .4byte gSpecialVar_ItemId
-_0810B290:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl Menu_MoveCursorNoWrapAround
- b _0810B36C
-_0810B29E:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810B318 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _0810B31C @ =gSpecialVar_ItemId
- ldrh r1, [r1]
- ldr r2, _0810B320 @ =0x00000296
- adds r0, r2
- strh r1, [r0]
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r7]
- ldr r4, _0810B324 @ =gUnknown_203ACFC
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r4, 0
- adds r5, 0xE
- adds r1, r2, r5
- adds r6, r4, 0
- adds r6, 0x8
- adds r2, r6
- bl DestroyListMenuTask
- ldrb r0, [r4, 0x6]
- bl sub_810842C
- ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
- ldrh r2, [r4, 0x6]
- lsls r2, 1
- adds r5, r2, r5
- ldrh r1, [r5]
- adds r2, r6
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r0, 0
- bl sub_8109140
- ldrb r0, [r7]
- movs r1, 0x1
- bl bag_menu_print_cursor_
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- b _0810B36C
- .align 2, 0
-_0810B318: .4byte gSaveBlock1Ptr
-_0810B31C: .4byte gSpecialVar_ItemId
-_0810B320: .4byte 0x00000296
-_0810B324: .4byte gUnknown_203ACFC
-_0810B328: .4byte gMultiuseListMenuTemplate
-_0810B32C:
- ldr r1, _0810B340 @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x80
- strh r0, [r1, 0x30]
- ldrb r0, [r7]
- bl ListMenu_ProcessInput
- b _0810B36C
- .align 2, 0
-_0810B340: .4byte gMain
-_0810B344:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r7]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- bl sub_810AECC
- bl sub_8108CB4
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _0810B368 @ =sub_810B070
- str r1, [r0]
- b _0810B372
- .align 2, 0
-_0810B368: .4byte sub_810B070
-_0810B36C:
- ldrh r0, [r7, 0x10]
- adds r0, 0x1
- strh r0, [r7, 0x10]
-_0810B372:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810B1D4
-
- thumb_func_start sub_810B378
-sub_810B378: @ 810B378
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0810B3B0 @ =gTasks+0x8
- adds r4, r6, r7
- ldr r0, _0810B3B4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810B396
- b _0810B4B6
-_0810B396:
- adds r0, r5, 0
- bl sub_810B180
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B3B8
- bl FreeRestoreBattleData
- bl LoadPlayerParty
- b _0810B4B6
- .align 2, 0
-_0810B3B0: .4byte gTasks+0x8
-_0810B3B4: .4byte gPaletteFade
-_0810B3B8:
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r0, 0xCC
- lsls r0, 1
- cmp r1, r0
- beq _0810B41A
- cmp r1, r0
- bgt _0810B3E0
- cmp r1, 0xCC
- beq _0810B408
- cmp r1, 0xCC
- bgt _0810B3D6
- cmp r1, 0x66
- beq _0810B408
- b _0810B4B0
-_0810B3D6:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _0810B41A
- b _0810B4B0
-_0810B3E0:
- movs r0, 0x99
- lsls r0, 2
- cmp r1, r0
- beq _0810B428
- cmp r1, r0
- bgt _0810B3F4
- subs r0, 0x66
- cmp r1, r0
- beq _0810B428
- b _0810B4B0
-_0810B3F4:
- ldr r0, _0810B404 @ =0x000002ca
- cmp r1, r0
- beq _0810B440
- adds r0, 0x66
- cmp r1, r0
- beq _0810B468
- b _0810B4B0
- .align 2, 0
-_0810B404: .4byte 0x000002ca
-_0810B408:
- movs r0, 0xF6
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_81091D0
- b _0810B4B0
-_0810B41A:
- ldr r1, _0810B424 @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x80
- b _0810B430
- .align 2, 0
-_0810B424: .4byte gMain
-_0810B428:
- ldr r1, _0810B43C @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x40
-_0810B430:
- strh r0, [r1, 0x30]
- ldrb r0, [r4]
- bl ListMenu_ProcessInput
- b _0810B4B0
- .align 2, 0
-_0810B43C: .4byte gMain
-_0810B440:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x1
- bl sub_8109140
- ldr r1, _0810B464 @ =gSpecialVar_ItemId
- movs r0, 0x4
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_8109890
- b _0810B4B0
- .align 2, 0
-_0810B464: .4byte gSpecialVar_ItemId
-_0810B468:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- bl sub_810AECC
- bl sub_8108CB4
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810B4AC @ =sub_810B070
- str r1, [r0]
- b _0810B4B6
- .align 2, 0
-_0810B4AC: .4byte sub_810B070
-_0810B4B0:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_0810B4B6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810B378
-
- thumb_func_start sub_810B4BC
-sub_810B4BC: @ 810B4BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, _0810B504 @ =gTasks+0x8
- mov r9, r0
- mov r5, r8
- add r5, r9
- ldr r0, _0810B508 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r7, 0x80
- adds r0, r7, 0
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0810B5C6
- adds r0, r4, 0
- bl sub_810B180
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B50C
- bl FreeRestoreBattleData
- bl LoadPlayerParty
- b _0810B5C6
- .align 2, 0
-_0810B504: .4byte gTasks+0x8
-_0810B508: .4byte gPaletteFade
-_0810B50C:
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- cmp r1, 0xCC
- beq _0810B53C
- cmp r1, 0xCC
- bgt _0810B51E
- cmp r1, 0x66
- beq _0810B528
- b _0810B5C0
-_0810B51E:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _0810B564
- b _0810B5C0
-_0810B528:
- ldr r0, _0810B538 @ =gMain
- strh r6, [r0, 0x2E]
- strh r7, [r0, 0x30]
- ldrb r0, [r5]
- bl ListMenu_ProcessInput
- b _0810B5C0
- .align 2, 0
-_0810B538: .4byte gMain
-_0810B53C:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x1
- bl sub_8109140
- ldr r1, _0810B560 @ =gSpecialVar_ItemId
- movs r0, 0xE
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8109890
- b _0810B5C0
- .align 2, 0
-_0810B560: .4byte gSpecialVar_ItemId
-_0810B564:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- bl sub_810AECC
- ldr r1, _0810B5B0 @ =gItemUseCB
- ldr r0, _0810B5B4 @ =ItemUseCB_MedicineStep
- str r0, [r1]
- ldr r0, _0810B5B8 @ =ChooseMonForInBattleItem
- bl ItemMenu_SetExitCallback
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _0810B5BC @ =sub_810B070
- str r1, [r0]
- b _0810B5C6
- .align 2, 0
-_0810B5B0: .4byte gItemUseCB
-_0810B5B4: .4byte ItemUseCB_MedicineStep
-_0810B5B8: .4byte ChooseMonForInBattleItem
-_0810B5BC: .4byte sub_810B070
-_0810B5C0:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
-_0810B5C6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810B4BC
-
- thumb_func_start sub_810B5D4
-sub_810B5D4: @ 810B5D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, _0810B624 @ =gTasks+0x8
- mov r9, r0
- mov r6, r8
- add r6, r9
- ldr r0, _0810B628 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r7, 0x80
- adds r0, r7, 0
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0810B6E6
- adds r0, r4, 0
- bl sub_810B180
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810B6E6
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- cmp r1, 0xCC
- beq _0810B64E
- cmp r1, 0xCC
- bgt _0810B62C
- cmp r1, 0x66
- beq _0810B63C
- b _0810B6E0
- .align 2, 0
-_0810B624: .4byte gTasks+0x8
-_0810B628: .4byte gPaletteFade
-_0810B62C:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _0810B660
- adds r0, 0x66
- cmp r1, r0
- beq _0810B68C
- b _0810B6E0
-_0810B63C:
- movs r0, 0xF6
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_81091D0
- b _0810B6E0
-_0810B64E:
- ldr r0, _0810B65C @ =gMain
- strh r5, [r0, 0x2E]
- strh r7, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenu_ProcessInput
- b _0810B6E0
- .align 2, 0
-_0810B65C: .4byte gMain
-_0810B660:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r6]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r0, 0x1
- bl sub_8109140
- ldr r1, _0810B688 @ =gSpecialVar_ItemId
- movs r2, 0xB6
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8109890
- b _0810B6E0
- .align 2, 0
-_0810B688: .4byte gSpecialVar_ItemId
-_0810B68C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- bl sub_810BA3C
- movs r0, 0x6
- bl sub_810BA3C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r6]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- bl sub_810AECC
- ldr r0, _0810B6D4 @ =gUnknown_203AD10
- ldr r1, [r0]
- ldr r0, _0810B6D8 @ =PokeDude_InitTMCase
- str r0, [r1]
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _0810B6DC @ =sub_810B070
- str r1, [r0]
- b _0810B6E6
- .align 2, 0
-_0810B6D4: .4byte gUnknown_203AD10
-_0810B6D8: .4byte PokeDude_InitTMCase
-_0810B6DC: .4byte sub_810B070
-_0810B6E0:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
-_0810B6E6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810B5D4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 1be118154..7e95af9f4 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -1633,3 +1633,10 @@
compare VAR_RESULT, 2
goto_if_eq \dest
.endm
+
+ .macro braillemessage_wait text:req
+ setvar VAR_0x8006, 0
+ braillemessage \text
+ getbraillestringwidth \text
+ call EventScript_BrailleCursorWaitButton
+ .endm
diff --git a/asm/overworld.s b/asm/overworld.s
index 0b2e99ebf..92ffbd038 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -4757,7 +4757,7 @@ _0805713C: .4byte gPlayerAvatar
thumb_func_start sub_8057140
sub_8057140: @ 8057140
push {lr}
- ldr r0, _08057158 @ =gUnknown_300502C
+ ldr r0, _08057158 @ =gLocalLinkPlayerId
ldrb r0, [r0]
bl sub_8058504
lsls r0, 24
@@ -4766,13 +4766,13 @@ sub_8057140: @ 8057140
pop {r0}
bx r0
.align 2, 0
-_08057158: .4byte gUnknown_300502C
+_08057158: .4byte gLocalLinkPlayerId
thumb_func_end sub_8057140
thumb_func_start sub_805715C
sub_805715C: @ 805715C
push {lr}
- ldr r0, _08057174 @ =gUnknown_300502C
+ ldr r0, _08057174 @ =gLocalLinkPlayerId
ldrb r0, [r0]
bl sub_8058504
lsls r0, 24
@@ -4781,7 +4781,7 @@ sub_805715C: @ 805715C
pop {r0}
bx r0
.align 2, 0
-_08057174: .4byte gUnknown_300502C
+_08057174: .4byte gLocalLinkPlayerId
thumb_func_end sub_805715C
thumb_func_start sub_8057178
@@ -4794,7 +4794,7 @@ sub_8057178: @ 8057178
adds r1, r4, 0
bl GetCameraFocusCoords
mov r2, sp
- ldr r0, _080571A4 @ =gUnknown_300502C
+ ldr r0, _080571A4 @ =gLocalLinkPlayerId
ldrb r1, [r0]
ldrh r0, [r2]
adds r0, r1
@@ -4807,7 +4807,7 @@ sub_8057178: @ 8057178
pop {r0}
bx r0
.align 2, 0
-_080571A4: .4byte gUnknown_300502C
+_080571A4: .4byte gLocalLinkPlayerId
thumb_func_end sub_8057178
thumb_func_start sub_80571A8
@@ -4823,13 +4823,13 @@ sub_80571A8: @ 80571A8
bl GetCameraFocusCoords
mov r3, sp
mov r2, sp
- ldr r0, _08057224 @ =gUnknown_300502C
+ ldr r0, _08057224 @ =gLocalLinkPlayerId
ldrb r1, [r0]
ldrh r0, [r2]
subs r0, r1
strh r0, [r3]
movs r6, 0
- ldr r0, _08057228 @ =gUnknown_3005030
+ ldr r0, _08057228 @ =gFieldLinkPlayerCount
mov r8, r4
ldrb r0, [r0]
cmp r6, r0
@@ -4859,7 +4859,7 @@ _080571D8:
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
- ldr r0, _08057228 @ =gUnknown_3005030
+ ldr r0, _08057228 @ =gFieldLinkPlayerCount
ldrb r0, [r0]
cmp r6, r0
bcc _080571D8
@@ -4872,8 +4872,8 @@ _08057212:
pop {r0}
bx r0
.align 2, 0
-_08057224: .4byte gUnknown_300502C
-_08057228: .4byte gUnknown_3005030
+_08057224: .4byte gLocalLinkPlayerId
+_08057228: .4byte gFieldLinkPlayerCount
_0805722C: .4byte gLinkPlayers
thumb_func_end sub_80571A8
@@ -4881,7 +4881,7 @@ _0805722C: .4byte gLinkPlayers
sub_8057230: @ 8057230
push {r4,r5,lr}
movs r4, 0
- ldr r0, _08057264 @ =gUnknown_3005030
+ ldr r0, _08057264 @ =gFieldLinkPlayerCount
ldrb r0, [r0]
cmp r4, r0
bcs _0805725E
@@ -4898,7 +4898,7 @@ _0805723E:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, _08057264 @ =gUnknown_3005030
+ ldr r0, _08057264 @ =gFieldLinkPlayerCount
ldrb r0, [r0]
cmp r4, r0
bcc _0805723E
@@ -4907,7 +4907,7 @@ _0805725E:
pop {r0}
bx r0
.align 2, 0
-_08057264: .4byte gUnknown_3005030
+_08057264: .4byte gFieldLinkPlayerCount
_08057268: .4byte gLinkPlayers
thumb_func_end sub_8057230
@@ -5647,7 +5647,7 @@ c1_link_related: @ 8057884
cmp r0, 0
bne _080578C0
_0805789E:
- ldr r0, _080578CC @ =gUnknown_300502C
+ ldr r0, _080578CC @ =gLocalLinkPlayerId
ldrb r4, [r0]
ldr r0, _080578D0 @ =gLinkPartnersHeldKeys
adds r1, r4, 0
@@ -5666,7 +5666,7 @@ _080578C0:
bx r0
.align 2, 0
_080578C8: .4byte gWirelessCommType
-_080578CC: .4byte gUnknown_300502C
+_080578CC: .4byte gLocalLinkPlayerId
_080578D0: .4byte gLinkPartnersHeldKeys
_080578D4: .4byte gUnknown_3000E84
thumb_func_end c1_link_related
@@ -5753,7 +5753,7 @@ sub_8057954: @ 8057954
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
- ldr r0, _08057974 @ =gUnknown_3005030
+ ldr r0, _08057974 @ =gFieldLinkPlayerCount
ldrb r2, [r0]
movs r1, 0
cmp r1, r2
@@ -5767,7 +5767,7 @@ _08057966:
movs r0, 0
b _08057984
.align 2, 0
-_08057974: .4byte gUnknown_3005030
+_08057974: .4byte gFieldLinkPlayerCount
_08057978: .4byte gUnknown_3000E80
_0805797C:
adds r1, 0x1
@@ -5786,7 +5786,7 @@ sub_805798C: @ 805798C
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
- ldr r0, _080579AC @ =gUnknown_3005030
+ ldr r0, _080579AC @ =gFieldLinkPlayerCount
ldrb r2, [r0]
movs r1, 0
cmp r1, r2
@@ -5800,7 +5800,7 @@ _0805799E:
movs r0, 0x1
b _080579BC
.align 2, 0
-_080579AC: .4byte gUnknown_3005030
+_080579AC: .4byte gFieldLinkPlayerCount
_080579B0: .4byte gUnknown_3000E80
_080579B4:
adds r1, 0x1
@@ -6499,7 +6499,7 @@ sub_8057EC0: @ 8057EC0
cmp r2, r1
bne _08057EE6
ldr r1, _08057F08 @ =gUnknown_3000E80
- ldr r0, _08057F0C @ =gUnknown_300502C
+ ldr r0, _08057F0C @ =gLocalLinkPlayerId
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -6511,7 +6511,7 @@ _08057EE6:
cmp r1, r0
bne _08057F14
ldr r1, _08057F08 @ =gUnknown_3000E80
- ldr r0, _08057F0C @ =gUnknown_300502C
+ ldr r0, _08057F0C @ =gLocalLinkPlayerId
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -6524,7 +6524,7 @@ _08057EFC:
_08057F00: .4byte gUnknown_3000E84
_08057F04: .4byte sub_8057E1C
_08057F08: .4byte gUnknown_3000E80
-_08057F0C: .4byte gUnknown_300502C
+_08057F0C: .4byte gLocalLinkPlayerId
_08057F10: .4byte sub_8057E10
_08057F14:
movs r0, 0x82
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 358ea8b32..115c9567b 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1619,7 +1619,7 @@ _0808C594: .4byte gUnknown_8418690
_0808C598:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
movs r0, 0x4
strh r0, [r5, 0x8]
b _0808C69C
@@ -22001,7 +22001,7 @@ GetItemIconPic: @ 8096674
lsls r0, 16
lsrs r0, 16
movs r1, 0
- bl sub_8098974
+ bl GetItemIconGfxPtr
pop {r1}
bx r1
thumb_func_end GetItemIconPic
@@ -22012,7 +22012,7 @@ GetItemIconPalette: @ 8096684
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl sub_8098974
+ bl GetItemIconGfxPtr
pop {r1}
bx r1
thumb_func_end GetItemIconPalette
diff --git a/asm/script_movement.s b/asm/script_movement.s
index 7a7adec6c..7b3a70a25 100644
--- a/asm/script_movement.s
+++ b/asm/script_movement.s
@@ -482,7 +482,7 @@ _0809777C:
lsls r0, 2
ldr r1, _080977A8 @ =gObjectEvents
adds r0, r1
- bl npc_sync_anim_pause_bits
+ bl UnfreezeObjectEvent
_08097792:
adds r0, r5, 0x1
lsls r0, 24
diff --git a/asm/union_room.s b/asm/union_room.s
deleted file mode 100644
index cd549c173..000000000
--- a/asm/union_room.s
+++ /dev/null
@@ -1,11147 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_811586C
-sub_811586C: @ 811586C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r5, r2, 24
- adds r0, r6, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- lsls r4, 8
- movs r0, 0x80
- lsls r0, 3
- cmp r4, r0
- beq _081158BC
- cmp r4, r0
- bgt _0811589E
- movs r0, 0x80
- lsls r0, 2
- cmp r4, r0
- beq _081158B0
- b _0811590E
-_0811589E:
- movs r0, 0x94
- lsls r0, 6
- cmp r4, r0
- beq _081158CC
- movs r0, 0xD4
- lsls r0, 6
- cmp r4, r0
- beq _081158F0
- b _0811590E
-_081158B0:
- ldr r1, _081158B8 @ =gUnknown_845742C
- subs r0, r5, 0x1
- lsls r0, 2
- b _081158D4
- .align 2, 0
-_081158B8: .4byte gUnknown_845742C
-_081158BC:
- ldr r1, _081158C8 @ =gUnknown_845742C
- subs r0, r5, 0x1
- lsls r0, 2
- adds r1, 0x14
- b _081158D4
- .align 2, 0
-_081158C8: .4byte gUnknown_845742C
-_081158CC:
- ldr r1, _081158EC @ =gUnknown_845742C
- subs r0, r5, 0x1
- lsls r0, 2
- adds r1, 0x28
-_081158D4:
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x2
- movs r3, 0
- bl sub_811A444
- b _0811590E
- .align 2, 0
-_081158EC: .4byte gUnknown_845742C
-_081158F0:
- ldr r1, _08115920 @ =gUnknown_845742C
- subs r0, r5, 0x1
- lsls r0, 2
- adds r1, 0x3C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x2
- movs r3, 0
- bl sub_811A444
-_0811590E:
- adds r0, r6, 0
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08115920: .4byte gUnknown_845742C
- thumb_func_end sub_811586C
-
- thumb_func_start sub_8115924
-sub_8115924: @ 8115924
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08115994 @ =gSaveBlock2Ptr
- ldr r2, [r6]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- mov r8, r0
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x2
- movs r3, 0
- bl sub_811A444
- add r5, sp, 0x14
- ldr r1, _08115998 @ =gUnknown_84571B4
- adds r0, r5, 0
- bl StringCopy
- ldr r0, [r6]
- adds r0, 0xA
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- add r0, sp, 0x8
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- add r1, sp, 0x8
- bl StringAppend
- movs r0, 0x10
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_811A444
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08115994: .4byte gSaveBlock2Ptr
-_08115998: .4byte gUnknown_84571B4
- thumb_func_end sub_8115924
-
- thumb_func_start sub_811599C
-sub_811599C: @ 811599C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1, 0x1
- cmp r0, 0x15
- bhi _08115A18
- lsls r0, 2
- ldr r1, _081159B4 @ =_081159B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081159B4: .4byte _081159B8
- .align 2, 0
-_081159B8:
- .4byte _08115A10
- .4byte _08115A10
- .4byte _08115A10
- .4byte _08115A10
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A10
- .4byte _08115A10
- .4byte _08115A10
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A18
- .4byte _08115A10
- .4byte _08115A10
-_08115A10:
- ldr r0, _08115A1C @ =gStringVar4
- ldr r1, _08115A20 @ =gUnknown_8457234
- bl StringExpandPlaceholders
-_08115A18:
- pop {r0}
- bx r0
- .align 2, 0
-_08115A1C: .4byte gStringVar4
-_08115A20: .4byte gUnknown_8457234
- thumb_func_end sub_811599C
-
- thumb_func_start TryBecomeLinkLeader
-TryBecomeLinkLeader: @ 8115A24
- push {lr}
- ldr r0, _08115A54 @ =sub_8115A68
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115A58 @ =gUnknown_203B05C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08115A5C @ =gTasks+0x8
- adds r1, r0
- str r1, [r2]
- ldr r0, _08115A60 @ =gUnknown_3002024
- str r1, [r0]
- movs r0, 0
- strb r0, [r1, 0xC]
- strb r0, [r1, 0xD]
- ldr r1, _08115A64 @ =gSpecialVar_Result
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08115A54: .4byte sub_8115A68
-_08115A58: .4byte gUnknown_203B05C
-_08115A5C: .4byte gTasks+0x8
-_08115A60: .4byte gUnknown_3002024
-_08115A64: .4byte gSpecialVar_Result
- thumb_func_end TryBecomeLinkLeader
-
- thumb_func_start sub_8115A68
-sub_8115A68: @ 8115A68
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08115A88 @ =gUnknown_203B05C
- ldr r5, [r0]
- ldrb r0, [r5, 0xC]
- cmp r0, 0x1E
- bls _08115A7C
- b _081161D8
-_08115A7C:
- lsls r0, 2
- ldr r1, _08115A8C @ =_08115A90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08115A88: .4byte gUnknown_203B05C
-_08115A8C: .4byte _08115A90
- .align 2, 0
-_08115A90:
- .4byte _08115B0C
- .4byte _081161D8
- .4byte _081161D8
- .4byte _08115B5C
- .4byte _08115C60
- .4byte _08115CE8
- .4byte _08115D04
- .4byte _08115E24
- .4byte _081161D8
- .4byte _08115D94
- .4byte _08115DAC
- .4byte _08115E40
- .4byte _08115EF4
- .4byte _0811600A
- .4byte _08116028
- .4byte _0811603A
- .4byte _08116058
- .4byte _08116112
- .4byte _08116128
- .4byte _081160A2
- .4byte _081160C0
- .4byte _08116168
- .4byte _08116194
- .4byte _08116168
- .4byte _0811617E
- .4byte _081161D8
- .4byte _081161AC
- .4byte _081161D8
- .4byte _081161D8
- .4byte _08115DEC
- .4byte _0811614C
-_08115B0C:
- ldr r3, _08115B4C @ =gUnknown_203B058
- ldr r2, _08115B50 @ =gUnknown_8456CD8
- ldr r1, _08115B54 @ =gSpecialVar_0x8004
- ldrh r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- strb r0, [r3]
- ldr r4, _08115B58 @ =gUnknown_203B059
- ldrh r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsrs r0, 8
- strb r0, [r4]
- ldrb r0, [r3]
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- bl sub_800B1F4
- bl OpenLink
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- bl sub_80FBB8C
- movs r0, 0x3
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08115B4C: .4byte gUnknown_203B058
-_08115B50: .4byte gUnknown_8456CD8
-_08115B54: .4byte gSpecialVar_0x8004
-_08115B58: .4byte gUnknown_203B059
-_08115B5C:
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0x4]
- movs r0, 0xA0
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0xA0
- bl AllocZeroed
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r5]
- movs r1, 0x5
- bl sub_811A5E4
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x10
- bl sub_80FCD50
- ldr r1, [r5]
- movs r3, 0
- movs r0, 0
- strh r0, [r1, 0x18]
- ldr r2, [r5]
- ldrb r1, [r2, 0x1A]
- subs r0, 0x4
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1A]
- ldr r2, [r5]
- ldrb r1, [r2, 0x1A]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1A]
- ldr r0, [r5]
- strb r3, [r0, 0x1B]
- ldr r0, [r5, 0x4]
- movs r1, 0xFF
- bl sub_811A054
- strb r0, [r5, 0x17]
- ldr r0, _08115C48 @ =gUnknown_8456CD0
- bl AddWindow
- strb r0, [r5, 0x10]
- ldr r0, _08115C4C @ =gUnknown_8456CFC
- bl AddWindow
- strb r0, [r5, 0xF]
- ldr r0, _08115C50 @ =gUnknown_8456D04
- bl AddWindow
- strb r0, [r5, 0x11]
- ldrb r0, [r5, 0x10]
- movs r1, 0x22
- bl FillWindowPixelBuffer
- ldrb r0, [r5, 0x10]
- ldr r2, _08115C54 @ =gUnknown_845747C
- movs r1, 0x2
- str r1, [sp]
- movs r4, 0x4
- str r4, [sp, 0x4]
- movs r1, 0
- movs r3, 0x8
- bl sub_811A444
- ldrb r0, [r5, 0x10]
- bl PutWindowTilemap
- ldrb r0, [r5, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r5, 0xF]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, _08115C58 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, _08115C5C @ =gUnknown_8456D34
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldrb r1, [r5, 0xF]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r5, 0x12]
- ldrb r0, [r5, 0x11]
- movs r1, 0
- bl DrawStdWindowFrame
- ldrb r0, [r5, 0x11]
- bl PutWindowTilemap
- ldrb r0, [r5, 0x11]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- strb r0, [r5, 0x13]
- strb r4, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08115C48: .4byte gUnknown_8456CD0
-_08115C4C: .4byte gUnknown_8456CFC
-_08115C50: .4byte gUnknown_8456D04
-_08115C54: .4byte gUnknown_845747C
-_08115C58: .4byte gMultiuseListMenuTemplate
-_08115C5C: .4byte gUnknown_8456D34
-_08115C60:
- ldr r0, _08115C98 @ =gStringVar1
- ldr r2, _08115C9C @ =gUnknown_8456C74
- ldr r4, _08115CA0 @ =gUnknown_203B058
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r0, _08115CA4 @ =gUnknown_203B059
- ldrb r2, [r0]
- lsrs r0, r2, 4
- cmp r0, 0
- beq _08115CC4
- ldrb r1, [r5, 0x13]
- subs r0, 0x1
- cmp r1, r0
- ble _08115CB0
- movs r0, 0xF
- ands r0, r2
- cmp r0, 0
- beq _08115CB0
- ldr r0, _08115CA8 @ =gStringVar4
- ldr r1, _08115CAC @ =gUnknown_8457264
- bl StringExpandPlaceholders
- b _08115CCC
- .align 2, 0
-_08115C98: .4byte gStringVar1
-_08115C9C: .4byte gUnknown_8456C74
-_08115CA0: .4byte gUnknown_203B058
-_08115CA4: .4byte gUnknown_203B059
-_08115CA8: .4byte gStringVar4
-_08115CAC: .4byte gUnknown_8457264
-_08115CB0:
- ldr r0, _08115CBC @ =gStringVar4
- ldr r1, _08115CC0 @ =gUnknown_8457234
- bl StringExpandPlaceholders
- b _08115CCC
- .align 2, 0
-_08115CBC: .4byte gStringVar4
-_08115CC0: .4byte gUnknown_8457234
-_08115CC4:
- ldr r0, _08115CE0 @ =gStringVar4
- ldrb r1, [r4]
- bl sub_811599C
-_08115CCC:
- ldrb r0, [r5, 0x11]
- ldr r1, _08115CE4 @ =gUnknown_203B059
- ldrb r1, [r1]
- ldrb r2, [r5, 0x13]
- bl sub_811586C
- movs r0, 0x5
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08115CE0: .4byte gStringVar4
-_08115CE4: .4byte gUnknown_203B059
-_08115CE8:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08115D00 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08115CFA
- b _081161D8
-_08115CFA:
- movs r0, 0x6
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08115D00: .4byte gStringVar4
-_08115D04:
- adds r0, r5, 0
- movs r1, 0x7
- movs r2, 0xA
- bl sub_8116444
- ldr r0, _08115D24 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08115D40
- ldrb r0, [r5, 0x13]
- cmp r0, 0x1
- bne _08115D28
- movs r0, 0x17
- b _08115D3E
- .align 2, 0
-_08115D24: .4byte gMain
-_08115D28:
- ldr r0, _08115D38 @ =gUnknown_203B059
- ldrb r1, [r0]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08115D3C
- movs r0, 0x1E
- b _08115D3E
- .align 2, 0
-_08115D38: .4byte gUnknown_203B059
-_08115D3C:
- movs r0, 0x13
-_08115D3E:
- strb r0, [r5, 0xC]
-_08115D40:
- ldr r0, _08115D8C @ =gUnknown_203B059
- ldrb r2, [r0]
- lsrs r0, r2, 4
- cmp r0, 0
- beq _08115D76
- ldrb r1, [r5, 0x13]
- subs r0, 0x1
- cmp r1, r0
- ble _08115D76
- movs r4, 0xF
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08115D76
- bl sub_80FC1CC
- cmp r0, 0
- beq _08115D76
- ldr r0, _08115D90 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08115D76
- strb r4, [r5, 0xC]
- bl sub_80F8F5C
-_08115D76:
- ldrb r0, [r5, 0xC]
- cmp r0, 0x6
- beq _08115D7E
- b _081161D8
-_08115D7E:
- bl sub_80FA5D4
- cmp r0, 0
- bne _08115D88
- b _081161D8
-_08115D88:
- b _08115EEE
- .align 2, 0
-_08115D8C: .4byte gUnknown_203B059
-_08115D90: .4byte gMain
-_08115D94:
- bl sub_80FA5D4
- cmp r0, 0
- beq _08115D9E
- b _081161D8
-_08115D9E:
- movs r0, 0x6
- strb r0, [r5, 0xC]
- ldr r0, [r5]
- bl sub_81165E8
- strb r0, [r5, 0x13]
- b _081161D8
-_08115DAC:
- movs r3, 0
- ldr r0, _08115DE4 @ =gUnknown_203B058
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x2
- bne _08115DBC
- movs r3, 0x1
-_08115DBC:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r2, _08115DE8 @ =gUnknown_845767C
- lsls r1, r3, 2
- adds r1, r2
- ldr r1, [r1]
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08115DD4
- b _081161D8
-_08115DD4:
- ldr r0, [r5]
- bl sub_81165E8
- strb r0, [r5, 0x13]
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- b _0811610C
- .align 2, 0
-_08115DE4: .4byte gUnknown_203B058
-_08115DE8: .4byte gUnknown_845767C
-_08115DEC:
- ldr r0, _08115E1C @ =gUnknown_203B059
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x2
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r3, r0, 31
- adds r0, r5, 0
- adds r0, 0xD
- ldr r2, _08115E20 @ =gUnknown_845767C
- lsls r1, r3, 2
- adds r1, r2
- ldr r1, [r1]
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08115E16
- b _081161D8
-_08115E16:
- movs r0, 0x15
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08115E1C: .4byte gUnknown_203B059
-_08115E20: .4byte gUnknown_845767C
-_08115E24:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08115E3C @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08115E36
- b _081161D8
-_08115E36:
- movs r0, 0xB
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08115E3C: .4byte gStringVar4
-_08115E40:
- adds r4, r5, 0
- adds r4, 0xD
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r5, 0x13]
- lsls r2, 5
- ldr r1, [r5]
- adds r1, r2
- adds r1, 0x10
- bl sub_80FA634
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08115EC0
- cmp r1, r0
- bgt _08115E84
- subs r0, 0x2
- cmp r1, r0
- beq _08115EEE
- b _081161D8
-_08115E84:
- cmp r1, 0
- beq _08115E8E
- cmp r1, 0x1
- beq _08115EC0
- b _081161D8
-_08115E8E:
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- movs r0, 0x5
- strb r0, [r5, 0x19]
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- ldr r2, [r5]
- adds r2, r0
- adds r2, 0x10
- movs r0, 0x5
- b _08115EE4
-_08115EC0:
- movs r0, 0x6
- strb r0, [r5, 0x19]
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- ldr r2, [r5]
- adds r2, r0
- adds r2, 0x10
- movs r0, 0x6
-_08115EE4:
- bl sub_80FA670
- movs r0, 0xC
- strb r0, [r5, 0xC]
- b _081161D8
-_08115EEE:
- movs r0, 0x9
- strb r0, [r5, 0xC]
- b _081161D8
-_08115EF4:
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r5, 0x13]
- lsls r2, 5
- ldr r1, [r5]
- adds r1, r2
- adds r1, 0x10
- bl sub_80FA6FC
- cmp r0, 0x1
- bne _08115FFA
- ldrb r0, [r5, 0x19]
- cmp r0, 0x5
- bne _08115FB4
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- strb r0, [r1, 0x1B]
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- ldrb r0, [r5, 0x13]
- adds r0, 0x1
- strb r0, [r5, 0x13]
- ldr r1, _08115F58 @ =gUnknown_203B059
- ldrb r1, [r1]
- movs r3, 0xF
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0
- ands r0, r1
- cmp r2, r0
- bne _08115FF0
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08115F54
- cmp r2, 0x4
- bne _08115F5C
-_08115F54:
- strb r3, [r5, 0xC]
- b _08115F90
- .align 2, 0
-_08115F58: .4byte gUnknown_203B059
-_08115F5C:
- ldr r4, _08115FA4 @ =gStringVar1
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r1, r0
- subs r1, 0x10
- adds r0, r4, 0
- bl StringCopy7
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- subs r0, 0x1
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, _08115FA8 @ =gStringVar4
- ldr r1, _08115FAC @ =gUnknown_8457554
- bl StringExpandPlaceholders
- movs r0, 0xD
- strb r0, [r5, 0xC]
-_08115F90:
- bl sub_80F8F5C
- ldrb r0, [r5, 0x11]
- ldr r1, _08115FB0 @ =gUnknown_203B059
- ldrb r1, [r1]
- ldrb r2, [r5, 0x13]
- bl sub_811586C
- b _08115FF4
- .align 2, 0
-_08115FA4: .4byte gStringVar1
-_08115FA8: .4byte gStringVar4
-_08115FAC: .4byte gUnknown_8457554
-_08115FB0: .4byte gUnknown_203B059
-_08115FB4:
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r4, r0, 0
- adds r4, 0x10
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80FBD4C
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- adds r1, r0
- ldrb r2, [r1, 0x1A]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1A]
- ldr r0, [r5]
- bl sub_81165E8
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
-_08115FF0:
- movs r0, 0x4
- strb r0, [r5, 0xC]
-_08115FF4:
- movs r0, 0
- strb r0, [r5, 0x19]
- b _081161D8
-_08115FFA:
- cmp r0, 0x2
- beq _08116000
- b _081161D8
-_08116000:
- movs r0, 0
- movs r1, 0
- bl sub_80FB9E4
- b _0811610C
-_0811600A:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08116024 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _0811601C
- b _081161D8
-_0811601C:
- movs r0, 0xE
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08116024: .4byte gStringVar4
-_08116028:
- ldrb r0, [r5, 0xE]
- adds r0, 0x1
- strb r0, [r5, 0xE]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x78
- bhi _08116038
- b _081161D8
-_08116038:
- b _0811607E
-_0811603A:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08116054 @ =gUnknown_8457514
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _0811604C
- b _081161D8
-_0811604C:
- movs r0, 0x10
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08116054: .4byte gUnknown_8457514
-_08116058:
- adds r0, r5, 0
- adds r0, 0xD
- movs r1, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0811607E
- cmp r1, 0
- bgt _08116078
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08116084
- b _081161D8
-_08116078:
- cmp r1, 0x1
- beq _08116084
- b _081161D8
-_0811607E:
- movs r0, 0x11
- strb r0, [r5, 0xC]
- b _081161D8
-_08116084:
- ldr r0, _08116098 @ =gUnknown_203B059
- ldrb r1, [r0]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0811609C
- movs r0, 0x1E
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08116098: .4byte gUnknown_203B059
-_0811609C:
- movs r0, 0x13
- strb r0, [r5, 0xC]
- b _081161D8
-_081160A2:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _081160BC @ =gUnknown_8457530
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _081160B4
- b _081161D8
-_081160B4:
- movs r0, 0x14
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_081160BC: .4byte gUnknown_8457530
-_081160C0:
- adds r0, r5, 0
- adds r0, 0xD
- movs r1, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0811615C
- cmp r1, 0
- bgt _081160E0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081160E4
- b _081161D8
-_081160E0:
- cmp r1, 0x1
- bne _081161D8
-_081160E4:
- ldr r0, _081160F8 @ =gUnknown_203B059
- ldrb r2, [r0]
- movs r0, 0xF0
- ands r0, r2
- cmp r0, 0
- beq _081160FC
- movs r0, 0xF
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_081160F8: .4byte gUnknown_203B059
-_081160FC:
- movs r3, 0xF
- ldrb r1, [r5, 0x13]
- adds r0, r3, 0
- ands r0, r2
- cmp r1, r0
- bne _0811610C
- strb r3, [r5, 0xC]
- b _081161D8
-_0811610C:
- movs r0, 0x4
- strb r0, [r5, 0xC]
- b _081161D8
-_08116112:
- adds r0, r5, 0
- movs r1, 0x7
- movs r2, 0x17
- bl sub_8116444
- lsls r0, 24
- cmp r0, 0
- bne _081161D8
- movs r0, 0x12
- strb r0, [r5, 0xC]
- b _081161D8
-_08116128:
- bl sub_80F8F40
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08116144
- movs r0, 0
- bl sub_80F8F7C
- cmp r0, 0
- beq _081161D8
- movs r0, 0x1A
- strb r0, [r5, 0xC]
- b _081161D8
-_08116144:
- movs r0, 0x1D
- strb r0, [r5, 0xC]
- strb r1, [r5, 0xD]
- b _081161D8
-_0811614C:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08116164 @ =gUnknown_8457610
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _081161D8
-_0811615C:
- movs r0, 0x17
- strb r0, [r5, 0xC]
- b _081161D8
- .align 2, 0
-_08116164: .4byte gUnknown_8457610
-_08116168:
- bl DestroyWirelessStatusIndicatorSprite
- bl sub_80F8DC0
- adds r0, r5, 0
- bl sub_81161E4
- ldrb r0, [r5, 0xC]
- adds r0, 0x1
- strb r0, [r5, 0xC]
- b _081161D8
-_0811617E:
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _08116190 @ =gSpecialVar_Result
- movs r0, 0x5
- strh r0, [r1]
- b _081161D8
- .align 2, 0
-_08116190: .4byte gSpecialVar_Result
-_08116194:
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _081161A8 @ =gSpecialVar_Result
- movs r0, 0x8
- strh r0, [r1]
- b _081161D8
- .align 2, 0
-_081161A8: .4byte gSpecialVar_Result
-_081161AC:
- bl sub_80FBA00
- cmp r0, 0
- beq _081161BA
- movs r0, 0x1D
- strb r0, [r5, 0xC]
- b _081161D8
-_081161BA:
- ldr r0, _081161E0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _081161D8
- movs r0, 0x1
- bl sub_80FAFE0
- bl sub_8117990
- adds r0, r5, 0
- bl sub_81161E4
- adds r0, r4, 0
- bl DestroyTask
-_081161D8:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081161E0: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_8115A68
-
- thumb_func_start sub_81161E4
-sub_81161E4: @ 81161E4
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x11]
- bl ClearWindowTilemap
- ldrb r0, [r4, 0x11]
- movs r1, 0
- bl ClearStdWindowAndFrame
- ldrb r0, [r4, 0x12]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r4, 0x10]
- bl ClearWindowTilemap
- ldrb r0, [r4, 0xF]
- movs r1, 0
- bl ClearStdWindowAndFrame
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldrb r0, [r4, 0x11]
- bl RemoveWindow
- ldrb r0, [r4, 0xF]
- bl RemoveWindow
- ldrb r0, [r4, 0x10]
- bl RemoveWindow
- ldrb r0, [r4, 0x17]
- bl DestroyTask
- ldr r0, [r4, 0x8]
- bl Free
- ldr r0, [r4]
- bl Free
- ldr r0, [r4, 0x4]
- bl Free
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81161E4
-
- thumb_func_start sub_8116244
-sub_8116244: @ 8116244
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1, 0x1
- cmp r0, 0x15
- bhi _081162D8
- lsls r0, 2
- ldr r1, _0811625C @ =_08116260
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811625C: .4byte _08116260
- .align 2, 0
-_08116260:
- .4byte _081162B8
- .4byte _081162B8
- .4byte _081162D0
- .4byte _081162B8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D0
- .4byte _081162D0
- .4byte _081162D0
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162D8
- .4byte _081162C0
- .4byte _081162C0
-_081162B8:
- ldr r1, _081162BC @ =gUnknown_84574A0
- b _081162C2
- .align 2, 0
-_081162BC: .4byte gUnknown_84574A0
-_081162C0:
- ldr r1, _081162CC @ =gUnknown_84574C4
-_081162C2:
- adds r0, r2, 0
- bl StringExpandPlaceholders
- b _081162D8
- .align 2, 0
-_081162CC: .4byte gUnknown_84574C4
-_081162D0:
- ldr r1, _081162DC @ =gUnknown_84574EC
- adds r0, r2, 0
- bl StringExpandPlaceholders
-_081162D8:
- pop {r0}
- bx r0
- .align 2, 0
-_081162DC: .4byte gUnknown_84574EC
- thumb_func_end sub_8116244
-
- thumb_func_start sub_81162E0
-sub_81162E0: @ 81162E0
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x44
- beq _08116300
- cmp r1, 0x44
- bgt _081162F6
- cmp r1, 0x41
- beq _08116300
- b _08116312
-_081162F6:
- cmp r2, 0x45
- beq _0811630C
- cmp r2, 0x48
- beq _0811630C
- b _08116312
-_08116300:
- ldr r1, _08116308 @ =gUnknown_8457E28
- bl StringExpandPlaceholders
- b _08116312
- .align 2, 0
-_08116308: .4byte gUnknown_8457E28
-_0811630C:
- ldr r1, _08116318 @ =gUnknown_8457E44
- bl StringExpandPlaceholders
-_08116312:
- pop {r0}
- bx r0
- .align 2, 0
-_08116318: .4byte gUnknown_8457E44
- thumb_func_end sub_81162E0
-
- thumb_func_start sub_811631C
-sub_811631C: @ 811631C
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1, 0x1
- cmp r0, 0x15
- bhi _081163A8
- lsls r0, 2
- ldr r1, _08116334 @ =_08116338
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116334: .4byte _08116338
- .align 2, 0
-_08116338:
- .4byte _08116390
- .4byte _08116390
- .4byte _081163A0
- .4byte _08116390
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A0
- .4byte _081163A0
- .4byte _081163A0
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _081163A8
- .4byte _08116390
- .4byte _08116390
-_08116390:
- ldr r1, _0811639C @ =gUnknown_8459238
- adds r0, r2, 0
- bl StringExpandPlaceholders
- b _081163A8
- .align 2, 0
-_0811639C: .4byte gUnknown_8459238
-_081163A0:
- ldr r1, _081163AC @ =gUnknown_8459250
- adds r0, r2, 0
- bl StringExpandPlaceholders
-_081163A8:
- pop {r0}
- bx r0
- .align 2, 0
-_081163AC: .4byte gUnknown_8459250
- thumb_func_end sub_811631C
-
- thumb_func_start sub_81163B0
-sub_81163B0: @ 81163B0
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1, 0x1
- cmp r0, 0x15
- bhi _0811643C
- lsls r0, 2
- ldr r1, _081163C8 @ =_081163CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081163C8: .4byte _081163CC
- .align 2, 0
-_081163CC:
- .4byte _08116424
- .4byte _08116424
- .4byte _08116434
- .4byte _08116424
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _08116434
- .4byte _08116434
- .4byte _08116434
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _0811643C
- .4byte _08116424
- .4byte _08116424
-_08116424:
- ldr r1, _08116430 @ =gUnknown_84576AC
- adds r0, r2, 0
- bl StringExpandPlaceholders
- b _0811643C
- .align 2, 0
-_08116430: .4byte gUnknown_84576AC
-_08116434:
- ldr r1, _08116440 @ =gUnknown_84576C4
- adds r0, r2, 0
- bl StringExpandPlaceholders
-_0811643C:
- pop {r0}
- bx r0
- .align 2, 0
-_08116440: .4byte gUnknown_84576C4
- thumb_func_end sub_81163B0
-
- thumb_func_start sub_8116444
-sub_8116444: @ 8116444
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- ldr r0, [r5]
- bl sub_8116524
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08116460
- cmp r0, 0x2
- beq _081164AC
- b _081164C0
-_08116460:
- movs r0, 0x2
- bl PlaySE
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- ldr r4, _081164A0 @ =gStringVar2
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- ldr r1, [r5]
- adds r1, r0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy7
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, _081164A4 @ =gStringVar4
- ldr r1, _081164A8 @ =gUnknown_203B058
- ldrb r1, [r1]
- bl sub_8116244
- strb r6, [r5, 0xC]
- b _081164C0
- .align 2, 0
-_081164A0: .4byte gStringVar2
-_081164A4: .4byte gStringVar4
-_081164A8: .4byte gUnknown_203B058
-_081164AC:
- movs r0, 0
- movs r1, 0
- bl sub_80FB9E4
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- strb r4, [r5, 0xC]
- movs r0, 0x1
- b _081164C2
-_081164C0:
- movs r0, 0
-_081164C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8116444
-
- thumb_func_start sub_81164C8
-sub_81164C8: @ 81164C8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _081164F4 @ =gUnknown_203B05C
- ldr r3, [r0]
- movs r2, 0
- ldr r1, [r3]
- lsls r0, r4, 5
- adds r1, r0
- ldrb r0, [r1, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- beq _081164F8
- cmp r0, 0x2
- beq _08116502
- b _08116504
- .align 2, 0
-_081164F4: .4byte gUnknown_203B05C
-_081164F8:
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08116504
- movs r2, 0x2
- b _08116504
-_08116502:
- movs r2, 0x1
-_08116504:
- lsls r0, r4, 5
- ldr r3, [r3]
- adds r3, r0
- str r2, [sp]
- lsls r0, r4, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r6, 0
- bl sub_811A910
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81164C8
-
- thumb_func_start sub_8116524
-sub_8116524: @ 8116524
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0811657C @ =gUnknown_203B05C
- ldr r5, [r0]
- movs r0, 0
- mov r8, r0
- movs r3, 0x1
-_08116538:
- ldr r0, [r5]
- lsls r6, r3, 5
- adds r2, r0, r6
- ldrb r0, [r2, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- mov r9, r0
- cmp r0, 0x1
- bne _08116598
- ldr r1, [r5, 0x4]
- adds r0, r2, 0
- str r3, [sp]
- bl sub_811A748
- adds r4, r0, 0
- ldr r3, [sp]
- cmp r4, 0xFF
- beq _08116580
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- lsls r2, r4, 3
- subs r2, r4
- lsls r2, 2
- adds r1, r6
- adds r0, r2
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- ldr r0, [r5]
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x18]
- b _08116598
- .align 2, 0
-_0811657C: .4byte gUnknown_203B05C
-_08116580:
- ldr r2, [r5]
- adds r2, r6
- ldrb r1, [r2, 0x1A]
- movs r4, 0x4
- negs r4, r4
- adds r0, r4, 0
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2, 0x1A]
- movs r7, 0x2
- mov r8, r7
-_08116598:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _08116538
- movs r6, 0
- movs r4, 0x3
-_081165A6:
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- adds r1, r6
- movs r2, 0x5
- bl sub_811A798
- adds r6, 0x1C
- subs r4, 0x1
- ldr r0, [r5]
- cmp r4, 0
- bge _081165A6
- mov r1, r8
- cmp r1, 0x2
- beq _081165D8
- adds r1, r0, 0
- movs r4, 0x4
-_081165C6:
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _081165D0
- movs r2, 0x1
- mov r8, r2
-_081165D0:
- adds r1, 0x20
- subs r4, 0x1
- cmp r4, 0
- bge _081165C6
-_081165D8:
- mov r0, r8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8116524
-
- thumb_func_start sub_81165E8
-sub_81165E8: @ 81165E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _081166BC @ =gUnknown_203B05C
- ldr r4, [r0]
- movs r3, 0
-_081165F8:
- ldr r0, [r4, 0x8]
- lsls r2, r3, 5
- ldr r1, [r4]
- adds r0, r2
- adds r1, r2
- ldm r1!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldm r1!, {r2,r5,r7}
- stm r0!, {r2,r5,r7}
- ldm r1!, {r6,r7}
- stm r0!, {r6,r7}
- adds r3, 0x1
- ldr r0, [r4, 0x8]
- ldr r1, [r4]
- cmp r3, 0x4
- ble _081165F8
- movs r5, 0
- mov r8, r1
- mov r9, r0
- movs r3, 0x4
-_08116620:
- mov r1, r9
- ldrb r0, [r1, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08116642
- lsls r0, r5, 5
- add r0, r8
- ldm r1!, {r2,r6,r7}
- stm r0!, {r2,r6,r7}
- ldm r1!, {r2,r6,r7}
- stm r0!, {r2,r6,r7}
- ldm r1!, {r2,r6}
- stm r0!, {r2,r6}
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08116642:
- movs r7, 0x20
- add r9, r7
- subs r3, 0x1
- cmp r3, 0
- bge _08116620
- mov r10, r5
- cmp r5, 0x4
- bhi _081166A4
- ldr r0, _081166C0 @ =gUnknown_8457034
- mov r9, r0
- movs r1, 0
- mov r12, r1
- movs r2, 0x4
- negs r2, r2
- mov r8, r2
-_08116660:
- ldr r1, [r4]
- lsls r3, r5, 5
- adds r1, r3
- mov r0, r9
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldr r0, [r4]
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x18]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1, 0x1A]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x1A]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1, 0x1A]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1A]
- ldr r0, [r4]
- adds r0, r3
- mov r6, r12
- strb r6, [r0, 0x1B]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _08116660
-_081166A4:
- movs r3, 0
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081166C4
- ldrb r0, [r1, 0x1B]
- cmp r0, 0x40
- bne _081166C4
- mov r10, r3
- b _081166E4
- .align 2, 0
-_081166BC: .4byte gUnknown_203B05C
-_081166C0: .4byte gUnknown_8457034
-_081166C4:
- adds r3, 0x1
- cmp r3, 0x4
- bgt _081166E4
- lsls r0, r3, 5
- adds r2, r1, r0
- ldrb r0, [r2, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081166C4
- ldrb r0, [r2, 0x1B]
- cmp r0, 0x40
- bne _081166C4
- lsls r0, r3, 24
- lsrs r0, 24
- mov r10, r0
-_081166E4:
- mov r0, r10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81165E8
-
- thumb_func_start TryJoinLinkGroup
-TryJoinLinkGroup: @ 81166F4
- push {lr}
- ldr r0, _08116724 @ =sub_8116738
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08116728 @ =gUnknown_203B05C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0811672C @ =gTasks+0x8
- adds r1, r0
- str r1, [r2]
- ldr r0, _08116730 @ =gUnknown_3002028
- str r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x8]
- strb r0, [r1, 0x9]
- ldr r1, _08116734 @ =gSpecialVar_Result
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08116724: .4byte sub_8116738
-_08116728: .4byte gUnknown_203B05C
-_0811672C: .4byte gTasks+0x8
-_08116730: .4byte gUnknown_3002028
-_08116734: .4byte gSpecialVar_Result
- thumb_func_end TryJoinLinkGroup
-
- thumb_func_start sub_8116738
-sub_8116738: @ 8116738
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08116758 @ =gUnknown_203B05C
- ldr r6, [r0]
- ldrb r0, [r6, 0x8]
- cmp r0, 0x17
- bls _0811674C
- b _08116D06
-_0811674C:
- lsls r0, 2
- ldr r1, _0811675C @ =_08116760
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116758: .4byte gUnknown_203B05C
-_0811675C: .4byte _08116760
- .align 2, 0
-_08116760:
- .4byte _081167C0
- .4byte _0811680C
- .4byte _08116838
- .4byte _08116904
- .4byte _08116D06
- .4byte _081169B4
- .4byte _08116A08
- .4byte _08116B94
- .4byte _08116BB0
- .4byte _08116BFE
- .4byte _08116C10
- .4byte _08116C98
- .4byte _08116C10
- .4byte _08116C68
- .4byte _08116C10
- .4byte _08116CA8
- .4byte _08116D06
- .4byte _08116D06
- .4byte _08116C10
- .4byte _08116CC8
- .4byte _08116C10
- .4byte _08116CFC
- .4byte _08116D06
- .4byte _08116CEC
-_081167C0:
- ldr r5, _08116800 @ =gUnknown_84570C8
- ldr r4, _08116804 @ =gSpecialVar_0x8004
- ldrh r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- ldr r1, _08116808 @ =gUnknown_203B058
- ldrh r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- bl sub_800B1F4
- bl OpenLink
- bl sub_80FBBD8
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r6, 0x4]
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r6]
- movs r0, 0x1
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_08116800: .4byte gUnknown_84570C8
-_08116804: .4byte gSpecialVar_0x8004
-_08116808: .4byte gUnknown_203B058
-_0811680C:
- adds r0, r6, 0
- adds r0, 0x9
- ldr r2, _08116830 @ =gUnknown_84591B8
- ldr r1, _08116834 @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08116828
- b _08116D06
-_08116828:
- movs r0, 0x2
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_08116830: .4byte gUnknown_84591B8
-_08116834: .4byte gSpecialVar_0x8004
-_08116838:
- ldr r0, [r6, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r6]
- movs r1, 0x10
- bl sub_811A5E4
- ldr r0, [r6, 0x4]
- ldr r1, _081168E8 @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- bl sub_811A054
- movs r4, 0
- strb r0, [r6, 0x11]
- ldr r0, _081168EC @ =gUnknown_8456CD0
- bl AddWindow
- strb r0, [r6, 0xC]
- ldr r0, _081168F0 @ =gUnknown_8456D4C
- bl AddWindow
- strb r0, [r6, 0xB]
- ldr r0, _081168F4 @ =gUnknown_8456D54
- bl AddWindow
- strb r0, [r6, 0xD]
- ldrb r0, [r6, 0xC]
- movs r1, 0x22
- bl FillWindowPixelBuffer
- ldrb r0, [r6, 0xC]
- ldr r2, _081168F8 @ =gUnknown_8458FC8
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x8
- bl sub_811A444
- ldrb r0, [r6, 0xC]
- bl PutWindowTilemap
- ldrb r0, [r6, 0xC]
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r6, 0xB]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, _081168FC @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, _08116900 @ =gUnknown_8456DDC
- ldm r1!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldm r1!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldrb r1, [r6, 0xB]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r6, 0xE]
- ldrb r0, [r6, 0xD]
- movs r1, 0
- bl DrawStdWindowFrame
- ldrb r0, [r6, 0xD]
- bl PutWindowTilemap
- ldrb r0, [r6, 0xD]
- bl sub_8115924
- ldrb r0, [r6, 0xD]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- strb r4, [r6, 0xF]
- movs r0, 0x3
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_081168E8: .4byte gSpecialVar_0x8004
-_081168EC: .4byte gUnknown_8456CD0
-_081168F0: .4byte gUnknown_8456D4C
-_081168F4: .4byte gUnknown_8456D54
-_081168F8: .4byte gUnknown_8458FC8
-_081168FC: .4byte gMultiuseListMenuTemplate
-_08116900: .4byte gUnknown_8456DDC
-_08116904:
- bl sub_8116FE4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0811691E
- cmp r4, 0x1
- beq _08116916
- b _08116BF6
-_08116916:
- movs r0, 0x2
- bl PlaySE
- b _08116BF6
-_0811691E:
- ldrb r0, [r6, 0xE]
- bl ListMenu_ProcessInput
- adds r4, r0, 0
- ldr r0, _0811696C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811699C
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0811699C
- ldr r0, [r6]
- lsls r1, r4, 5
- adds r0, r1
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08116994
- lsrs r0, r1, 7
- cmp r0, 0
- bne _08116994
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8116D10
- adds r1, r0, 0
- cmp r1, 0
- bne _08116970
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8116D60
- movs r0, 0x5
- b _08116982
- .align 2, 0
-_0811696C: .4byte gMain
-_08116970:
- ldr r0, _0811698C @ =gStringVar4
- ldr r2, _08116990 @ =gUnknown_8457608
- subs r1, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x12
-_08116982:
- strb r0, [r6, 0x8]
- movs r0, 0x67
- bl PlaySE
- b _08116D06
- .align 2, 0
-_0811698C: .4byte gStringVar4
-_08116990: .4byte gUnknown_8457608
-_08116994:
- movs r0, 0x7
- bl PlaySE
- b _08116D06
-_0811699C:
- ldr r0, _081169B0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081169AA
- b _08116D06
-_081169AA:
- movs r0, 0xA
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_081169B0: .4byte gMain
-_081169B4:
- ldr r4, _081169FC @ =gStringVar4
- ldr r0, _08116A00 @ =gUnknown_203B058
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_811631C
- adds r0, r6, 0
- adds r0, 0x9
- adds r1, r4, 0
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _081169D2
- b _08116D06
-_081169D2:
- ldr r4, _08116A04 @ =gStringVar1
- ldrb r0, [r6, 0xF]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy7
- ldr r1, [r6]
- ldrb r0, [r6, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- b _08116C0A
- .align 2, 0
-_081169FC: .4byte gStringVar4
-_08116A00: .4byte gUnknown_203B058
-_08116A04: .4byte gStringVar1
-_08116A08:
- ldr r0, _08116A3C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08116AA4
- ldr r4, _08116A40 @ =gUnknown_203B058
- ldr r1, [r6]
- ldrb r0, [r6, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 25
- lsrs r0, 25
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl sub_80FB9E4
- ldrb r0, [r4]
- subs r0, 0x1
- cmp r0, 0x15
- bhi _08116AA4
- lsls r0, 2
- ldr r1, _08116A44 @ =_08116A48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116A3C: .4byte gReceivedRemoteLinkPlayers
-_08116A40: .4byte gUnknown_203B058
-_08116A44: .4byte _08116A48
- .align 2, 0
-_08116A48:
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA4
- .4byte _08116AA0
- .4byte _08116AA0
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA4
- .4byte _08116AA0
- .4byte _08116AA0
-_08116AA0:
- movs r0, 0x14
- strb r0, [r6, 0x8]
-_08116AA4:
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x8
- bhi _08116B70
- lsls r0, 2
- ldr r1, _08116ABC @ =_08116AC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116ABC: .4byte _08116AC0
- .align 2, 0
-_08116AC0:
- .4byte _08116AE4
- .4byte _08116AEA
- .4byte _08116B70
- .4byte _08116B70
- .4byte _08116AF0
- .4byte _08116AEA
- .4byte _08116B44
- .4byte _08116B70
- .4byte _08116AEA
-_08116AE4:
- movs r0, 0xC
- strb r0, [r6, 0x8]
- b _08116B70
-_08116AEA:
- movs r0, 0xE
- strb r0, [r6, 0x8]
- b _08116B70
-_08116AF0:
- ldr r4, _08116B30 @ =gStringVar4
- ldr r5, _08116B34 @ =gUnknown_203B058
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_81163B0
- adds r0, r6, 0
- adds r0, 0x9
- adds r1, r4, 0
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _08116B70
- movs r0, 0x7
- movs r1, 0
- bl sub_80FB9E4
- ldr r0, _08116B38 @ =gStringVar1
- ldr r2, _08116B3C @ =gUnknown_8456C74
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r1, _08116B40 @ =gUnknown_8457700
- adds r0, r4, 0
- bl StringExpandPlaceholders
- b _08116B70
- .align 2, 0
-_08116B30: .4byte gStringVar4
-_08116B34: .4byte gUnknown_203B058
-_08116B38: .4byte gStringVar1
-_08116B3C: .4byte gUnknown_8456C74
-_08116B40: .4byte gUnknown_8457700
-_08116B44:
- ldrb r0, [r6, 0x15]
- cmp r0, 0xF0
- bls _08116B6C
- adds r0, r6, 0
- adds r0, 0x9
- ldr r1, _08116B68 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _08116B70
- movs r0, 0xC
- movs r1, 0
- bl sub_80FB9E4
- movs r0, 0
- b _08116B6E
- .align 2, 0
-_08116B68: .4byte gStringVar4
-_08116B6C:
- adds r0, 0x1
-_08116B6E:
- strb r0, [r6, 0x15]
-_08116B70:
- bl sub_80FB9F4
- lsls r0, 24
- cmp r0, 0
- beq _08116B7C
- b _08116D06
-_08116B7C:
- ldr r0, _08116B90 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08116B8A
- b _08116D06
-_08116B8A:
- movs r0, 0x7
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_08116B90: .4byte gMain
-_08116B94:
- adds r0, r6, 0
- adds r0, 0x9
- ldr r1, _08116BAC @ =gUnknown_845771C
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08116BA6
- b _08116D06
-_08116BA6:
- movs r0, 0x8
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_08116BAC: .4byte gUnknown_845771C
-_08116BB0:
- adds r4, r6, 0
- adds r4, 0x9
- bl sub_80FB9F4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08116BEE
- cmp r1, r0
- bgt _08116BDC
- subs r0, 0x2
- cmp r1, r0
- beq _08116BF2
- b _08116D06
-_08116BDC:
- cmp r1, 0
- beq _08116BE6
- cmp r1, 0x1
- beq _08116BEE
- b _08116D06
-_08116BE6:
- bl sub_80FA6BC
- movs r0, 0x9
- b _08116BF4
-_08116BEE:
- movs r0, 0x5
- b _08116BF4
-_08116BF2:
- movs r0, 0x6
-_08116BF4:
- strb r0, [r6, 0x8]
-_08116BF6:
- ldrb r0, [r6, 0xE]
- bl RedrawListMenu
- b _08116D06
-_08116BFE:
- bl sub_80FB9F4
- lsls r0, 24
- cmp r0, 0
- bne _08116C0A
- b _08116D06
-_08116C0A:
- movs r0, 0x6
- strb r0, [r6, 0x8]
- b _08116D06
-_08116C10:
- ldrb r0, [r6, 0xD]
- bl ClearWindowTilemap
- ldrb r0, [r6, 0xD]
- movs r1, 0
- bl ClearStdWindowAndFrame
- ldrb r0, [r6, 0xE]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r6, 0xC]
- bl ClearWindowTilemap
- ldrb r0, [r6, 0xB]
- movs r1, 0
- bl ClearStdWindowAndFrame
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldrb r0, [r6, 0xD]
- bl RemoveWindow
- ldrb r0, [r6, 0xB]
- bl RemoveWindow
- ldrb r0, [r6, 0xC]
- bl RemoveWindow
- ldrb r0, [r6, 0x11]
- bl DestroyTask
- ldr r0, [r6]
- bl Free
- ldr r0, [r6, 0x4]
- bl Free
- ldrb r0, [r6, 0x8]
- adds r0, 0x1
- strb r0, [r6, 0x8]
- b _08116D06
-_08116C68:
- bl DestroyWirelessStatusIndicatorSprite
- adds r5, r6, 0
- adds r5, 0x9
- ldr r4, _08116C90 @ =gUnknown_8457754
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _08116D06
- ldr r0, _08116C94 @ =gSpecialVar_Result
- movs r1, 0x6
- b _08116CDC
- .align 2, 0
-_08116C90: .4byte gUnknown_8457754
-_08116C94: .4byte gSpecialVar_Result
-_08116C98:
- bl DestroyWirelessStatusIndicatorSprite
- ldr r0, _08116CA4 @ =gSpecialVar_Result
- movs r1, 0x5
- b _08116CDC
- .align 2, 0
-_08116CA4: .4byte gSpecialVar_Result
-_08116CA8:
- bl DestroyWirelessStatusIndicatorSprite
- adds r5, r6, 0
- adds r5, 0x9
- ldr r4, _08116CC4 @ =gUnknown_8457754
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- b _08116CCE
- .align 2, 0
-_08116CC4: .4byte gUnknown_8457754
-_08116CC8:
- adds r0, r6, 0
- adds r0, 0x9
- ldr r1, _08116CE4 @ =gStringVar4
-_08116CCE:
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _08116D06
- ldr r0, _08116CE8 @ =gSpecialVar_Result
- movs r1, 0x8
-_08116CDC:
- strh r1, [r0]
- movs r0, 0x17
- strb r0, [r6, 0x8]
- b _08116D06
- .align 2, 0
-_08116CE4: .4byte gStringVar4
-_08116CE8: .4byte gSpecialVar_Result
-_08116CEC:
- adds r0, r4, 0
- bl DestroyTask
- bl sub_811A41C
- bl sub_80F8DC0
- b _08116D06
-_08116CFC:
- bl sub_8117990
- adds r0, r4, 0
- bl DestroyTask
-_08116D06:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8116738
-
- thumb_func_start sub_8116D10
-sub_8116D10: @ 8116D10
- push {lr}
- lsls r1, 5
- ldr r0, [r0]
- adds r3, r0, r1
- ldr r0, _08116D44 @ =gUnknown_203B058
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08116D56
- ldrb r0, [r3, 0x1]
- movs r1, 0x3C
- ands r1, r0
- cmp r1, 0x10
- beq _08116D56
- cmp r1, 0x14
- beq _08116D56
- ldr r0, _08116D48 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x9]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08116D4C
- movs r0, 0x1
- b _08116D5C
- .align 2, 0
-_08116D44: .4byte gUnknown_203B058
-_08116D48: .4byte gSaveBlock2Ptr
-_08116D4C:
- ldrb r1, [r3]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08116D5A
-_08116D56:
- movs r0, 0
- b _08116D5C
-_08116D5A:
- movs r0, 0x2
-_08116D5C:
- pop {r1}
- bx r1
- thumb_func_end sub_8116D10
-
- thumb_func_start sub_8116D60
-sub_8116D60: @ 8116D60
- push {r4,r5,lr}
- adds r4, r0, 0
- strb r1, [r4, 0xF]
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- ldrb r0, [r4, 0xE]
- bl RedrawListMenu
- ldr r5, _08116DD4 @ =gStringVar1
- ldrb r0, [r4, 0xF]
- lsls r0, 5
- ldr r1, [r4]
- adds r1, r0
- adds r1, 0x10
- adds r0, r5, 0
- bl StringCopy7
- ldr r1, [r4]
- ldrb r0, [r4, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r5, 0
- bl ConvertInternationalString
- ldr r1, _08116DD8 @ =gUnknown_84570C8
- ldr r0, _08116DDC @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- ldrb r1, [r4, 0xF]
- lsls r1, 5
- ldr r0, [r4]
- adds r0, r1
- adds r4, r0, 0
- adds r4, 0x10
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80FBF54
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116DD4: .4byte gStringVar1
-_08116DD8: .4byte gUnknown_84570C8
-_08116DDC: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8116D60
-
- thumb_func_start sub_8116DE0
-sub_8116DE0: @ 8116DE0
- push {lr}
- ldr r0, _08116E0C @ =sub_8116E1C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08116E10 @ =gUnknown_203B05C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _08116E14 @ =gTasks+0x8
- adds r1, r2
- str r1, [r3]
- movs r2, 0
- strb r2, [r1, 0x8]
- strb r2, [r1, 0x9]
- ldr r2, _08116E18 @ =gUnknown_3002028
- str r1, [r2]
- pop {r1}
- bx r1
- .align 2, 0
-_08116E0C: .4byte sub_8116E1C
-_08116E10: .4byte gUnknown_203B05C
-_08116E14: .4byte gTasks+0x8
-_08116E18: .4byte gUnknown_3002028
- thumb_func_end sub_8116DE0
-
- thumb_func_start sub_8116E1C
-sub_8116E1C: @ 8116E1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08116E38 @ =gUnknown_203B05C
- ldr r4, [r0]
- ldrb r0, [r4, 0x8]
- cmp r0, 0xB
- bhi _08116F20
- lsls r0, 2
- ldr r1, _08116E3C @ =_08116E40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116E38: .4byte gUnknown_203B05C
-_08116E3C: .4byte _08116E40
- .align 2, 0
-_08116E40:
- .4byte _08116E70
- .4byte _08116F20
- .4byte _08116EA4
- .4byte _08116EC8
- .4byte _08116F20
- .4byte _08116F20
- .4byte _08116F20
- .4byte _08116F20
- .4byte _08116F20
- .4byte _08116F20
- .4byte _08116EF8
- .4byte _08116F16
-_08116E70:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- bl sub_800B1F4
- bl OpenLink
- bl sub_80FBBD8
- movs r0, 0x1
- bl sub_80FB128
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r4, 0x4]
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x2
- strb r0, [r4, 0x8]
- b _08116F20
-_08116EA4:
- ldr r0, [r4, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r4]
- movs r1, 0x10
- bl sub_811A5E4
- ldr r0, [r4, 0x4]
- movs r1, 0xFF
- bl sub_811A054
- movs r1, 0
- strb r0, [r4, 0x11]
- strb r1, [r4, 0xF]
- movs r0, 0x3
- strb r0, [r4, 0x8]
- b _08116F20
-_08116EC8:
- bl sub_8116FE4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08116EDA
- movs r0, 0x2
- bl PlaySE
-_08116EDA:
- ldr r0, _08116EF4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- bne _08116F20
- movs r0, 0xA
- strb r0, [r4, 0x8]
- b _08116F20
- .align 2, 0
-_08116EF4: .4byte gTasks
-_08116EF8:
- ldrb r0, [r4, 0x11]
- bl DestroyTask
- ldr r0, [r4]
- bl Free
- ldr r0, [r4, 0x4]
- bl Free
- bl sub_80F8DC0
- ldrb r0, [r4, 0x8]
- adds r0, 0x1
- strb r0, [r4, 0x8]
- b _08116F20
-_08116F16:
- bl sub_80F8DC0
- adds r0, r5, 0
- bl DestroyTask
-_08116F20:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8116E1C
-
- thumb_func_start sub_8116F28
-sub_8116F28: @ 8116F28
- push {lr}
- adds r2, r0, 0
- cmp r1, 0xFF
- bne _08116F34
-_08116F30:
- movs r0, 0x1
- b _08116F58
-_08116F34:
- cmp r1, 0xD
- bhi _08116F56
- ldr r0, _08116F44 @ =gUnknown_8457094
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- b _08116F50
- .align 2, 0
-_08116F44: .4byte gUnknown_8457094
-_08116F48:
- ldrb r0, [r1]
- cmp r0, r2
- beq _08116F30
- adds r1, 0x1
-_08116F50:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08116F48
-_08116F56:
- movs r0, 0
-_08116F58:
- pop {r1}
- bx r1
- thumb_func_end sub_8116F28
-
- thumb_func_start sub_8116F5C
-sub_8116F5C: @ 8116F5C
- push {lr}
- ldr r0, [r0]
- lsls r1, 5
- adds r1, r0, r1
- ldrb r2, [r1, 0x1A]
- lsls r0, r2, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08116F8E
- ldrb r0, [r1, 0xA]
- lsrs r0, 7
- cmp r0, 0
- beq _08116F7A
- movs r0, 0x3
- b _08116F90
-_08116F7A:
- lsls r0, r2, 29
- cmp r0, 0
- bge _08116F84
- movs r0, 0x1
- b _08116F90
-_08116F84:
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08116F8E
- movs r0, 0x2
- b _08116F90
-_08116F8E:
- movs r0, 0
-_08116F90:
- pop {r1}
- bx r1
- thumb_func_end sub_8116F5C
-
- thumb_func_start sub_8116F94
-sub_8116F94: @ 8116F94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08116FE0 @ =gUnknown_203B05C
- ldr r0, [r0]
- mov r8, r0
- bl sub_8116F5C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 5
- mov r2, r8
- ldr r3, [r2]
- adds r3, r1
- str r0, [sp]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x8
- adds r2, r6, 0
- bl sub_811A81C
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116FE0: .4byte gUnknown_203B05C
- thumb_func_end sub_8116F94
-
- thumb_func_start sub_8116FE4
-sub_8116FE4: @ 8116FE4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r0, _0811704C @ =gUnknown_203B05C
- ldr r6, [r0]
- movs r7, 0
- movs r3, 0
-_08116FF4:
- ldr r0, [r6]
- lsls r5, r3, 5
- adds r2, r0, r5
- ldrb r0, [r2, 0x1A]
- lsls r0, 30
- mov r8, r5
- cmp r0, 0
- beq _081170C0
- ldr r1, [r6, 0x4]
- adds r0, r2, 0
- str r3, [sp]
- bl sub_811A748
- adds r4, r0, 0
- ldr r3, [sp]
- cmp r4, 0xFF
- beq _0811708E
- ldr r0, [r6]
- adds r2, r0, r5
- ldrb r1, [r2, 0x1A]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _0811706C
- lsls r0, r4, 3
- subs r0, r4
- lsls r4, r0, 2
- ldr r1, [r6, 0x4]
- adds r1, r4
- adds r0, r2, 0
- bl sub_811A6DC
- ldr r3, [sp]
- cmp r0, 0
- beq _08117050
- ldr r1, [r6]
- ldr r0, [r6, 0x4]
- adds r1, r5
- adds r0, r4
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- b _0811707A
- .align 2, 0
-_0811704C: .4byte gUnknown_203B05C
-_08117050:
- ldr r0, [r6]
- adds r1, r0, r5
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08117084
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r6]
- adds r0, r5
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08117084
- movs r7, 0x2
- b _08117084
-_0811706C:
- movs r4, 0x4
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1A]
-_0811707A:
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x40
- strb r1, [r0, 0x1B]
- movs r7, 0x1
-_08117084:
- ldr r0, [r6]
- add r0, r8
- movs r1, 0
- strh r1, [r0, 0x18]
- b _081170C0
-_0811708E:
- ldr r0, [r6]
- adds r1, r0, r5
- ldrb r0, [r1, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081170C0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- ldr r0, [r6]
- adds r2, r0, r5
- ldrh r1, [r2, 0x18]
- ldr r0, _081170FC @ =0x0000012b
- cmp r1, r0
- bls _081170C0
- ldrb r0, [r2, 0x1A]
- movs r7, 0x4
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1A]
- movs r7, 0x2
-_081170C0:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _08116FF4
- movs r5, 0
- movs r4, 0x3
-_081170CE:
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- adds r1, r5
- movs r2, 0x10
- bl sub_811A798
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081170E4
- movs r7, 0x1
-_081170E4:
- adds r5, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _081170CE
- adds r0, r7, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081170FC: .4byte 0x0000012b
- thumb_func_end sub_8116FE4
-
- thumb_func_start sub_8117100
-sub_8117100: @ 8117100
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl CB2_ReturnFromLinkTrade
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8117100
-
- thumb_func_start sub_8117118
-sub_8117118: @ 8117118
- push {lr}
- ldr r0, _0811712C @ =sub_8117100
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0811712C: .4byte sub_8117100
- thumb_func_end sub_8117118
-
- thumb_func_start sub_8117130
-sub_8117130: @ 8117130
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0811716C @ =gUnknown_203B06C
- mov r8, r0
- bl GetMultiplayerId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_811B1EC
- adds r7, r0, 0
- ldr r1, _08117170 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0811719C
- cmp r0, 0x1
- bgt _08117174
- cmp r0, 0
- beq _0811717E
- b _0811725C
- .align 2, 0
-_0811716C: .4byte gUnknown_203B06C
-_08117170: .4byte gTasks
-_08117174:
- cmp r0, 0x2
- beq _081171D8
- cmp r0, 0x3
- beq _08117210
- b _0811725C
-_0811717E:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08117198 @ =gPlayerParty
- adds r1, r0
- movs r0, 0
- movs r2, 0x64
- bl SendBlock
- b _0811725C
- .align 2, 0
-_08117198: .4byte gPlayerParty
-_0811719C:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0811725C
- bl GetMultiplayerId
- adds r1, r0, 0
- ldr r0, _081171D0 @ =gEnemyParty
- movs r2, 0x1
- eors r1, r2
- lsls r1, 24
- lsrs r1, 16
- ldr r2, _081171D4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- movs r0, 0x32
- bl IncrementGameStat
- bl ResetBlockReceivedFlags
- b _081171FA
- .align 2, 0
-_081171D0: .4byte gEnemyParty
-_081171D4: .4byte gBlockRecvBuffer
-_081171D8:
- ldr r4, _08117204 @ =gBlockSendBuffer
- ldr r0, _08117208 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, _0811720C @ =0x00002cd0
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xDC
- bl memcpy
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0xDC
- bl SendBlock
- lsls r0, 24
- cmp r0, 0
- beq _0811725C
-_081171FA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0811725C
- .align 2, 0
-_08117204: .4byte gBlockSendBuffer
-_08117208: .4byte gSaveBlock1Ptr
-_0811720C: .4byte 0x00002cd0
-_08117210:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0811725C
- ldr r4, _08117268 @ =gLinkPartnerMail
- bl GetMultiplayerId
- adds r1, r0, 0
- movs r0, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 16
- ldr r0, _0811726C @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xD8
- bl memcpy
- bl ResetBlockReceivedFlags
- ldr r1, _08117270 @ =gSelectedTradeMonPositions
- strb r7, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r1, _08117274 @ =gMain
- ldr r0, _08117278 @ =CB2_ReturnToField
- str r0, [r1, 0x8]
- ldr r0, _0811727C @ =CB2_InitTradeAnim_LinkTrade
- bl SetMainCallback2
- mov r0, r8
- bl sub_811B148
- adds r0, r6, 0
- bl DestroyTask
-_0811725C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117268: .4byte gLinkPartnerMail
-_0811726C: .4byte gBlockRecvBuffer
-_08117270: .4byte gSelectedTradeMonPositions
-_08117274: .4byte gMain
-_08117278: .4byte CB2_ReturnToField
-_0811727C: .4byte CB2_InitTradeAnim_LinkTrade
- thumb_func_end sub_8117130
-
- thumb_func_start sub_8117280
-sub_8117280: @ 8117280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _081172A4 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081172A8
- cmp r0, 0x1
- beq _081172C0
- b _0811734A
- .align 2, 0
-_081172A4: .4byte gTasks
-_081172A8:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _081172B8
- movs r0, 0x2
- bl sub_800A474
-_081172B8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0811734A
-_081172C0:
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_800A8D4
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0811734A
- movs r4, 0
- ldr r0, _081172E0 @ =gTrainerCards
- adds r7, r0, 0
- adds r7, 0x38
- ldr r6, _081172E4 @ =gLinkPlayers
- adds r5, r0, 0
- b _08117302
- .align 2, 0
-_081172E0: .4byte gTrainerCards
-_081172E4: .4byte gLinkPlayers
-_081172E8:
- lsls r0, r4, 8
- ldr r1, _08117338 @ =gBlockRecvBuffer
- adds r1, r0, r1
- adds r0, r5, 0
- movs r2, 0x60
- bl memcpy
- ldrh r0, [r6]
- strb r0, [r7]
- adds r7, 0x60
- adds r6, 0x1C
- adds r5, 0x60
- adds r4, 0x1
-_08117302:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _081172E8
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0811733C
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 16
- ldr r1, _08117338 @ =gBlockRecvBuffer
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x60
- ldrh r0, [r0]
- bl sub_81446D0
- b _08117340
- .align 2, 0
-_08117338: .4byte gBlockRecvBuffer
-_0811733C:
- bl sub_81446C4
-_08117340:
- bl ResetBlockReceivedFlags
- mov r0, r8
- bl DestroyTask
-_0811734A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8117280
-
- thumb_func_start sub_8117354
-sub_8117354: @ 8117354
- push {r4,lr}
- ldr r0, _0811736C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _08117370
- cmp r0, 0x1
- beq _08117384
- b _081173A2
- .align 2, 0
-_0811736C: .4byte gMain
-_08117370:
- ldr r0, _08117380 @ =sub_8117280
- movs r1, 0x5
- bl CreateTask
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _081173A2
- .align 2, 0
-_08117380: .4byte sub_8117280
-_08117384:
- ldr r0, _081173B8 @ =sub_8117280
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _081173A2
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081173BC @ =CB2_ReturnToField
- bl ShowTrainerCardInLink
-_081173A2:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081173B8: .4byte sub_8117280
-_081173BC: .4byte CB2_ReturnToField
- thumb_func_end sub_8117354
-
- thumb_func_start sub_81173C0
-sub_81173C0: @ 81173C0
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- bl HealPlayerParty
- bl SavePlayerParty
- bl LoadPlayerBag
- ldr r5, _0811742C @ =gLinkPlayers
- ldr r0, _08117430 @ =0x00002211
- str r0, [r5, 0x14]
- bl GetMultiplayerId
- adds r4, r0, 0
- bl GetMultiplayerId
- lsls r4, 24
- lsrs r4, 24
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x18]
- bl GetMultiplayerId
- adds r4, r0, 0
- bl GetMultiplayerId
- movs r2, 0x1
- eors r4, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r5
- eors r0, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x18]
- ldr r1, _08117434 @ =gMain
- ldr r0, _08117438 @ =sub_8081668
- str r0, [r1, 0x8]
- ldr r0, _0811743C @ =gBattleTypeFlags
- str r6, [r0]
- bl PlayBattleBGM
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811742C: .4byte gLinkPlayers
-_08117430: .4byte 0x00002211
-_08117434: .4byte gMain
-_08117438: .4byte sub_8081668
-_0811743C: .4byte gBattleTypeFlags
- thumb_func_end sub_81173C0
-
- thumb_func_start sub_8117440
-sub_8117440: @ 8117440
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _081174AC @ =0x0000406f
- adds r1, r3, 0
- bl VarSet
- ldr r6, _081174B0 @ =gSaveBlock1Ptr
- ldr r1, [r6]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- mov r8, r2
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- str r5, [sp]
- adds r3, r4, 0
- bl SetWarpDestination
- ldr r0, [r6]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- mov r3, r8
- bl SetDynamicWarpWithCoords
- bl WarpIntoMap
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081174AC: .4byte 0x0000406f
-_081174B0: .4byte gSaveBlock1Ptr
- thumb_func_end sub_8117440
-
- thumb_func_start sub_81174B4
-sub_81174B4: @ 81174B4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- mov r8, r2
- adds r6, r3, 0
- ldr r1, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08117524 @ =gSpecialVar_0x8004
- strh r1, [r0]
- ldr r0, _08117528 @ =0x0000406f
- bl VarSet
- bl GetLinkPlayerCount
- ldr r1, _0811752C @ =gUnknown_3005030
- strb r0, [r1]
- bl GetMultiplayerId
- ldr r1, _08117530 @ =gUnknown_300502C
- strb r0, [r1]
- bl SetCableClubWarp
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- movs r2, 0x1
- negs r2, r2
- mov r0, r8
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- lsls r6, 24
- asrs r6, 24
- str r6, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- mov r3, r8
- bl SetWarpDestination
- bl WarpIntoMap
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08117524: .4byte gSpecialVar_0x8004
-_08117528: .4byte 0x0000406f
-_0811752C: .4byte gUnknown_3005030
-_08117530: .4byte gUnknown_300502C
- thumb_func_end sub_81174B4
-
- thumb_func_start sub_8117534
-sub_8117534: @ 8117534
- push {r4,lr}
- ldr r0, _0811754C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _08117550
- cmp r0, 0x1
- beq _08117564
- b _08117576
- .align 2, 0
-_0811754C: .4byte gMain
-_08117550:
- ldr r0, _08117560 @ =sub_8117280
- movs r1, 0x5
- bl CreateTask
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08117576
- .align 2, 0
-_08117560: .4byte sub_8117280
-_08117564:
- ldr r0, _0811758C @ =sub_8117280
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08117576
- ldr r0, _08117590 @ =sub_8056788
- bl SetMainCallback2
-_08117576:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811758C: .4byte sub_8117280
-_08117590: .4byte sub_8056788
- thumb_func_end sub_8117534
-
- thumb_func_start sub_8117594
-sub_8117594: @ 8117594
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl TrainerCard_GenerateCardForLinkPlayer
- cmp r5, 0
- beq _081175AE
- bl sub_81440E8
- adds r1, r4, 0
- adds r1, 0x60
- strh r0, [r1]
- b _081175B4
-_081175AE:
- adds r0, r4, 0
- adds r0, 0x60
- strh r5, [r0]
-_081175B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8117594
-
- thumb_func_start sub_81175BC
-sub_81175BC: @ 81175BC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81446C4
- ldr r0, _081175DC @ =gUnknown_203B058
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0xD
- bhi _08117620
- lsls r0, 2
- ldr r1, _081175E0 @ =_081175E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081175DC: .4byte gUnknown_203B058
-_081175E0: .4byte _081175E4
- .align 2, 0
-_081175E4:
- .4byte _0811761C
- .4byte _0811761C
- .4byte _0811761C
- .4byte _0811761C
- .4byte _08117620
- .4byte _08117620
- .4byte _08117620
- .4byte _08117620
- .4byte _0811761C
- .4byte _0811761C
- .4byte _0811761C
- .4byte _08117620
- .4byte _0811761C
- .4byte _0811761C
-_0811761C:
- bl RecordMixTrainerNames
-_08117620:
- ldr r0, _08117638 @ =gUnknown_203B058
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x50
- bls _0811762C
- b _081178E0
-_0811762C:
- lsls r0, 2
- ldr r1, _0811763C @ =_08117640
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08117638: .4byte gUnknown_203B058
-_0811763C: .4byte _08117640
- .align 2, 0
-_08117640:
- .4byte _081177A0
- .4byte _081177C8
- .4byte _081177F0
- .4byte _08117818
- .4byte _08117854
- .4byte _081178E0
- .4byte _081178E0
- .4byte _08117878
- .4byte _08117890
- .4byte _081178B0
- .4byte _081178C8
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _08117784
- .4byte _081178E0
- .4byte _081178E0
- .4byte _08117844
- .4byte _08117854
- .4byte _081178E0
- .4byte _081178E0
- .4byte _08117878
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _081178E0
- .4byte _08117784
-_08117784:
- bl CleanupOverworldWindowsAndTilemaps
- ldr r1, _08117798 @ =gMain
- ldr r0, _0811779C @ =sub_811C1C8
- str r0, [r1, 0x8]
- movs r0, 0x2
- bl InitChooseHalfPartyForBattle
- b _081178E0
- .align 2, 0
-_08117798: .4byte gMain
-_0811779C: .4byte sub_811C1C8
-_081177A0:
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _081177C4 @ =gBlockSendBuffer
- movs r1, 0x1
- bl sub_8117594
- bl HealPlayerParty
- bl SavePlayerParty
- bl LoadPlayerBag
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- b _0811782E
- .align 2, 0
-_081177C4: .4byte gBlockSendBuffer
-_081177C8:
- bl CleanupOverworldWindowsAndTilemaps
- bl HealPlayerParty
- bl SavePlayerParty
- bl LoadPlayerBag
- ldr r0, _081177EC @ =gBlockSendBuffer
- movs r1, 0x1
- bl sub_8117594
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- b _0811782E
- .align 2, 0
-_081177EC: .4byte gBlockSendBuffer
-_081177F0:
- bl CleanupOverworldWindowsAndTilemaps
- bl HealPlayerParty
- bl SavePlayerParty
- bl LoadPlayerBag
- ldr r0, _08117814 @ =gBlockSendBuffer
- movs r1, 0x1
- bl sub_8117594
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x3
- b _0811782C
- .align 2, 0
-_08117814: .4byte gBlockSendBuffer
-_08117818:
- ldr r0, _0811783C @ =gBlockSendBuffer
- movs r1, 0x1
- bl sub_8117594
- bl CleanupOverworldWindowsAndTilemaps
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
-_0811782C:
- movs r2, 0x5
-_0811782E:
- movs r3, 0x8
- bl sub_81174B4
- ldr r0, _08117840 @ =sub_8117534
- bl SetMainCallback2
- b _081178E0
- .align 2, 0
-_0811783C: .4byte gBlockSendBuffer
-_08117840: .4byte sub_8117534
-_08117844:
- ldr r0, _08117850 @ =sub_8117130
- movs r1, 0
- bl CreateTask
- b _081178E0
- .align 2, 0
-_08117850: .4byte sub_8117130
-_08117854:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _08117864
- bl sub_80F8CFC
- b _08117872
-_08117864:
- bl sub_80F8D14
- movs r0, 0x45
- movs r1, 0
- movs r2, 0x1
- bl sub_80FAF58
-_08117872:
- bl sub_8128420
- b _081178E0
-_08117878:
- ldr r0, _08117888 @ =gBlockSendBuffer
- movs r1, 0
- bl sub_8117594
- ldr r0, _0811788C @ =sub_8117354
- bl SetMainCallback2
- b _081178E0
- .align 2, 0
-_08117888: .4byte gBlockSendBuffer
-_0811788C: .4byte sub_8117354
-_08117890:
- movs r0, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_8117440
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081178AC @ =CB2_LoadMap
- bl sub_8147AA8
- b _081178E0
- .align 2, 0
-_081178AC: .4byte CB2_LoadMap
-_081178B0:
- movs r0, 0x7
- movs r1, 0x9
- movs r2, 0x1
- bl sub_8117440
- ldr r0, _081178C4 @ =CB2_LoadMap
- bl sub_814B754
- b _081178E0
- .align 2, 0
-_081178C4: .4byte CB2_LoadMap
-_081178C8:
- movs r0, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_8117440
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081178F8 @ =CB2_LoadMap
- bl sub_81507FC
-_081178E0:
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _081178FC @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- bl ScriptContext2_Disable
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081178F8: .4byte CB2_LoadMap
-_081178FC: .4byte gSpecialVar_Result
- thumb_func_end sub_81175BC
-
- thumb_func_start sub_8117900
-sub_8117900: @ 8117900
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08117924 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08117944
- cmp r0, 0x1
- bgt _08117928
- cmp r0, 0
- beq _08117932
- b _08117988
- .align 2, 0
-_08117924: .4byte gTasks+0x8
-_08117928:
- cmp r0, 0x2
- beq _08117958
- cmp r0, 0x3
- beq _08117974
- b _08117988
-_08117932:
- ldr r1, _08117940 @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- bl EnableBothScriptContexts
- b _08117968
- .align 2, 0
-_08117940: .4byte gSpecialVar_Result
-_08117944:
- bl ScriptContext1_IsScriptSetUp
- lsls r0, 24
- cmp r0, 0
- bne _08117988
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- b _08117968
-_08117958:
- ldr r0, _08117970 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08117988
- bl sub_800AB9C
-_08117968:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08117988
- .align 2, 0
-_08117970: .4byte gPaletteFade
-_08117974:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08117988
- adds r0, r5, 0
- bl DestroyTask
- bl sub_81179A4
-_08117988:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8117900
-
- thumb_func_start sub_8117990
-sub_8117990: @ 8117990
- push {lr}
- ldr r0, _081179A0 @ =sub_8117900
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_081179A0: .4byte sub_8117900
- thumb_func_end sub_8117990
-
- thumb_func_start sub_81179A4
-sub_81179A4: @ 81179A4
- push {lr}
- ldr r0, _081179C4 @ =sub_81175BC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081179C8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_081179C4: .4byte sub_81175BC
-_081179C8: .4byte gTasks
- thumb_func_end sub_81179A4
-
- thumb_func_start MEvent_CreateTask_Leader
-MEvent_CreateTask_Leader: @ 81179CC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081179FC @ =sub_8117A0C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08117A00 @ =gUnknown_203B05C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08117A04 @ =gTasks+0x8
- adds r1, r0
- str r1, [r2]
- movs r2, 0
- strb r2, [r1, 0xC]
- strb r2, [r1, 0xD]
- strb r4, [r1, 0x18]
- ldr r0, _08117A08 @ =gSpecialVar_Result
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081179FC: .4byte sub_8117A0C
-_08117A00: .4byte gUnknown_203B05C
-_08117A04: .4byte gTasks+0x8
-_08117A08: .4byte gSpecialVar_Result
- thumb_func_end MEvent_CreateTask_Leader
-
- thumb_func_start sub_8117A0C
-sub_8117A0C: @ 8117A0C
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117A2C @ =gUnknown_203B05C
- ldr r5, [r0]
- ldrb r0, [r5, 0xC]
- cmp r0, 0x11
- bls _08117A20
- b _08117ECA
-_08117A20:
- lsls r0, 2
- ldr r1, _08117A30 @ =_08117A34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08117A2C: .4byte gUnknown_203B05C
-_08117A30: .4byte _08117A34
- .align 2, 0
-_08117A34:
- .4byte _08117A7C
- .4byte _08117AB8
- .4byte _08117B7C
- .4byte _08117BAC
- .4byte _08117BBC
- .4byte _08117C0C
- .4byte _08117BE4
- .4byte _08117C12
- .4byte _08117CB2
- .4byte _08117D94
- .4byte _08117DA4
- .4byte _08117DBA
- .4byte _08117DD2
- .4byte _08117DEE
- .4byte _08117E26
- .4byte _08117E4C
- .4byte _08117E80
- .4byte _08117EBA
-_08117A7C:
- ldr r1, _08117AB0 @ =gUnknown_203B058
- ldrb r0, [r5, 0x18]
- strb r0, [r1]
- ldr r1, _08117AB4 @ =gUnknown_203B059
- movs r0, 0x2
- strb r0, [r1]
- ldrb r0, [r5, 0x18]
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- movs r0, 0
- movs r1, 0
- bl sub_80FAF74
- bl sub_800B1F4
- bl OpenLink
- movs r0, 0x2
- bl sub_80FBB8C
- movs r0, 0x1
- strb r0, [r5, 0xC]
- b _08117ECA
- .align 2, 0
-_08117AB0: .4byte gUnknown_203B058
-_08117AB4: .4byte gUnknown_203B059
-_08117AB8:
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0x4]
- movs r0, 0xA0
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0xA0
- bl AllocZeroed
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r5]
- movs r1, 0x5
- bl sub_811A5E4
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x10
- bl sub_80FCD50
- ldr r1, [r5]
- movs r3, 0
- movs r0, 0
- strh r0, [r1, 0x18]
- ldr r2, [r5]
- ldrb r1, [r2, 0x1A]
- subs r0, 0x4
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1A]
- ldr r2, [r5]
- ldrb r1, [r2, 0x1A]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1A]
- ldr r0, [r5]
- strb r3, [r0, 0x1B]
- ldr r0, [r5, 0x4]
- movs r1, 0xFF
- bl sub_811A054
- strb r0, [r5, 0x17]
- ldr r0, _08117B6C @ =gUnknown_8456CFC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- bl GetMysteryGiftBaseBlock
- lsls r0, 16
- ldr r2, _08117B70 @ =0x0000ffff
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl AddWindow
- strb r0, [r5, 0xF]
- ldrb r0, [r5, 0xF]
- bl MG_DrawTextBorder
- ldr r0, _08117B74 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, _08117B78 @ =gUnknown_8456D34
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldrb r1, [r5, 0xF]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r5, 0x12]
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- strb r0, [r5, 0x13]
- b _08117C02
- .align 2, 0
-_08117B6C: .4byte gUnknown_8456CFC
-_08117B70: .4byte 0x0000ffff
-_08117B74: .4byte gMultiuseListMenuTemplate
-_08117B78: .4byte gUnknown_8456D34
-_08117B7C:
- ldr r0, _08117B9C @ =gStringVar1
- ldr r2, _08117BA0 @ =gUnknown_8456C74
- ldr r4, _08117BA4 @ =gUnknown_203B058
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r0, _08117BA8 @ =gStringVar4
- ldrb r1, [r4]
- bl sub_811599C
- movs r0, 0x3
- strb r0, [r5, 0xC]
- b _08117ECA
- .align 2, 0
-_08117B9C: .4byte gStringVar1
-_08117BA0: .4byte gUnknown_8456C74
-_08117BA4: .4byte gUnknown_203B058
-_08117BA8: .4byte gStringVar4
-_08117BAC:
- ldr r0, _08117BB8 @ =gStringVar4
- bl AddTextPrinterToWindow1
- movs r0, 0x4
- strb r0, [r5, 0xC]
- b _08117ECA
- .align 2, 0
-_08117BB8: .4byte gStringVar4
-_08117BBC:
- adds r0, r5, 0
- movs r1, 0x5
- movs r2, 0x6
- bl sub_8116444
- ldr r0, _08117BE0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08117BD4
- b _08117ECA
-_08117BD4:
- movs r0, 0xD
- strb r0, [r5, 0xC]
- bl DestroyWirelessStatusIndicatorSprite
- b _08117ECA
- .align 2, 0
-_08117BE0: .4byte gMain
-_08117BE4:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08117C08 @ =gUnknown_84577F8
- bl MG_PrintTextOnWindow1AndWaitButton
- cmp r0, 0
- bne _08117BF4
- b _08117ECA
-_08117BF4:
- ldr r0, [r5]
- bl sub_81165E8
- strb r0, [r5, 0x13]
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
-_08117C02:
- movs r0, 0x2
- strb r0, [r5, 0xC]
- b _08117ECA
- .align 2, 0
-_08117C08: .4byte gUnknown_84577F8
-_08117C0C:
- movs r0, 0x7
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117C12:
- adds r0, r5, 0
- adds r0, 0xD
- adds r1, r5, 0
- adds r1, 0x14
- ldr r3, _08117C38 @ =gStringVar4
- movs r2, 0
- bl mevent_message_print_and_prompt_yes_no
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _08117C42
- cmp r4, 0
- bgt _08117C3C
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08117C84
- b _08117ECA
- .align 2, 0
-_08117C38: .4byte gStringVar4
-_08117C3C:
- cmp r4, 0x1
- beq _08117C84
- b _08117ECA
-_08117C42:
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- adds r1, r0
- strb r4, [r1, 0x1B]
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- movs r0, 0x5
- strb r0, [r5, 0x19]
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- ldr r2, [r5]
- adds r2, r0
- adds r2, 0x10
- movs r0, 0x5
- b _08117CA8
-_08117C84:
- movs r0, 0x6
- strb r0, [r5, 0x19]
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- ldr r2, [r5]
- adds r2, r0
- adds r2, 0x10
- movs r0, 0x6
-_08117CA8:
- bl sub_80FA670
- movs r0, 0x8
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117CB2:
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x2
- bl sub_8118658
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r5, 0x13]
- lsls r2, 5
- ldr r1, [r5]
- adds r1, r2
- adds r1, 0x10
- bl sub_80FA6FC
- adds r4, r0, 0
- cmp r4, 0x1
- bne _08117D82
- ldrb r0, [r5, 0x19]
- cmp r0, 0x5
- bne _08117D3C
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- strb r0, [r1, 0x1B]
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- ldrb r0, [r5, 0x13]
- adds r0, 0x1
- strb r0, [r5, 0x13]
- ldr r4, _08117D30 @ =gStringVar1
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r1, r0
- subs r1, 0x10
- adds r0, r4, 0
- bl StringCopy7
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- subs r0, 0x1
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, _08117D34 @ =gStringVar4
- ldr r1, _08117D38 @ =gUnknown_8457554
- bl StringExpandPlaceholders
- movs r0, 0x9
- strb r0, [r5, 0xC]
- bl sub_80F8F5C
- b _08117D7C
- .align 2, 0
-_08117D30: .4byte gStringVar1
-_08117D34: .4byte gStringVar4
-_08117D38: .4byte gUnknown_8457554
-_08117D3C:
- ldrb r1, [r5, 0x13]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r4, r0, 0
- adds r4, 0x10
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80FBD4C
- ldr r1, [r5]
- ldrb r0, [r5, 0x13]
- lsls r0, 5
- adds r1, r0
- ldrb r2, [r1, 0x1A]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1A]
- ldr r0, [r5]
- bl sub_81165E8
- ldrb r0, [r5, 0x12]
- bl RedrawListMenu
- movs r0, 0x2
- strb r0, [r5, 0xC]
-_08117D7C:
- movs r0, 0
- strb r0, [r5, 0x19]
- b _08117ECA
-_08117D82:
- cmp r4, 0x2
- beq _08117D88
- b _08117ECA
-_08117D88:
- movs r0, 0
- movs r1, 0
- bl sub_80FB9E4
- strb r4, [r5, 0xC]
- b _08117ECA
-_08117D94:
- ldr r0, _08117DA0 @ =gStringVar4
- bl AddTextPrinterToWindow1
- movs r0, 0xA
- strb r0, [r5, 0xC]
- b _08117ECA
- .align 2, 0
-_08117DA0: .4byte gStringVar4
-_08117DA4:
- ldrb r0, [r5, 0xE]
- adds r0, 0x1
- strb r0, [r5, 0xE]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x78
- bhi _08117DB4
- b _08117ECA
-_08117DB4:
- movs r0, 0xB
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117DBA:
- adds r0, r5, 0
- movs r1, 0x5
- movs r2, 0x6
- bl sub_8116444
- lsls r0, 24
- cmp r0, 0
- beq _08117DCC
- b _08117ECA
-_08117DCC:
- movs r0, 0xC
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117DD2:
- bl sub_80F8F40
- lsls r0, 24
- cmp r0, 0
- beq _08117DE8
- movs r0, 0
- bl sub_80F8F7C
- movs r0, 0xF
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117DE8:
- movs r0, 0x6
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117DEE:
- bl DestroyWirelessStatusIndicatorSprite
- bl sub_80F8DC0
- ldrb r0, [r5, 0x12]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldrb r0, [r5, 0xF]
- bl RemoveWindow
- ldrb r0, [r5, 0x17]
- bl DestroyTask
- ldr r0, [r5, 0x8]
- bl Free
- ldr r0, [r5]
- bl Free
- ldr r0, [r5, 0x4]
- bl Free
- b _08117EB2
-_08117E26:
- adds r0, r5, 0
- adds r0, 0xD
- ldr r1, _08117E44 @ =gUnknown_84571B8
- bl MG_PrintTextOnWindow1AndWaitButton
- cmp r0, 0
- beq _08117ECA
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _08117E48 @ =gSpecialVar_Result
- movs r0, 0x5
- strh r0, [r1]
- b _08117ECA
- .align 2, 0
-_08117E44: .4byte gUnknown_84571B8
-_08117E48: .4byte gSpecialVar_Result
-_08117E4C:
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08117E64
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08117E6A
-_08117E64:
- movs r0, 0xD
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117E6A:
- ldr r0, _08117E7C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08117ECA
- movs r0, 0x1
- bl sub_80FAFE0
- b _08117EB2
- .align 2, 0
-_08117E7C: .4byte gReceivedRemoteLinkPlayers
-_08117E80:
- ldrb r0, [r5, 0x12]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldrb r0, [r5, 0xF]
- bl RemoveWindow
- ldrb r0, [r5, 0x17]
- bl DestroyTask
- ldr r0, [r5, 0x8]
- bl Free
- ldr r0, [r5]
- bl Free
- ldr r0, [r5, 0x4]
- bl Free
- bl sub_800AB9C
-_08117EB2:
- ldrb r0, [r5, 0xC]
- adds r0, 0x1
- strb r0, [r5, 0xC]
- b _08117ECA
-_08117EBA:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08117ECA
- adds r0, r4, 0
- bl DestroyTask
-_08117ECA:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8117A0C
-
- thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend
-MEvent_CreateTask_CardOrNewsWithFriend: @ 8117ED4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08117F0C @ =sub_8117F20
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08117F10 @ =gUnknown_203B05C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08117F14 @ =gTasks+0x8
- adds r1, r0
- str r1, [r2]
- ldr r0, _08117F18 @ =gUnknown_3002028
- str r1, [r0]
- movs r2, 0
- strb r2, [r1, 0x8]
- strb r2, [r1, 0x9]
- subs r4, 0x15
- strb r4, [r1, 0x12]
- ldr r0, _08117F1C @ =gSpecialVar_Result
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117F0C: .4byte sub_8117F20
-_08117F10: .4byte gUnknown_203B05C
-_08117F14: .4byte gTasks+0x8
-_08117F18: .4byte gUnknown_3002028
-_08117F1C: .4byte gSpecialVar_Result
- thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend
-
- thumb_func_start sub_8117F20
-sub_8117F20: @ 8117F20
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08117F40 @ =gUnknown_203B05C
- ldr r5, [r0]
- ldrb r0, [r5, 0x8]
- cmp r0, 0xC
- bls _08117F34
- b _08118288
-_08117F34:
- lsls r0, 2
- ldr r1, _08117F44 @ =_08117F48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08117F40: .4byte gUnknown_203B05C
-_08117F44: .4byte _08117F48
- .align 2, 0
-_08117F48:
- .4byte _08117F7C
- .4byte _08117FB0
- .4byte _08117FC0
- .4byte _08118070
- .4byte _08118150
- .4byte _0811818C
- .4byte _081181EC
- .4byte _08118248
- .4byte _081181EC
- .4byte _08118222
- .4byte _081181EC
- .4byte _0811826C
- .4byte _08118278
-_08117F7C:
- ldrb r0, [r5, 0x12]
- adds r0, 0x15
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- bl sub_800B1F4
- bl OpenLink
- bl sub_80FBBD8
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0x4]
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x8]
- b _08118288
-_08117FB0:
- ldr r0, _08117FBC @ =gUnknown_8458FE4
- bl AddTextPrinterToWindow1
- movs r0, 0x2
- strb r0, [r5, 0x8]
- b _08118288
- .align 2, 0
-_08117FBC: .4byte gUnknown_8458FE4
-_08117FC0:
- ldr r0, [r5, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r5]
- movs r1, 0x10
- bl sub_811A5E4
- ldr r0, [r5, 0x4]
- ldrb r1, [r5, 0x12]
- adds r1, 0x7
- bl sub_811A054
- movs r4, 0
- strb r0, [r5, 0x11]
- ldr r0, _0811805C @ =gUnknown_8456D4C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- bl GetMysteryGiftBaseBlock
- lsls r0, 16
- ldr r2, _08118060 @ =0x0000ffff
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl AddWindow
- strb r0, [r5, 0xB]
- ldr r0, _08118064 @ =gUnknown_8456D54
- bl AddWindow
- strb r0, [r5, 0xD]
- ldrb r0, [r5, 0xB]
- bl MG_DrawTextBorder
- ldr r0, _08118068 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, _0811806C @ =gUnknown_8456DDC
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldrb r1, [r5, 0xB]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r5, 0xE]
- ldrb r0, [r5, 0xD]
- bl MG_DrawTextBorder
- ldrb r0, [r5, 0xD]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldrb r0, [r5, 0xD]
- bl PutWindowTilemap
- ldrb r0, [r5, 0xD]
- bl sub_8115924
- ldrb r0, [r5, 0xD]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- strb r4, [r5, 0xF]
- movs r0, 0x3
- strb r0, [r5, 0x8]
- b _08118288
- .align 2, 0
-_0811805C: .4byte gUnknown_8456D4C
-_08118060: .4byte 0x0000ffff
-_08118064: .4byte gUnknown_8456D54
-_08118068: .4byte gMultiuseListMenuTemplate
-_0811806C: .4byte gUnknown_8456DDC
-_08118070:
- bl sub_8116FE4
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0811808E
- cmp r2, 0x1
- bne _08118086
- movs r0, 0x2
- bl PlaySE
-_08118086:
- ldrb r0, [r5, 0xE]
- bl RedrawListMenu
- b _08118288
-_0811808E:
- ldrb r0, [r5, 0xE]
- bl ListMenu_ProcessInput
- adds r2, r0, 0
- ldr r0, _08118128 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08118138
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _08118138
- ldr r0, [r5]
- lsls r1, r2, 5
- adds r0, r1
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08118130
- lsrs r0, r1, 7
- cmp r0, 0
- bne _08118130
- strb r2, [r5, 0xF]
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- ldrb r0, [r5, 0xE]
- bl RedrawListMenu
- ldr r4, _0811812C @ =gStringVar1
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- ldr r1, [r5]
- adds r1, r0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r1, [r5]
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldrb r1, [r5, 0xF]
- lsls r1, 5
- ldr r0, [r5]
- adds r0, r1
- adds r4, r0, 0
- adds r4, 0x10
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80FBF54
- movs r0, 0x67
- bl PlaySE
- movs r0, 0x4
- strb r0, [r5, 0x8]
- b _08118288
- .align 2, 0
-_08118128: .4byte gMain
-_0811812C: .4byte gStringVar1
-_08118130:
- movs r0, 0x7
- bl PlaySE
- b _08118288
-_08118138:
- ldr r0, _0811814C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08118146
- b _08118288
-_08118146:
- movs r0, 0x6
- strb r0, [r5, 0x8]
- b _08118288
- .align 2, 0
-_0811814C: .4byte gMain
-_08118150:
- ldr r0, _08118184 @ =gUnknown_8459238
- bl AddTextPrinterToWindow1
- ldr r4, _08118188 @ =gStringVar1
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- ldr r1, [r5]
- adds r1, r0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r1, [r5]
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- movs r0, 0x5
- strb r0, [r5, 0x8]
- b _08118288
- .align 2, 0
-_08118184: .4byte gUnknown_8459238
-_08118188: .4byte gStringVar1
-_0811818C:
- ldr r0, _081181C4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _081181AA
- ldr r2, _081181C8 @ =gUnknown_203B058
- ldr r1, [r5]
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 25
- lsrs r0, 25
- strb r0, [r2]
- movs r0, 0xA
- strb r0, [r5, 0x8]
-_081181AA:
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _081181D6
- cmp r0, 0x5
- bgt _081181CC
- cmp r0, 0x2
- bgt _08118288
- cmp r0, 0x1
- blt _08118288
- b _081181D0
- .align 2, 0
-_081181C4: .4byte gReceivedRemoteLinkPlayers
-_081181C8: .4byte gUnknown_203B058
-_081181CC:
- cmp r0, 0x6
- bne _08118288
-_081181D0:
- movs r0, 0x8
- strb r0, [r5, 0x8]
- b _08118288
-_081181D6:
- ldr r0, _081181E8 @ =gUnknown_84576AC
- bl AddTextPrinterToWindow1
- movs r0, 0
- movs r1, 0
- bl sub_80FB9E4
- b _08118288
- .align 2, 0
-_081181E8: .4byte gUnknown_84576AC
-_081181EC:
- ldrb r0, [r5, 0xE]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldrb r0, [r5, 0xD]
- bl RemoveWindow
- ldrb r0, [r5, 0xB]
- bl RemoveWindow
- ldrb r0, [r5, 0x11]
- bl DestroyTask
- ldr r0, [r5]
- bl Free
- ldr r0, [r5, 0x4]
- bl Free
- ldrb r0, [r5, 0x8]
- adds r0, 0x1
- strb r0, [r5, 0x8]
- b _08118288
-_08118222:
- adds r5, 0x9
- ldr r4, _08118244 @ =gUnknown_8457838
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl MG_PrintTextOnWindow1AndWaitButton
- cmp r0, 0
- beq _08118288
- bl DestroyWirelessStatusIndicatorSprite
- b _08118252
- .align 2, 0
-_08118244: .4byte gUnknown_8457838
-_08118248:
- bl DestroyWirelessStatusIndicatorSprite
- ldr r0, _08118264 @ =gUnknown_84571B8
- bl AddTextPrinterToWindow1
-_08118252:
- adds r0, r6, 0
- bl DestroyTask
- bl sub_80F8DC0
- ldr r1, _08118268 @ =gSpecialVar_Result
- movs r0, 0x5
- strh r0, [r1]
- b _08118288
- .align 2, 0
-_08118264: .4byte gUnknown_84571B8
-_08118268: .4byte gSpecialVar_Result
-_0811826C:
- ldrb r0, [r5, 0x8]
- adds r0, 0x1
- strb r0, [r5, 0x8]
- bl sub_800AB9C
- b _08118288
-_08118278:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08118288
- adds r0, r6, 0
- bl DestroyTask
-_08118288:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8117F20
-
- thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless
-MEvent_CreateTask_CardOrNewsOverWireless: @ 8118290
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081182C8 @ =sub_81182DC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081182CC @ =gUnknown_203B05C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081182D0 @ =gTasks+0x8
- adds r1, r0
- str r1, [r2]
- ldr r0, _081182D4 @ =gUnknown_3002028
- str r1, [r0]
- movs r2, 0
- strb r2, [r1, 0x8]
- strb r2, [r1, 0x9]
- subs r4, 0x15
- strb r4, [r1, 0x12]
- ldr r0, _081182D8 @ =gSpecialVar_Result
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081182C8: .4byte sub_81182DC
-_081182CC: .4byte gUnknown_203B05C
-_081182D0: .4byte gTasks+0x8
-_081182D4: .4byte gUnknown_3002028
-_081182D8: .4byte gSpecialVar_Result
- thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless
-
- thumb_func_start sub_81182DC
-sub_81182DC: @ 81182DC
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081182FC @ =gUnknown_203B05C
- ldr r5, [r0]
- ldrb r0, [r5, 0x8]
- cmp r0, 0xE
- bls _081182F0
- b _08118604
-_081182F0:
- lsls r0, 2
- ldr r1, _08118300 @ =_08118304
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081182FC: .4byte gUnknown_203B05C
-_08118300: .4byte _08118304
- .align 2, 0
-_08118304:
- .4byte _08118340
- .4byte _0811836E
- .4byte _08118380
- .4byte _08118408
- .4byte _081184C8
- .4byte _08118504
- .4byte _08118564
- .4byte _081185A8
- .4byte _08118564
- .4byte _0811859A
- .4byte _08118564
- .4byte _081185B4
- .4byte _08118564
- .4byte _081185E8
- .4byte _081185F4
-_08118340:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- bl sub_800B1F4
- bl OpenLink
- bl sub_80FBBD8
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0x4]
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x8]
- b _08118604
-_0811836E:
- ldr r0, _0811837C @ =gUnknown_84591DC
- bl AddTextPrinterToWindow1
- movs r0, 0x2
- strb r0, [r5, 0x8]
- b _08118604
- .align 2, 0
-_0811837C: .4byte gUnknown_84591DC
-_08118380:
- ldr r0, [r5, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r5]
- movs r1, 0x10
- bl sub_811A5E4
- ldr r0, [r5, 0x4]
- ldrb r1, [r5, 0x12]
- adds r1, 0x7
- bl sub_811A084
- strb r0, [r5, 0x11]
- ldrb r0, [r5, 0x13]
- cmp r0, 0
- beq _081183EC
- ldr r0, _081183F8 @ =gUnknown_8456D4C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- bl GetMysteryGiftBaseBlock
- lsls r0, 16
- ldr r2, _081183FC @ =0x0000ffff
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl AddWindow
- strb r0, [r5, 0xB]
- ldrb r0, [r5, 0xB]
- bl MG_DrawTextBorder
- ldr r0, _08118400 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, _08118404 @ =gUnknown_8456DDC
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldrb r1, [r5, 0xB]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r5, 0xE]
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_081183EC:
- movs r0, 0
- strb r0, [r5, 0xF]
- movs r0, 0x3
- strb r0, [r5, 0x8]
- b _08118604
- .align 2, 0
-_081183F8: .4byte gUnknown_8456D4C
-_081183FC: .4byte 0x0000ffff
-_08118400: .4byte gMultiuseListMenuTemplate
-_08118404: .4byte gUnknown_8456DDC
-_08118408:
- bl sub_8116FE4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0811842E
- cmp r0, 0x1
- bne _0811841E
- movs r0, 0x2
- bl PlaySE
-_0811841E:
- ldrb r0, [r5, 0x13]
- cmp r0, 0
- bne _08118426
- b _08118604
-_08118426:
- ldrb r0, [r5, 0xE]
- bl RedrawListMenu
- b _08118604
-_0811842E:
- ldrb r0, [r5, 0x13]
- cmp r0, 0
- beq _0811843A
- ldrb r0, [r5, 0xE]
- bl ListMenu_ProcessInput
-_0811843A:
- ldrb r0, [r5, 0x14]
- cmp r0, 0x78
- bls _081184A8
- ldr r2, [r5]
- ldrb r1, [r2, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081184BC
- ldrb r1, [r2, 0xA]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081184BC
- ldrb r1, [r5, 0x12]
- adds r1, 0x7
- adds r0, r2, 0
- bl sub_8119FB0
- cmp r0, 0
- beq _0811849C
- strb r4, [r5, 0xF]
- strb r4, [r5, 0x14]
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- ldr r0, [r5]
- adds r4, r0, 0
- adds r4, 0x10
- adds r0, 0x2
- bl sub_8118658
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80FBF54
- movs r0, 0x67
- bl PlaySE
- movs r0, 0x4
- strb r0, [r5, 0x8]
- b _081184BC
-_0811849C:
- movs r0, 0x16
- bl PlaySE
- movs r0, 0xA
- strb r0, [r5, 0x8]
- b _081184BC
-_081184A8:
- ldr r0, _081184C4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081184BC
- movs r1, 0
- movs r0, 0x6
- strb r0, [r5, 0x8]
- strb r1, [r5, 0x14]
-_081184BC:
- ldrb r0, [r5, 0x14]
- adds r0, 0x1
- strb r0, [r5, 0x14]
- b _08118604
- .align 2, 0
-_081184C4: .4byte gMain
-_081184C8:
- ldr r0, _081184FC @ =gUnknown_845928C
- bl AddTextPrinterToWindow1
- ldr r4, _08118500 @ =gStringVar1
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- ldr r1, [r5]
- adds r1, r0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r1, [r5]
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- movs r0, 0x5
- strb r0, [r5, 0x8]
- b _08118604
- .align 2, 0
-_081184FC: .4byte gUnknown_845928C
-_08118500: .4byte gStringVar1
-_08118504:
- ldr r0, _0811853C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08118522
- ldr r2, _08118540 @ =gUnknown_203B058
- ldr r1, [r5]
- ldrb r0, [r5, 0xF]
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 25
- lsrs r0, 25
- strb r0, [r2]
- movs r0, 0xC
- strb r0, [r5, 0x8]
-_08118522:
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _0811854E
- cmp r0, 0x5
- bgt _08118544
- cmp r0, 0x2
- bgt _08118604
- cmp r0, 0x1
- blt _08118604
- b _08118548
- .align 2, 0
-_0811853C: .4byte gReceivedRemoteLinkPlayers
-_08118540: .4byte gUnknown_203B058
-_08118544:
- cmp r0, 0x6
- bne _08118604
-_08118548:
- movs r0, 0x8
- strb r0, [r5, 0x8]
- b _08118604
-_0811854E:
- ldr r0, _08118560 @ =gUnknown_845777C
- bl AddTextPrinterToWindow1
- movs r0, 0
- movs r1, 0
- bl sub_80FB9E4
- b _08118604
- .align 2, 0
-_08118560: .4byte gUnknown_845777C
-_08118564:
- ldrb r0, [r5, 0x13]
- cmp r0, 0
- beq _08118580
- ldrb r0, [r5, 0xE]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldrb r0, [r5, 0xB]
- bl RemoveWindow
-_08118580:
- ldrb r0, [r5, 0x11]
- bl DestroyTask
- ldr r0, [r5]
- bl Free
- ldr r0, [r5, 0x4]
- bl Free
- ldrb r0, [r5, 0x8]
- adds r0, 0x1
- strb r0, [r5, 0x8]
- b _08118604
-_0811859A:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _081185A4 @ =gUnknown_84577BC
- b _081185C2
- .align 2, 0
-_081185A4: .4byte gUnknown_84577BC
-_081185A8:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _081185B0 @ =gUnknown_84571E0
- b _081185C2
- .align 2, 0
-_081185B0: .4byte gUnknown_84571E0
-_081185B4:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r2, _081185E0 @ =gUnknown_845933C
- ldrb r1, [r5, 0x12]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
-_081185C2:
- bl MG_PrintTextOnWindow1AndWaitButton
- cmp r0, 0
- beq _08118604
- bl DestroyWirelessStatusIndicatorSprite
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80F8DC0
- ldr r1, _081185E4 @ =gSpecialVar_Result
- movs r0, 0x5
- strh r0, [r1]
- b _08118604
- .align 2, 0
-_081185E0: .4byte gUnknown_845933C
-_081185E4: .4byte gSpecialVar_Result
-_081185E8:
- ldrb r0, [r5, 0x8]
- adds r0, 0x1
- strb r0, [r5, 0x8]
- bl sub_800AB9C
- b _08118604
-_081185F4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08118604
- adds r0, r4, 0
- bl DestroyTask
-_08118604:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81182DC
-
- thumb_func_start UnionRoomSpecial
-UnionRoomSpecial: @ 811860C
- push {r4,lr}
- bl ClearAndInitHostRFUtgtGname
- ldr r0, _08118648 @ =sub_81186E0
- movs r1, 0xA
- bl CreateTask
- ldr r4, _0811864C @ =gUnknown_203B05C
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- ldr r1, _08118650 @ =gUnknown_300202C
- str r0, [r1]
- movs r1, 0
- strb r1, [r0, 0x14]
- strb r1, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- ldr r0, _08118654 @ =gSpecialVar_Result
- strh r1, [r0]
- movs r0, 0xD0
- movs r1, 0x1
- bl sub_8107D38
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118648: .4byte sub_81186E0
-_0811864C: .4byte gUnknown_203B05C
-_08118650: .4byte gUnknown_300202C
-_08118654: .4byte gSpecialVar_Result
- thumb_func_end UnionRoomSpecial
-
- thumb_func_start sub_8118658
-sub_8118658: @ 8118658
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- ldrb r0, [r0]
- orrs r0, r1
- bx lr
- thumb_func_end sub_8118658
-
- thumb_func_start sub_8118664
-sub_8118664: @ 8118664
- push {lr}
- adds r3, r1, 0
- ldr r1, _08118684 @ =gUnknown_203B05C
- ldr r2, [r1]
- movs r1, 0x8
- strb r1, [r2, 0x14]
- strb r0, [r2, 0x15]
- ldr r0, _08118688 @ =gStringVar4
- cmp r3, r0
- beq _0811867E
- adds r1, r3, 0
- bl StringExpandPlaceholders
-_0811867E:
- pop {r0}
- bx r0
- .align 2, 0
-_08118684: .4byte gUnknown_203B05C
-_08118688: .4byte gStringVar4
- thumb_func_end sub_8118664
-
- thumb_func_start sub_811868C
-sub_811868C: @ 811868C
- push {lr}
- adds r2, r0, 0
- ldr r0, _081186A8 @ =gUnknown_203B05C
- ldr r1, [r0]
- movs r0, 0x1A
- strb r0, [r1, 0x14]
- ldr r0, _081186AC @ =gStringVar4
- cmp r2, r0
- beq _081186A4
- adds r1, r2, 0
- bl StringExpandPlaceholders
-_081186A4:
- pop {r0}
- bx r0
- .align 2, 0
-_081186A8: .4byte gUnknown_203B05C
-_081186AC: .4byte gStringVar4
- thumb_func_end sub_811868C
-
- thumb_func_start sub_81186B0
-sub_81186B0: @ 81186B0
- push {lr}
- ldr r3, _081186C4 @ =gDecompressionBuffer + 0x3F00
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r3, 0
- bl memcpy
- pop {r0}
- bx r0
- .align 2, 0
-_081186C4: .4byte gDecompressionBuffer + 0x3F00
- thumb_func_end sub_81186B0
-
- thumb_func_start sub_81186C8
-sub_81186C8: @ 81186C8
- push {lr}
- ldr r0, [r0]
- ldr r1, _081186DC @ =gDecompressionBuffer + 0x3F00
- movs r2, 0x80
- lsls r2, 1
- bl memcpy
- pop {r0}
- bx r0
- .align 2, 0
-_081186DC: .4byte gDecompressionBuffer + 0x3F00
- thumb_func_end sub_81186C8
-
- thumb_func_start sub_81186E0
-sub_81186E0: @ 81186E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r0, _08118710 @ =gUnknown_203B05C
- ldr r6, [r0]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08118714 @ =gTasks+0x8
- adds r7, r0, r1
- ldrb r0, [r6, 0x14]
- cmp r0, 0x38
- bls _08118706
- bl _081198DC
-_08118706:
- lsls r0, 2
- ldr r1, _08118718 @ =_0811871C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08118710: .4byte gUnknown_203B05C
-_08118714: .4byte gTasks+0x8
-_08118718: .4byte _0811871C
- .align 2, 0
-_0811871C:
- .4byte _08118800
- .4byte _08118858
- .4byte _0811887C
- .4byte _081188CC
- .4byte _081189AA
- .4byte _08118E60
- .4byte _08118C58
- .4byte _08118E60
- .4byte _081198C8
- .4byte _081191D4
- .4byte _081192E0
- .4byte _081190B0
- .4byte _081190CA
- .4byte _08119330
- .4byte _08119354
- .4byte _0811935C
- .4byte _0811936C
- .4byte _0811939A
- .4byte _081193AE
- .4byte _08118F36
- .4byte _08118FBC
- .4byte _08118FDA
- .4byte _0811904E
- .4byte _08118ADE
- .4byte _08118B04
- .4byte _08118B7C
- .4byte _0811989C
- .4byte _08118D50
- .4byte _08118D38
- .4byte _08118DD4
- .4byte _08118C2E
- .4byte _08118DAA
- .4byte _08118DA0
- .4byte _08119164
- .4byte _08119184
- .4byte _081191C4
- .4byte _081192E8
- .4byte _08119324
- .4byte _08118BF8
- .4byte _0811910C
- .4byte _08118E98
- .4byte _08118EC8
- .4byte _081193D8
- .4byte _08119468
- .4byte _081195B8
- .4byte _08119620
- .4byte _0811963C
- .4byte _08119484
- .4byte _08119644
- .4byte _08119784
- .4byte _081197B8
- .4byte _08119840
- .4byte _0811953C
- .4byte _081194F0
- .4byte _08119504
- .4byte _0811959C
- .4byte _081195EC
-_08118800:
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r6, 0x4]
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r6, 0xC]
- movs r0, 0x80
- lsls r0, 1
- bl AllocZeroed
- str r0, [r6]
- movs r0, 0x20
- bl AllocZeroed
- str r0, [r6, 0x8]
- ldr r0, [r6]
- movs r1, 0x8
- bl sub_811A5E4
- ldr r1, _08118854 @ =gUnknown_203B058
- movs r0, 0x40
- strb r0, [r1]
- ldr r0, [r6, 0xC]
- ldr r1, [r6, 0x4]
- movs r2, 0x9
- bl sub_8119E84
- adds r1, r6, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r0, r6, 0
- adds r0, 0x8C
- bl sub_811B754
- bl sub_811BB68
- movs r0, 0x1
- bl _081198DA
- .align 2, 0
-_08118854: .4byte gUnknown_203B058
-_08118858:
- adds r0, r6, 0
- adds r0, 0x21
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl sub_811BAAC
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- beq _08118876
- bl _081198DC
-_08118876:
- movs r0, 0x2
- bl _081198DA
-_0811887C:
- movs r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- ldr r2, _081188C4 @ =gUnknown_203B06C
- ldrh r0, [r2, 0x2]
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0xC]
- bl sub_80FAFA0
- bl sub_800B1F4
- bl OpenLink
- bl sub_80FBC00
- ldr r0, [r6, 0x8]
- movs r1, 0x1
- bl sub_811A5E4
- ldr r0, [r6, 0x4]
- movs r1, 0x4
- bl sub_811A650
- ldr r0, [r6, 0xC]
- movs r1, 0x4
- bl sub_811A650
- ldr r1, _081188C8 @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x3
- bl _081198DA
- .align 2, 0
-_081188C4: .4byte gUnknown_203B06C
-_081188C8: .4byte gSpecialVar_Result
-_081188CC:
- bl GetPartyMenuType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _081188E4
- bl GetPartyMenuType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _081189A4
-_081188E4:
- ldr r4, _08118900 @ =gUnknown_203B06C
- ldrh r0, [r4]
- cmp r0, 0
- beq _081189A4
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _08118904
- cmp r0, 0x2
- beq _08118954
- b _08118992
- .align 2, 0
-_08118900: .4byte gUnknown_203B06C
-_08118904:
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- cmp r5, 0x5
- bls _08118930
- adds r0, r4, 0
- bl sub_811B148
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80FAFA0
- ldr r0, _0811892C @ =gUnknown_8458D54
- bl sub_811868C
- b _08118992
- .align 2, 0
-_0811892C: .4byte gUnknown_8458D54
-_08118930:
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_811B16C
- cmp r0, 0
- bne _08118950
- ldr r1, _0811894C @ =gUnknown_8458CD4
- movs r0, 0x34
- bl sub_8118664
- b _08118992
- .align 2, 0
-_0811894C: .4byte gUnknown_8458CD4
-_08118950:
- movs r0, 0x37
- b _08118990
-_08118954:
- adds r0, r6, 0
- bl sub_81186C8
- ldrb r0, [r4, 0x8]
- strh r0, [r7, 0x2]
- cmp r5, 0x5
- bls _08118970
- ldr r0, _0811896C @ =gUnknown_8458D9C
- bl sub_811868C
- b _08118992
- .align 2, 0
-_0811896C: .4byte gUnknown_8458D9C
-_08118970:
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- ldr r1, _0811899C @ =gUnknown_203B058
- movs r0, 0x44
- strb r0, [r1]
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_811B1B4
- movs r0, 0x33
-_08118990:
- strb r0, [r6, 0x14]
-_08118992:
- ldr r1, _081189A0 @ =gUnknown_203B06C
- movs r0, 0
- strh r0, [r1]
- bl _081198DC
- .align 2, 0
-_0811899C: .4byte gUnknown_203B058
-_081189A0: .4byte gUnknown_203B06C
-_081189A4:
- movs r0, 0x4
- bl _081198DA
-_081189AA:
- ldr r4, _081189D8 @ =gSpecialVar_Result
- ldrh r0, [r4]
- cmp r0, 0
- beq _08118A0E
- cmp r0, 0x9
- bne _081189E4
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- movs r0, 0x2
- bl PlaySE
- ldr r0, _081189DC @ =gStringVar1
- ldr r1, _081189E0 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- movs r1, 0
- movs r0, 0x2A
- b _08118A06
- .align 2, 0
-_081189D8: .4byte gSpecialVar_Result
-_081189DC: .4byte gStringVar1
-_081189E0: .4byte gSaveBlock2Ptr
-_081189E4:
- cmp r0, 0xB
- bne _081189F8
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- movs r1, 0
- movs r0, 0x17
- b _08118A06
-_081189F8:
- movs r0, 0
- strh r0, [r7]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r7, 0x2]
- movs r1, 0
- movs r0, 0x18
-_08118A06:
- strb r0, [r6, 0x14]
- strh r1, [r4]
- bl _081198DC
-_08118A0E:
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08118A1E
- bl _081198DC
-_08118A1E:
- ldr r0, _08118A4C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08118A84
- ldr r0, [r6]
- adds r2, r7, 0x2
- adds r3, r6, 0
- adds r3, 0x21
- adds r1, r7, 0
- bl sub_811BF00
- cmp r0, 0
- beq _08118A50
- movs r0, 0x5
- bl PlaySE
- bl sub_811B298
- movs r0, 0x18
- bl _081198DA
- .align 2, 0
-_08118A4C: .4byte gMain
-_08118A50:
- bl sub_811A9B8
- cmp r0, 0
- beq _08118A84
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- movs r0, 0x2
- bl PlaySE
- bl sub_811B298
- ldr r0, _08118A7C @ =gStringVar1
- ldr r1, _08118A80 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x2D
- bl _081198DA
- .align 2, 0
-_08118A7C: .4byte gStringVar1
-_08118A80: .4byte gSaveBlock2Ptr
-_08118A84:
- bl sub_8119B94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08118AA6
- cmp r0, 0x2
- bgt _08118A9A
- cmp r0, 0x1
- beq _08118AA0
- b _08118AD4
-_08118A9A:
- cmp r0, 0x4
- beq _08118AAE
- b _08118AD4
-_08118AA0:
- movs r0, 0x37
- bl PlaySE
-_08118AA6:
- adds r0, r6, 0
- bl sub_811BECC
- b _08118AD4
-_08118AAE:
- movs r0, 0xB
- strb r0, [r6, 0x14]
- bl sub_811B298
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80FAFA0
- adds r0, r6, 0
- bl sub_811B2D8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x53
- movs r2, 0
- bl sub_80FB008
-_08118AD4:
- adds r0, r6, 0
- bl sub_811BEDC
- bl _081198DC
-_08118ADE:
- ldr r0, _08118B00 @ =Task_StartMenuHandleInput
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08118AEE
- bl _081198DC
-_08118AEE:
- movs r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_80FB008
- movs r0, 0x4
- bl _081198DA
- .align 2, 0
-_08118B00: .4byte Task_StartMenuHandleInput
-_08118B04:
- bl sub_811A0E0
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- bl sub_811ADC4
- adds r4, r0, 0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- ldr r0, [r6]
- ldrb r1, [r7]
- ldrb r2, [r7, 0x2]
- adds r3, r4, 0
- bl sub_811AA5C
- cmp r0, 0x1
- beq _08118B48
- cmp r0, 0x1
- bgt _08118B3A
- cmp r0, 0
- beq _08118B42
- bl _081198DC
-_08118B3A:
- cmp r0, 0x2
- beq _08118B6C
- bl _081198DC
-_08118B42:
- movs r0, 0x1A
- bl _081198DA
-_08118B48:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x10
- ldr r2, _08118B68 @ =gUnknown_203B058
- ldrb r2, [r2]
- bl sub_80FC114
- strh r5, [r6, 0x12]
- movs r0, 0x19
- bl _081198DA
- .align 2, 0
-_08118B68: .4byte gUnknown_203B058
-_08118B6C:
- ldr r1, _08118B78 @ =gStringVar4
- movs r0, 0x13
- bl sub_8118664
- bl _081198DC
- .align 2, 0
-_08118B78: .4byte gStringVar4
-_08118B7C:
- bl sub_811A0E0
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- blt _08118BC2
- cmp r4, 0x2
- ble _08118B9E
- cmp r4, 0x4
- bne _08118BC2
- movs r0, 0x1
- bl sub_811B258
- strb r4, [r6, 0x14]
- b _08118BC2
-_08118B9E:
- bl sub_80FBB0C
- cmp r0, 0x1
- bne _08118BB4
- ldr r0, _08118BB0 @ =gUnknown_8457F90
- bl sub_811868C
- b _08118BBC
- .align 2, 0
-_08118BB0: .4byte gUnknown_8457F90
-_08118BB4:
- ldr r1, _08118BE4 @ =gUnknown_8457F90
- movs r0, 0x1E
- bl sub_8118664
-_08118BBC:
- ldr r1, _08118BE8 @ =gUnknown_203B058
- movs r0, 0x40
- strb r0, [r1]
-_08118BC2:
- ldr r0, _08118BEC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08118BCE
- bl _081198DC
-_08118BCE:
- ldr r0, _08118BF0 @ =gBlockSendBuffer
- movs r1, 0x1
- bl sub_8117594
- ldr r0, _08118BF4 @ =sub_8117280
- movs r1, 0x5
- bl CreateTask
- movs r0, 0x26
- bl _081198DA
- .align 2, 0
-_08118BE4: .4byte gUnknown_8457F90
-_08118BE8: .4byte gUnknown_203B058
-_08118BEC: .4byte gReceivedRemoteLinkPlayers
-_08118BF0: .4byte gBlockSendBuffer
-_08118BF4: .4byte sub_8117280
-_08118BF8:
- ldr r0, _08118C1C @ =sub_8117280
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08118C08
- bl _081198DC
-_08118C08:
- ldr r0, _08118C20 @ =gUnknown_203B058
- ldrb r0, [r0]
- cmp r0, 0x44
- bne _08118C28
- ldr r1, _08118C24 @ =gUnknown_84578BC
- movs r0, 0x1F
- bl sub_8118664
- bl _081198DC
- .align 2, 0
-_08118C1C: .4byte sub_8117280
-_08118C20: .4byte gUnknown_203B058
-_08118C24: .4byte gUnknown_84578BC
-_08118C28:
- movs r0, 0x5
- bl _081198DA
-_08118C2E:
- ldr r0, _08118C54 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08118C3A
- bl _081198DC
-_08118C3A:
- movs r0, 0
- bl sub_811B258
- movs r2, 0
- ldrsh r0, [r7, r2]
- movs r3, 0x2
- ldrsh r1, [r7, r3]
- ldr r2, [r6]
- bl sub_811C028
- movs r0, 0x2
- bl _081198DA
- .align 2, 0
-_08118C54: .4byte gReceivedRemoteLinkPlayers
-_08118C58:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1B
- adds r2, r6, 0
- adds r2, 0x1C
- ldr r3, _08118C8C @ =gUnknown_8456DF4
- ldr r4, _08118C90 @ =gUnknown_8456E1C
- str r4, [sp]
- bl sub_811A218
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _08118C7C
- bl _081198DC
-_08118C7C:
- ldr r0, _08118C94 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08118C98
- movs r0, 0x1C
- bl _081198DA
- .align 2, 0
-_08118C8C: .4byte gUnknown_8456DF4
-_08118C90: .4byte gUnknown_8456E1C
-_08118C94: .4byte gReceivedRemoteLinkPlayers
-_08118C98:
- adds r1, r6, 0
- adds r1, 0x84
- movs r0, 0
- strh r0, [r1]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- ldr r1, [r6]
- bl sub_811ADC4
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08118CB6
- cmp r5, 0x40
- bne _08118CE8
-_08118CB6:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x40
- strh r1, [r0]
- bl sub_80F9E2C
- ldr r0, _08118CDC @ =gStringVar4
- ldr r2, _08118CE0 @ =gUnknown_845842C
- ldr r1, _08118CE4 @ =gLinkPlayers
- ldrb r1, [r1, 0x13]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x20
- bl _081198DA
- .align 2, 0
-_08118CDC: .4byte gStringVar4
-_08118CE0: .4byte gUnknown_845842C
-_08118CE4: .4byte gLinkPlayers
-_08118CE8:
- ldr r0, _08118D10 @ =gUnknown_203B058
- strb r5, [r0]
- ldr r1, _08118D14 @ =gUnknown_203B059
- lsrs r0, r5, 8
- strb r0, [r1]
- lsls r0, r5, 24
- lsrs r0, 24
- cmp r0, 0x41
- bne _08118D1C
- bl sub_811B0F0
- cmp r0, 0
- bne _08118D1C
- ldr r1, _08118D18 @ =gUnknown_845847C
- movs r0, 0x5
- bl sub_8118664
- bl _081198DC
- .align 2, 0
-_08118D10: .4byte gUnknown_203B058
-_08118D14: .4byte gUnknown_203B059
-_08118D18: .4byte gUnknown_845847C
-_08118D1C:
- ldr r0, _08118D34 @ =gUnknown_203B058
- ldrb r0, [r0]
- movs r1, 0x40
- orrs r1, r0
- adds r0, r6, 0
- adds r0, 0x4C
- strh r1, [r0]
- bl sub_80F9E2C
- movs r0, 0x1B
- bl _081198DA
- .align 2, 0
-_08118D34: .4byte gUnknown_203B058
-_08118D38:
- ldr r0, _08118D48 @ =gStringVar4
- ldr r1, _08118D4C @ =gUnknown_8458434
- bl StringCopy
- movs r0, 0x24
- bl _081198DA
- .align 2, 0
-_08118D48: .4byte gStringVar4
-_08118D4C: .4byte gUnknown_8458434
-_08118D50:
- adds r0, r6, 0
- bl sub_811B0A4
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- bl sub_811ADC4
- adds r4, r0, 0
- adds r0, r6, 0
- adds r0, 0x4C
- ldrh r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- bl sub_811A9FC
- adds r5, r0, 0
- adds r0, r6, 0
- adds r0, 0x16
- ldr r3, _08118D9C @ =gUnknown_84580F4
- lsls r1, r5, 2
- lsls r2, r4, 4
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08118D90
- bl _081198DC
-_08118D90:
- movs r0, 0
- strh r0, [r7, 0x6]
- movs r0, 0x1D
- bl _081198DA
- .align 2, 0
-_08118D9C: .4byte gUnknown_84580F4
-_08118DA0:
- bl sub_800AAC0
- movs r0, 0x24
- bl _081198DA
-_08118DAA:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x44
- strh r1, [r0]
- ldr r2, _08118DD0 @ =gUnknown_203B06C
- ldrh r1, [r2, 0xE]
- adds r3, r6, 0
- adds r3, 0x4E
- strh r1, [r3]
- ldrh r2, [r2, 0x10]
- adds r1, r6, 0
- adds r1, 0x50
- strh r2, [r1]
- bl sub_80F9E2C
- movs r0, 0x1D
- bl _081198DA
- .align 2, 0
-_08118DD0: .4byte gUnknown_203B06C
-_08118DD4:
- ldr r0, _08118DEC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08118DF8
- ldr r0, _08118DF0 @ =gStringVar4
- ldr r1, _08118DF4 @ =gUnknown_8458434
- bl StringCopy
- movs r0, 0x1C
- bl _081198DA
- .align 2, 0
-_08118DEC: .4byte gReceivedRemoteLinkPlayers
-_08118DF0: .4byte gStringVar4
-_08118DF4: .4byte gUnknown_8458434
-_08118DF8:
- adds r0, r6, 0
- bl sub_811B0A4
- adds r0, r6, 0
- adds r0, 0x84
- ldrh r0, [r0]
- cmp r0, 0x51
- bne _08118E2E
- ldr r0, _08118E20 @ =gUnknown_203B058
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08118E28
- ldr r0, _08118E24 @ =gStringVar4
- adds r1, r6, 0
- movs r2, 0
- bl sub_811B31C
- movs r0, 0x28
- bl _081198DA
- .align 2, 0
-_08118E20: .4byte gUnknown_203B058
-_08118E24: .4byte gStringVar4
-_08118E28:
- movs r0, 0xD
- bl _081198DA
-_08118E2E:
- cmp r0, 0x52
- beq _08118E36
- bl _081198DC
-_08118E36:
- movs r5, 0
- movs r0, 0x20
- strb r0, [r6, 0x14]
- ldr r0, _08118E54 @ =gStringVar4
- ldr r4, _08118E58 @ =gUnknown_203B058
- ldrb r2, [r4]
- movs r1, 0x40
- orrs r1, r2
- ldr r2, _08118E5C @ =gLinkPlayers
- ldrb r2, [r2, 0x13]
- bl sub_811AE68
- strb r5, [r4]
- bl _081198DC
- .align 2, 0
-_08118E54: .4byte gStringVar4
-_08118E58: .4byte gUnknown_203B058
-_08118E5C: .4byte gLinkPlayers
-_08118E60:
- movs r0, 0x2
- ldrsh r1, [r7, r0]
- lsls r1, 5
- ldr r0, [r6]
- adds r0, r1
- bl sub_811AA24
- adds r5, r0, 0
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- ldr r1, [r6]
- bl sub_811ADC4
- adds r4, r0, 0
- ldr r2, _08118E94 @ =gUnknown_8457B04
- lsls r0, r4, 2
- lsls r1, r5, 3
- adds r0, r1
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x6
- bl sub_8118664
- bl _081198DC
- .align 2, 0
-_08118E94: .4byte gUnknown_8457B04
-_08118E98:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _08118EC4 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08118EAC
- bl _081198DC
-_08118EAC:
- movs r4, 0
- movs r0, 0x29
- strb r0, [r6, 0x14]
- bl sub_800AB9C
- adds r0, r6, 0
- adds r0, 0x84
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- bl _081198DC
- .align 2, 0
-_08118EC4: .4byte gStringVar4
-_08118EC8:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08118ED6
- bl _081198DC
-_08118ED6:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _08118F30
- ldr r5, _08118F20 @ =gStringVar1
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r4, _08118F24 @ =gLinkPlayers + 8
- adds r1, r4
- adds r0, r5, 0
- bl StringCopy
- ldrh r0, [r4, 0x18]
- adds r4, 0x1C
- adds r1, r4, 0
- bl sub_80FD338
- adds r5, r0, 0
- ldr r0, _08118F28 @ =gStringVar4
- ldr r2, _08118F2C @ =gUnknown_8457C20
- lsls r1, r5, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringExpandPlaceholders
- movs r0, 0x21
- bl _081198DA
- .align 2, 0
-_08118F20: .4byte gStringVar1
-_08118F24: .4byte gLinkPlayers + 8
-_08118F28: .4byte gStringVar4
-_08118F2C: .4byte gUnknown_8457C20
-_08118F30:
- movs r0, 0x7
- bl _081198DA
-_08118F36:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r5, r0, 24
- cmp r5, 0
- beq _08118F60
- cmp r5, 0
- bgt _08118F58
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _08118F9C
- bl _081198DC
-_08118F58:
- cmp r5, 0x1
- beq _08118F9C
- bl _081198DC
-_08118F60:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r4, _08118F98 @ =gUnknown_203B058
- movs r0, 0x45
- strb r0, [r4]
- movs r0, 0x45
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x10
- ldrb r2, [r4]
- bl sub_80FC114
- ldrh r0, [r7, 0x2]
- strh r0, [r6, 0x12]
- movs r0, 0x14
- strb r0, [r6, 0x14]
- strh r5, [r7, 0x6]
- bl _081198DC
- .align 2, 0
-_08118F98: .4byte gUnknown_203B058
-_08118F9C:
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- bl sub_811ADC4
- adds r4, r0, 0
- ldr r1, _08118FB8 @ =gUnknown_8458548
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- bl sub_811868C
- bl _081198DC
- .align 2, 0
-_08118FB8: .4byte gUnknown_8458548
-_08118FBC:
- ldrh r0, [r7, 0x4]
- adds r0, 0x1
- strh r0, [r7, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bgt _08118FCE
- bl _081198DC
-_08118FCE:
- movs r1, 0
- movs r0, 0x15
- strb r0, [r6, 0x14]
- strh r1, [r7, 0x4]
- bl _081198DC
-_08118FDA:
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- beq _08119040
- cmp r4, 0x3
- ble _08118FF8
- cmp r4, 0x4
- bne _08119044
- movs r0, 0x1
- bl sub_811B258
- strb r4, [r6, 0x14]
- b _08119044
-_08118FF8:
- cmp r4, 0x1
- blt _08119044
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- ldr r1, [r6]
- bl sub_811ADC4
- adds r4, r0, 0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- bl sub_80FBB0C
- cmp r0, 0x1
- bne _0811902C
- ldr r0, _08119028 @ =gUnknown_84585E8
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_811868C
- b _08119044
- .align 2, 0
-_08119028: .4byte gUnknown_84585E8
-_0811902C:
- ldr r0, _0811903C @ =gUnknown_84585E8
- lsls r1, r4, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1E
- bl sub_8118664
- b _08119044
- .align 2, 0
-_0811903C: .4byte gUnknown_84585E8
-_08119040:
- movs r0, 0x16
- strb r0, [r6, 0x14]
-_08119044:
- ldrh r0, [r7, 0x6]
- adds r0, 0x1
- strh r0, [r7, 0x6]
- bl _081198DC
-_0811904E:
- bl sub_80FBA00
- cmp r0, 0
- beq _08119096
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- ldr r1, [r6]
- bl sub_811ADC4
- adds r4, r0, 0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_80FB008
- bl sub_80FBB0C
- cmp r0, 0x1
- bne _08119088
- ldr r0, _08119084 @ =gUnknown_84585E8
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_811868C
- b _08119096
- .align 2, 0
-_08119084: .4byte gUnknown_84585E8
-_08119088:
- ldr r0, _081190A8 @ =gUnknown_84585E8
- lsls r1, r4, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1E
- bl sub_8118664
-_08119096:
- ldr r0, _081190AC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _081190A2
- bl _081198DC
-_081190A2:
- movs r0, 0x10
- bl _081198DA
- .align 2, 0
-_081190A8: .4byte gUnknown_84585E8
-_081190AC: .4byte gReceivedRemoteLinkPlayers
-_081190B0:
- movs r0, 0x42
- bl PlaySE
- bl sub_80F8FA0
- movs r0, 0
- movs r1, 0xC
- strb r1, [r6, 0x14]
- adds r1, r6, 0
- adds r1, 0x86
- strh r0, [r1]
- bl _081198DC
-_081190CA:
- bl sub_80FBA00
- cmp r0, 0
- beq _081190DE
- movs r0, 0
- bl sub_811B258
- movs r0, 0x2
- bl _081198DA
-_081190DE:
- ldr r0, _08119100 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _081190EA
- bl _081198DC
-_081190EA:
- ldr r0, _08119104 @ =gBlockSendBuffer
- movs r1, 0x1
- bl sub_8117594
- ldr r0, _08119108 @ =sub_8117280
- movs r1, 0x5
- bl CreateTask
- movs r0, 0x27
- bl _081198DA
- .align 2, 0
-_08119100: .4byte gReceivedRemoteLinkPlayers
-_08119104: .4byte gBlockSendBuffer
-_08119108: .4byte sub_8117280
-_0811910C:
- adds r0, r6, 0
- bl sub_8119904
- ldr r0, _08119150 @ =sub_8117280
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08119122
- bl _081198DC
-_08119122:
- movs r0, 0x21
- strb r0, [r6, 0x14]
- ldr r0, _08119154 @ =gStringVar1
- ldr r4, _08119158 @ =gLinkPlayers + 0x24
- adds r1, r4, 0
- bl StringCopy
- adds r0, r4, 0
- subs r0, 0x24
- ldrh r0, [r0, 0x20]
- adds r1, r4, 0
- bl sub_80FD338
- adds r5, r0, 0
- ldr r0, _0811915C @ =gStringVar4
- ldr r2, _08119160 @ =gUnknown_8457BCC
- lsls r1, r5, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringExpandPlaceholders
- b _081198DC
- .align 2, 0
-_08119150: .4byte sub_8117280
-_08119154: .4byte gStringVar1
-_08119158: .4byte gLinkPlayers + 0x24
-_0811915C: .4byte gStringVar4
-_08119160: .4byte gUnknown_8457BCC
-_08119164:
- adds r0, r6, 0
- bl sub_8119904
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _08119180 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _0811917C
- b _081198DC
-_0811917C:
- movs r0, 0x22
- b _081198DA
- .align 2, 0
-_08119180: .4byte gStringVar4
-_08119184:
- adds r0, r6, 0
- bl sub_8119904
- adds r0, r6, 0
- bl sub_8119944
- cmp r0, 0
- bne _08119196
- b _081198DC
-_08119196:
- ldr r0, _081191B8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081191A4
- b _081198DC
-_081191A4:
- movs r0, 0x1
- bl sub_80FBD6C
- ldr r0, _081191BC @ =gStringVar4
- ldr r1, _081191C0 @ =gUnknown_8457E60
- bl StringCopy
- movs r0, 0x24
- b _081198DA
- .align 2, 0
-_081191B8: .4byte gMain
-_081191BC: .4byte gStringVar4
-_081191C0: .4byte gUnknown_8457E60
-_081191C4:
- ldr r1, _081191D0 @ =gStringVar4
- movs r0, 0x9
- bl sub_8118664
- b _081198DC
- .align 2, 0
-_081191D0: .4byte gStringVar4
-_081191D4:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081191FA
- cmp r1, 0
- bgt _081191F4
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081192BA
- b _081198DC
-_081191F4:
- cmp r1, 0x1
- beq _081192BA
- b _081198DC
-_081191FA:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x51
- strh r1, [r0]
- ldr r1, _08119228 @ =gUnknown_203B058
- ldrb r1, [r1]
- adds r5, r0, 0
- cmp r1, 0x45
- bne _0811922C
- movs r4, 0x40
- orrs r4, r1
- movs r0, 0x1
- bl sub_811B2A8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FB008
- b _0811924A
- .align 2, 0
-_08119228: .4byte gUnknown_203B058
-_0811922C:
- movs r0, 0x40
- adds r4, r1, 0
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_811B2A8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_80FB008
-_0811924A:
- ldr r1, [r6, 0x8]
- movs r0, 0
- strb r0, [r1, 0x1B]
- strh r0, [r7, 0x6]
- ldr r0, _0811927C @ =gUnknown_203B058
- ldrb r0, [r0]
- cmp r0, 0x41
- bne _08119292
- bl sub_811B0F0
- cmp r0, 0
- bne _08119288
- movs r0, 0x52
- strh r0, [r5]
- adds r0, r5, 0
- bl sub_80F9E2C
- movs r0, 0xA
- strb r0, [r6, 0x14]
- ldr r0, _08119280 @ =gStringVar4
- ldr r1, _08119284 @ =gUnknown_84584C0
- bl StringCopy
- b _081198DC
- .align 2, 0
-_0811927C: .4byte gUnknown_203B058
-_08119280: .4byte gStringVar4
-_08119284: .4byte gUnknown_84584C0
-_08119288:
- adds r0, r5, 0
- bl sub_80F9E2C
- movs r0, 0xD
- b _081198DA
-_08119292:
- cmp r0, 0x48
- bne _081192B0
- adds r0, r5, 0
- bl sub_80F9E2C
- ldr r0, _081192AC @ =gStringVar4
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_811B31C
- movs r0, 0x28
- b _081198DA
- .align 2, 0
-_081192AC: .4byte gStringVar4
-_081192B0:
- adds r0, r5, 0
- bl sub_80F9E2C
- movs r0, 0xD
- b _081198DA
-_081192BA:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x52
- strh r1, [r0]
- bl sub_80F9E2C
- movs r0, 0xA
- strb r0, [r6, 0x14]
- ldr r0, _081192D8 @ =gStringVar4
- ldr r1, _081192DC @ =gUnknown_203B058
- ldrb r1, [r1]
- bl sub_81162E0
- b _081198DC
- .align 2, 0
-_081192D8: .4byte gStringVar4
-_081192DC: .4byte gUnknown_203B058
-_081192E0:
- bl sub_800AAC0
- movs r0, 0x24
- b _081198DA
-_081192E8:
- ldr r0, _08119318 @ =gReceivedRemoteLinkPlayers
- ldrb r4, [r0]
- cmp r4, 0
- beq _081192F2
- b _081198DC
-_081192F2:
- ldr r1, _0811931C @ =gUnknown_203B058
- movs r0, 0x40
- strb r0, [r1]
- ldr r1, _08119320 @ =gStringVar4
- movs r0, 0x25
- bl sub_8118664
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0
- movs r2, 0xC
- bl memset
- adds r0, r6, 0
- adds r0, 0x86
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- b _081198DC
- .align 2, 0
-_08119318: .4byte gReceivedRemoteLinkPlayers
-_0811931C: .4byte gUnknown_203B058
-_08119320: .4byte gStringVar4
-_08119324:
- movs r0, 0x2
- strb r0, [r6, 0x14]
- movs r0, 0
- bl sub_811B258
- b _081198DC
-_08119330:
- ldr r4, _0811934C @ =gStringVar4
- ldr r0, _08119350 @ =gUnknown_203B058
- ldrb r0, [r0]
- movs r1, 0x40
- orrs r1, r0
- adds r0, r4, 0
- bl sub_811AECC
- movs r0, 0xE
- adds r1, r4, 0
- bl sub_8118664
- b _081198DC
- .align 2, 0
-_0811934C: .4byte gStringVar4
-_08119350: .4byte gUnknown_203B058
-_08119354:
- bl sub_800AB9C
- movs r0, 0xF
- b _081198DA
-_0811935C:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08119368
- b _081198DC
-_08119368:
- movs r0, 0x10
- b _081198DA
-_0811936C:
- ldr r0, [r6, 0x8]
- bl Free
- ldr r0, [r6]
- bl Free
- ldr r0, [r6, 0xC]
- bl Free
- ldr r0, [r6, 0x4]
- bl Free
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r6, 0
- adds r0, 0x21
- bl sub_811BB40
- movs r0, 0x11
- b _081198DA
-_0811939A:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x12
- b _081198DA
-_081193AE:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- beq _081193BA
- b _081198DC
-_081193BA:
- bl sub_811BA78
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _081193D4 @ =gUnknown_203B05C
- ldr r0, [r0]
- bl Free
- bl sub_81179A4
- b _081198DC
- .align 2, 0
-_081193D4: .4byte gUnknown_203B05C
-_081193D8:
- bl sub_80F9800
- ldrh r1, [r0, 0x8]
- ldr r4, _081193EC @ =0x000003ff
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _081193F0
- movs r0, 0x2B
- b _081198DA
- .align 2, 0
-_081193EC: .4byte 0x000003ff
-_081193F0:
- bl sub_80F9800
- ldrh r1, [r0, 0x8]
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08119414
- ldr r0, _0811940C @ =gStringVar4
- ldr r1, _08119410 @ =gUnknown_8458DE8
- bl StringCopy
- b _0811944A
- .align 2, 0
-_0811940C: .4byte gStringVar4
-_08119410: .4byte gUnknown_8458DE8
-_08119414:
- ldr r4, _08119454 @ =gStringVar1
- bl sub_80F9800
- ldrh r0, [r0, 0x8]
- lsls r0, 22
- lsrs r0, 22
- movs r1, 0xB
- muls r1, r0
- ldr r0, _08119458 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _0811945C @ =gStringVar2
- bl sub_80F9800
- ldrb r1, [r0, 0xB]
- lsrs r1, 1
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _08119460 @ =gStringVar4
- ldr r1, _08119464 @ =gUnknown_8458DBC
- bl StringExpandPlaceholders
-_0811944A:
- ldr r1, _08119460 @ =gStringVar4
- movs r0, 0x2C
- bl sub_8118664
- b _081198DC
- .align 2, 0
-_08119454: .4byte gStringVar1
-_08119458: .4byte gSpeciesNames
-_0811945C: .4byte gStringVar2
-_08119460: .4byte gStringVar4
-_08119464: .4byte gUnknown_8458DBC
-_08119468:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _08119480 @ =gUnknown_8458AB8
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _0811947A
- b _081198DC
-_0811947A:
- movs r0, 0x2F
- b _081198DA
- .align 2, 0
-_08119480: .4byte gUnknown_8458AB8
-_08119484:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1D
- adds r2, r6, 0
- adds r2, 0x1E
- ldr r3, _081194BC @ =gUnknown_8456E34
- ldr r4, _081194C0 @ =gUnknown_8456E54
- str r4, [sp]
- bl sub_811A218
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _081194A6
- b _081198DC
-_081194A6:
- subs r0, 0x1
- cmp r5, r0
- beq _081194B0
- cmp r5, 0x3
- bne _081194C4
-_081194B0:
- movs r0, 0x4
- strb r0, [r6, 0x14]
- movs r0, 0x1
- bl sub_811B258
- b _081194E4
- .align 2, 0
-_081194BC: .4byte gUnknown_8456E34
-_081194C0: .4byte gUnknown_8456E54
-_081194C4:
- cmp r5, 0x1
- beq _081194CE
- cmp r5, 0x2
- beq _081194DC
- b _081194E4
-_081194CE:
- ldr r1, _081194D8 @ =gUnknown_8458D1C
- movs r0, 0x35
- bl sub_8118664
- b _081194E4
- .align 2, 0
-_081194D8: .4byte gUnknown_8458D1C
-_081194DC:
- ldr r1, _081194EC @ =gUnknown_8458B44
- movs r0, 0x2F
- bl sub_8118664
-_081194E4:
- bl DestroyHelpMessageWindow_
- b _081198DC
- .align 2, 0
-_081194EC: .4byte gUnknown_8458B44
-_081194F0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x36
- b _081198DA
-_08119504:
- ldr r0, _08119528 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08119512
- b _081198DC
-_08119512:
- ldr r1, _0811952C @ =gUnknown_203B06C
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _08119530 @ =gFieldCallback
- ldr r0, _08119534 @ =sub_807DCE4
- str r0, [r1]
- ldr r1, _08119538 @ =CB2_ReturnToField
- movs r0, 0x8
- bl sub_81277F4
- b _081198DC
- .align 2, 0
-_08119528: .4byte gPaletteFade
-_0811952C: .4byte gUnknown_203B06C
-_08119530: .4byte gFieldCallback
-_08119534: .4byte sub_807DCE4
-_08119538: .4byte CB2_ReturnToField
-_0811953C:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1D
- adds r2, r6, 0
- adds r2, 0x1E
- ldr r3, _08119580 @ =gUnknown_8456E6C
- ldr r4, _08119584 @ =gUnknown_8456F04
- str r4, [sp]
- bl sub_811A218
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0811955E
- b _081198DC
-_0811955E:
- subs r0, 0x1
- cmp r5, r0
- beq _08119568
- cmp r5, 0x12
- bne _08119590
-_08119568:
- ldr r0, _08119588 @ =gUnknown_203B06C
- bl sub_811B148
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80FAFA0
- ldr r0, _0811958C @ =gUnknown_8458D54
- bl sub_811868C
- b _081198DC
- .align 2, 0
-_08119580: .4byte gUnknown_8456E6C
-_08119584: .4byte gUnknown_8456F04
-_08119588: .4byte gUnknown_203B06C
-_0811958C: .4byte gUnknown_8458D54
-_08119590:
- ldr r0, _08119598 @ =gUnknown_203B06C
- strh r5, [r0, 0x2]
- movs r0, 0x37
- b _081198DA
- .align 2, 0
-_08119598: .4byte gUnknown_203B06C
-_0811959C:
- ldr r2, _081195B0 @ =gUnknown_203B06C
- ldrh r0, [r2, 0x2]
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0xC]
- bl sub_80FAFA0
- ldr r0, _081195B4 @ =gUnknown_8458D78
- bl sub_811868C
- b _081198DC
- .align 2, 0
-_081195B0: .4byte gUnknown_203B06C
-_081195B4: .4byte gUnknown_8458D78
-_081195B8:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081195DE
- cmp r1, 0
- bgt _081195D8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081195E2
- b _081198DC
-_081195D8:
- cmp r1, 0x1
- beq _081195E2
- b _081198DC
-_081195DE:
- movs r0, 0x38
- b _081198DA
-_081195E2:
- movs r0, 0x1
- bl sub_811B258
- movs r0, 0x4
- b _081198DA
-_081195EC:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _08119618 @ =gUnknown_8458E10
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _081195FE
- b _081198DC
-_081195FE:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80FAFA0
- ldr r0, _0811961C @ =gUnknown_203B06C
- bl sub_811B148
- movs r0, 0x1
- bl sub_811B258
- movs r0, 0x4
- b _081198DA
- .align 2, 0
-_08119618: .4byte gUnknown_8458E10
-_0811961C: .4byte gUnknown_203B06C
-_08119620:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _08119638 @ =gUnknown_8458A98
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _08119632
- b _081198DC
-_08119632:
- movs r0, 0x2E
- b _081198DA
- .align 2, 0
-_08119638: .4byte gUnknown_8458A98
-_0811963C:
- bl sub_811A3F8
- movs r0, 0x30
- b _081198DA
-_08119644:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1D
- adds r2, r6, 0
- adds r2, 0x4A
- adds r3, r6, 0
- adds r3, 0x1E
- ldr r4, _08119688 @ =gUnknown_8456F24
- str r4, [sp]
- ldr r4, _0811968C @ =gUnknown_8456F7C
- str r4, [sp, 0x4]
- ldr r4, [r6]
- str r4, [sp, 0x8]
- bl sub_811A2EC
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _08119670
- b _081198DC
-_08119670:
- subs r0, 0x1
- cmp r5, r0
- beq _0811967A
- cmp r5, 0x8
- bne _08119690
-_0811967A:
- movs r0, 0x1
- bl sub_811B258
- bl DestroyHelpMessageWindow_
- movs r0, 0x4
- b _081198DA
- .align 2, 0
-_08119688: .4byte gUnknown_8456F24
-_0811968C: .4byte gUnknown_8456F7C
-_08119690:
- ldr r1, [r6]
- lsls r3, r5, 5
- mov r8, r3
- add r1, r8
- ldrb r0, [r1, 0x9]
- lsrs r0, 2
- ldrh r1, [r1, 0x8]
- lsls r1, 22
- lsrs r1, 22
- bl sub_811ADD0
- cmp r0, 0x1
- beq _081196EC
- cmp r0, 0x1
- bgt _081196B4
- cmp r0, 0
- beq _081196BA
- b _081198DC
-_081196B4:
- cmp r0, 0x2
- beq _08119734
- b _081198DC
-_081196BA:
- ldr r4, _081196E4 @ =gStringVar1
- ldr r1, [r6]
- add r1, r8
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r0, [r6]
- add r0, r8
- ldrb r1, [r0]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r1, _081196E8 @ =gUnknown_8458E70
- movs r0, 0x31
- bl sub_8118664
- strh r5, [r7, 0x2]
- b _081198DC
- .align 2, 0
-_081196E4: .4byte gStringVar1
-_081196E8: .4byte gUnknown_8458E70
-_081196EC:
- ldr r4, _08119724 @ =gStringVar1
- ldr r1, [r6]
- add r1, r8
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r0, [r6]
- add r0, r8
- ldrb r1, [r0]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, _08119728 @ =gStringVar2
- ldr r1, [r6]
- add r1, r8
- ldrb r2, [r1, 0x9]
- lsrs r2, 2
- lsls r1, r2, 3
- subs r1, r2
- ldr r2, _0811972C @ =gTypeNames
- adds r1, r2
- bl StringCopy
- ldr r1, _08119730 @ =gUnknown_8458ED0
- b _0811976A
- .align 2, 0
-_08119724: .4byte gStringVar1
-_08119728: .4byte gStringVar2
-_0811972C: .4byte gTypeNames
-_08119730: .4byte gUnknown_8458ED0
-_08119734:
- ldr r4, _08119774 @ =gStringVar1
- ldr r1, [r6]
- add r1, r8
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r0, [r6]
- add r0, r8
- ldrb r1, [r0]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, _08119778 @ =gStringVar2
- ldr r1, [r6]
- add r1, r8
- ldrb r2, [r1, 0x9]
- lsrs r2, 2
- lsls r1, r2, 3
- subs r1, r2
- ldr r2, _0811977C @ =gTypeNames
- adds r1, r2
- bl StringCopy
- ldr r1, _08119780 @ =gUnknown_8458F04
-_0811976A:
- movs r0, 0x2E
- bl sub_8118664
- b _081198DC
- .align 2, 0
-_08119774: .4byte gStringVar1
-_08119778: .4byte gStringVar2
-_0811977C: .4byte gTypeNames
-_08119780: .4byte gUnknown_8458F04
-_08119784:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_811A14C
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081197AA
- cmp r1, 0
- bgt _081197A4
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081197AE
- b _081198DC
-_081197A4:
- cmp r1, 0x1
- beq _081197AE
- b _081198DC
-_081197AA:
- movs r0, 0x32
- b _081198DA
-_081197AE:
- movs r0, 0x1
- bl sub_811B258
- movs r0, 0x4
- b _081198DA
-_081197B8:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _08119820 @ =gUnknown_8458D1C
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- bne _081197CA
- b _081198DC
-_081197CA:
- ldr r4, _08119824 @ =gUnknown_203B06C
- movs r0, 0x2
- strh r0, [r4]
- ldr r2, _08119828 @ =gUnknown_203B064
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- ldr r1, [r6]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r2, _0811982C @ =gUnionRoomRequestedMonType
- ldr r1, [r6]
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0x9]
- lsrs r0, 2
- strb r0, [r2]
- ldr r2, _08119830 @ =gUnionRoomOfferedSpecies
- ldr r1, [r6]
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- lsls r0, 5
- adds r1, r0
- ldrh r0, [r1, 0x8]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r2]
- ldr r1, _08119834 @ =gFieldCallback
- ldr r0, _08119838 @ =sub_807DCE4
- str r0, [r1]
- ldr r1, _0811983C @ =CB2_ReturnToField
- movs r0, 0x9
- bl sub_81277F4
- adds r0, r6, 0
- bl sub_81186B0
- ldrh r0, [r7, 0x2]
- strb r0, [r4, 0x8]
- b _081198DC
- .align 2, 0
-_08119820: .4byte gUnknown_8458D1C
-_08119824: .4byte gUnknown_203B06C
-_08119828: .4byte gUnknown_203B064
-_0811982C: .4byte gUnionRoomRequestedMonType
-_08119830: .4byte gUnionRoomOfferedSpecies
-_08119834: .4byte gFieldCallback
-_08119838: .4byte sub_807DCE4
-_0811983C: .4byte CB2_ReturnToField
-_08119840:
- ldr r1, _08119890 @ =gUnknown_203B058
- movs r0, 0x44
- strb r0, [r1]
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x10
- movs r2, 0x44
- bl sub_80FC114
- ldr r4, _08119894 @ =gStringVar1
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldr r1, [r6]
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, _08119898 @ =gUnknown_8457A34
- ldr r0, [r0, 0x8]
- bl sub_811A0B4
- movs r0, 0x19
- b _081198DA
- .align 2, 0
-_08119890: .4byte gUnknown_203B058
-_08119894: .4byte gStringVar1
-_08119898: .4byte gUnknown_8457A34
-_0811989C:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _081198C4 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _081198DC
- movs r0, 0x1
- bl sub_811B258
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- ldr r2, [r6]
- bl sub_811C028
- movs r0, 0x4
- b _081198DA
- .align 2, 0
-_081198C4: .4byte gStringVar4
-_081198C8:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, _081198E8 @ =gStringVar4
- bl sub_811A0F8
- lsls r0, 24
- cmp r0, 0
- beq _081198DC
- ldrb r0, [r6, 0x15]
-_081198DA:
- strb r0, [r6, 0x14]
-_081198DC:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081198E8: .4byte gStringVar4
- thumb_func_end sub_81186E0
-
- thumb_func_start var_800D_set_xB
-var_800D_set_xB: @ 81198EC
- push {lr}
- bl InUnionRoom
- cmp r0, 0x1
- bne _081198FC
- ldr r1, _08119900 @ =gSpecialVar_Result
- movs r0, 0xB
- strh r0, [r1]
-_081198FC:
- pop {r0}
- bx r0
- .align 2, 0
-_08119900: .4byte gSpecialVar_Result
- thumb_func_end var_800D_set_xB
-
- thumb_func_start sub_8119904
-sub_8119904: @ 8119904
- push {r4,r5,lr}
- adds r2, r0, 0
- ldr r3, _08119940 @ =gRecvCmds
- ldrh r5, [r3, 0x12]
- adds r4, r5, 0
- cmp r4, 0
- beq _08119938
- ldrh r0, [r3, 0x10]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _08119938
- adds r0, r2, 0
- adds r0, 0x86
- strh r5, [r0]
- cmp r4, 0x44
- bne _08119938
- ldrh r1, [r3, 0x14]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r1, [r3, 0x16]
- adds r0, 0x2
- strh r1, [r0]
-_08119938:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119940: .4byte gRecvCmds
- thumb_func_end sub_8119904
-
- thumb_func_start sub_8119944
-sub_8119944: @ 8119944
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r4, 0
- adds r5, 0x86
- ldrh r0, [r5]
- cmp r0, 0
- beq _08119994
- ldr r0, _08119978 @ =gStringVar4
- ldr r1, _0811997C @ =gLinkPlayers
- adds r1, 0x2F
- ldrb r1, [r1]
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_811AF6C
- cmp r0, 0
- beq _08119994
- cmp r0, 0x1
- bne _08119984
- movs r0, 0x23
- strb r0, [r4, 0x14]
- ldr r1, _08119980 @ =gUnknown_203B058
- ldrh r0, [r5]
- strb r0, [r1]
- movs r0, 0
- b _08119996
- .align 2, 0
-_08119978: .4byte gStringVar4
-_0811997C: .4byte gLinkPlayers
-_08119980: .4byte gUnknown_203B058
-_08119984:
- cmp r0, 0x2
- bne _08119994
- movs r0, 0x24
- strb r0, [r4, 0x14]
- bl sub_800AAC0
- movs r0, 0
- b _08119996
-_08119994:
- movs r0, 0x1
-_08119996:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8119944
-
- thumb_func_start InitUnionRoom
-InitUnionRoom: @ 811999C
- push {r4-r6,lr}
- ldr r5, _081199E8 @ =gUnknown_203B04C
- movs r0, 0x1
- negs r0, r0
- adds r6, r0, 0
- movs r0, 0xFF
- strb r0, [r5]
- ldr r0, _081199EC @ =gQuestLogState
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _081199E0
- ldr r0, _081199F0 @ =sub_81199FC
- movs r1, 0
- bl CreateTask
- ldr r4, _081199F4 @ =gUnknown_203B05C
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- ldr r1, _081199F8 @ =gUnknown_300202C
- str r0, [r1]
- movs r1, 0
- strb r1, [r0, 0x14]
- strb r1, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- ldrb r0, [r5]
- orrs r0, r6
- strb r0, [r5]
-_081199E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081199E8: .4byte gUnknown_203B04C
-_081199EC: .4byte gQuestLogState
-_081199F0: .4byte sub_81199FC
-_081199F4: .4byte gUnknown_203B05C
-_081199F8: .4byte gUnknown_300202C
- thumb_func_end InitUnionRoom
-
- thumb_func_start sub_81199FC
-sub_81199FC: @ 81199FC
- push {r4-r6,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08119A1C @ =gUnknown_203B05C
- ldr r5, [r0]
- ldrb r0, [r5, 0x14]
- cmp r0, 0x4
- bls _08119A10
- b _08119B5C
-_08119A10:
- lsls r0, 2
- ldr r1, _08119A20 @ =_08119A24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08119A1C: .4byte gUnknown_203B05C
-_08119A20: .4byte _08119A24
- .align 2, 0
-_08119A24:
- .4byte _08119A38
- .4byte _08119A3E
- .4byte _08119A60
- .4byte _08119AB0
- .4byte _08119B28
-_08119A38:
- movs r0, 0x1
- strb r0, [r5, 0x14]
- b _08119B5C
-_08119A3E:
- movs r0, 0xC
- movs r1, 0
- movs r2, 0
- bl sub_80FAF58
- bl sub_800B1F4
- bl OpenLink
- bl sub_80FBC00
- movs r0, 0x1
- bl sub_80FB128
- movs r0, 0x2
- strb r0, [r5, 0x14]
- b _08119B5C
-_08119A60:
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0x4]
- movs r1, 0x4
- bl sub_811A650
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0xC]
- movs r1, 0x4
- bl sub_811A650
- movs r0, 0x80
- lsls r0, 1
- bl AllocZeroed
- str r0, [r5]
- movs r1, 0x8
- bl sub_811A5E4
- movs r0, 0x20
- bl AllocZeroed
- str r0, [r5, 0x8]
- movs r1, 0x1
- bl sub_811A5E4
- ldr r0, [r5, 0xC]
- ldr r1, [r5, 0x4]
- movs r2, 0xA
- bl sub_8119E84
- adds r1, r5, 0
- adds r1, 0x20
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r5, 0x14]
- b _08119B5C
-_08119AB0:
- bl sub_8119B94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- blt _08119B5C
- cmp r0, 0x2
- bgt _08119B5C
- ldr r0, _08119B14 @ =gUnknown_203B04C
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08119B5C
- movs r6, 0
-_08119ACA:
- ldr r0, [r5]
- lsls r4, r6, 5
- adds r1, r0, r4
- ldrb r0, [r1, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08119B0A
- adds r1, 0x10
- mov r0, sp
- bl StringCopy
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 28
- lsrs r1, 28
- mov r0, sp
- bl ConvertInternationalString
- ldr r0, [r5]
- adds r0, r4
- adds r0, 0x2
- bl sub_8118658
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_80FD338
- cmp r0, 0
- bne _08119B18
-_08119B0A:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08119ACA
- b _08119B5C
- .align 2, 0
-_08119B14: .4byte gUnknown_203B04C
-_08119B18:
- ldr r0, _08119B24 @ =gUnknown_203B04C
- mov r1, sp
- bl StringCopy
- b _08119B5C
- .align 2, 0
-_08119B24: .4byte gUnknown_203B04C
-_08119B28:
- ldr r0, [r5, 0x8]
- bl Free
- ldr r0, [r5]
- bl Free
- ldr r0, [r5, 0xC]
- bl Free
- ldr r0, [r5, 0x4]
- bl Free
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- bl DestroyTask
- ldr r0, _08119B64 @ =gUnknown_203B05C
- ldr r0, [r0]
- bl Free
- bl sub_80F8DC0
- adds r0, r4, 0
- bl DestroyTask
-_08119B5C:
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08119B64: .4byte gUnknown_203B05C
- thumb_func_end sub_81199FC
-
- thumb_func_start BufferUnionRoomPlayerName
-BufferUnionRoomPlayerName: @ 8119B68
- push {r4,lr}
- ldr r4, _08119B78 @ =gUnknown_203B04C
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08119B7C
- movs r0, 0
- b _08119B8A
- .align 2, 0
-_08119B78: .4byte gUnknown_203B04C
-_08119B7C:
- ldr r0, _08119B90 @ =gStringVar1
- adds r1, r4, 0
- bl StringCopy
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x1
-_08119B8A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08119B90: .4byte gStringVar1
- thumb_func_end BufferUnionRoomPlayerName
-
- thumb_func_start sub_8119B94
-sub_8119B94: @ 8119B94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08119BE8 @ =gUnknown_203B05C
- ldr r4, [r0]
- movs r7, 0
- movs r6, 0
- movs r5, 0
-_08119BA6:
- ldr r0, [r4, 0xC]
- adds r0, r5
- ldr r1, _08119BEC @ =gUnknown_8457034
- bl sub_811A694
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bne _08119BF0
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x8]
- adds r1, r5
- ldm r1!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldm r1!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldr r1, [r4, 0x8]
- movs r0, 0
- strh r0, [r1, 0x18]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2, 0x1A]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2, 0x1A]
- ldr r0, [r4, 0x8]
- strb r3, [r0, 0x1B]
- movs r0, 0x4
- b _08119D24
- .align 2, 0
-_08119BE8: .4byte gUnknown_203B05C
-_08119BEC: .4byte gUnknown_8457034
-_08119BF0:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08119BA6
- movs r6, 0
- mov r9, r6
-_08119BFC:
- ldr r0, [r4]
- mov r1, r9
- lsls r5, r1, 5
- adds r2, r0, r5
- ldrb r0, [r2, 0x1A]
- lsls r0, 30
- mov r8, r5
- cmp r0, 0
- beq _08119CF0
- ldr r1, [r4, 0x4]
- adds r0, r2, 0
- bl sub_811A748
- adds r6, r0, 0
- cmp r6, 0xFF
- beq _08119C96
- ldr r0, [r4]
- adds r2, r0, r5
- ldrb r1, [r2, 0x1A]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08119C74
- lsls r0, r6, 3
- subs r0, r6
- lsls r6, r0, 2
- ldr r1, [r4, 0x4]
- adds r1, r6
- adds r0, r2, 0
- bl sub_811A6DC
- cmp r0, 0
- beq _08119C5A
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- adds r1, r5
- adds r0, r6
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x40
- strb r1, [r0, 0x1B]
- movs r7, 0x1
- b _08119C8C
-_08119C5A:
- ldr r0, [r4]
- adds r1, r0, r5
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08119C8C
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08119C8C
- b _08119C8A
-_08119C74:
- movs r3, 0x4
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1A]
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0
- strb r1, [r0, 0x1B]
-_08119C8A:
- movs r7, 0x2
-_08119C8C:
- ldr r0, [r4]
- add r0, r8
- movs r1, 0
- strh r1, [r0, 0x18]
- b _08119CF0
-_08119C96:
- ldr r0, [r4]
- adds r1, r0, r5
- ldrb r0, [r1, 0x1A]
- lsls r2, r0, 30
- lsrs r0, r2, 30
- cmp r0, 0x2
- beq _08119CD0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- ldr r0, [r4]
- adds r2, r0, r5
- ldrh r1, [r2, 0x18]
- ldr r0, _08119CCC @ =0x00000257
- cmp r1, r0
- bls _08119CF0
- ldrb r0, [r2, 0x1A]
- movs r5, 0x4
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1A]
- movs r7, 0x2
- b _08119CF0
- .align 2, 0
-_08119CCC: .4byte 0x00000257
-_08119CD0:
- lsrs r0, r2, 30
- cmp r0, 0x2
- bne _08119CF0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- ldr r0, [r4]
- adds r2, r0, r5
- ldrh r1, [r2, 0x18]
- ldr r0, _08119D30 @ =0x00000383
- cmp r1, r0
- bls _08119CF0
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_811A5E4
-_08119CF0:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0x7
- bhi _08119D00
- b _08119BFC
-_08119D00:
- movs r5, 0
- movs r6, 0x3
-_08119D04:
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- adds r1, r5
- movs r2, 0x8
- bl sub_811A798
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08119D1A
- movs r7, 0x1
-_08119D1A:
- adds r5, 0x1C
- subs r6, 0x1
- cmp r6, 0
- bge _08119D04
- adds r0, r7, 0
-_08119D24:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08119D30: .4byte 0x00000383
- thumb_func_end sub_8119B94
-
- thumb_func_start sub_8119D34
-sub_8119D34: @ 8119D34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _08119E24 @ =gTasks+0x8
- adds r6, r0, r1
- movs r7, 0
- mov r0, sp
- adds r0, 0x10
- str r0, [sp, 0x18]
-_08119D58:
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- ldr r1, [sp, 0x18]
- bl sub_80FCC3C
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r0, [r0, 0xA]
- lsls r0, 25
- lsrs r0, 25
- mov r2, r10
- lsls r1, r2, 2
- add r1, r10
- lsls r1, 3
- ldr r3, _08119E28 @ =gTasks
- adds r1, r3
- movs r5, 0x10
- ldrsh r1, [r1, r5]
- bl sub_8116F28
- cmp r0, 0
- bne _08119D94
- mov r1, sp
- ldr r0, _08119E2C @ =gUnknown_8457034
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_08119D94:
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _08119DAC
- mov r1, sp
- ldr r0, _08119E2C @ =gUnknown_8457034
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_08119DAC:
- cmp r4, 0
- bne _08119E30
- lsls r0, r7, 3
- mov r8, r0
- adds r1, r7, 0x1
- mov r9, r1
- cmp r7, 0
- ble _08119DEC
- movs r2, 0
- str r2, [sp, 0x1C]
- adds r4, r7, 0
-_08119DC2:
- ldr r0, [r6, 0x4]
- ldr r3, [sp, 0x1C]
- adds r0, r3
- mov r1, sp
- bl sub_811A694
- lsls r0, 24
- cmp r0, 0
- bne _08119DE0
- mov r1, sp
- ldr r0, _08119E2C @ =gUnknown_8457034
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_08119DE0:
- ldr r5, [sp, 0x1C]
- adds r5, 0x1C
- str r5, [sp, 0x1C]
- subs r4, 0x1
- cmp r4, 0
- bne _08119DC2
-_08119DEC:
- ldr r1, [r6, 0x4]
- mov r0, r8
- subs r4, r0, r7
- lsls r4, 2
- adds r1, r4
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldr r1, _08119E2C @ =gUnknown_8457034
- bl sub_811A694
- ldr r3, [r6, 0x4]
- adds r3, r4
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r4, 0x2
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- b _08119E68
- .align 2, 0
-_08119E24: .4byte gTasks+0x8
-_08119E28: .4byte gTasks
-_08119E2C: .4byte gUnknown_8457034
-_08119E30:
- ldr r1, [r6]
- lsls r4, r7, 3
- subs r4, r7
- lsls r4, 2
- adds r1, r4
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r6]
- adds r0, r4
- ldr r1, _08119E80 @ =gUnknown_8457034
- bl sub_811A694
- ldr r3, [r6]
- adds r3, r4
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r4, 0x2
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- adds r7, 0x1
- mov r9, r7
-_08119E68:
- mov r7, r9
- cmp r7, 0x3
- bgt _08119E70
- b _08119D58
-_08119E70:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119E80: .4byte gUnknown_8457034
- thumb_func_end sub_8119D34
-
- thumb_func_start sub_8119E84
-sub_8119E84: @ 8119E84
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, _08119EB0 @ =sub_8119D34
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _08119EB4 @ =gTasks+0x8
- adds r3, r1, r2
- str r4, [r3]
- str r5, [r3, 0x4]
- adds r2, r1
- strh r6, [r2, 0x8]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08119EB0: .4byte sub_8119D34
-_08119EB4: .4byte gTasks+0x8
- thumb_func_end sub_8119E84
-
- thumb_func_start sub_8119EB8
-sub_8119EB8: @ 8119EB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _08119FA4 @ =gTasks+0x8
- adds r6, r0, r1
- movs r3, 0
-_08119ED6:
- lsls r4, r3, 3
- subs r0, r4, r3
- lsls r5, r0, 2
- ldr r0, [r6]
- adds r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- lsls r2, r3, 24
- lsrs r2, 24
- str r3, [sp]
- bl sub_80FCC3C
- ldr r0, [r6]
- adds r0, r5
- ldrb r0, [r0, 0xA]
- lsls r0, 25
- lsrs r0, 25
- mov r2, r10
- lsls r1, r2, 2
- add r1, r10
- lsls r1, 3
- ldr r7, _08119FA8 @ =gTasks
- adds r1, r7
- movs r2, 0xC
- ldrsh r1, [r1, r2]
- bl sub_8116F28
- mov r8, r4
- ldr r3, [sp]
- cmp r0, 0
- bne _08119F22
- ldr r1, [r6]
- adds r1, r5
- ldr r0, _08119FAC @ =gUnknown_8457034
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
-_08119F22:
- adds r4, r3, 0x1
- mov r9, r4
- cmp r3, 0
- ble _08119F66
- str r5, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r4, r3, 0
-_08119F32:
- ldr r1, [r6]
- ldr r7, [sp, 0x8]
- adds r0, r1, r7
- ldr r2, [sp, 0x4]
- adds r1, r2
- str r3, [sp]
- bl sub_811A694
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- bne _08119F5A
- ldr r1, [r6]
- ldr r5, [sp, 0x4]
- adds r1, r5
- ldr r0, _08119FAC @ =gUnknown_8457034
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
-_08119F5A:
- ldr r7, [sp, 0x8]
- adds r7, 0x1C
- str r7, [sp, 0x8]
- subs r4, 0x1
- cmp r4, 0
- bne _08119F32
-_08119F66:
- mov r0, r8
- subs r4, r0, r3
- lsls r4, 2
- ldr r0, [r6]
- adds r0, r4
- ldr r1, _08119FAC @ =gUnknown_8457034
- bl sub_811A694
- ldr r3, [r6]
- adds r3, r4
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r4, 0x2
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- mov r3, r9
- cmp r3, 0x3
- ble _08119ED6
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119FA4: .4byte gTasks+0x8
-_08119FA8: .4byte gTasks
-_08119FAC: .4byte gUnknown_8457034
- thumb_func_end sub_8119EB8
-
- thumb_func_start sub_8119FB0
-sub_8119FB0: @ 8119FB0
- push {lr}
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7
- bne _08119FC0
- ldrb r1, [r0]
- movs r0, 0x20
- b _08119FC8
-_08119FC0:
- cmp r1, 0x8
- bne _08119FD2
- ldrb r1, [r0]
- movs r0, 0x10
-_08119FC8:
- ands r0, r1
- cmp r0, 0
- beq _08119FD2
- movs r0, 0x1
- b _08119FD4
-_08119FD2:
- movs r0, 0
-_08119FD4:
- pop {r1}
- bx r1
- thumb_func_end sub_8119FB0
-
- thumb_func_start sub_8119FD8
-sub_8119FD8: @ 8119FD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0811A04C @ =gTasks+0x8
- adds r4, r1, r0
- movs r6, 0
- subs r0, 0x8
- movs r5, 0
- adds r1, r0
- mov r8, r1
-_08119FF6:
- ldr r0, [r4]
- adds r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- lsls r2, r6, 24
- lsrs r2, 24
- bl sub_80FCCF4
- lsls r0, 24
- cmp r0, 0
- beq _0811A01A
- ldr r0, [r4]
- adds r0, r5
- mov r2, r8
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- bl sub_8119FB0
-_0811A01A:
- ldr r0, [r4]
- adds r0, r5
- ldr r1, _0811A050 @ =gUnknown_8457034
- bl sub_811A694
- ldr r3, [r4]
- adds r3, r5
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r7, 0x2
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08119FF6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A04C: .4byte gTasks+0x8
-_0811A050: .4byte gUnknown_8457034
- thumb_func_end sub_8119FD8
-
- thumb_func_start sub_811A054
-sub_811A054: @ 811A054
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0811A07C @ =sub_8119EB8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r1, _0811A080 @ =gTasks+0x8
- adds r3, r2, r1
- str r4, [r3]
- adds r1, r2
- strh r5, [r1, 0x4]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A07C: .4byte sub_8119EB8
-_0811A080: .4byte gTasks+0x8
- thumb_func_end sub_811A054
-
- thumb_func_start sub_811A084
-sub_811A084: @ 811A084
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0811A0AC @ =sub_8119FD8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r1, _0811A0B0 @ =gTasks+0x8
- adds r3, r2, r1
- str r4, [r3]
- adds r1, r2
- strh r5, [r1, 0x4]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A0AC: .4byte sub_8119FD8
-_0811A0B0: .4byte gTasks+0x8
- thumb_func_end sub_811A084
-
- thumb_func_start sub_811A0B4
-sub_811A0B4: @ 811A0B4
- push {r4,lr}
- adds r4, r0, 0
- bl LoadStdWindowFrameGfx
- movs r0, 0
- movs r1, 0x1
- bl DrawDialogueFrame
- ldr r0, _0811A0DC @ =gStringVar4
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0x1
- bl AddTextPrinterWithCustomSpeedForMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A0DC: .4byte gStringVar4
- thumb_func_end sub_811A0B4
-
- thumb_func_start sub_811A0E0
-sub_811A0E0: @ 811A0E0
- push {lr}
- bl RunTextPrinters_CheckPrinter0Active
- lsls r0, 16
- cmp r0, 0
- beq _0811A0F0
- movs r0, 0
- b _0811A0F2
-_0811A0F0:
- movs r0, 0x1
-_0811A0F2:
- pop {r1}
- bx r1
- thumb_func_end sub_811A0E0
-
- thumb_func_start sub_811A0F8
-sub_811A0F8: @ 811A0F8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0811A10A
- cmp r0, 0x1
- beq _0811A130
- b _0811A142
-_0811A10A:
- bl LoadStdWindowFrameGfx
- movs r0, 0
- movs r1, 0x1
- bl DrawDialogueFrame
- ldr r0, _0811A12C @ =gStringVar4
- adds r1, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl AddTextPrinterForMessage
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0811A142
- .align 2, 0
-_0811A12C: .4byte gStringVar4
-_0811A130:
- bl RunTextPrinters_CheckPrinter0Active
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0811A142
- strb r0, [r4]
- movs r0, 0x1
- b _0811A144
-_0811A142:
- movs r0, 0
-_0811A144:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811A0F8
-
- thumb_func_start sub_811A14C
-sub_811A14C: @ 811A14C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0811A15E
- cmp r0, 0x1
- beq _0811A174
- b _0811A1A0
-_0811A15E:
- cmp r5, 0
- beq _0811A168
- movs r0, 0x3
- negs r0, r0
- b _0811A1A4
-_0811A168:
- bl DisplayYesNoMenuDefaultYes
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0811A1A0
-_0811A174:
- cmp r5, 0
- beq _0811A186
- bl DestroyYesNoMenu
- movs r0, 0
- strb r0, [r4]
- movs r0, 0x3
- negs r0, r0
- b _0811A1A4
-_0811A186:
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0811A1A0
- strb r5, [r4]
- adds r0, r1, 0
- b _0811A1A4
-_0811A1A0:
- movs r0, 0x2
- negs r0, r0
-_0811A1A4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811A14C
-
- thumb_func_start sub_811A1AC
-sub_811A1AC: @ 811A1AC
- push {r4,lr}
- sub sp, 0x8
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl DrawStdWindowFrame
- adds r0, r4, 0
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- ldr r2, _0811A1F8 @ =gUnknown_8459378
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- movs r3, 0x8
- bl sub_811A444
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A1F8: .4byte gUnknown_8459378
- thumb_func_end sub_811A1AC
-
- thumb_func_start sub_811A1FC
-sub_811A1FC: @ 811A1FC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811A1FC
-
- thumb_func_start sub_811A218
-sub_811A218: @ 811A218
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- adds r5, r1, 0
- mov r9, r2
- adds r0, r3, 0
- ldrb r4, [r7]
- cmp r4, 0
- beq _0811A234
- cmp r4, 0x1
- beq _0811A274
- b _0811A2DA
-_0811A234:
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, _0811A270 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, [sp, 0x1C]
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldrb r1, [r5]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0811A2DA
- .align 2, 0
-_0811A270: .4byte gMultiuseListMenuTemplate
-_0811A274:
- mov r3, r9
- ldrb r0, [r3]
- bl ListMenu_ProcessInput
- mov r8, r0
- ldr r0, _0811A2AC @ =gMain
- ldrh r1, [r0, 0x2E]
- ands r4, r1
- cmp r4, 0
- beq _0811A2B0
- mov r4, r9
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r5]
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- ldrb r0, [r5]
- bl RemoveWindow
- movs r0, 0
- strb r0, [r7]
- mov r0, r8
- b _0811A2DE
- .align 2, 0
-_0811A2AC: .4byte gMain
-_0811A2B0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811A2DA
- mov r6, r9
- ldrb r0, [r6]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r5]
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- ldrb r0, [r5]
- bl RemoveWindow
- strb r4, [r7]
- movs r0, 0x2
- negs r0, r0
- b _0811A2DE
-_0811A2DA:
- movs r0, 0x1
- negs r0, r0
-_0811A2DE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811A218
-
- thumb_func_start sub_811A2EC
-sub_811A2EC: @ 811A2EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r7, r3, 0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811A308
- cmp r0, 0x1
- beq _0811A358
- b _0811A3E6
-_0811A308:
- ldr r0, _0811A350 @ =gUnknown_8456F1C
- bl sub_811A1AC
- strb r0, [r7]
- ldr r0, [sp, 0x1C]
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, _0811A354 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, [sp, 0x20]
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldrb r1, [r4]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0x1
- bl ListMenuInit
- strb r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl CopyWindowToVram
- mov r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0811A3E6
- .align 2, 0
-_0811A350: .4byte gUnknown_8456F1C
-_0811A354: .4byte gMultiuseListMenuTemplate
-_0811A358:
- ldrb r0, [r5]
- bl ListMenu_ProcessInput
- adds r1, r0, 0
- ldr r0, _0811A3A8 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- beq _0811A3E6
- cmp r1, 0x8
- beq _0811A37E
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _0811A3AC
-_0811A37E:
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r4]
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- ldrb r0, [r4]
- bl RemoveWindow
- ldrb r0, [r7]
- bl sub_811A1FC
- movs r0, 0
- mov r3, r9
- strb r0, [r3]
- movs r0, 0x2
- negs r0, r0
- b _0811A3EA
- .align 2, 0
-_0811A3A8: .4byte gMain
-_0811A3AC:
- ldr r0, [sp, 0x24]
- bl sub_811AD7C
- adds r6, r0, 0
- cmp r6, 0
- blt _0811A3E0
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r4]
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- ldrb r0, [r4]
- bl RemoveWindow
- ldrb r0, [r7]
- bl sub_811A1FC
- mov r0, r8
- mov r7, r9
- strb r0, [r7]
- adds r0, r6, 0
- b _0811A3EA
-_0811A3E0:
- movs r0, 0x7
- bl PlaySE
-_0811A3E6:
- movs r0, 0x1
- negs r0, r0
-_0811A3EA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811A2EC
-
- thumb_func_start sub_811A3F8
-sub_811A3F8: @ 811A3F8
- push {lr}
- sub sp, 0xC
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_811A3F8
-
- thumb_func_start sub_811A41C
-sub_811A41C: @ 811A41C
- push {lr}
- sub sp, 0xC
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- bl EnableBothScriptContexts
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_811A41C
-
- thumb_func_start sub_811A444
-sub_811A444: @ 811A444
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- str r2, [sp]
- mov r2, sp
- strb r0, [r2, 0x4]
- mov r0, sp
- strb r1, [r0, 0x5]
- strb r3, [r0, 0x6]
- strb r5, [r0, 0x7]
- strb r3, [r0, 0x8]
- strb r5, [r0, 0x9]
- ldrb r1, [r2, 0xC]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0xC]
- ldr r2, _0811A490 @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- cmp r4, 0x6
- bls _0811A486
- b _0811A5D2
-_0811A486:
- lsls r0, r4, 2
- ldr r1, _0811A494 @ =_0811A498
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811A490: .4byte gTextFlags
-_0811A494: .4byte _0811A498
- .align 2, 0
-_0811A498:
- .4byte _0811A4B4
- .4byte _0811A4E0
- .4byte _0811A50C
- .4byte _0811A538
- .4byte _0811A564
- .4byte _0811A590
- .4byte _0811A5A8
-_0811A4B4:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x30
- b _0811A5CE
-_0811A4E0:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x50
- b _0811A5CE
-_0811A50C:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x60
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x70
- b _0811A5CE
-_0811A538:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x30
- b _0811A5CE
-_0811A564:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x30
- b _0811A5CE
-_0811A590:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r4, 0xF
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x70
- b _0811A5BE
-_0811A5A8:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r4, 0xF
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0xE0
-_0811A5BE:
- orrs r0, r1
- strb r0, [r2, 0xC]
- mov r1, sp
- ldrb r0, [r1, 0xD]
- orrs r0, r4
- strb r0, [r1, 0xD]
- ands r0, r3
- movs r1, 0x90
-_0811A5CE:
- orrs r0, r1
- strb r0, [r2, 0xD]
-_0811A5D2:
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811A444
-
- thumb_func_start sub_811A5E4
-sub_811A5E4: @ 811A5E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _0811A63C
- ldr r2, _0811A64C @ =gUnknown_8457034
- mov r8, r2
- movs r5, 0
- mov r9, r5
- movs r6, 0x4
- negs r6, r6
- mov r12, r6
- adds r2, r0, 0
- adds r2, 0x18
- adds r4, r0, 0
- movs r7, 0xFF
- mov r10, r7
- adds r3, r1, 0
-_0811A610:
- adds r1, r4, 0
- mov r0, r8
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- mov r0, r10
- strh r0, [r2]
- ldrb r1, [r2, 0x2]
- mov r0, r12
- ands r0, r1
- movs r1, 0x5
- negs r1, r1
- ands r0, r1
- strb r0, [r2, 0x2]
- mov r5, r9
- strb r5, [r2, 0x3]
- adds r2, 0x20
- adds r4, 0x20
- subs r3, 0x1
- cmp r3, 0
- bne _0811A610
-_0811A63C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A64C: .4byte gUnknown_8457034
- thumb_func_end sub_811A5E4
-
- thumb_func_start sub_811A650
-sub_811A650: @ 811A650
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _0811A690 @ =gUnknown_8457034
- mov r12, r1
- movs r5, 0x2
- negs r5, r5
- mov r8, r5
- adds r2, r0, 0
- adds r2, 0x18
- adds r3, r0, 0
- movs r4, 0x3
-_0811A668:
- adds r1, r3, 0
- mov r0, r12
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldrb r1, [r2]
- mov r0, r8
- ands r0, r1
- strb r0, [r2]
- adds r2, 0x1C
- adds r3, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _0811A668
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A690: .4byte gUnknown_8457034
- thumb_func_end sub_811A650
-
- thumb_func_start sub_811A694
-sub_811A694: @ 811A694
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r2, 0
- adds r4, r5, 0x2
- adds r3, r6, 0x2
-_0811A6A0:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0811A6C8
- adds r2, 0x1
- cmp r2, 0x1
- ble _0811A6A0
- movs r2, 0
- adds r4, r5, 0
- adds r4, 0x10
- adds r3, r6, 0
- adds r3, 0x10
-_0811A6BC:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0811A6CC
-_0811A6C8:
- movs r0, 0x1
- b _0811A6D4
-_0811A6CC:
- adds r2, 0x1
- cmp r2, 0x7
- ble _0811A6BC
- movs r0, 0
-_0811A6D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811A694
-
- thumb_func_start sub_811A6DC
-sub_811A6DC: @ 811A6DC
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r3, [r5, 0xA]
- movs r0, 0x7F
- ldrb r2, [r6, 0xA]
- adds r1, r0, 0
- ands r1, r3
- ands r0, r2
- cmp r1, r0
- bne _0811A740
- movs r0, 0x80
- adds r1, r0, 0
- ands r1, r3
- ands r0, r2
- cmp r1, r0
- bne _0811A740
- movs r2, 0
- adds r4, r5, 0x4
- adds r3, r6, 0x4
-_0811A704:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0811A740
- adds r2, 0x1
- cmp r2, 0x3
- ble _0811A704
- ldrh r2, [r5, 0x8]
- ldr r0, _0811A73C @ =0x000003ff
- ldrh r3, [r6, 0x8]
- adds r1, r0, 0
- ands r1, r2
- ands r0, r3
- cmp r1, r0
- bne _0811A740
- ldrb r2, [r5, 0x9]
- movs r0, 0xFC
- ldrb r3, [r6, 0x9]
- adds r1, r0, 0
- ands r1, r2
- ands r0, r3
- cmp r1, r0
- bne _0811A740
- movs r0, 0
- b _0811A742
- .align 2, 0
-_0811A73C: .4byte 0x000003ff
-_0811A740:
- movs r0, 0x1
-_0811A742:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811A6DC
-
- thumb_func_start sub_811A748
-sub_811A748: @ 811A748
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- movs r7, 0xFF
- movs r6, 0
- adds r4, r1, 0
- adds r4, 0x18
- adds r5, r1, 0
-_0811A75A:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811A782
- mov r0, r8
- adds r1, r5, 0
- bl sub_811A694
- lsls r0, 24
- cmp r0, 0
- bne _0811A782
- lsls r0, r6, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4]
-_0811A782:
- adds r4, 0x1C
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811A75A
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811A748
-
- thumb_func_start sub_811A798
-sub_811A798: @ 811A798
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r3, r0, 0
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- ldrb r1, [r1, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811A80C
- movs r5, 0
- cmp r5, r6
- bge _0811A80C
- movs r0, 0x4
- negs r0, r0
- mov r9, r0
- movs r1, 0x2
- negs r1, r1
- mov r12, r1
- adds r2, r3, 0
- adds r2, 0x18
- adds r1, r3, 0
-_0811A7CA:
- ldrb r0, [r2, 0x2]
- movs r3, 0x3
- ands r3, r0
- cmp r3, 0
- bne _0811A802
- mov r0, r8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- strh r3, [r2]
- ldrb r1, [r2, 0x2]
- mov r0, r9
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- movs r0, 0x40
- strb r0, [r2, 0x3]
- mov r0, r8
- ldrb r1, [r0, 0x18]
- mov r0, r12
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x18]
- lsls r0, r5, 24
- lsrs r0, 24
- b _0811A80E
-_0811A802:
- adds r2, 0x20
- adds r1, 0x20
- adds r5, 0x1
- cmp r5, r6
- blt _0811A7CA
-_0811A80C:
- movs r0, 0xFF
-_0811A80E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811A798
-
- thumb_func_start sub_811A81C
-sub_811A81C: @ 811A81C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- adds r4, r1, 0
- adds r5, r3, 0
- ldr r3, [sp, 0x50]
- ldr r1, [sp, 0x54]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0811A904 @ =gStringVar4
- mov r8, r0
- adds r1, 0x1
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0811A908 @ =gUnknown_84571B0
- mov r0, r8
- bl StringAppend
- str r6, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- mov r2, r8
- adds r3, r4, 0
- bl sub_811A444
- adds r4, 0x12
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldrb r0, [r5, 0xA]
- lsls r0, 25
- lsrs r2, r0, 25
- ldrb r1, [r5, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0811A8F2
- movs r0, 0x40
- ands r2, r0
- cmp r2, 0
- bne _0811A8F2
- add r4, sp, 0x10
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- str r6, [sp]
- mov r0, r10
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- mov r3, r9
- bl sub_811A444
- ldrb r1, [r5, 0x2]
- ldrb r0, [r5, 0x3]
- lsls r0, 8
- orrs r1, r0
- add r0, sp, 0x8
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r1, _0811A90C @ =gUnknown_84571B4
- mov r0, r8
- bl StringCopy
- mov r0, r8
- add r1, sp, 0x8
- bl StringAppend
- mov r3, r9
- adds r3, 0x4D
- lsls r3, 24
- lsrs r3, 24
- str r6, [sp]
- mov r0, r10
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- mov r2, r8
- bl sub_811A444
-_0811A8F2:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A904: .4byte gStringVar4
-_0811A908: .4byte gUnknown_84571B0
-_0811A90C: .4byte gUnknown_84571B4
- thumb_func_end sub_811A81C
-
- thumb_func_start sub_811A910
-sub_811A910: @ 811A910
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x30
- adds r5, r3, 0
- ldr r3, [sp, 0x4C]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- ldrb r1, [r5, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0811A9A2
- add r4, sp, 0x10
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- movs r1, 0x2
- adds r2, r4, 0
- adds r3, r6, 0
- bl sub_811A444
- ldrb r1, [r5, 0x2]
- ldrb r0, [r5, 0x3]
- lsls r0, 8
- orrs r1, r0
- add r0, sp, 0x8
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r4, _0811A9B0 @ =gStringVar4
- ldr r1, _0811A9B4 @ =gUnknown_84571B4
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- add r1, sp, 0x8
- bl StringAppend
- adds r3, r6, 0
- adds r3, 0x47
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- movs r1, 0
- adds r2, r4, 0
- bl sub_811A444
-_0811A9A2:
- add sp, 0x30
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A9B0: .4byte gStringVar4
-_0811A9B4: .4byte gUnknown_84571B4
- thumb_func_end sub_811A910
-
- thumb_func_start sub_811A9B8
-sub_811A9B8: @ 811A9B8
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x9
- bne _0811A9F0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _0811A9F0
- ldr r0, _0811A9EC @ =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x2
- beq _0811A9E6
- cmp r0, 0
- bne _0811A9F0
-_0811A9E6:
- movs r0, 0x1
- b _0811A9F2
- .align 2, 0
-_0811A9EC: .4byte gPlayerAvatar
-_0811A9F0:
- movs r0, 0
-_0811A9F2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811A9B8
-
- thumb_func_start sub_811A9FC
-sub_811A9FC: @ 811A9FC
- push {lr}
- cmp r0, 0x4
- beq _0811AA14
- cmp r0, 0x4
- ble _0811AA1C
- cmp r0, 0x5
- beq _0811AA10
- cmp r0, 0x8
- beq _0811AA18
- b _0811AA1C
-_0811AA10:
- movs r0, 0x1
- b _0811AA1E
-_0811AA14:
- movs r0, 0x2
- b _0811AA1E
-_0811AA18:
- movs r0, 0x3
- b _0811AA1E
-_0811AA1C:
- movs r0, 0
-_0811AA1E:
- pop {r1}
- bx r1
- thumb_func_end sub_811A9FC
-
- thumb_func_start sub_811AA24
-sub_811AA24: @ 811AA24
- push {r4,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r1, r4, 0
- adds r1, 0x10
- mov r0, sp
- bl StringCopy
- ldrb r1, [r4]
- lsls r1, 28
- lsrs r1, 28
- mov r0, sp
- bl ConvertInternationalString
- adds r4, 0x2
- adds r0, r4, 0
- bl sub_8118658
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_80FD338
- add sp, 0x20
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811AA24
-
- thumb_func_start sub_811AA5C
-sub_811AA5C: @ 811AA5C
- push {r4-r7,lr}
- adds r7, r3, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r5, r0, r2
- ldrb r1, [r5, 0xA]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AAE4
- cmp r6, 0
- bne _0811AAE4
- ldr r4, _0811AAC4 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- adds r0, r5, 0x2
- bl sub_8118658
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_80FD338
- adds r2, r0, 0
- ldrb r1, [r5, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x45
- bne _0811AAD0
- ldr r0, _0811AAC8 @ =gStringVar4
- ldr r3, _0811AACC @ =gUnknown_8457F80
- lsls r1, r7, 2
- lsls r2, 3
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- bl StringExpandPlaceholders
- movs r0, 0x2
- b _0811ABD2
- .align 2, 0
-_0811AAC4: .4byte gStringVar1
-_0811AAC8: .4byte gStringVar4
-_0811AACC: .4byte gUnknown_8457F80
-_0811AAD0:
- ldr r0, _0811AAE0 @ =gUnknown_8457A34
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_811A0B4
- movs r0, 0x1
- b _0811ABD2
- .align 2, 0
-_0811AAE0: .4byte gUnknown_8457A34
-_0811AAE4:
- ldr r4, _0811AB24 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl ConvertInternationalString
- cmp r6, 0
- beq _0811AB0A
- adds r0, r5, r6
- ldrb r0, [r0, 0x3]
- lsrs r7, r0, 3
- movs r0, 0x1
- ands r7, r0
-_0811AB0A:
- ldrb r0, [r5, 0xA]
- lsls r0, 25
- lsrs r0, 25
- movs r1, 0x3F
- ands r1, r0
- cmp r1, 0x4
- beq _0811AB58
- cmp r1, 0x4
- bgt _0811AB28
- cmp r1, 0x1
- beq _0811AB32
- b _0811ABC8
- .align 2, 0
-_0811AB24: .4byte gStringVar1
-_0811AB28:
- cmp r1, 0x5
- beq _0811AB78
- cmp r1, 0x8
- beq _0811AB9C
- b _0811ABC8
-_0811AB32:
- ldr r5, _0811AB50 @ =gStringVar4
- ldr r4, _0811AB54 @ =gUnknown_8458758
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 14
- lsls r0, r7, 4
- adds r1, r0
- adds r1, r4
- ldr r1, [r1]
- b _0811ABB6
- .align 2, 0
-_0811AB50: .4byte gStringVar4
-_0811AB54: .4byte gUnknown_8458758
-_0811AB58:
- ldr r5, _0811AB70 @ =gStringVar4
- ldr r4, _0811AB74 @ =gUnknown_8458A78
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- lsls r1, r7, 4
- b _0811ABB0
- .align 2, 0
-_0811AB70: .4byte gStringVar4
-_0811AB74: .4byte gUnknown_8458A78
-_0811AB78:
- ldr r5, _0811AB94 @ =gStringVar4
- ldr r4, _0811AB98 @ =gUnknown_84588BC
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 14
- lsls r0, r7, 4
- adds r1, r0
- adds r1, r4
- ldr r1, [r1]
- b _0811ABB6
- .align 2, 0
-_0811AB94: .4byte gStringVar4
-_0811AB98: .4byte gUnknown_84588BC
-_0811AB9C:
- ldr r5, _0811ABC0 @ =gStringVar4
- ldr r4, _0811ABC4 @ =gUnknown_84589AC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- lsls r1, r7, 3
-_0811ABB0:
- adds r0, r1
- adds r0, r4
- ldr r1, [r0]
-_0811ABB6:
- adds r0, r5, 0
- bl StringExpandPlaceholders
- b _0811ABD0
- .align 2, 0
-_0811ABC0: .4byte gStringVar4
-_0811ABC4: .4byte gUnknown_84589AC
-_0811ABC8:
- ldr r0, _0811ABD8 @ =gStringVar4
- ldr r1, _0811ABDC @ =gUnknown_8457F90
- bl StringExpandPlaceholders
-_0811ABD0:
- movs r0, 0
-_0811ABD2:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811ABD8: .4byte gStringVar4
-_0811ABDC: .4byte gUnknown_8457F90
- thumb_func_end sub_811AA5C
-
- thumb_func_start nullsub_92
-nullsub_92: @ 811ABE0
- bx lr
- thumb_func_end nullsub_92
-
- thumb_func_start sub_811ABE4
-sub_811ABE4: @ 811ABE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r2, 0x8]
- lsls r0, 22
- lsrs r0, 22
- mov r8, r0
- ldrb r0, [r2, 0x9]
- lsrs r7, r0, 2
- ldrb r0, [r2, 0xB]
- lsrs r0, 1
- mov r9, r0
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r3, 0
- movs r3, 0x8
- bl sub_811A444
- movs r0, 0xCE
- lsls r0, 1
- cmp r8, r0
- bne _0811AC3C
- ldr r2, _0811AC38 @ =gUnknown_8458FBC
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x2
- movs r3, 0x44
- bl sub_811A444
- b _0811AC90
- .align 2, 0
-_0811AC38: .4byte gUnknown_8458FBC
-_0811AC3C:
- adds r1, r7, 0x1
- adds r0, r6, 0
- movs r2, 0x44
- adds r3, r5, 0
- bl BlitMoveInfoIcon
- movs r0, 0xB
- mov r2, r8
- muls r2, r0
- ldr r0, _0811ACA0 @ =gSpeciesNames
- adds r2, r0
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x2
- movs r3, 0x76
- bl sub_811A444
- add r0, sp, 0x8
- mov r1, r9
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x2
- add r1, sp, 0x8
- movs r2, 0
- bl GetStringWidth
- lsls r0, 16
- lsrs r0, 16
- movs r3, 0xDA
- subs r3, r0
- lsls r3, 24
- lsrs r3, 24
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x2
- add r2, sp, 0x8
- bl sub_811A444
-_0811AC90:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ACA0: .4byte gSpeciesNames
- thumb_func_end sub_811ABE4
-
- thumb_func_start sub_811ACA4
-sub_811ACA4: @ 811ACA4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r0, _0811ACF8 @ =gUnknown_203B05C
- ldr r6, [r0]
- movs r0, 0x3
- negs r0, r0
- cmp r4, r0
- bne _0811AD38
- ldr r0, _0811ACFC @ =gUnknown_8456F7C
- ldrb r0, [r0, 0x14]
- lsls r0, 28
- lsrs r0, 28
- cmp r8, r0
- bne _0811AD38
- bl sub_80F9800
- adds r2, r0, 0
- ldrh r1, [r2, 0x8]
- ldr r0, _0811AD00 @ =0x000003ff
- ands r0, r1
- cmp r0, 0
- beq _0811AD6C
- ldr r0, _0811AD04 @ =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r0, 0x5
- str r0, [sp]
- mov r0, r9
- mov r1, r8
- bl sub_811ABE4
- b _0811AD6C
- .align 2, 0
-_0811ACF8: .4byte gUnknown_203B05C
-_0811ACFC: .4byte gUnknown_8456F7C
-_0811AD00: .4byte 0x000003ff
-_0811AD04: .4byte gSaveBlock2Ptr
-_0811AD08:
- mov r0, r12
- adds r1, r0, r4
- adds r1, 0x10
- add r0, sp, 0x4
- bl StringCopy
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 28
- lsrs r1, 28
- add r0, sp, 0x4
- bl ConvertInternationalString
- ldr r2, [r6]
- adds r2, r4
- movs r0, 0x6
- str r0, [sp]
- mov r0, r9
- mov r1, r8
- add r3, sp, 0x4
- bl sub_811ABE4
- b _0811AD6C
-_0811AD38:
- movs r5, 0
- movs r1, 0
- ldr r0, [r6]
- mov r12, r0
- mov r2, r12
- adds r2, 0x8
- movs r3, 0
- adds r7, r4, 0x1
-_0811AD48:
- ldrb r0, [r2, 0x12]
- lsls r0, 30
- lsrs r0, 30
- adds r4, r3, 0
- cmp r0, 0x1
- bne _0811AD5E
- ldrh r0, [r2]
- lsls r0, 22
- cmp r0, 0
- beq _0811AD5E
- adds r5, 0x1
-_0811AD5E:
- cmp r5, r7
- beq _0811AD08
- adds r2, 0x20
- adds r3, 0x20
- adds r1, 0x1
- cmp r1, 0x7
- ble _0811AD48
-_0811AD6C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811ACA4
-
- thumb_func_start sub_811AD7C
-sub_811AD7C: @ 811AD7C
- push {r4-r7,lr}
- movs r4, 0
- movs r3, 0
- movs r7, 0x3
- ldr r6, _0811ADAC @ =0x000003ff
- adds r2, r0, 0
- adds r2, 0x8
- adds r5, r1, 0x1
-_0811AD8C:
- ldrb r1, [r2, 0x12]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0811ADA2
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0811ADA2
- adds r4, 0x1
-_0811ADA2:
- cmp r4, r5
- bne _0811ADB0
- adds r0, r3, 0
- b _0811ADBC
- .align 2, 0
-_0811ADAC: .4byte 0x000003ff
-_0811ADB0:
- adds r2, 0x20
- adds r3, 0x1
- cmp r3, 0x7
- ble _0811AD8C
- movs r0, 0x1
- negs r0, r0
-_0811ADBC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811AD7C
-
- thumb_func_start sub_811ADC4
-sub_811ADC4: @ 811ADC4
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0xB]
- lsls r0, 31
- lsrs r0, 31
- bx lr
- thumb_func_end sub_811ADC4
-
- thumb_func_start sub_811ADD0
-sub_811ADD0: @ 811ADD0
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _0811AE10
- movs r4, 0
- b _0811ADFA
-_0811ADE0:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0811AE08 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0811AE40
- adds r4, 0x1
-_0811ADFA:
- ldr r0, _0811AE0C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _0811ADE0
- movs r0, 0x2
- b _0811AE5C
- .align 2, 0
-_0811AE08: .4byte gPlayerParty
-_0811AE0C: .4byte gPlayerPartyCount
-_0811AE10:
- movs r4, 0
- ldr r0, _0811AE44 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bge _0811AE5A
- ldr r6, _0811AE48 @ =gBaseStats
-_0811AE1C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0811AE4C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r6
- ldrb r0, [r1, 0x6]
- cmp r0, r5
- beq _0811AE40
- ldrb r0, [r1, 0x7]
- cmp r0, r5
- bne _0811AE50
-_0811AE40:
- movs r0, 0
- b _0811AE5C
- .align 2, 0
-_0811AE44: .4byte gPlayerPartyCount
-_0811AE48: .4byte gBaseStats
-_0811AE4C: .4byte gPlayerParty
-_0811AE50:
- adds r4, 0x1
- ldr r0, _0811AE64 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _0811AE1C
-_0811AE5A:
- movs r0, 0x1
-_0811AE5C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AE64: .4byte gPlayerPartyCount
- thumb_func_end sub_811ADD0
-
- thumb_func_start sub_811AE68
-sub_811AE68: @ 811AE68
- push {lr}
- adds r3, r0, 0
- cmp r1, 0x44
- beq _0811AEA4
- cmp r1, 0x44
- bgt _0811AE7A
- cmp r1, 0x41
- beq _0811AE84
- b _0811AEC2
-_0811AE7A:
- cmp r1, 0x45
- beq _0811AE94
- cmp r1, 0x48
- beq _0811AEB4
- b _0811AEC2
-_0811AE84:
- ldr r0, _0811AE90 @ =gUnknown_8458314
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- b _0811AEA6
- .align 2, 0
-_0811AE90: .4byte gUnknown_8458314
-_0811AE94:
- ldr r0, _0811AEA0 @ =gUnknown_84585E8
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- b _0811AEA6
- .align 2, 0
-_0811AEA0: .4byte gUnknown_84585E8
-_0811AEA4:
- ldr r1, _0811AEB0 @ =gUnknown_8458F9C
-_0811AEA6:
- adds r0, r3, 0
- bl StringExpandPlaceholders
- b _0811AEC2
- .align 2, 0
-_0811AEB0: .4byte gUnknown_8458F9C
-_0811AEB4:
- ldr r0, _0811AEC8 @ =gUnknown_84583B4
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r3, 0
- bl StringExpandPlaceholders
-_0811AEC2:
- pop {r0}
- bx r0
- .align 2, 0
-_0811AEC8: .4byte gUnknown_84583B4
- thumb_func_end sub_811AE68
-
- thumb_func_start sub_811AECC
-sub_811AECC: @ 811AECC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r6, r4, 0
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _0811AF00 @ =gLinkPlayers
- movs r0, 0x1
- adds r1, r3, 0
- eors r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- cmp r4, 0x44
- beq _0811AF20
- cmp r4, 0x44
- bgt _0811AF04
- cmp r4, 0x41
- beq _0811AF0A
- b _0811AF60
- .align 2, 0
-_0811AF00: .4byte gLinkPlayers
-_0811AF04:
- cmp r6, 0x45
- beq _0811AF44
- b _0811AF60
-_0811AF0A:
- ldr r2, _0811AF1C @ =gUnknown_8458230
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r0
- b _0811AF32
- .align 2, 0
-_0811AF1C: .4byte gUnknown_8458230
-_0811AF20:
- ldr r2, _0811AF40 @ =gUnknown_8458230
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r0
- adds r2, 0x8
-_0811AF32:
- adds r1, r2
- ldr r1, [r1]
- adds r0, r5, 0
- bl StringCopy
- b _0811AF60
- .align 2, 0
-_0811AF40: .4byte gUnknown_8458230
-_0811AF44:
- ldr r2, _0811AF68 @ =gUnknown_8458230
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r0
- adds r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- adds r0, r5, 0
- bl StringCopy
-_0811AF60:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF68: .4byte gUnknown_8458230
- thumb_func_end sub_811AECC
-
- thumb_func_start sub_811AF6C
-sub_811AF6C: @ 811AF6C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- movs r2, 0
- mov r8, r2
- ldrh r0, [r5]
- subs r0, 0x40
- cmp r0, 0x8
- bls _0811AF86
- b _0811B092
-_0811AF86:
- lsls r0, 2
- ldr r1, _0811AF90 @ =_0811AF94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811AF90: .4byte _0811AF94
- .align 2, 0
-_0811AF94:
- .4byte _0811B088
- .4byte _0811AFB8
- .4byte _0811B092
- .4byte _0811B092
- .4byte _0811AFC8
- .4byte _0811AFC0
- .4byte _0811B092
- .4byte _0811B092
- .4byte _0811B078
-_0811AFB8:
- ldr r1, _0811AFBC @ =gUnknown_8457CA4
- b _0811B07A
- .align 2, 0
-_0811AFBC: .4byte gUnknown_8457CA4
-_0811AFC0:
- ldr r1, _0811AFC4 @ =gUnknown_8457CF8
- b _0811B07A
- .align 2, 0
-_0811AFC4: .4byte gUnknown_8457CF8
-_0811AFC8:
- adds r0, r6, 0
- adds r0, 0x58
- ldr r4, _0811AFF0 @ =gUnknown_203B06C
- ldrh r1, [r4, 0xC]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- adds r0, 0x63
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _0811AFF4 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- movs r4, 0
- b _0811AFFA
- .align 2, 0
-_0811AFF0: .4byte gUnknown_203B06C
-_0811AFF4: .4byte gSpeciesNames
-_0811AFF8:
- adds r4, 0x1
-_0811AFFA:
- cmp r4, 0x3
- bgt _0811B030
- ldr r0, _0811B044 @ =gRfuLinkStatus
- ldr r0, [r0]
- lsls r1, r4, 5
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bne _0811AFF8
- ldrh r1, [r5, 0x4]
- adds r0, r6, 0
- adds r0, 0x6E
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldrh r1, [r5, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _0811B048 @ =gSpeciesNames
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0x79
- bl StringCopy
- ldrh r5, [r5, 0x2]
- mov r8, r5
-_0811B030:
- movs r0, 0xCE
- lsls r0, 1
- cmp r8, r0
- bne _0811B050
- ldr r1, _0811B04C @ =gUnknown_8457DB8
- adds r0, r7, 0
- bl StringCopy
- b _0811B080
- .align 2, 0
-_0811B044: .4byte gRfuLinkStatus
-_0811B048: .4byte gSpeciesNames
-_0811B04C: .4byte gUnknown_8457DB8
-_0811B050:
- movs r4, 0
- adds r5, r6, 0
- adds r5, 0x58
-_0811B056:
- lsls r0, r4, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- adds r5, 0xB
- adds r4, 0x1
- cmp r4, 0x3
- ble _0811B056
- ldr r1, _0811B074 @ =gUnknown_8457D44
- adds r0, r7, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _0811B080
- .align 2, 0
-_0811B074: .4byte gUnknown_8457D44
-_0811B078:
- ldr r1, _0811B084 @ =gUnknown_8457C48
-_0811B07A:
- adds r0, r7, 0
- bl StringExpandPlaceholders
-_0811B080:
- movs r2, 0x1
- b _0811B092
- .align 2, 0
-_0811B084: .4byte gUnknown_8457C48
-_0811B088:
- ldr r1, _0811B0A0 @ =gUnknown_8457E0C
- adds r0, r7, 0
- bl StringExpandPlaceholders
- movs r2, 0x2
-_0811B092:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B0A0: .4byte gUnknown_8457E0C
- thumb_func_end sub_811AF6C
-
- thumb_func_start sub_811B0A4
-sub_811B0A4: @ 811B0A4
- push {lr}
- adds r2, r0, 0
- ldr r0, _0811B0C4 @ =gRecvCmds
- ldrh r1, [r0, 0x2]
- cmp r1, 0
- beq _0811B0C8
- cmp r1, 0x51
- beq _0811B0B8
- cmp r1, 0x52
- bne _0811B0C8
-_0811B0B8:
- adds r0, r2, 0
- adds r0, 0x84
- strh r1, [r0]
- movs r0, 0x1
- b _0811B0CA
- .align 2, 0
-_0811B0C4: .4byte gRecvCmds
-_0811B0C8:
- movs r0, 0
-_0811B0CA:
- pop {r1}
- bx r1
- thumb_func_end sub_811B0A4
-
- thumb_func_start InUnionRoom
-InUnionRoom: @ 811B0D0
- push {lr}
- movs r2, 0
- ldr r0, _0811B0EC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0811B0E4
- movs r2, 0x1
-_0811B0E4:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811B0EC: .4byte gSaveBlock1Ptr
- thumb_func_end InUnionRoom
-
- thumb_func_start sub_811B0F0
-sub_811B0F0: @ 811B0F0
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- ldr r0, _0811B138 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r6, r0
- bge _0811B130
-_0811B0FE:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811B13C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x1E
- bhi _0811B126
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0811B126
- adds r6, 0x1
-_0811B126:
- adds r5, 0x1
- ldr r0, _0811B138 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0811B0FE
-_0811B130:
- cmp r6, 0x1
- bgt _0811B140
- movs r0, 0
- b _0811B142
- .align 2, 0
-_0811B138: .4byte gPlayerPartyCount
-_0811B13C: .4byte gPlayerParty
-_0811B140:
- movs r0, 0x1
-_0811B142:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811B0F0
-
- thumb_func_start sub_811B148
-sub_811B148: @ 811B148
- movs r1, 0
- strh r1, [r0]
- strh r1, [r0, 0x2]
- str r1, [r0, 0x4]
- strh r1, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- strh r1, [r0, 0x10]
- str r1, [r0, 0x14]
- bx lr
- thumb_func_end sub_811B148
-
- thumb_func_start Script_ResetUnionRoomTrade
-Script_ResetUnionRoomTrade: @ 811B15C
- push {lr}
- ldr r0, _0811B168 @ =gUnknown_203B06C
- bl sub_811B148
- pop {r0}
- bx r0
- .align 2, 0
-_0811B168: .4byte gUnknown_203B06C
- thumb_func_end Script_ResetUnionRoomTrade
-
- thumb_func_start sub_811B16C
-sub_811B16C: @ 811B16C
- push {r4,r5,lr}
- adds r5, r1, 0
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _0811B1A8 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strh r0, [r5, 0xC]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x4]
- ldrh r1, [r5, 0xA]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0811B1AC
- movs r0, 0
- b _0811B1AE
- .align 2, 0
-_0811B1A8: .4byte gPlayerParty
-_0811B1AC:
- movs r0, 0x1
-_0811B1AE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811B16C
-
- thumb_func_start sub_811B1B4
-sub_811B1B4: @ 811B1B4
- push {r4,r5,lr}
- adds r5, r1, 0
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _0811B1E8 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- strh r0, [r5, 0xE]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x14]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B1E8: .4byte gPlayerParty
- thumb_func_end sub_811B1B4
-
- thumb_func_start sub_811B1EC
-sub_811B1EC: @ 811B1EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 24
- movs r2, 0
- mov r8, r2
- cmp r1, 0
- bne _0811B20A
- ldrh r7, [r0, 0xA]
- ldr r6, [r0, 0x4]
- b _0811B20E
-_0811B202:
- lsls r0, r5, 16
- lsrs r0, 16
- mov r8, r0
- b _0811B242
-_0811B20A:
- ldrh r7, [r0, 0xE]
- ldr r6, [r0, 0x14]
-_0811B20E:
- movs r5, 0
- b _0811B23A
-_0811B212:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811B250 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- cmp r0, r6
- bne _0811B238
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- beq _0811B202
-_0811B238:
- adds r5, 0x1
-_0811B23A:
- ldr r0, _0811B254 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0811B212
-_0811B242:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B250: .4byte gPlayerParty
-_0811B254: .4byte gPlayerPartyCount
- thumb_func_end sub_811B1EC
-
- thumb_func_start sub_811B258
-sub_811B258: @ 811B258
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811A3F8
- bl ScriptContext2_Disable
- bl sub_80696F0
- ldr r1, _0811B290 @ =gUnknown_203B058
- movs r0, 0
- strb r0, [r1]
- cmp r4, 0
- beq _0811B288
- ldr r2, _0811B294 @ =gUnknown_203B06C
- ldrh r0, [r2, 0x2]
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0xC]
- bl sub_80FAFA0
- movs r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_80FB008
-_0811B288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B290: .4byte gUnknown_203B058
-_0811B294: .4byte gUnknown_203B06C
- thumb_func_end sub_811B258
-
- thumb_func_start sub_811B298
-sub_811B298: @ 811B298
- push {lr}
- bl ScriptContext2_Enable
- bl ScriptFreezeObjectEvents
- pop {r0}
- bx r0
- thumb_func_end sub_811B298
-
- thumb_func_start sub_811B2A8
-sub_811B2A8: @ 811B2A8
- push {r4,lr}
- movs r4, 0x80
- ldr r3, _0811B2D4 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r1, r3
- ldrb r2, [r0, 0x13]
- lsls r2, 3
- orrs r2, r4
- adds r3, 0x4
- adds r1, r3
- ldr r0, [r1]
- movs r1, 0x7
- ands r0, r1
- orrs r0, r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B2D4: .4byte gLinkPlayers
- thumb_func_end sub_811B2A8
-
- thumb_func_start sub_811B2D8
-sub_811B2D8: @ 811B2D8
- push {r4,lr}
- movs r3, 0x80
- movs r2, 0
- ldr r4, [r0, 0xC]
-_0811B2E0:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- beq _0811B308
- ldrb r0, [r1, 0xB]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 3
- orrs r3, r0
- ldrb r1, [r1, 0x2]
- movs r0, 0x7
- ands r0, r1
- orrs r3, r0
- lsls r0, r3, 24
- lsrs r3, r0, 24
- b _0811B312
-_0811B308:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0811B2E0
-_0811B312:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811B2D8
-
- thumb_func_start sub_811B31C
-sub_811B31C: @ 811B31C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 5
- ldr r0, _0811B4B0 @ =gTrainerCards
- adds r1, r0
- mov r8, r1
- bl DynamicPlaceholderTextUtil_Reset
- mov r6, r9
- adds r6, 0xAC
- bl sub_80447F0
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _0811B4B4 @ =gTrainerClassNames
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0
- adds r1, r6, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r1, r8
- adds r1, 0x30
- movs r0, 0x1
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r4, 0xB0
- lsls r4, 1
- add r4, r9
- ldr r1, _0811B4B8 @ =gUnknown_84594B0
- mov r2, r8
- ldrb r0, [r2, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x2
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r5, r9
- adds r5, 0xCA
- mov r0, r8
- ldrh r1, [r0, 0xC]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x3
- adds r1, r5, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r2, 0xD9
- add r2, r9
- mov r10, r2
- mov r0, r8
- ldrh r1, [r0, 0x10]
- mov r0, r10
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r4, r9
- adds r4, 0xE8
- mov r2, r8
- ldrh r1, [r2, 0x12]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x4
- mov r1, r10
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r0, 0x5
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r4, 0xC8
- lsls r4, 1
- add r4, r9
- ldr r1, _0811B4BC @ =gUnknown_84594C4
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- ldr r0, _0811B4C0 @ =gStringVar4
- adds r1, r4, 0
- bl StringCopy
- mov r0, r8
- ldrh r1, [r0, 0x14]
- ldr r4, _0811B4C4 @ =0x0000270f
- cmp r1, r4
- ble _0811B40A
- adds r1, r4, 0
-_0811B40A:
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- movs r0, 0
- adds r1, r6, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r2, r8
- ldrh r1, [r2, 0x16]
- cmp r1, r4
- ble _0811B426
- adds r1, r4, 0
-_0811B426:
- mov r4, r9
- adds r4, 0xBB
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- movs r0, 0x2
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r0, r8
- ldrh r1, [r0, 0x20]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- movs r0, 0x3
- adds r1, r5, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r7, 0
- movs r6, 0x80
- lsls r6, 19
- mov r5, r8
- adds r5, 0x28
- mov r4, r10
-_0811B45E:
- ldrh r1, [r5]
- adds r0, r4, 0
- bl CopyEasyChatWord
- lsrs r0, r6, 24
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r2, 0x80
- lsls r2, 17
- adds r6, r2
- adds r5, 0x2
- adds r4, 0xF
- adds r7, 0x1
- cmp r7, 0x3
- ble _0811B45E
- movs r4, 0xC8
- lsls r4, 1
- add r4, r9
- ldr r1, _0811B4C8 @ =gUnknown_8459504
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- ldr r5, _0811B4C0 @ =gStringVar4
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r0, [sp]
- cmp r0, 0x1
- bne _0811B4D0
- ldr r1, _0811B4CC @ =gUnknown_8459588
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- b _0811B4F0
- .align 2, 0
-_0811B4B0: .4byte gTrainerCards
-_0811B4B4: .4byte gTrainerClassNames
-_0811B4B8: .4byte gUnknown_84594B0
-_0811B4BC: .4byte gUnknown_84594C4
-_0811B4C0: .4byte gStringVar4
-_0811B4C4: .4byte 0x0000270f
-_0811B4C8: .4byte gUnknown_8459504
-_0811B4CC: .4byte gUnknown_8459588
-_0811B4D0:
- ldr r2, [sp]
- cmp r2, 0
- bne _0811B4F0
- ldr r0, _0811B500 @ =gUnknown_8459580
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
-_0811B4F0:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B500: .4byte gUnknown_8459580
- thumb_func_end sub_811B31C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/union_room_player_avatar.s b/asm/union_room_player_avatar.s
deleted file mode 100644
index 5c6786ae6..000000000
--- a/asm/union_room_player_avatar.s
+++ /dev/null
@@ -1,2064 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start is_walking_or_running
-is_walking_or_running: @ 811B504
- push {lr}
- ldr r0, _0811B518 @ =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x2
- beq _0811B512
- cmp r0, 0
- bne _0811B51C
-_0811B512:
- movs r0, 0x1
- b _0811B51E
- .align 2, 0
-_0811B518: .4byte gPlayerAvatar
-_0811B51C:
- movs r0, 0
-_0811B51E:
- pop {r1}
- bx r1
- thumb_func_end is_walking_or_running
-
- thumb_func_start sub_811B524
-sub_811B524: @ 811B524
- ldr r3, _0811B538 @ =gUnknown_84570D8
- movs r2, 0x7
- ands r2, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- adds r2, r1
- adds r2, r3
- ldrb r0, [r2]
- bx lr
- .align 2, 0
-_0811B538: .4byte gUnknown_84570D8
- thumb_func_end sub_811B524
-
- thumb_func_start sub_811B53C
-sub_811B53C: @ 811B53C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _0811B584 @ =gUnknown_84570EC
- mov r8, r4
- lsls r0, 2
- adds r4, r0, r4
- movs r6, 0
- ldrsh r5, [r4, r6]
- ldr r6, _0811B588 @ =gUnknown_845710C
- lsls r1, 1
- adds r4, r1, r6
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- adds r5, r4
- adds r5, 0x7
- str r5, [r2]
- movs r2, 0x2
- add r8, r2
- add r0, r8
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r6, 0x1
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- str r0, [r3]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B584: .4byte gUnknown_84570EC
-_0811B588: .4byte gUnknown_845710C
- thumb_func_end sub_811B53C
-
- thumb_func_start sub_811B58C
-sub_811B58C: @ 811B58C
- push {r4-r7,lr}
- mov r12, r3
- ldr r7, _0811B5CC @ =gUnknown_84570EC
- lsls r5, r0, 2
- adds r0, r5, r7
- movs r4, 0
- ldrsh r3, [r0, r4]
- ldr r6, _0811B5D0 @ =gUnknown_845710C
- lsls r4, r1, 1
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r0
- adds r3, 0x7
- cmp r3, r2
- bne _0811B5D4
- adds r0, r7, 0x2
- adds r0, r5, r0
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r6, 0x1
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r0
- adds r1, 0x7
- cmp r1, r12
- bne _0811B5D4
- movs r0, 0x1
- b _0811B5D6
- .align 2, 0
-_0811B5CC: .4byte gUnknown_84570EC
-_0811B5D0: .4byte gUnknown_845710C
-_0811B5D4:
- movs r0, 0
-_0811B5D6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811B58C
-
- thumb_func_start sub_811B5DC
-sub_811B5DC: @ 811B5DC
- push {lr}
- adds r0, 0x63
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_811B5DC
-
- thumb_func_start sub_811B5F0
-sub_811B5F0: @ 811B5F0
- push {lr}
- adds r0, 0x63
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_811B5F0
-
- thumb_func_start sub_811B600
-sub_811B600: @ 811B600
- push {lr}
- adds r0, 0x63
- lsls r0, 16
- lsrs r0, 16
- bl FlagClear
- pop {r0}
- bx r0
- thumb_func_end sub_811B600
-
- thumb_func_start sub_811B610
-sub_811B610: @ 811B610
- push {lr}
- ldr r2, _0811B628 @ =0x00004010
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0811B628: .4byte 0x00004010
- thumb_func_end sub_811B610
-
- thumb_func_start sub_811B62C
-sub_811B62C: @ 811B62C
- push {lr}
- ldr r1, _0811B644 @ =gUnknown_8457120
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0811B648 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- pop {r0}
- bx r0
- .align 2, 0
-_0811B644: .4byte gUnknown_8457120
-_0811B648: .4byte gSaveBlock1Ptr
- thumb_func_end sub_811B62C
-
- thumb_func_start sub_811B64C
-sub_811B64C: @ 811B64C
- push {lr}
- ldr r1, _0811B664 @ =gUnknown_8457120
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0811B668 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl RemoveObjectEventByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_0811B664: .4byte gUnknown_8457120
-_0811B668: .4byte gSaveBlock1Ptr
- thumb_func_end sub_811B64C
-
- thumb_func_start sub_811B66C
-sub_811B66C: @ 811B66C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- ldr r1, _0811B6B8 @ =gUnknown_8457120
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0811B6BC @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0811B6D0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811B6C0 @ =gObjectEvents
- adds r4, r0, r1
- adds r0, r4, 0
- bl ObjectEventIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- bne _0811B6D0
- ldrb r1, [r5]
- adds r0, r4, 0
- bl ObjectEventSetHeldMovement
- lsls r0, 24
- cmp r0, 0
- bne _0811B6C4
- movs r0, 0x1
- b _0811B6D2
- .align 2, 0
-_0811B6B8: .4byte gUnknown_8457120
-_0811B6BC: .4byte gSaveBlock1Ptr
-_0811B6C0: .4byte gObjectEvents
-_0811B6C4:
- ldr r0, _0811B6DC @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- ldr r1, _0811B6E0 @ =0x00000183
- ldr r2, _0811B6E4 @ =gUnknown_8457174 "0"
- movs r3, 0x1
- bl AGBAssert
-_0811B6D0:
- movs r0, 0
-_0811B6D2:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B6DC: .4byte gUnknown_8457138
-_0811B6E0: .4byte 0x00000183
-_0811B6E4: .4byte gUnknown_8457174
- thumb_func_end sub_811B66C
-
- thumb_func_start sub_811B6E8
-sub_811B6E8: @ 811B6E8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0811B724 @ =gUnknown_8457120
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0811B728 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0811B748
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811B72C @ =gObjectEvents
- adds r4, r0, r1
- adds r0, r4, 0
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- bne _0811B730
- movs r0, 0
- b _0811B74A
- .align 2, 0
-_0811B724: .4byte gUnknown_8457120
-_0811B728: .4byte gSaveBlock1Ptr
-_0811B72C: .4byte gObjectEvents
-_0811B730:
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _0811B742
- adds r0, r4, 0
- bl npc_sync_anim_pause_bits
- b _0811B748
-_0811B742:
- adds r0, r4, 0
- bl FreezeObjectEvent
-_0811B748:
- movs r0, 0x1
-_0811B74A:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811B6E8
-
- thumb_func_start sub_811B754
-sub_811B754: @ 811B754
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811B798 @ =gUnknown_203B088
- movs r1, 0
- str r1, [r0]
- ldr r0, _0811B79C @ =gUnknown_203B084
- str r4, [r0]
- cmp r4, 0
- bne _0811B774
- ldr r0, _0811B7A0 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- movs r1, 0xDD
- lsls r1, 1
- ldr r2, _0811B7A4 @ =gUnknown_8457178 "UnionObjWork != NULL"
- movs r3, 0x1
- bl AGBAssert
-_0811B774:
- movs r1, 0
- adds r0, r4, 0
- movs r2, 0x7
-_0811B77A:
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- adds r0, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _0811B77A
- bl sub_811BA18
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B798: .4byte gUnknown_203B088
-_0811B79C: .4byte gUnknown_203B084
-_0811B7A0: .4byte gUnknown_8457138
-_0811B7A4: .4byte gUnknown_8457178
- thumb_func_end sub_811B754
-
- thumb_func_start sub_811B7A8
-sub_811B7A8: @ 811B7A8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- beq _0811B7BC
- cmp r0, 0x1
- beq _0811B7DC
- b _0811B7FA
-_0811B7BC:
- ldr r1, _0811B7D8 @ =gUnknown_845718D
- adds r0, r4, 0
- bl sub_811B66C
- cmp r0, 0x1
- bne _0811B7FA
- adds r0, r4, 0
- bl sub_811B5F0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0811B7FA
- .align 2, 0
-_0811B7D8: .4byte gUnknown_845718D
-_0811B7DC:
- adds r0, r4, 0
- bl sub_811B6E8
- cmp r0, 0
- beq _0811B7FA
- adds r0, r4, 0
- bl sub_811B64C
- adds r0, r4, 0
- bl sub_811B5F0
- movs r0, 0
- strb r0, [r5]
- movs r0, 0x1
- b _0811B7FC
-_0811B7FA:
- movs r0, 0
-_0811B7FC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811B7A8
-
- thumb_func_start sub_811B804
-sub_811B804: @ 811B804
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x2
- beq _0811B8A0
- cmp r0, 0x2
- bgt _0811B820
- cmp r0, 0
- beq _0811B826
- b _0811B8B2
-_0811B820:
- cmp r0, 0x3
- beq _0811B888
- b _0811B8B2
-_0811B826:
- bl is_walking_or_running
- cmp r0, 0
- beq _0811B8B2
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- ldrsh r3, [r4, r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_811B58C
- cmp r0, 0x1
- beq _0811B8B2
- mov r0, sp
- adds r1, r4, 0
- bl plaer_get_pos_including_state_based_drift
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- ldrsh r3, [r4, r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_811B58C
- cmp r0, 0x1
- beq _0811B8B2
- ldrb r1, [r7, 0x1]
- adds r0, r5, 0
- bl sub_811B610
- adds r0, r5, 0
- bl sub_811B62C
- adds r0, r5, 0
- bl sub_811B600
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_0811B888:
- ldr r1, _0811B89C @ =gUnknown_845718F
- adds r0, r5, 0
- bl sub_811B66C
- cmp r0, 0x1
- bne _0811B8B2
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _0811B8B2
- .align 2, 0
-_0811B89C: .4byte gUnknown_845718F
-_0811B8A0:
- adds r0, r5, 0
- bl sub_811B6E8
- cmp r0, 0
- beq _0811B8B2
- movs r0, 0
- strb r0, [r6]
- movs r0, 0x1
- b _0811B8B4
-_0811B8B2:
- movs r0, 0
-_0811B8B4:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811B804
-
- thumb_func_start sub_811B8BC
-sub_811B8BC: @ 811B8BC
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r1, _0811B8F4 @ =gUnknown_203B084
- lsls r0, 2
- ldr r1, [r1]
- adds r4, r1, r0
- cmp r1, 0
- bne _0811B8DA
- ldr r0, _0811B8F8 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- ldr r1, _0811B8FC @ =0x00000231
- ldr r2, _0811B900 @ =gUnknown_8457178 "UnionObjWork != NULL"
- movs r3, 0x1
- bl AGBAssert
-_0811B8DA:
- movs r0, 0x1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_811B524
- strb r0, [r4, 0x1]
- ldrb r0, [r4]
- cmp r0, 0
- beq _0811B904
- movs r0, 0
- b _0811B906
- .align 2, 0
-_0811B8F4: .4byte gUnknown_203B084
-_0811B8F8: .4byte gUnknown_8457138
-_0811B8FC: .4byte 0x00000231
-_0811B900: .4byte gUnknown_8457178
-_0811B904:
- movs r0, 0x1
-_0811B906:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811B8BC
-
- thumb_func_start sub_811B90C
-sub_811B90C: @ 811B90C
- push {r4,lr}
- ldr r1, _0811B934 @ =gUnknown_203B084
- lsls r0, 2
- ldr r1, [r1]
- adds r4, r1, r0
- cmp r1, 0
- bne _0811B926
- ldr r0, _0811B938 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- ldr r1, _0811B93C @ =0x00000241
- ldr r2, _0811B940 @ =gUnknown_8457178 "UnionObjWork != NULL"
- movs r3, 0x1
- bl AGBAssert
-_0811B926:
- movs r0, 0x2
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _0811B944
- movs r0, 0
- b _0811B946
- .align 2, 0
-_0811B934: .4byte gUnknown_203B084
-_0811B938: .4byte gUnknown_8457138
-_0811B93C: .4byte 0x00000241
-_0811B940: .4byte gUnknown_8457178
-_0811B944:
- movs r0, 0x1
-_0811B946:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811B90C
-
- thumb_func_start sub_811B94C
-sub_811B94C: @ 811B94C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _0811B9AE
- cmp r1, 0x1
- bgt _0811B962
- cmp r1, 0
- beq _0811B96C
- b _0811B9CE
-_0811B962:
- cmp r1, 0x2
- beq _0811B978
- cmp r1, 0x3
- beq _0811B9BC
- b _0811B9CE
-_0811B96C:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x1
- bne _0811B9CE
- movs r0, 0x2
- strb r0, [r4]
- strb r1, [r4, 0x2]
-_0811B978:
- adds r0, r5, 0
- movs r1, 0
- bl sub_811BBC8
- adds r1, r0, 0
- cmp r1, 0
- bne _0811B99E
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- bne _0811B99E
- strb r1, [r4]
- strb r1, [r4, 0x2]
- adds r0, r5, 0
- bl sub_811B64C
- adds r0, r5, 0
- bl sub_811B5F0
- b _0811B9CE
-_0811B99E:
- adds r0, r4, 0x2
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_811B804
- cmp r0, 0x1
- bne _0811B9CE
- b _0811B9CC
-_0811B9AE:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- bne _0811B9CE
- movs r1, 0
- movs r0, 0x3
- strb r0, [r4]
- strb r1, [r4, 0x2]
-_0811B9BC:
- adds r0, r4, 0x2
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_811B7A8
- cmp r0, 0x1
- bne _0811B9CE
- movs r0, 0
-_0811B9CC:
- strb r0, [r4]
-_0811B9CE:
- movs r0, 0
- strb r0, [r4, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811B94C
-
- thumb_func_start sub_811B9D8
-sub_811B9D8: @ 811B9D8
- push {r4,r5,lr}
- ldr r5, _0811BA08 @ =gUnknown_203B084
- ldr r0, [r5]
- cmp r0, 0
- bne _0811B9EE
- ldr r0, _0811BA0C @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- ldr r1, _0811BA10 @ =0x00000283
- ldr r2, _0811BA14 @ =gUnknown_8457178 "UnionObjWork != NULL"
- movs r3, 0x1
- bl AGBAssert
-_0811B9EE:
- movs r4, 0
-_0811B9F0:
- lsls r0, r4, 2
- ldr r1, [r5]
- adds r1, r0
- adds r0, r4, 0
- bl sub_811B94C
- adds r4, 0x1
- cmp r4, 0x7
- ble _0811B9F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BA08: .4byte gUnknown_203B084
-_0811BA0C: .4byte gUnknown_8457138
-_0811BA10: .4byte 0x00000283
-_0811BA14: .4byte gUnknown_8457178
- thumb_func_end sub_811B9D8
-
- thumb_func_start sub_811BA18
-sub_811BA18: @ 811BA18
- push {r4,lr}
- ldr r4, _0811BA38 @ =sub_811B9D8
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811BA3C
- adds r0, r4, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- b _0811BA4A
- .align 2, 0
-_0811BA38: .4byte sub_811B9D8
-_0811BA3C:
- ldr r0, _0811BA50 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- ldr r1, _0811BA54 @ =0x0000028f
- ldr r2, _0811BA58 @ =gUnknown_8457174 "0"
- movs r3, 0x1
- bl AGBAssert
- movs r0, 0x10
-_0811BA4A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BA50: .4byte gUnknown_8457138
-_0811BA54: .4byte 0x0000028f
-_0811BA58: .4byte gUnknown_8457174
- thumb_func_end sub_811BA18
-
- thumb_func_start sub_811BA5C
-sub_811BA5C: @ 811BA5C
- push {lr}
- ldr r0, _0811BA74 @ =sub_811B9D8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0811BA70
- bl DestroyTask
-_0811BA70:
- pop {r0}
- bx r0
- .align 2, 0
-_0811BA74: .4byte sub_811B9D8
- thumb_func_end sub_811BA5C
-
- thumb_func_start sub_811BA78
-sub_811BA78: @ 811BA78
- push {r4,lr}
- movs r4, 0
-_0811BA7C:
- adds r0, r4, 0
- bl sub_811B5DC
- cmp r0, 0
- bne _0811BA92
- adds r0, r4, 0
- bl sub_811B64C
- adds r0, r4, 0
- bl sub_811B5F0
-_0811BA92:
- adds r4, 0x1
- cmp r4, 0x7
- ble _0811BA7C
- ldr r1, _0811BAA8 @ =gUnknown_203B084
- movs r0, 0
- str r0, [r1]
- bl sub_811BA5C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BAA8: .4byte gUnknown_203B084
- thumb_func_end sub_811BA78
-
- thumb_func_start sub_811BAAC
-sub_811BAAC: @ 811BAAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp, 0x8]
- mov r9, r1
- movs r7, 0
- mov r0, r9
- lsls r0, 2
- mov r8, r0
- ldr r0, _0811BB38 @ =gUnknown_84570EC
- mov r2, r8
- adds r1, r2, r0
- ldrh r1, [r1]
- mov r2, sp
- strh r1, [r2, 0xC]
- adds r0, 0x2
- add r0, r8
- ldrh r0, [r0]
- mov r10, r0
- ldr r6, _0811BB3C @ =gUnknown_845710C
-_0811BADA:
- mov r5, r8
- add r5, r9
- adds r5, r7
- adds r4, r5, 0
- subs r4, 0x38
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0
- ldrsb r2, [r6, r2]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- adds r2, r0, r2
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x1
- ldrsb r3, [r6, r3]
- add r3, r10
- lsls r3, 16
- asrs r3, 16
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x19
- adds r1, r4, 0
- bl sprite_new
- ldr r1, [sp, 0x8]
- adds r5, r1, r5
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8069124
- adds r6, 0x2
- adds r7, 0x1
- cmp r7, 0x4
- ble _0811BADA
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BB38: .4byte gUnknown_84570EC
-_0811BB3C: .4byte gUnknown_845710C
- thumb_func_end sub_811BAAC
-
- thumb_func_start sub_811BB40
-sub_811BB40: @ 811BB40
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- ldr r6, _0811BB64 @ =gSprites
-_0811BB48:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- adds r4, 0x1
- cmp r4, 0x27
- ble _0811BB48
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BB64: .4byte gSprites
- thumb_func_end sub_811BB40
-
- thumb_func_start sub_811BB68
-sub_811BB68: @ 811BB68
- push {r4-r7,lr}
- sub sp, 0x8
- movs r5, 0
- add r7, sp, 0x4
-_0811BB70:
- movs r4, 0
- adds r6, r5, 0x1
-_0811BB74:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_811B53C
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- movs r2, 0
- bl sub_8059024
- adds r4, 0x1
- cmp r4, 0x4
- ble _0811BB74
- adds r5, r6, 0
- cmp r5, 0x7
- ble _0811BB70
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811BB68
-
- thumb_func_start sub_811BBA0
-sub_811BBA0: @ 811BBA0
- push {lr}
- adds r1, r0, 0
- cmp r1, 0
- beq _0811BBB4
- ldr r0, _0811BBB0 @ =gUnknown_845711B
- adds r0, r1, r0
- ldrb r0, [r0]
- b _0811BBC4
- .align 2, 0
-_0811BBB0: .4byte gUnknown_845711B
-_0811BBB4:
- ldrb r1, [r2, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x45
- beq _0811BBC2
- movs r0, 0x4
- b _0811BBC4
-_0811BBC2:
- movs r0, 0x1
-_0811BBC4:
- pop {r1}
- bx r1
- thumb_func_end sub_811BBA0
-
- thumb_func_start sub_811BBC8
-sub_811BBC8: @ 811BBC8
- push {lr}
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r2
- adds r0, r1
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- bl sub_806916C
- pop {r1}
- bx r1
- thumb_func_end sub_811BBC8
-
- thumb_func_start sub_811BBE0
-sub_811BBE0: @ 811BBE0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- mov r9, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r0, r5, 2
- adds r0, r5
- adds r7, r0, r6
- adds r0, r5, 0
- bl sub_811BBC8
- cmp r0, 0x1
- bne _0811BC1E
- adds r4, r7, 0
- subs r4, 0x38
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_8069124
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80691A4
-_0811BC1E:
- adds r0, r7, 0
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- bl sub_8069094
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_811BBA0
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_811C008
- add r3, sp, 0x4
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl sub_811B53C
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- movs r2, 0x1
- bl sub_8059024
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811BBE0
-
- thumb_func_start sub_811BC68
-sub_811BC68: @ 811BC68
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r5
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80691A4
- add r3, sp, 0x4
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_811B53C
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- movs r2, 0
- bl sub_8059024
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811BC68
-
- thumb_func_start sub_811BCA0
-sub_811BCA0: @ 811BCA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- mov r8, r1
- mov r6, sp
- adds r6, 0x2
- mov r0, sp
- adds r1, r6, 0
- bl PlayerGetDestCoords
- add r4, sp, 0x4
- mov r5, sp
- adds r5, 0x6
- adds r0, r4, 0
- adds r1, r5, 0
- bl plaer_get_pos_including_state_based_drift
- lsls r0, r7, 2
- adds r0, r7
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- bl sub_806916C
- mov r10, r6
- mov r9, r4
- adds r6, r5, 0
- cmp r0, 0x1
- bne _0811BD2C
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r0, r10
- movs r1, 0
- ldrsh r3, [r0, r1]
- adds r0, r7, 0
- movs r1, 0
- bl sub_811B58C
- cmp r0, 0x1
- beq _0811BD98
- movs r0, 0
- ldrsh r2, [r4, r0]
- movs r1, 0
- ldrsh r3, [r6, r1]
- adds r0, r7, 0
- movs r1, 0
- bl sub_811B58C
- cmp r0, 0x1
- beq _0811BD98
- mov r2, r8
- ldrb r0, [r2, 0xB]
- lsls r0, 31
- lsrs r0, 31
- ldrb r1, [r2, 0x2]
- bl sub_811B524
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- movs r1, 0
- mov r3, r8
- bl sub_811BBE0
-_0811BD2C:
- movs r5, 0x1
- mov r4, r8
- adds r4, 0x4
-_0811BD32:
- ldrb r0, [r4]
- cmp r0, 0
- bne _0811BD42
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_811BC68
- b _0811BD90
-_0811BD42:
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r0, r10
- movs r1, 0
- ldrsh r3, [r0, r1]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_811B58C
- cmp r0, 0
- bne _0811BD90
- mov r0, r9
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- ldrsh r3, [r6, r0]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_811B58C
- cmp r0, 0
- bne _0811BD90
- ldrb r2, [r4]
- lsrs r0, r2, 3
- movs r1, 0x1
- ands r0, r1
- movs r1, 0x7
- ands r1, r2
- bl sub_811B524
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r5, 0
- mov r3, r8
- bl sub_811BBE0
-_0811BD90:
- adds r4, 0x1
- adds r5, 0x1
- cmp r5, 0x4
- ble _0811BD32
-_0811BD98:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811BCA0
-
- thumb_func_start sub_811BDA8
-sub_811BDA8: @ 811BDA8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r0, [r4, 0xA]
- lsls r0, 25
- lsrs r0, 25
- subs r0, 0x40
- cmp r0, 0x14
- bhi _0811BE4C
- lsls r0, 2
- ldr r1, _0811BDC4 @ =_0811BDC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811BDC4: .4byte _0811BDC8
- .align 2, 0
-_0811BDC8:
- .4byte _0811BE1C
- .4byte _0811BE3C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE3C
- .4byte _0811BE3C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE3C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE4C
- .4byte _0811BE3C
- .4byte _0811BE3C
- .4byte _0811BE3C
- .4byte _0811BE1C
-_0811BE1C:
- ldrb r1, [r4, 0xB]
- lsls r1, 31
- lsrs r1, 31
- ldrb r2, [r4, 0x2]
- adds r0, r5, 0
- bl sub_811B8BC
- movs r4, 0
-_0811BE2C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_811BC68
- adds r4, 0x1
- cmp r4, 0x4
- bls _0811BE2C
- b _0811BE58
-_0811BE3C:
- adds r0, r5, 0
- bl sub_811B90C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_811BCA0
- b _0811BE58
-_0811BE4C:
- ldr r0, _0811BE60 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
- ldr r1, _0811BE64 @ =0x000003d3
- ldr r2, _0811BE68 @ =gUnknown_8457174 "0"
- movs r3, 0x1
- bl AGBAssert
-_0811BE58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BE60: .4byte gUnknown_8457138
-_0811BE64: .4byte 0x000003d3
-_0811BE68: .4byte gUnknown_8457174
- thumb_func_end sub_811BDA8
-
- thumb_func_start sub_811BE6C
-sub_811BE6C: @ 811BE6C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811B90C
- movs r4, 0
-_0811BE76:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_811BC68
- adds r4, 0x1
- cmp r4, 0x4
- ble _0811BE76
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811BE6C
-
- thumb_func_start sub_811BE8C
-sub_811BE8C: @ 811BE8C
- push {r4,r5,lr}
- ldr r2, _0811BEAC @ =gUnknown_203B088
- movs r1, 0
- str r1, [r2]
- movs r5, 0
- ldr r4, [r0]
-_0811BE98:
- ldrb r0, [r4, 0x1A]
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- bne _0811BEB0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_811BDA8
- b _0811BEBC
- .align 2, 0
-_0811BEAC: .4byte gUnknown_203B088
-_0811BEB0:
- cmp r1, 0x2
- bne _0811BEBC
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_811BE6C
-_0811BEBC:
- adds r4, 0x20
- adds r5, 0x1
- cmp r5, 0x7
- ble _0811BE98
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811BE8C
-
- thumb_func_start sub_811BECC
-sub_811BECC: @ 811BECC
- ldr r1, _0811BED8 @ =gUnknown_203B088
- movs r0, 0x96
- lsls r0, 1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0811BED8: .4byte gUnknown_203B088
- thumb_func_end sub_811BECC
-
- thumb_func_start sub_811BEDC
-sub_811BEDC: @ 811BEDC
- push {lr}
- adds r2, r0, 0
- ldr r0, _0811BEFC @ =gUnknown_203B088
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- movs r0, 0x96
- lsls r0, 1
- cmp r1, r0
- bls _0811BEF6
- adds r0, r2, 0
- bl sub_811BE8C
-_0811BEF6:
- pop {r0}
- bx r0
- .align 2, 0
-_0811BEFC: .4byte gUnknown_203B088
- thumb_func_end sub_811BEDC
-
- thumb_func_start sub_811BF00
-sub_811BF00: @ 811BF00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r5, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- bl is_walking_or_running
- cmp r0, 0
- bne _0811BF48
- b _0811BFEE
-_0811BF1C:
- ldr r4, _0811BF44 @ =gUnknown_8457116
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r2, [r0]
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- bl sub_811C008
- ldr r0, [sp, 0x4]
- strh r6, [r0]
- mov r1, sp
- ldrh r2, [r1, 0xC]
- ldr r1, [sp, 0x8]
- strh r2, [r1]
- movs r0, 0x1
- b _0811BFF0
- .align 2, 0
-_0811BF44: .4byte gUnknown_8457116
-_0811BF48:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _0811C000 @ =gUnknown_84570EC
- adds r7, r5, 0
- movs r1, 0
- mov r10, r1
- adds r2, r0, 0x2
- str r2, [sp, 0x10]
- str r0, [sp, 0x14]
-_0811BF66:
- movs r6, 0
- ldr r4, [sp, 0x14]
- movs r0, 0
- ldrsh r4, [r4, r0]
- mov r9, r4
- ldr r1, [sp, 0x10]
- mov r8, r1
- ldr r5, _0811C004 @ =gUnknown_845710C
-_0811BF76:
- mov r2, r10
- adds r3, r2, r6
- mov r0, sp
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r5, r0]
- add r0, r9
- adds r0, 0x7
- cmp r1, r0
- bne _0811BFCA
- mov r1, sp
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- mov r4, r8
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- ldrsb r2, [r5, r2]
- adds r1, r2
- adds r1, 0x7
- cmp r0, r1
- bne _0811BFCA
- adds r0, r3, 0
- subs r0, 0x38
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_806916C
- cmp r0, 0
- bne _0811BFCA
- adds r0, r4, 0
- bl sub_8069294
- cmp r0, 0
- bne _0811BFCA
- ldrb r1, [r7, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0811BF1C
-_0811BFCA:
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- ble _0811BF76
- adds r7, 0x20
- movs r4, 0x5
- add r10, r4
- ldr r0, [sp, 0x10]
- adds r0, 0x4
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- adds r1, 0x4
- str r1, [sp, 0x14]
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- str r2, [sp, 0xC]
- cmp r2, 0x7
- ble _0811BF66
-_0811BFEE:
- movs r0, 0
-_0811BFF0:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C000: .4byte gUnknown_84570EC
-_0811C004: .4byte gUnknown_845710C
- thumb_func_end sub_811BF00
-
- thumb_func_start sub_811C008
-sub_811C008: @ 811C008
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- lsls r1, r2, 24
- lsrs r1, 24
- lsls r0, r3, 2
- adds r0, r3
- subs r0, 0x38
- adds r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_8069058
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811C008
-
- thumb_func_start sub_811C028
-sub_811C028: @ 811C028
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r3, r4, 5
- adds r3, r2
- adds r2, r3, 0
- bl sub_811BBA0
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_811C008
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811C028
-
- thumb_func_start sub_811C04C
-sub_811C04C: @ 811C04C
- push {r4-r7,lr}
- movs r0, 0xA
- bl sub_81173C0
- movs r4, 0
- movs r7, 0x64
- ldr r6, _0811C0CC @ =gPlayerParty
- ldr r5, _0811C0D0 @ =gEnemyParty
-_0811C05C:
- ldr r0, _0811C0D4 @ =gSelectedOrderFromParty
- adds r0, r4, r0
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r7
- adds r1, r6
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x1
- cmp r4, 0x1
- ble _0811C05C
- ldr r4, _0811C0CC @ =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0811C082:
- adds r0, r4, 0
- bl ZeroMonData
- adds r4, 0x64
- cmp r4, r5
- ble _0811C082
- ldr r4, _0811C0CC @ =gPlayerParty
- movs r5, 0
- adds r6, r4, 0
- adds r6, 0x64
-_0811C096:
- ldr r1, _0811C0D0 @ =gEnemyParty
- adds r1, r5, r1
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _0811C096
- movs r0, 0x32
- bl IncrementGameStat
- bl CalculatePlayerPartyCount
- ldr r0, _0811C0D8 @ =gTrainerBattleOpponent_A
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0811C0DC @ =CB2_InitBattle
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0CC: .4byte gPlayerParty
-_0811C0D0: .4byte gEnemyParty
-_0811C0D4: .4byte gSelectedOrderFromParty
-_0811C0D8: .4byte gTrainerBattleOpponent_A
-_0811C0DC: .4byte CB2_InitBattle
- thumb_func_end sub_811C04C
-
- thumb_func_start sub_811C0E0
-sub_811C0E0: @ 811C0E0
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x18
- adds r5, r0, 0
- mov r10, r1
- adds r6, r2, 0
- ldr r4, [sp, 0x34]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- mov r8, r0
- ldr r1, _0811C14C @ =gUnknown_84571A8
- mov r9, r1
- ldrb r0, [r1]
- lsls r1, r0, 4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- str r3, [sp, 0x14]
- bl FillWindowPixelBuffer
- mov r0, r8
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- mov r0, r10
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r6, 0
- ldr r3, [sp, 0x14]
- bl AddTextPrinterParameterized4
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C14C: .4byte gUnknown_84571A8
- thumb_func_end sub_811C0E0
-
- thumb_func_start sub_811C150
-sub_811C150: @ 811C150
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0811C168
- cmp r0, 0x1
- beq _0811C196
- b _0811C1AA
-_0811C168:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD
- bl DrawTextBorderOuter
- str r5, [sp]
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl sub_811C0E0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0811C1AA
-_0811C196:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0811C1AA
- strh r0, [r4]
- movs r0, 0x1
- b _0811C1AC
-_0811C1AA:
- movs r0, 0
-_0811C1AC:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811C150
-
- thumb_func_start sub_811C1B4
-sub_811C1B4: @ 811C1B4
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_811C1B4
-
- thumb_func_start sub_811C1C8
-sub_811C1C8: @ 811C1C8
- push {r4,lr}
- sub sp, 0xC
- ldr r1, _0811C1E8 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x33
- bls _0811C1DE
- b _0811C516
-_0811C1DE:
- lsls r0, 2
- ldr r1, _0811C1EC @ =_0811C1F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811C1E8: .4byte gMain
-_0811C1EC: .4byte _0811C1F0
- .align 2, 0
-_0811C1F0:
- .4byte _0811C2C0
- .4byte _0811C364
- .4byte _0811C38C
- .4byte _0811C3B0
- .4byte _0811C400
- .4byte _0811C516
- .4byte _0811C4E4
- .4byte _0811C4C0
- .4byte _0811C4E4
- .4byte _0811C500
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C516
- .4byte _0811C48C
- .4byte _0811C4A8
-_0811C2C0:
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r4, _0811C350 @ =gUnknown_203B08C
- movs r0, 0x4
- bl AllocZeroed
- str r0, [r4]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0811C354 @ =gUnknown_8457194
- movs r0, 0
- movs r2, 0x1
- bl InitBgsFromTemplates
- bl ResetTempTileDataBuffers
- ldr r0, _0811C358 @ =gUnknown_8457198
- bl InitWindows
- lsls r0, 16
- cmp r0, 0
- bne _0811C300
- b _0811C52A
-_0811C300:
- bl DeactivateAllTextPrinters
- movs r0, 0
- bl ClearWindowTilemap
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl TextWindow_SetStdFrame0_WithPal
- bl Menu_LoadStdPal
- ldr r0, _0811C35C @ =sub_811C1B4
- bl SetVBlankCallback
- ldr r1, _0811C360 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0811C4F2
- .align 2, 0
-_0811C350: .4byte gUnknown_203B08C
-_0811C354: .4byte gUnknown_8457194
-_0811C358: .4byte gUnknown_8457198
-_0811C35C: .4byte sub_811C1B4
-_0811C360: .4byte gMain
-_0811C364:
- ldr r0, _0811C380 @ =gUnknown_203B08C
- ldr r0, [r0]
- ldr r1, _0811C384 @ =gUnknown_841E538
- movs r2, 0
- bl sub_811C150
- cmp r0, 0
- bne _0811C376
- b _0811C516
-_0811C376:
- ldr r1, _0811C388 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _0811C4F2
- .align 2, 0
-_0811C380: .4byte gUnknown_203B08C
-_0811C384: .4byte gUnknown_841E538
-_0811C388: .4byte gMain
-_0811C38C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0
- bl ShowBg
- ldr r1, _0811C3AC @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0811C4F2
- .align 2, 0
-_0811C3AC: .4byte gMain
-_0811C3B0:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- beq _0811C3BC
- b _0811C516
-_0811C3BC:
- ldr r4, _0811C3D8 @ =gBlockSendBuffer
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, _0811C3DC @ =gSelectedOrderFromParty
- ldrb r1, [r0]
- ldrb r0, [r0, 0x1]
- cmn r1, r0
- bne _0811C3E0
- movs r0, 0x52
- b _0811C3E2
- .align 2, 0
-_0811C3D8: .4byte gBlockSendBuffer
-_0811C3DC: .4byte gSelectedOrderFromParty
-_0811C3E0:
- movs r0, 0x51
-_0811C3E2:
- strb r0, [r4]
- ldr r1, _0811C3F8 @ =gBlockSendBuffer
- movs r0, 0
- movs r2, 0x20
- bl SendBlock
- ldr r1, _0811C3FC @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _0811C4F2
- .align 2, 0
-_0811C3F8: .4byte gBlockSendBuffer
-_0811C3FC: .4byte gMain
-_0811C400:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0811C40E
- b _0811C516
-_0811C40E:
- ldr r1, _0811C440 @ =gBlockRecvBuffer
- ldrh r0, [r1]
- cmp r0, 0x51
- bne _0811C448
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0x51
- bne _0811C448
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0811C444 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x32
- b _0811C47E
- .align 2, 0
-_0811C440: .4byte gBlockRecvBuffer
-_0811C444: .4byte gMain
-_0811C448:
- bl sub_800AAC0
- ldr r4, _0811C46C @ =gBlockRecvBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 16
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x52
- bne _0811C474
- ldr r0, _0811C470 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- movs r1, 0x6
- b _0811C47E
- .align 2, 0
-_0811C46C: .4byte gBlockRecvBuffer
-_0811C470: .4byte gMain
-_0811C474:
- ldr r0, _0811C488 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x8
-_0811C47E:
- strb r1, [r0]
- bl ResetBlockReceivedFlags
- b _0811C516
- .align 2, 0
-_0811C488: .4byte gMain
-_0811C48C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0811C516
- bl sub_800AB9C
- ldr r1, _0811C4A4 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _0811C4F2
- .align 2, 0
-_0811C4A4: .4byte gMain
-_0811C4A8:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _0811C516
- ldr r0, _0811C4BC @ =sub_811C04C
- bl SetMainCallback2
- b _0811C516
- .align 2, 0
-_0811C4BC: .4byte sub_811C04C
-_0811C4C0:
- ldr r0, _0811C4D8 @ =gUnknown_203B08C
- ldr r0, [r0]
- ldr r1, _0811C4DC @ =gUnknown_841E58D
- movs r2, 0x1
- bl sub_811C150
- cmp r0, 0
- beq _0811C516
- ldr r0, _0811C4E0 @ =CB2_ReturnToField
- bl SetMainCallback2
- b _0811C516
- .align 2, 0
-_0811C4D8: .4byte gUnknown_203B08C
-_0811C4DC: .4byte gUnknown_841E58D
-_0811C4E0: .4byte CB2_ReturnToField
-_0811C4E4:
- ldr r0, _0811C4FC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0811C516
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
-_0811C4F2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0811C516
- .align 2, 0
-_0811C4FC: .4byte gReceivedRemoteLinkPlayers
-_0811C500:
- ldr r0, _0811C534 @ =gUnknown_203B08C
- ldr r0, [r0]
- ldr r1, _0811C538 @ =gUnknown_841E572
- movs r2, 0x1
- bl sub_811C150
- cmp r0, 0
- beq _0811C516
- ldr r0, _0811C53C @ =CB2_ReturnToField
- bl SetMainCallback2
-_0811C516:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
-_0811C52A:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C534: .4byte gUnknown_203B08C
-_0811C538: .4byte gUnknown_841E572
-_0811C53C: .4byte CB2_ReturnToField
- thumb_func_end sub_811C1C8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/event_scripts.s b/data/event_scripts.s
index f1d28077f..4cb25db68 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1,6 +1,7 @@
#include "constants/global.h"
#include "constants/flags.h"
#include "constants/event_objects.h"
+#include "constants/event_object_movement.h"
#include "constants/decorations.h"
#include "constants/items.h"
#include "constants/layouts.h"
@@ -28,6 +29,7 @@
#include "constants/union_room.h"
#include "constants/trade.h"
#include "constants/quest_log.h"
+#include "constants/daycare.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
.set FALSE, 0
@@ -149,10 +151,10 @@ gStdScriptsEnd::
.include "data/maps/SafariZone_East/scripts.inc"
.include "data/maps/SafariZone_North/scripts.inc"
.include "data/maps/SafariZone_West/scripts.inc"
- .include "data/maps/SafariZone_Building1/scripts.inc"
- .include "data/maps/SafariZone_Building2/scripts.inc"
- .include "data/maps/SafariZone_Building3/scripts.inc"
- .include "data/maps/SafariZone_Building4/scripts.inc"
+ .include "data/maps/SafariZone_Center_RestHouse/scripts.inc"
+ .include "data/maps/SafariZone_East_RestHouse/scripts.inc"
+ .include "data/maps/SafariZone_North_RestHouse/scripts.inc"
+ .include "data/maps/SafariZone_West_RestHouse/scripts.inc"
.include "data/maps/SafariZone_SecretHouse/scripts.inc"
.include "data/maps/CeruleanCave_1F/scripts.inc"
.include "data/maps/CeruleanCave_2F/scripts.inc"
@@ -395,12 +397,12 @@ gStdScriptsEnd::
.include "data/maps/CeladonCity_Hotel/scripts.inc"
.include "data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc"
.include "data/maps/FuchsiaCity_Mart/scripts.inc"
- .include "data/maps/FuchsiaCity_ZooBuilding/scripts.inc"
+ .include "data/maps/FuchsiaCity_SafariZone_Office/scripts.inc"
.include "data/maps/FuchsiaCity_Gym/scripts.inc"
.include "data/maps/FuchsiaCity_House1/scripts.inc"
.include "data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc"
.include "data/maps/FuchsiaCity_PokemonCenter_2F/scripts.inc"
- .include "data/maps/FuchsiaCity_Building1/scripts.inc"
+ .include "data/maps/FuchsiaCity_WardensHouse/scripts.inc"
.include "data/maps/FuchsiaCity_House2/scripts.inc"
.include "data/maps/FuchsiaCity_House3/scripts.inc"
.include "data/maps/CinnabarIsland_Gym/scripts.inc"
@@ -562,10 +564,10 @@ gStdScriptsEnd::
.include "data/maps/SafariZone_East/text.inc"
.include "data/maps/SafariZone_North/text.inc"
.include "data/maps/SafariZone_West/text.inc"
- .include "data/maps/SafariZone_Building1/text.inc"
- .include "data/maps/SafariZone_Building2/text.inc"
- .include "data/maps/SafariZone_Building3/text.inc"
- .include "data/maps/SafariZone_Building4/text.inc"
+ .include "data/maps/SafariZone_Center_RestHouse/text.inc"
+ .include "data/maps/SafariZone_East_RestHouse/text.inc"
+ .include "data/maps/SafariZone_North_RestHouse/text.inc"
+ .include "data/maps/SafariZone_West_RestHouse/text.inc"
.include "data/maps/SafariZone_SecretHouse/text.inc"
.include "data/maps/CeruleanCave_B1F/text.inc"
.include "data/maps/PokemonLeague_LoreleisRoom/text.inc"
@@ -710,11 +712,11 @@ gStdScriptsEnd::
.include "data/maps/CeladonCity_Hotel/text.inc"
.include "data/maps/FuchsiaCity_SafariZone_Entrance/text.inc"
.include "data/maps/FuchsiaCity_Mart/text.inc"
- .include "data/maps/FuchsiaCity_ZooBuilding/text.inc"
+ .include "data/maps/FuchsiaCity_SafariZone_Office/text.inc"
.include "data/maps/FuchsiaCity_Gym/text.inc"
.include "data/maps/FuchsiaCity_House1/text.inc"
.include "data/maps/FuchsiaCity_PokemonCenter_1F/text.inc"
- .include "data/maps/FuchsiaCity_Building1/text.inc"
+ .include "data/maps/FuchsiaCity_WardensHouse/text.inc"
.include "data/maps/FuchsiaCity_House2/text.inc"
.include "data/maps/FuchsiaCity_House3/text.inc"
.include "data/maps/CinnabarIsland_Gym/text.inc"
@@ -739,6 +741,7 @@ gStdScriptsEnd::
.include "data/maps/Route2_EastBuilding/text.inc"
.include "data/maps/Route2_ViridianForest_NorthEntrance/text.inc"
.include "data/maps/Route4_PokemonCenter_1F/text.inc"
+ .include "data/maps/Route5_PokemonDayCare/text.inc"
.include "data/maps/Route5_SouthEntrance/text.inc"
.include "data/maps/Route6_NorthEntrance/text.inc"
.include "data/maps/Route7_EastEntrance/text.inc"
@@ -1117,7 +1120,8 @@ Text_1A641B:: @ 81A641B
.string "All right!\n"
.string "All aboard SEAGALLOP HI-SPEED {STR_VAR_1}!$"
-Text_1A6448:: @ 81A6448
+@ Call for legendary bird trio
+Text_Gyaoo:: @ 81A6448
.string "Gyaoo!$"
Text_MoveCanOnlyBeLearnedOnce:: @ 81A644F
@@ -1375,118 +1379,7 @@ EventScript_1A75D5:: @ 81A75D5
return
.include "data/scripts/movement.inc"
-
-gUnknown_81A7606:: @ 81A7606
- msgbox gUnknown_81C0DB0, MSGBOX_SIGN
- end
-
-gUnknown_81A760F:: @ 81A760F
- msgbox gUnknown_81C0DFD, MSGBOX_SIGN
- end
-
-gUnknown_81A7618:: @ 81A7618
- msgbox gUnknown_81C0F99, MSGBOX_SIGN
- end
-
-gUnknown_81A7621:: @ 81A7621
- msgbox gUnknown_81C12A7, MSGBOX_SIGN
- end
-
-gUnknown_81A762A:: @ 81A762A
- msgbox gUnknown_81C10C1, MSGBOX_SIGN
- end
-
-gUnknown_81A7633:: @ 81A7633
- msgbox gUnknown_81C1273, MSGBOX_SIGN
- end
-
-gUnknown_81A763C:: @ 81A763C
- msgbox gUnknown_81C0FD8, MSGBOX_SIGN
- end
-
-gUnknown_81A7645:: @ 81A7645
- msgbox gUnknown_81C12D6, MSGBOX_SIGN
- end
-
-gUnknown_81A764E:: @ 81A764E
- msgbox gUnknown_81C1300, MSGBOX_SIGN
- end
-
-gUnknown_81A7657:: @ 81A7657
- msgbox Text_DishesPlatesNeatlyLinedUp, MSGBOX_SIGN
- end
-
-gUnknown_81A7660:: @ 81A7660
- msgbox gUnknown_81C0E40, MSGBOX_SIGN
- end
-
-gUnknown_81A7669:: @ 81A7669
- msgbox gUnknown_81C0E73, MSGBOX_SIGN
- end
-
-gUnknown_81A7672:: @ 81A7672
- msgbox gUnknown_81C0EAC, MSGBOX_SIGN
- end
-
-gUnknown_81A767B:: @ 81A767B
- msgbox gUnknown_81C101B, MSGBOX_SIGN
- end
-
-gUnknown_81A7684:: @ 81A7684
- msgbox gUnknown_81C1060, MSGBOX_SIGN
- end
-
-gUnknown_81A768D:: @ 81A768D
- msgbox gUnknown_81C109C, MSGBOX_SIGN
- end
-
-gUnknown_81A7696:: @ 81A7696
- msgbox gUnknown_81C10FC, MSGBOX_SIGN
- end
-
-gUnknown_81A769F:: @ 81A769F
- msgbox gUnknown_81C1134, MSGBOX_SIGN
- end
-
-gUnknown_81A76A8:: @ 81A76A8
- msgbox gUnknown_81C116E, MSGBOX_SIGN
- end
-
-gUnknown_81A76B1:: @ 81A76B1
- msgbox gUnknown_81C1194, MSGBOX_SIGN
- end
-
-gUnknown_81A76BA:: @ 81A76BA
- msgbox gUnknown_81C11BA, MSGBOX_SIGN
- end
-
-gUnknown_81A76C3:: @ 81A76C3
- msgbox gUnknown_81C11DC, MSGBOX_SIGN
- end
-
-gUnknown_81A76CC:: @ 81A76CC
- msgbox gUnknown_81C1217, MSGBOX_SIGN
- end
-
-gUnknown_81A76D5:: @ 81A76D5
- msgbox gUnknown_81C124B, MSGBOX_SIGN
- end
-
-gUnknown_81A76DE:: @ 81A76DE
- msgbox gUnknown_81C0ECB, MSGBOX_SIGN
- end
-
-gUnknown_81A76E7:: @ 81A76E7
- msgbox gUnknown_81C0EF7, MSGBOX_SIGN
- end
-
-gUnknown_81A76F0:: @ 81A76F0
- msgbox gUnknown_81C0F19, MSGBOX_SIGN
- end
-
-gUnknown_81A76F9:: @ 81A76F9
- msgbox gUnknown_81C0F59, MSGBOX_SIGN
- end
+ .include "data/scripts/flavor_text.inc"
gUnknown_81A7702:: @ 81A7702
lockall
@@ -1537,7 +1430,7 @@ EventScript_1A778C:: @ 81A778C
releaseall
end
-gUnknown_81A77A0:: @ 81A77A0
+EventScript_BagItemCanBeRegistered:: @ 81A77A0
msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN
end
@@ -1847,23 +1740,23 @@ EventScript_1A8E6F:: @ 81A8E6F
end
EventScript_1A8EAC:: @ 81A8EAC
- getstdstring 2, 24
+ getstdstring 2, STDSTRING_ITEMS_POCKET
return
EventScript_1A8EB1:: @ 81A8EB1
- getstdstring 2, 25
+ getstdstring 2, STDSTRING_KEY_ITEMS_POCKET
return
EventScript_1A8EB6:: @ 81A8EB6
- getstdstring 2, 26
+ getstdstring 2, STDSTRING_POKEBALLS_POCKET
return
EventScript_1A8EBB:: @ 81A8EBB
- getstdstring 2, 27
+ getstdstring 2, STDSTRING_TM_CASE
return
EventScript_1A8EC0:: @ 81A8EC0
- getstdstring 2, 28
+ getstdstring 2, STDSTRING_BERRY_POUCH
return
.include "data/scripts/seagallop.inc"
@@ -2320,643 +2213,15 @@ EventScript_1B2DF6:: @ 81B2DF6
.include "data/scripts/item_ball_scripts.inc"
.include "data/scripts/mystery_event_club.inc"
.include "data/scripts/day_care.inc"
+ .include "data/text/day_care.inc"
.include "data/scripts/flash.inc"
.include "data/scripts/repel.inc"
-
-@@ Block below consists of at least safari_zone.inc and flavor_text.inc. JP text making it hard to define boundaries
-
-EventScript_SafariWarpOut:: @ 81BFB87
- setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3
- special ExitSafariMode
- setwarp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1
- end
-
-EventScript_1BFB98:: @ 81BFB98
- setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1
- special ExitSafariMode
- warp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1
- waitstate
- end
-
-EventScript_SafariRetire:: @ 81BFBAA
- lockall
- msgbox Text_1BFBE9, MSGBOX_YESNO
- compare VAR_RESULT, YES
- goto_if_eq EventScript_1BFBC0
- releaseall
- end
-
-EventScript_1BFBC0:: @ 81BFBC0
- goto EventScript_1BFB98
-
-EventScript_SafariTimesUp:: @ 81BFBC5
- lockall
- playse SE_PINPON
- msgbox gUnknown_81BFC1B
- goto EventScript_1BFB98
- end
-
-EventScript_SafariOutOfBalls:: @ 81BFBD7
- lockall
- playse SE_PINPON
- msgbox gUnknown_81BFC53
- goto EventScript_1BFB98
- end
-
-Text_1BFBE9:: @ 81BFBE9
- .string "Would you like to exit the SAFARI\n"
- .string "ZONE right now?$"
-
-gUnknown_81BFC1B:: @ 81BFC1B
- .string "PA: Ding-dong!\p"
- .string "Time's up!\p"
- .string "PA: Your SAFARI GAME is over!$"
-
-gUnknown_81BFC53:: @ 81BFC53
- .string "PA: Ding-dong!\p"
- .string "You are out of SAFARI BALLS!\p"
- .string "PA: Your SAFARI GAME is over!$"
-
-Text_1BFC9D:: @ 81BFC9D
- .string "サファリゾーンへ ようこそ!\p"
- .string "ここでは ホウエンでは なかなか\n"
- .string "みることの できない ポケモンを\p"
- .string "しぜんの すがたの まま\n"
- .string "めに することが できます\p"
- .string "また ポケモントレーナーの\n"
- .string "ようぼうに おこたえ して\p"
- .string "ポケモンを\n"
- .string "つかまえる ことも できます!\p"
- .string "サファリゾーンを たのしんで いってね!$"
-
-Text_1BFD30:: @ 81BFD30
- .string "サファリゾーンへ ようこそ!\n"
- .string "サファリゾーンは はじめて ですか?$"
-
-Text_1BFD52:: @ 81BFD52
- .string "サファリゾーンを たのしんで いってね!$"
-
-Text_1BFD67:: @ 81BFD67
- .string "サファリゾーンでは\n"
- .string "30この サファリボールを つかって\l"
- .string "ポケモンを つかまえる ことが できます\p"
- .string "サファリボールを つかいきるか\n"
- .string "500ぽ あるくと\p"
- .string "ゲームは しゅうりょう です\p"
- .string "サファリゾーンを たのしんで いってね!$"
-
-Text_1BFDD7:: @ 81BFDD7
- .string "サファリゾーンへ ようこそ!\p"
- .string "500えんで ポケモン つかまえほうだい!\n"
- .string "サファリゲームに さんか しますか?$"
-
-Text_1BFE0F:: @ 81BFE0F
- .string "そうですか\n"
- .string "こんど ぜひ さんか してください!$"
-
-Text_1BFE28:: @ 81BFE28
- .string "おかねが たりませんよ!$"
-
-Text_1BFE35:: @ 81BFE35
- .string "それでは 500えん いただきます$"
-
-Text_1BFE47:: @ 81BFE47
- .string "では サファリボールを どうぞ!$"
-
-Text_1BFE58:: @ 81BFE58
- .string "{PLAYER}は サファリボールを\n"
- .string "30こ うけとった!$"
-
-Text_1BFE70:: @ 81BFE70
- .string "じかんに なりましたら\n"
- .string "こちらから おしらせ しますので\p"
- .string "ぞんぶんに おたのしみ ください!\n"
- .string "では いってらっしゃい!$"
-
-gUnknown_81BFEAC:: @ 81BFEAC
- .string "Excuse me!\n"
- .string "Your PC BOX is full.$"
-
-Text_1BFECC:: @ 81BFECC
- .string "あ! おきゃくさん\n"
- .string "ポロックケースを おもちで ないですね?\p"
- .string "サファリゾーンは ポロックを つかうと\n"
- .string "より おたのしみ いただけますので\p"
- .string "ぜひ ポロックケースを\n"
- .string "おもちに なって おこし ください!$"
-
-Text_1BFF30:: @ 81BFF30
- .string "まだ じかんが のこっていますが\n"
- .string "サファリゾーンを やめますか?$"
-
-Text_1BFF51:: @ 81BFF51
- .string "では ひきつづき おたのしみ ください!$"
-
-Text_1BFF66:: @ 81BFF66
- .string "わかりました\p"
- .string "それでは のこりの サファリボールを\n"
- .string "おあずかり します\p"
- .string "おつかれさまでした\n"
- .string "また ごりよう ください$"
-
-Text_1BFFA1:: @ 81BFFA1
- .string "それでは いってらっしゃい!\l"
- .string "なにか ありましたら\n"
- .string "わたしに こえを かけて くださいね$"
-
-Text_1BFFCE:: @ 81BFFCE
- .string "しってた?\p"
- .string "あの しかくい はこに ポロックを おくと\n"
- .string "ポケモンが あつまって くるんだよ!$"
-
-Text_1BFFFD:: @ 81BFFFD
- .string "この さきに いきたい けど\n"
- .string "じてんしゃ もって くるの わすれた‥‥\p"
- .string "おくに めずらしい ポケモンが\n"
- .string "いそうな きが するのに!$"
-
-Text_1C003F:: @ 81C003F
- .string "ポケモンに ポロックを なげても\n"
- .string "しらんぷり される ときが あるのよ\p"
- .string "ポケモンにも すききらいが あるのかしら?$"
-
-Text_1C0079:: @ 81C0079
- .string "ぜぇ‥‥ ぜぇ‥‥\n"
- .string "やっと ここまで きたけど‥‥\p"
- .string "つかれちゃって ポケモン つかまえる\n"
- .string "げんきも のこって ないよ‥‥$"
-
-Text_1C00B6:: @ 81C00B6
- .string "ホウエンに いない みずポケモンを\n"
- .string "さがしに きたんだけど‥‥\p"
- .string "みずうみは どこにあるのか\n"
- .string "きみ しってるかい?$"
-
-Text_1C00EF:: @ 81C00EF
- .string "ここで めずらしい ポケモンを\n"
- .string "たくさん つかまえて\l"
- .string "ともだちと こうかん するんだ!$"
-
-Text_1C011B:: @ 81C011B
- .string "ポロックおきばに おいた ポロックが\n"
- .string "いつのまにか なくなっていた‥‥\p"
- .string "しらない うちに\n"
- .string "ポケモンが たべちゃったのかな?$"
-
-Text_1C0159:: @ 81C0159
- .string "サファリゾーンの おとくな じょうほう!\p"
- .string "であった ポケモンに\n"
- .string "ポロックを なげると にげにくく なります!$"
-
-Text_1C0190:: @ 81C0190
- .string "あるき つかれたら ちょっと ひといき!\n"
- .string "‘みんなの きゅうけいじょ'$"
-
-Text_1C01B4:: @ 81C01B4
- .string "おれ ポロック もってないけど\n"
- .string "ポケモン たくさん つかまえたよ\p"
- .string "ちかづいて ボールを なげる だけで\n"
- .string "けっこう つかまえられる もんだよ!$"
-
-Text_1C01FB:: @ 81C01FB
- .string "ポロックを つかうと いつもより\n"
- .string "ちょっぴり にげにくく なるみたい\p"
- .string "だから にげにくい ポケモンに つかっても\n"
- .string "あんまり いみが ないかもね$"
-
-Text_1C0243:: @ 81C0243
- .string "ポロックおきばに ポロック おいて\n"
- .string "ポケモンを つかまえると\p"
- .string "おなじ ような せいかくの ポケモンが\n"
- .string "あつまる きが するなあ$"
-
-Text_1C0283:: @ 81C0283
- .string "わしは おおきな {STR_VAR_1}に\n"
- .string "とても きょうみが ある!\p"
- .string "ん? きみ {STR_VAR_1} もってるの?\n"
- .string "ちょ ちょ ちょっと···\l"
- .string "おじさんに みせて おくれ!$"
-
-Text_1C02CB:: @ 81C02CB
- .string "おお! こいつは でかい!\n"
- .string "とても すばらしい {STR_VAR_1}だ!\p"
- .string "みせて くれて ありがとう\n"
- .string "おれいに これを もって いきなさい$"
-
-Text_1C0309:: @ 81C0309
- .string "{PLAYER}は\n"
- .string "{STR_VAR_2}を もらった!$"
-
-Text_1C0317:: @ 81C0317
- .string "ありゃ?\n"
- .string "きみ もちもの いっぱいだね$"
-
-Text_1C032B:: @ 81C032B
- .string "ううむ わしは これより おおきい\n"
- .string "{STR_VAR_1}を みたこと あるな···$"
-
-Text_1C034D:: @ 81C034D
- .string "おお こいつは なかなか···って\n"
- .string "これ {STR_VAR_1}じゃ ないよ!$"
-
-Text_1C036C:: @ 81C036C
- .string "おおきい {STR_VAR_1} もってないの?\l"
- .string "それは ざんねん···\n"
- .string "こんど おおきい {STR_VAR_1} みせてね$"
-
-Text_1C0399:: @ 81C0399
- .string "しじょう さいだいの {STR_VAR_1}!\n"
- .string "{STR_VAR_2}の {STR_VAR_3}cmのやつ!$"
-
-Text_1C03B5:: @ 81C03B5
- .string "パパ“{PLAYER}! よく きたな!\n"
- .string "{PLAYER}あての てがみが とどけられたぞ$"
-
-Text_1C03D7:: @ 81C03D7
- .string "パパ“わたしも みたことのない\n"
- .string "ふねの チケット だな‥‥\l"
- .string "ミナモに いってみると いいだろう$"
-
-Text_1C0407:: @ 81C0407
- .string "カイナいき れんらくせん‥‥\p"
- .string "あら?\n"
- .string "その チケットは‥‥!$"
-
-Text_1C0426:: @ 81C0426
- .string "ヘンテコな チケットを\n"
- .string "もってきたのは おまえさんか?\p"
- .string "おまえが いこうと しているのは\n"
- .string "みなみの はての ちっぽけな しま‥‥\p"
- .string "そこでは なにが おこるのか\n"
- .string "だれも わからねえ‥‥\l"
- .string "ううむ ふなのりの ちが さわぐぜ!\p"
- .string "さあ のりな!$"
-
-Text_1C049D:: @ 81C049D
- .string "なにもねえ ちんけな しま だな‥‥\n"
- .string "ミナモへ かえるか?$"
-
-Text_1C04BB:: @ 81C04BB
- .string "ùÏ! ÉÇñÑ ÒñÉ!$"
-
-Text_1C04C9:: @ 81C04C9
- .string "そうかい\n"
- .string "まあ すきにするが いいさ$"
-
-Text_1C04DC:: @ 81C04DC
- .string "すべての ゆめは もうひとつの げんじつ\n"
- .string "それを わすれるべからず‥‥$"
-
-Text_1C0500:: @ 81C0500
- .string "きおく かすみし ものは\n"
- .string "こころに きざみつける ことを のぞむ‥‥$"
-
-Text_1C0523:: @ 81C0523
- .string "パパ“やあ {PLAYER}!\p"
- .string "めずらしい きのみを てに いれたから\n"
- .string "プレゼント するよ!$"
-
-Text_1C054C:: @ 81C054C
- .string "ふかふかの つちに はえている きのみは\n"
- .string "じゆうに とっても よいのじゃが‥\p"
- .string "1つだけ きのみを おなじ ばしょに うめる\n"
- .string "それが れいぎと いうものじゃ\p"
- .string "ほれ これを わけてやろう$"
-
-Text_1C05A8:: @ 81C05A8
- .string "あんた みたところ トレーナーじゃろ?\p"
- .string "トレーナーは よく きのみを ポケモンに\n"
- .string "もたせとるわい\p"
- .string "ふやすも つかうも あんた しだいじゃ$"
-
-Text_1C05ED:: @ 81C05ED
- .string "いつも みずを あげてたら\n"
- .string "たくさん はなが さいたんだ\p"
- .string "そしたら きのみも たくさん できた!\p"
- .string "はい!\n"
- .string "これ あげる$"
-
-Text_1C0629:: @ 81C0629
- .string "がんばって あかいポロック つくるんだ!\n"
- .string "{STR_VAR_1}も がんばってね!$"
-
-Text_1C064A:: @ 81C064A
- .string "きょうは なにいろの きのみを\n"
- .string "さがそっかなー$"
-
-Text_1C0662:: @ 81C0662
- .string "ポケモンコンテストの ゆうしょうを めざして\n"
- .string "きのみを あつめているんだ\p"
- .string "よかったら きみにも わけて あげるよ!$"
-
-Text_1C069C:: @ 81C069C
- .string "きみも がんばれ!$"
-
-Text_1C06A6:: @ 81C06A6
- .string "きょうは どの きのみを うめるか‥\n"
- .string "そして なにいろの ポロックを つくるか‥\p"
- .string "なやむのも また たのしいよ$"
-
-Text_1C06DE:: @ 81C06DE
- .string "ケースを ふると でてくる ポロック‥\p"
- .string "そして それを キャッチして\n"
- .string "たべてくれる ポケモン‥\p"
- .string "これって あい だよね?$"
-
-Text_1C071B:: @ 81C071B
- .string "うん うん!\n"
- .string "やっぱ わかるひとには わかるよね\p"
- .string "これ あげる$"
-
-Text_1C073B:: @ 81C073B
- .string "そっか‥‥\n"
- .string "でも ちがうと かんじることも たいせつだね\p"
- .string "これ あげる$"
-
-Text_1C075F:: @ 81C075F
- .string "その きのみは めずらしいもの らしいから\n"
- .string "たいせつに そだててね!$"
-
-Text_1C0782:: @ 81C0782
- .string "また きのみめいじんに もらって こようっと$"
-
-Text_1C0799:: @ 81C0799
- .string "やっぱり\p"
- .string "わたしに スーツが にあうように\n"
- .string "うみには しおかぜが にあうな\l"
- .string "そして きみには きのみが にあいそうだ‥‥\p"
- .string "なんでだろうね?$"
-
-Text_1C07DF:: @ 81C07DF
- .string "やっぱり それは‥‥‥‥\p"
- .string "きみが トレーナーだからだ!$"
-
-Text_1C07FB:: @ 81C07FB
- .string "やっぱり\p"
- .string "わたしに シンプルさが にあうように\n"
- .string "ポケモンには ポロックが にあうな$"
-
-Text_1C0825:: @ 81C0825
- .string "わしは きのみめいじんと よばれておる\p"
- .string "わしは せかいじゅうを うつくしい はなで\n"
- .string "うめつくそうと きのみを そだてて\l"
- .string "そして くばり まくって おるのじゃ\p"
- .string "きみにも きのみを わけて あげよう!$"
-
-Text_1C0888:: @ 81C0888
- .string "ほれ えんりょ せずに もう ひとつ!$"
-
-Text_1C089C:: @ 81C089C
- .string "カナズミの ちかくにある サン·トウカという\n"
- .string "フラワーショップも よろしくの\p"
- .string "せかいに はなを さかせましょう!$"
-
-Text_1C08D5:: @ 81C08D5
- .string "きょうは もう おしまいじゃ\n"
- .string "また おいで\p"
- .string "せかいに はなを さかせましょう!$"
-
-Text_1C08FD:: @ 81C08FD
- .string "じいさんの きのみの そだてかたは\n"
- .string "そりゃあ せかいいちじゃ\p"
- .string "わしも はなが たかいわい\p"
- .string "ところで あんた\n"
- .string "いい ことばを きいたことが ないかい?$"
-
-Text_1C0948:: @ 81C0948
- .string "おお! とても よい ことばじゃ!\n"
- .string "かんどう したわい\p"
- .string "ほれ これを もっていきなされ$"
-
-Text_1C0974:: @ 81C0974
- .string "おお! なかなか よい ことばじゃ\n"
- .string "あんたも たいしたもんじゃ\p"
- .string "ほれ これを もっていきなされ$"
-
-Text_1C09A4:: @ 81C09A4
- .string "まごたち 4にんも じいさんを しのぐ\n"
- .string "おおものに なるじゃろうて\p"
- .string "じんせい たのしいことが つきんのう!$"
-
-Text_1C09DA:: @ 81C09DA
- .string "ほう‥‥$"
-
-Text_1C09DF:: @ 81C09DF
- .string "こんにちは!\p"
- .string "はなを せかいに ひろめる\n"
- .string "フラワーショップ サン·トウカです!$"
-
-Text_1C0A07:: @ 81C0A07
- .string "{PLAYER}{KUN} きのみの こと しりたい?$"
-
-Text_1C0A1A:: @ 81C0A1A
- .string "あなたの なまえは‥‥\p"
- .string "{PLAYER}{KUN}ね!\n"
- .string "とっても いい なまえだね!\l"
- .string "{PLAYER}{KUN} きのみのこと しりたい?$"
-
-Text_1C0A4E:: @ 81C0A4E
- .string "きのみはね くろい ふかふかの つちの\n"
- .string "ところで たまに とれるの\l"
- .string "でね‥‥\p"
- .string "とったら その1つを また うめるの!\p"
- .string "そうすると その きのみ から\n"
- .string "めがでて みきが できて はながさいて\l"
- .string "また きのみ が できるの\p"
- .string "そうやって はなを ふやして\n"
- .string "せかいじゅうを はなに するのが\l"
- .string "わたしの ゆめ なんだ!\p"
- .string "だから {PLAYER}{KUN}も きのみを うめて\n"
- .string "せかいに はなを ふやしてね!$"
-
-Text_1C0B0B:: @ 81C0B0B
- .string "おはなって とっても しあわせな きぶんに\n"
- .string "してくれるよね$"
-
-Text_1C0B29:: @ 81C0B29
- .string "こんにちは!\p"
- .string "おはなは せわを すれば するほど\n"
- .string "たくさん きれいに さいて くれるの\p"
- .string "あなたも せわを したく なった でしょ?\n"
- .string "これ あげるわ$"
-
-Text_1C0B73:: @ 81C0B73
- .string "きのみが そだつ たびに\n"
- .string "じょうろで みずを あげてね!\p"
- .string "あとね\p"
- .string "きのみは ずっと ずっと ほうっておくと\n"
- .string "じめんに おちてしまうの\l"
- .string "でもね そこから また めがでて くるの!\p"
- .string "すごいよね!\n"
- .string "いきものの ちからを かんじるよね$"
-
-Text_1C0BE5:: @ 81C0BE5
- .string "おねーちゃんたちを みならって\n"
- .string "がんばって おはなを そだててるの\p"
- .string "はい! これあげる!$"
-
-Text_1C0C12:: @ 81C0C12
- .string "きのみは うめて おおきく したり\n"
- .string "ポケモンに もたせたり できるの\p"
- .string "でも さいきん きのみを いくつか まぜると\n"
- .string "ポケモンの おかしになる きかいが\l"
- .string "ある らしいんだ\p"
- .string "あたしも おかし ほしー$"
-
-Text_1C0C74:: @ 81C0C74
- .string "{STR_VAR_1} なまえ なんていうの?\p"
- .string "‥‥‥ ‥‥‥ ‥‥‥\n"
- .string "へー いいねー\p"
- .string "わたしは キリ っていう なまえなの\p"
- .string "パパと ママが すくすくと そだって\n"
- .string "こころの あたたかい おんなのこに なって\l"
- .string "ほしいっていう ねがいを こめたんだって!\p"
- .string "{STR_VAR_1}にも これ あげる$"
-
-Text_1C0CF5:: @ 81C0CF5
- .string "あと {STR_VAR_1}には キリの だいすきな\n"
- .string "この きのみも あげちゃう!$"
-
-Text_1C0D16:: @ 81C0D16
- .string "{STR_VAR_1}の なまえには\n"
- .string "どんな ねがいが こめられてるの?$"
-
-Text_1C0D32:: @ 81C0D32
- .string "はる なつ あき ふゆ\n"
- .string "はるに うまれると はるが すきで\l"
- .string "なつに うまれると なつが すきなのかな?$"
-
-Text_1C0D66:: @ 81C0D66
- .string "じゃあ キリは あきに うまれたから\n"
- .string "あきが だいすき!\p"
- .string "{STR_VAR_1}は いつが すき?$"
-
-Text_1C0D8F:: @ 81C0D8F
- .string "そっか‥\n"
- .string "かんけいないのか‥\p"
- .string "しりたいことって たくさんあるなー$"
-
-gUnknown_81C0DB0:: @ 81C0DB0
- .string "It's crammed full of POKéMON\n"
- .string "books.$"
-
-Text_1C0DD4:: @ 81C0DD4
- .string "ほんだなに ならんでいるのは\n"
- .string "ポケモンの ほん ばかりだ$"
-
-Text_ATownMap:: @ 81C0DF1
- .string "A TOWN MAP.$"
-
-gUnknown_81C0DFD:: @ 81C0DFD
- .string "Wow!\n"
- .string "Tons of POKéMON stuff!$"
-
-Text_DishesPlatesNeatlyLinedUp:: @ 81C0E19
- .string "Dishes and plates are neatly\n"
- .string "lined up.$"
-
-gUnknown_81C0E40:: @ 81C0E40
- .string "It smells delicious!\n"
- .string "Somebody's been cooking here.$"
-
-gUnknown_81C0E73:: @ 81C0E73
- .string "It's a nicely made dresser.\n"
- .string "It will hold a lot of stuff.$"
-
-gUnknown_81C0EAC:: @ 81C0EAC
- .string "There's a pile of snacks here.$"
-
-gUnknown_81C0ECB:: @ 81C0ECB
- .string "All your item needs fulfilled!\n"
- .string "POKéMON MART$"
-
-gUnknown_81C0EF7:: @ 81C0EF7
- .string "Heal Your POKéMON!\n"
- .string "POKéMON CENTER$"
-
-gUnknown_81C0F19:: @ 81C0F19
- .string "INDIGO PLATEAU\p"
- .string "The ultimate goal of TRAINERS!\n"
- .string "POKéMON LEAGUE HQ$"
-
-gUnknown_81C0F59:: @ 81C0F59
- .string "INDIGO PLATEAU\p"
- .string "The highest POKéMON authority!\n"
- .string "POKéMON LEAGUE HQ$"
-
-gUnknown_81C0F99:: @ 81C0F99
- .string "It should be packed with all kinds\n"
- .string "of delicious things to eat.$"
-
-gUnknown_81C0FD8:: @ 81C0FD8
- .string "It's a blueprint of some sort.\n"
- .string "It's filled with diagrams and text.$"
-
-gUnknown_81C101B:: @ 81C101B
- .string "It's a pretty picture of a POKéMON.\n"
- .string "It looks like it's feeling good.$"
-
-gUnknown_81C1060:: @ 81C1060
- .string "What could this machine be?\n"
- .string "Better not mess around with it!$"
-
-gUnknown_81C109C:: @ 81C109C
- .string "It's a telephone.\n"
- .string "Better not use it.$"
-
-gUnknown_81C10C1:: @ 81C10C1
- .string "It's all complicated words and\n"
- .string "numbers that make no sense…$"
-
-gUnknown_81C10FC:: @ 81C10FC
- .string "It's an advertising poster about\n"
- .string "all kinds of products.$"
-
-gUnknown_81C1134:: @ 81C1134
- .string "Oh, that smells tasty!\n"
- .string "It might get the stomach growling!$"
-
-gUnknown_81C116E:: @ 81C116E
- .string "Inside this…\n"
- .string "……\p"
- .string "There's nothing here!$"
-
-gUnknown_81C1194:: @ 81C1194
- .string "It's a cup with a POKéMON mark\n"
- .string "on it.$"
-
-gUnknown_81C11BA:: @ 81C11BA
- .string "The window is very well polished.$"
-
-gUnknown_81C11DC:: @ 81C11DC
- .string "Outside the window…\p"
- .string "The sky looks fantastically\n"
- .string "beautiful.$"
-
-gUnknown_81C1217:: @ 81C1217
- .string "Lights in different colors are\n"
- .string "flashing on and off.$"
-
-gUnknown_81C124B:: @ 81C124B
- .string "All sorts of tools are lined up\n"
- .string "neatly.$"
-
-gUnknown_81C1273:: @ 81C1273
- .string "It's a machine of some sort.\n"
- .string "It sure is impressive.$"
-
-gUnknown_81C12A7:: @ 81C12A7
- .string "It's the latest video game!\n"
- .string "It sure looks fun!$"
-
-gUnknown_81C12D6:: @ 81C12D6
- .string "There are obvious signs of burglary\n"
- .string "here…$"
-
-gUnknown_81C1300:: @ 81C1300
- .string "There's a POKéMON on TV!\n"
- .string "It looks like it's having fun.$"
-
+ .include "data/scripts/safari_zone.inc"
+ .include "data/text/safari_zone.inc"
+ .include "data/text/competitive_brothers.inc"
+ .include "data/text/eon_ticket.inc"
+ .include "data/text/berries.inc"
+ .include "data/text/flavor_text.inc"
.include "data/scripts/hole.inc"
.include "data/text/trainers.inc"
.include "data/scripts/move_tutors.inc"
diff --git a/data/graphics.s b/data/graphics.s
index cea2a0ab3..809385e49 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -13476,7 +13476,7 @@ gTrainerBackPic_Leaf:: @ 8E6C6BC
.incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp"
.align 2
-gTrainerBackPic_PokeDude:: @ 8E6EEBC
+gTrainerBackPic_Pokedude:: @ 8E6EEBC
.incbin "graphics/trainers/back_pics/pokedude_back_pic.4bpp"
.align 2
@@ -13500,7 +13500,7 @@ gTrainerPalette_LeafBackPic:: @ 8E76EE4
.incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz"
.align 2
-gTrainerPalette_PokeDudeBackPic:: @ 8E76F0C
+gTrainerPalette_PokedudeBackPic:: @ 8E76F0C
.incbin "graphics/trainers/palettes/pokedude_back_pic.gbapal.lz"
.align 2
@@ -14004,11 +14004,11 @@ gUnknown_8E83444:: @ 8E83444
.incbin "graphics/item_menu/bag_tilemap2.bin.lz" @ PC deposit items
.align 2
-gUnknown_8E835B4:: @ 8E835B4
+gBagBgPalette:: @ 8E835B4
.incbin "graphics/item_menu/bag_pal1.gbapal.lz" @ palette 1 (Boy + misc Pal)
.align 2
-gUnknown_8E83604:: @ 8E83604
+gBagBgPalette_FemaleOverride:: @ 8E83604
.incbin "graphics/item_menu/bag_pal2.gbapal.lz" @ palette 2 (Girl)
gUnknown_8E8362C:: @ 8E8362C
diff --git a/data/item_menu.s b/data/item_menu.s
deleted file mode 100644
index b5cc492e3..000000000
--- a/data/item_menu.s
+++ /dev/null
@@ -1,116 +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_8452CF4:: @ 8452CF4
- .4byte 0x000001f0
- @ {
- @ .bg = 0,
- @ .charBaseIndex = 0,
- @ .mapBaseIndex = 31,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 0,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000011ed
- @ {
- @ .bg = 1,
- @ .charBaseIndex = 3,
- @ .mapBaseIndex = 30,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 1,
- @ .baseTile = 0x0000
- @ }
-
-gUnknown_8452CFC:: @ 8452CFC
- .4byte gUnknown_84162CD
- .4byte gUnknown_84162DE
- .4byte gUnknown_84162D3
-
-gUnknown_8452D08:: @ 8452D08
- .incbin "graphics/item_menu/bagmap_0.bin"
- .incbin "graphics/item_menu/bagmap_1.bin"
- .incbin "graphics/item_menu/bagmap_2.bin"
- .incbin "graphics/item_menu/bagmap_3.bin"
- .incbin "graphics/item_menu/bagmap_4.bin"
- .incbin "graphics/item_menu/bagmap_5.bin"
- .incbin "graphics/item_menu/bagmap_6.bin"
- .incbin "graphics/item_menu/bagmap_7.bin"
- .incbin "graphics/item_menu/bagmap_8.bin"
- .incbin "graphics/item_menu/bagmap_9.bin"
- .incbin "graphics/item_menu/bagmap_A.bin"
- .incbin "graphics/item_menu/bagmap_B.bin"
-
-gUnknown_8452EB8:: @ 8452EB8
- .4byte gOtherText_Use, sub_8109C50
- .4byte gOtherText_Toss, sub_8109CC0
- .4byte gUnknown_84161A9, sub_810A000
- .4byte gOtherText_Give, sub_810A0A8
- .4byte gFameCheckerText_Cancel, sub_810A2DC
- .4byte gOtherText_Use, sub_810A324
- .4byte gUnknown_84161E9, sub_8109C50
- .4byte gUnknown_84161F4, sub_8109C50
- .4byte gUnknown_84161F4, sub_810A324
- .4byte gUnknown_84161BC, sub_8109C50
- .4byte gUnknown_84161F9, sub_810A000
- .4byte gString_Dummy, NULL
-
-gUnknown_8452F18:: @ 8452F18
- .byte 0x00, 0x03, 0x01, 0x04
- .byte 0x00, 0x02, 0x04, 0x0b
- .byte 0x03, 0x01, 0x04, 0x0b
-
-gUnknown_8452F24:: @ 8452F24
- .byte 0x06, 0x03, 0x01, 0x04
-
-gUnknown_8452F28:: @ 8452F28
- .byte 0x03, 0x04
- .byte 0x04, 0x0b
- .byte 0x03, 0x04
-
-gUnknown_8452F2E:: @ 8452F2E
- .byte 0x07, 0x04
-
-gUnknown_8452F30:: @ 8452F30
- .byte 0x05, 0x04
-
-gUnknown_8452F32:: @ 8452F32
- .byte 0x04, 0x0b
-
-gUnknown_8452F34:: @ 8452F34
- .4byte sub_8109BB8
- .4byte sub_810A370
- .4byte sub_810A568
- .4byte sub_810AB40
- .4byte sub_810A468
- .4byte sub_8109BB8
- .4byte NULL
-
-gUnknown_8452F50:: @ 8452F50
- .4byte sub_8109EA8
- .4byte sub_8109DB0
-
-gUnknown_8452F58:: @ 8452F58
- .4byte sub_810A940
- .4byte sub_810A720
-
-gUnknown_8452F60:: @ 8452F60
- .string "{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}$"
-
-gUnknown_8452F66:: @ 8452F66
- .string "{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}$"
-
-gUnknown_8452F6C:: @ 8452F6C
- .byte 0, 8, 72, 1, 72, 72
- .2byte 0, 2, 111, 111
- .byte 0
- .align 2
-
-gUnknown_8452F7C:: @ 8452F7C
- .incbin "graphics/interface/select_button.4bpp"
diff --git a/data/layouts/FuchsiaCity_Building1/border.bin b/data/layouts/FuchsiaCity_SafariZone_Office/border.bin
index a886cd764..a886cd764 100644
--- a/data/layouts/FuchsiaCity_Building1/border.bin
+++ b/data/layouts/FuchsiaCity_SafariZone_Office/border.bin
Binary files differ
diff --git a/data/layouts/FuchsiaCity_ZooBuilding/map.bin b/data/layouts/FuchsiaCity_SafariZone_Office/map.bin
index d18ddbd61..d18ddbd61 100644
--- a/data/layouts/FuchsiaCity_ZooBuilding/map.bin
+++ b/data/layouts/FuchsiaCity_SafariZone_Office/map.bin
diff --git a/data/layouts/FuchsiaCity_ZooBuilding/border.bin b/data/layouts/FuchsiaCity_WardensHouse/border.bin
index a886cd764..a886cd764 100644
--- a/data/layouts/FuchsiaCity_ZooBuilding/border.bin
+++ b/data/layouts/FuchsiaCity_WardensHouse/border.bin
Binary files differ
diff --git a/data/layouts/FuchsiaCity_Building1/map.bin b/data/layouts/FuchsiaCity_WardensHouse/map.bin
index 4efd7d891..4efd7d891 100644
--- a/data/layouts/FuchsiaCity_Building1/map.bin
+++ b/data/layouts/FuchsiaCity_WardensHouse/map.bin
diff --git a/data/layouts/SafariZone_Building/border.bin b/data/layouts/SafariZone_RestHouse/border.bin
index a886cd764..a886cd764 100644
--- a/data/layouts/SafariZone_Building/border.bin
+++ b/data/layouts/SafariZone_RestHouse/border.bin
Binary files differ
diff --git a/data/layouts/SafariZone_Building/map.bin b/data/layouts/SafariZone_RestHouse/map.bin
index caec48cdc..caec48cdc 100644
--- a/data/layouts/SafariZone_Building/map.bin
+++ b/data/layouts/SafariZone_RestHouse/map.bin
diff --git a/data/layouts/UnusedLayout_833B6EC/border.bin b/data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin
index a021ddd4e..a021ddd4e 100644
--- a/data/layouts/UnusedLayout_833B6EC/border.bin
+++ b/data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin
diff --git a/data/layouts/UnusedLayout_833B6EC/map.bin b/data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin
index d1385e8cb..d1385e8cb 100644
--- a/data/layouts/UnusedLayout_833B6EC/map.bin
+++ b/data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin
diff --git a/data/layouts/UnusedLayout_833BE30/border.bin b/data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin
index a021ddd4e..a021ddd4e 100644
--- a/data/layouts/UnusedLayout_833BE30/border.bin
+++ b/data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin
diff --git a/data/layouts/UnusedLayout_833BE30/map.bin b/data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin
index 13a635e49..13a635e49 100644
--- a/data/layouts/UnusedLayout_833BE30/map.bin
+++ b/data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin
diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json
index 04727aaa7..63fc06562 100644
--- a/data/layouts/layouts.json
+++ b/data/layouts/layouts.json
@@ -2168,16 +2168,16 @@
"blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_Roof/map.bin"
},
{
- "id": "LAYOUT_SAFARI_ZONE_BUILDING",
- "name": "SafariZone_Building_Layout",
+ "id": "LAYOUT_SAFARI_ZONE_REST_HOUSE",
+ "name": "SafariZone_RestHouse_Layout",
"width": 13,
"height": 11,
"border_width": 2,
"border_height": 2,
"primary_tileset": "gTileset_82D4BB4",
"secondary_tileset": "gTileset_82D4F14",
- "border_filepath": "data/layouts/SafariZone_Building/border.bin",
- "blockdata_filepath": "data/layouts/SafariZone_Building/map.bin"
+ "border_filepath": "data/layouts/SafariZone_RestHouse/border.bin",
+ "blockdata_filepath": "data/layouts/SafariZone_RestHouse/map.bin"
},
{
"id": "LAYOUT_SAFARI_ZONE_SECRET_HOUSE",
@@ -2192,28 +2192,28 @@
"blockdata_filepath": "data/layouts/SafariZone_SecretHouse/map.bin"
},
{
- "id": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING",
- "name": "FuchsiaCity_ZooBuilding_Layout",
+ "id": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE",
+ "name": "FuchsiaCity_SafariZone_Office_Layout",
"width": 20,
"height": 11,
"border_width": 2,
"border_height": 2,
"primary_tileset": "gTileset_82D4BB4",
"secondary_tileset": "gTileset_82D4F14",
- "border_filepath": "data/layouts/FuchsiaCity_ZooBuilding/border.bin",
- "blockdata_filepath": "data/layouts/FuchsiaCity_ZooBuilding/map.bin"
+ "border_filepath": "data/layouts/FuchsiaCity_SafariZone_Office/border.bin",
+ "blockdata_filepath": "data/layouts/FuchsiaCity_SafariZone_Office/map.bin"
},
{
- "id": "LAYOUT_FUCHSIA_CITY_BUILDING1",
- "name": "FuchsiaCity_Building1_Layout",
+ "id": "LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE",
+ "name": "FuchsiaCity_WardensHouse_Layout",
"width": 13,
"height": 11,
"border_width": 2,
"border_height": 2,
"primary_tileset": "gTileset_82D4BB4",
"secondary_tileset": "gTileset_82D4C2C",
- "border_filepath": "data/layouts/FuchsiaCity_Building1/border.bin",
- "blockdata_filepath": "data/layouts/FuchsiaCity_Building1/map.bin"
+ "border_filepath": "data/layouts/FuchsiaCity_WardensHouse/border.bin",
+ "blockdata_filepath": "data/layouts/FuchsiaCity_WardensHouse/map.bin"
},
{
"id": "LAYOUT_FUCHSIA_CITY_HOUSE2",
@@ -3128,28 +3128,28 @@
"blockdata_filepath": "data/layouts/FourIsland_PokemonDayCare/map.bin"
},
{
- "id": "LAYOUT_UNUSED_LAYOUT_833B6EC",
- "name": "UnusedLayout_833B6EC_Layout",
+ "id": "LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED",
+ "name": "SeafoamIslands_B3F_CurrentStopped_Layout",
"width": 38,
"height": 24,
"border_width": 2,
"border_height": 2,
"primary_tileset": "gTileset_82D4A94",
"secondary_tileset": "gTileset_82D4E24",
- "border_filepath": "data/layouts/UnusedLayout_833B6EC/border.bin",
- "blockdata_filepath": "data/layouts/UnusedLayout_833B6EC/map.bin"
+ "border_filepath": "data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin",
+ "blockdata_filepath": "data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin"
},
{
- "id": "LAYOUT_UNUSED_LAYOUT_833BE30",
- "name": "UnusedLayout_833BE30_Layout",
+ "id": "LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED",
+ "name": "SeafoamIslands_B4F_CurrentStopped_Layout",
"width": 38,
"height": 24,
"border_width": 2,
"border_height": 2,
"primary_tileset": "gTileset_82D4A94",
"secondary_tileset": "gTileset_82D4E24",
- "border_filepath": "data/layouts/UnusedLayout_833BE30/border.bin",
- "blockdata_filepath": "data/layouts/UnusedLayout_833BE30/map.bin"
+ "border_filepath": "data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin",
+ "blockdata_filepath": "data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin"
},
{
"id": "LAYOUT_MT_EMBER_EXTERIOR",
diff --git a/data/maps/CeruleanCave_B1F/map.json b/data/maps/CeruleanCave_B1F/map.json
index a5c9110e4..0df4d1d5f 100644
--- a/data/maps/CeruleanCave_B1F/map.json
+++ b/data/maps/CeruleanCave_B1F/map.json
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "CeruleanCave_B1F_EventScript_1624F5",
+ "script": "CeruleanCave_B1F_EventScript_Mewtwo",
"flag": "FLAG_HIDE_MEWTWO"
},
{
diff --git a/data/maps/CeruleanCave_B1F/scripts.inc b/data/maps/CeruleanCave_B1F/scripts.inc
index 8fcf7cbf1..b0452c3b1 100644
--- a/data/maps/CeruleanCave_B1F/scripts.inc
+++ b/data/maps/CeruleanCave_B1F/scripts.inc
@@ -4,10 +4,10 @@ CeruleanCave_B1F_MapScripts:: @ 81624BE
.byte 0
CeruleanCave_B1F_OnResume:: @ 81624C9
- call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, EventScript_1624D3
+ call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, CeruleanCave_B1F_EventScript_TryRemoveMewtwo
end
-EventScript_1624D3:: @ 81624D3
+CeruleanCave_B1F_EventScript_TryRemoveMewtwo:: @ 81624D3
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne EventScript_Return
@@ -15,21 +15,21 @@ EventScript_1624D3:: @ 81624D3
return
CeruleanCave_B1F_OnTransition:: @ 81624E7
- call_if_unset FLAG_FOUGHT_MEWTWO, EventScript_1624F1
+ call_if_unset FLAG_FOUGHT_MEWTWO, CeruleanCave_B1F_EventScript_ShowMewtwo
end
-EventScript_1624F1:: @ 81624F1
+CeruleanCave_B1F_EventScript_ShowMewtwo:: @ 81624F1
clearflag FLAG_HIDE_MEWTWO
return
-CeruleanCave_B1F_EventScript_1624F5:: @ 81624F5
+CeruleanCave_B1F_EventScript_Mewtwo:: @ 81624F5
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
lock
faceplayer
waitse
playmoncry SPECIES_MEWTWO, 2
- message Text_177F9F
+ message CeruleanCave_B1F_Text_Mew
waitmessage
waitmoncry
delay 20
@@ -42,25 +42,21 @@ CeruleanCave_B1F_EventScript_1624F5:: @ 81624F5
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_162558
+ goto_if_eq CeruleanCave_B1F_EventScript_DefeatedMewtwo
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_162561
+ goto_if_eq CeruleanCave_B1F_EventScript_RanFromMewtwo
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_162561
+ goto_if_eq CeruleanCave_B1F_EventScript_RanFromMewtwo
setflag FLAG_FOUGHT_MEWTWO
release
end
-EventScript_162558:: @ 8162558
+CeruleanCave_B1F_EventScript_DefeatedMewtwo:: @ 8162558
setflag FLAG_FOUGHT_MEWTWO
goto EventScript_RemoveStaticMon
-
-EventScript_162560:: @ 8162560
end
-EventScript_162561:: @ 8162561
+CeruleanCave_B1F_EventScript_RanFromMewtwo:: @ 8162561
setvar VAR_0x8004, SPECIES_MEWTWO
goto EventScript_MonFlewAway
-
-EventScript_16256B:: @ 816256B
end
diff --git a/data/maps/CeruleanCave_B1F/text.inc b/data/maps/CeruleanCave_B1F/text.inc
index 2358efe24..a743238cb 100644
--- a/data/maps/CeruleanCave_B1F/text.inc
+++ b/data/maps/CeruleanCave_B1F/text.inc
@@ -1,3 +1,3 @@
-Text_177F9F:: @ 8177F9F
+CeruleanCave_B1F_Text_Mew:: @ 8177F9F
.string "Mew!$"
diff --git a/data/maps/DiglettsCave_NorthEntrance/map.json b/data/maps/DiglettsCave_NorthEntrance/map.json
index b3571f8da..fa87e6f8a 100644
--- a/data/maps/DiglettsCave_NorthEntrance/map.json
+++ b/data/maps/DiglettsCave_NorthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "DiglettsCave_NorthEntrance_EventScript_160EE8",
+ "script": "DiglettsCave_NorthEntrance_EventScript_Hiker",
"flag": "0"
}
],
diff --git a/data/maps/DiglettsCave_NorthEntrance/scripts.inc b/data/maps/DiglettsCave_NorthEntrance/scripts.inc
index a11fa4c3a..3bd05f5fd 100644
--- a/data/maps/DiglettsCave_NorthEntrance/scripts.inc
+++ b/data/maps/DiglettsCave_NorthEntrance/scripts.inc
@@ -1,6 +1,6 @@
DiglettsCave_NorthEntrance_MapScripts:: @ 8160EE7
.byte 0
-DiglettsCave_NorthEntrance_EventScript_160EE8:: @ 8160EE8
- msgbox gUnknown_817462C, MSGBOX_NPC
+DiglettsCave_NorthEntrance_EventScript_Hiker:: @ 8160EE8
+ msgbox DiglettsCave_NorthEntrance_RockTunnelPitchBlack, MSGBOX_NPC
end
diff --git a/data/maps/DiglettsCave_NorthEntrance/text.inc b/data/maps/DiglettsCave_NorthEntrance/text.inc
index 89dcb5a38..ac9c80755 100644
--- a/data/maps/DiglettsCave_NorthEntrance/text.inc
+++ b/data/maps/DiglettsCave_NorthEntrance/text.inc
@@ -1,4 +1,4 @@
-gUnknown_817462C:: @ 817462C
+DiglettsCave_NorthEntrance_RockTunnelPitchBlack:: @ 817462C
.string "I went inside ROCK TUNNEL, but it's\n"
.string "pitch-black and scary in there.\p"
.string "If I could get a POKéMON to use\n"
diff --git a/data/maps/DiglettsCave_SouthEntrance/map.json b/data/maps/DiglettsCave_SouthEntrance/map.json
index d713ceb6c..64f78c4bc 100644
--- a/data/maps/DiglettsCave_SouthEntrance/map.json
+++ b/data/maps/DiglettsCave_SouthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "DiglettsCave_SouthEntrance_EventScript_160EFC",
+ "script": "DiglettsCave_SouthEntrance_EventScript_OldMan",
"flag": "0"
}
],
diff --git a/data/maps/DiglettsCave_SouthEntrance/scripts.inc b/data/maps/DiglettsCave_SouthEntrance/scripts.inc
index 2ee397c02..5851336cc 100644
--- a/data/maps/DiglettsCave_SouthEntrance/scripts.inc
+++ b/data/maps/DiglettsCave_SouthEntrance/scripts.inc
@@ -1,6 +1,6 @@
DiglettsCave_SouthEntrance_MapScripts:: @ 8160EFB
.byte 0
-DiglettsCave_SouthEntrance_EventScript_160EFC:: @ 8160EFC
- msgbox gUnknown_81746A7, MSGBOX_NPC
+DiglettsCave_SouthEntrance_EventScript_OldMan:: @ 8160EFC
+ msgbox DiglettsCave_SouthEntrance_Text_DiglettDugThisTunnel, MSGBOX_NPC
end
diff --git a/data/maps/DiglettsCave_SouthEntrance/text.inc b/data/maps/DiglettsCave_SouthEntrance/text.inc
index 4c97cdc0b..c0e8a86c0 100644
--- a/data/maps/DiglettsCave_SouthEntrance/text.inc
+++ b/data/maps/DiglettsCave_SouthEntrance/text.inc
@@ -1,4 +1,4 @@
-gUnknown_81746A7:: @ 81746A7
+DiglettsCave_SouthEntrance_Text_DiglettDugThisTunnel:: @ 81746A7
.string "Well, isn't this a surprise!\n"
.string "DIGLETT dug this long tunnel!\p"
.string "It goes right to VIRIDIAN CITY,\n"
diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json
index f88bce64e..0a8842419 100644
--- a/data/maps/FourIsland/map.json
+++ b/data/maps/FourIsland/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FourIsland_EventScript_167D55",
+ "script": "FourIsland_EventScript_DaycareMan",
"flag": "0"
},
{
diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc
index 576e16390..85e1db283 100644
--- a/data/maps/FourIsland/scripts.inc
+++ b/data/maps/FourIsland/scripts.inc
@@ -69,66 +69,66 @@ Movement_167D52:: @ 8167D52
walk_in_place_fastest_right
step_end
-FourIsland_EventScript_167D55:: @ 8167D55
+FourIsland_EventScript_DaycareMan:: @ 8167D55
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
lock
faceplayer
special GetDaycareMonNicknames
specialvar VAR_RESULT, GetDaycareState
- compare VAR_RESULT, 1
- goto_if_eq EventScript_167D9B
- compare VAR_RESULT, 2
- goto_if_eq EventScript_167E0C
- compare VAR_RESULT, 3
- goto_if_eq EventScript_167E19
- msgbox gUnknown_81BF555
+ compare VAR_RESULT, DAYCARE_EGG_WAITING
+ goto_if_eq FourIsland_EventScript_DaycareEggWaiting
+ compare VAR_RESULT, DAYCARE_ONE_MON
+ goto_if_eq FourIsland_EventScript_CheckOnOneMon
+ compare VAR_RESULT, DAYCARE_TWO_MONS
+ goto_if_eq FourIsland_EventScript_CheckOnTwoMons
+ msgbox DayCare_Text_ImDaycareManSpeakToMyWife
release
end
-EventScript_167D9B:: @ 8167D9B
- msgbox gUnknown_81BF5E3, MSGBOX_YESNO
+FourIsland_EventScript_DaycareEggWaiting:: @ 8167D9B
+ msgbox DayCare_Text_DoYouWantEgg, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_167DD1
- msgbox gUnknown_81BF7B6, MSGBOX_YESNO
+ goto_if_eq FourIsland_EventScript_DaycareAcceptEgg
+ msgbox DayCare_Text_IWillKeepDoYouWantIt, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_167DD1
- msgbox gUnknown_81BF6CF
+ goto_if_eq FourIsland_EventScript_DaycareAcceptEgg
+ msgbox DayCare_Text_IllKeepIt
clearflag FLAG_PENDING_DAYCARE_EGG
special RejectEggFromDayCare
release
end
-EventScript_167DD1:: @ 8167DD1
+FourIsland_EventScript_DaycareAcceptEgg:: @ 8167DD1
specialvar VAR_RESULT, CalculatePlayerPartyCount
- compare VAR_RESULT, 6
- goto_if_ne EventScript_167DEB
- msgbox gUnknown_81BF6F0
+ compare VAR_RESULT, PARTY_SIZE
+ goto_if_ne FourIsland_EventScript_DaycareReceivedEgg
+ msgbox DayCare_Text_YouHaveNoRoomForIt
release
end
-EventScript_167DEB:: @ 8167DEB
+FourIsland_EventScript_DaycareReceivedEgg:: @ 8167DEB
textcolor 3
- message Text_1BF72A
+ message DayCare_Text_ReceivedEgg
call EventScript_1A6675
playfanfare MUS_FANFA1
waitfanfare
waitbuttonpress
- msgbox gUnknown_81BF755
+ msgbox DayCare_Text_TakeGoodCareOfIt
special GiveEggFromDaycare
clearflag FLAG_PENDING_DAYCARE_EGG
release
end
-EventScript_167E0C:: @ 8167E0C
+FourIsland_EventScript_CheckOnOneMon:: @ 8167E0C
special GetDaycareMonNicknames
- msgbox gUnknown_81BF69A
+ msgbox DayCare_Text_YourMonIsDoingFine
release
end
-EventScript_167E19:: @ 8167E19
+FourIsland_EventScript_CheckOnTwoMons:: @ 8167E19
special GetDaycareMonNicknames
- msgbox gUnknown_81BF789
+ msgbox DayCare_Text_YourMonsAreDoingFine
special SetDaycareCompatibilityString
special Special_ShowStringVar4AsFieldMessage
waitmessage
diff --git a/data/maps/FourIsland_PokemonDayCare/map.json b/data/maps/FourIsland_PokemonDayCare/map.json
index d6fd3c4f3..38520cc63 100644
--- a/data/maps/FourIsland_PokemonDayCare/map.json
+++ b/data/maps/FourIsland_PokemonDayCare/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FourIsland_PokemonDayCare_EventScript_171940",
+ "script": "FourIsland_PokemonDayCare_EventScript_DaycareWoman",
"flag": "0"
}
],
diff --git a/data/maps/FourIsland_PokemonDayCare/scripts.inc b/data/maps/FourIsland_PokemonDayCare/scripts.inc
index d158be282..c6cf95b20 100644
--- a/data/maps/FourIsland_PokemonDayCare/scripts.inc
+++ b/data/maps/FourIsland_PokemonDayCare/scripts.inc
@@ -1,164 +1,164 @@
FourIsland_PokemonDayCare_MapScripts:: @ 817193F
.byte 0
-FourIsland_PokemonDayCare_EventScript_171940:: @ 8171940
+FourIsland_PokemonDayCare_EventScript_DaycareWoman:: @ 8171940
goto_if_questlog EventScript_ReleaseEnd
lock
faceplayer
specialvar VAR_RESULT, GetDaycareState
- compare VAR_RESULT, 1
- goto_if_eq EventScript_171A2E
- compare VAR_RESULT, 2
- goto_if_eq EventScript_171A52
- compare VAR_RESULT, 3
- goto_if_eq EventScript_171B86
- msgbox gUnknown_81BF7E4, MSGBOX_YESNO
+ compare VAR_RESULT, DAYCARE_EGG_WAITING
+ goto_if_eq FourIsland_PokemonDayCare_EggWaiting
+ compare VAR_RESULT, DAYCARE_ONE_MON
+ goto_if_eq FourIsland_PokemonDayCare_OneMonInDaycare
+ compare VAR_RESULT, DAYCARE_TWO_MONS
+ goto_if_eq FourIsland_PokemonDayCare_TwoMonsInDaycare
+ msgbox DayCare_Text_WouldYouLikeUsToRaiseMon, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171993
- msgbox gUnknown_81BF916
+ goto_if_eq FourIsland_PokemonDayCare_GiveMonToRaise
+ msgbox DayCare_Text_FineThenComeAgain
release
end
-EventScript_171993:: @ 8171993
+FourIsland_PokemonDayCare_GiveMonToRaise:: @ 8171993
specialvar VAR_RESULT, CountPartyNonEggMons
compare VAR_RESULT, 1
- goto_if_eq EventScript_171A1A
- msgbox gUnknown_81BF839
+ goto_if_eq FourIsland_PokemonDayCare_OnlyOneMonInParty
+ msgbox DayCare_Text_WhichMonShouldWeRaise
fadescreen FADE_TO_BLACK
special ChooseSendDaycareMon
waitstate
- compare VAR_0x8004, 6
- goto_if_ge EventScript_1719F7
+ compare VAR_0x8004, PARTY_SIZE
+ goto_if_ge FourIsland_PokemonDayCare_ComeAgain
specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
compare VAR_RESULT, 0
- goto_if_eq EventScript_171A24
- specialvar VAR_0x8005, GetSelectedMonNickAndSpecies
+ goto_if_eq FourIsland_PokemonDayCare_OnlyOneAliveMonInParty
+ specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies
waitse
playmoncry VAR_0x8005, 0
- msgbox gUnknown_81BF860
+ msgbox DayCare_Text_WellRaiseYourMon
waitmoncry
special StoreSelectedPokemonInDaycare
incrementgamestat GAME_STAT_USED_DAYCARE
specialvar VAR_RESULT, GetDaycareState
- compare VAR_RESULT, 2
- goto_if_eq EventScript_171A01
+ compare VAR_RESULT, DAYCARE_ONE_MON
+ goto_if_eq FourIsland_PokemonDayCare_CanRaiseOneMore
release
end
-EventScript_1719F7:: @ 81719F7
- msgbox gUnknown_81BF976
+FourIsland_PokemonDayCare_ComeAgain:: @ 81719F7
+ msgbox DayCare_Text_ComeAgain
release
end
-EventScript_171A01:: @ 8171A01
- msgbox gUnknown_81BF89F, MSGBOX_YESNO
+FourIsland_PokemonDayCare_CanRaiseOneMore:: @ 8171A01
+ msgbox DayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171993
- goto EventScript_1719F7
+ goto_if_eq FourIsland_PokemonDayCare_GiveMonToRaise
+ goto FourIsland_PokemonDayCare_ComeAgain
end
-EventScript_171A1A:: @ 8171A1A
- msgbox gUnknown_81BFAAD
+FourIsland_PokemonDayCare_OnlyOneMonInParty:: @ 8171A1A
+ msgbox DayCare_Text_YouHaveJustOneMon
release
end
-EventScript_171A24:: @ 8171A24
- msgbox gUnknown_81BFB09
+FourIsland_PokemonDayCare_OnlyOneAliveMonInParty:: @ 8171A24
+ msgbox DayCare_Text_WhatWillYouBattleWith
release
end
-EventScript_171A2E:: @ 8171A2E
- msgbox gUnknown_81BF8F6
+FourIsland_PokemonDayCare_EggWaiting:: @ 8171A2E
+ msgbox DayCare_Text_HusbandWasLookingForYou
release
end
-EventScript_171A38:: @ 8171A38
- msgbox gUnknown_81BF9CC
+FourIsland_PokemonDayCare_MonHasGrownXLevels:: @ 8171A38
+ msgbox DayCare_Text_YourMonHasGrownXLevels
return
-EventScript_171A41:: @ 8171A41
+FourIsland_PokemonDayCare_DisplayLevelsGained:: @ 8171A41
specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare
compare VAR_RESULT, 0
- call_if_ne EventScript_171A38
+ call_if_ne FourIsland_PokemonDayCare_MonHasGrownXLevels
return
-EventScript_171A52:: @ 8171A52
- msgbox gUnknown_81BF988
+FourIsland_PokemonDayCare_OneMonInDaycare:: @ 8171A52
+ msgbox DayCare_Text_GoodToSeeYou
setvar VAR_0x8004, 0
- call EventScript_171A41
- msgbox gUnknown_81BF89F, MSGBOX_YESNO
+ call FourIsland_PokemonDayCare_DisplayLevelsGained
+ msgbox DayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171993
- msgbox gUnknown_81BFAE8, MSGBOX_YESNO
+ goto_if_eq FourIsland_PokemonDayCare_GiveMonToRaise
+ msgbox DayCare_Text_TakeYourMonBack, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171A90
- goto EventScript_1719F7
+ goto_if_eq FourIsland_PokemonDayCare_TryRetrieveMon
+ goto FourIsland_PokemonDayCare_ComeAgain
end
-EventScript_171A90:: @ 8171A90
+FourIsland_PokemonDayCare_TryRetrieveMon:: @ 8171A90
specialvar VAR_RESULT, CalculatePlayerPartyCount
- compare VAR_RESULT, 6
- goto_if_eq EventScript_171B67
+ compare VAR_RESULT, PARTY_SIZE
+ goto_if_eq FourIsland_PokemonDayCare_NoRoomInParty
specialvar VAR_RESULT, GetDaycareState
setvar VAR_0x8004, 0
- compare VAR_RESULT, 2
- goto_if_eq EventScript_171ACF
+ compare VAR_RESULT, DAYCARE_ONE_MON
+ goto_if_eq FourIsland_PokemonDayCare_CostPrompt
special ShowDaycareLevelMenu
waitstate
copyvar VAR_0x8004, VAR_RESULT
- compare VAR_RESULT, 2
- goto_if_eq EventScript_1719F7
- goto EventScript_171ACF
+ compare VAR_RESULT, DAYCARE_EXITED_LEVEL_MENU
+ goto_if_eq FourIsland_PokemonDayCare_ComeAgain
+ goto FourIsland_PokemonDayCare_CostPrompt
end
-EventScript_171ACF:: @ 8171ACF
+FourIsland_PokemonDayCare_CostPrompt:: @ 8171ACF
special GetDaycareCost
- msgbox gUnknown_81BFA3B, MSGBOX_YESNO
+ msgbox DayCare_Text_ItWillCostX, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171AEB
- goto EventScript_1719F7
+ goto_if_eq FourIsland_PokemonDayCare_CheckEnoughMoney
+ goto FourIsland_PokemonDayCare_ComeAgain
end
-EventScript_171AEB:: @ 8171AEB
+FourIsland_PokemonDayCare_CheckEnoughMoney:: @ 8171AEB
specialvar VAR_RESULT, IsEnoughForCostInVar0x8005
- compare VAR_RESULT, 1
- goto_if_eq EventScript_171B05
- msgbox gUnknown_81BF932
+ compare VAR_RESULT, TRUE
+ goto_if_eq FourIsland_PokemonDayCare_RetrieveMon
+ msgbox DayCare_Text_NotEnoughMoney
release
end
-EventScript_171B05:: @ 8171B05
- applymovement 1, Movement_171B71
+FourIsland_PokemonDayCare_RetrieveMon:: @ 8171B05
+ applymovement 1, FourIsland_PokemonDayCare_Movement_RetrieveMon
waitmovement 0
specialvar VAR_RESULT, TakePokemonFromDaycare
special SubtractMoneyFromVar0x8005
playse SE_REGI
- msgbox gUnknown_81BFA67
+ msgbox DayCare_Text_HeresYourMon
waitse
playmoncry VAR_RESULT, 0
textcolor 3
- msgbox gUnknown_81BFA85
+ msgbox DayCare_Text_TookBackMon
call EventScript_1A6675
waitmoncry
specialvar VAR_RESULT, GetDaycareState
- compare VAR_RESULT, 2
- goto_if_eq EventScript_171B4E
- goto EventScript_1719F7
+ compare VAR_RESULT, DAYCARE_ONE_MON
+ goto_if_eq FourIsland_PokemonDayCare_AskRetrieveOtherMon
+ goto FourIsland_PokemonDayCare_ComeAgain
end
-EventScript_171B4E:: @ 8171B4E
- msgbox gUnknown_81BF94F, MSGBOX_YESNO
+FourIsland_PokemonDayCare_AskRetrieveOtherMon:: @ 8171B4E
+ msgbox DayCare_Text_TakeOtherOneBackToo, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171A90
- goto EventScript_1719F7
+ goto_if_eq FourIsland_PokemonDayCare_TryRetrieveMon
+ goto FourIsland_PokemonDayCare_ComeAgain
end
-EventScript_171B67:: @ 8171B67
- msgbox gUnknown_81BF9EF
+FourIsland_PokemonDayCare_NoRoomInParty:: @ 8171B67
+ msgbox DayCare_Text_YourPartyIsFull
release
end
-Movement_171B71:: @ 8171B71
+FourIsland_PokemonDayCare_Movement_RetrieveMon:: @ 8171B71
delay_16
delay_16
face_right
@@ -180,30 +180,32 @@ Movement_171B71:: @ 8171B71
walk_slowest_down
step_end
-EventScript_171B85:: @ 8171B85
+@ Unused. Possibly a commented script, or a typo end added to the above Movement script
+FourIsland_PokemonDayCare_EventScript_UnusedEnd:: @ 8171B85
end
-EventScript_171B86:: @ 8171B86
- msgbox gUnknown_81BF988
+FourIsland_PokemonDayCare_TwoMonsInDaycare:: @ 8171B86
+ msgbox DayCare_Text_GoodToSeeYou
setvar VAR_0x8004, 0
- call EventScript_171A41
+ call FourIsland_PokemonDayCare_DisplayLevelsGained
setvar VAR_0x8004, 1
- call EventScript_171A41
- msgbox gUnknown_81BFAE8, MSGBOX_YESNO
+ call FourIsland_PokemonDayCare_DisplayLevelsGained
+ msgbox DayCare_Text_TakeYourMonBack, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_171A90
- msgbox gUnknown_81BF976
+ goto_if_eq FourIsland_PokemonDayCare_TryRetrieveMon
+ msgbox DayCare_Text_ComeAgain
release
end
-EventScript_171BBF:: @ 8171BBF
+@ Unused
+FourIsland_PokemonDayCare_EventScript_UnusedRetrieveMon:: @ 8171BBF
special ShowDaycareLevelMenu
waitstate
compare VAR_RESULT, 2
- goto_if_eq EventScript_1719F7
+ goto_if_eq FourIsland_PokemonDayCare_ComeAgain
copyvar VAR_0x8004, VAR_RESULT
specialvar VAR_RESULT, TakePokemonFromDaycare
- msgbox gUnknown_81BFA67
- msgbox gUnknown_81BF976
+ msgbox DayCare_Text_HeresYourMon
+ msgbox DayCare_Text_ComeAgain
release
end
diff --git a/data/maps/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json
index c142ff4c1..710940882 100644
--- a/data/maps/FuchsiaCity/map.json
+++ b/data/maps/FuchsiaCity/map.json
@@ -39,7 +39,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_EventScript_166DAF",
+ "script": "FuchsiaCity_EventScript_Erik",
"flag": "0"
},
{
@@ -78,7 +78,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_EventScript_166DB8",
+ "script": "FuchsiaCity_EventScript_Youngster",
"flag": "0"
},
{
@@ -104,7 +104,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_EventScript_166D9D",
+ "script": "FuchsiaCity_EventScript_LittleBoy",
"flag": "0"
},
{
@@ -130,7 +130,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_EventScript_166DA6",
+ "script": "FuchsiaCity_EventScript_OldMan",
"flag": "0"
},
{
@@ -234,7 +234,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_EventScript_166DC1",
+ "script": "FuchsiaCity_EventScript_Lass",
"flag": "FLAG_HIDE_POSTGAME_GOSSIPERS"
}
],
@@ -250,7 +250,7 @@
"x": 33,
"y": 31,
"elevation": 0,
- "dest_map": "MAP_FUCHSIA_CITY_BUILDING1",
+ "dest_map": "MAP_FUCHSIA_CITY_WARDENS_HOUSE",
"dest_warp_id": 1
},
{
@@ -264,7 +264,7 @@
"x": 28,
"y": 16,
"elevation": 0,
- "dest_map": "MAP_FUCHSIA_CITY_ZOO_BUILDING",
+ "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE",
"dest_warp_id": 1
},
{
@@ -324,77 +324,77 @@
"x": 31,
"y": 18,
"elevation": 3,
- "script": "FuchsiaCity_EventScript_166DDA"
+ "script": "FuchsiaCity_EventScript_CitySign"
},
{
"type": "bg_event_type_0",
"x": 26,
"y": 18,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166DE3"
+ "script": "FuchsiaCity_EventScript_SafariZoneSign"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 32,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166E07"
+ "script": "FuchsiaCity_EventScript_GymSign"
},
{
"type": "bg_event_type_0",
"x": 31,
"y": 31,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166DF5"
+ "script": "FuchsiaCity_EventScript_WardensHomeSign"
},
{
"type": "bg_event_type_0",
"x": 35,
"y": 10,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166E38"
+ "script": "FuchsiaCity_EventScript_VoltorbSign"
},
{
"type": "bg_event_type_0",
"x": 38,
"y": 16,
"elevation": 3,
- "script": "FuchsiaCity_EventScript_166E6A"
+ "script": "FuchsiaCity_EventScript_SlowpokeSign"
},
{
"type": "bg_event_type_0",
"x": 41,
"y": 10,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166E1F"
+ "script": "FuchsiaCity_EventScript_ChanseySign"
},
{
"type": "bg_event_type_0",
"x": 17,
"y": 10,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166E51"
+ "script": "FuchsiaCity_EventScript_KangaskhanSign"
},
{
"type": "bg_event_type_0",
"x": 11,
"y": 10,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166E9C"
+ "script": "FuchsiaCity_EventScript_FossilMonSign"
},
{
"type": "bg_event_type_0",
"x": 17,
"y": 18,
"elevation": 3,
- "script": "FuchsiaCity_EventScript_166E83"
+ "script": "FuchsiaCity_EventScript_LaprasSign"
},
{
"type": "bg_event_type_0",
"x": 22,
"y": 7,
"elevation": 0,
- "script": "FuchsiaCity_EventScript_166DEC"
+ "script": "FuchsiaCity_EventScript_SafariGameSign"
},
{
"type": "hidden_item",
diff --git a/data/maps/FuchsiaCity/scripts.inc b/data/maps/FuchsiaCity/scripts.inc
index cde08dd9b..5f0875db8 100644
--- a/data/maps/FuchsiaCity/scripts.inc
+++ b/data/maps/FuchsiaCity/scripts.inc
@@ -4,135 +4,136 @@ FuchsiaCity_MapScripts:: @ 8166D75
FuchsiaCity_OnTransition:: @ 8166D7B
setworldmapflag FLAG_WORLD_MAP_FUCHSIA_CITY
- call_if_set FLAG_GOT_DOME_FOSSIL, EventScript_166D91
- call_if_unset FLAG_GOT_DOME_FOSSIL, EventScript_166D97
+ call_if_set FLAG_GOT_DOME_FOSSIL, FuchsicaCity_EventScript_SetOmanyteGfx
+ call_if_unset FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_SetKabutoGfx
end
-EventScript_166D91:: @ 8166D91
+FuchsicaCity_EventScript_SetOmanyteGfx:: @ 8166D91
setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_OMANYTE
return
-EventScript_166D97:: @ 8166D97
+FuchsiaCity_EventScript_SetKabutoGfx:: @ 8166D97
setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_KABUTO
return
-FuchsiaCity_EventScript_166D9D:: @ 8166D9D
- msgbox gUnknown_818056E, MSGBOX_NPC
+FuchsiaCity_EventScript_LittleBoy:: @ 8166D9D
+ msgbox FuchsiaCity_Text_DidYouTrySafariGame, MSGBOX_NPC
end
-FuchsiaCity_EventScript_166DA6:: @ 8166DA6
- msgbox gUnknown_81805C6, MSGBOX_NPC
+FuchsiaCity_EventScript_OldMan:: @ 8166DA6
+ msgbox FuchsiaCity_Text_SafariZoneZooInFront, MSGBOX_NPC
end
-FuchsiaCity_EventScript_166DAF:: @ 8166DAF
- msgbox gUnknown_818062C, MSGBOX_NPC
+FuchsiaCity_EventScript_Erik:: @ 8166DAF
+ msgbox FuchsiaCity_Text_WheresSara, MSGBOX_NPC
end
-FuchsiaCity_EventScript_166DB8:: @ 8166DB8
- msgbox gUnknown_818065A, MSGBOX_NPC
+FuchsiaCity_EventScript_Youngster:: @ 8166DB8
+ msgbox FuchsiaCity_Text_ItemBallInThere, MSGBOX_NPC
end
-FuchsiaCity_EventScript_166DC1:: @ 8166DC1
+FuchsiaCity_EventScript_Lass:: @ 8166DC1
lock
faceplayer
famechecker FAMECHECKER_KOGA, 3
- msgbox gUnknown_8180ABD
+ msgbox FuchsiaCity_Text_MyFatherIsGymLeader
release
end
-FuchsiaCity_EventScript_166DDA:: @ 8166DDA
- msgbox gUnknown_81806AB, MSGBOX_SIGN
+FuchsiaCity_EventScript_CitySign:: @ 8166DDA
+ msgbox FuchsiaCity_Text_CitySign, MSGBOX_SIGN
end
-FuchsiaCity_EventScript_166DE3:: @ 8166DE3
- msgbox gUnknown_81806D3, MSGBOX_SIGN
+FuchsiaCity_EventScript_SafariZoneSign:: @ 8166DE3
+ msgbox FuchsiaCity_Text_SafariZoneSign, MSGBOX_SIGN
end
-FuchsiaCity_EventScript_166DEC:: @ 8166DEC
- msgbox gUnknown_81806F0, MSGBOX_SIGN
+FuchsiaCity_EventScript_SafariGameSign:: @ 8166DEC
+ msgbox FuchsiaCity_Text_SafariGameSign, MSGBOX_SIGN
end
-FuchsiaCity_EventScript_166DF5:: @ 8166DF5
- msgbox gUnknown_818070D, MSGBOX_SIGN
+FuchsiaCity_EventScript_WardensHomeSign:: @ 8166DF5
+ msgbox FuchsiaCity_Text_WardensHomeSign, MSGBOX_SIGN
end
-EventScript_166DFE:: @ 8166DFE
- msgbox gUnknown_8180727, MSGBOX_SIGN
+@ Unused
+FuchsiaCity_EventScript_SafariZoneOfficeSign:: @ 8166DFE
+ msgbox FuchsiaCity_Text_SafariZoneOfficeSign, MSGBOX_SIGN
end
-FuchsiaCity_EventScript_166E07:: @ 8166E07
+FuchsiaCity_EventScript_GymSign:: @ 8166E07
lockall
famechecker FAMECHECKER_KOGA, 0
- msgbox gUnknown_8180768
+ msgbox FuchsiaCity_Text_GymSign
releaseall
end
-FuchsiaCity_EventScript_166E1F:: @ 8166E1F
+FuchsiaCity_EventScript_ChanseySign:: @ 8166E1F
lockall
setvar VAR_0x8004, SPECIES_CHANSEY
special Special_SetSeenMon
drawmonpic SPECIES_CHANSEY, 10, 3
- msgbox gUnknown_81807A9
+ msgbox FuchsiaCity_Text_ChanseySign
erasemonpic
releaseall
end
-FuchsiaCity_EventScript_166E38:: @ 8166E38
+FuchsiaCity_EventScript_VoltorbSign:: @ 8166E38
lockall
setvar VAR_0x8004, SPECIES_VOLTORB
special Special_SetSeenMon
drawmonpic SPECIES_VOLTORB, 10, 3
- msgbox gUnknown_81807D9
+ msgbox FuchsiaCity_Text_VoltorbSign
erasemonpic
releaseall
end
-FuchsiaCity_EventScript_166E51:: @ 8166E51
+FuchsiaCity_EventScript_KangaskhanSign:: @ 8166E51
lockall
setvar VAR_0x8004, SPECIES_KANGASKHAN
special Special_SetSeenMon
drawmonpic SPECIES_KANGASKHAN, 10, 3
- msgbox gUnknown_8180806
+ msgbox FuchsiaCity_Text_KangaskhanSign
erasemonpic
releaseall
end
-FuchsiaCity_EventScript_166E6A:: @ 8166E6A
+FuchsiaCity_EventScript_SlowpokeSign:: @ 8166E6A
lockall
setvar VAR_0x8004, SPECIES_SLOWPOKE
special Special_SetSeenMon
drawmonpic SPECIES_SLOWPOKE, 10, 3
- msgbox gUnknown_8180859
+ msgbox FuchsiaCity_Text_SlowpokeSign
erasemonpic
releaseall
end
-FuchsiaCity_EventScript_166E83:: @ 8166E83
+FuchsiaCity_EventScript_LaprasSign:: @ 8166E83
lockall
setvar VAR_0x8004, SPECIES_LAPRAS
special Special_SetSeenMon
drawmonpic SPECIES_LAPRAS, 10, 3
- msgbox gUnknown_8180887
+ msgbox FuchsiaCity_Text_LaprasSign
erasemonpic
releaseall
end
-FuchsiaCity_EventScript_166E9C:: @ 8166E9C
+FuchsiaCity_EventScript_FossilMonSign:: @ 8166E9C
lockall
- goto_if_set FLAG_GOT_DOME_FOSSIL, EventScript_166EBE
+ goto_if_set FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_OmanyteSign
setvar VAR_0x8004, SPECIES_KABUTO
special Special_SetSeenMon
drawmonpic SPECIES_KABUTO, 10, 3
- msgbox gUnknown_81808FA
+ msgbox FuchsiaCity_Text_KabutoSign
erasemonpic
releaseall
end
-EventScript_166EBE:: @ 8166EBE
+FuchsiaCity_EventScript_OmanyteSign:: @ 8166EBE
setvar VAR_0x8004, SPECIES_OMANYTE
special Special_SetSeenMon
drawmonpic SPECIES_OMANYTE, 10, 3
- msgbox gUnknown_81808AE
+ msgbox FuchsiaCity_Text_OmanyteSign
erasemonpic
releaseall
end
diff --git a/data/maps/FuchsiaCity/text.inc b/data/maps/FuchsiaCity/text.inc
index 969846706..84b49f63c 100644
--- a/data/maps/FuchsiaCity/text.inc
+++ b/data/maps/FuchsiaCity/text.inc
@@ -1,82 +1,83 @@
-gUnknown_818056E:: @ 818056E
+FuchsiaCity_Text_DidYouTrySafariGame:: @ 818056E
.string "Did you try the SAFARI GAME?\p"
.string "There are some rare POKéMON that\n"
.string "can only be caught there.$"
-gUnknown_81805C6:: @ 81805C6
+FuchsiaCity_Text_SafariZoneZooInFront:: @ 81805C6
.string "The SAFARI ZONE has a zoo in front\n"
.string "of the entrance.\p"
.string "Out back is the SAFARI GAME for\n"
.string "catching POKéMON.$"
-gUnknown_818062C:: @ 818062C
+FuchsiaCity_Text_WheresSara:: @ 818062C
.string "ERIK: Where's SARA?\n"
.string "I said I'd meet her here.$"
-gUnknown_818065A:: @ 818065A
+FuchsiaCity_Text_ItemBallInThere:: @ 818065A
.string "That item ball in there…\n"
.string "Were you wanting that?\p"
.string "Me, too!\n"
.string "…Huh? That's a POKéMON?$"
-gUnknown_81806AB:: @ 81806AB
+FuchsiaCity_Text_CitySign:: @ 81806AB
.string "FUCHSIA CITY\n"
.string "Behold! It's Passion Pink!$"
-gUnknown_81806D3:: @ 81806D3
+FuchsiaCity_Text_SafariZoneSign:: @ 81806D3
.string "POKéMON PARADISE\n"
.string "SAFARI ZONE$"
-gUnknown_81806F0:: @ 81806F0
+FuchsiaCity_Text_SafariGameSign:: @ 81806F0
.string "SAFARI GAME\n"
.string "POKéMON-U-CATCH!$"
-gUnknown_818070D:: @ 818070D
+FuchsiaCity_Text_WardensHomeSign:: @ 818070D
.string "SAFARI ZONE\n"
.string "WARDEN'S HOME$"
-gUnknown_8180727:: @ 8180727
+FuchsiaCity_Text_SafariZoneOfficeSign:: @ 8180727
.string "POKéMON PARADISE!\n"
.string "Welcome to the SAFARI ZONE!\l"
.string "SAFARI ZONE OFFICE$"
-gUnknown_8180768:: @ 8180768
+FuchsiaCity_Text_GymSign:: @ 8180768
.string "FUCHSIA CITY POKéMON GYM\n"
.string "LEADER: KOGA\l"
.string "The Poisonous Ninja Master$"
-gUnknown_81807A9:: @ 81807A9
+FuchsiaCity_Text_ChanseySign:: @ 81807A9
.string "Name: CHANSEY\n"
.string "Catching one is all up to chance.$"
-gUnknown_81807D9:: @ 81807D9
+FuchsiaCity_Text_VoltorbSign:: @ 81807D9
.string "Name: VOLTORB\n"
.string "The very image of a POKé BALL.$"
-gUnknown_8180806:: @ 8180806
+FuchsiaCity_Text_KangaskhanSign:: @ 8180806
.string "Name: KANGASKHAN\p"
.string "A maternal POKéMON that raises its\n"
.string "young in a pouch on its belly.$"
-gUnknown_8180859:: @ 8180859
+FuchsiaCity_Text_SlowpokeSign:: @ 8180859
.string "Name: SLOWPOKE\n"
.string "Friendly and very slow moving.$"
-gUnknown_8180887:: @ 8180887
+FuchsiaCity_Text_LaprasSign:: @ 8180887
.string "Name: LAPRAS\n"
.string "AKA the king of the seas.$"
-gUnknown_81808AE:: @ 81808AE
+FuchsiaCity_Text_OmanyteSign:: @ 81808AE
.string "Name: OMANYTE\n"
.string "An extremely rare POKéMON that was\l"
.string "regenerated from a fossil.$"
-gUnknown_81808FA:: @ 81808FA
+FuchsiaCity_Text_KabutoSign:: @ 81808FA
.string "Name: KABUTO\n"
.string "An extremely rare POKéMON that was\l"
.string "regenerated from a fossil.$"
-Text_180945:: @ 8180945
+@ Unused. May have been meant to be the placeholder text for the zoo mons, similar to RB's "!" text
+FuchsiaCity_Text_Ellipsis:: @ 8180945
.string "……$"
Text_SubstituteTeach:: @ 8180948
@@ -103,7 +104,7 @@ Text_SubstituteTaught:: @ 8180A80
.string "Boy, what I'd give to crawl inside\n"
.string "a KANGASKHAN belly pouch…$"
-gUnknown_8180ABD:: @ 8180ABD
+FuchsiaCity_Text_MyFatherIsGymLeader:: @ 8180ABD
.string "My father is the GYM LEADER of\n"
.string "this town.\p"
.string "I'm training to use POISON POKéMON\n"
diff --git a/data/maps/FuchsiaCity_Building1/scripts.inc b/data/maps/FuchsiaCity_Building1/scripts.inc
deleted file mode 100644
index 0011190dc..000000000
--- a/data/maps/FuchsiaCity_Building1/scripts.inc
+++ /dev/null
@@ -1,63 +0,0 @@
-FuchsiaCity_Building1_MapScripts:: @ 816D74B
- .byte 0
-
-FuchsiaCity_Building1_EventScript_16D74C:: @ 816D74C
- lock
- faceplayer
- goto_if_set FLAG_GOT_HM04, EventScript_16D7FA
- goto_if_set FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH, EventScript_16D780
- msgbox gUnknown_8198DF9, MSGBOX_YESNO
- compare VAR_RESULT, YES
- call_if_eq EventScript_16D7E8
- compare VAR_RESULT, NO
- call_if_eq EventScript_16D7F1
- release
- end
-
-EventScript_16D780:: @ 816D780
- textcolor 3
- playfanfare MUS_ME_WAZA
- message Text_198E84
- waitmessage
- waitfanfare
- msgbox gUnknown_8198EAA
- call EventScript_1A6675
- checkplayergender
- compare VAR_RESULT, MALE
- call_if_eq EventScript_16D7D6
- compare VAR_RESULT, FEMALE
- call_if_eq EventScript_16D7DF
- giveitem_msg gUnknown_8199068, ITEM_HM04
- setflag FLAG_GOT_HM04
- removeitem ITEM_GOLD_TEETH, 1
- release
- end
-
-EventScript_16D7D6:: @ 816D7D6
- msgbox gUnknown_8198ECA
- return
-
-EventScript_16D7DF:: @ 816D7DF
- msgbox gUnknown_8198F96
- return
-
-EventScript_16D7E8:: @ 816D7E8
- msgbox gUnknown_8198E3F
- return
-
-EventScript_16D7F1:: @ 816D7F1
- msgbox gUnknown_8198E63
- return
-
-EventScript_16D7FA:: @ 816D7FA
- msgbox gUnknown_819908A
- release
- end
-
-FuchsiaCity_Building1_EventScript_16D804:: @ 816D804
- msgbox gUnknown_819913C, MSGBOX_SIGN
- end
-
-FuchsiaCity_Building1_EventScript_16D80D:: @ 816D80D
- msgbox gUnknown_8199167, MSGBOX_SIGN
- end
diff --git a/data/maps/FuchsiaCity_Gym/map.json b/data/maps/FuchsiaCity_Gym/map.json
index 3ca93c166..9054b5df0 100644
--- a/data/maps/FuchsiaCity_Gym/map.json
+++ b/data/maps/FuchsiaCity_Gym/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 4,
- "script": "FuchsiaCity_Gym_EventScript_16D65A",
+ "script": "FuchsiaCity_Gym_EventScript_Kayden",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "FuchsiaCity_Gym_EventScript_16D643",
+ "script": "FuchsiaCity_Gym_EventScript_Shawn",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "FuchsiaCity_Gym_EventScript_16D61F",
+ "script": "FuchsiaCity_Gym_EventScript_Kirk",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "FuchsiaCity_Gym_EventScript_16D608",
+ "script": "FuchsiaCity_Gym_EventScript_Edgar",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 2,
- "script": "FuchsiaCity_Gym_EventScript_16D5F1",
+ "script": "FuchsiaCity_Gym_EventScript_Phil",
"flag": "0"
},
{
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 4,
- "script": "FuchsiaCity_Gym_EventScript_16D671",
+ "script": "FuchsiaCity_Gym_EventScript_Nate",
"flag": "0"
},
{
@@ -101,7 +101,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Gym_EventScript_16D54E",
+ "script": "FuchsiaCity_Gym_EventScript_Koga",
"flag": "0"
},
{
@@ -114,7 +114,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Gym_EventScript_16D688",
+ "script": "FuchsiaCity_Gym_EventScript_GymGuy",
"flag": "0"
}
],
@@ -148,14 +148,14 @@
"x": 4,
"y": 19,
"elevation": 0,
- "script": "FuchsiaCity_Gym_EventScript_16D6A7"
+ "script": "FuchsiaCity_Gym_EventScript_GymStatue"
},
{
"type": "bg_event_type_0",
"x": 10,
"y": 19,
"elevation": 0,
- "script": "FuchsiaCity_Gym_EventScript_16D6A7"
+ "script": "FuchsiaCity_Gym_EventScript_GymStatue"
}
]
}
diff --git a/data/maps/FuchsiaCity_Gym/scripts.inc b/data/maps/FuchsiaCity_Gym/scripts.inc
index d20eeb409..6486c36eb 100644
--- a/data/maps/FuchsiaCity_Gym/scripts.inc
+++ b/data/maps/FuchsiaCity_Gym/scripts.inc
@@ -1,91 +1,91 @@
FuchsiaCity_Gym_MapScripts:: @ 816D54D
.byte 0
-FuchsiaCity_Gym_EventScript_16D54E:: @ 816D54E
+FuchsiaCity_Gym_EventScript_Koga:: @ 816D54E
famechecker FAMECHECKER_KOGA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle_single TRAINER_LEADER_KOGA, Text_19832E, Text_198444, EventScript_16D580, NO_MUSIC
- goto_if_unset FLAG_GOT_TM06_FROM_KOGA, EventScript_16D5A6
- msgbox gUnknown_8198481
+ trainerbattle_single TRAINER_LEADER_KOGA, FuchsiaCity_Gym_Text_KogaIntro, FuchsiaCity_Gym_Text_KogaDefeat, FuchsiaCity_Gym_EventScript_DefeatedKoga, NO_MUSIC
+ goto_if_unset FLAG_GOT_TM06_FROM_KOGA, FuchsiaCity_Gym_EventScript_GiveTM06
+ msgbox FuchsiaCity_Gym_Text_KogaPostBattle
release
end
-EventScript_16D580:: @ 816D580
+FuchsiaCity_Gym_EventScript_DefeatedKoga:: @ 816D580
famechecker FAMECHECKER_KOGA, 1
clearflag FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL
setflag FLAG_DEFEATED_KOGA
setflag FLAG_BADGE05_GET
set_gym_trainers 5
- goto EventScript_16D5A6
+ goto FuchsiaCity_Gym_EventScript_GiveTM06
end
-EventScript_16D5A6:: @ 816D5A6
- msgbox gUnknown_819850E
+FuchsiaCity_Gym_EventScript_GiveTM06:: @ 816D5A6
+ msgbox FuchsiaCity_Gym_Text_KogaExplainSoulBadge
checkitemspace ITEM_TM06, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16D5E7
- giveitem_msg gUnknown_819858F, ITEM_TM06
+ goto_if_eq FuchsiaCity_Gym_EventScript_NoRoomForTM06
+ giveitem_msg FuchsiaCity_Gym_Text_ReceivedTM06FromKoga, ITEM_TM06
setflag FLAG_GOT_TM06_FROM_KOGA
- msgbox gUnknown_81985AB
+ msgbox FuchsiaCity_Gym_Text_KogaExplainTM06
release
end
-EventScript_16D5E7:: @ 816D5E7
- msgbox gUnknown_819860D
+FuchsiaCity_Gym_EventScript_NoRoomForTM06:: @ 816D5E7
+ msgbox FuchsiaCity_Gym_Text_MakeSpaceForThis
release
end
-FuchsiaCity_Gym_EventScript_16D5F1:: @ 816D5F1
- trainerbattle_single TRAINER_TAMER_PHIL, Text_198866, Text_1988B6
- msgbox gUnknown_81988CB, MSGBOX_AUTOCLOSE
+FuchsiaCity_Gym_EventScript_Phil:: @ 816D5F1
+ trainerbattle_single TRAINER_TAMER_PHIL, FuchsiaCity_Gym_Text_PhilIntro, FuchsiaCity_Gym_Text_PhilDefeat
+ msgbox FuchsiaCity_Gym_Text_PhilPostBattle, MSGBOX_AUTOCLOSE
end
-FuchsiaCity_Gym_EventScript_16D608:: @ 816D608
- trainerbattle_single TRAINER_TAMER_EDGAR, Text_19891F, Text_19897F
- msgbox gUnknown_8198985, MSGBOX_AUTOCLOSE
+FuchsiaCity_Gym_EventScript_Edgar:: @ 816D608
+ trainerbattle_single TRAINER_TAMER_EDGAR, FuchsiaCity_Gym_Text_EdgarIntro, FuchsiaCity_Gym_Text_EdgarDefeat
+ msgbox FuchsiaCity_Gym_Text_EdgarPostBattle, MSGBOX_AUTOCLOSE
end
-FuchsiaCity_Gym_EventScript_16D61F:: @ 816D61F
- trainerbattle_single TRAINER_JUGGLER_KIRK, Text_19871E, Text_198779
+FuchsiaCity_Gym_EventScript_Kirk:: @ 816D61F
+ trainerbattle_single TRAINER_JUGGLER_KIRK, FuchsiaCity_Gym_Text_KirkIntro, FuchsiaCity_Gym_Text_KirkDefeat
famechecker FAMECHECKER_KOGA, 2
- msgbox gUnknown_8198787, MSGBOX_AUTOCLOSE
+ msgbox FuchsiaCity_Gym_Text_KirkPostBattle, MSGBOX_AUTOCLOSE
end
-FuchsiaCity_Gym_EventScript_16D643:: @ 816D643
- trainerbattle_single TRAINER_JUGGLER_SHAWN, Text_1989A1, Text_1989EA
- msgbox gUnknown_8198A10, MSGBOX_AUTOCLOSE
+FuchsiaCity_Gym_EventScript_Shawn:: @ 816D643
+ trainerbattle_single TRAINER_JUGGLER_SHAWN, FuchsiaCity_Gym_Text_ShawnIntro, FuchsiaCity_Gym_Text_ShawnDefeat
+ msgbox FuchsiaCity_Gym_Text_ShawnPostBattle, MSGBOX_AUTOCLOSE
end
-FuchsiaCity_Gym_EventScript_16D65A:: @ 816D65A
- trainerbattle_single TRAINER_JUGGLER_KAYDEN, Text_198629, Text_1986B4
- msgbox gUnknown_81986C9, MSGBOX_AUTOCLOSE
+FuchsiaCity_Gym_EventScript_Kayden:: @ 816D65A
+ trainerbattle_single TRAINER_JUGGLER_KAYDEN, FuchsiaCity_Gym_Text_KaydenIntro, FuchsiaCity_Gym_Text_KaydenDefeat
+ msgbox FuchsiaCity_Gym_Text_KaydenPostBattle, MSGBOX_AUTOCLOSE
end
-FuchsiaCity_Gym_EventScript_16D671:: @ 816D671
- trainerbattle_single TRAINER_JUGGLER_NATE, Text_1987E8, Text_198812
- msgbox gUnknown_8198825, MSGBOX_AUTOCLOSE
+FuchsiaCity_Gym_EventScript_Nate:: @ 816D671
+ trainerbattle_single TRAINER_JUGGLER_NATE, FuchsiaCity_Gym_Text_NateIntro, FuchsiaCity_Gym_Text_NateDefeat
+ msgbox FuchsiaCity_Gym_Text_NatePostBattle, MSGBOX_AUTOCLOSE
end
-FuchsiaCity_Gym_EventScript_16D688:: @ 816D688
+FuchsiaCity_Gym_EventScript_GymGuy:: @ 816D688
lock
faceplayer
- goto_if_set FLAG_DEFEATED_KOGA, EventScript_16D69D
- msgbox gUnknown_8198A5E
+ goto_if_set FLAG_DEFEATED_KOGA, FuchsiaCity_Gym_EventScript_GymGuyPostVictory
+ msgbox FuchsiaCity_Gym_Text_GymGuyAdvice
release
end
-EventScript_16D69D:: @ 816D69D
- msgbox gUnknown_8198B1D
+FuchsiaCity_Gym_EventScript_GymGuyPostVictory:: @ 816D69D
+ msgbox FuchsiaCity_Gym_Text_GymGuyPostVictory
release
end
-FuchsiaCity_Gym_EventScript_16D6A7:: @ 816D6A7
+FuchsiaCity_Gym_EventScript_GymStatue:: @ 816D6A7
lockall
- goto_if_set FLAG_BADGE05_GET, EventScript_16D6BB
- msgbox gUnknown_8198B4B
+ goto_if_set FLAG_BADGE05_GET, FuchsiaCity_Gym_EventScript_GymStatuePostVictory
+ msgbox FuchsiaCity_Gym_Text_GymStatue
releaseall
end
-EventScript_16D6BB:: @ 816D6BB
- msgbox gUnknown_8198B81
+FuchsiaCity_Gym_EventScript_GymStatuePostVictory:: @ 816D6BB
+ msgbox FuchsiaCity_Gym_Text_GymStatuePlayerWon
releaseall
end
diff --git a/data/maps/FuchsiaCity_Gym/text.inc b/data/maps/FuchsiaCity_Gym/text.inc
index cb5ce932e..2bfe9e53f 100644
--- a/data/maps/FuchsiaCity_Gym/text.inc
+++ b/data/maps/FuchsiaCity_Gym/text.inc
@@ -1,4 +1,4 @@
-Text_19832E:: @ 819832E
+FuchsiaCity_Gym_Text_KogaIntro:: @ 819832E
.string "KOGA: Fwahahaha!\p"
.string "A mere child like you dares to\n"
.string "challenge me?\p"
@@ -11,20 +11,20 @@ Text_19832E:: @ 819832E
.string "Despair to the creeping horror of\n"
.string "POISON-type POKéMON!{PLAY_BGM}{MUS_EXEYE}$"
-Text_198444:: @ 8198444
+FuchsiaCity_Gym_Text_KogaDefeat:: @ 8198444
.string "Humph!\n"
.string "You have proven your worth!\p"
.string "Here!\n"
.string "Take the SOULBADGE!$"
-gUnknown_8198481:: @ 8198481
+FuchsiaCity_Gym_Text_KogaPostBattle:: @ 8198481
.string "When afflicted by TOXIC, a POKéMON\n"
.string "suffers more and more.\p"
.string "It suffers worsening damage as the\n"
.string "battle wears on!\p"
.string "It will surely terrorize foes!$"
-gUnknown_819850E:: @ 819850E
+FuchsiaCity_Gym_Text_KogaExplainSoulBadge:: @ 819850E
.string "Now that you have the SOULBADGE,\n"
.string "the DEFENSE of your POKéMON rises.\p"
.string "It also lets you SURF outside of\n"
@@ -32,103 +32,103 @@ gUnknown_819850E:: @ 819850E
.string "Ah!\n"
.string "Take this, too!$"
-gUnknown_819858F:: @ 819858F
+FuchsiaCity_Gym_Text_ReceivedTM06FromKoga:: @ 819858F
.string "{PLAYER} received TM06\n"
.string "from KOGA.$"
-gUnknown_81985AB:: @ 81985AB
+FuchsiaCity_Gym_Text_KogaExplainTM06:: @ 81985AB
.string "Sealed within that TM06 lies\n"
.string "TOXIC!\p"
.string "It is a secret technique dating\n"
.string "back some four hundred years.$"
-gUnknown_819860D:: @ 819860D
+FuchsiaCity_Gym_Text_MakeSpaceForThis:: @ 819860D
.string "Make space for this, child!$"
-Text_198629:: @ 8198629
+FuchsiaCity_Gym_Text_KaydenIntro:: @ 8198629
.string "Strength isn't the key for POKéMON.\n"
.string "Do you understand this?\p"
.string "POKéMON is about strategy!\p"
.string "I'll show you how strategy can\n"
.string "beat brute strength.$"
-Text_1986B4:: @ 81986B4
+FuchsiaCity_Gym_Text_KaydenDefeat:: @ 81986B4
.string "What?\n"
.string "Extraordinary!$"
-gUnknown_81986C9:: @ 81986C9
+FuchsiaCity_Gym_Text_KaydenPostBattle:: @ 81986C9
.string "So, you mix brawn with brains?\n"
.string "Good strategy!\p"
.string "That's remarkable for a child\n"
.string "TRAINER.$"
-Text_19871E:: @ 819871E
+FuchsiaCity_Gym_Text_KirkIntro:: @ 819871E
.string "I was a magician once upon a time.\p"
.string "But I dreamt of becoming a ninja,\n"
.string "so I joined this GYM.$"
-Text_198779:: @ 8198779
+FuchsiaCity_Gym_Text_KirkDefeat:: @ 8198779
.string "I'm done for!$"
-gUnknown_8198787:: @ 8198787
+FuchsiaCity_Gym_Text_KirkPostBattle:: @ 8198787
.string "Even though I've lost, I will keep\n"
.string "training according to the teachings\l"
.string "of KOGA, my ninja master.$"
-Text_1987E8:: @ 81987E8
+FuchsiaCity_Gym_Text_NateIntro:: @ 81987E8
.string "Let's see you beat my special\n"
.string "techniques!$"
-Text_198812:: @ 8198812
+FuchsiaCity_Gym_Text_NateDefeat:: @ 8198812
.string "You had me fooled!$"
-gUnknown_8198825:: @ 8198825
+FuchsiaCity_Gym_Text_NatePostBattle:: @ 8198825
.string "I like poison and sleep techniques,\n"
.string "as they linger after battle!$"
-Text_198866:: @ 8198866
+FuchsiaCity_Gym_Text_PhilIntro:: @ 8198866
.string "Stop right there!\p"
.string "The famed invisible walls of\n"
.string "FUCHSIA GYM have you frustrated?$"
-Text_1988B6:: @ 81988B6
+FuchsiaCity_Gym_Text_PhilDefeat:: @ 81988B6
.string "Whoa!\n"
.string "You've got it!$"
-gUnknown_81988CB:: @ 81988CB
+FuchsiaCity_Gym_Text_PhilPostBattle:: @ 81988CB
.string "You impressed me!\n"
.string "Here's a hint!\p"
.string "Look very closely for gaps in the\n"
.string "invisible walls!$"
-Text_19891F:: @ 819891F
+FuchsiaCity_Gym_Text_EdgarIntro:: @ 819891F
.string "I also study the way of the ninja\n"
.string "with Master KOGA!\p"
.string "Ninja have a long history of using\n"
.string "animals!$"
-Text_19897F:: @ 819897F
+FuchsiaCity_Gym_Text_EdgarDefeat:: @ 819897F
.string "Awoo!$"
-gUnknown_8198985:: @ 8198985
+FuchsiaCity_Gym_Text_EdgarPostBattle:: @ 8198985
.string "I still have much to learn.$"
-Text_1989A1:: @ 81989A1
+FuchsiaCity_Gym_Text_ShawnIntro:: @ 81989A1
.string "Master KOGA comes from a long line\n"
.string "of ninjas.\p"
.string "What did you descend from?$"
-Text_1989EA:: @ 81989EA
+FuchsiaCity_Gym_Text_ShawnDefeat:: @ 81989EA
.string "You're more skilled than I'd\n"
.string "thought!$"
-gUnknown_8198A10:: @ 8198A10
+FuchsiaCity_Gym_Text_ShawnPostBattle:: @ 8198A10
.string "Where there is light, there is\n"
.string "shadow!\p"
.string "Light and shadow!\n"
.string "Which do you choose?$"
-gUnknown_8198A5E:: @ 8198A5E
+FuchsiaCity_Gym_Text_GymGuyAdvice:: @ 8198A5E
.string "Yo!\n"
.string "Champ in the making!\p"
.string "FUCHSIA GYM is a tricked-up place.\n"
@@ -138,17 +138,17 @@ gUnknown_8198A5E:: @ 8198A5E
.string "You have to find gaps in the walls\n"
.string "to reach him.$"
-gUnknown_8198B1D:: @ 8198B1D
+FuchsiaCity_Gym_Text_GymGuyPostVictory:: @ 8198B1D
.string "It's amazing how ninja can terrify,\n"
.string "even now!$"
-gUnknown_8198B4B:: @ 8198B4B
+FuchsiaCity_Gym_Text_GymStatue:: @ 8198B4B
.string "FUCHSIA POKéMON GYM\n"
.string "LEADER: KOGA\p"
.string "WINNING TRAINERS:\n"
.string "{RIVAL}$"
-gUnknown_8198B81:: @ 8198B81
+FuchsiaCity_Gym_Text_GymStatuePlayerWon:: @ 8198B81
.string "FUCHSIA POKéMON GYM\n"
.string "LEADER: KOGA\p"
.string "WINNING TRAINERS:\n"
diff --git a/data/maps/FuchsiaCity_House1/map.json b/data/maps/FuchsiaCity_House1/map.json
index 60a811b30..dea412ed2 100644
--- a/data/maps/FuchsiaCity_House1/map.json
+++ b/data/maps/FuchsiaCity_House1/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_House1_EventScript_16D6CF",
+ "script": "FuchsiaCity_House1_EventScript_OldMan",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_House1_EventScript_16D6C6",
+ "script": "FuchsiaCity_House1_EventScript_Woman",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_House1_EventScript_16D6E8",
+ "script": "FuchsiaCity_House1_EventScript_LittleBoy",
"flag": "0"
}
],
diff --git a/data/maps/FuchsiaCity_House1/scripts.inc b/data/maps/FuchsiaCity_House1/scripts.inc
index dc32f78c4..2aa53b9fe 100644
--- a/data/maps/FuchsiaCity_House1/scripts.inc
+++ b/data/maps/FuchsiaCity_House1/scripts.inc
@@ -1,18 +1,18 @@
FuchsiaCity_House1_MapScripts:: @ 816D6C5
.byte 0
-FuchsiaCity_House1_EventScript_16D6C6:: @ 816D6C6
- msgbox gUnknown_8198BBB, MSGBOX_NPC
+FuchsiaCity_House1_EventScript_Woman:: @ 816D6C6
+ msgbox FuchsiaCity_House1_Text_WardenIsOldHasFalseTeeth, MSGBOX_NPC
end
-FuchsiaCity_House1_EventScript_16D6CF:: @ 816D6CF
+FuchsiaCity_House1_EventScript_OldMan:: @ 816D6CF
lock
faceplayer
famechecker FAMECHECKER_BILL, 2
- msgbox gUnknown_8198C1F
+ msgbox FuchsiaCity_House1_Text_BillIsMyGrandson
release
end
-FuchsiaCity_House1_EventScript_16D6E8:: @ 816D6E8
- msgbox gUnknown_8198C7B, MSGBOX_NPC
+FuchsiaCity_House1_EventScript_LittleBoy:: @ 816D6E8
+ msgbox FuchsiaCity_House1_Text_BillFilesHisOwnMonData, MSGBOX_NPC
end
diff --git a/data/maps/FuchsiaCity_House1/text.inc b/data/maps/FuchsiaCity_House1/text.inc
index e34e5d19e..6d1b399aa 100644
--- a/data/maps/FuchsiaCity_House1/text.inc
+++ b/data/maps/FuchsiaCity_House1/text.inc
@@ -1,16 +1,16 @@
-gUnknown_8198BBB:: @ 8198BBB
+FuchsiaCity_House1_Text_WardenIsOldHasFalseTeeth:: @ 8198BBB
.string "The SAFARI ZONE's WARDEN is old, \n"
.string "but he's still very much active.\p"
.string "All his teeth are false, though.$"
-gUnknown_8198C1F:: @ 8198C1F
+FuchsiaCity_House1_Text_BillIsMyGrandson:: @ 8198C1F
.string "Hmm?\n"
.string "You've met BILL?\p"
.string "He's my grandson!\p"
.string "He always liked collecting things,\n"
.string "even as a child!$"
-gUnknown_8198C7B:: @ 8198C7B
+FuchsiaCity_House1_Text_BillFilesHisOwnMonData:: @ 8198C7B
.string "BILL files his own POKéMON data on\n"
.string "his PC.\p"
.string "Did he show you?$"
diff --git a/data/maps/FuchsiaCity_House2/map.json b/data/maps/FuchsiaCity_House2/map.json
index 06be2ceca..ff4c45b1c 100644
--- a/data/maps/FuchsiaCity_House2/map.json
+++ b/data/maps/FuchsiaCity_House2/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_House2_EventScript_16D817",
+ "script": "FuchsiaCity_House2_EventScript_FishingGurusBrother",
"flag": "0"
}
],
diff --git a/data/maps/FuchsiaCity_House2/scripts.inc b/data/maps/FuchsiaCity_House2/scripts.inc
index 95e481963..0e624d5d4 100644
--- a/data/maps/FuchsiaCity_House2/scripts.inc
+++ b/data/maps/FuchsiaCity_House2/scripts.inc
@@ -1,34 +1,34 @@
FuchsiaCity_House2_MapScripts:: @ 816D816
.byte 0
-FuchsiaCity_House2_EventScript_16D817:: @ 816D817
+FuchsiaCity_House2_EventScript_FishingGurusBrother:: @ 816D817
lock
faceplayer
- goto_if_set FLAG_GOT_GOOD_ROD, EventScript_16D83F
- msgbox gUnknown_819918E, MSGBOX_YESNO
+ goto_if_set FLAG_GOT_GOOD_ROD, FuchsiaCity_House2_EventScript_AlreadyGotGoodRod
+ msgbox FuchsiaCity_House2_Text_DoYouLikeToFish, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16D849
- msgbox gUnknown_8199337
+ goto_if_eq FuchsiaCity_House2_EventScript_GiveGoodRod
+ msgbox FuchsiaCity_House2_Text_OhThatsDisappointing
release
end
-EventScript_16D83F:: @ 816D83F
- msgbox gUnknown_8199354
+FuchsiaCity_House2_EventScript_AlreadyGotGoodRod:: @ 816D83F
+ msgbox FuchsiaCity_House2_Text_HowAreTheFishBiting
release
end
-EventScript_16D849:: @ 816D849
- msgbox gUnknown_8199207
+FuchsiaCity_House2_EventScript_GiveGoodRod:: @ 816D849
+ msgbox FuchsiaCity_House2_Text_LikeYourStyleTakeThis
checkitemspace ITEM_GOOD_ROD, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16D88A
- giveitem_msg gUnknown_819925E, ITEM_GOOD_ROD
- msgbox gUnknown_8199296
+ goto_if_eq FuchsiaCity_House2_EventScript_NoRoomForGoodRod
+ giveitem_msg FuchsiaCity_House2_Text_ReceivedGoodRod, ITEM_GOOD_ROD
+ msgbox FuchsiaCity_House2_Text_GoodRodCanCatchBetterMons
setflag FLAG_GOT_GOOD_ROD
release
end
-EventScript_16D88A:: @ 816D88A
- msgbox gUnknown_819937E
+FuchsiaCity_House2_EventScript_NoRoomForGoodRod:: @ 816D88A
+ msgbox FuchsiaCity_House2_Text_YouHaveNoRoomForGift
release
end
diff --git a/data/maps/FuchsiaCity_House2/text.inc b/data/maps/FuchsiaCity_House2/text.inc
index bf425f98e..b4cfbd13c 100644
--- a/data/maps/FuchsiaCity_House2/text.inc
+++ b/data/maps/FuchsiaCity_House2/text.inc
@@ -1,20 +1,20 @@
-gUnknown_819918E:: @ 819918E
+FuchsiaCity_House2_Text_DoYouLikeToFish:: @ 819918E
.string "I'm the FISHING GURU's older\n"
.string "brother.\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_8199207:: @ 8199207
+FuchsiaCity_House2_Text_LikeYourStyleTakeThis:: @ 8199207
.string "Grand! I like your style.\n"
.string "I think we can be friends.\p"
.string "Take this and fish, young friend!$"
-gUnknown_819925E:: @ 819925E
+FuchsiaCity_House2_Text_ReceivedGoodRod:: @ 819925E
.string "{PLAYER} received a GOOD ROD from\n"
.string "the FISHING GURU's brother.$"
-gUnknown_8199296:: @ 8199296
+FuchsiaCity_House2_Text_GoodRodCanCatchBetterMons:: @ 8199296
.string "Fishing is a way of life!\n"
.string "It is like the finest poetry.\p"
.string "A crummy OLD ROD could only catch\n"
@@ -22,15 +22,15 @@ gUnknown_8199296:: @ 8199296
.string "But with a GOOD ROD, you can\n"
.string "catch much better POKéMON.$"
-gUnknown_8199337:: @ 8199337
+FuchsiaCity_House2_Text_OhThatsDisappointing:: @ 8199337
.string "Oh…\n"
.string "That's so disappointing…$"
-gUnknown_8199354:: @ 8199354
+FuchsiaCity_House2_Text_HowAreTheFishBiting:: @ 8199354
.string "Hello there, {PLAYER}!\p"
.string "How are the fish biting?$"
-gUnknown_819937E:: @ 819937E
+FuchsiaCity_House2_Text_YouHaveNoRoomForGift:: @ 819937E
.string "Oh, no!\p"
.string "I had a gift for you, but you have\n"
.string "no room for it!$"
diff --git a/data/maps/FuchsiaCity_House3/map.json b/data/maps/FuchsiaCity_House3/map.json
index d5a729342..688224b15 100644
--- a/data/maps/FuchsiaCity_House3/map.json
+++ b/data/maps/FuchsiaCity_House3/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_House3_EventScript_16D895",
+ "script": "FuchsiaCity_House3_EventScript_MoveDeleter",
"flag": "0"
}
],
diff --git a/data/maps/FuchsiaCity_House3/scripts.inc b/data/maps/FuchsiaCity_House3/scripts.inc
index 5eb556a79..5af270538 100644
--- a/data/maps/FuchsiaCity_House3/scripts.inc
+++ b/data/maps/FuchsiaCity_House3/scripts.inc
@@ -1,60 +1,60 @@
FuchsiaCity_House3_MapScripts:: @ 816D894
.byte 0
-FuchsiaCity_House3_EventScript_16D895:: @ 816D895
+FuchsiaCity_House3_EventScript_MoveDeleter:: @ 816D895
lock
faceplayer
- msgbox gUnknown_81993B9, MSGBOX_YESNO
+ msgbox FuchsiaCity_House3_Text_WouldYouLikeToForgetMove, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16D8B0
- goto EventScript_16D941
+ goto_if_eq FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter
+ goto FuchsiaCity_House3_EventScript_CancelForgetMove
end
-EventScript_16D8B0:: @ 816D8B0
- msgbox gUnknown_8199421
+FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter:: @ 816D8B0
+ msgbox FuchsiaCity_House3_Text_WhichMonShouldForgetMove
special Special_ChooseMonFromParty
waitstate
- compare VAR_0x8004, 6
- goto_if_ge EventScript_16D941
+ compare VAR_0x8004, PARTY_SIZE
+ goto_if_ge FuchsiaCity_House3_EventScript_CancelForgetMove
special Special_IsSelectedMonEgg
- compare VAR_RESULT, 1
- goto_if_eq EventScript_16D937
+ compare VAR_RESULT, TRUE
+ goto_if_eq FuchsiaCity_House3_EventScript_CantForgetMoveEgg
special Special_GetNumMovesSelectedMonHas
compare VAR_RESULT, 1
- goto_if_eq EventScript_16D92A
- msgbox gUnknown_8199445
+ goto_if_eq FuchsiaCity_House3_EventScript_CantForgetOnlyMove
+ msgbox FuchsiaCity_House3_Text_WhichMoveShouldBeForgotten
fadescreen FADE_TO_BLACK
special Special_SelectMove
fadescreen FADE_FROM_BLACK
- compare VAR_0x8005, 4
- goto_if_eq EventScript_16D8B0
+ compare VAR_0x8005, MAX_MON_MOVES
+ goto_if_eq FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter
special Special_BufferMoveDeleterNicknameAndMove
- msgbox gUnknown_8199485, MSGBOX_YESNO
+ msgbox FuchsiaCity_House3_Text_MonsMoveShouldBeForgotten, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16D919
- goto EventScript_16D941
+ goto_if_eq FuchsiaCity_House3_EventScript_ForgetMove
+ goto FuchsiaCity_House3_EventScript_CancelForgetMove
end
-EventScript_16D919:: @ 816D919
+FuchsiaCity_House3_EventScript_ForgetMove:: @ 816D919
special Special_MoveDeleterForgetMove
playfanfare MUS_ME_WASURE
waitfanfare
- msgbox gUnknown_81994B1
+ msgbox FuchsiaCity_House3_Text_MonHasForgottenMoveCompletely
release
end
-EventScript_16D92A:: @ 816D92A
+FuchsiaCity_House3_EventScript_CantForgetOnlyMove:: @ 816D92A
special Special_BufferMoveDeleterNicknameAndMove
- msgbox gUnknown_8199465
+ msgbox FuchsiaCity_House3_Text_MonOnlyKnowsOneMove
release
end
-EventScript_16D937:: @ 816D937
- msgbox gUnknown_819951F
+FuchsiaCity_House3_EventScript_CantForgetMoveEgg:: @ 816D937
+ msgbox FuchsiaCity_House3_Text_NoEggShouldKnowMoves
release
end
-EventScript_16D941:: @ 816D941
- msgbox gUnknown_81994EA
+FuchsiaCity_House3_EventScript_CancelForgetMove:: @ 816D941
+ msgbox FuchsiaCity_House3_Text_ComeAgainToForgetOtherMoves
release
end
diff --git a/data/maps/FuchsiaCity_House3/text.inc b/data/maps/FuchsiaCity_House3/text.inc
index e4fbd2f6a..9748c7a3d 100644
--- a/data/maps/FuchsiaCity_House3/text.inc
+++ b/data/maps/FuchsiaCity_House3/text.inc
@@ -1,35 +1,35 @@
-gUnknown_81993B9:: @ 81993B9
+FuchsiaCity_House3_Text_WouldYouLikeToForgetMove:: @ 81993B9
.string "Uh…\n"
.string "Oh, yes, I'm the MOVE DELETER.\p"
.string "I can make POKéMON forget their\n"
.string "moves.\p"
.string "Would you like me to do that?$"
-gUnknown_8199421:: @ 8199421
+FuchsiaCity_House3_Text_WhichMonShouldForgetMove:: @ 8199421
.string "Which POKéMON should forget a\n"
.string "move?$"
-gUnknown_8199445:: @ 8199445
+FuchsiaCity_House3_Text_WhichMoveShouldBeForgotten:: @ 8199445
.string "Which move should be forgotten?$"
-gUnknown_8199465:: @ 8199465
+FuchsiaCity_House3_Text_MonOnlyKnowsOneMove:: @ 8199465
.string "{STR_VAR_1} seems to know only one\n"
.string "move…$"
-gUnknown_8199485:: @ 8199485
+FuchsiaCity_House3_Text_MonsMoveShouldBeForgotten:: @ 8199485
.string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n"
.string "That move should be forgotten?$"
-gUnknown_81994B1:: @ 81994B1
+FuchsiaCity_House3_Text_MonHasForgottenMoveCompletely:: @ 81994B1
.string "It worked to perfection!\p"
.string "{STR_VAR_1} has forgotten\n"
.string "{STR_VAR_2} completely.$"
-gUnknown_81994EA:: @ 81994EA
+FuchsiaCity_House3_Text_ComeAgainToForgetOtherMoves:: @ 81994EA
.string "Come again if there are other\n"
.string "moves to be forgotten.$"
-gUnknown_819951F:: @ 819951F
+FuchsiaCity_House3_Text_NoEggShouldKnowMoves:: @ 819951F
.string "What?\n"
.string "No EGG should know any moves.$"
diff --git a/data/maps/FuchsiaCity_Mart/map.json b/data/maps/FuchsiaCity_Mart/map.json
index 00852040b..43a38c753 100644
--- a/data/maps/FuchsiaCity_Mart/map.json
+++ b/data/maps/FuchsiaCity_Mart/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Mart_EventScript_16D4F3",
+ "script": "FuchsiaCity_Mart_EventScript_Clerk",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Mart_EventScript_16D4EA",
+ "script": "FuchsiaCity_Mart_EventScript_Gentleman",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Mart_EventScript_16D4E1",
+ "script": "FuchsiaCity_Mart_EventScript_CooltrainerF",
"flag": "0"
}
],
diff --git a/data/maps/FuchsiaCity_Mart/scripts.inc b/data/maps/FuchsiaCity_Mart/scripts.inc
index 631be4033..4a62ef9db 100644
--- a/data/maps/FuchsiaCity_Mart/scripts.inc
+++ b/data/maps/FuchsiaCity_Mart/scripts.inc
@@ -1,27 +1,27 @@
FuchsiaCity_Mart_MapScripts:: @ 816D4E0
.byte 0
-FuchsiaCity_Mart_EventScript_16D4E1:: @ 816D4E1
- msgbox gUnknown_8198134, MSGBOX_NPC
+FuchsiaCity_Mart_EventScript_CooltrainerF:: @ 816D4E1
+ msgbox FuchsiaCity_Mart_Text_DidYouTryXSpeed, MSGBOX_NPC
end
-FuchsiaCity_Mart_EventScript_16D4EA:: @ 816D4EA
- msgbox gUnknown_81980BC, MSGBOX_NPC
+FuchsiaCity_Mart_EventScript_Gentleman:: @ 816D4EA
+ msgbox FuchsiaCity_Mart_Text_DontTheyHaveSafariZonePennants, MSGBOX_NPC
end
-FuchsiaCity_Mart_EventScript_16D4F3:: @ 816D4F3
+FuchsiaCity_Mart_EventScript_Clerk:: @ 816D4F3
goto_if_questlog EventScript_ReleaseEnd
lock
faceplayer
message Text_MayIHelpYou
waitmessage
- pokemart Items_16D518
+ pokemart FuchsiaCity_Mart_Items
msgbox Text_PleaseComeAgain
release
end
.align 2
-Items_16D518:: @ 816D518
+FuchsiaCity_Mart_Items:: @ 816D518
.2byte ITEM_ULTRA_BALL
.2byte ITEM_GREAT_BALL
.2byte ITEM_SUPER_POTION
diff --git a/data/maps/FuchsiaCity_Mart/text.inc b/data/maps/FuchsiaCity_Mart/text.inc
index 69f9bc5f8..6bac5b484 100644
--- a/data/maps/FuchsiaCity_Mart/text.inc
+++ b/data/maps/FuchsiaCity_Mart/text.inc
@@ -1,10 +1,10 @@
-gUnknown_81980BC:: @ 81980BC
+FuchsiaCity_Mart_Text_DontTheyHaveSafariZonePennants:: @ 81980BC
.string "Don't they have any pennants\n"
.string "promoting the SAFARI ZONE?\p"
.string "How about some paper lanterns?\n"
.string "Aren't there even any calendars?$"
-gUnknown_8198134:: @ 8198134
+FuchsiaCity_Mart_Text_DidYouTryXSpeed:: @ 8198134
.string "Did you try X SPEED?\n"
.string "It speeds up a POKéMON in battle.$"
diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json
index d2e1eee01..9cc66692f 100644
--- a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json
+++ b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D700",
+ "script": "FuchsiaCity_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": "FuchsiaCity_PokemonCenter_1F_EventScript_16D709",
+ "script": "FuchsiaCity_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": "FuchsiaCity_PokemonCenter_1F_EventScript_16D712",
+ "script": "FuchsiaCity_PokemonCenter_1F_EventScript_CooltrainerF",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D71B",
+ "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Youngster",
"flag": "0"
}
],
diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc b/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc
index 428305d1c..abcd80e57 100644
--- a/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc
@@ -7,21 +7,21 @@ FuchsiaCity_PokemonCenter_1F_OnTransition:: @ 816D6FC
setrespawn SPAWN_FUCHSIA_CITY
end
-FuchsiaCity_PokemonCenter_1F_EventScript_16D700:: @ 816D700
+FuchsiaCity_PokemonCenter_1F_EventScript_Nurse:: @ 816D700
lock
faceplayer
call EventScript_PkmnCenterNurse
release
end
-FuchsiaCity_PokemonCenter_1F_EventScript_16D709:: @ 816D709
- msgbox gUnknown_8198CB7, MSGBOX_NPC
+FuchsiaCity_PokemonCenter_1F_EventScript_Man:: @ 816D709
+ msgbox FuchsiaCity_PokemonCenter_1F_Text_CantBecomeGoodTrainerWithOneMon, MSGBOX_NPC
end
-FuchsiaCity_PokemonCenter_1F_EventScript_16D712:: @ 816D712
- msgbox gUnknown_8198D2E, MSGBOX_NPC
+FuchsiaCity_PokemonCenter_1F_EventScript_CooltrainerF:: @ 816D712
+ msgbox FuchsiaCity_PokemonCenter_1F_Text_PokemonLeagueWestOfViridian, MSGBOX_NPC
end
-FuchsiaCity_PokemonCenter_1F_EventScript_16D71B:: @ 816D71B
- msgbox gUnknown_8198D9B, MSGBOX_NPC
+FuchsiaCity_PokemonCenter_1F_EventScript_Youngster:: @ 816D71B
+ msgbox FuchsiaCity_PokemonCenter_1F_Text_VisitSafariZoneForPokedex, MSGBOX_NPC
end
diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc b/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc
index 7d3a627be..4d5deb734 100644
--- a/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc
+++ b/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc
@@ -1,16 +1,16 @@
-gUnknown_8198CB7:: @ 8198CB7
+FuchsiaCity_PokemonCenter_1F_Text_CantBecomeGoodTrainerWithOneMon:: @ 8198CB7
.string "You can't become a good TRAINER\n"
.string "with just one strong POKéMON.\p"
.string "But raising many POKéMON evenly\n"
.string "is no easy task, either.$"
-gUnknown_8198D2E:: @ 8198D2E
+FuchsiaCity_PokemonCenter_1F_Text_PokemonLeagueWestOfViridian:: @ 8198D2E
.string "There's a narrow trail west of\n"
.string "VIRIDIAN CITY.\p"
.string "It goes to the POKéMON LEAGUE HQ.\n"
.string "The HQ governs all TRAINERS.$"
-gUnknown_8198D9B:: @ 8198D9B
+FuchsiaCity_PokemonCenter_1F_Text_VisitSafariZoneForPokedex:: @ 8198D9B
.string "If you're working on a POKéDEX,\n"
.string "visit the SAFARI ZONE.\p"
.string "All sorts of rare POKéMON breed\n"
diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json
index b4b0e9f82..04d51dae8 100644
--- a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json
+++ b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D4B7",
+ "script": "FuchsiaCity_SafariZone_Entrance_EventScript_InfoAttendant",
"flag": "0"
}
],
@@ -78,7 +78,7 @@
"elevation": 3,
"var": "VAR_TEMP_1",
"var_value": 0,
- "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D36D"
+ "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerMid"
},
{
"type": "trigger",
@@ -87,7 +87,7 @@
"elevation": 3,
"var": "VAR_TEMP_1",
"var_value": 0,
- "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D379"
+ "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerRight"
},
{
"type": "trigger",
@@ -96,7 +96,7 @@
"elevation": 3,
"var": "VAR_TEMP_1",
"var_value": 0,
- "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D385"
+ "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft"
}
],
"bg_events": []
diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc
index e4ec53ca7..863ddbd48 100644
--- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc
+++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc
@@ -3,210 +3,213 @@ FuchsiaCity_SafariZone_Entrance_MapScripts:: @ 816D2A8
.byte 0
FuchsiaCity_SafariZone_Entrance_OnFrame:: @ 816D2AE
- map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1, EventScript_16D2F2
- map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2, EventScript_16D312
- map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3, EventScript_16D2C8
+ map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1, FuchsiaCity_SafariZone_Entrance_EventScript_ExitWarpIn
+ map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2, FuchsiaCity_SafariZone_Entrance_EventScript_ExitEarly
+ map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3, FuchsiaCity_SafariZone_Entrance_EventScript_ExitWalkIn
.2byte 0
-EventScript_16D2C8:: @ 816D2C8
+@ When player runs out of balls mid-battle
+FuchsiaCity_SafariZone_Entrance_EventScript_ExitWalkIn:: @ 816D2C8
lockall
textcolor 0
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D36A
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ApproachCounter
waitmovement 0
- msgbox gUnknown_8197E85
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D367
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit2
waitmovement 0
special ExitSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0
releaseall
end
-EventScript_16D2F2:: @ 816D2F2
+@ When player runs of out balls after catching a pokemon, or runs out of steps
+FuchsiaCity_SafariZone_Entrance_EventScript_ExitWarpIn:: @ 816D2F2
lockall
textcolor 0
- msgbox gUnknown_8197E85
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D362
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit
waitmovement 0
special ExitSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0
releaseall
end
-EventScript_16D312:: @ 816D312
+@ When player re-enters the entrance building with balls/steps remaining
+FuchsiaCity_SafariZone_Entrance_EventScript_ExitEarly:: @ 816D312
lockall
textcolor 0
- msgbox gUnknown_8197E1A, MSGBOX_YESNO
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_GoingToLeaveSafariZoneEarly, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16D345
- msgbox gUnknown_8197E48
+ goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_ReturnToSafariZone
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_PleaseReturnSafariBalls
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D362
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit
waitmovement 0
special ExitSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0
releaseall
end
-EventScript_16D345:: @ 816D345
- msgbox gUnknown_8197E7A
+FuchsiaCity_SafariZone_Entrance_EventScript_ReturnToSafariZone:: @ 816D345
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_GoodLuck
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D365
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ReEnter
waitmovement 0
warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30
waitstate
end
-Movement_16D362:: @ 816D362
+FuchsiaCity_SafariZone_Entrance_Movement_Exit:: @ 816D362
walk_down
walk_down
step_end
-Movement_16D365:: @ 816D365
+FuchsiaCity_SafariZone_Entrance_Movement_ReEnter:: @ 816D365
walk_up
step_end
-Movement_16D367:: @ 816D367
+FuchsiaCity_SafariZone_Entrance_Movement_Exit2:: @ 816D367
walk_down
walk_down
step_end
-Movement_16D36A:: @ 816D36A
+FuchsiaCity_SafariZone_Entrance_Movement_ApproachCounter:: @ 816D36A
walk_down
delay_8
step_end
-FuchsiaCity_SafariZone_Entrance_EventScript_16D36D:: @ 816D36D
+FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerMid:: @ 816D36D
lockall
setvar VAR_TEMP_2, 0
- goto EventScript_16D391
+ goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone
end
-FuchsiaCity_SafariZone_Entrance_EventScript_16D379:: @ 816D379
+FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerRight:: @ 816D379
lockall
setvar VAR_TEMP_2, 1
- goto EventScript_16D391
+ goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone
end
-FuchsiaCity_SafariZone_Entrance_EventScript_16D385:: @ 816D385
+FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft:: @ 816D385
lockall
setvar VAR_TEMP_2, 2
- goto EventScript_16D391
+ goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone
end
-EventScript_16D391:: @ 816D391
+FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone:: @ 816D391
textcolor 0
- msgbox gUnknown_8197C6B
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight
waitmovement 0
showmoneybox 0, 0, 0
- msgbox gUnknown_8197C87, MSGBOX_YESNO
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16D3CA
- msgbox gUnknown_8197DE9
- goto EventScript_16D49A
+ goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_TryEnterSafariZone
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_OkayPleaseComeAgain
+ goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack
end
-EventScript_16D3CA:: @ 816D3CA
- call EventScript_16D462
+FuchsiaCity_SafariZone_Entrance_EventScript_TryEnterSafariZone:: @ 816D3CA
+ call FuchsiaCity_SafariZone_Entrance_EventScript_CheckSpaceForMons
checkmoney 500, 0
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16D48C
+ goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_NotEnoughMoney
removemoney 500, 0
updatemoneybox 0, 0, 0
- msgbox gUnknown_8197D07
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_ThatllBe500WeOnlyUseSpecialBalls
textcolor 3
playfanfare MUS_FANFA1
- message Text_197D50
+ message FuchsiaCity_SafariZone_Entrance_Text_PlayerReceived30SafariBalls
waitfanfare
call EventScript_1A6675
- msgbox gUnknown_8197D80
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_CallYouOnPAWhenYouRunOut
closemessage
hidemoneybox 0, 0
compare VAR_TEMP_2, 0
- call_if_eq EventScript_16D44C
+ call_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneMid
compare VAR_TEMP_2, 1
- call_if_eq EventScript_16D441
+ call_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneRight
compare VAR_TEMP_2, 2
- call_if_eq EventScript_16D457
+ call_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneLeft
special EnterSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2
warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30
waitstate
end
-EventScript_16D441:: @ 816D441
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4AF
+FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneRight:: @ 816D441
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneRight
waitmovement 0
return
-EventScript_16D44C:: @ 816D44C
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4AC
+FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneMid:: @ 816D44C
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneMid
waitmovement 0
return
-EventScript_16D457:: @ 816D457
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4B3
+FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneLeft:: @ 816D457
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneLeft
waitmovement 0
return
-EventScript_16D462:: @ 816D462
+FuchsiaCity_SafariZone_Entrance_EventScript_CheckSpaceForMons:: @ 816D462
getpartysize
compare VAR_RESULT, PARTY_SIZE
goto_if_ne EventScript_Return
specialvar VAR_RESULT, Special_IsThereRoomInAnyBoxForMorePokemon
- compare VAR_RESULT, 1
+ compare VAR_RESULT, TRUE
goto_if_eq EventScript_Return
- msgbox gUnknown_81BFEAC
- goto EventScript_16D49A
+ msgbox SafariZone_Text_ExcuseMeYourPCBoxIsFull
+ goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack
end
-EventScript_16D48C:: @ 816D48C
- msgbox gUnknown_8197E02
- goto EventScript_16D49A
+FuchsiaCity_SafariZone_Entrance_EventScript_NotEnoughMoney:: @ 816D48C
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_OopsNotEnoughMoney
+ goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack
end
-EventScript_16D49A:: @ 816D49A
+FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack:: @ 816D49A
closemessage
hidemoneybox 0, 0
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4AA
+ applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ForceBack
waitmovement 0
releaseall
end
-Movement_16D4AA:: @ 816D4AA
+FuchsiaCity_SafariZone_Entrance_Movement_ForceBack:: @ 816D4AA
walk_down
step_end
-Movement_16D4AC:: @ 816D4AC
+FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneMid:: @ 816D4AC
walk_up
walk_up
step_end
-Movement_16D4AF:: @ 816D4AF
+FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneRight:: @ 816D4AF
walk_up
walk_left
walk_up
step_end
-Movement_16D4B3:: @ 816D4B3
+FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneLeft:: @ 816D4B3
walk_up
walk_right
walk_up
step_end
-FuchsiaCity_SafariZone_Entrance_EventScript_16D4B7:: @ 816D4B7
+FuchsiaCity_SafariZone_Entrance_EventScript_InfoAttendant:: @ 816D4B7
lock
faceplayer
- msgbox gUnknown_8197EB0, MSGBOX_YESNO
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_FirstTimeAtSafariZone, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_16D4D6
- msgbox gUnknown_819809E
+ goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_ExplainSafariZone
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_SorryYoureARegularHere
release
end
-EventScript_16D4D6:: @ 816D4D6
- msgbox gUnknown_8197EE3
+FuchsiaCity_SafariZone_Entrance_EventScript_ExplainSafariZone:: @ 816D4D6
+ msgbox FuchsiaCity_SafariZone_Entrance_Text_ExplainSafariZone
release
end
diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc
index bda1357a4..58f784422 100644
--- a/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc
+++ b/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc
@@ -1,56 +1,56 @@
-gUnknown_8197C6B:: @ 8197C6B
+FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone:: @ 8197C6B
.string "Welcome to the SAFARI ZONE!$"
-gUnknown_8197C87:: @ 8197C87
+FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500:: @ 8197C87
.string "For just ¥500, you can play the\n"
.string "SAFARI GAME.\p"
.string "You can roam the wide-open safari\n"
.string "and catch what you like.\p"
.string "Would you like to play?$"
-gUnknown_8197D07:: @ 8197D07
+FuchsiaCity_SafariZone_Entrance_Text_ThatllBe500WeOnlyUseSpecialBalls:: @ 8197D07
.string "That'll be ¥500, please!\p"
.string "We only use a special kind of \n"
.string "POKé BALLS here.$"
-Text_197D50:: @ 8197D50
+FuchsiaCity_SafariZone_Entrance_Text_PlayerReceived30SafariBalls:: @ 8197D50
.string "{PLAYER} received 30 SAFARI BALLS\n"
.string "from the attendant.$"
-gUnknown_8197D80:: @ 8197D80
+FuchsiaCity_SafariZone_Entrance_Text_CallYouOnPAWhenYouRunOut:: @ 8197D80
.string "We'll call you on the PA when you\n"
.string "run out of time or SAFARI BALLS.\p"
.string "Well, I'll wish you the best of\n"
.string "luck!$"
-gUnknown_8197DE9:: @ 8197DE9
+FuchsiaCity_SafariZone_Entrance_Text_OkayPleaseComeAgain:: @ 8197DE9
.string "Okay.\n"
.string "Please come again!$"
-gUnknown_8197E02:: @ 8197E02
+FuchsiaCity_SafariZone_Entrance_Text_OopsNotEnoughMoney:: @ 8197E02
.string "Oops!\n"
.string "Not enough money!$"
-gUnknown_8197E1A:: @ 8197E1A
+FuchsiaCity_SafariZone_Entrance_Text_GoingToLeaveSafariZoneEarly:: @ 8197E1A
.string "Are you going to leave the\n"
.string "SAFARI ZONE early?$"
-gUnknown_8197E48:: @ 8197E48
+FuchsiaCity_SafariZone_Entrance_Text_PleaseReturnSafariBalls:: @ 8197E48
.string "Please return any SAFARI BALLS\n"
.string "you may have left.$"
-gUnknown_8197E7A:: @ 8197E7A
+FuchsiaCity_SafariZone_Entrance_Text_GoodLuck:: @ 8197E7A
.string "Good luck!$"
-gUnknown_8197E85:: @ 8197E85
+FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain:: @ 8197E85
.string "Did you catch your fair share?\n"
.string "Come again!$"
-gUnknown_8197EB0:: @ 8197EB0
+FuchsiaCity_SafariZone_Entrance_Text_FirstTimeAtSafariZone:: @ 8197EB0
.string "Hi! Is it your first time here at\n"
.string "the SAFARI ZONE?$"
-gUnknown_8197EE3:: @ 8197EE3
+FuchsiaCity_SafariZone_Entrance_Text_ExplainSafariZone:: @ 8197EE3
.string "The SAFARI ZONE actually has\n"
.string "four zones in it.\p"
.string "Each zone has different kinds of\n"
@@ -68,6 +68,6 @@ gUnknown_8197EE3:: @ 8197EE3
.string "When you run out of time or SAFARI\n"
.string "BALLS, it's game over for you!$"
-gUnknown_819809E:: @ 819809E
+FuchsiaCity_SafariZone_Entrance_Text_SorryYoureARegularHere:: @ 819809E
.string "Sorry, you're a regular here!$"
diff --git a/data/maps/FuchsiaCity_ZooBuilding/map.json b/data/maps/FuchsiaCity_SafariZone_Office/map.json
index a4cf1b1a0..be1abfced 100644
--- a/data/maps/FuchsiaCity_ZooBuilding/map.json
+++ b/data/maps/FuchsiaCity_SafariZone_Office/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_FUCHSIA_CITY_ZOO_BUILDING",
- "name": "FuchsiaCity_ZooBuilding",
- "layout": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING",
+ "id": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE",
+ "name": "FuchsiaCity_SafariZone_Office",
+ "layout": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE",
"music": "MUS_HANADA",
"region_map_section": "MAPSEC_FUCHSIA_CITY",
"requires_flash": false,
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_ZooBuilding_EventScript_16D532",
+ "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker2",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_ZooBuilding_EventScript_16D53B",
+ "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker3",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_ZooBuilding_EventScript_16D529",
+ "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker1",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_ZooBuilding_EventScript_16D544",
+ "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker4",
"flag": "0"
}
],
diff --git a/data/maps/FuchsiaCity_SafariZone_Office/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Office/scripts.inc
new file mode 100644
index 000000000..88832c1b0
--- /dev/null
+++ b/data/maps/FuchsiaCity_SafariZone_Office/scripts.inc
@@ -0,0 +1,18 @@
+FuchsiaCity_SafariZone_Office_MapScripts:: @ 816D528
+ .byte 0
+
+FuchsiaCity_SafariZone_Office_EventScript_Worker1:: @ 816D529
+ msgbox FuchsiaCity_SafariZone_Office_Text_NicknamedWardenSlowpoke, MSGBOX_NPC
+ end
+
+FuchsiaCity_SafariZone_Office_EventScript_Worker2:: @ 816D532
+ msgbox FuchsiaCity_SafariZone_Office_Text_WardenIsVeryKnowledgeable, MSGBOX_NPC
+ end
+
+FuchsiaCity_SafariZone_Office_EventScript_Worker3:: @ 816D53B
+ msgbox FuchsiaCity_SafariZone_Office_Text_CouldntUnderstandWarden, MSGBOX_NPC
+ end
+
+FuchsiaCity_SafariZone_Office_EventScript_Worker4:: @ 816D544
+ msgbox FuchsiaCity_SafariZone_Office_Text_PrizeInSafariZone, MSGBOX_NPC
+ end
diff --git a/data/maps/FuchsiaCity_ZooBuilding/text.inc b/data/maps/FuchsiaCity_SafariZone_Office/text.inc
index 36b7e8a3e..0fedd07d6 100644
--- a/data/maps/FuchsiaCity_ZooBuilding/text.inc
+++ b/data/maps/FuchsiaCity_SafariZone_Office/text.inc
@@ -1,21 +1,21 @@
-gUnknown_819816B:: @ 819816B
+FuchsiaCity_SafariZone_Office_Text_NicknamedWardenSlowpoke:: @ 819816B
.string "We nicknamed the WARDEN\n"
.string "“SLOWPOKE.”\p"
.string "You know, he has that vacant look\n"
.string "like a SLOWPOKE.$"
-gUnknown_81981C2:: @ 81981C2
+FuchsiaCity_SafariZone_Office_Text_WardenIsVeryKnowledgeable:: @ 81981C2
.string "WARDEN SLOWPOKE is very\n"
.string "knowledgeable about POKéMON.\p"
.string "He even has some fossils of rare,\n"
.string "extinct POKéMON.$"
-gUnknown_819822A:: @ 819822A
+FuchsiaCity_SafariZone_Office_Text_CouldntUnderstandWarden:: @ 819822A
.string "WARDEN SLOWPOKE came in, but\n"
.string "I couldn't understand him.\p"
.string "I think he's got a speech problem!$"
-gUnknown_8198285:: @ 8198285
+FuchsiaCity_SafariZone_Office_Text_PrizeInSafariZone:: @ 8198285
.string "WARDEN SLOWPOKE is running a\n"
.string "promotion campaign right now.\p"
.string "Try to get to the farthest corner\n"
diff --git a/data/maps/FuchsiaCity_Building1/map.json b/data/maps/FuchsiaCity_WardensHouse/map.json
index 763dfb3e8..00f33363c 100644
--- a/data/maps/FuchsiaCity_Building1/map.json
+++ b/data/maps/FuchsiaCity_WardensHouse/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_FUCHSIA_CITY_BUILDING1",
- "name": "FuchsiaCity_Building1",
- "layout": "LAYOUT_FUCHSIA_CITY_BUILDING1",
+ "id": "MAP_FUCHSIA_CITY_WARDENS_HOUSE",
+ "name": "FuchsiaCity_WardensHouse",
+ "layout": "LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE",
"music": "MUS_HANADA",
"region_map_section": "MAPSEC_FUCHSIA_CITY",
"requires_flash": false,
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Building1_EventScript_16D74C",
+ "script": "FuchsiaCity_WardensHouse_EventScript_Warden",
"flag": "0"
},
{
@@ -49,8 +49,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Building1_EventScript_ItemRareCandy",
- "flag": "FLAG_HIDE_FUCHSIA_CITY_BUILDING1_RARE_CANDY"
+ "script": "FuchsiaCity_WardensHouse_EventScript_ItemRareCandy",
+ "flag": "FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY"
},
{
"graphics_id": "0",
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "FuchsiaCity_Building1_EventScript_1ACEB8",
+ "script": "FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga",
"flag": "FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL"
}
],
@@ -96,28 +96,28 @@
"x": 7,
"y": 4,
"elevation": 0,
- "script": "FuchsiaCity_Building1_EventScript_16D80D"
+ "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2"
},
{
"type": "bg_event_type_0",
"x": 4,
"y": 4,
"elevation": 0,
- "script": "FuchsiaCity_Building1_EventScript_16D804"
+ "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1"
},
{
"type": "bg_event_type_0",
"x": 5,
"y": 4,
"elevation": 0,
- "script": "FuchsiaCity_Building1_EventScript_16D804"
+ "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1"
},
{
"type": "bg_event_type_0",
"x": 6,
"y": 4,
"elevation": 0,
- "script": "FuchsiaCity_Building1_EventScript_16D80D"
+ "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2"
}
]
}
diff --git a/data/maps/FuchsiaCity_WardensHouse/scripts.inc b/data/maps/FuchsiaCity_WardensHouse/scripts.inc
new file mode 100644
index 000000000..141101e1b
--- /dev/null
+++ b/data/maps/FuchsiaCity_WardensHouse/scripts.inc
@@ -0,0 +1,63 @@
+FuchsiaCity_WardensHouse_MapScripts:: @ 816D74B
+ .byte 0
+
+FuchsiaCity_WardensHouse_EventScript_Warden:: @ 816D74C
+ lock
+ faceplayer
+ goto_if_set FLAG_GOT_HM04, FuchsiaCity_WardensHouse_EventScript_ExplainStrength
+ goto_if_set FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH, FuchsiaCity_WardensHouse_EventScript_GiveGoldTeeth
+ msgbox FuchsiaCity_WardensHouse_Text_HifFuffHefifoo, MSGBOX_YESNO
+ compare VAR_RESULT, YES
+ call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenYes
+ compare VAR_RESULT, NO
+ call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenNo
+ release
+ end
+
+FuchsiaCity_WardensHouse_EventScript_GiveGoldTeeth:: @ 816D780
+ textcolor 3
+ playfanfare MUS_ME_WAZA
+ message FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden
+ waitmessage
+ waitfanfare
+ msgbox FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth
+ call EventScript_1A6675
+ checkplayergender
+ compare VAR_RESULT, MALE
+ call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenThanksMale
+ compare VAR_RESULT, FEMALE
+ call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenThanksFemale
+ giveitem_msg FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden, ITEM_HM04
+ setflag FLAG_GOT_HM04
+ removeitem ITEM_GOLD_TEETH, 1
+ release
+ end
+
+FuchsiaCity_WardensHouse_EventScript_WardenThanksMale:: @ 816D7D6
+ msgbox FuchsiaCity_WardensHouse_Text_ThanksSonGiveYouSomething
+ return
+
+FuchsiaCity_WardensHouse_EventScript_WardenThanksFemale:: @ 816D7DF
+ msgbox FuchsiaCity_WardensHouse_Text_ThanksLassieGiveYouSomething
+ return
+
+FuchsiaCity_WardensHouse_EventScript_WardenYes:: @ 816D7E8
+ msgbox FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo
+ return
+
+FuchsiaCity_WardensHouse_EventScript_WardenNo:: @ 816D7F1
+ msgbox FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo
+ return
+
+FuchsiaCity_WardensHouse_EventScript_ExplainStrength:: @ 816D7FA
+ msgbox FuchsiaCity_WardensHouse_Text_ExplainStrength
+ release
+ end
+
+FuchsiaCity_WardensHouse_EventScript_DisplaySign1:: @ 816D804
+ msgbox FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay, MSGBOX_SIGN
+ end
+
+FuchsiaCity_WardensHouse_EventScript_DisplaySign2:: @ 816D80D
+ msgbox FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay, MSGBOX_SIGN
+ end
diff --git a/data/maps/FuchsiaCity_Building1/text.inc b/data/maps/FuchsiaCity_WardensHouse/text.inc
index dd4069e1f..b3f4b7b35 100644
--- a/data/maps/FuchsiaCity_Building1/text.inc
+++ b/data/maps/FuchsiaCity_WardensHouse/text.inc
@@ -1,24 +1,24 @@
-gUnknown_8198DF9:: @ 8198DF9
+FuchsiaCity_WardensHouse_Text_HifFuffHefifoo:: @ 8198DF9
.string "WARDEN: Hif fuff hefifoo!\p"
.string "Ha lof ha feef ee hafahi ho.\n"
.string "Heff hee fwee!$"
-gUnknown_8198E3F:: @ 8198E3F
+FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo:: @ 8198E3F
.string "Ah howhee ho hoo!\n"
.string "Eef ee hafahi ho!$"
-gUnknown_8198E63:: @ 8198E63
+FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo:: @ 8198E63
.string "Ha?\n"
.string "He ohay heh ha hoo ee haheh!$"
-Text_198E84:: @ 8198E84
+FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden:: @ 8198E84
.string "{PLAYER} gave the GOLD TEETH\n"
.string "to the WARDEN.$"
-gUnknown_8198EAA:: @ 8198EAA
+FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth:: @ 8198EAA
.string "The WARDEN popped in his teeth!$"
-gUnknown_8198ECA:: @ 8198ECA
+FuchsiaCity_WardensHouse_Text_ThanksSonGiveYouSomething:: @ 8198ECA
.string "WARDEN: Thanks, son!\n"
.string "You're a real lifesaver!\p"
.string "No one could understand a word\n"
@@ -28,7 +28,7 @@ gUnknown_8198ECA:: @ 8198ECA
.string "Let me give you something for your\n"
.string "trouble.$"
-gUnknown_8198F96:: @ 8198F96
+FuchsiaCity_WardensHouse_Text_ThanksLassieGiveYouSomething:: @ 8198F96
.string "WARDEN: Thank you, lassie!\n"
.string "You're a real lifesaver!\p"
.string "No one could understand a word\n"
@@ -38,11 +38,11 @@ gUnknown_8198F96:: @ 8198F96
.string "Let me give you something for your\n"
.string "trouble.$"
-gUnknown_8199068:: @ 8199068
+FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden:: @ 8199068
.string "{PLAYER} received HM04\n"
.string "from the WARDEN.$"
-gUnknown_819908A:: @ 819908A
+FuchsiaCity_WardensHouse_Text_ExplainStrength:: @ 819908A
.string "WARDEN: Inside HM04 you'll find\n"
.string "STRENGTH.\p"
.string "It lets POKéMON move boulders when\n"
@@ -50,15 +50,16 @@ gUnknown_819908A:: @ 819908A
.string "Oh yes, did you find the SECRET\n"
.string "HOUSE in the SAFARI ZONE?$"
-Text_19912B:: @ 819912B
+@ Unused
+FuchsiaCity_WardensHouse_Text_YouHaveTooMuchStuff:: @ 819912B
.string "なんや にもつ\n"
.string "いっぱいやんけ!$"
-gUnknown_819913C:: @ 819913C
+FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay:: @ 819913C
.string "POKéMON photos and fossils are on\n"
.string "display.$"
-gUnknown_8199167:: @ 8199167
+FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay:: @ 8199167
.string "Old POKéMON merchandise is on\n"
.string "display.$"
diff --git a/data/maps/FuchsiaCity_ZooBuilding/scripts.inc b/data/maps/FuchsiaCity_ZooBuilding/scripts.inc
deleted file mode 100644
index 210acd87f..000000000
--- a/data/maps/FuchsiaCity_ZooBuilding/scripts.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-FuchsiaCity_ZooBuilding_MapScripts:: @ 816D528
- .byte 0
-
-FuchsiaCity_ZooBuilding_EventScript_16D529:: @ 816D529
- msgbox gUnknown_819816B, MSGBOX_NPC
- end
-
-FuchsiaCity_ZooBuilding_EventScript_16D532:: @ 816D532
- msgbox gUnknown_81981C2, MSGBOX_NPC
- end
-
-FuchsiaCity_ZooBuilding_EventScript_16D53B:: @ 816D53B
- msgbox gUnknown_819822A, MSGBOX_NPC
- end
-
-FuchsiaCity_ZooBuilding_EventScript_16D544:: @ 816D544
- msgbox gUnknown_8198285, MSGBOX_NPC
- end
diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json
index ba7d80bf8..62681bf5c 100644
--- a/data/maps/MtEmber_Exterior/map.json
+++ b/data/maps/MtEmber_Exterior/map.json
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "MtEmber_Exterior_EventScript_16397F",
+ "script": "MtEmber_Exterior_EventScript_Grunt1",
"flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "MtEmber_Exterior_EventScript_1639F0",
+ "script": "MtEmber_Exterior_EventScript_Grunt2",
"flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 3,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 1,
- "script": "MtEmber_Exterior_EventScript_163AE2",
+ "script": "MtEmber_Exterior_EventScript_Jocelyn",
"flag": "0"
},
{
@@ -75,7 +75,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 5,
- "script": "MtEmber_Exterior_EventScript_163AB4",
+ "script": "MtEmber_Exterior_EventScript_Logan",
"flag": "0"
},
{
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 1,
"trainer_sight_or_berry_tree_id": 3,
- "script": "MtEmber_Exterior_EventScript_163ACB",
+ "script": "MtEmber_Exterior_EventScript_Beth",
"flag": "0"
},
{
@@ -326,7 +326,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_MT_EMBER_EXTERIOR",
"var_value": 1,
- "script": "MtEmber_Exterior_EventScript_163A4E"
+ "script": "MtEmber_Exterior_EventScript_RocketPasswordScene"
},
{
"type": "trigger",
@@ -335,7 +335,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_MT_EMBER_EXTERIOR",
"var_value": 1,
- "script": "MtEmber_Exterior_EventScript_163A4E"
+ "script": "MtEmber_Exterior_EventScript_RocketPasswordScene"
},
{
"type": "trigger",
@@ -344,7 +344,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_MT_EMBER_EXTERIOR",
"var_value": 1,
- "script": "MtEmber_Exterior_EventScript_163A4E"
+ "script": "MtEmber_Exterior_EventScript_RocketPasswordScene"
}
],
"bg_events": [
diff --git a/data/maps/MtEmber_Exterior/scripts.inc b/data/maps/MtEmber_Exterior/scripts.inc
index 67b563e72..7d67eea09 100644
--- a/data/maps/MtEmber_Exterior/scripts.inc
+++ b/data/maps/MtEmber_Exterior/scripts.inc
@@ -6,50 +6,50 @@ MtEmber_Exterior_MapScripts:: @ 8163946
MtEmber_Exterior_OnTransition:: @ 8163951
setworldmapflag FLAG_WORLD_MAP_MT_EMBER_EXTERIOR
compare VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 2
- call_if_eq EventScript_163960
+ call_if_eq MtEmber_Exterior_EventScript_RocketsFaceDown
end
-EventScript_163960:: @ 8163960
- setobjectmovementtype 2, 8
- setobjectmovementtype 3, 8
+MtEmber_Exterior_EventScript_RocketsFaceDown:: @ 8163960
+ setobjectmovementtype 2, MOVEMENT_TYPE_FACE_DOWN
+ setobjectmovementtype 3, MOVEMENT_TYPE_FACE_DOWN
return
MtEmber_Exterior_OnLoad:: @ 8163969
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4
- call_if_ge EventScript_163975
+ call_if_ge MtEmber_Exterior_EventScript_OpenCave
end
-EventScript_163975:: @ 8163975
- setmetatile 42, 39, 838, 0
+MtEmber_Exterior_EventScript_OpenCave:: @ 8163975
+ setmetatile 42, 39, METATILE_MtEmber_CaveEntrance, 0
return
-MtEmber_Exterior_EventScript_16397F:: @ 816397F
+MtEmber_Exterior_EventScript_Grunt1:: @ 816397F
lock
- goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_43, EventScript_16399E
+ goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_43, MtEmber_Exterior_EventScript_Grunt1Defeated
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4
- goto_if_eq EventScript_1639A8
- msgbox gUnknown_817A82A
+ goto_if_eq MtEmber_Exterior_EventScript_BattleGrunt1
+ msgbox MtEmber_Exterior_Text_WellTryDiggingHere
release
end
-EventScript_16399E:: @ 816399E
- msgbox gUnknown_817AA3F
+MtEmber_Exterior_EventScript_Grunt1Defeated:: @ 816399E
+ msgbox MtEmber_Exterior_Text_Grunt1PostBattle
release
end
-EventScript_1639A8:: @ 81639A8
+MtEmber_Exterior_EventScript_BattleGrunt1:: @ 81639A8
applymovement 2, Movement_FacePlayer
waitmovement 0
playbgm MUS_ROCKET, 0
- msgbox gUnknown_817AA06
- trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_43, Text_17AA34
- msgbox gUnknown_817AA3F
- goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_44, EventScript_1639DB
+ msgbox MtEmber_Exterior_Text_Grunt1Intro
+ trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_43, MtEmber_Exterior_Text_Grunt1Defeat
+ msgbox MtEmber_Exterior_Text_Grunt1PostBattle
+ goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_44, MtEmber_Exterior_EventScript_DefeatedBothGrunts
release
end
-EventScript_1639DB:: @ 81639DB
- msgbox gUnknown_817AAD7
+MtEmber_Exterior_EventScript_DefeatedBothGrunts:: @ 81639DB
+ msgbox MtEmber_Exterior_Text_WellRegroupDontStepInsideThere
closemessage
fadescreen FADE_TO_BLACK
removeobject 2
@@ -58,44 +58,44 @@ EventScript_1639DB:: @ 81639DB
release
end
-MtEmber_Exterior_EventScript_1639F0:: @ 81639F0
+MtEmber_Exterior_EventScript_Grunt2:: @ 81639F0
lock
faceplayer
- goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_44, EventScript_163A1B
+ goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_44, MtEmber_Exterior_EventScript_DefeatedGrunt2
compare VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4
- goto_if_eq EventScript_163A25
- msgbox gUnknown_817A88C
+ goto_if_eq MtEmber_Exterior_EventScript_BattleGrunt2
+ msgbox MtEmber_Exterior_Text_YoureInTheWayGetLost
closemessage
applymovement 3, Movement_FaceOriginalDirection
waitmovement 0
release
end
-EventScript_163A1B:: @ 8163A1B
- msgbox gUnknown_817AA99
+MtEmber_Exterior_EventScript_DefeatedGrunt2:: @ 8163A1B
+ msgbox MtEmber_Exterior_Text_Grunt2PostBattle
release
end
-EventScript_163A25:: @ 8163A25
+MtEmber_Exterior_EventScript_BattleGrunt2:: @ 8163A25
playbgm MUS_ROCKET, 0
- msgbox gUnknown_817AA56
- trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_44, Text_17AA8A
- msgbox gUnknown_817AA99
- goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_43, EventScript_1639DB
+ msgbox MtEmber_Exterior_Text_Grunt2Intro
+ trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_44, MtEmber_Exterior_Text_Grunt2Defeat
+ msgbox MtEmber_Exterior_Text_Grunt2PostBattle
+ goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_43, MtEmber_Exterior_EventScript_DefeatedBothGrunts
release
end
-MtEmber_Exterior_EventScript_163A4E:: @ 8163A4E
+MtEmber_Exterior_EventScript_RocketPasswordScene:: @ 8163A4E
lockall
textcolor 0
- msgbox gUnknown_817A8B4
- message Text_17A8EE
+ msgbox MtEmber_Exterior_Text_PunchedThroughAtLast
+ message MtEmber_Exterior_Text_WhatsPasswordAgain
waitmessage
playse SE_PIN
applymovement 3, Movement_QuestionMark
waitmovement 0
waitbuttonpress
- msgbox gUnknown_817A970
+ msgbox MtEmber_Exterior_Text_FirstPasswordGoldeen
applymovement 2, Movement_WalkInPlaceFastestDown
waitmovement 0
playse SE_PIN
@@ -105,23 +105,23 @@ MtEmber_Exterior_EventScript_163A4E:: @ 8163A4E
waitmovement 0
applymovement 3, Movement_WalkInPlaceFastestDown
waitmovement 0
- call EventScript_163960
- msgbox gUnknown_817A9E1
+ call MtEmber_Exterior_EventScript_RocketsFaceDown
+ msgbox MtEmber_Exterior_Text_SnoopsBeenListeningIn
setvar VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 2
releaseall
end
-MtEmber_Exterior_EventScript_163AB4:: @ 8163AB4
- trainerbattle_single TRAINER_PKMN_RANGER_LOGAN, Text_17AB73, Text_17ABAA
- msgbox gUnknown_817ABD8, MSGBOX_AUTOCLOSE
+MtEmber_Exterior_EventScript_Logan:: @ 8163AB4
+ trainerbattle_single TRAINER_PKMN_RANGER_LOGAN, MtEmber_Exterior_Text_LoganIntro, MtEmber_Exterior_Text_LoganDefeat
+ msgbox MtEmber_Exterior_Text_LoganPostBattle, MSGBOX_AUTOCLOSE
end
-MtEmber_Exterior_EventScript_163ACB:: @ 8163ACB
- trainerbattle_single TRAINER_PKMN_RANGER_BETH, Text_17AC55, Text_17AC82
- msgbox gUnknown_817ACA2, MSGBOX_AUTOCLOSE
+MtEmber_Exterior_EventScript_Beth:: @ 8163ACB
+ trainerbattle_single TRAINER_PKMN_RANGER_BETH, MtEmber_Exterior_Text_BethIntro, MtEmber_Exterior_Text_BethDefeat
+ msgbox MtEmber_Exterior_Text_BethPostBattle, MSGBOX_AUTOCLOSE
end
-MtEmber_Exterior_EventScript_163AE2:: @ 8163AE2
- trainerbattle_single TRAINER_CRUSH_GIRL_JOCELYN, Text_17AD06, Text_17AD6B
- msgbox gUnknown_817AD89, MSGBOX_AUTOCLOSE
+MtEmber_Exterior_EventScript_Jocelyn:: @ 8163AE2
+ trainerbattle_single TRAINER_CRUSH_GIRL_JOCELYN, MtEmber_Exterior_Text_JocelynIntro, MtEmber_Exterior_Text_JocelynDefeat
+ msgbox MtEmber_Exterior_Text_JocelynPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/MtEmber_Exterior/text.inc b/data/maps/MtEmber_Exterior/text.inc
index a3099147c..34d7d2139 100644
--- a/data/maps/MtEmber_Exterior/text.inc
+++ b/data/maps/MtEmber_Exterior/text.inc
@@ -20,7 +20,8 @@ Text_ExplosionTaught:: @ 817A756
.string "volcano…\p"
.string "What a terrifying thrill!$"
-Text_17A797:: @ 817A797
+@ Below 4 are unused JP versions of the above texts
+Text_ExplosionTeachJP:: @ 817A797
.string "こ この かざんが\n"
.string "もし だいばくはつ したら\l"
.string "お おれら ひとたまりも\l"
@@ -28,72 +29,72 @@ Text_17A797:: @ 817A797
.string "こ こわい ついでに\n"
.string "だいばくはつ でも おぼえてみる?$"
-Text_17A7E5:: @ 817A7E5
+Text_ExplosionDeclinedJP:: @ 817A7E5
.string "や やっぱ こわいもんな\n"
.string "ブルブル$"
-Text_17A7F7:: @ 817A7F7
+Text_ExplosionWhichMonJP:: @ 817A7F7
.string "つ つよきだね!\n"
.string "じゃあ どの ポケモンに する?$"
-Text_17A811:: @ 817A811
+Text_ExplosionTaughtJP:: @ 817A811
.string "かざんで だいばくはつを‥\n"
.string "す すごい スリル!$"
-gUnknown_817A82A:: @ 817A82A
+MtEmber_Exterior_Text_WellTryDiggingHere:: @ 817A82A
.string "Over here.\n"
.string "We'll try digging here.\p"
.string "That treasure the ADMINS've been\n"
.string "talking about should be here.$"
-gUnknown_817A88C:: @ 817A88C
+MtEmber_Exterior_Text_YoureInTheWayGetLost:: @ 817A88C
.string "What the…?\n"
.string "You're in the way. Get lost.$"
-gUnknown_817A8B4:: @ 817A8B4
+MtEmber_Exterior_Text_PunchedThroughAtLast:: @ 817A8B4
.string "Whew, punched through at last.\n"
.string "Let's go treasure hunting!$"
-Text_17A8EE:: @ 817A8EE
+MtEmber_Exterior_Text_WhatsPasswordAgain:: @ 817A8EE
.string "Any treasure we find, we haul back\n"
.string "to the WAREHOUSE, understood?\p"
.string "…Oh, and what're the passwords?\n"
.string "At the ROCKET WAREHOUSE, I mean.$"
-gUnknown_817A970:: @ 817A970
+MtEmber_Exterior_Text_FirstPasswordGoldeen:: @ 817A970
.string "What, you forgot the password?\n"
.string "There're actually two.\p"
.string "The first one's “GOLDEEN need\n"
.string "log.”\p"
.string "And the second one is…$"
-gUnknown_817A9E1:: @ 817A9E1
+MtEmber_Exterior_Text_SnoopsBeenListeningIn:: @ 817A9E1
.string "Hey!\n"
.string "This snoop's been listening in!$"
-gUnknown_817AA06:: @ 817AA06
+MtEmber_Exterior_Text_Grunt1Intro:: @ 817AA06
.string "You've been eavesdropping on us,\n"
.string "haven't you?$"
-Text_17AA34:: @ 817AA34
+MtEmber_Exterior_Text_Grunt1Defeat:: @ 817AA34
.string "Huh, what?$"
-gUnknown_817AA3F:: @ 817AA3F
+MtEmber_Exterior_Text_Grunt1PostBattle:: @ 817AA3F
.string "Why'd you have to win?$"
-gUnknown_817AA56:: @ 817AA56
+MtEmber_Exterior_Text_Grunt2Intro:: @ 817AA56
.string "Trying to horn in on our treasure?\n"
.string "Don't bet on it!$"
-Text_17AA8A:: @ 817AA8A
+MtEmber_Exterior_Text_Grunt2Defeat:: @ 817AA8A
.string "Wait!\n"
.string "But how?$"
-gUnknown_817AA99:: @ 817AA99
+MtEmber_Exterior_Text_Grunt2PostBattle:: @ 817AA99
.string "Develop amnesia conveniently and\n"
.string "forget everything you heard!$"
-gUnknown_817AAD7:: @ 817AAD7
+MtEmber_Exterior_Text_WellRegroupDontStepInsideThere:: @ 817AAD7
.string "What a setback…\n"
.string "We'll have to regroup.\p"
.string "You! Don't even think about taking\n"
@@ -101,43 +102,43 @@ gUnknown_817AAD7:: @ 817AAD7
.string "If you know what's good for you,\n"
.string "don't even think about this!$"
-Text_17AB73:: @ 817AB73
+MtEmber_Exterior_Text_LoganIntro:: @ 817AB73
.string "An active volcano is one that's\n"
.string "erupting, or about to.$"
-Text_17ABAA:: @ 817ABAA
+MtEmber_Exterior_Text_LoganDefeat:: @ 817ABAA
.string "Whew… That was hot!\n"
.string "Sweat's erupting from me!$"
-gUnknown_817ABD8:: @ 817ABD8
+MtEmber_Exterior_Text_LoganPostBattle:: @ 817ABD8
.string "They say there're over 1,500\n"
.string "active volcanoes in the world.\p"
.string "Just thinking about them makes me\n"
.string "feel all hot and gooey inside!$"
-Text_17AC55:: @ 817AC55
+MtEmber_Exterior_Text_BethIntro:: @ 817AC55
.string "Do you know how caves form inside\n"
.string "volcanoes?$"
-Text_17AC82:: @ 817AC82
+MtEmber_Exterior_Text_BethDefeat:: @ 817AC82
.string "Atchah!\n"
.string "You're shockingly good!$"
-gUnknown_817ACA2:: @ 817ACA2
+MtEmber_Exterior_Text_BethPostBattle:: @ 817ACA2
.string "When lava at the surface of magma\n"
.string "hardens, and the magma inside flows\l"
.string "out, caverns are left behind.$"
-Text_17AD06:: @ 817AD06
+MtEmber_Exterior_Text_JocelynIntro:: @ 817AD06
.string "I've been in training so I can mend\n"
.string "my broken heart…\p"
.string "It toughened me up physically at\n"
.string "least! Hi-yah!$"
-Text_17AD6B:: @ 817AD6B
+MtEmber_Exterior_Text_JocelynDefeat:: @ 817AD6B
.string "I think I tried to overdo it…$"
-gUnknown_817AD89:: @ 817AD89
+MtEmber_Exterior_Text_JocelynPostBattle:: @ 817AD89
.string "The way you battle, it reminds me\n"
.string "of the guy who dumped me…$"
diff --git a/data/maps/MtEmber_RubyPath_B3F/scripts.inc b/data/maps/MtEmber_RubyPath_B3F/scripts.inc
index 59fb37bf3..3c6852535 100644
--- a/data/maps/MtEmber_RubyPath_B3F/scripts.inc
+++ b/data/maps/MtEmber_RubyPath_B3F/scripts.inc
@@ -1,12 +1,12 @@
MtEmber_RubyPath_B3F_MapScripts:: @ 8163C48
.byte 0
-MtEmber_RubyPath_B3F_EventScript_163C49:: @ 8163C49
-MtEmber_RubyPath_B5F_EventScript_163C49:: @ 8163C49
+@ Odd that this is here and not in MtEmber_RubyPath_B5F/scripts.inc
+MtEmber_RubyPath_B5F_EventScript_Ruby:: @ 8163C49
lock
faceplayer
setflag FLAG_GOT_RUBY
removeobject 1
- giveitem_msg gUnknown_817ADC5, ITEM_RUBY, 1, MUS_FAN5
+ giveitem_msg MtEmber_RubyPath_B3F_Text_FoundARuby, ITEM_RUBY, 1, MUS_FAN5
release
end
diff --git a/data/maps/MtEmber_RubyPath_B3F/text.inc b/data/maps/MtEmber_RubyPath_B3F/text.inc
index 4cf8b5a50..ddee8c872 100644
--- a/data/maps/MtEmber_RubyPath_B3F/text.inc
+++ b/data/maps/MtEmber_RubyPath_B3F/text.inc
@@ -1,3 +1,3 @@
-gUnknown_817ADC5:: @ 817ADC5
+MtEmber_RubyPath_B3F_Text_FoundARuby:: @ 817ADC5
.string "{PLAYER} found a RUBY!$"
diff --git a/data/maps/MtEmber_RubyPath_B4F/map.json b/data/maps/MtEmber_RubyPath_B4F/map.json
index 42d8ee7f2..23b6556f6 100644
--- a/data/maps/MtEmber_RubyPath_B4F/map.json
+++ b/data/maps/MtEmber_RubyPath_B4F/map.json
@@ -36,182 +36,182 @@
"x": 3,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638EC"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleABC"
},
{
"type": "bg_event_type_1",
"x": 4,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638EC"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleABC"
},
{
"type": "bg_event_type_1",
"x": 5,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638EC"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleABC"
},
{
"type": "bg_event_type_1",
"x": 4,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638F5"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleGHI"
},
{
"type": "bg_event_type_1",
"x": 3,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638F5"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleGHI"
},
{
"type": "bg_event_type_1",
"x": 5,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638F5"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleGHI"
},
{
"type": "bg_event_type_1",
"x": 3,
"y": 11,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638FE"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleMNO"
},
{
"type": "bg_event_type_1",
"x": 4,
"y": 11,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638FE"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleMNO"
},
{
"type": "bg_event_type_1",
"x": 5,
"y": 11,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_1638FE"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleMNO"
},
{
"type": "bg_event_type_1",
"x": 3,
"y": 13,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163907"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleTUV"
},
{
"type": "bg_event_type_1",
"x": 4,
"y": 13,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163907"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleTUV"
},
{
"type": "bg_event_type_1",
"x": 5,
"y": 13,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163907"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleTUV"
},
{
"type": "bg_event_type_1",
"x": 7,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163910"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleDEF"
},
{
"type": "bg_event_type_1",
"x": 8,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163910"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleDEF"
},
{
"type": "bg_event_type_1",
"x": 9,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163910"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleDEF"
},
{
"type": "bg_event_type_1",
"x": 7,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163919"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleJKL"
},
{
"type": "bg_event_type_1",
"x": 8,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163919"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleJKL"
},
{
"type": "bg_event_type_1",
"x": 9,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163919"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleJKL"
},
{
"type": "bg_event_type_1",
"x": 7,
"y": 11,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163922"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BraillePQRS"
},
{
"type": "bg_event_type_1",
"x": 11,
"y": 7,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163934"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BraillePeriod"
},
{
"type": "bg_event_type_1",
"x": 11,
"y": 9,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_16393D"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleComma"
},
{
"type": "bg_event_type_1",
"x": 8,
"y": 11,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163922"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BraillePQRS"
},
{
"type": "bg_event_type_1",
"x": 9,
"y": 11,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_163922"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BraillePQRS"
},
{
"type": "bg_event_type_1",
"x": 7,
"y": 13,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_16392B"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ"
},
{
"type": "bg_event_type_1",
"x": 9,
"y": 13,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_16392B"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ"
},
{
"type": "bg_event_type_1",
"x": 8,
"y": 13,
"elevation": 0,
- "script": "MtEmber_RubyPath_B4F_EventScript_16392B"
+ "script": "MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ"
}
]
}
diff --git a/data/maps/MtEmber_RubyPath_B4F/scripts.inc b/data/maps/MtEmber_RubyPath_B4F/scripts.inc
index 18249a49a..b66185733 100644
--- a/data/maps/MtEmber_RubyPath_B4F/scripts.inc
+++ b/data/maps/MtEmber_RubyPath_B4F/scripts.inc
@@ -1,72 +1,72 @@
MtEmber_RubyPath_B4F_MapScripts:: @ 81638EB
.byte 0
-MtEmber_RubyPath_B4F_EventScript_1638EC:: @ 81638EC
+MtEmber_RubyPath_B4F_EventScript_BrailleABC:: @ 81638EC
lockall
- braillemessage gUnknown_81A929F
+ braillemessage Braille_Text_ABC
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_1638F5:: @ 81638F5
+MtEmber_RubyPath_B4F_EventScript_BrailleGHI:: @ 81638F5
lockall
- braillemessage gUnknown_81A92A3
+ braillemessage Braille_Text_GHI
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_1638FE:: @ 81638FE
+MtEmber_RubyPath_B4F_EventScript_BrailleMNO:: @ 81638FE
lockall
- braillemessage gUnknown_81A92A7
+ braillemessage Braille_Text_MNO
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_163907:: @ 8163907
+MtEmber_RubyPath_B4F_EventScript_BrailleTUV:: @ 8163907
lockall
- braillemessage gUnknown_81A92AB
+ braillemessage Braille_Text_TUV
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_163910:: @ 8163910
+MtEmber_RubyPath_B4F_EventScript_BrailleDEF:: @ 8163910
lockall
- braillemessage gUnknown_81A92AF
+ braillemessage Braille_Text_DEF
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_163919:: @ 8163919
+MtEmber_RubyPath_B4F_EventScript_BrailleJKL:: @ 8163919
lockall
- braillemessage gUnknown_81A92B3
+ braillemessage Braille_Text_JKL
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_163922:: @ 8163922
+MtEmber_RubyPath_B4F_EventScript_BraillePQRS:: @ 8163922
lockall
- braillemessage gUnknown_81A92B7
+ braillemessage Braille_Text_PQRS
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_16392B:: @ 816392B
+MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ:: @ 816392B
lockall
- braillemessage gUnknown_81A92BC
+ braillemessage Braille_Text_WXYZ
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_163934:: @ 8163934
+MtEmber_RubyPath_B4F_EventScript_BraillePeriod:: @ 8163934
lockall
- braillemessage gUnknown_81A92C1
+ braillemessage Braille_Text_Period
waitbuttonpress
releaseall
end
-MtEmber_RubyPath_B4F_EventScript_16393D:: @ 816393D
+MtEmber_RubyPath_B4F_EventScript_BrailleComma:: @ 816393D
lockall
- braillemessage gUnknown_81A92C3
+ braillemessage Braille_Text_Comma
waitbuttonpress
releaseall
end
diff --git a/data/maps/MtEmber_RubyPath_B5F/map.json b/data/maps/MtEmber_RubyPath_B5F/map.json
index 43ad7e409..e6279a72b 100644
--- a/data/maps/MtEmber_RubyPath_B5F/map.json
+++ b/data/maps/MtEmber_RubyPath_B5F/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 0,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "MtEmber_RubyPath_B5F_EventScript_163C49",
+ "script": "MtEmber_RubyPath_B5F_EventScript_Ruby",
"flag": "FLAG_HIDE_RUBY"
}
],
@@ -43,7 +43,7 @@
"x": 7,
"y": 2,
"elevation": 0,
- "script": "MtEmber_RubyPath_B5F_EventScript_163BAB"
+ "script": "MtEmber_RubyPath_B5F_EventScript_BrailleMessage"
}
]
}
diff --git a/data/maps/MtEmber_RubyPath_B5F/scripts.inc b/data/maps/MtEmber_RubyPath_B5F/scripts.inc
index 53aec5282..b86cbd653 100644
--- a/data/maps/MtEmber_RubyPath_B5F/scripts.inc
+++ b/data/maps/MtEmber_RubyPath_B5F/scripts.inc
@@ -1,38 +1,17 @@
MtEmber_RubyPath_B5F_MapScripts:: @ 8163BAA
.byte 0
-MtEmber_RubyPath_B5F_EventScript_163BAB:: @ 8163BAB
+MtEmber_RubyPath_B5F_EventScript_BrailleMessage:: @ 8163BAB
lockall
setvar VAR_0x8005, 130
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A92C5
- getbraillestringwidth gUnknown_81A92C5
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A92D0
- getbraillestringwidth gUnknown_81A92D0
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A92DC
- getbraillestringwidth gUnknown_81A92DC
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A92E6
- getbraillestringwidth gUnknown_81A92E6
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A92F2
- getbraillestringwidth gUnknown_81A92F2
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A92FE
- getbraillestringwidth gUnknown_81A92FE
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A930A
- getbraillestringwidth gUnknown_81A930A
- call EventScript_BrailleCursorWaitButton
- braillemessage gUnknown_81A9316
+ braillemessage_wait Braille_Text_Everything
+ braillemessage_wait Braille_Text_HasMeaning1
+ braillemessage_wait Braille_Text_Existence
+ braillemessage_wait Braille_Text_HasMeaning2
+ braillemessage_wait Braille_Text_BeingAlive
+ braillemessage_wait Braille_Text_HasMeaning3
+ braillemessage_wait Braille_Text_HaveDreams
+ braillemessage Braille_Text_UsePower
waitbuttonpress
releaseall
end
diff --git a/data/maps/MtEmber_Summit/map.json b/data/maps/MtEmber_Summit/map.json
index 41401439d..438ad09d0 100644
--- a/data/maps/MtEmber_Summit/map.json
+++ b/data/maps/MtEmber_Summit/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 0,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "MtEmber_Summit_EventScript_163B33",
+ "script": "MtEmber_Summit_EventScript_Moltres",
"flag": "FLAG_HIDE_MOLTRES"
},
{
diff --git a/data/maps/MtEmber_Summit/scripts.inc b/data/maps/MtEmber_Summit/scripts.inc
index e7e926ec1..e68a30c85 100644
--- a/data/maps/MtEmber_Summit/scripts.inc
+++ b/data/maps/MtEmber_Summit/scripts.inc
@@ -4,10 +4,10 @@ MtEmber_Summit_MapScripts:: @ 8163AFC
.byte 0
MtEmber_Summit_OnResume:: @ 8163B07
- call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, EventScript_163B11
+ call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, MtEmber_Summit_EventScript_TryRemoveMoltres
end
-EventScript_163B11:: @ 8163B11
+MtEmber_Summit_EventScript_TryRemoveMoltres:: @ 8163B11
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne EventScript_Return
@@ -15,14 +15,14 @@ EventScript_163B11:: @ 8163B11
return
MtEmber_Summit_OnTransition:: @ 8163B25
- call_if_unset FLAG_FOUGHT_MOLTRES, EventScript_163B2F
+ call_if_unset FLAG_FOUGHT_MOLTRES, MtEmber_Summit_EventScript_ShowMoltres
end
-EventScript_163B2F:: @ 8163B2F
+MtEmber_Summit_EventScript_ShowMoltres:: @ 8163B2F
clearflag FLAG_HIDE_MOLTRES
return
-MtEmber_Summit_EventScript_163B33:: @ 8163B33
+MtEmber_Summit_EventScript_Moltres:: @ 8163B33
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
lock
@@ -30,7 +30,7 @@ MtEmber_Summit_EventScript_163B33:: @ 8163B33
setwildbattle SPECIES_MOLTRES, 50, ITEM_NONE
waitse
playmoncry SPECIES_MOLTRES, 2
- message Text_1A6448
+ message Text_Gyaoo
waitmessage
waitmoncry
delay 10
@@ -42,21 +42,21 @@ MtEmber_Summit_EventScript_163B33:: @ 8163B33
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_163B96
+ goto_if_eq MtEmber_Summit_EventScript_DefeatedMoltres
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_163B9F
+ goto_if_eq MtEmber_Summit_EventScript_RanFromMoltres
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_163B9F
+ goto_if_eq MtEmber_Summit_EventScript_RanFromMoltres
setflag FLAG_FOUGHT_MOLTRES
release
end
-EventScript_163B96:: @ 8163B96
+MtEmber_Summit_EventScript_DefeatedMoltres:: @ 8163B96
setflag FLAG_FOUGHT_MOLTRES
goto EventScript_RemoveStaticMon
end
-EventScript_163B9F:: @ 8163B9F
+MtEmber_Summit_EventScript_RanFromMoltres:: @ 8163B9F
setvar VAR_0x8004, SPECIES_MOLTRES
goto EventScript_MonFlewAway
end
diff --git a/data/maps/PowerPlant/map.json b/data/maps/PowerPlant/map.json
index 2114033a6..d7baadb41 100644
--- a/data/maps/PowerPlant/map.json
+++ b/data/maps/PowerPlant/map.json
@@ -88,7 +88,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "PowerPlant_EventScript_1637B8",
+ "script": "PowerPlant_EventScript_Zapdos",
"flag": "FLAG_HIDE_ZAPDOS"
},
{
@@ -101,7 +101,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "PowerPlant_EventScript_16388D",
+ "script": "PowerPlant_EventScript_Electrode2",
"flag": "FLAG_HIDE_POWER_PLANT_ELECTRODE_2"
},
{
@@ -114,7 +114,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "PowerPlant_EventScript_16382F",
+ "script": "PowerPlant_EventScript_Electrode1",
"flag": "FLAG_HIDE_POWER_PLANT_ELECTRODE_1"
}
],
diff --git a/data/maps/PowerPlant/scripts.inc b/data/maps/PowerPlant/scripts.inc
index f21a5fa26..964a74e02 100644
--- a/data/maps/PowerPlant/scripts.inc
+++ b/data/maps/PowerPlant/scripts.inc
@@ -4,10 +4,10 @@ PowerPlant_MapScripts:: @ 8163764
.byte 0
PowerPlant_OnResume:: @ 816376F
- call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, EventScript_163779
+ call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, PowerPlant_EventScript_TryRemoveStaticMon
end
-EventScript_163779:: @ 8163779
+PowerPlant_EventScript_TryRemoveStaticMon:: @ 8163779
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne EventScript_Return
@@ -16,24 +16,24 @@ EventScript_163779:: @ 8163779
PowerPlant_OnTransition:: @ 816378D
setworldmapflag FLAG_WORLD_MAP_POWER_PLANT
- call_if_unset FLAG_FOUGHT_ZAPDOS, EventScript_1637AC
- call_if_unset FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1, EventScript_1637B0
- call_if_unset FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2, EventScript_1637B4
+ call_if_unset FLAG_FOUGHT_ZAPDOS, PowerPlant_EventScript_ShowZapdos
+ call_if_unset FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1, PowerPlant_EventScript_ShowElectrode1
+ call_if_unset FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2, PowerPlant_EventScript_ShowElectrode2
end
-EventScript_1637AC:: @ 81637AC
+PowerPlant_EventScript_ShowZapdos:: @ 81637AC
clearflag FLAG_HIDE_ZAPDOS
return
-EventScript_1637B0:: @ 81637B0
+PowerPlant_EventScript_ShowElectrode1:: @ 81637B0
clearflag FLAG_HIDE_POWER_PLANT_ELECTRODE_1
return
-EventScript_1637B4:: @ 81637B4
+PowerPlant_EventScript_ShowElectrode2:: @ 81637B4
clearflag FLAG_HIDE_POWER_PLANT_ELECTRODE_2
return
-PowerPlant_EventScript_1637B8:: @ 81637B8
+PowerPlant_EventScript_Zapdos:: @ 81637B8
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
lock
@@ -41,7 +41,7 @@ PowerPlant_EventScript_1637B8:: @ 81637B8
setwildbattle SPECIES_ZAPDOS, 50, ITEM_NONE
waitse
playmoncry SPECIES_ZAPDOS, 2
- message Text_1A6448
+ message Text_Gyaoo
waitmessage
waitmoncry
delay 10
@@ -53,26 +53,26 @@ PowerPlant_EventScript_1637B8:: @ 81637B8
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_16381B
+ goto_if_eq PowerPlant_EventScript_DefeatedZapdos
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_163824
+ goto_if_eq PowerPlant_EventScript_RanFromZapdos
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_163824
+ goto_if_eq PowerPlant_EventScript_RanFromZapdos
setflag FLAG_FOUGHT_ZAPDOS
release
end
-EventScript_16381B:: @ 816381B
+PowerPlant_EventScript_DefeatedZapdos:: @ 816381B
setflag FLAG_FOUGHT_ZAPDOS
goto EventScript_RemoveStaticMon
end
-EventScript_163824:: @ 8163824
+PowerPlant_EventScript_RanFromZapdos:: @ 8163824
setvar VAR_0x8004, SPECIES_ZAPDOS
goto EventScript_MonFlewAway
end
-PowerPlant_EventScript_16382F:: @ 816382F
+PowerPlant_EventScript_Electrode1:: @ 816382F
goto_if_questlog EventScript_ReleaseEnd
lock
faceplayer
@@ -87,21 +87,21 @@ PowerPlant_EventScript_16382F:: @ 816382F
special sub_8112364
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_163884
+ goto_if_eq PowerPlant_EventScript_FoughtElectrode1
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_163884
+ goto_if_eq PowerPlant_EventScript_FoughtElectrode1
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_163884
+ goto_if_eq PowerPlant_EventScript_FoughtElectrode1
setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1
release
end
-EventScript_163884:: @ 8163884
+PowerPlant_EventScript_FoughtElectrode1:: @ 8163884
setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1
goto EventScript_RemoveStaticMon
end
-PowerPlant_EventScript_16388D:: @ 816388D
+PowerPlant_EventScript_Electrode2:: @ 816388D
goto_if_questlog EventScript_ReleaseEnd
lock
faceplayer
@@ -116,16 +116,16 @@ PowerPlant_EventScript_16388D:: @ 816388D
special sub_8112364
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_1638E2
+ goto_if_eq PowerPlant_EventScript_FoughtElectrode2
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_1638E2
+ goto_if_eq PowerPlant_EventScript_FoughtElectrode2
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_1638E2
+ goto_if_eq PowerPlant_EventScript_FoughtElectrode2
setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2
release
end
-EventScript_1638E2:: @ 81638E2
+PowerPlant_EventScript_FoughtElectrode2:: @ 81638E2
setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2
goto EventScript_RemoveStaticMon
end
diff --git a/data/maps/Route12/map.json b/data/maps/Route12/map.json
index e6fcf63fc..09e49160b 100644
--- a/data/maps/Route12/map.json
+++ b/data/maps/Route12/map.json
@@ -91,7 +91,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route12_EventScript_168014",
+ "script": "Route12_EventScript_Snorlax",
"flag": "FLAG_HIDE_ROUTE_12_SNORLAX"
},
{
@@ -249,14 +249,14 @@
"x": 17,
"y": 13,
"elevation": 0,
- "script": "Route12_EventScript_1680A3"
+ "script": "Route12_EventScript_RouteSign"
},
{
"type": "bg_event_type_0",
"x": 15,
"y": 69,
"elevation": 0,
- "script": "Route12_EventScript_1680AC"
+ "script": "Route12_EventScript_FishingSign"
},
{
"type": "hidden_item",
diff --git a/data/maps/Route12/scripts.inc b/data/maps/Route12/scripts.inc
index 8b80dccee..9fe6d2e39 100644
--- a/data/maps/Route12/scripts.inc
+++ b/data/maps/Route12/scripts.inc
@@ -3,22 +3,22 @@ Route12_MapScripts:: @ 8168000
.byte 0
Route12_OnResume:: @ 8168006
- call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, EventScript_168010
+ call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, Route12_EventScript_TryRemoveSnorlax
end
-EventScript_168010:: @ 8168010
+Route12_EventScript_TryRemoveSnorlax:: @ 8168010
removeobject VAR_LAST_TALKED
return
-Route12_EventScript_168014:: @ 8168014
+Route12_EventScript_Snorlax:: @ 8168014
lock
faceplayer
- goto_if_unset FLAG_GOT_POKE_FLUTE, EventScript_168099
+ goto_if_unset FLAG_GOT_POKE_FLUTE, Route12_EventScript_SnorlaxNoPokeFlute
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
- msgbox gUnknown_81853CC, MSGBOX_YESNO
+ msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_16808D
+ goto_if_eq Route12_EventScript_DontUsePokeFlute
call EventScript_AwakenSnorlax
setwildbattle SPECIES_SNORLAX, 30, ITEM_NONE
waitse
@@ -32,32 +32,32 @@ Route12_EventScript_168014:: @ 8168014
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_16808F
+ goto_if_eq Route12_EventScript_FoughtSnorlax
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_16808F
+ goto_if_eq Route12_EventScript_FoughtSnorlax
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_16808F
+ goto_if_eq Route12_EventScript_FoughtSnorlax
release
end
-EventScript_16808D:: @ 816808D
+Route12_EventScript_DontUsePokeFlute:: @ 816808D
release
end
-EventScript_16808F:: @ 816808F
- msgbox gUnknown_8185383
+Route12_EventScript_FoughtSnorlax:: @ 816808F
+ msgbox Text_SnorlaxReturnedToMountains
release
end
-EventScript_168099:: @ 8168099
- msgbox gUnknown_8185317
+Route12_EventScript_SnorlaxNoPokeFlute:: @ 8168099
+ msgbox Route12_Text_MonSprawledOutInSlumber
release
end
-Route12_EventScript_1680A3:: @ 81680A3
- msgbox gUnknown_8185797, MSGBOX_SIGN
+Route12_EventScript_RouteSign:: @ 81680A3
+ msgbox Route12_Text_RouteSign, MSGBOX_SIGN
end
-Route12_EventScript_1680AC:: @ 81680AC
- msgbox gUnknown_81857B3, MSGBOX_SIGN
+Route12_EventScript_FishingSign:: @ 81680AC
+ msgbox Route12_Text_SportfishingArea, MSGBOX_SIGN
end
diff --git a/data/maps/Route12/text.inc b/data/maps/Route12/text.inc
index bd23a00ae..06371bf5c 100644
--- a/data/maps/Route12/text.inc
+++ b/data/maps/Route12/text.inc
@@ -1,4 +1,4 @@
-gUnknown_8185317:: @ 8185317
+Route12_Text_MonSprawledOutInSlumber:: @ 8185317
.string "A POKéMON is sprawled out in\n"
.string "a deep and comfortable slumber.$"
@@ -6,12 +6,12 @@ Text_SnorlaxWokeUp:: @ 8185354
.string "SNORLAX woke up!\p"
.string "It attacked in a grumpy rage!$"
-gUnknown_8185383:: @ 8185383
+Text_SnorlaxReturnedToMountains:: @ 8185383
.string "SNORLAX calmed down.\n"
.string "It gave a huge yawn…\l"
.string "And returned to the mountains.$"
-gUnknown_81853CC:: @ 81853CC
+Text_WantToUsePokeFlute:: @ 81853CC
.string "Want to use the POKé FLUTE?$"
Text_PlayedPokeFlute:: @ 81853E8
@@ -102,10 +102,10 @@ Text_18574D:: @ 818574D
.string "I catch them all the time, sure.\n"
.string "But, boy are they wimpy.$"
-gUnknown_8185797:: @ 8185797
+Route12_Text_RouteSign:: @ 8185797
.string "ROUTE 12 \n"
.string "North to LAVENDER$"
-gUnknown_81857B3:: @ 81857B3
+Route12_Text_SportfishingArea:: @ 81857B3
.string "SPORTFISHING AREA$"
diff --git a/data/maps/Route16/map.json b/data/maps/Route16/map.json
index e51e64184..bd32e6900 100644
--- a/data/maps/Route16/map.json
+++ b/data/maps/Route16/map.json
@@ -151,7 +151,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route16_EventScript_168121",
+ "script": "Route16_EventScript_Snorlax",
"flag": "FLAG_HIDE_ROUTE_16_SNORLAX"
}
],
@@ -199,14 +199,14 @@
"x": 6,
"y": 17,
"elevation": 0,
- "script": "Route16_EventScript_1681B6"
+ "script": "Route16_EventScript_RouteSign"
},
{
"type": "bg_event_type_0",
"x": 33,
"y": 11,
"elevation": 0,
- "script": "Route16_EventScript_1681AD"
+ "script": "Route16_EventScript_CyclingRoadSign"
},
{
"type": "hidden_item",
diff --git a/data/maps/Route16/scripts.inc b/data/maps/Route16/scripts.inc
index ec6e7270b..1d7c6657c 100644
--- a/data/maps/Route16/scripts.inc
+++ b/data/maps/Route16/scripts.inc
@@ -5,39 +5,39 @@ Route16_MapScripts:: @ 81680E5
.byte 0
Route16_OnResume:: @ 81680F5
- call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, EventScript_1680FF
+ call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, Route16_EventScript_RemoveSnorlax
end
-EventScript_1680FF:: @ 81680FF
+Route16_EventScript_RemoveSnorlax:: @ 81680FF
removeobject VAR_LAST_TALKED
return
Route16_OnTransition:: @ 8168103
compare VAR_MAP_SCENE_ROUTE16, 1
- call_if_eq EventScript_16810F
+ call_if_eq Route16_EventScript_EnterCyclingRoad
end
-EventScript_16810F:: @ 816810F
+Route16_EventScript_EnterCyclingRoad:: @ 816810F
setflag FLAG_SYS_ON_CYCLING_ROAD
return
Route16_OnWarp:: @ 8168113
- map_script_2 VAR_MAP_SCENE_ROUTE16, 1, EventScript_16811D
+ map_script_2 VAR_MAP_SCENE_ROUTE16, 1, Route16_EventScript_WarpIntoCyclingRoad
.2byte 0
-EventScript_16811D:: @ 816811D
+Route16_EventScript_WarpIntoCyclingRoad:: @ 816811D
special Special_ForcePlayerOntoBike
end
-Route16_EventScript_168121:: @ 8168121
+Route16_EventScript_Snorlax:: @ 8168121
lock
faceplayer
- goto_if_unset FLAG_GOT_POKE_FLUTE, EventScript_1681A3
+ goto_if_unset FLAG_GOT_POKE_FLUTE, Route16_EventScript_SnorlaxNoPokeFlute
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
- msgbox gUnknown_81853CC, MSGBOX_YESNO
+ msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_168197
+ goto_if_eq Route16_EventScript_DontUsePokeFlute
call EventScript_AwakenSnorlax
setwildbattle SPECIES_SNORLAX, 30, ITEM_NONE
waitse
@@ -50,32 +50,32 @@ Route16_EventScript_168121:: @ 8168121
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_168199
+ goto_if_eq Route16_EventScript_FoughtSnorlax
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_168199
+ goto_if_eq Route16_EventScript_FoughtSnorlax
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_168199
+ goto_if_eq Route16_EventScript_FoughtSnorlax
release
end
-EventScript_168197:: @ 8168197
+Route16_EventScript_DontUsePokeFlute:: @ 8168197
release
end
-EventScript_168199:: @ 8168199
- msgbox gUnknown_8185383
+Route16_EventScript_FoughtSnorlax:: @ 8168199
+ msgbox Text_SnorlaxReturnedToMountains
release
end
-EventScript_1681A3:: @ 81681A3
- msgbox gUnknown_8186F3D
+Route16_EventScript_SnorlaxNoPokeFlute:: @ 81681A3
+ msgbox Route16_Text_MonSprawledOutInSlumber
release
end
-Route16_EventScript_1681AD:: @ 81681AD
- msgbox gUnknown_8186F7A, MSGBOX_SIGN
+Route16_EventScript_CyclingRoadSign:: @ 81681AD
+ msgbox Route16_Text_CyclingRoadSign, MSGBOX_SIGN
end
-Route16_EventScript_1681B6:: @ 81681B6
- msgbox gUnknown_8186F98, MSGBOX_SIGN
+Route16_EventScript_RouteSign:: @ 81681B6
+ msgbox Route16_Text_RouteSign, MSGBOX_SIGN
end
diff --git a/data/maps/Route16/text.inc b/data/maps/Route16/text.inc
index 1945cf510..289b80db9 100644
--- a/data/maps/Route16/text.inc
+++ b/data/maps/Route16/text.inc
@@ -99,15 +99,15 @@ Text_186EC7:: @ 8186EC7
.string "They're great for startling people.\n"
.string "And, they bite, too.$"
-gUnknown_8186F3D:: @ 8186F3D
+Route16_Text_MonSprawledOutInSlumber:: @ 8186F3D
.string "A POKéMON is sprawled out in\n"
.string "a deep and comfortable slumber.$"
-gUnknown_8186F7A:: @ 8186F7A
+Route16_Text_CyclingRoadSign:: @ 8186F7A
.string "Enjoy the slope!\n"
.string "CYCLING ROAD$"
-gUnknown_8186F98:: @ 8186F98
+Route16_Text_RouteSign:: @ 8186F98
.string "ROUTE 16\n"
.string "CELADON CITY - FUCHSIA CITY$"
diff --git a/data/maps/Route22_NorthEntrance/map.json b/data/maps/Route22_NorthEntrance/map.json
index 665477288..f8f624106 100644
--- a/data/maps/Route22_NorthEntrance/map.json
+++ b/data/maps/Route22_NorthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route22_NorthEntrance_EventScript_1704FC",
+ "script": "Route22_NorthEntrance_EventScript_BoulderBadgeGuard",
"flag": "0"
}
],
@@ -65,7 +65,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 0,
- "script": "Route22_NorthEntrance_EventScript_17050D"
+ "script": "Route22_NorthEntrance_EventScript_BoulderBadgeGuardTrigger"
}
],
"bg_events": []
diff --git a/data/maps/Route22_NorthEntrance/scripts.inc b/data/maps/Route22_NorthEntrance/scripts.inc
index afbfbb165..edd436b48 100644
--- a/data/maps/Route22_NorthEntrance/scripts.inc
+++ b/data/maps/Route22_NorthEntrance/scripts.inc
@@ -1,18 +1,18 @@
Route22_NorthEntrance_MapScripts:: @ 81704FB
.byte 0
-Route22_NorthEntrance_EventScript_1704FC:: @ 81704FC
+Route22_NorthEntrance_EventScript_BoulderBadgeGuard:: @ 81704FC
lock
faceplayer
setvar VAR_TEMP_1, 1
- getstdstring 0, 15
- goto EventScript_1A7803
+ getstdstring 0, STDSTRING_BOULDER_BADGE
+ goto Route22_NorthEntrance_EventScript_BadgeGuard
end
-Route22_NorthEntrance_EventScript_17050D:: @ 817050D
+Route22_NorthEntrance_EventScript_BoulderBadgeGuardTrigger:: @ 817050D
lockall
setvar VAR_TEMP_1, 1
setvar VAR_0x8009, 1
- getstdstring 0, 15
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_BOULDER_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json
index 073a4a17c..36bee2780 100644
--- a/data/maps/Route23/map.json
+++ b/data/maps/Route23/map.json
@@ -34,7 +34,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_16850C",
+ "script": "Route23_EventScript_CascadeBadgeGuard",
"flag": "0"
},
{
@@ -47,7 +47,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_16851D",
+ "script": "Route23_EventScript_ThunderBadgeGuard",
"flag": "0"
},
{
@@ -60,7 +60,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_16852E",
+ "script": "Route23_EventScript_RainbowBadgeGuard",
"flag": "0"
},
{
@@ -73,7 +73,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_16853F",
+ "script": "Route23_EventScript_SoulBadgeGuard",
"flag": "0"
},
{
@@ -86,7 +86,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_168550",
+ "script": "Route23_EventScript_MarshBadgeGuard",
"flag": "0"
},
{
@@ -99,7 +99,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_168561",
+ "script": "Route23_EventScript_VolcanoBadgeGuard",
"flag": "0"
},
{
@@ -112,7 +112,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route23_EventScript_168572",
+ "script": "Route23_EventScript_EarthBadgeGuard",
"flag": "0"
}
],
@@ -154,7 +154,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 1,
- "script": "Route23_EventScript_168583"
+ "script": "Route23_EventScript_CascadeBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -163,7 +163,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 2,
- "script": "Route23_EventScript_168598"
+ "script": "Route23_EventScript_ThunderBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -172,7 +172,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 3,
- "script": "Route23_EventScript_1685AD"
+ "script": "Route23_EventScript_RainbowBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -181,7 +181,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -190,7 +190,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -199,7 +199,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 6,
- "script": "Route23_EventScript_1685EC"
+ "script": "Route23_EventScript_VolcanoBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -208,7 +208,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -217,7 +217,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -226,7 +226,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -235,7 +235,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -244,7 +244,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -253,7 +253,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -262,7 +262,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -271,7 +271,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 7,
- "script": "Route23_EventScript_168601"
+ "script": "Route23_EventScript_EarthBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -280,7 +280,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 6,
- "script": "Route23_EventScript_1685EC"
+ "script": "Route23_EventScript_VolcanoBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -289,7 +289,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 6,
- "script": "Route23_EventScript_1685EC"
+ "script": "Route23_EventScript_VolcanoBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -298,7 +298,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 6,
- "script": "Route23_EventScript_1685EC"
+ "script": "Route23_EventScript_VolcanoBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -307,7 +307,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -316,7 +316,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -325,7 +325,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -334,7 +334,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -343,7 +343,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -352,7 +352,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 5,
- "script": "Route23_EventScript_1685D7"
+ "script": "Route23_EventScript_MarshBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -361,7 +361,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 2,
- "script": "Route23_EventScript_168598"
+ "script": "Route23_EventScript_ThunderBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -370,7 +370,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 2,
- "script": "Route23_EventScript_168598"
+ "script": "Route23_EventScript_ThunderBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -379,7 +379,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 2,
- "script": "Route23_EventScript_168598"
+ "script": "Route23_EventScript_ThunderBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -388,7 +388,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 3,
- "script": "Route23_EventScript_1685AD"
+ "script": "Route23_EventScript_RainbowBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -397,7 +397,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 3,
- "script": "Route23_EventScript_1685AD"
+ "script": "Route23_EventScript_RainbowBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -406,7 +406,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 3,
- "script": "Route23_EventScript_1685AD"
+ "script": "Route23_EventScript_RainbowBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -415,7 +415,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -424,7 +424,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -433,7 +433,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -442,7 +442,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -451,7 +451,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -460,7 +460,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -469,7 +469,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -478,7 +478,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -487,7 +487,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 4,
- "script": "Route23_EventScript_1685C2"
+ "script": "Route23_EventScript_SoulBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -496,7 +496,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 1,
- "script": "Route23_EventScript_168583"
+ "script": "Route23_EventScript_CascadeBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -505,7 +505,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 1,
- "script": "Route23_EventScript_168583"
+ "script": "Route23_EventScript_CascadeBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -514,7 +514,7 @@
"elevation": 3,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 1,
- "script": "Route23_EventScript_168583"
+ "script": "Route23_EventScript_CascadeBadgeGuardTrigger"
},
{
"type": "trigger",
@@ -523,7 +523,7 @@
"elevation": 0,
"var": "VAR_MAP_SCENE_ROUTE23",
"var_value": 1,
- "script": "Route23_EventScript_168583"
+ "script": "Route23_EventScript_CascadeBadgeGuardTrigger"
}
],
"bg_events": [
@@ -612,7 +612,7 @@
"x": 3,
"y": 31,
"elevation": 0,
- "script": "Route23_EventScript_168616"
+ "script": "Route23_EventScript_VictoryRoadGateSign"
}
]
}
diff --git a/data/maps/Route23/scripts.inc b/data/maps/Route23/scripts.inc
index b5c8da4f3..fd6c792f0 100644
--- a/data/maps/Route23/scripts.inc
+++ b/data/maps/Route23/scripts.inc
@@ -11,118 +11,118 @@ Route23_OnTransition:: @ 81684F1
setvar VAR_MAP_SCENE_VICTORY_ROAD_3F, 0
end
-Route23_EventScript_16850C:: @ 816850C
+Route23_EventScript_CascadeBadgeGuard:: @ 816850C
lock
faceplayer
setvar VAR_TEMP_1, 2
- getstdstring 0, 16
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_CASCADE_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_16851D:: @ 816851D
+Route23_EventScript_ThunderBadgeGuard:: @ 816851D
lock
faceplayer
setvar VAR_TEMP_1, 3
- getstdstring 0, 17
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_THUNDER_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_16852E:: @ 816852E
+Route23_EventScript_RainbowBadgeGuard:: @ 816852E
lock
faceplayer
setvar VAR_TEMP_1, 4
- getstdstring 0, 18
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_RAINBOW_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_16853F:: @ 816853F
+Route23_EventScript_SoulBadgeGuard:: @ 816853F
lock
faceplayer
setvar VAR_TEMP_1, 5
- getstdstring 0, 19
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_SOUL_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_168550:: @ 8168550
+Route23_EventScript_MarshBadgeGuard:: @ 8168550
lock
faceplayer
setvar VAR_TEMP_1, 6
- getstdstring 0, 20
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_MARSH_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_168561:: @ 8168561
+Route23_EventScript_VolcanoBadgeGuard:: @ 8168561
lock
faceplayer
setvar VAR_TEMP_1, 7
- getstdstring 0, 21
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_VOLCANO_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_168572:: @ 8168572
+Route23_EventScript_EarthBadgeGuard:: @ 8168572
lock
faceplayer
setvar VAR_TEMP_1, 8
- getstdstring 0, 22
- goto EventScript_1A786C
+ getstdstring 0, STDSTRING_EARTH_BADGE
+ goto Route23_EventScript_BadgeGuard
end
-Route23_EventScript_168583:: @ 8168583
+Route23_EventScript_CascadeBadgeGuardTrigger:: @ 8168583
lockall
setvar VAR_TEMP_1, 2
setvar VAR_0x8009, 1
- getstdstring 0, 16
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_CASCADE_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_168598:: @ 8168598
+Route23_EventScript_ThunderBadgeGuardTrigger:: @ 8168598
lockall
setvar VAR_TEMP_1, 3
setvar VAR_0x8009, 2
- getstdstring 0, 17
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_THUNDER_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_1685AD:: @ 81685AD
+Route23_EventScript_RainbowBadgeGuardTrigger:: @ 81685AD
lockall
setvar VAR_TEMP_1, 4
setvar VAR_0x8009, 3
- getstdstring 0, 18
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_RAINBOW_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_1685C2:: @ 81685C2
+Route23_EventScript_SoulBadgeGuardTrigger:: @ 81685C2
lockall
setvar VAR_TEMP_1, 5
setvar VAR_0x8009, 4
- getstdstring 0, 19
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_SOUL_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_1685D7:: @ 81685D7
+Route23_EventScript_MarshBadgeGuardTrigger:: @ 81685D7
lockall
setvar VAR_TEMP_1, 6
setvar VAR_0x8009, 5
- getstdstring 0, 20
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_MARSH_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_1685EC:: @ 81685EC
+Route23_EventScript_VolcanoBadgeGuardTrigger:: @ 81685EC
lockall
setvar VAR_TEMP_1, 7
setvar VAR_0x8009, 6
- getstdstring 0, 21
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_VOLCANO_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_168601:: @ 8168601
+Route23_EventScript_EarthBadgeGuardTrigger:: @ 8168601
lockall
setvar VAR_TEMP_1, 8
setvar VAR_0x8009, 7
- getstdstring 0, 22
- goto EventScript_1A796E
+ getstdstring 0, STDSTRING_EARTH_BADGE
+ goto Route23_EventScript_BadgeGuardTrigger
end
-Route23_EventScript_168616:: @ 8168616
- msgbox gUnknown_8188C19, MSGBOX_SIGN
+Route23_EventScript_VictoryRoadGateSign:: @ 8168616
+ msgbox Route23_Text_VictoryRoadGateSign, MSGBOX_SIGN
end
diff --git a/data/maps/Route23/text.inc b/data/maps/Route23/text.inc
index 6bdcaf47d..7429303cd 100644
--- a/data/maps/Route23/text.inc
+++ b/data/maps/Route23/text.inc
@@ -1,4 +1,4 @@
-gUnknown_8188C19:: @ 8188C19
+Route23_Text_VictoryRoadGateSign:: @ 8188C19
.string "VICTORY ROAD GATE -\n"
.string "POKéMON LEAGUE$"
diff --git a/data/maps/Route5_PokemonDayCare/map.json b/data/maps/Route5_PokemonDayCare/map.json
index 11c53b635..52cbb04ea 100644
--- a/data/maps/Route5_PokemonDayCare/map.json
+++ b/data/maps/Route5_PokemonDayCare/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "Route5_PokemonDayCare_EventScript_1BF398",
+ "script": "Route5_PokemonDayCare_EventScript_DaycareMan",
"flag": "0"
}
],
diff --git a/data/maps/Route5_PokemonDayCare/scripts.inc b/data/maps/Route5_PokemonDayCare/scripts.inc
index ebe6a8386..0f2ceb484 100644
--- a/data/maps/Route5_PokemonDayCare/scripts.inc
+++ b/data/maps/Route5_PokemonDayCare/scripts.inc
@@ -1,2 +1,4 @@
+@ Handled by data/scripts/day_care.inc
+
Route5_PokemonDayCare_MapScripts:: @ 816F8FF
.byte 0
diff --git a/data/maps/Route5_PokemonDayCare/text.inc b/data/maps/Route5_PokemonDayCare/text.inc
new file mode 100644
index 000000000..cada12ea5
--- /dev/null
+++ b/data/maps/Route5_PokemonDayCare/text.inc
@@ -0,0 +1,60 @@
+Route5_PokemonDayCare_Text_WantMeToRaiseMon:: @ 819DD66
+ .string "I run the DAY-CARE service.\p"
+ .string "Would you like me to raise one of\n"
+ .string "your POKéMON?$"
+
+Route5_PokemonDayCare_Text_ComeAgain:: @ 819DDB2
+ .string "Come again.$"
+
+Route5_PokemonDayCare_Text_WhichMonShouldIRaise:: @ 819DDBE
+ .string "Which POKéMON should I raise?$"
+
+Route5_PokemonDayCare_Text_ComeAnytimeYouLike:: @ 819DDDC
+ .string "Fine.\n"
+ .string "Come anytime you like.$"
+
+Route5_PokemonDayCare_Text_LookAfterMonForAWhile:: @ 819DDF9
+ .string "Fine, I'll look after your\n"
+ .string "{STR_VAR_1} for a while.$"
+
+Route5_PokemonDayCare_Text_ComeSeeMeInAWhile:: @ 819DE24
+ .string "Come see me in a while.$"
+
+Route5_PokemonDayCare_Text_MonNeedsToSpendMoreTime:: @ 819DE3C
+ .string "You're back already?\p"
+ .string "Your {STR_VAR_1} needs to spend\n"
+ .string "some more time with me.$"
+
+Route5_PokemonDayCare_Text_OweMeXForMonsReturn:: @ 819DE80
+ .string "You owe me ¥{STR_VAR_2} for the return\n"
+ .string "of this POKéMON.$"
+
+Route5_PokemonDayCare_Text_ThankYouHeresMon:: @ 819DEAF
+ .string "Thank you!\n"
+ .string "Here's your POKéMON.$"
+
+Route5_PokemonDayCare_Text_PlayerGotMonBack:: @ 819DECF
+ .string "{PLAYER} got {STR_VAR_1} back\n"
+ .string "from the DAY-CARE MAN.$"
+
+Route5_PokemonDayCare_Text_OnlyHaveOneMonWithYou:: @ 819DEF5
+ .string "Oh? You only have one POKéMON\n"
+ .string "with you.$"
+
+Route5_PokemonDayCare_Text_WhatWillYouBattleWith:: @ 819DF1D
+ .string "If you leave me that POKéMON,\n"
+ .string "what will you battle with?$"
+
+Route5_PokemonDayCare_Text_MonHasGrownByXLevels:: @ 819DF56
+ .string "Your {STR_VAR_1} has grown a lot.\n"
+ .string "Yes, quite a lot, I'd say.\p"
+ .string "Let me see…\n"
+ .string "By level, it's grown by {STR_VAR_2}.\p"
+ .string "Aren't I great?$"
+
+Route5_PokemonDayCare_Text_YouveGotNoRoomForIt:: @ 819DFC2
+ .string "You can't take this POKéMON back\n"
+ .string "if you've got no room for it.$"
+
+Route5_PokemonDayCare_Text_DontHaveEnoughMoney:: @ 819E001
+ .string "You don't have enough money.$"
diff --git a/data/maps/Route5_SouthEntrance/text.inc b/data/maps/Route5_SouthEntrance/text.inc
index 079423f34..749bcabe5 100644
--- a/data/maps/Route5_SouthEntrance/text.inc
+++ b/data/maps/Route5_SouthEntrance/text.inc
@@ -1,64 +1,3 @@
-Text_19DD66:: @ 819DD66
- .string "I run the DAY-CARE service.\p"
- .string "Would you like me to raise one of\n"
- .string "your POKéMON?$"
-
-Text_19DDB2:: @ 819DDB2
- .string "Come again.$"
-
-Text_19DDBE:: @ 819DDBE
- .string "Which POKéMON should I raise?$"
-
-Text_19DDDC:: @ 819DDDC
- .string "Fine.\n"
- .string "Come anytime you like.$"
-
-Text_19DDF9:: @ 819DDF9
- .string "Fine, I'll look after your\n"
- .string "{STR_VAR_1} for a while.$"
-
-Text_19DE24:: @ 819DE24
- .string "Come see me in a while.$"
-
-Text_19DE3C:: @ 819DE3C
- .string "You're back already?\p"
- .string "Your {STR_VAR_1} needs to spend\n"
- .string "some more time with me.$"
-
-Text_19DE80:: @ 819DE80
- .string "You owe me ¥{STR_VAR_2} for the return\n"
- .string "of this POKéMON.$"
-
-Text_19DEAF:: @ 819DEAF
- .string "Thank you!\n"
- .string "Here's your POKéMON.$"
-
-Text_19DECF:: @ 819DECF
- .string "{PLAYER} got {STR_VAR_1} back\n"
- .string "from the DAY-CARE MAN.$"
-
-Text_19DEF5:: @ 819DEF5
- .string "Oh? You only have one POKéMON\n"
- .string "with you.$"
-
-Text_19DF1D:: @ 819DF1D
- .string "If you leave me that POKéMON,\n"
- .string "what will you battle with?$"
-
-Text_19DF56:: @ 819DF56
- .string "Your {STR_VAR_1} has grown a lot.\n"
- .string "Yes, quite a lot, I'd say.\p"
- .string "Let me see…\n"
- .string "By level, it's grown by {STR_VAR_2}.\p"
- .string "Aren't I great?$"
-
-Text_19DFC2:: @ 819DFC2
- .string "You can't take this POKéMON back\n"
- .string "if you've got no room for it.$"
-
-Text_19E001:: @ 819E001
- .string "You don't have enough money.$"
-
Text_19E01E:: @ 819E01E
.string "きみの\n"
.string "みてみるかね?$"
diff --git a/data/maps/SafariZone_Building1/scripts.inc b/data/maps/SafariZone_Building1/scripts.inc
deleted file mode 100644
index 6aaeac452..000000000
--- a/data/maps/SafariZone_Building1/scripts.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-SafariZone_Building1_MapScripts:: @ 81623EB
- .byte 0
-
-SafariZone_Building1_EventScript_1623EC:: @ 81623EC
- msgbox gUnknown_8177A5A, MSGBOX_NPC
- end
-
-SafariZone_Building1_EventScript_1623F5:: @ 81623F5
- msgbox gUnknown_8177A82, MSGBOX_NPC
- end
diff --git a/data/maps/SafariZone_Building2/scripts.inc b/data/maps/SafariZone_Building2/scripts.inc
deleted file mode 100644
index ff870464a..000000000
--- a/data/maps/SafariZone_Building2/scripts.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SafariZone_Building2_MapScripts:: @ 81623FE
- .byte 0
-
-SafariZone_Building2_EventScript_1623FF:: @ 81623FF
- msgbox gUnknown_8177AE2, MSGBOX_NPC
- end
-
-SafariZone_Building2_EventScript_162408:: @ 8162408
- msgbox gUnknown_8177AAE, MSGBOX_NPC
- end
-
-SafariZone_Building2_EventScript_162411:: @ 8162411
- msgbox gUnknown_8177B16, MSGBOX_NPC
- end
diff --git a/data/maps/SafariZone_Building3/scripts.inc b/data/maps/SafariZone_Building3/scripts.inc
deleted file mode 100644
index 4b328da88..000000000
--- a/data/maps/SafariZone_Building3/scripts.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SafariZone_Building3_MapScripts:: @ 816241A
- .byte 0
-
-SafariZone_Building3_EventScript_16241B:: @ 816241B
- msgbox gUnknown_8177BAB, MSGBOX_NPC
- end
-
-SafariZone_Building3_EventScript_162424:: @ 8162424
- msgbox gUnknown_8177B38, MSGBOX_NPC
- end
-
-SafariZone_Building3_EventScript_16242D:: @ 816242D
- msgbox gUnknown_8177BEC, MSGBOX_NPC
- end
diff --git a/data/maps/SafariZone_Building4/scripts.inc b/data/maps/SafariZone_Building4/scripts.inc
deleted file mode 100644
index 1c3e52bd3..000000000
--- a/data/maps/SafariZone_Building4/scripts.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SafariZone_Building4_MapScripts:: @ 8162436
- .byte 0
-
-SafariZone_Building4_EventScript_162437:: @ 8162437
- msgbox gUnknown_8177D39, MSGBOX_NPC
- end
-
-SafariZone_Building4_EventScript_162440:: @ 8162440
- msgbox gUnknown_8177CEB, MSGBOX_NPC
- end
-
-SafariZone_Building4_EventScript_162449:: @ 8162449
- msgbox gUnknown_8177D8B, MSGBOX_NPC
- end
diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json
index f9bdc0137..4dfdda04d 100644
--- a/data/maps/SafariZone_Center/map.json
+++ b/data/maps/SafariZone_Center/map.json
@@ -116,7 +116,7 @@
"x": 29,
"y": 25,
"elevation": 0,
- "dest_map": "MAP_SAFARI_ZONE_BUILDING1",
+ "dest_map": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE",
"dest_warp_id": 1
}
],
@@ -127,14 +127,14 @@
"x": 30,
"y": 26,
"elevation": 0,
- "script": "SafariZone_Center_EventScript_162361"
+ "script": "SafariZone_Center_EventScript_RestHouseSign"
},
{
"type": "bg_event_type_0",
"x": 25,
"y": 27,
"elevation": 0,
- "script": "SafariZone_Center_EventScript_16236A"
+ "script": "SafariZone_Center_EventScript_TrainerTips"
},
{
"type": "hidden_item",
@@ -151,7 +151,7 @@
"x": 33,
"y": 20,
"elevation": 0,
- "script": "SafariZone_Center_EventScript_162373"
+ "script": "SafariZone_Center_EventScript_AreaSign"
}
]
}
diff --git a/data/maps/SafariZone_Center/scripts.inc b/data/maps/SafariZone_Center/scripts.inc
index 70599b024..21ca58264 100644
--- a/data/maps/SafariZone_Center/scripts.inc
+++ b/data/maps/SafariZone_Center/scripts.inc
@@ -6,14 +6,14 @@ SafariZone_Center_OnTransition:: @ 816235D
setworldmapflag FLAG_WORLD_MAP_SAFARI_ZONE_CENTER
end
-SafariZone_Center_EventScript_162361:: @ 8162361
- msgbox gUnknown_81777F2, MSGBOX_SIGN
+SafariZone_Center_EventScript_RestHouseSign:: @ 8162361
+ msgbox SafariZone_Center_Text_RestHouse, MSGBOX_SIGN
end
-SafariZone_Center_EventScript_16236A:: @ 816236A
- msgbox gUnknown_81777FD, MSGBOX_SIGN
+SafariZone_Center_EventScript_TrainerTips:: @ 816236A
+ msgbox SafariZone_Center_Text_PressStartToCheckTime, MSGBOX_SIGN
end
-SafariZone_Center_EventScript_162373:: @ 8162373
- msgbox gUnknown_817782F, MSGBOX_SIGN
+SafariZone_Center_EventScript_AreaSign:: @ 8162373
+ msgbox SafariZone_Center_Text_CenterArea, MSGBOX_SIGN
end
diff --git a/data/maps/SafariZone_Center/text.inc b/data/maps/SafariZone_Center/text.inc
index 7116a230a..a0d7a61de 100644
--- a/data/maps/SafariZone_Center/text.inc
+++ b/data/maps/SafariZone_Center/text.inc
@@ -1,11 +1,11 @@
-gUnknown_81777F2:: @ 81777F2
+SafariZone_Center_Text_RestHouse:: @ 81777F2
.string "REST HOUSE$"
-gUnknown_81777FD:: @ 81777FD
+SafariZone_Center_Text_PressStartToCheckTime:: @ 81777FD
.string "TRAINER TIPS\p"
.string "Press START to check\n"
.string "remaining time.$"
-gUnknown_817782F:: @ 817782F
+SafariZone_Center_Text_CenterArea:: @ 817782F
.string "CENTER AREA$"
diff --git a/data/maps/SafariZone_Building1/map.json b/data/maps/SafariZone_Center_RestHouse/map.json
index 78ea6e719..fc4cbf67c 100644
--- a/data/maps/SafariZone_Building1/map.json
+++ b/data/maps/SafariZone_Center_RestHouse/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_SAFARI_ZONE_BUILDING1",
- "name": "SafariZone_Building1",
- "layout": "LAYOUT_SAFARI_ZONE_BUILDING",
+ "id": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE",
+ "name": "SafariZone_Center_RestHouse",
+ "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE",
"music": "MUS_SHINKA",
"region_map_section": "MAPSEC_KANTO_SAFARI_ZONE",
"requires_flash": false,
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building1_EventScript_1623F5",
+ "script": "SafariZone_Center_RestHouse_EventScript_Scientist",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building1_EventScript_1623EC",
+ "script": "SafariZone_Center_RestHouse_EventScript_Sara",
"flag": "0"
}
],
diff --git a/data/maps/SafariZone_Center_RestHouse/scripts.inc b/data/maps/SafariZone_Center_RestHouse/scripts.inc
new file mode 100644
index 000000000..75e9cbe1d
--- /dev/null
+++ b/data/maps/SafariZone_Center_RestHouse/scripts.inc
@@ -0,0 +1,10 @@
+SafariZone_Center_RestHouse_MapScripts:: @ 81623EB
+ .byte 0
+
+SafariZone_Center_RestHouse_EventScript_Sara:: @ 81623EC
+ msgbox SafariZone_Center_Text_WhereDidErikGo, MSGBOX_NPC
+ end
+
+SafariZone_Center_RestHouse_EventScript_Scientist:: @ 81623F5
+ msgbox SafariZone_Center_Text_CatchingMonsAsGifts, MSGBOX_NPC
+ end
diff --git a/data/maps/SafariZone_Building1/text.inc b/data/maps/SafariZone_Center_RestHouse/text.inc
index a071cffeb..156457318 100644
--- a/data/maps/SafariZone_Building1/text.inc
+++ b/data/maps/SafariZone_Center_RestHouse/text.inc
@@ -1,8 +1,8 @@
-gUnknown_8177A5A:: @ 8177A5A
+SafariZone_Center_Text_WhereDidErikGo:: @ 8177A5A
.string "SARA: Where did my boyfriend,\n"
.string "ERIK, go?$"
-gUnknown_8177A82:: @ 8177A82
+SafariZone_Center_Text_CatchingMonsAsGifts:: @ 8177A82
.string "I'm catching POKéMON to take home\n"
.string "as gifts.$"
diff --git a/data/maps/SafariZone_East/map.json b/data/maps/SafariZone_East/map.json
index 50ac526b7..5ba1d08dc 100644
--- a/data/maps/SafariZone_East/map.json
+++ b/data/maps/SafariZone_East/map.json
@@ -113,7 +113,7 @@
"x": 40,
"y": 14,
"elevation": 0,
- "dest_map": "MAP_SAFARI_ZONE_BUILDING2",
+ "dest_map": "MAP_SAFARI_ZONE_EAST_REST_HOUSE",
"dest_warp_id": 1
}
],
@@ -124,21 +124,21 @@
"x": 18,
"y": 27,
"elevation": 0,
- "script": "SafariZone_East_EventScript_16238F"
+ "script": "SafariZone_East_EventScript_AreaSign"
},
{
"type": "bg_event_type_0",
"x": 43,
"y": 15,
"elevation": 0,
- "script": "SafariZone_East_EventScript_16237D"
+ "script": "SafariZone_East_EventScript_RestHouseSign"
},
{
"type": "bg_event_type_0",
"x": 17,
"y": 8,
"elevation": 0,
- "script": "SafariZone_East_EventScript_162386"
+ "script": "SafariZone_East_EventScript_TrainerTips"
}
]
}
diff --git a/data/maps/SafariZone_East/scripts.inc b/data/maps/SafariZone_East/scripts.inc
index e37be0d00..fb7c074d1 100644
--- a/data/maps/SafariZone_East/scripts.inc
+++ b/data/maps/SafariZone_East/scripts.inc
@@ -1,14 +1,14 @@
SafariZone_East_MapScripts:: @ 816237C
.byte 0
-SafariZone_East_EventScript_16237D:: @ 816237D
- msgbox gUnknown_817783B, MSGBOX_SIGN
+SafariZone_East_EventScript_RestHouseSign:: @ 816237D
+ msgbox SafariZone_East_Text_RestHouse, MSGBOX_SIGN
end
-SafariZone_East_EventScript_162386:: @ 8162386
- msgbox gUnknown_8177846, MSGBOX_SIGN
+SafariZone_East_EventScript_TrainerTips:: @ 8162386
+ msgbox SafariZone_East_Text_TimeDeclinesOnlyWhileYouWalk, MSGBOX_SIGN
end
-SafariZone_East_EventScript_16238F:: @ 816238F
- msgbox gUnknown_8177884, MSGBOX_SIGN
+SafariZone_East_EventScript_AreaSign:: @ 816238F
+ msgbox SafariZone_East_Text_AreaSign, MSGBOX_SIGN
end
diff --git a/data/maps/SafariZone_East/text.inc b/data/maps/SafariZone_East/text.inc
index 785cc3a5e..617399c7b 100644
--- a/data/maps/SafariZone_East/text.inc
+++ b/data/maps/SafariZone_East/text.inc
@@ -1,12 +1,12 @@
-gUnknown_817783B:: @ 817783B
+SafariZone_East_Text_RestHouse:: @ 817783B
.string "REST HOUSE$"
-gUnknown_8177846:: @ 8177846
+SafariZone_East_Text_TimeDeclinesOnlyWhileYouWalk:: @ 8177846
.string "TRAINER TIPS\p"
.string "The remaining time declines only\n"
.string "while you walk.$"
-gUnknown_8177884:: @ 8177884
+SafariZone_East_Text_AreaSign:: @ 8177884
.string "AREA 1\n"
.string "WEST: CENTER AREA$"
diff --git a/data/maps/SafariZone_Building2/map.json b/data/maps/SafariZone_East_RestHouse/map.json
index a8108ab01..d491771d0 100644
--- a/data/maps/SafariZone_Building2/map.json
+++ b/data/maps/SafariZone_East_RestHouse/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_SAFARI_ZONE_BUILDING2",
- "name": "SafariZone_Building2",
- "layout": "LAYOUT_SAFARI_ZONE_BUILDING",
+ "id": "MAP_SAFARI_ZONE_EAST_REST_HOUSE",
+ "name": "SafariZone_East_RestHouse",
+ "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE",
"music": "MUS_SHINKA",
"region_map_section": "MAPSEC_KANTO_SAFARI_ZONE",
"requires_flash": false,
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building2_EventScript_162408",
+ "script": "SafariZone_East_RestHouse_EventScript_Scientist",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building2_EventScript_1623FF",
+ "script": "SafariZone_East_RestHouse_EventScript_Rocker",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building2_EventScript_162411",
+ "script": "SafariZone_East_RestHouse_EventScript_BaldingMan",
"flag": "0"
}
],
diff --git a/data/maps/SafariZone_East_RestHouse/scripts.inc b/data/maps/SafariZone_East_RestHouse/scripts.inc
new file mode 100644
index 000000000..5d95c153f
--- /dev/null
+++ b/data/maps/SafariZone_East_RestHouse/scripts.inc
@@ -0,0 +1,14 @@
+SafariZone_East_RestHouse_MapScripts:: @ 81623FE
+ .byte 0
+
+SafariZone_East_RestHouse_EventScript_Rocker:: @ 81623FF
+ msgbox SafariZone_East_Text_CaughtChanseyAllWorthwhile, MSGBOX_NPC
+ end
+
+SafariZone_East_RestHouse_EventScript_Scientist:: @ 8162408
+ msgbox SafariZone_East_Text_HowManyDidYouCatch, MSGBOX_NPC
+ end
+
+SafariZone_East_RestHouse_EventScript_BaldingMan:: @ 8162411
+ msgbox SafariZone_East_Text_TiredFromAllTheFun, MSGBOX_NPC
+ end
diff --git a/data/maps/SafariZone_Building2/text.inc b/data/maps/SafariZone_East_RestHouse/text.inc
index b25194a31..ea914b754 100644
--- a/data/maps/SafariZone_Building2/text.inc
+++ b/data/maps/SafariZone_East_RestHouse/text.inc
@@ -1,12 +1,12 @@
-gUnknown_8177AAE:: @ 8177AAE
+SafariZone_East_Text_HowManyDidYouCatch:: @ 8177AAE
.string "How many did you catch?\n"
.string "I'm bushed from the effort!$"
-gUnknown_8177AE2:: @ 8177AE2
+SafariZone_East_Text_CaughtChanseyAllWorthwhile:: @ 8177AE2
.string "I caught a CHANSEY!\p"
.string "That makes this all worthwhile.$"
-gUnknown_8177B16:: @ 8177B16
+SafariZone_East_Text_TiredFromAllTheFun:: @ 8177B16
.string "Whew!\n"
.string "I'm tired from all the fun!$"
diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json
index 6d6d2c272..79b4a1d2f 100644
--- a/data/maps/SafariZone_North/map.json
+++ b/data/maps/SafariZone_North/map.json
@@ -142,7 +142,7 @@
"x": 43,
"y": 8,
"elevation": 0,
- "dest_map": "MAP_SAFARI_ZONE_BUILDING3",
+ "dest_map": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE",
"dest_warp_id": 1
}
],
@@ -153,35 +153,35 @@
"x": 13,
"y": 27,
"elevation": 0,
- "script": "SafariZone_North_EventScript_1623A2"
+ "script": "SafariZone_North_EventScript_TrainerTips1"
},
{
"type": "bg_event_type_0",
"x": 23,
"y": 31,
"elevation": 0,
- "script": "SafariZone_North_EventScript_1623AB"
+ "script": "SafariZone_North_EventScript_AreaSign"
},
{
"type": "bg_event_type_0",
"x": 29,
"y": 32,
"elevation": 0,
- "script": "SafariZone_North_EventScript_1623B4"
+ "script": "SafariZone_North_EventScript_TrainerTips2"
},
{
"type": "bg_event_type_0",
"x": 34,
"y": 28,
"elevation": 0,
- "script": "SafariZone_North_EventScript_1623BD"
+ "script": "SafariZone_North_EventScript_TrainerTips3"
},
{
"type": "bg_event_type_0",
"x": 44,
"y": 9,
"elevation": 0,
- "script": "SafariZone_North_EventScript_162399"
+ "script": "SafariZone_North_EventScript_RestHouseSign"
}
]
}
diff --git a/data/maps/SafariZone_North/scripts.inc b/data/maps/SafariZone_North/scripts.inc
index 65a8ad4dd..5acf50ae8 100644
--- a/data/maps/SafariZone_North/scripts.inc
+++ b/data/maps/SafariZone_North/scripts.inc
@@ -1,22 +1,22 @@
SafariZone_North_MapScripts:: @ 8162398
.byte 0
-SafariZone_North_EventScript_162399:: @ 8162399
- msgbox gUnknown_817789D, MSGBOX_SIGN
+SafariZone_North_EventScript_RestHouseSign:: @ 8162399
+ msgbox SafariZone_North_Text_RestHouse, MSGBOX_SIGN
end
-SafariZone_North_EventScript_1623A2:: @ 81623A2
- msgbox gUnknown_81778A8, MSGBOX_SIGN
+SafariZone_North_EventScript_TrainerTips1:: @ 81623A2
+ msgbox SafariZone_North_Text_SecretHouseStillAhead, MSGBOX_SIGN
end
-SafariZone_North_EventScript_1623AB:: @ 81623AB
- msgbox gUnknown_81778D6, MSGBOX_SIGN
+SafariZone_North_EventScript_AreaSign:: @ 81623AB
+ msgbox SafariZone_North_Text_Area2, MSGBOX_SIGN
end
-SafariZone_North_EventScript_1623B4:: @ 81623B4
- msgbox gUnknown_81778DD, MSGBOX_SIGN
+SafariZone_North_EventScript_TrainerTips2:: @ 81623B4
+ msgbox SafariZone_North_Text_ZigzagThroughTallGrass, MSGBOX_SIGN
end
-SafariZone_North_EventScript_1623BD:: @ 81623BD
- msgbox gUnknown_8177935, MSGBOX_SIGN
+SafariZone_North_EventScript_TrainerTips3:: @ 81623BD
+ msgbox SafariZone_North_Text_WinFreeHMFindSecretHouse, MSGBOX_SIGN
end
diff --git a/data/maps/SafariZone_North/text.inc b/data/maps/SafariZone_North/text.inc
index a7978dcfe..4d1bbca97 100644
--- a/data/maps/SafariZone_North/text.inc
+++ b/data/maps/SafariZone_North/text.inc
@@ -1,20 +1,20 @@
-gUnknown_817789D:: @ 817789D
+SafariZone_North_Text_RestHouse:: @ 817789D
.string "REST HOUSE$"
-gUnknown_81778A8:: @ 81778A8
+SafariZone_North_Text_SecretHouseStillAhead:: @ 81778A8
.string "TRAINER TIPS\p"
.string "The SECRET HOUSE is still ahead.$"
-gUnknown_81778D6:: @ 81778D6
+SafariZone_North_Text_Area2:: @ 81778D6
.string "AREA 2$"
-gUnknown_81778DD:: @ 81778DD
+SafariZone_North_Text_ZigzagThroughTallGrass:: @ 81778DD
.string "TRAINER TIPS\p"
.string "POKéMON hide in tall grass.\p"
.string "Zigzag through grassy areas to\n"
.string "flush them out.$"
-gUnknown_8177935:: @ 8177935
+SafariZone_North_Text_WinFreeHMFindSecretHouse:: @ 8177935
.string "TRAINER TIPS\p"
.string "Win a free HM for finding the\n"
.string "SECRET HOUSE.$"
diff --git a/data/maps/SafariZone_Building3/map.json b/data/maps/SafariZone_North_RestHouse/map.json
index 5693b1873..48fc58755 100644
--- a/data/maps/SafariZone_Building3/map.json
+++ b/data/maps/SafariZone_North_RestHouse/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_SAFARI_ZONE_BUILDING3",
- "name": "SafariZone_Building3",
- "layout": "LAYOUT_SAFARI_ZONE_BUILDING",
+ "id": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE",
+ "name": "SafariZone_North_RestHouse",
+ "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE",
"music": "MUS_SHINKA",
"region_map_section": "MAPSEC_KANTO_SAFARI_ZONE",
"requires_flash": false,
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building3_EventScript_16242D",
+ "script": "SafariZone_North_RestHouse_EventScript_Gentleman",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building3_EventScript_162424",
+ "script": "SafariZone_North_RestHouse_EventScript_Scientist",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building3_EventScript_16241B",
+ "script": "SafariZone_North_RestHouse_EventScript_Fisher",
"flag": "0"
},
{
@@ -62,7 +62,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building3_EventScript_1ACED3",
+ "script": "SafariZone_North_RestHouse_EventScript_BaldingMan",
"flag": "0"
}
],
diff --git a/data/maps/SafariZone_North_RestHouse/scripts.inc b/data/maps/SafariZone_North_RestHouse/scripts.inc
new file mode 100644
index 000000000..b7bcce8ed
--- /dev/null
+++ b/data/maps/SafariZone_North_RestHouse/scripts.inc
@@ -0,0 +1,14 @@
+SafariZone_North_RestHouse_MapScripts:: @ 816241A
+ .byte 0
+
+SafariZone_North_RestHouse_EventScript_Fisher:: @ 816241B
+ msgbox SafariZone_East_Text_PrizeInDeepestPartOfSafariZone, MSGBOX_NPC
+ end
+
+SafariZone_North_RestHouse_EventScript_Scientist:: @ 8162424
+ msgbox SafariZone_East_Text_KeepAnyItemFoundOnSafari, MSGBOX_NPC
+ end
+
+SafariZone_North_RestHouse_EventScript_Gentleman:: @ 816242D
+ msgbox SafariZone_East_Text_MyEeveeEvolvedIntoFlareon, MSGBOX_NPC
+ end
diff --git a/data/maps/SafariZone_Building3/text.inc b/data/maps/SafariZone_North_RestHouse/text.inc
index d7956d083..cf0188053 100644
--- a/data/maps/SafariZone_Building3/text.inc
+++ b/data/maps/SafariZone_North_RestHouse/text.inc
@@ -1,14 +1,14 @@
-gUnknown_8177B38:: @ 8177B38
+SafariZone_East_Text_KeepAnyItemFoundOnSafari:: @ 8177B38
.string "You can keep any item you find in\n"
.string "the SAFARI ZONE.\p"
.string "But, you'll run out of time if you\n"
.string "try for all of them at once.$"
-gUnknown_8177BAB:: @ 8177BAB
+SafariZone_East_Text_PrizeInDeepestPartOfSafariZone:: @ 8177BAB
.string "Go to the deepest part of the\n"
.string "SAFARI ZONE. You will win a prize!$"
-gUnknown_8177BEC:: @ 8177BEC
+SafariZone_East_Text_MyEeveeEvolvedIntoFlareon:: @ 8177BEC
.string "My EEVEE evolved into FLAREON.\p"
.string "But, a friend's EEVEE turned into a\n"
.string "VAPOREON. I wonder why?$"
diff --git a/data/maps/SafariZone_SecretHouse/map.json b/data/maps/SafariZone_SecretHouse/map.json
index 298188e1b..df02367a4 100644
--- a/data/maps/SafariZone_SecretHouse/map.json
+++ b/data/maps/SafariZone_SecretHouse/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_SecretHouse_EventScript_162453",
+ "script": "SafariZone_SecretHouse_EventScript_Attendant",
"flag": "0"
}
],
diff --git a/data/maps/SafariZone_SecretHouse/scripts.inc b/data/maps/SafariZone_SecretHouse/scripts.inc
index a61a99525..44884acd3 100644
--- a/data/maps/SafariZone_SecretHouse/scripts.inc
+++ b/data/maps/SafariZone_SecretHouse/scripts.inc
@@ -1,26 +1,26 @@
SafariZone_SecretHouse_MapScripts:: @ 8162452
.byte 0
-SafariZone_SecretHouse_EventScript_162453:: @ 8162453
+SafariZone_SecretHouse_EventScript_Attendant:: @ 8162453
lock
faceplayer
- goto_if_set FLAG_GOT_HM03, EventScript_1624A9
- msgbox gUnknown_8177DC1
+ goto_if_set FLAG_GOT_HM03, SafariZone_SecretHouse_EventScript_ExplainSurf
+ msgbox SafariZone_SecretHouse_Text_CongratsYouveWon
checkitemspace ITEM_HM03, 1
compare VAR_RESULT, FALSE
- goto_if_eq EventScript_16249F
- giveitem_msg gUnknown_8177E92, ITEM_HM03
- msgbox gUnknown_8177EB7
+ goto_if_eq SafariZone_SecretHouse_EventScript_NoRoomForHM03
+ giveitem_msg SafariZone_SecretHouse_Text_ReceivedHM03FromAttendant, ITEM_HM03
+ msgbox SafariZone_SecretHouse_Text_ExplainSurf
setflag FLAG_GOT_HM03
release
end
-EventScript_16249F:: @ 816249F
- msgbox gUnknown_8177F72
+SafariZone_SecretHouse_EventScript_NoRoomForHM03:: @ 816249F
+ msgbox SafariZone_SecretHouse_Text_DontHaveRoomForPrize
release
end
-EventScript_1624A9:: @ 81624A9
- msgbox gUnknown_8177EB7
+SafariZone_SecretHouse_EventScript_ExplainSurf:: @ 81624A9
+ msgbox SafariZone_SecretHouse_Text_ExplainSurf
release
end
diff --git a/data/maps/SafariZone_SecretHouse/text.inc b/data/maps/SafariZone_SecretHouse/text.inc
index 04ea02125..bfa505689 100644
--- a/data/maps/SafariZone_SecretHouse/text.inc
+++ b/data/maps/SafariZone_SecretHouse/text.inc
@@ -1,4 +1,4 @@
-gUnknown_8177DC1:: @ 8177DC1
+SafariZone_SecretHouse_Text_CongratsYouveWon:: @ 8177DC1
.string "Ah! Finally!\p"
.string "You're the first person to reach\n"
.string "the SECRET HOUSE!\p"
@@ -9,11 +9,11 @@ gUnknown_8177DC1:: @ 8177DC1
.string "Congratulations!\n"
.string "You have won!$"
-gUnknown_8177E92:: @ 8177E92
+SafariZone_SecretHouse_Text_ReceivedHM03FromAttendant:: @ 8177E92
.string "{PLAYER} received HM03\n"
.string "from the attendant!$"
-gUnknown_8177EB7:: @ 8177EB7
+SafariZone_SecretHouse_Text_ExplainSurf:: @ 8177EB7
.string "HM03 is SURF.\p"
.string "POKéMON will be able to ferry you\n"
.string "across water using it.\p"
@@ -22,7 +22,7 @@ gUnknown_8177EB7:: @ 8177EB7
.string "You're super lucky for winning this\n"
.string "fabulous prize!$"
-gUnknown_8177F72:: @ 8177F72
+SafariZone_SecretHouse_Text_DontHaveRoomForPrize:: @ 8177F72
.string "You don't have room for this\n"
.string "fabulous prize!$"
diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json
index cf4eee158..cee77b0b3 100644
--- a/data/maps/SafariZone_West/map.json
+++ b/data/maps/SafariZone_West/map.json
@@ -141,7 +141,7 @@
"x": 19,
"y": 18,
"elevation": 0,
- "dest_map": "MAP_SAFARI_ZONE_BUILDING4",
+ "dest_map": "MAP_SAFARI_ZONE_WEST_REST_HOUSE",
"dest_warp_id": 1
}
],
@@ -152,28 +152,28 @@
"x": 27,
"y": 9,
"elevation": 0,
- "script": "SafariZone_West_EventScript_1623D0"
+ "script": "SafariZone_West_EventScript_LostTeethNotice"
},
{
"type": "bg_event_type_0",
"x": 36,
"y": 10,
"elevation": 0,
- "script": "SafariZone_West_EventScript_1623D9"
+ "script": "SafariZone_West_EventScript_TrainerTips"
},
{
"type": "bg_event_type_0",
"x": 35,
"y": 26,
"elevation": 0,
- "script": "SafariZone_West_EventScript_1623E2"
+ "script": "SafariZone_West_EventScript_AreaSign"
},
{
"type": "bg_event_type_0",
"x": 22,
"y": 19,
"elevation": 0,
- "script": "SafariZone_West_EventScript_1623C7"
+ "script": "SafariZone_West_EventScript_RestHouseSign"
},
{
"type": "hidden_item",
diff --git a/data/maps/SafariZone_West/scripts.inc b/data/maps/SafariZone_West/scripts.inc
index 3d6e0bbf7..aeff53ed8 100644
--- a/data/maps/SafariZone_West/scripts.inc
+++ b/data/maps/SafariZone_West/scripts.inc
@@ -1,18 +1,18 @@
SafariZone_West_MapScripts:: @ 81623C6
.byte 0
-SafariZone_West_EventScript_1623C7:: @ 81623C7
- msgbox gUnknown_817796E, MSGBOX_SIGN
+SafariZone_West_EventScript_RestHouseSign:: @ 81623C7
+ msgbox SafariZone_West_Text_RestHouse, MSGBOX_SIGN
end
-SafariZone_West_EventScript_1623D0:: @ 81623D0
- msgbox gUnknown_8177979, MSGBOX_SIGN
+SafariZone_West_EventScript_LostTeethNotice:: @ 81623D0
+ msgbox SafariZone_West_Text_PleaseFindWardensLostTeeth, MSGBOX_SIGN
end
-SafariZone_West_EventScript_1623D9:: @ 81623D9
- msgbox gUnknown_81779F8, MSGBOX_SIGN
+SafariZone_West_EventScript_TrainerTips:: @ 81623D9
+ msgbox SafariZone_West_Text_SearchForSecretHouse, MSGBOX_SIGN
end
-SafariZone_West_EventScript_1623E2:: @ 81623E2
- msgbox gUnknown_8177A41, MSGBOX_SIGN
+SafariZone_West_EventScript_AreaSign:: @ 81623E2
+ msgbox SafariZone_West_Text_AreaSign, MSGBOX_SIGN
end
diff --git a/data/maps/SafariZone_West/text.inc b/data/maps/SafariZone_West/text.inc
index 14a097ada..c158c3467 100644
--- a/data/maps/SafariZone_West/text.inc
+++ b/data/maps/SafariZone_West/text.inc
@@ -1,7 +1,7 @@
-gUnknown_817796E:: @ 817796E
+SafariZone_West_Text_RestHouse:: @ 817796E
.string "REST HOUSE$"
-gUnknown_8177979:: @ 8177979
+SafariZone_West_Text_PleaseFindWardensLostTeeth:: @ 8177979
.string "REQUEST NOTICE\p"
.string "Please find the SAFARI WARDEN's\n"
.string "lost GOLD TEETH.\l"
@@ -9,12 +9,12 @@ gUnknown_8177979:: @ 8177979
.string "Reward offered!\n"
.string "Contact: WARDEN$"
-gUnknown_81779F8:: @ 81779F8
+SafariZone_West_Text_SearchForSecretHouse:: @ 81779F8
.string "TRAINER TIPS\p"
.string "Zone Exploration Campaign!\n"
.string "The Search for the SECRET HOUSE!$"
-gUnknown_8177A41:: @ 8177A41
+SafariZone_West_Text_AreaSign:: @ 8177A41
.string "AREA 3\n"
.string "EAST: CENTER AREA$"
diff --git a/data/maps/SafariZone_Building4/map.json b/data/maps/SafariZone_West_RestHouse/map.json
index 6d994ad60..a387fe992 100644
--- a/data/maps/SafariZone_Building4/map.json
+++ b/data/maps/SafariZone_West_RestHouse/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_SAFARI_ZONE_BUILDING4",
- "name": "SafariZone_Building4",
- "layout": "LAYOUT_SAFARI_ZONE_BUILDING",
+ "id": "MAP_SAFARI_ZONE_WEST_REST_HOUSE",
+ "name": "SafariZone_West_RestHouse",
+ "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE",
"music": "MUS_SHINKA",
"region_map_section": "MAPSEC_KANTO_SAFARI_ZONE",
"requires_flash": false,
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building4_EventScript_162440",
+ "script": "SafariZone_West_RestHouse_EventScript_Scientist",
"flag": "0"
},
{
@@ -36,7 +36,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building4_EventScript_162437",
+ "script": "SafariZone_West_RestHouse_EventScript_Man",
"flag": "0"
},
{
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SafariZone_Building4_EventScript_162449",
+ "script": "SafariZone_West_RestHouse_EventScript_CooltrainerF",
"flag": "0"
}
],
diff --git a/data/maps/SafariZone_West_RestHouse/scripts.inc b/data/maps/SafariZone_West_RestHouse/scripts.inc
new file mode 100644
index 000000000..cc3b70df4
--- /dev/null
+++ b/data/maps/SafariZone_West_RestHouse/scripts.inc
@@ -0,0 +1,14 @@
+SafariZone_West_RestHouse_MapScripts:: @ 8162436
+ .byte 0
+
+SafariZone_West_RestHouse_EventScript_Man:: @ 8162437
+ msgbox SafariZone_West_Text_BaitMakesMonStickAround, MSGBOX_NPC
+ end
+
+SafariZone_West_RestHouse_EventScript_Scientist:: @ 8162440
+ msgbox SafariZone_West_Text_RocksMakeMonRunButEasierCatch, MSGBOX_NPC
+ end
+
+SafariZone_West_RestHouse_EventScript_CooltrainerF:: @ 8162449
+ msgbox SafariZone_West_Text_HikedLotsDidntSeeMonIWanted, MSGBOX_NPC
+ end
diff --git a/data/maps/SafariZone_Building4/text.inc b/data/maps/SafariZone_West_RestHouse/text.inc
index 66bf06ba2..c6ef1ae59 100644
--- a/data/maps/SafariZone_Building4/text.inc
+++ b/data/maps/SafariZone_West_RestHouse/text.inc
@@ -1,4 +1,4 @@
-Text_177C47:: @ 8177C47
+SafariZone_West_Text_KogaPatrolsSafariEverySoOften:: @ 8177C47
.string "The SAFARI ZONE's huge, wouldn't\n"
.string "you say?\p"
.string "FUCHSIA's GYM LEADER, KOGA, \n"
@@ -6,17 +6,17 @@ Text_177C47:: @ 8177C47
.string "Thanks to him, we can play here\n"
.string "knowing that we're safe.$"
-gUnknown_8177CEB:: @ 8177CEB
+SafariZone_West_Text_RocksMakeMonRunButEasierCatch:: @ 8177CEB
.string "Tossing ROCKS at POKéMON might\n"
.string "make them run, but they'll be\l"
.string "easier to catch.$"
-gUnknown_8177D39:: @ 8177D39
+SafariZone_West_Text_BaitMakesMonStickAround:: @ 8177D39
.string "Using BAIT will make POKéMON more\n"
.string "likely to stick around if they get\l"
.string "busy eating.$"
-gUnknown_8177D8B:: @ 8177D8B
+SafariZone_West_Text_HikedLotsDidntSeeMonIWanted:: @ 8177D8B
.string "I hiked a lot, but I didn't see any\n"
.string "POKéMON I wanted.$"
diff --git a/data/maps/SeafoamIslands_B3F/scripts.inc b/data/maps/SeafoamIslands_B3F/scripts.inc
index 13c6b606a..d45cc05e9 100644
--- a/data/maps/SeafoamIslands_B3F/scripts.inc
+++ b/data/maps/SeafoamIslands_B3F/scripts.inc
@@ -1,71 +1,73 @@
+.equ NUM_BOULDERS_PRESENT, VAR_TEMP_2
+
SeafoamIslands_B3F_MapScripts:: @ 8162F4F
map_script MAP_SCRIPT_ON_TRANSITION, SeafoamIslands_B3F_OnTransition
map_script MAP_SCRIPT_ON_FRAME_TABLE, SeafoamIslands_B3F_OnFrame
.byte 0
SeafoamIslands_B3F_OnTransition:: @ 8162F5A
- call_if_unset FLAG_STOPPED_SEAFOAM_B3F_CURRENT, EventScript_162F6D
- call_if_set FLAG_STOPPED_SEAFOAM_B3F_CURRENT, EventScript_162F94
+ call_if_unset FLAG_STOPPED_SEAFOAM_B3F_CURRENT, SeafoamIslands_B3F_EventScript_CheckStoppedCurrent
+ call_if_set FLAG_STOPPED_SEAFOAM_B3F_CURRENT, SeafoamIslands_B3F_EventScript_SetNoCurrentLayout
end
-EventScript_162F6D:: @ 8162F6D
- setvar VAR_TEMP_2, 0
- call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_1, EventScript_162FF0
- call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_2, EventScript_162FF0
- compare VAR_TEMP_2, 2
- call_if_eq EventScript_162F90
+SeafoamIslands_B3F_EventScript_CheckStoppedCurrent:: @ 8162F6D
+ setvar NUM_BOULDERS_PRESENT, 0
+ call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_1, SeafoamIslands_B3F_EventScript_AddBoulderPresent
+ call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_2, SeafoamIslands_B3F_EventScript_AddBoulderPresent
+ compare NUM_BOULDERS_PRESENT, 2
+ call_if_eq SeafoamIslands_B3F_EventScript_StoppedCurrent
return
-EventScript_162F90:: @ 8162F90
+SeafoamIslands_B3F_EventScript_StoppedCurrent:: @ 8162F90
setflag FLAG_STOPPED_SEAFOAM_B3F_CURRENT
return
-EventScript_162F94:: @ 8162F94
- setmaplayoutindex LAYOUT_UNUSED_LAYOUT_833B6EC
+SeafoamIslands_B3F_EventScript_SetNoCurrentLayout:: @ 8162F94
+ setmaplayoutindex LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED
return
SeafoamIslands_B3F_OnFrame:: @ 8162F98
- map_script_2 VAR_TEMP_1, 1, EventScript_162FA2
+ map_script_2 VAR_TEMP_1, 1, SeafoamIslands_B3F_EventScript_EnterByFalling
.2byte 0
-EventScript_162FA2:: @ 8162FA2
+SeafoamIslands_B3F_EventScript_EnterByFalling:: @ 8162FA2
lockall
- setvar VAR_TEMP_2, 0
- call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_1, EventScript_162FF0
- call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_2, EventScript_162FF0
- compare VAR_TEMP_2, 2
- goto_if_eq EventScript_16300C
+ setvar NUM_BOULDERS_PRESENT, 0
+ call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_1, SeafoamIslands_B3F_EventScript_AddBoulderPresent
+ call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_2, SeafoamIslands_B3F_EventScript_AddBoulderPresent
+ compare NUM_BOULDERS_PRESENT, 2
+ goto_if_eq SeafoamIslands_B3F_EventScript_CurrentBlocked
getplayerxy VAR_0x8008, VAR_0x8009
compare VAR_0x8008, 24
- call_if_lt EventScript_162FF6
+ call_if_lt SeafoamIslands_B3F_EventScript_RideCurrentFar
compare VAR_0x8008, 24
- call_if_ge EventScript_163001
+ call_if_ge SeafoamIslands_B3F_EventScript_RideCurrentClose
setvar VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1
warp MAP_SEAFOAM_ISLANDS_B4F, 255, 27, 21
waitstate
releaseall
end
-EventScript_162FF0:: @ 8162FF0
- addvar VAR_TEMP_2, 1
+SeafoamIslands_B3F_EventScript_AddBoulderPresent:: @ 8162FF0
+ addvar NUM_BOULDERS_PRESENT, 1
return
-EventScript_162FF6:: @ 8162FF6
- applymovement OBJ_EVENT_ID_PLAYER, Movement_163013
+SeafoamIslands_B3F_EventScript_RideCurrentFar:: @ 8162FF6
+ applymovement OBJ_EVENT_ID_PLAYER, SeafoamIslands_B3F_Movement_RideCurrentFar
waitmovement 0
return
-EventScript_163001:: @ 8163001
- applymovement OBJ_EVENT_ID_PLAYER, Movement_163021
+SeafoamIslands_B3F_EventScript_RideCurrentClose:: @ 8163001
+ applymovement OBJ_EVENT_ID_PLAYER, SeafoamIslands_B3F_Movement_RideCurrentClose
waitmovement 0
return
-EventScript_16300C:: @ 816300C
+SeafoamIslands_B3F_EventScript_CurrentBlocked:: @ 816300C
setvar VAR_TEMP_1, 0
releaseall
end
-Movement_163013:: @ 8163013
+SeafoamIslands_B3F_Movement_RideCurrentFar:: @ 8163013
walk_fast_down
walk_fast_down
walk_fast_down
@@ -81,7 +83,7 @@ Movement_163013:: @ 8163013
walk_fast_down
step_end
-Movement_163021:: @ 8163021
+SeafoamIslands_B3F_Movement_RideCurrentClose:: @ 8163021
walk_fast_down
walk_fast_down
walk_fast_down
diff --git a/data/maps/SeafoamIslands_B4F/map.json b/data/maps/SeafoamIslands_B4F/map.json
index 5fc46fdee..22a8851ac 100644
--- a/data/maps/SeafoamIslands_B4F/map.json
+++ b/data/maps/SeafoamIslands_B4F/map.json
@@ -49,7 +49,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "SeafoamIslands_B4F_EventScript_1631AC",
+ "script": "SeafoamIslands_B4F_EventScript_Articuno",
"flag": "FLAG_HIDE_ARTICUNO"
},
{
@@ -104,7 +104,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F",
"var_value": 0,
- "script": "SeafoamIslands_B4F_EventScript_16319D"
+ "script": "SeafoamIslands_B4F_EventScript_UpwardCurrent"
},
{
"type": "trigger",
@@ -113,7 +113,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F",
"var_value": 0,
- "script": "SeafoamIslands_B4F_EventScript_16319D"
+ "script": "SeafoamIslands_B4F_EventScript_UpwardCurrent"
},
{
"type": "trigger",
@@ -122,7 +122,7 @@
"elevation": 1,
"var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F",
"var_value": 0,
- "script": "SeafoamIslands_B4F_EventScript_16319D"
+ "script": "SeafoamIslands_B4F_EventScript_UpwardCurrent"
}
],
"bg_events": [
@@ -141,14 +141,14 @@
"x": 30,
"y": 2,
"elevation": 0,
- "script": "SeafoamIslands_B4F_EventScript_16322C"
+ "script": "SeafoamIslands_B4F_EventScript_FastCurrentSign"
},
{
"type": "bg_event_type_0",
"x": 14,
"y": 18,
"elevation": 0,
- "script": "SeafoamIslands_B4F_EventScript_163223"
+ "script": "SeafoamIslands_B4F_EventScript_BoulderHintSign"
}
]
}
diff --git a/data/maps/SeafoamIslands_B4F/scripts.inc b/data/maps/SeafoamIslands_B4F/scripts.inc
index 1882fb3a3..c7343fcb6 100644
--- a/data/maps/SeafoamIslands_B4F/scripts.inc
+++ b/data/maps/SeafoamIslands_B4F/scripts.inc
@@ -1,3 +1,5 @@
+.equ NUM_BOULDERS_PRESENT, VAR_TEMP_2
+
SeafoamIslands_B4F_MapScripts:: @ 816302E
map_script MAP_SCRIPT_ON_TRANSITION, SeafoamIslands_B4F_OnTransition
map_script MAP_SCRIPT_ON_RESUME, SeafoamIslands_B4F_OnResume
@@ -7,10 +9,10 @@ SeafoamIslands_B4F_MapScripts:: @ 816302E
.byte 0
SeafoamIslands_B4F_OnResume:: @ 8163048
- call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, EventScript_163052
+ call_if_set FLAG_SYS_SPECIAL_WILD_BATTLE, SeafoamIslands_B4F_EventScript_TryRemoveArticuno
end
-EventScript_163052:: @ 8163052
+SeafoamIslands_B4F_EventScript_TryRemoveArticuno:: @ 8163052
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne EventScript_Return
@@ -18,109 +20,111 @@ EventScript_163052:: @ 8163052
return
SeafoamIslands_B4F_OnTransition:: @ 8163066
- call_if_unset FLAG_FOUGHT_ARTICUNO, EventScript_1630AD
- call_if_unset FLAG_STOPPED_SEAFOAM_B4F_CURRENT, EventScript_163082
- call_if_set FLAG_STOPPED_SEAFOAM_B4F_CURRENT, EventScript_1630A9
+ call_if_unset FLAG_FOUGHT_ARTICUNO, SeafoamIslands_B4F_EventScript_ShowArticuno
+ call_if_unset FLAG_STOPPED_SEAFOAM_B4F_CURRENT, SeafoamIslands_B4F_EventScript_CheckStoppedCurrent
+ call_if_set FLAG_STOPPED_SEAFOAM_B4F_CURRENT, SeafoamIslands_B4F_EventScript_SetNoCurrentLayout
end
-EventScript_163082:: @ 8163082
- setvar VAR_TEMP_2, 0
- call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, EventScript_163169
- call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, EventScript_163169
- compare VAR_TEMP_2, 2
- call_if_eq EventScript_1630A5
+SeafoamIslands_B4F_EventScript_CheckStoppedCurrent:: @ 8163082
+ setvar NUM_BOULDERS_PRESENT, 0
+ call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, SeafoamIslands_B4F_EventScript_AddBoulderPresent
+ call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, SeafoamIslands_B4F_EventScript_AddBoulderPresent
+ compare NUM_BOULDERS_PRESENT, 2
+ call_if_eq SeafoamIslands_B4F_EventScript_StoppedCurrent
return
-EventScript_1630A5:: @ 81630A5
+SeafoamIslands_B4F_EventScript_StoppedCurrent:: @ 81630A5
setflag FLAG_STOPPED_SEAFOAM_B4F_CURRENT
return
-EventScript_1630A9:: @ 81630A9
- setmaplayoutindex LAYOUT_UNUSED_LAYOUT_833BE30
+SeafoamIslands_B4F_EventScript_SetNoCurrentLayout:: @ 81630A9
+ setmaplayoutindex LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED
return
-EventScript_1630AD:: @ 81630AD
+SeafoamIslands_B4F_EventScript_ShowArticuno:: @ 81630AD
clearflag FLAG_HIDE_ARTICUNO
return
SeafoamIslands_B4F_OnLoad:: @ 81630B1
- setvar VAR_TEMP_2, 0
- call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, EventScript_163169
- call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, EventScript_163169
- compare VAR_TEMP_2, 2
- goto_if_eq EventScript_1630D4
+ setvar NUM_BOULDERS_PRESENT, 0
+ call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, SeafoamIslands_B4F_EventScript_AddBoulderPresent
+ call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, SeafoamIslands_B4F_EventScript_AddBoulderPresent
+ compare NUM_BOULDERS_PRESENT, 2
+ goto_if_eq SeafoamIslands_B4F_EventScript_SetCalmWaterNearStairs
end
-EventScript_1630D4:: @ 81630D4
- setmetatile 12, 14, 299, 0
- setmetatile 13, 14, 299, 0
+SeafoamIslands_B4F_EventScript_SetCalmWaterNearStairs:: @ 81630D4
+ setmetatile 12, 14, METATILE_General_CalmWater, 0
+ setmetatile 13, 14, METATILE_General_CalmWater, 0
end
SeafoamIslands_B4F_OnWarp:: @ 81630E7
- map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, EventScript_1630F1
+ map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, SeafoamIslands_B4F_EventScript_WarpInOnCurrent
.2byte 0
-EventScript_1630F1:: @ 81630F1
+SeafoamIslands_B4F_EventScript_WarpInOnCurrent:: @ 81630F1
turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH
special Special_ForcePlayerToStartSurfing
end
SeafoamIslands_B4F_OnFrame:: @ 81630F9
- map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, EventScript_16310B
- map_script_2 VAR_TEMP_1, 1, EventScript_163121
+ map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, SeafoamIslands_B4F_EventScript_EnterOnCurrent
+ map_script_2 VAR_TEMP_1, 1, SeafoamIslands_B4F_EventScript_EnterByFalling
.2byte 0
-EventScript_16310B:: @ 816310B
+@ The current the player is forced in on from B3F
+SeafoamIslands_B4F_EventScript_EnterOnCurrent:: @ 816310B
lockall
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16311D
+ applymovement OBJ_EVENT_ID_PLAYER, SeafoamIslands_B4F_Movement_EnterOnCurrent
waitmovement 0
setvar VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 0
releaseall
end
-Movement_16311D:: @ 816311D
+SeafoamIslands_B4F_Movement_EnterOnCurrent:: @ 816311D
walk_fast_up
walk_fast_up
walk_fast_up
step_end
-EventScript_163121:: @ 8163121
+@ The current the player lands on when entering the map by falling
+SeafoamIslands_B4F_EventScript_EnterByFalling:: @ 8163121
lockall
- setvar VAR_TEMP_2, 0
- call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, EventScript_163169
- call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, EventScript_163169
- compare VAR_TEMP_2, 2
- goto_if_eq EventScript_163185
+ setvar NUM_BOULDERS_PRESENT, 0
+ call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, SeafoamIslands_B4F_EventScript_AddBoulderPresent
+ call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, SeafoamIslands_B4F_EventScript_AddBoulderPresent
+ compare NUM_BOULDERS_PRESENT, 2
+ goto_if_eq SeafoamIslands_B4F_EventScript_CurrentBlocked
getplayerxy VAR_0x8008, VAR_0x8009
compare VAR_0x8008, 9
- call_if_lt EventScript_16316F
+ call_if_lt SeafoamIslands_B4F_EventScript_RideCurrentFar
compare VAR_0x8008, 9
- call_if_ge EventScript_16317A
+ call_if_ge SeafoamIslands_B4F_EventScript_RideCurrentClose
special sub_805D1A8
setvar VAR_TEMP_1, 0
releaseall
end
-EventScript_163169:: @ 8163169
- addvar VAR_TEMP_2, 1
+SeafoamIslands_B4F_EventScript_AddBoulderPresent:: @ 8163169
+ addvar NUM_BOULDERS_PRESENT, 1
return
-EventScript_16316F:: @ 816316F
- applymovement OBJ_EVENT_ID_PLAYER, Movement_16318C
+SeafoamIslands_B4F_EventScript_RideCurrentFar:: @ 816316F
+ applymovement OBJ_EVENT_ID_PLAYER, SeafoamIslands_B4F_Movement_RideCurrentFar
waitmovement 0
return
-EventScript_16317A:: @ 816317A
- applymovement OBJ_EVENT_ID_PLAYER, Movement_163195
+SeafoamIslands_B4F_EventScript_RideCurrentClose:: @ 816317A
+ applymovement OBJ_EVENT_ID_PLAYER, SeafoamIslands_B4F_Movement_RideCurrentClose
waitmovement 0
return
-EventScript_163185:: @ 8163185
+SeafoamIslands_B4F_EventScript_CurrentBlocked:: @ 8163185
setvar VAR_TEMP_1, 0
releaseall
end
-Movement_16318C:: @ 816318C
+SeafoamIslands_B4F_Movement_RideCurrentFar:: @ 816318C
walk_up
walk_up
walk_up
@@ -131,7 +135,7 @@ Movement_16318C:: @ 816318C
walk_up
step_end
-Movement_163195:: @ 8163195
+SeafoamIslands_B4F_Movement_RideCurrentClose:: @ 8163195
walk_up
walk_up
walk_up
@@ -141,18 +145,19 @@ Movement_163195:: @ 8163195
walk_up
step_end
-SeafoamIslands_B4F_EventScript_16319D:: @ 816319D
+@ Triggers blocking re-entry to B3F
+SeafoamIslands_B4F_EventScript_UpwardCurrent:: @ 816319D
lockall
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1631AA
+ applymovement OBJ_EVENT_ID_PLAYER, SeafoamIslands_B4F_Movement_WalkUp
waitmovement 0
releaseall
end
-Movement_1631AA:: @ 81631AA
+SeafoamIslands_B4F_Movement_WalkUp:: @ 81631AA
walk_up
step_end
-SeafoamIslands_B4F_EventScript_1631AC:: @ 81631AC
+SeafoamIslands_B4F_EventScript_Articuno:: @ 81631AC
goto_if_questlog EventScript_ReleaseEnd
special sub_8112364
lock
@@ -160,7 +165,7 @@ SeafoamIslands_B4F_EventScript_1631AC:: @ 81631AC
setwildbattle SPECIES_ARTICUNO, 50, ITEM_NONE
waitse
playmoncry SPECIES_ARTICUNO, 2
- message Text_1A6448
+ message Text_Gyaoo
waitmessage
waitmoncry
delay 10
@@ -172,33 +177,29 @@ SeafoamIslands_B4F_EventScript_1631AC:: @ 81631AC
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
specialvar VAR_RESULT, Special_GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
- goto_if_eq EventScript_16320F
+ goto_if_eq SeafoamIslands_B4F_EventScript_DefeatedArticuno
compare VAR_RESULT, B_OUTCOME_RAN
- goto_if_eq EventScript_163218
+ goto_if_eq SeafoamIslands_B4F_EventScript_RanFromArticuno
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
- goto_if_eq EventScript_163218
+ goto_if_eq SeafoamIslands_B4F_EventScript_RanFromArticuno
setflag FLAG_FOUGHT_ARTICUNO
release
end
-EventScript_16320F:: @ 816320F
+SeafoamIslands_B4F_EventScript_DefeatedArticuno:: @ 816320F
setflag FLAG_FOUGHT_ARTICUNO
goto EventScript_RemoveStaticMon
-
-EventScript_163217:: @ 8163217
end
-EventScript_163218:: @ 8163218
+SeafoamIslands_B4F_EventScript_RanFromArticuno:: @ 8163218
setvar VAR_0x8004, SPECIES_ARTICUNO
goto EventScript_MonFlewAway
-
-EventScript_163222:: @ 8163222
end
-SeafoamIslands_B4F_EventScript_163223:: @ 8163223
- msgbox gUnknown_8179B36, MSGBOX_SIGN
+SeafoamIslands_B4F_EventScript_BoulderHintSign:: @ 8163223
+ msgbox SeafoamIslands_B4F_Text_BouldersMightChangeWaterFlow, MSGBOX_SIGN
end
-SeafoamIslands_B4F_EventScript_16322C:: @ 816322C
- msgbox gUnknown_8179B65, MSGBOX_SIGN
+SeafoamIslands_B4F_EventScript_FastCurrentSign:: @ 816322C
+ msgbox SeafoamIslands_B4F_Text_DangerFastCurrent, MSGBOX_SIGN
end
diff --git a/data/maps/SeafoamIslands_B4F/text.inc b/data/maps/SeafoamIslands_B4F/text.inc
index 708828c74..2747110e5 100644
--- a/data/maps/SeafoamIslands_B4F/text.inc
+++ b/data/maps/SeafoamIslands_B4F/text.inc
@@ -19,11 +19,11 @@ Text_RockSlideTaught:: @ 8179B0A
.string "It might be scary to use it in this\n"
.string "tunnel…$"
-gUnknown_8179B36:: @ 8179B36
+SeafoamIslands_B4F_Text_BouldersMightChangeWaterFlow:: @ 8179B36
.string "Hint: Boulders might change the\n"
.string "flow of water.$"
-gUnknown_8179B65:: @ 8179B65
+SeafoamIslands_B4F_Text_DangerFastCurrent:: @ 8179B65
.string "DANGER\n"
.string "Fast current!$"
diff --git a/data/maps/SixIsland_DottedHole_1F/scripts.inc b/data/maps/SixIsland_DottedHole_1F/scripts.inc
index 0dae8d853..26217512e 100644
--- a/data/maps/SixIsland_DottedHole_1F/scripts.inc
+++ b/data/maps/SixIsland_DottedHole_1F/scripts.inc
@@ -8,28 +8,28 @@ SixIsland_DottedHole_1F_OnTransition:: @ 8164188
SixIsland_DottedHole_B1F_EventScript_16418C:: @ 816418C
lockall
- braillemessage gUnknown_81A9288
+ braillemessage Braille_Text_Up
waitbuttonpress
releaseall
end
SixIsland_DottedHole_B4F_EventScript_164195:: @ 8164195
lockall
- braillemessage gUnknown_81A928B
+ braillemessage Braille_Text_Down
waitbuttonpress
releaseall
end
SixIsland_DottedHole_B3F_EventScript_16419E:: @ 816419E
lockall
- braillemessage gUnknown_81A9290
+ braillemessage Braille_Text_Right
waitbuttonpress
releaseall
end
SixIsland_DottedHole_B2F_EventScript_1641A7:: @ 81641A7
lockall
- braillemessage gUnknown_81A9296
+ braillemessage Braille_Text_Left
waitbuttonpress
releaseall
end
diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc
index 24106d3ac..a73503f7c 100644
--- a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc
+++ b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc
@@ -238,67 +238,22 @@ Movement_16441C:: @ 816441C
SixIsland_DottedHole_SapphireRoom_EventScript_16441F:: @ 816441F
lockall
setvar VAR_0x8005, 130
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9321
- getbraillestringwidth gUnknown_81A9321
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A932D
- getbraillestringwidth gUnknown_81A932D
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9338
- getbraillestringwidth gUnknown_81A9338
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A933F
- getbraillestringwidth gUnknown_81A933F
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A934A
- getbraillestringwidth gUnknown_81A934A
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9356
- getbraillestringwidth gUnknown_81A9356
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9362
- getbraillestringwidth gUnknown_81A9362
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9368
- getbraillestringwidth gUnknown_81A9368
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9374
- getbraillestringwidth gUnknown_81A9374
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A937C
- getbraillestringwidth gUnknown_81A937C
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9387
- getbraillestringwidth gUnknown_81A9387
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A9393
- getbraillestringwidth gUnknown_81A9393
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A939F
- getbraillestringwidth gUnknown_81A939F
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A93AB
- getbraillestringwidth gUnknown_81A93AB
- call EventScript_BrailleCursorWaitButton
- setvar VAR_0x8006, 0
- braillemessage gUnknown_81A93B4
- getbraillestringwidth gUnknown_81A93B4
- call EventScript_BrailleCursorWaitButton
- braillemessage gUnknown_81A93C0
+ braillemessage_wait Braille_Text_LetTheTwo
+ braillemessage_wait Braille_Text_Glittering
+ braillemessage_wait Braille_Text_Stones
+ braillemessage_wait Braille_Text_OneInRed
+ braillemessage_wait Braille_Text_OneInBlue
+ braillemessage_wait Braille_Text_ConnectThe
+ braillemessage_wait Braille_Text_Past
+ braillemessage_wait Braille_Text_TwoFriends
+ braillemessage_wait Braille_Text_Sharing
+ braillemessage_wait Braille_Text_PowerOpen
+ braillemessage_wait Braille_Text_AWindowTo
+ braillemessage_wait Braille_Text_ANewWorld
+ braillemessage_wait Braille_Text_ThatGlows
+ braillemessage_wait Braille_Text_TheNext
+ braillemessage_wait Braille_Text_WorldWaits
+ braillemessage Braille_Text_ForYou
waitbuttonpress
releaseall
end
diff --git a/data/maps/SixIsland_RuinValley/scripts.inc b/data/maps/SixIsland_RuinValley/scripts.inc
index 582503ed8..9dadf5525 100644
--- a/data/maps/SixIsland_RuinValley/scripts.inc
+++ b/data/maps/SixIsland_RuinValley/scripts.inc
@@ -28,7 +28,7 @@ SixIsland_RuinValley_EventScript_168B94:: @ 8168B94
compare VAR_RESULT, NO
goto_if_eq EventScript_168BCB
msgbox gUnknown_818BE11
- braillemessage gUnknown_81A929B
+ braillemessage Braille_Text_Cut
waitbuttonpress
releaseall
end
diff --git a/data/maps/UndergroundPath_EastEntrance/map.json b/data/maps/UndergroundPath_EastEntrance/map.json
index 3e600d6ad..8a82619c0 100644
--- a/data/maps/UndergroundPath_EastEntrance/map.json
+++ b/data/maps/UndergroundPath_EastEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UndergroundPath_EastEntrance_EventScript_160EDE",
+ "script": "UndergroundPath_EastEntrance_EventScript_Woman",
"flag": "0"
}
],
diff --git a/data/maps/UndergroundPath_EastEntrance/scripts.inc b/data/maps/UndergroundPath_EastEntrance/scripts.inc
index 28a211c6f..88bc29730 100644
--- a/data/maps/UndergroundPath_EastEntrance/scripts.inc
+++ b/data/maps/UndergroundPath_EastEntrance/scripts.inc
@@ -1,6 +1,6 @@
UndergroundPath_EastEntrance_MapScripts:: @ 8160EDD
.byte 0
-UndergroundPath_EastEntrance_EventScript_160EDE:: @ 8160EDE
- msgbox gUnknown_81745D9, MSGBOX_NPC
+UndergroundPath_EastEntrance_EventScript_Woman:: @ 8160EDE
+ msgbox UndergroundPath_EastEntrance_Text_DoYouGoToCeladonDeptStore, MSGBOX_NPC
end
diff --git a/data/maps/UndergroundPath_EastEntrance/text.inc b/data/maps/UndergroundPath_EastEntrance/text.inc
index f44fb5a21..7333a73cc 100644
--- a/data/maps/UndergroundPath_EastEntrance/text.inc
+++ b/data/maps/UndergroundPath_EastEntrance/text.inc
@@ -1,4 +1,4 @@
-gUnknown_81745D9:: @ 81745D9
+UndergroundPath_EastEntrance_Text_DoYouGoToCeladonDeptStore:: @ 81745D9
.string "The DEPARTMENT STORE in CELADON\n"
.string "has a great selection.\p"
.string "Do you go there very often?$"
diff --git a/data/maps/UndergroundPath_NorthEntrance/map.json b/data/maps/UndergroundPath_NorthEntrance/map.json
index 18939c721..d5fbc5df9 100644
--- a/data/maps/UndergroundPath_NorthEntrance/map.json
+++ b/data/maps/UndergroundPath_NorthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UndergroundPath_NorthEntrance_EventScript_160E39",
+ "script": "UndergroundPath_NorthEntrance_EventScript_Saige",
"flag": "0"
}
],
diff --git a/data/maps/UndergroundPath_NorthEntrance/scripts.inc b/data/maps/UndergroundPath_NorthEntrance/scripts.inc
index a06a23659..70a690828 100644
--- a/data/maps/UndergroundPath_NorthEntrance/scripts.inc
+++ b/data/maps/UndergroundPath_NorthEntrance/scripts.inc
@@ -1,39 +1,39 @@
UndergroundPath_NorthEntrance_MapScripts:: @ 8160E38
.byte 0
-UndergroundPath_NorthEntrance_EventScript_160E39:: @ 8160E39
+UndergroundPath_NorthEntrance_EventScript_Saige:: @ 8160E39
lock
faceplayer
setvar VAR_0x8008, INGAME_TRADE_NIDORAN
call EventScript_GetInGameTradeSpeciesInfo
- goto_if_set FLAG_DID_MS_NIDO_TRADE, EventScript_160EAB
+ goto_if_set FLAG_DID_MS_NIDO_TRADE, UndergroundPath_NorthEntrance_EventScript_AlreadyTraded
msgbox gUnknown_81A5AD6, MSGBOX_YESNO
compare VAR_RESULT, NO
- goto_if_eq EventScript_160E93
+ goto_if_eq UndergroundPath_NorthEntrance_EventScript_DeclineTrade
call EventScript_ChooseMonForInGameTrade
compare VAR_0x8004, PARTY_SIZE
- goto_if_ge EventScript_160E93
+ goto_if_ge UndergroundPath_NorthEntrance_EventScript_DeclineTrade
call EventScript_GetInGameTradeSpecies
compare VAR_RESULT, VAR_0x8009
- goto_if_ne EventScript_160E9D
+ goto_if_ne UndergroundPath_NorthEntrance_EventScript_NotRequestedMon
call EventScript_DoInGameTrade
msgbox gUnknown_81A5B4A
setflag FLAG_DID_MS_NIDO_TRADE
release
end
-EventScript_160E93:: @ 8160E93
+UndergroundPath_NorthEntrance_EventScript_DeclineTrade:: @ 8160E93
msgbox gUnknown_81A5B08
release
end
-EventScript_160E9D:: @ 8160E9D
+UndergroundPath_NorthEntrance_EventScript_NotRequestedMon:: @ 8160E9D
getspeciesname 0, VAR_0x8009
msgbox gUnknown_81A5B18
release
end
-EventScript_160EAB:: @ 8160EAB
+UndergroundPath_NorthEntrance_EventScript_AlreadyTraded:: @ 8160EAB
msgbox gUnknown_81A5B60
release
end
diff --git a/data/maps/UndergroundPath_SouthEntrance/map.json b/data/maps/UndergroundPath_SouthEntrance/map.json
index e58624d4e..604e544cd 100644
--- a/data/maps/UndergroundPath_SouthEntrance/map.json
+++ b/data/maps/UndergroundPath_SouthEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UndergroundPath_SouthEntrance_EventScript_160EC0",
+ "script": "UndergroundPath_SouthEntrance_EventScript_Woman",
"flag": "0"
}
],
diff --git a/data/maps/UndergroundPath_SouthEntrance/scripts.inc b/data/maps/UndergroundPath_SouthEntrance/scripts.inc
index 1623d16d7..1bc0b2a31 100644
--- a/data/maps/UndergroundPath_SouthEntrance/scripts.inc
+++ b/data/maps/UndergroundPath_SouthEntrance/scripts.inc
@@ -1,6 +1,6 @@
UndergroundPath_SouthEntrance_MapScripts:: @ 8160EBF
.byte 0
-UndergroundPath_SouthEntrance_EventScript_160EC0:: @ 8160EC0
- msgbox gUnknown_8174559, MSGBOX_NPC
+UndergroundPath_SouthEntrance_EventScript_Woman:: @ 8160EC0
+ msgbox UndergroundPath_SouthEntrance_Text_PeopleLoseThingsInTheDarkness, MSGBOX_NPC
end
diff --git a/data/maps/UndergroundPath_SouthEntrance/text.inc b/data/maps/UndergroundPath_SouthEntrance/text.inc
index 07e9c0368..5e35c333d 100644
--- a/data/maps/UndergroundPath_SouthEntrance/text.inc
+++ b/data/maps/UndergroundPath_SouthEntrance/text.inc
@@ -1,4 +1,4 @@
-gUnknown_8174559:: @ 8174559
+UndergroundPath_SouthEntrance_Text_PeopleLoseThingsInTheDarkness:: @ 8174559
.string "People often lose things in the\n"
.string "darkness of the UNDERGROUND PATH.$"
diff --git a/data/maps/UndergroundPath_WestEntrance/map.json b/data/maps/UndergroundPath_WestEntrance/map.json
index ab685cca5..8e8d2f662 100644
--- a/data/maps/UndergroundPath_WestEntrance/map.json
+++ b/data/maps/UndergroundPath_WestEntrance/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UndergroundPath_WestEntrance_EventScript_160ECA",
+ "script": "UndergroundPath_WestEntrance_EventScript_BaldingMan",
"flag": "0"
}
],
diff --git a/data/maps/UndergroundPath_WestEntrance/scripts.inc b/data/maps/UndergroundPath_WestEntrance/scripts.inc
index 6b1c60710..35fab8e7a 100644
--- a/data/maps/UndergroundPath_WestEntrance/scripts.inc
+++ b/data/maps/UndergroundPath_WestEntrance/scripts.inc
@@ -1,6 +1,6 @@
UndergroundPath_WestEntrance_MapScripts:: @ 8160EC9
.byte 0
-UndergroundPath_WestEntrance_EventScript_160ECA:: @ 8160ECA
- msgbox gUnknown_817459B, MSGBOX_NPC
+UndergroundPath_WestEntrance_EventScript_BaldingMan:: @ 8160ECA
+ msgbox UndergroundPath_WestEntrance_Text_SleepyMonNearCeladon, MSGBOX_NPC
end
diff --git a/data/maps/UndergroundPath_WestEntrance/text.inc b/data/maps/UndergroundPath_WestEntrance/text.inc
index 5447a5206..6130a5244 100644
--- a/data/maps/UndergroundPath_WestEntrance/text.inc
+++ b/data/maps/UndergroundPath_WestEntrance/text.inc
@@ -1,4 +1,4 @@
-gUnknown_817459B:: @ 817459B
+UndergroundPath_WestEntrance_Text_SleepyMonNearCeladon:: @ 817459B
.string "I heard a sleepy POKéMON appeared\n"
.string "out near CELADON CITY, too.$"
diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json
index 91cf2cb49..7427f28c3 100644
--- a/data/maps/UnionRoom/map.json
+++ b/data/maps/UnionRoom/map.json
@@ -23,7 +23,7 @@
"movement_range_y": 0,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_16050C",
+ "script": "UnionRoom_EventScript_Attendant",
"flag": "0"
},
{
@@ -36,8 +36,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604DA",
- "flag": "FLAG_HIDE_UNION_ROOM_4"
+ "script": "UnionRoom_EventScript_Player4",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_4"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_7",
@@ -49,8 +49,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_160502",
- "flag": "FLAG_HIDE_UNION_ROOM_8"
+ "script": "UnionRoom_EventScript_Player8",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_8"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_6",
@@ -62,8 +62,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604F8",
- "flag": "FLAG_HIDE_UNION_ROOM_7"
+ "script": "UnionRoom_EventScript_Player7",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_7"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_5",
@@ -75,8 +75,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604EE",
- "flag": "FLAG_HIDE_UNION_ROOM_6"
+ "script": "UnionRoom_EventScript_Player6",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_6"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_4",
@@ -88,8 +88,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604E4",
- "flag": "FLAG_HIDE_UNION_ROOM_5"
+ "script": "UnionRoom_EventScript_Player5",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_5"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_2",
@@ -101,8 +101,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604D0",
- "flag": "FLAG_HIDE_UNION_ROOM_3"
+ "script": "UnionRoom_EventScript_Player3",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_3"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_1",
@@ -114,8 +114,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604C6",
- "flag": "FLAG_HIDE_UNION_ROOM_2"
+ "script": "UnionRoom_EventScript_Player2",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_2"
},
{
"graphics_id": "OBJECT_EVENT_GFX_VAR_0",
@@ -127,8 +127,8 @@
"movement_range_y": 1,
"trainer_type": 0,
"trainer_sight_or_berry_tree_id": 0,
- "script": "UnionRoom_EventScript_1604BC",
- "flag": "FLAG_HIDE_UNION_ROOM_1"
+ "script": "UnionRoom_EventScript_Player1",
+ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_1"
}
],
"warp_events": [
diff --git a/data/maps/UnionRoom/scripts.inc b/data/maps/UnionRoom/scripts.inc
index c948682ce..35222ba8b 100644
--- a/data/maps/UnionRoom/scripts.inc
+++ b/data/maps/UnionRoom/scripts.inc
@@ -4,14 +4,14 @@ UnionRoom_MapScripts:: @ 816047C
.byte 0
UnionRoom_OnResume:: @ 8160487
- setflag FLAG_HIDE_UNION_ROOM_1
- setflag FLAG_HIDE_UNION_ROOM_2
- setflag FLAG_HIDE_UNION_ROOM_3
- setflag FLAG_HIDE_UNION_ROOM_4
- setflag FLAG_HIDE_UNION_ROOM_5
- setflag FLAG_HIDE_UNION_ROOM_6
- setflag FLAG_HIDE_UNION_ROOM_7
- setflag FLAG_HIDE_UNION_ROOM_8
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_1
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_2
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_3
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_4
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_5
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_6
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_7
+ setflag FLAG_HIDE_UNION_ROOM_PLAYER_8
removeobject 9
removeobject 8
removeobject 7
@@ -26,7 +26,7 @@ UnionRoom_OnResume:: @ 8160487
UnionRoom_OnTransition:: @ 81604BB
end
-UnionRoom_EventScript_1604BC:: @ 81604BC
+UnionRoom_EventScript_Player1:: @ 81604BC
lock
faceplayer
setvar VAR_RESULT, 1
@@ -34,7 +34,7 @@ UnionRoom_EventScript_1604BC:: @ 81604BC
release
end
-UnionRoom_EventScript_1604C6:: @ 81604C6
+UnionRoom_EventScript_Player2:: @ 81604C6
lock
faceplayer
setvar VAR_RESULT, 2
@@ -42,7 +42,7 @@ UnionRoom_EventScript_1604C6:: @ 81604C6
release
end
-UnionRoom_EventScript_1604D0:: @ 81604D0
+UnionRoom_EventScript_Player3:: @ 81604D0
lock
faceplayer
setvar VAR_RESULT, 3
@@ -50,7 +50,7 @@ UnionRoom_EventScript_1604D0:: @ 81604D0
release
end
-UnionRoom_EventScript_1604DA:: @ 81604DA
+UnionRoom_EventScript_Player4:: @ 81604DA
lock
faceplayer
setvar VAR_RESULT, 4
@@ -58,7 +58,7 @@ UnionRoom_EventScript_1604DA:: @ 81604DA
release
end
-UnionRoom_EventScript_1604E4:: @ 81604E4
+UnionRoom_EventScript_Player5:: @ 81604E4
lock
faceplayer
setvar VAR_RESULT, 5
@@ -66,7 +66,7 @@ UnionRoom_EventScript_1604E4:: @ 81604E4
release
end
-UnionRoom_EventScript_1604EE:: @ 81604EE
+UnionRoom_EventScript_Player6:: @ 81604EE
lock
faceplayer
setvar VAR_RESULT, 6
@@ -74,7 +74,7 @@ UnionRoom_EventScript_1604EE:: @ 81604EE
release
end
-UnionRoom_EventScript_1604F8:: @ 81604F8
+UnionRoom_EventScript_Player7:: @ 81604F8
lock
faceplayer
setvar VAR_RESULT, 7
@@ -82,7 +82,7 @@ UnionRoom_EventScript_1604F8:: @ 81604F8
release
end
-UnionRoom_EventScript_160502:: @ 8160502
+UnionRoom_EventScript_Player8:: @ 8160502
lock
faceplayer
setvar VAR_RESULT, 8
@@ -90,7 +90,7 @@ UnionRoom_EventScript_160502:: @ 8160502
release
end
-UnionRoom_EventScript_16050C:: @ 816050C
+UnionRoom_EventScript_Attendant:: @ 816050C
lock
faceplayer
setvar VAR_RESULT, 9
@@ -98,7 +98,7 @@ UnionRoom_EventScript_16050C:: @ 816050C
release
end
-UnionRoom_EventScript_160516:: @ 8160516
+UnionRoom_EventScript_Unused:: @ 8160516
lockall
setvar VAR_RESULT, 10
waitstate
diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json
index b89b112a4..05f1cd544 100644
--- a/data/maps/map_groups.json
+++ b/data/maps/map_groups.json
@@ -119,10 +119,10 @@
"SafariZone_East",
"SafariZone_North",
"SafariZone_West",
- "SafariZone_Building1",
- "SafariZone_Building2",
- "SafariZone_Building3",
- "SafariZone_Building4",
+ "SafariZone_Center_RestHouse",
+ "SafariZone_East_RestHouse",
+ "SafariZone_North_RestHouse",
+ "SafariZone_West_RestHouse",
"SafariZone_SecretHouse",
"CeruleanCave_1F",
"CeruleanCave_2F",
@@ -385,12 +385,12 @@
"gMapGroup11": [
"FuchsiaCity_SafariZone_Entrance",
"FuchsiaCity_Mart",
- "FuchsiaCity_ZooBuilding",
+ "FuchsiaCity_SafariZone_Office",
"FuchsiaCity_Gym",
"FuchsiaCity_House1",
"FuchsiaCity_PokemonCenter_1F",
"FuchsiaCity_PokemonCenter_2F",
- "FuchsiaCity_Building1",
+ "FuchsiaCity_WardensHouse",
"FuchsiaCity_House2",
"FuchsiaCity_House3"
],
diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc
index 9937bf704..8e3318c35 100644
--- a/data/scripts/day_care.inc
+++ b/data/scripts/day_care.inc
@@ -1,93 +1,93 @@
-Route5_PokemonDayCare_EventScript_1BF398:: @ 81BF398
+Route5_PokemonDayCare_EventScript_DaycareMan:: @ 81BF398
goto_if_questlog EventScript_ReleaseEnd
lock
faceplayer
showmoneybox 0, 0, 0
specialvar VAR_RESULT, IsThereMonInRoute5Daycare
- compare VAR_RESULT, 1
- goto_if_eq EventScript_1BF46E
- msgbox Text_19DD66, MSGBOX_YESNO
+ compare VAR_RESULT, TRUE
+ goto_if_eq Route5_PokemonDayCare_EventScript_CheckOnMon
+ msgbox Route5_PokemonDayCare_Text_WantMeToRaiseMon, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_1BF3DD
- msgbox Text_19DDB2
- goto EventScript_1BF541
+ goto_if_eq Route5_PokemonDayCare_EventScript_TryGiveMon
+ msgbox Route5_PokemonDayCare_Text_ComeAgain
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF3DD:: @ 81BF3DD
+Route5_PokemonDayCare_EventScript_TryGiveMon:: @ 81BF3DD
specialvar VAR_RESULT, CountPartyNonEggMons
compare VAR_RESULT, 1
- goto_if_eq EventScript_1BF452
- msgbox Text_19DDBE
+ goto_if_eq Route5_PokemonDayCare_EventScript_OnlyOneMonInParty
+ msgbox Route5_PokemonDayCare_Text_WhichMonShouldIRaise
fadescreen FADE_TO_BLACK
hidemoneybox 0, 0
special ChooseSendDaycareMon
waitstate
showmoneybox 0, 0, 0
- compare VAR_0x8004, 6
- goto_if_ge EventScript_1BF444
+ compare VAR_0x8004, PARTY_SIZE
+ goto_if_ge Route5_PokemonDayCare_EventScript_ComeAgain
specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
compare VAR_RESULT, 0
- goto_if_eq EventScript_1BF460
- specialvar VAR_0x8005, GetSelectedMonNickAndSpecies
- msgbox Text_19DDF9
+ goto_if_eq Route5_PokemonDayCare_EventScript_OnlyOneAliveMonInParty
+ specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies
+ msgbox Route5_PokemonDayCare_Text_LookAfterMonForAWhile
waitse
playmoncry VAR_0x8005, 0
- msgbox Text_19DE24
+ msgbox Route5_PokemonDayCare_Text_ComeSeeMeInAWhile
waitmoncry
special PutMonInRoute5Daycare
incrementgamestat GAME_STAT_USED_DAYCARE
- goto EventScript_1BF541
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF444:: @ 81BF444
- msgbox Text_19DDDC
- goto EventScript_1BF541
+Route5_PokemonDayCare_EventScript_ComeAgain:: @ 81BF444
+ msgbox Route5_PokemonDayCare_Text_ComeAnytimeYouLike
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF452:: @ 81BF452
- msgbox Text_19DEF5
- goto EventScript_1BF541
+Route5_PokemonDayCare_EventScript_OnlyOneMonInParty:: @ 81BF452
+ msgbox Route5_PokemonDayCare_Text_OnlyHaveOneMonWithYou
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF460:: @ 81BF460
- msgbox Text_19DF1D
- goto EventScript_1BF541
+Route5_PokemonDayCare_EventScript_OnlyOneAliveMonInParty:: @ 81BF460
+ msgbox Route5_PokemonDayCare_Text_WhatWillYouBattleWith
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF46E:: @ 81BF46E
+Route5_PokemonDayCare_EventScript_CheckOnMon:: @ 81BF46E
setvar VAR_0x8004, 0
specialvar VAR_RESULT, GetNumLevelsGainedForRoute5DaycareMon
compare VAR_RESULT, 0
- call_if_ne EventScript_1BF4AA
+ call_if_ne Route5_PokemonDayCare_EventScript_MonHasGrownByXLevels
compare VAR_RESULT, 0
- call_if_eq EventScript_1BF4B3
+ call_if_eq Route5_PokemonDayCare_EventScript_NotEnoughTime
special GetCostToWithdrawRoute5DaycareMon
- msgbox Text_19DE80, MSGBOX_YESNO
+ msgbox Route5_PokemonDayCare_Text_OweMeXForMonsReturn, MSGBOX_YESNO
compare VAR_RESULT, YES
- goto_if_eq EventScript_1BF4BC
- goto EventScript_1BF444
+ goto_if_eq Route5_PokemonDayCare_EventScript_TryRetrieveMon
+ goto Route5_PokemonDayCare_EventScript_ComeAgain
end
-EventScript_1BF4AA:: @ 81BF4AA
- msgbox Text_19DF56
+Route5_PokemonDayCare_EventScript_MonHasGrownByXLevels:: @ 81BF4AA
+ msgbox Route5_PokemonDayCare_Text_MonHasGrownByXLevels
return
-EventScript_1BF4B3:: @ 81BF4B3
- msgbox Text_19DE3C
+Route5_PokemonDayCare_EventScript_NotEnoughTime:: @ 81BF4B3
+ msgbox Route5_PokemonDayCare_Text_MonNeedsToSpendMoreTime
return
-EventScript_1BF4BC:: @ 81BF4BC
+Route5_PokemonDayCare_EventScript_TryRetrieveMon:: @ 81BF4BC
specialvar VAR_RESULT, CalculatePlayerPartyCount
compare VAR_RESULT, PARTY_SIZE
- goto_if_eq EventScript_1BF533
+ goto_if_eq Route5_PokemonDayCare_EventScript_NoRoomInParty
specialvar VAR_RESULT, IsEnoughForCostInVar0x8005
- compare VAR_RESULT, 1
- goto_if_eq EventScript_1BF4EA
- msgbox Text_19E001
- goto EventScript_1BF541
+ compare VAR_RESULT, TRUE
+ goto_if_eq Route5_PokemonDayCare_EventScript_RetrieveMon
+ msgbox Route5_PokemonDayCare_Text_DontHaveEnoughMoney
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF4EA:: @ 81BF4EA
+Route5_PokemonDayCare_EventScript_RetrieveMon:: @ 81BF4EA
setvar VAR_0x8004, 0
specialvar VAR_RESULT, TakePokemonFromRoute5Daycare
special SubtractMoneyFromVar0x8005
@@ -97,159 +97,30 @@ EventScript_1BF4EA:: @ 81BF4EA
subvar VAR_RESULT, 1
getpartymonname 0, VAR_RESULT
copyvar VAR_RESULT, VAR_0x8008
- msgbox Text_19DEAF
+ msgbox Route5_PokemonDayCare_Text_ThankYouHeresMon
textcolor 3
waitse
playmoncry VAR_RESULT, 0
- msgbox Text_19DECF
+ msgbox Route5_PokemonDayCare_Text_PlayerGotMonBack
call EventScript_1A6675
waitmoncry
- goto EventScript_1BF541
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF533:: @ 81BF533
- msgbox Text_19DFC2
- goto EventScript_1BF541
+Route5_PokemonDayCare_EventScript_NoRoomInParty:: @ 81BF533
+ msgbox Route5_PokemonDayCare_Text_YouveGotNoRoomForIt
+ goto Route5_PokemonDayCare_EventScript_CloseMoneyBox
end
-EventScript_1BF541:: @ 81BF541
+Route5_PokemonDayCare_EventScript_CloseMoneyBox:: @ 81BF541
hidemoneybox 0, 0
release
end
-EventScript_81BF546:: @ 81BF546
+EventScript_EggHatch:: @ 81BF546
lockall
- msgbox Text_1BFB5A
+ msgbox DayCare_Text_Huh
special EggHatch
waitstate
releaseall
end
-
-gUnknown_81BF555:: @ 81BF555
- .string "I'm the DAY-CARE MAN.\p"
- .string "I help take care of the precious\n"
- .string "POKéMON of TRAINERS.\p"
- .string "If you'd like me to raise your\n"
- .string "POKéMON, have a word with my wife.$"
-
-gUnknown_81BF5E3:: @ 81BF5E3
- .string "Ah, it's you!\p"
- .string "We were raising your POKéMON, and\n"
- .string "my goodness, were we surprised!\p"
- .string "Your POKéMON had an EGG!\p"
- .string "We don't know how it got there,\n"
- .string "but your POKéMON had it.\p"
- .string "You do want it, yes?$"
-
-gUnknown_81BF69A:: @ 81BF69A
- .string "Ah, it's you! Good to see you.\n"
- .string "Your {STR_VAR_1}'s doing fine.$"
-
-gUnknown_81BF6CF:: @ 81BF6CF
- .string "Well then, I'll keep it.\n"
- .string "Thanks!$"
-
-gUnknown_81BF6F0:: @ 81BF6F0
- .string "You have no room for it…\n"
- .string "Come back when you've made room.$"
-
-Text_1BF72A:: @ 81BF72A
- .string "{PLAYER} received the EGG from\n"
- .string "the DAY-CARE MAN.$"
-
-gUnknown_81BF755:: @ 81BF755
- .string "Take good care of it.$"
-
-Text_1BF76B:: @ 81BF76B
- .string "ポケモンを ひきとりたい ときは\n"
- .string "ばさんに いって おくれ$"
-
-gUnknown_81BF789:: @ 81BF789
- .string "Ah, it's you! Your {STR_VAR_1} and\n"
- .string "{STR_VAR_2} are doing fine.$"
-
-gUnknown_81BF7B6:: @ 81BF7B6
- .string "I really will keep it.\n"
- .string "You do want this, yes?$"
-
-gUnknown_81BF7E4:: @ 81BF7E4
- .string "I'm the DAY-CARE LADY.\p"
- .string "We can raise POKéMON for you.\p"
- .string "Would you like us to raise one?$"
-
-gUnknown_81BF839:: @ 81BF839
- .string "Which POKéMON should we raise for\n"
- .string "you?$"
-
-gUnknown_81BF860:: @ 81BF860
- .string "Fine, we'll raise your {STR_VAR_1}\n"
- .string "for a while.\p"
- .string "Come back for it later.$"
-
-gUnknown_81BF89F:: @ 81BF89F
- .string "We can raise two of your POKéMON.\p"
- .string "Would you like us to raise one\n"
- .string "more POKéMON for you?$"
-
-gUnknown_81BF8F6:: @ 81BF8F6
- .string "My husband was looking for you.$"
-
-gUnknown_81BF916:: @ 81BF916
- .string "Oh, fine, then.\n"
- .string "Come again.$"
-
-gUnknown_81BF932:: @ 81BF932
- .string "You don't have enough money…$"
-
-gUnknown_81BF94F:: @ 81BF94F
- .string "Will you take back the other one,\n"
- .string "too?$"
-
-gUnknown_81BF976:: @ 81BF976
- .string "Fine.\n"
- .string "Come again.$"
-
-gUnknown_81BF988:: @ 81BF988
- .string "Ah, it's you!\n"
- .string "Good to see you.\p"
- .string "Your POKéMON can only be doing\n"
- .string "good!$"
-
-gUnknown_81BF9CC:: @ 81BF9CC
- .string "By level, your {STR_VAR_1} has\n"
- .string "grown by {STR_VAR_2}.$"
-
-gUnknown_81BF9EF:: @ 81BF9EF
- .string "Your POKéMON party is full.\n"
- .string "Make room, then come see me.$"
-
-Text_1BFA28:: @ 81BFA28
- .string "どっちの ポケモンを ひきとるかい?$"
-
-gUnknown_81BFA3B:: @ 81BFA3B
- .string "If you want your {STR_VAR_1} back,\n"
- .string "it will cost ¥{STR_VAR_2}.$"
-
-gUnknown_81BFA67:: @ 81BFA67
- .string "Perfect!\n"
- .string "Here's your POKéMON.$"
-
-gUnknown_81BFA85:: @ 81BFA85
- .string "{PLAYER} took back {STR_VAR_1} from\n"
- .string "the DAY-CARE LADY.$"
-
-gUnknown_81BFAAD:: @ 81BFAAD
- .string "Oh? But you have just one\n"
- .string "POKéMON.\p"
- .string "Come back another time.$"
-
-gUnknown_81BFAE8:: @ 81BFAE8
- .string "Will you take your POKéMON back?$"
-
-gUnknown_81BFB09:: @ 81BFB09
- .string "If you leave me that POKéMON,\n"
- .string "what will you battle with?\p"
- .string "Come back another time.$"
-
-Text_1BFB5A:: @ 81BFB5A
- .string "Huh?$"
diff --git a/data/scripts/fame_checker.inc b/data/scripts/fame_checker.inc
index 0d058b2d5..e141634eb 100644
--- a/data/scripts/fame_checker.inc
+++ b/data/scripts/fame_checker.inc
@@ -101,20 +101,20 @@ CeladonCity_Condominiums_2F_EventScript_1ACE9D:: @ 81ACE9D
release
end
-FuchsiaCity_Building1_EventScript_1ACEB8:: @ 81ACEB8
+FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga:: @ 81ACEB8
lock
faceplayer
famechecker FAMECHECKER_KOGA, 4
textcolor 3
- msgbox gUnknown_81B16A8
+ msgbox PokemonJournal_Text_SpecialFeatureKoga
release
end
-SafariZone_Building3_EventScript_1ACED3:: @ 81ACED3
+SafariZone_North_RestHouse_EventScript_BaldingMan:: @ 81ACED3
lock
faceplayer
famechecker FAMECHECKER_KOGA, 5
- msgbox Text_177C47
+ msgbox SafariZone_West_Text_KogaPatrolsSafariEverySoOften
release
end
diff --git a/data/scripts/flavor_text.inc b/data/scripts/flavor_text.inc
new file mode 100644
index 000000000..7ea879b04
--- /dev/null
+++ b/data/scripts/flavor_text.inc
@@ -0,0 +1,113 @@
+@ Flavor text for interacting with various background objects
+
+gUnknown_81A7606:: @ 81A7606
+ msgbox gUnknown_81C0DB0, MSGBOX_SIGN
+ end
+
+gUnknown_81A760F:: @ 81A760F
+ msgbox gUnknown_81C0DFD, MSGBOX_SIGN
+ end
+
+gUnknown_81A7618:: @ 81A7618
+ msgbox gUnknown_81C0F99, MSGBOX_SIGN
+ end
+
+gUnknown_81A7621:: @ 81A7621
+ msgbox gUnknown_81C12A7, MSGBOX_SIGN
+ end
+
+gUnknown_81A762A:: @ 81A762A
+ msgbox gUnknown_81C10C1, MSGBOX_SIGN
+ end
+
+gUnknown_81A7633:: @ 81A7633
+ msgbox gUnknown_81C1273, MSGBOX_SIGN
+ end
+
+gUnknown_81A763C:: @ 81A763C
+ msgbox gUnknown_81C0FD8, MSGBOX_SIGN
+ end
+
+gUnknown_81A7645:: @ 81A7645
+ msgbox gUnknown_81C12D6, MSGBOX_SIGN
+ end
+
+gUnknown_81A764E:: @ 81A764E
+ msgbox gUnknown_81C1300, MSGBOX_SIGN
+ end
+
+gUnknown_81A7657:: @ 81A7657
+ msgbox Text_DishesPlatesNeatlyLinedUp, MSGBOX_SIGN
+ end
+
+gUnknown_81A7660:: @ 81A7660
+ msgbox gUnknown_81C0E40, MSGBOX_SIGN
+ end
+
+gUnknown_81A7669:: @ 81A7669
+ msgbox gUnknown_81C0E73, MSGBOX_SIGN
+ end
+
+gUnknown_81A7672:: @ 81A7672
+ msgbox gUnknown_81C0EAC, MSGBOX_SIGN
+ end
+
+gUnknown_81A767B:: @ 81A767B
+ msgbox gUnknown_81C101B, MSGBOX_SIGN
+ end
+
+gUnknown_81A7684:: @ 81A7684
+ msgbox gUnknown_81C1060, MSGBOX_SIGN
+ end
+
+gUnknown_81A768D:: @ 81A768D
+ msgbox gUnknown_81C109C, MSGBOX_SIGN
+ end
+
+gUnknown_81A7696:: @ 81A7696
+ msgbox gUnknown_81C10FC, MSGBOX_SIGN
+ end
+
+gUnknown_81A769F:: @ 81A769F
+ msgbox gUnknown_81C1134, MSGBOX_SIGN
+ end
+
+gUnknown_81A76A8:: @ 81A76A8
+ msgbox gUnknown_81C116E, MSGBOX_SIGN
+ end
+
+gUnknown_81A76B1:: @ 81A76B1
+ msgbox gUnknown_81C1194, MSGBOX_SIGN
+ end
+
+gUnknown_81A76BA:: @ 81A76BA
+ msgbox gUnknown_81C11BA, MSGBOX_SIGN
+ end
+
+gUnknown_81A76C3:: @ 81A76C3
+ msgbox gUnknown_81C11DC, MSGBOX_SIGN
+ end
+
+gUnknown_81A76CC:: @ 81A76CC
+ msgbox gUnknown_81C1217, MSGBOX_SIGN
+ end
+
+gUnknown_81A76D5:: @ 81A76D5
+ msgbox gUnknown_81C124B, MSGBOX_SIGN
+ end
+
+gUnknown_81A76DE:: @ 81A76DE
+ msgbox gUnknown_81C0ECB, MSGBOX_SIGN
+ end
+
+gUnknown_81A76E7:: @ 81A76E7
+ msgbox gUnknown_81C0EF7, MSGBOX_SIGN
+ end
+
+gUnknown_81A76F0:: @ 81A76F0
+ msgbox gUnknown_81C0F19, MSGBOX_SIGN
+ end
+
+gUnknown_81A76F9:: @ 81A76F9
+ msgbox gUnknown_81C0F59, MSGBOX_SIGN
+ end
diff --git a/data/scripts/item_ball_scripts.inc b/data/scripts/item_ball_scripts.inc
index ed8aef9d4..f6662368c 100644
--- a/data/scripts/item_ball_scripts.inc
+++ b/data/scripts/item_ball_scripts.inc
@@ -398,7 +398,7 @@ CeruleanCave_B1F_EventScript_ItemUltraBall:: @ 81BEA95
finditem ITEM_ULTRA_BALL
end
-FuchsiaCity_Building1_EventScript_ItemRareCandy:: @ 81BEAA2
+FuchsiaCity_WardensHouse_EventScript_ItemRareCandy:: @ 81BEAA2
finditem ITEM_RARE_CANDY
end
diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc
index 2452c5c5c..3ada6109c 100644
--- a/data/scripts/obtain_item.inc
+++ b/data/scripts/obtain_item.inc
@@ -35,31 +35,31 @@ EventScript_BufferPocketNameTryFanfare:: @ 81A66BC
end
EventScript_BufferItemsPocket:: @ 81A66F9
- getstdstring 2, 24
+ getstdstring 2, STDSTRING_ITEMS_POCKET
compare VAR_0x8007, TRUE
call_if_eq EventScript_PlayFanfareObtainedItem
return
EventScript_BufferKeyItemsPocket:: @ 81A6709
- getstdstring 2, 25
+ getstdstring 2, STDSTRING_KEY_ITEMS_POCKET
compare VAR_0x8007, TRUE
call_if_eq EventScript_PlayFanfareObtainedItem
return
EventScript_BufferPokeBallsPocket:: @ 81A6719
- getstdstring 2, 26
+ getstdstring 2, STDSTRING_POKEBALLS_POCKET
compare VAR_0x8007, TRUE
call_if_eq EventScript_PlayFanfareObtainedItem
return
EventScript_BufferTMCase:: @ 81A6729
- getstdstring 2, 27
+ getstdstring 2, STDSTRING_TM_CASE
compare VAR_0x8007, TRUE
call_if_eq EventScript_PlayFanfareObtainedTMHM
return
EventScript_BufferBerryPouch:: @ 81A6739
- getstdstring 2, 28
+ getstdstring 2, STDSTRING_BERRY_POUCH
compare VAR_0x8007, TRUE
call_if_eq EventScript_PlayFanfareObtainedItem
return
@@ -218,7 +218,7 @@ EventScript_TryPickUpHiddenCoins::
compare VAR_RESULT, FALSE
goto_if_eq EventScript_HiddenCoinsButCaseIsFull
addcoins VAR_0x8006
- getstdstring 1, 0x17
+ getstdstring 1, STDSTRING_COINS
call EventScript_PlayFanfareObtainedItem
call EventScript_FoundCoins
waitfanfare
@@ -230,7 +230,7 @@ EventScript_TryPickUpHiddenCoins::
EventScript_HiddenCoinsButCaseIsFull::
getnumberstring 0, VAR_0x8006
- getstdstring 1, 0x17
+ getstdstring 1, STDSTRING_COINS
msgbox Text_FoundXCoins
msgbox Text_CoinCaseIsFull
setvar VAR_RESULT, 0
@@ -239,7 +239,7 @@ EventScript_HiddenCoinsButCaseIsFull::
EventScript_NoCaseForHiddenCoins::
getnumberstring 0, VAR_0x8006
- getstdstring 1, 0x17
+ getstdstring 1, STDSTRING_COINS
msgbox Text_FoundXCoins
msgbox Text_NothingToPutThemIn
setvar VAR_RESULT, 0
diff --git a/data/scripts/route23.inc b/data/scripts/route23.inc
index 682fa7b1d..cfdfe53a7 100644
--- a/data/scripts/route23.inc
+++ b/data/scripts/route23.inc
@@ -1,11 +1,11 @@
-EventScript_1A77C9:: @ 81A77C9
+Route23_EventScript_MissingBoulderBadge:: @ 81A77C9
msgbox Text_OnlySkilledTrainersAllowedThrough
playse SE_BOO
msgbox Text_CantLetYouPass
release
end
-EventScript_1A77DE:: @ 81A77DE
+Route23_EventScript_MissingBadge:: @ 81A77DE
message Text_OnlyPassWithBadgeDontHaveYet
waitmessage
playse SE_BOO
@@ -15,7 +15,7 @@ EventScript_1A77DE:: @ 81A77DE
release
end
-EventScript_1A77EC:: @ 81A77EC
+Route23_EventScript_AlreadyRecognizedBoulderBadge:: @ 81A77EC
message Text_OhThatsBadgeGoRightAhead
waitmessage
playfanfare MUS_FANFA1
@@ -24,80 +24,81 @@ EventScript_1A77EC:: @ 81A77EC
release
end
-EventScript_1A77F9:: @ 81A77F9
+Route23_EventScript_AlreadyRecognizedBadge:: @ 81A77F9
msgbox Text_OnlyPassWithBadgeOhGoAhead
release
end
-EventScript_1A7803:: @ 81A7803
+@ Duplicate of the below, only used for Boulder Badge
+Route22_NorthEntrance_EventScript_BadgeGuard:: @ 81A7803
compare VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1
- goto_if_ge EventScript_1A77EC
+ goto_if_ge Route23_EventScript_AlreadyRecognizedBoulderBadge
switch VAR_TEMP_1
- case 1, EventScript_1A78D5
- case 2, EventScript_1A78E4
- case 3, EventScript_1A78F3
- case 4, EventScript_1A7902
- case 5, EventScript_1A7911
- case 6, EventScript_1A7920
- case 7, EventScript_1A792F
- case 8, EventScript_1A793E
+ case 1, Route23_EventScript_CheckBoulderBadge
+ case 2, Route23_EventScript_CheckCascadeBadge
+ case 3, Route23_EventScript_CheckThunderBadge
+ case 4, Route23_EventScript_CheckRainbowBadge
+ case 5, Route23_EventScript_CheckSoulBadge
+ case 6, Route23_EventScript_CheckMarshBadge
+ case 7, Route23_EventScript_CheckVolcanoBadge
+ case 8, Route23_EventScript_CheckEarthBadge
end
-EventScript_1A786C:: @ 81A786C
+Route23_EventScript_BadgeGuard:: @ 81A786C
compare VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1
- goto_if_ge EventScript_1A77F9
+ goto_if_ge Route23_EventScript_AlreadyRecognizedBadge
switch VAR_TEMP_1
- case 1, EventScript_1A78D5
- case 2, EventScript_1A78E4
- case 3, EventScript_1A78F3
- case 4, EventScript_1A7902
- case 5, EventScript_1A7911
- case 6, EventScript_1A7920
- case 7, EventScript_1A792F
- case 8, EventScript_1A793E
+ case 1, Route23_EventScript_CheckBoulderBadge
+ case 2, Route23_EventScript_CheckCascadeBadge
+ case 3, Route23_EventScript_CheckThunderBadge
+ case 4, Route23_EventScript_CheckRainbowBadge
+ case 5, Route23_EventScript_CheckSoulBadge
+ case 6, Route23_EventScript_CheckMarshBadge
+ case 7, Route23_EventScript_CheckVolcanoBadge
+ case 8, Route23_EventScript_CheckEarthBadge
end
-EventScript_1A78D5:: @ 81A78D5
- goto_if_set FLAG_BADGE01_GET, EventScript_1A794D
- goto EventScript_1A77C9
+Route23_EventScript_CheckBoulderBadge:: @ 81A78D5
+ goto_if_set FLAG_BADGE01_GET, Route23_EventScript_RecognizeBoulderBadge
+ goto Route23_EventScript_MissingBoulderBadge
end
-EventScript_1A78E4:: @ 81A78E4
- goto_if_set FLAG_BADGE02_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckCascadeBadge:: @ 81A78E4
+ goto_if_set FLAG_BADGE02_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A78F3:: @ 81A78F3
- goto_if_set FLAG_BADGE03_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckThunderBadge:: @ 81A78F3
+ goto_if_set FLAG_BADGE03_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A7902:: @ 81A7902
- goto_if_set FLAG_BADGE04_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckRainbowBadge:: @ 81A7902
+ goto_if_set FLAG_BADGE04_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A7911:: @ 81A7911
- goto_if_set FLAG_BADGE05_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckSoulBadge:: @ 81A7911
+ goto_if_set FLAG_BADGE05_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A7920:: @ 81A7920
- goto_if_set FLAG_BADGE06_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckMarshBadge:: @ 81A7920
+ goto_if_set FLAG_BADGE06_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A792F:: @ 81A792F
- goto_if_set FLAG_BADGE07_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckVolcanoBadge:: @ 81A792F
+ goto_if_set FLAG_BADGE07_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A793E:: @ 81A793E
- goto_if_set FLAG_BADGE08_GET, EventScript_1A795F
- goto EventScript_1A77DE
+Route23_EventScript_CheckEarthBadge:: @ 81A793E
+ goto_if_set FLAG_BADGE08_GET, Route23_EventScript_RecognizeBadge
+ goto Route23_EventScript_MissingBadge
end
-EventScript_1A794D:: @ 81A794D
+Route23_EventScript_RecognizeBoulderBadge:: @ 81A794D
message Text_OhThatsBadgeGoRightAhead
waitmessage
playfanfare MUS_FANFA1
@@ -107,92 +108,92 @@ EventScript_1A794D:: @ 81A794D
release
end
-EventScript_1A795F:: @ 81A795F
+Route23_EventScript_RecognizeBadge:: @ 81A795F
msgbox Text_OnlyPassWithBadgeOhGoAhead
copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1
release
end
-EventScript_1A796E:: @ 81A796E
+Route23_EventScript_BadgeGuardTrigger:: @ 81A796E
textcolor 0
applymovement VAR_0x8009, Movement_WalkInPlaceFastestLeft
waitmovement 0
switch VAR_TEMP_1
- case 1, EventScript_1A79D8
- case 2, EventScript_1A79E7
- case 3, EventScript_1A79F6
- case 4, EventScript_1A7A05
- case 5, EventScript_1A7A14
- case 6, EventScript_1A7A23
- case 7, EventScript_1A7A32
- case 8, EventScript_1A7A41
+ case 1, Route23_EventScript_CheckBoulderBadgeTrigger
+ case 2, Route23_EventScript_CheckCascadeBadgeTrigger
+ case 3, Route23_EventScript_CheckThunderBadgeTrigger
+ case 4, Route23_EventScript_CheckRainbowBadgeTrigger
+ case 5, Route23_EventScript_CheckSoulBadgeTrigger
+ case 6, Route23_EventScript_CheckMarshBadgeTrigger
+ case 7, Route23_EventScript_CheckVolcanoBadgeTrigger
+ case 8, Route23_EventScript_CheckEarthBadgeTrigger
end
-EventScript_1A79D8:: @ 81A79D8
- goto_if_set FLAG_BADGE01_GET, EventScript_1A7A96
- goto EventScript_1A7A50
+Route23_EventScript_CheckBoulderBadgeTrigger:: @ 81A79D8
+ goto_if_set FLAG_BADGE01_GET, Route23_EventScript_RecognizeBoulderBadgeTrigger
+ goto Route23_EventScript_MissingBoulderBadgeTrigger
end
-EventScript_1A79E7:: @ 81A79E7
- goto_if_set FLAG_BADGE02_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckCascadeBadgeTrigger:: @ 81A79E7
+ goto_if_set FLAG_BADGE02_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A79F6:: @ 81A79F6
- goto_if_set FLAG_BADGE03_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckThunderBadgeTrigger:: @ 81A79F6
+ goto_if_set FLAG_BADGE03_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A7A05:: @ 81A7A05
- goto_if_set FLAG_BADGE04_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckRainbowBadgeTrigger:: @ 81A7A05
+ goto_if_set FLAG_BADGE04_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A7A14:: @ 81A7A14
- goto_if_set FLAG_BADGE05_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckSoulBadgeTrigger:: @ 81A7A14
+ goto_if_set FLAG_BADGE05_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A7A23:: @ 81A7A23
- goto_if_set FLAG_BADGE06_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckMarshBadgeTrigger:: @ 81A7A23
+ goto_if_set FLAG_BADGE06_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A7A32:: @ 81A7A32
- goto_if_set FLAG_BADGE07_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckVolcanoBadgeTrigger:: @ 81A7A32
+ goto_if_set FLAG_BADGE07_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A7A41:: @ 81A7A41
- goto_if_set FLAG_BADGE08_GET, EventScript_1A7AA8
- goto EventScript_1A7A77
+Route23_EventScript_CheckEarthBadgeTrigger:: @ 81A7A41
+ goto_if_set FLAG_BADGE08_GET, Route23_EventScript_RecognizeBadgeTrigger
+ goto Route23_EventScript_MissingBadgeTrigger
end
-EventScript_1A7A50:: @ 81A7A50
+Route23_EventScript_MissingBoulderBadgeTrigger:: @ 81A7A50
msgbox Text_OnlySkilledTrainersAllowedThrough
playse SE_BOO
msgbox Text_CantLetYouPass
closemessage
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1A7AB7
+ applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown
applymovement VAR_0x8009, Movement_WalkInPlaceFastestDown
waitmovement 0
releaseall
end
-EventScript_1A7A77:: @ 81A7A77
+Route23_EventScript_MissingBadgeTrigger:: @ 81A7A77
message Text_OnlyPassWithBadgeDontHaveYet
waitmessage
playse SE_BOO
waitbuttonpress
closemessage
waitse
- applymovement OBJ_EVENT_ID_PLAYER, Movement_1A7AB7
+ applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown
applymovement VAR_0x8009, Movement_WalkInPlaceFastestDown
waitmovement 0
releaseall
end
-EventScript_1A7A96:: @ 81A7A96
+Route23_EventScript_RecognizeBoulderBadgeTrigger:: @ 81A7A96
message Text_OhThatsBadgeGoRightAhead
waitmessage
playfanfare MUS_FANFA1
@@ -202,12 +203,12 @@ EventScript_1A7A96:: @ 81A7A96
releaseall
end
-EventScript_1A7AA8:: @ 81A7AA8
+Route23_EventScript_RecognizeBadgeTrigger:: @ 81A7AA8
msgbox Text_OnlyPassWithBadgeOhGoAhead
copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1
releaseall
end
-Movement_1A7AB7:: @ 81A7AB7
+Route23_Movement_WalkDown:: @ 81A7AB7
walk_down
step_end
diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc
new file mode 100644
index 000000000..15c735821
--- /dev/null
+++ b/data/scripts/safari_zone.inc
@@ -0,0 +1,37 @@
+SafariZone_EventScript_OutOfBallsMidBattle:: @ 81BFB87
+ setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3
+ special ExitSafariMode
+ setwarp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1
+ end
+
+SafariZone_EventScript_Exit:: @ 81BFB98
+ setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1
+ special ExitSafariMode
+ warp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1
+ waitstate
+ end
+
+SafariZone_EventScript_RetirePrompt:: @ 81BFBAA
+ lockall
+ msgbox SafariZone_Text_WouldYouLikeToExit, MSGBOX_YESNO
+ compare VAR_RESULT, YES
+ goto_if_eq SafariZone_EventScript_Retire
+ releaseall
+ end
+
+SafariZone_EventScript_Retire:: @ 81BFBC0
+ goto SafariZone_EventScript_Exit
+
+SafariZone_EventScript_TimesUp:: @ 81BFBC5
+ lockall
+ playse SE_PINPON
+ msgbox SafariZone_Text_TimesUp
+ goto SafariZone_EventScript_Exit
+ end
+
+SafariZone_EventScript_OutOfBalls:: @ 81BFBD7
+ lockall
+ playse SE_PINPON
+ msgbox SafariZone_Text_OutOfBalls
+ goto SafariZone_EventScript_Exit
+ end
diff --git a/data/scripts/test.inc b/data/scripts/test.inc
index 55578f159..bd0497209 100644
--- a/data/scripts/test.inc
+++ b/data/scripts/test.inc
@@ -1,27 +1,27 @@
-EventScript_1C5550:: @ 81C5552
- msgbox Text_1C556D, MSGBOX_NPC
+Test_EventScript_NPC:: @ 81C5552
+ msgbox Test_Text_WelcomeToWorldOfPokemon, MSGBOX_NPC
end
-EventScript_1C555B:: @ 81C555B
- msgbox Text_1C558D, MSGBOX_SIGN
+Test_EventScript_Sign:: @ 81C555B
+ msgbox Test_Text_ThisIsASignpost, MSGBOX_SIGN
end
-EventScript_1C5564:: @ 81C5564
- msgbox Text_1C55A4, MSGBOX_SIGN
+Test_EventScript_CoordEvent:: @ 81C5564
+ msgbox Test_Text_ThisIsACoordEvent, MSGBOX_SIGN
end
-Text_1C556D:: @ 81C556D
+Test_Text_WelcomeToWorldOfPokemon:: @ 81C556D
.string "テストよう メッセージです!\n"
.string "ポケモンの せかいへ ようこそ!$"
-Text_1C558D:: @ 81C558D
+Test_Text_ThisIsASignpost:: @ 81C558D
.string "テストよう メッセージです!\n"
.string "かんばん です$"
-Text_1C55A4:: @ 81C55A4
+Test_Text_ThisIsACoordEvent:: @ 81C55A4
.string "テストよう メッセージです!\n"
.string "ざひょう チェックの イベントです$"
.align 2
-Text_1C55C8:: @ 81C55C8
+Test_Text_Empty:: @ 81C55C8
.string "$"
diff --git a/data/scripts/trainer_tower.inc b/data/scripts/trainer_tower.inc
index dd85dc53a..2a5a84f72 100644
--- a/data/scripts/trainer_tower.inc
+++ b/data/scripts/trainer_tower.inc
@@ -320,7 +320,7 @@ EventScript_1C5410:
message Text_ObtainedTheX
waitfanfare
waitmessage
- getstdstring 2, 24
+ getstdstring 2, STDSTRING_ITEMS_POCKET
msgbox Text_PutItemAway
call EventScript_1A6675
goto EventScript_1C544F
diff --git a/data/specials.inc b/data/specials.inc
index e76326401..92256dfab 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -194,7 +194,7 @@ gSpecials:: @ 815FD60
def_special RejectEggFromDayCare
def_special GiveEggFromDaycare
def_special SetDaycareCompatibilityString
- def_special GetSelectedMonNickAndSpecies
+ def_special GetSelectedMonNicknameAndSpecies
def_special StoreSelectedPokemonInDaycare
def_special ChooseSendDaycareMon
def_special ShowDaycareLevelMenu
diff --git a/data/strings.s b/data/strings.s
index 55c54f6c3..e77730429 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -411,7 +411,7 @@ gOtherText_Use::
gOtherText_Toss::
.string "TOSS$"
-gUnknown_84161A9::
+gOtherText_Register::
.string "REGISTER$"
gOtherText_Give::
@@ -420,7 +420,7 @@ gOtherText_Give::
gUnknown_84161B7::
.string "けってい$"
-gUnknown_84161BC::
+gOtherText_Walk::
.string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1
@@ -447,16 +447,16 @@ gText_Take::
gText_Store::
.string "STORE$"
-gUnknown_84161E9::
+gOtherText_Check::
.string "CHECK$"
gUnknown_84161EF:: @ 84161EF
.string "NONE$"
-gUnknown_84161F4::
+gOtherText_Open::
.string "OPEN$"
-gUnknown_84161F9::
+gOtherText_Deselect::
.string "DESELECT$"
gUnknown_8416202:: @ 8416202
@@ -555,19 +555,19 @@ gUnknown_84162BD:: @ 84162BD
gText_Coins:: @ 84162C4
.string "{STR_VAR_1} COINS$"
-gUnknown_84162CD:: @ 0x84162CD
+gText_Items2:: @ 0x84162CD
.string "ITEMS$"
-gUnknown_84162D3:: @ 0x84162D3
+gText_PokeBalls2:: @ 0x84162D3
.string "POKé BALLS$"
-gUnknown_84162DE:: @ 0x84162DE
+gText_KeyItems2:: @ 0x84162DE
.string "KEY ITEMS$"
gText_DepositItem:: @ 84162E8
.string "DEPOSIT ITEM$"
-gUnknown_84162F5:: @ 84162F5
+gText_CloseBag:: @ 84162F5
.string "CLOSE BAG$"
gOtherText_StrVar1:: @ 84162FF
@@ -577,7 +577,7 @@ gText_IsSelected:: @ 8416301
.string " is\n"
.string "selected.$"
-gUnknown_841630F:: @ 841630F
+gText_CantWriteMailHere:: @ 841630F
.string "You can't write\n"
.string "MAIL here.$"
@@ -596,15 +596,15 @@ gText_TheStrVar1CantBeHeldHere:: @ 8416374
.string "The {STR_VAR_1} can't be held\n"
.string "here.$"
-gUnknown_841638F:: @ 841638F
+gText_DepositHowManyStrVars1:: @ 841638F
.string "Deposit how many\n"
.string "{STR_VAR_1}(s)?$"
-gUnknown_84163A7:: @ 84163A7
+gText_DepositedStrVar2StrVar1s:: @ 84163A7
.string "Deposited {STR_VAR_2}\n"
.string "{STR_VAR_1}(s).$"
-gUnknown_84163BB:: @ 84163BB
+gText_NoRoomToStoreItems:: @ 84163BB
.string "There's no room to\n"
.string "store items.$"
@@ -4598,14 +4598,14 @@ gText_WhichMoveShouldBeForgotten:: @ 841E50C
gUnknown_841E52D:: @ 0x841E52D
.string "----------$"
-gUnknown_841E538:: @ 841E538
+gText_CommStandbyAwaitingOtherPlayer:: @ 841E538
.string "Communication standby‥\n"
.string "Awaiting another player to choose.$"
-gUnknown_841E572:: @ 841E572
+gText_BattleWasRefused:: @ 841E572
.string "The battle was refused.{PAUSE 0x3C}$"
-gUnknown_841E58D:: @ 841E58D
+gText_RefusedBattle:: @ 841E58D
.string "Refused the battle.{PAUSE 0x3C}$"
gFameCheckerText_MainScreenUI:: @ 841E5A4
diff --git a/data/text/berries.inc b/data/text/berries.inc
new file mode 100644
index 000000000..3f228df4f
--- /dev/null
+++ b/data/text/berries.inc
@@ -0,0 +1,226 @@
+@ The text here is a copy/paste from Hoenn's various berry NPCs, all unused and untranslated
+
+PetalburgCity_Gym_Text_GiveEnigmaBerry:: @ 81C0523
+ .string "パパ“やあ {PLAYER}!\p"
+ .string "めずらしい きのみを てに いれたから\n"
+ .string "プレゼント するよ!$"
+
+Route104_Text_PlantBerriesInSoilTakeThis:: @ 81C054C
+ .string "ふかふかの つちに はえている きのみは\n"
+ .string "じゆうに とっても よいのじゃが‥\p"
+ .string "1つだけ きのみを おなじ ばしょに うめる\n"
+ .string "それが れいぎと いうものじゃ\p"
+ .string "ほれ これを わけてやろう$"
+
+Route104_Text_TrainersOftenMakeMonHoldBerries:: @ 81C05A8
+ .string "あんた みたところ トレーナーじゃろ?\p"
+ .string "トレーナーは よく きのみを ポケモンに\n"
+ .string "もたせとるわい\p"
+ .string "ふやすも つかうも あんた しだいじゃ$"
+
+Route111_Text_WateredPlantsEveryDayTakeBerry:: @ 81C05ED
+ .string "いつも みずを あげてたら\n"
+ .string "たくさん はなが さいたんだ\p"
+ .string "そしたら きのみも たくさん できた!\p"
+ .string "はい!\n"
+ .string "これ あげる$"
+
+Route111_Text_TryToMakeRedPokeblock:: @ 81C0629
+ .string "がんばって あかいポロック つくるんだ!\n"
+ .string "{STR_VAR_1}も がんばってね!$"
+
+Route111_Text_WhatColorBerriesToLookForToday:: @ 81C064A
+ .string "きょうは なにいろの きのみを\n"
+ .string "さがそっかなー$"
+
+Route114_Text_GatheringBerriesForContest:: @ 81C0662
+ .string "ポケモンコンテストの ゆうしょうを めざして\n"
+ .string "きのみを あつめているんだ\p"
+ .string "よかったら きみにも わけて あげるよ!$"
+
+Route114_Text_GoodLuckToYouToo:: @ 81C069C
+ .string "きみも がんばれ!$"
+
+Route114_Text_WhatBerriesShouldIPlantToday:: @ 81C06A6
+ .string "きょうは どの きのみを うめるか‥\n"
+ .string "そして なにいろの ポロックを つくるか‥\p"
+ .string "なやむのも また たのしいよ$"
+
+Route120_Text_PokeblocksExpressionOfLove:: @ 81C06DE
+ .string "ケースを ふると でてくる ポロック‥\p"
+ .string "そして それを キャッチして\n"
+ .string "たべてくれる ポケモン‥\p"
+ .string "これって あい だよね?$"
+
+Route120_Text_YouUnderstandTakeThis:: @ 81C071B
+ .string "うん うん!\n"
+ .string "やっぱ わかるひとには わかるよね\p"
+ .string "これ あげる$"
+
+Route120_Text_OwnImpressionsImportantTakeThis:: @ 81C073B
+ .string "そっか‥‥\n"
+ .string "でも ちがうと かんじることも たいせつだね\p"
+ .string "これ あげる$"
+
+Route120_Text_BerryIsRareRaiseItWithCare:: @ 81C075F
+ .string "その きのみは めずらしいもの らしいから\n"
+ .string "たいせつに そだててね!$"
+
+Route120_Text_IllGetMoreBerriesFromBerryMaster:: @ 81C0782
+ .string "また きのみめいじんに もらって こようっと$"
+
+LilycoveCity_Text_BerrySuitsYou:: @ 81C0799
+ .string "やっぱり\p"
+ .string "わたしに スーツが にあうように\n"
+ .string "うみには しおかぜが にあうな\l"
+ .string "そして きみには きのみが にあいそうだ‥‥\p"
+ .string "なんでだろうね?$"
+
+LilycoveCity_Text_BecauseYoureTrainer:: @ 81C07DF
+ .string "やっぱり それは‥‥‥‥\p"
+ .string "きみが トレーナーだからだ!$"
+
+LilycoveCity_Text_PokeblocksSuitPokemon:: @ 81C07FB
+ .string "やっぱり\p"
+ .string "わたしに シンプルさが にあうように\n"
+ .string "ポケモンには ポロックが にあうな$"
+
+Route123_BerryMastersHouse_Text_YoureDeservingOfBerry:: @ 81C0825
+ .string "わしは きのみめいじんと よばれておる\p"
+ .string "わしは せかいじゅうを うつくしい はなで\n"
+ .string "うめつくそうと きのみを そだてて\l"
+ .string "そして くばり まくって おるのじゃ\p"
+ .string "きみにも きのみを わけて あげよう!$"
+
+Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother:: @ 81C0888
+ .string "ほれ えんりょ せずに もう ひとつ!$"
+
+Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop:: @ 81C089C
+ .string "カナズミの ちかくにある サン·トウカという\n"
+ .string "フラワーショップも よろしくの\p"
+ .string "せかいに はなを さかせましょう!$"
+
+Route123_BerryMastersHouse_Text_DoneForToday:: @ 81C08D5
+ .string "きょうは もう おしまいじゃ\n"
+ .string "また おいで\p"
+ .string "せかいに はなを さかせましょう!$"
+
+Route123_BerryMastersHouse_Text_HeardAGoodSayingLately:: @ 81C08FD
+ .string "じいさんの きのみの そだてかたは\n"
+ .string "そりゃあ せかいいちじゃ\p"
+ .string "わしも はなが たかいわい\p"
+ .string "ところで あんた\n"
+ .string "いい ことばを きいたことが ないかい?$"
+
+Route123_BerryMastersHouse_Text_InspirationalTakeThis:: @ 81C0948
+ .string "おお! とても よい ことばじゃ!\n"
+ .string "かんどう したわい\p"
+ .string "ほれ これを もっていきなされ$"
+
+Route123_BerryMastersHouse_Text_GoodSayingTakeThis:: @ 81C0974
+ .string "おお! なかなか よい ことばじゃ\n"
+ .string "あんたも たいしたもんじゃ\p"
+ .string "ほれ これを もっていきなされ$"
+
+Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife:: @ 81C09A4
+ .string "まごたち 4にんも じいさんを しのぐ\n"
+ .string "おおものに なるじゃろうて\p"
+ .string "じんせい たのしいことが つきんのう!$"
+
+Route123_BerryMastersHouse_Text_Ah:: @ 81C09DA
+ .string "ほう‥‥$"
+
+Route104_PrettyPetalFlowerShop_Text_ThisIsPrettyPetalFlowerShop:: @ 81C09DF
+ .string "こんにちは!\p"
+ .string "はなを せかいに ひろめる\n"
+ .string "フラワーショップ サン·トウカです!$"
+
+Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries:: @ 81C0A07
+ .string "{PLAYER}{KUN} きのみの こと しりたい?$"
+
+Route104_PrettyPetalFlowerShop_Text_IntroLearnAboutBerries:: @ 81C0A1A
+ .string "あなたの なまえは‥‥\p"
+ .string "{PLAYER}{KUN}ね!\n"
+ .string "とっても いい なまえだね!\l"
+ .string "{PLAYER}{KUN} きのみのこと しりたい?$"
+
+Route104_PrettyPetalFlowerShop_Text_BerriesExplanation:: @ 81C0A4E
+ .string "きのみはね くろい ふかふかの つちの\n"
+ .string "ところで たまに とれるの\l"
+ .string "でね‥‥\p"
+ .string "とったら その1つを また うめるの!\p"
+ .string "そうすると その きのみ から\n"
+ .string "めがでて みきが できて はながさいて\l"
+ .string "また きのみ が できるの\p"
+ .string "そうやって はなを ふやして\n"
+ .string "せかいじゅうを はなに するのが\l"
+ .string "わたしの ゆめ なんだ!\p"
+ .string "だから {PLAYER}{KUN}も きのみを うめて\n"
+ .string "せかいに はなを ふやしてね!$"
+
+Route104_PrettyPetalFlowerShop_Text_FlowersBringHappiness:: @ 81C0B0B
+ .string "おはなって とっても しあわせな きぶんに\n"
+ .string "してくれるよね$"
+
+Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis:: @ 81C0B29
+ .string "こんにちは!\p"
+ .string "おはなは せわを すれば するほど\n"
+ .string "たくさん きれいに さいて くれるの\p"
+ .string "あなたも せわを したく なった でしょ?\n"
+ .string "これ あげるわ$"
+
+Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation:: @ 81C0B73
+ .string "きのみが そだつ たびに\n"
+ .string "じょうろで みずを あげてね!\p"
+ .string "あとね\p"
+ .string "きのみは ずっと ずっと ほうっておくと\n"
+ .string "じめんに おちてしまうの\l"
+ .string "でもね そこから また めがでて くるの!\p"
+ .string "すごいよね!\n"
+ .string "いきものの ちからを かんじるよね$"
+
+Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers:: @ 81C0BE5
+ .string "おねーちゃんたちを みならって\n"
+ .string "がんばって おはなを そだててるの\p"
+ .string "はい! これあげる!$"
+
+Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries:: @ 81C0C12
+ .string "きのみは うめて おおきく したり\n"
+ .string "ポケモンに もたせたり できるの\p"
+ .string "でも さいきん きのみを いくつか まぜると\n"
+ .string "ポケモンの おかしになる きかいが\l"
+ .string "ある らしいんだ\p"
+ .string "あたしも おかし ほしー$"
+
+SootopolisCity_Text_NameIsKiriHaveOneOfThese:: @ 81C0C74
+ .string "{STR_VAR_1} なまえ なんていうの?\p"
+ .string "‥‥‥ ‥‥‥ ‥‥‥\n"
+ .string "へー いいねー\p"
+ .string "わたしは キリ っていう なまえなの\p"
+ .string "パパと ママが すくすくと そだって\n"
+ .string "こころの あたたかい おんなのこに なって\l"
+ .string "ほしいっていう ねがいを こめたんだって!\p"
+ .string "{STR_VAR_1}にも これ あげる$"
+
+SootopolisCity_Text_GiveYouThisBerryToo:: @ 81C0CF5
+ .string "あと {STR_VAR_1}には キリの だいすきな\n"
+ .string "この きのみも あげちゃう!$"
+
+SootopolisCity_Text_WhatKindOfWishInYourName:: @ 81C0D16
+ .string "{STR_VAR_1}の なまえには\n"
+ .string "どんな ねがいが こめられてるの?$"
+
+SootopolisCity_Text_LikeSeasonBornIn:: @ 81C0D32
+ .string "はる なつ あき ふゆ\n"
+ .string "はるに うまれると はるが すきで\l"
+ .string "なつに うまれると なつが すきなのかな?$"
+
+SootopolisCity_Text_ThenILoveAutumn:: @ 81C0D66
+ .string "じゃあ キリは あきに うまれたから\n"
+ .string "あきが だいすき!\p"
+ .string "{STR_VAR_1}は いつが すき?$"
+
+SootopolisCity_Text_OhDoesntMatter:: @ 81C0D8F
+ .string "そっか‥\n"
+ .string "かんけいないのか‥\p"
+ .string "しりたいことって たくさんあるなー$"
diff --git a/data/text/braille.inc b/data/text/braille.inc
index a057ec84e..7346b2795 100644
--- a/data/text/braille.inc
+++ b/data/text/braille.inc
@@ -1,116 +1,116 @@
-gUnknown_81A9288:: @ 81A9288
+Braille_Text_Up:: @ 81A9288
.braille "UP$"
-gUnknown_81A928B:: @ 81A928B
+Braille_Text_Down:: @ 81A928B
.braille "DOWN$"
-gUnknown_81A9290:: @ 81A9290
+Braille_Text_Right:: @ 81A9290
.braille "RIGHT$"
-gUnknown_81A9296:: @ 81A9296
+Braille_Text_Left:: @ 81A9296
.braille "LEFT$"
-gUnknown_81A929B:: @ 81A929B
+Braille_Text_Cut:: @ 81A929B
.braille "CUT$"
-gUnknown_81A929F:: @ 81A929F
+Braille_Text_ABC:: @ 81A929F
.braille "ABC$"
-gUnknown_81A92A3:: @ 81A92A3
+Braille_Text_GHI:: @ 81A92A3
.braille "GHI$"
-gUnknown_81A92A7:: @ 81A92A7
+Braille_Text_MNO:: @ 81A92A7
.braille "MNO$"
-gUnknown_81A92AB:: @ 81A92AB
+Braille_Text_TUV:: @ 81A92AB
.braille "TUV$"
-gUnknown_81A92AF:: @ 81A92AF
+Braille_Text_DEF:: @ 81A92AF
.braille "DEF$"
-gUnknown_81A92B3:: @ 81A92B3
+Braille_Text_JKL:: @ 81A92B3
.braille "JKL$"
-gUnknown_81A92B7:: @ 81A92B7
+Braille_Text_PQRS:: @ 81A92B7
.braille "PQRS$"
-gUnknown_81A92BC:: @ 81A92BC
+Braille_Text_WXYZ:: @ 81A92BC
.braille "WXYZ$"
-gUnknown_81A92C1:: @ 81A92C1
+Braille_Text_Period:: @ 81A92C1
.braille ".$"
-gUnknown_81A92C3:: @ 81A92C3
+Braille_Text_Comma:: @ 81A92C3
.braille ",$"
-gUnknown_81A92C5:: @ 81A92C5
+Braille_Text_Everything:: @ 81A92C5
.braille "EVERYTHING$"
-gUnknown_81A92D0:: @ 81A92D0
+Braille_Text_HasMeaning1:: @ 81A92D0
.braille "HAS MEANING$"
-gUnknown_81A92DC:: @ 81A92DC
+Braille_Text_Existence:: @ 81A92DC
.braille "EXISTENCE$"
-gUnknown_81A92E6:: @ 81A92E6
+Braille_Text_HasMeaning2:: @ 81A92E6
.braille "HAS MEANING$"
-gUnknown_81A92F2:: @ 81A92F2
+Braille_Text_BeingAlive:: @ 81A92F2
.braille "BEING ALIVE$"
-gUnknown_81A92FE:: @ 81A92FE
+Braille_Text_HasMeaning3:: @ 81A92FE
.braille "HAS MEANING$"
-gUnknown_81A930A:: @ 81A930A
+Braille_Text_HaveDreams:: @ 81A930A
.braille "HAVE DREAMS$"
-gUnknown_81A9316:: @ 81A9316
+Braille_Text_UsePower:: @ 81A9316
.braille "USE POWER.$"
-gUnknown_81A9321:: @ 81A9321
+Braille_Text_LetTheTwo:: @ 81A9321
.braille "LET THE TWO$"
-gUnknown_81A932D:: @ 81A932D
+Braille_Text_Glittering:: @ 81A932D
.braille "GLITTERING$"
-gUnknown_81A9338:: @ 81A9338
+Braille_Text_Stones:: @ 81A9338
.braille "STONES$"
-gUnknown_81A933F:: @ 81A933F
+Braille_Text_OneInRed:: @ 81A933F
.braille "ONE IN RED$"
-gUnknown_81A934A:: @ 81A934A
+Braille_Text_OneInBlue:: @ 81A934A
.braille "ONE IN BLUE$"
-gUnknown_81A9356:: @ 81A9356
+Braille_Text_ConnectThe:: @ 81A9356
.braille "CONNECT THE$"
-gUnknown_81A9362:: @ 81A9362
+Braille_Text_Past:: @ 81A9362
.braille "PAST.$"
-gUnknown_81A9368:: @ 81A9368
+Braille_Text_TwoFriends:: @ 81A9368
.braille "TWO FRIENDS$"
-gUnknown_81A9374:: @ 81A9374
+Braille_Text_Sharing:: @ 81A9374
.braille "SHARING$"
-gUnknown_81A937C:: @ 81A937C
+Braille_Text_PowerOpen:: @ 81A937C
.braille "POWER OPEN$"
-gUnknown_81A9387:: @ 81A9387
+Braille_Text_AWindowTo:: @ 81A9387
.braille "A WINDOW TO$"
-gUnknown_81A9393:: @ 81A9393
+Braille_Text_ANewWorld:: @ 81A9393
.braille "A NEW WORLD$"
-gUnknown_81A939F:: @ 81A939F
+Braille_Text_ThatGlows:: @ 81A939F
.braille "THAT GLOWS.$"
-gUnknown_81A93AB:: @ 81A93AB
+Braille_Text_TheNext:: @ 81A93AB
.braille "THE NEXT$"
-gUnknown_81A93B4:: @ 81A93B4
+Braille_Text_WorldWaits:: @ 81A93B4
.braille "WORLD WAITS$"
-gUnknown_81A93C0:: @ 81A93C0
+Braille_Text_ForYou:: @ 81A93C0
.braille "FOR YOU.$"
diff --git a/data/text/competitive_brothers.inc b/data/text/competitive_brothers.inc
new file mode 100644
index 000000000..65afb5aab
--- /dev/null
+++ b/data/text/competitive_brothers.inc
@@ -0,0 +1,39 @@
+@ The text here is a copy/paste from Hoenn's competitive brothers, the NPCs in Sootopolis who request to see big Barboach/Shroomish (Seedot/Lotad in Emerald). It's all unused and untranslated
+
+SootopolisCity_Text_PleaseShowMeBigMon:: @ 81C0283
+ .string "わしは おおきな {STR_VAR_1}に\n"
+ .string "とても きょうみが ある!\p"
+ .string "ん? きみ {STR_VAR_1} もってるの?\n"
+ .string "ちょ ちょ ちょっと···\l"
+ .string "おじさんに みせて おくれ!$"
+
+SootopolisCity_Text_GrandMonThanksForShowingMe:: @ 81C02CB
+ .string "おお! こいつは でかい!\n"
+ .string "とても すばらしい {STR_VAR_1}だ!\p"
+ .string "みせて くれて ありがとう\n"
+ .string "おれいに これを もって いきなさい$"
+
+SootopolisCity_Text_ReceivedOneItem:: @ 81C0309
+ .string "{PLAYER}は\n"
+ .string "{STR_VAR_2}を もらった!$"
+
+SootopolisCity_Text_HuhBagIsCrammedFull:: @ 81C0317
+ .string "ありゃ?\n"
+ .string "きみ もちもの いっぱいだね$"
+
+SootopolisCity_Text_IveSeenBiggerMonThanThisOne:: @ 81C032B
+ .string "ううむ わしは これより おおきい\n"
+ .string "{STR_VAR_1}を みたこと あるな···$"
+
+SootopolisCity_Text_QuiteSomethingButNotMon:: @ 81C034D
+ .string "おお こいつは なかなか···って\n"
+ .string "これ {STR_VAR_1}じゃ ないよ!$"
+
+SootopolisCity_Text_TooBadDontHaveBigMon:: @ 81C036C
+ .string "おおきい {STR_VAR_1} もってないの?\l"
+ .string "それは ざんねん···\n"
+ .string "こんど おおきい {STR_VAR_1} みせてね$"
+
+SootopolisCity_Text_BiggestMonPlayersXCmColossus:: @ 81C0399
+ .string "しじょう さいだいの {STR_VAR_1}!\n"
+ .string "{STR_VAR_2}の {STR_VAR_3}cmのやつ!$"
diff --git a/data/text/day_care.inc b/data/text/day_care.inc
new file mode 100644
index 000000000..1e1d391be
--- /dev/null
+++ b/data/text/day_care.inc
@@ -0,0 +1,130 @@
+@ Same as Hoenn's day-care text, used by the Four Island Day-Care. Unused text translated in Emerald
+
+DayCare_Text_ImDaycareManSpeakToMyWife:: @ 81BF555
+ .string "I'm the DAY-CARE MAN.\p"
+ .string "I help take care of the precious\n"
+ .string "POKéMON of TRAINERS.\p"
+ .string "If you'd like me to raise your\n"
+ .string "POKéMON, have a word with my wife.$"
+
+DayCare_Text_DoYouWantEgg:: @ 81BF5E3
+ .string "Ah, it's you!\p"
+ .string "We were raising your POKéMON, and\n"
+ .string "my goodness, were we surprised!\p"
+ .string "Your POKéMON had an EGG!\p"
+ .string "We don't know how it got there,\n"
+ .string "but your POKéMON had it.\p"
+ .string "You do want it, yes?$"
+
+DayCare_Text_YourMonIsDoingFine:: @ 81BF69A
+ .string "Ah, it's you! Good to see you.\n"
+ .string "Your {STR_VAR_1}'s doing fine.$"
+
+DayCare_Text_IllKeepIt:: @ 81BF6CF
+ .string "Well then, I'll keep it.\n"
+ .string "Thanks!$"
+
+DayCare_Text_YouHaveNoRoomForIt:: @ 81BF6F0
+ .string "You have no room for it…\n"
+ .string "Come back when you've made room.$"
+
+DayCare_Text_ReceivedEgg:: @ 81BF72A
+ .string "{PLAYER} received the EGG from\n"
+ .string "the DAY-CARE MAN.$"
+
+DayCare_Text_TakeGoodCareOfIt:: @ 81BF755
+ .string "Take good care of it.$"
+
+DayCare_Text_SeeWifeIfYouWantToPickUpMon:: @ 81BF76B
+ .string "ポケモンを ひきとりたい ときは\n"
+ .string "ばさんに いって おくれ$"
+
+DayCare_Text_YourMonsAreDoingFine:: @ 81BF789
+ .string "Ah, it's you! Your {STR_VAR_1} and\n"
+ .string "{STR_VAR_2} are doing fine.$"
+
+DayCare_Text_IWillKeepDoYouWantIt:: @ 81BF7B6
+ .string "I really will keep it.\n"
+ .string "You do want this, yes?$"
+
+DayCare_Text_WouldYouLikeUsToRaiseMon:: @ 81BF7E4
+ .string "I'm the DAY-CARE LADY.\p"
+ .string "We can raise POKéMON for you.\p"
+ .string "Would you like us to raise one?$"
+
+DayCare_Text_WhichMonShouldWeRaise:: @ 81BF839
+ .string "Which POKéMON should we raise for\n"
+ .string "you?$"
+
+DayCare_Text_WellRaiseYourMon:: @ 81BF860
+ .string "Fine, we'll raise your {STR_VAR_1}\n"
+ .string "for a while.\p"
+ .string "Come back for it later.$"
+
+DayCare_Text_WeCanRaiseOneMore:: @ 81BF89F
+ .string "We can raise two of your POKéMON.\p"
+ .string "Would you like us to raise one\n"
+ .string "more POKéMON for you?$"
+
+DayCare_Text_HusbandWasLookingForYou:: @ 81BF8F6
+ .string "My husband was looking for you.$"
+
+DayCare_Text_FineThenComeAgain:: @ 81BF916
+ .string "Oh, fine, then.\n"
+ .string "Come again.$"
+
+DayCare_Text_NotEnoughMoney:: @ 81BF932
+ .string "You don't have enough money…$"
+
+DayCare_Text_TakeOtherOneBackToo:: @ 81BF94F
+ .string "Will you take back the other one,\n"
+ .string "too?$"
+
+DayCare_Text_ComeAgain:: @ 81BF976
+ .string "Fine.\n"
+ .string "Come again.$"
+
+DayCare_Text_GoodToSeeYou:: @ 81BF988
+ .string "Ah, it's you!\n"
+ .string "Good to see you.\p"
+ .string "Your POKéMON can only be doing\n"
+ .string "good!$"
+
+DayCare_Text_YourMonHasGrownXLevels:: @ 81BF9CC
+ .string "By level, your {STR_VAR_1} has\n"
+ .string "grown by {STR_VAR_2}.$"
+
+DayCare_Text_YourPartyIsFull:: @ 81BF9EF
+ .string "Your POKéMON party is full.\n"
+ .string "Make room, then come see me.$"
+
+DayCare_Text_TakeBackWhichMon:: @ 81BFA28
+ .string "どっちの ポケモンを ひきとるかい?$"
+
+DayCare_Text_ItWillCostX:: @ 81BFA3B
+ .string "If you want your {STR_VAR_1} back,\n"
+ .string "it will cost ¥{STR_VAR_2}.$"
+
+DayCare_Text_HeresYourMon:: @ 81BFA67
+ .string "Perfect!\n"
+ .string "Here's your POKéMON.$"
+
+DayCare_Text_TookBackMon:: @ 81BFA85
+ .string "{PLAYER} took back {STR_VAR_1} from\n"
+ .string "the DAY-CARE LADY.$"
+
+DayCare_Text_YouHaveJustOneMon:: @ 81BFAAD
+ .string "Oh? But you have just one\n"
+ .string "POKéMON.\p"
+ .string "Come back another time.$"
+
+DayCare_Text_TakeYourMonBack:: @ 81BFAE8
+ .string "Will you take your POKéMON back?$"
+
+DayCare_Text_WhatWillYouBattleWith:: @ 81BFB09
+ .string "If you leave me that POKéMON,\n"
+ .string "what will you battle with?\p"
+ .string "Come back another time.$"
+
+DayCare_Text_Huh:: @ 81BFB5A
+ .string "Huh?$"
diff --git a/data/text/eon_ticket.inc b/data/text/eon_ticket.inc
new file mode 100644
index 000000000..25ccb739b
--- /dev/null
+++ b/data/text/eon_ticket.inc
@@ -0,0 +1,44 @@
+@ The text here is a copy/paste from Hoenn's Eon Ticket event, all unused and untranslated
+
+Text_DadLetterArrivedForYouPlayer:: @ 81C03B5
+ .string "パパ“{PLAYER}! よく きたな!\n"
+ .string "{PLAYER}あての てがみが とどけられたぞ$"
+
+Text_DadPassForShipNeverSeenBefore:: @ 81C03D7
+ .string "パパ“わたしも みたことのない\n"
+ .string "ふねの チケット だな‥‥\l"
+ .string "ミナモに いってみると いいだろう$"
+
+Text_FerryToSlateportOhThatPass:: @ 81C0407
+ .string "カイナいき れんらくせん‥‥\p"
+ .string "あら?\n"
+ .string "その チケットは‥‥!$"
+
+Text_YoureOneWhoBroughtOddPass:: @ 81C0426
+ .string "ヘンテコな チケットを\n"
+ .string "もってきたのは おまえさんか?\p"
+ .string "おまえが いこうと しているのは\n"
+ .string "みなみの はての ちっぽけな しま‥‥\p"
+ .string "そこでは なにが おこるのか\n"
+ .string "だれも わからねえ‥‥\l"
+ .string "ううむ ふなのりの ちが さわぐぜ!\p"
+ .string "さあ のりな!$"
+
+Text_NothingHereSailBackToLilycove:: @ 81C049D
+ .string "なにもねえ ちんけな しま だな‥‥\n"
+ .string "ミナモへ かえるか?$"
+
+Text_SailHomeWeWill:: @ 81C04BB
+ .string "よし! かえると するか!$"
+
+Text_AsYouLikeThen:: @ 81C04C9
+ .string "そうかい\n"
+ .string "まあ すきにするが いいさ$"
+
+SouthernIsland_Interior_Text_Sign:: @ 81C04DC
+ .string "すべての ゆめは もうひとつの げんじつ\n"
+ .string "それを わすれるべからず‥‥$"
+
+SouthernIsland_Exterior_Text_Sign:: @ 81C0500
+ .string "きおく かすみし ものは\n"
+ .string "こころに きざみつける ことを のぞむ‥‥$"
diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc
index 25ce2e5e9..a65dc1f48 100644
--- a/data/text/fame_checker.inc
+++ b/data/text/fame_checker.inc
@@ -1404,7 +1404,7 @@ gUnknown_81B161B:: @ 81B161B
.string "CELADON GYM, you can often\l"
.string "see ERIKA snoozing.$"
-gUnknown_81B16A8:: @ 81B16A8
+PokemonJournal_Text_SpecialFeatureKoga:: @ 81B16A8
.string "POKéMON JOURNAL\p"
.string "Special Feature: FUCHSIA GYM\n"
.string "LEADER KOGA!\p"
diff --git a/data/text/flavor_text.inc b/data/text/flavor_text.inc
new file mode 100644
index 000000000..a3e46e8d8
--- /dev/null
+++ b/data/text/flavor_text.inc
@@ -0,0 +1,122 @@
+@ Flavor text for interacting with various background objects
+
+gUnknown_81C0DB0:: @ 81C0DB0
+ .string "It's crammed full of POKéMON\n"
+ .string "books.$"
+
+Text_NothingButPokemonBooks:: @ 81C0DD4
+ .string "ほんだなに ならんでいるのは\n"
+ .string "ポケモンの ほん ばかりだ$"
+
+Text_ATownMap:: @ 81C0DF1
+ .string "A TOWN MAP.$"
+
+gUnknown_81C0DFD:: @ 81C0DFD
+ .string "Wow!\n"
+ .string "Tons of POKéMON stuff!$"
+
+Text_DishesPlatesNeatlyLinedUp:: @ 81C0E19
+ .string "Dishes and plates are neatly\n"
+ .string "lined up.$"
+
+gUnknown_81C0E40:: @ 81C0E40
+ .string "It smells delicious!\n"
+ .string "Somebody's been cooking here.$"
+
+gUnknown_81C0E73:: @ 81C0E73
+ .string "It's a nicely made dresser.\n"
+ .string "It will hold a lot of stuff.$"
+
+gUnknown_81C0EAC:: @ 81C0EAC
+ .string "There's a pile of snacks here.$"
+
+gUnknown_81C0ECB:: @ 81C0ECB
+ .string "All your item needs fulfilled!\n"
+ .string "POKéMON MART$"
+
+gUnknown_81C0EF7:: @ 81C0EF7
+ .string "Heal Your POKéMON!\n"
+ .string "POKéMON CENTER$"
+
+gUnknown_81C0F19:: @ 81C0F19
+ .string "INDIGO PLATEAU\p"
+ .string "The ultimate goal of TRAINERS!\n"
+ .string "POKéMON LEAGUE HQ$"
+
+gUnknown_81C0F59:: @ 81C0F59
+ .string "INDIGO PLATEAU\p"
+ .string "The highest POKéMON authority!\n"
+ .string "POKéMON LEAGUE HQ$"
+
+gUnknown_81C0F99:: @ 81C0F99
+ .string "It should be packed with all kinds\n"
+ .string "of delicious things to eat.$"
+
+gUnknown_81C0FD8:: @ 81C0FD8
+ .string "It's a blueprint of some sort.\n"
+ .string "It's filled with diagrams and text.$"
+
+gUnknown_81C101B:: @ 81C101B
+ .string "It's a pretty picture of a POKéMON.\n"
+ .string "It looks like it's feeling good.$"
+
+gUnknown_81C1060:: @ 81C1060
+ .string "What could this machine be?\n"
+ .string "Better not mess around with it!$"
+
+gUnknown_81C109C:: @ 81C109C
+ .string "It's a telephone.\n"
+ .string "Better not use it.$"
+
+gUnknown_81C10C1:: @ 81C10C1
+ .string "It's all complicated words and\n"
+ .string "numbers that make no sense…$"
+
+gUnknown_81C10FC:: @ 81C10FC
+ .string "It's an advertising poster about\n"
+ .string "all kinds of products.$"
+
+gUnknown_81C1134:: @ 81C1134
+ .string "Oh, that smells tasty!\n"
+ .string "It might get the stomach growling!$"
+
+gUnknown_81C116E:: @ 81C116E
+ .string "Inside this…\n"
+ .string "……\p"
+ .string "There's nothing here!$"
+
+gUnknown_81C1194:: @ 81C1194
+ .string "It's a cup with a POKéMON mark\n"
+ .string "on it.$"
+
+gUnknown_81C11BA:: @ 81C11BA
+ .string "The window is very well polished.$"
+
+gUnknown_81C11DC:: @ 81C11DC
+ .string "Outside the window…\p"
+ .string "The sky looks fantastically\n"
+ .string "beautiful.$"
+
+gUnknown_81C1217:: @ 81C1217
+ .string "Lights in different colors are\n"
+ .string "flashing on and off.$"
+
+gUnknown_81C124B:: @ 81C124B
+ .string "All sorts of tools are lined up\n"
+ .string "neatly.$"
+
+gUnknown_81C1273:: @ 81C1273
+ .string "It's a machine of some sort.\n"
+ .string "It sure is impressive.$"
+
+gUnknown_81C12A7:: @ 81C12A7
+ .string "It's the latest video game!\n"
+ .string "It sure looks fun!$"
+
+gUnknown_81C12D6:: @ 81C12D6
+ .string "There are obvious signs of burglary\n"
+ .string "here…$"
+
+gUnknown_81C1300:: @ 81C1300
+ .string "There's a POKéMON on TV!\n"
+ .string "It looks like it's having fun.$"
diff --git a/data/text/safari_zone.inc b/data/text/safari_zone.inc
new file mode 100644
index 000000000..5d46de688
--- /dev/null
+++ b/data/text/safari_zone.inc
@@ -0,0 +1,168 @@
+@ The text here is a copy/paste from Hoenn's Safari Zone, and any unused text was left untranslated
+
+SafariZone_Text_WouldYouLikeToExit:: @ 81BFBE9
+ .string "Would you like to exit the SAFARI\n"
+ .string "ZONE right now?$"
+
+SafariZone_Text_TimesUp:: @ 81BFC1B
+ .string "PA: Ding-dong!\p"
+ .string "Time's up!\p"
+ .string "PA: Your SAFARI GAME is over!$"
+
+SafariZone_Text_OutOfBalls:: @ 81BFC53
+ .string "PA: Ding-dong!\p"
+ .string "You are out of SAFARI BALLS!\p"
+ .string "PA: Your SAFARI GAME is over!$"
+
+SafariZone_Text_WelcomeToSafariZone:: @ 81BFC9D
+ .string "サファリゾーンへ ようこそ!\p"
+ .string "ここでは ホウエンでは なかなか\n"
+ .string "みることの できない ポケモンを\p"
+ .string "しぜんの すがたの まま\n"
+ .string "めに することが できます\p"
+ .string "また ポケモントレーナーの\n"
+ .string "ようぼうに おこたえ して\p"
+ .string "ポケモンを\n"
+ .string "つかまえる ことも できます!\p"
+ .string "サファリゾーンを たのしんで いってね!$"
+
+SafariZone_Text_WelcomeFirstTime:: @ 81BFD30
+ .string "サファリゾーンへ ようこそ!\n"
+ .string "サファリゾーンは はじめて ですか?$"
+
+SafariZone_Text_ComeInAndEnjoy:: @ 81BFD52
+ .string "サファリゾーンを たのしんで いってね!$"
+
+SafariZone_Text_FirstTimeInfo:: @ 81BFD67
+ .string "サファリゾーンでは\n"
+ .string "30この サファリボールを つかって\l"
+ .string "ポケモンを つかまえる ことが できます\p"
+ .string "サファリボールを つかいきるか\n"
+ .string "500ぽ あるくと\p"
+ .string "ゲームは しゅうりょう です\p"
+ .string "サファリゾーンを たのしんで いってね!$"
+
+SafariZone_Text_WouldYouLikeToPlay:: @ 81BFDD7
+ .string "サファリゾーンへ ようこそ!\p"
+ .string "500えんで ポケモン つかまえほうだい!\n"
+ .string "サファリゲームに さんか しますか?$"
+
+SafariZone_Text_PlayAnotherTime:: @ 81BFE0F
+ .string "そうですか\n"
+ .string "こんど ぜひ さんか してください!$"
+
+SafariZone_Text_NotEnoughMoney:: @ 81BFE28
+ .string "おかねが たりませんよ!$"
+
+SafariZone_Text_ThatWillBe500Please:: @ 81BFE35
+ .string "それでは 500えん いただきます$"
+
+SafariZone_Text_HereAreYourSafariBalls:: @ 81BFE47
+ .string "では サファリボールを どうぞ!$"
+
+SafariZone_Text_Received30SafariBalls:: @ 81BFE58
+ .string "{PLAYER}は サファリボールを\n"
+ .string "30こ うけとった!$"
+
+SafariZone_Text_PleaseEnjoyYourself:: @ 81BFE70
+ .string "じかんに なりましたら\n"
+ .string "こちらから おしらせ しますので\p"
+ .string "ぞんぶんに おたのしみ ください!\n"
+ .string "では いってらっしゃい!$"
+
+SafariZone_Text_ExcuseMeYourPCBoxIsFull:: @ 81BFEAC
+ .string "Excuse me!\n"
+ .string "Your PC BOX is full.$"
+
+SafariZone_Text_YouNeedPokeblockCase:: @ 81BFECC
+ .string "あ! おきゃくさん\n"
+ .string "ポロックケースを おもちで ないですね?\p"
+ .string "サファリゾーンは ポロックを つかうと\n"
+ .string "より おたのしみ いただけますので\p"
+ .string "ぜひ ポロックケースを\n"
+ .string "おもちに なって おこし ください!$"
+
+SafariZone_South_Text_StillHaveTimeExit:: @ 81BFF30
+ .string "まだ じかんが のこっていますが\n"
+ .string "サファリゾーンを やめますか?$"
+
+SafariZone_South_Text_EnjoyTheRestOfYourAdventure:: @ 81BFF51
+ .string "では ひきつづき おたのしみ ください!$"
+
+SafariZone_South_Text_ExitEarlyThankYouForPlaying:: @ 81BFF66
+ .string "わかりました\p"
+ .string "それでは のこりの サファリボールを\n"
+ .string "おあずかり します\p"
+ .string "おつかれさまでした\n"
+ .string "また ごりよう ください$"
+
+SafariZone_South_Text_GoodLuck:: @ 81BFFA1
+ .string "それでは いってらっしゃい!\l"
+ .string "なにか ありましたら\n"
+ .string "わたしに こえを かけて くださいね$"
+
+SafariZone_South_Text_Boy:: @ 81BFFCE
+ .string "しってた?\p"
+ .string "あの しかくい はこに ポロックを おくと\n"
+ .string "ポケモンが あつまって くるんだよ!$"
+
+SafariZone_South_Text_Man:: @ 81BFFFD
+ .string "この さきに いきたい けど\n"
+ .string "じてんしゃ もって くるの わすれた‥‥\p"
+ .string "おくに めずらしい ポケモンが\n"
+ .string "いそうな きが するのに!$"
+
+SafariZone_Southwest_Text_Woman:: @ 81C003F
+ .string "ポケモンに ポロックを なげても\n"
+ .string "しらんぷり される ときが あるのよ\p"
+ .string "ポケモンにも すききらいが あるのかしら?$"
+
+SafariZone_Northwest_Text_Man:: @ 81C0079
+ .string "ぜぇ‥‥ ぜぇ‥‥\n"
+ .string "やっと ここまで きたけど‥‥\p"
+ .string "つかれちゃって ポケモン つかまえる\n"
+ .string "げんきも のこって ないよ‥‥$"
+
+SafariZone_North_Text_Fisherman:: @ 81C00B6
+ .string "ホウエンに いない みずポケモンを\n"
+ .string "さがしに きたんだけど‥‥\p"
+ .string "みずうみは どこにあるのか\n"
+ .string "きみ しってるかい?$"
+
+SafariZone_North_Text_Man:: @ 81C00EF
+ .string "ここで めずらしい ポケモンを\n"
+ .string "たくさん つかまえて\l"
+ .string "ともだちと こうかん するんだ!$"
+
+SafariZone_South_Text_Youngster:: @ 81C011B
+ .string "ポロックおきばに おいた ポロックが\n"
+ .string "いつのまにか なくなっていた‥‥\p"
+ .string "しらない うちに\n"
+ .string "ポケモンが たべちゃったのかな?$"
+
+Route121_SafariZoneEntrance_Text_TrainerTip:: @ 81C0159
+ .string "サファリゾーンの おとくな じょうほう!\p"
+ .string "であった ポケモンに\n"
+ .string "ポロックを なげると にげにくく なります!$"
+
+SafariZone_Southwest_Text_RestHouseSign:: @ 81C0190
+ .string "あるき つかれたら ちょっと ひといき!\n"
+ .string "‘みんなの きゅうけいじょ'$"
+
+SafariZone_RestHouse_Text_Youngster:: @ 81C01B4
+ .string "おれ ポロック もってないけど\n"
+ .string "ポケモン たくさん つかまえたよ\p"
+ .string "ちかづいて ボールを なげる だけで\n"
+ .string "けっこう つかまえられる もんだよ!$"
+
+SafariZone_RestHouse_Text_PsychicM:: @ 81C01FB
+ .string "ポロックを つかうと いつもより\n"
+ .string "ちょっぴり にげにくく なるみたい\p"
+ .string "だから にげにくい ポケモンに つかっても\n"
+ .string "あんまり いみが ないかもね$"
+
+SafariZone_RestHouse_Text_FatMan:: @ 81C0243
+ .string "ポロックおきばに ポロック おいて\n"
+ .string "ポケモンを つかまえると\p"
+ .string "おなじ ような せいかくの ポケモンが\n"
+ .string "あつまる きが するなあ$"
diff --git a/data/text/teachy_tv.inc b/data/text/teachy_tv.inc
index 3989aa5d1..ae0731142 100644
--- a/data/text/teachy_tv.inc
+++ b/data/text/teachy_tv.inc
@@ -19,7 +19,7 @@ gTeachyTvString_RegisterItem:: @ 841B81B
gTeachyTvString_Cancel:: @ 841B836
.string "CANCEL$"
-gTeachyTvText_PokeDudeSaysHello:: @ 841B83D
+gTeachyTvText_PokedudeSaysHello:: @ 841B83D
.string "Hey, all you TRAINERS out there!\n"
.string "HELLO, TRAINERS!\p"
.string "……… ……… ………\p"
@@ -164,7 +164,7 @@ gTeachyTvText_TMsScript1:: @ 841C459
.string "You can check them out in detail,\n"
.string "too.$"
-gPokeDudeText_TMTypes:: @ 841C587
+gPokedudeText_TMTypes:: @ 841C587
.string "POKé DUDE: NORMAL, WATER, GRASS…\n"
.string "TMs also come in types.\p"
.string "Check the type and teach it to\n"
@@ -175,7 +175,7 @@ gPokeDudeText_TMTypes:: @ 841C587
.string "GRASS-type POKéMON can learn.\p"
.string "There's one other thing!$"
-gPokeDudeText_ReadTMDescription:: @ 841C693
+gPokedudeText_ReadTMDescription:: @ 841C693
.string "Don't just look at the type, read\n"
.string "the description, too.\p"
.string "It will contain hints about what\n"
diff --git a/data/union_room.s b/data/union_room.s
deleted file mode 100644
index 9bcc4a193..000000000
--- a/data/union_room.s
+++ /dev/null
@@ -1,1571 +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_8456C74:: @ 8456C74
- .word gUnknown_84571AC
- .word gUnknown_8459394
- .word gUnknown_84593A4
- .word gUnknown_84593B4
- .word gUnknown_84593C4
- .word gUnknown_84593D4
- .word gUnknown_84593E4
- .word gUnknown_84593F4
- .word gUnknown_84593DC
- .word gUnknown_8459400
- .word gUnknown_8459410
- .word gUnknown_845941C
- .word gUnknown_845942C
- .word gUnknown_8459434
- .word gUnknown_8459440
- .word gUnknown_84571AC
- .word gUnknown_84571AC
- .word gUnknown_84571AC
- .word gUnknown_84571AC
- .word gUnknown_84571AC
- .word gUnknown_84571AC
- .word gUnknown_84593E4
- .word gUnknown_84593F4
-
-gUnknown_8456CD0:: @ 8456CD0
- .byte 0x00, 0x00, 0x00, 0x1E, 0x02, 0x0F @ window template
- .2byte 0x0008
-
- @ pal table?
-gUnknown_8456CD8:: @ 8456CD8
- .2byte 0x0201, 0x0000
- .2byte 0x0202, 0x0000
- .2byte 0x0403, 0x0000
- .2byte 0x0204, 0x0000
- .2byte 0x2509, 0x0000
- .2byte 0x250A, 0x0000
- .2byte 0x350B, 0x0000
- .2byte 0x350D, 0x0000
- .2byte 0x350E, 0x0000
-
-gUnknown_8456CFC:: @ 8456CFC
- .byte 0x00, 0x01, 0x03, 0x0D, 0x0A, 0x0F @ window template
- .2byte 0x0044
-
-gUnknown_8456D04:: @ 8456D04
- .byte 0x00, 0x10, 0x03, 0x07, 0x04, 0x0F @ window template
- .2byte 0x00C6
-
-gUnknown_8456D0C:: @ 8456D0C
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
-
-gUnknown_8456D34:: @ 8456D34
- .word gUnknown_8456D0C
- .word NULL
- .word sub_81164C8
- .2byte 0x0005
- .2byte 0x0005
- .byte 0x00, 0x00, 0x01, 0x00, 0x20, 0x31, 0x10, 0x42
-
-gUnknown_8456D4C:: @ 8456D4C
- .byte 0x00, 0x01, 0x03, 0x11, 0x0A, 0x0F @ window template
- .2byte 0x0044
-
-gUnknown_8456D54:: @ 8456D54
- .byte 0x00, 0x14, 0x03, 0x07, 0x04, 0x0F @ window template
- .2byte 0x00EE
-
-gUnknown_8456D5C:: @ 8456D5C
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
- .word gUnknown_84571AC, 5
- .word gUnknown_84571AC, 6
- .word gUnknown_84571AC, 7
- .word gUnknown_84571AC, 8
- .word gUnknown_84571AC, 9
- .word gUnknown_84571AC, 10
- .word gUnknown_84571AC, 11
- .word gUnknown_84571AC, 12
- .word gUnknown_84571AC, 13
- .word gUnknown_84571AC, 14
- .word gUnknown_84571AC, 15
-
-gUnknown_8456DDC:: @ 8456DDC
- .word gUnknown_8456D5C
- .word ListMenuDefaultCursorMoveFunc
- .word sub_8116F94
- .2byte 0x0010
- .2byte 0x0005
- .byte 0x00, 0x00, 0x08, 0x00, 0x20, 0x31, 0x50, 0x02
-
-gUnknown_8456DF4:: @ 8456DF4
- .byte 0x00, 0x14, 0x06, 0x08, 0x07, 0x0F @ window template?
- .2byte 0x0001
-
-gUnknown_8456DFC:: @ 8456DFC
- .word gUnknown_8459354, 0x00000208
- .word gUnknown_8459344, 0x00000241
- .word gUnknown_845934C, 0x00000245
- .word gUnknown_8459360, 0x00000040
-
-gUnknown_8456E1C:: @ 8456E1C
- .word gUnknown_8456DFC
- .word ListMenuDefaultCursorMoveFunc
- .word NULL
- .2byte 0x0004
- .2byte 0x0004
- .byte 0x00, 0x00, 0x08, 0x00, 0x20, 0x31, 0x01, 0x02
-
-gUnknown_8456E34:: @ 8456E34
- .byte 0x00, 0x12, 0x08, 0x0B, 0x05, 0x0F @ window template
- .2byte 0x0001
-
-gUnknown_8456E3C:: @ 8456E3C
- .word gText_Register, 1
- .word gUnknown_8459370, 2
- .word gUnknown_8459360, 3
-
-gUnknown_8456E54:: @ 8456E54
- .word gUnknown_8456E3C
- .word ListMenuDefaultCursorMoveFunc
- .word NULL
- .2byte 0x0003
- .2byte 0x0003
- .byte 0x00, 0x00, 0x08, 0x00, 0x20, 0x31, 0x01, 0x02
-
-gUnknown_8456E6C:: @ 8456E6C
- .byte 0x00, 0x14, 0x02, 0x09, 0x0B, 0x0F @ window template
- .2byte 0x0001
-
-gUnknown_8456E74:: @ 8456E74
- .word gTypeNames + 0x00, 0
- .word gTypeNames + 0x46, 10
- .word gTypeNames + 0x4D, 11
- .word gTypeNames + 0x5B, 13
- .word gTypeNames + 0x54, 12
- .word gTypeNames + 0x69, 15
- .word gTypeNames + 0x1C, 4
- .word gTypeNames + 0x23, 5
- .word gTypeNames + 0x0E, 2
- .word gTypeNames + 0x62, 14
- .word gTypeNames + 0x07, 1
- .word gTypeNames + 0x15, 3
- .word gTypeNames + 0x2A, 6
- .word gTypeNames + 0x31, 7
- .word gTypeNames + 0x70, 16
- .word gTypeNames + 0x38, 8
- .word gTypeNames + 0x77, 17
- .word gUnknown_8459360, 18
-
-gUnknown_8456F04:: @ 8456F04
- .word gUnknown_8456E74
- .word ListMenuDefaultCursorMoveFunc
- .word NULL
- .2byte 0x0012
- .2byte 0x0006
- .byte 0x00, 0x00, 0x08, 0x00, 0x22, 0x31, 0x01, 0x02
-
-gUnknown_8456F1C:: @ 8456F1C
- .byte 0x00, 0x01, 0x01, 0x1C, 0x02, 0x0D @ window template
- .2byte 0x0001
-
-gUnknown_8456F24:: @ 8456F24
- .byte 0x00, 0x01, 0x05, 0x1C, 0x0A, 0x0D @ window template
- .2byte 0x0039
-
-gUnknown_8456F2C:: @ 8456F2C
- .word gUnknown_84571AC, -3
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
- .word gUnknown_84571AC, 5
- .word gUnknown_84571AC, 6
- .word gUnknown_84571AC, 7
- .word gUnknown_8459368, 8
-
-gUnknown_8456F7C:: @ 8456F7C
- .word gUnknown_8456F2C
- .word ListMenuDefaultCursorMoveFunc
- .word sub_811ACA4
- .2byte 0x000A
- .2byte 0x0005
- .byte 0x00, 0x00, 0x0C, 0x00, 0xE2, 0xDF, 0x09, 0x02
-
- @ unused window template?
- .byte 0x00, 0x01, 0x05, 0x1C, 0x0A, 0x0D
- .2byte 0x0039
-
-gUnknown_8456F9C:: @ 8456F9C
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
- .word gUnknown_84571AC, 5
- .word gUnknown_84571AC, 6
- .word gUnknown_84571AC, 7
- .word gUnknown_84571AC, 8
- .word gUnknown_84571AC, 9
- .word gUnknown_84571AC, 10
- .word gUnknown_84571AC, 11
- .word gUnknown_84571AC, 12
- .word gUnknown_84571AC, 13
- .word gUnknown_84571AC, 14
- .word gUnknown_84571AC, 15
-
-gUnknown_845701C:: @ 845701C
- .word gUnknown_8456F9C
- .word ListMenuDefaultCursorMoveFunc
- .word nullsub_92
- .2byte 0x0010
- .2byte 0x0004
- .byte 0x00, 0x00, 0x08, 0x01, 0x20, 0x31, 0x41, 0x02
-
-gUnknown_8457034:: @ 8457034
- .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
-
- @ starts at gUnknown_082F0474 in pokeemerald, union link groups
-gUnknown_845704C:: @ 845704C
- .byte 0x01, 0xFF, 0x00, 0x00
-gUnknown_8457050:: @ 8457050
- .byte 0x02, 0xFF, 0x00, 0x00
-gUnknown_8457054:: @ 8457054
- .byte 0x03, 0xFF, 0x00, 0x00
-gUnknown_8457058:: @ 8457058
- .byte 0x04, 0xFF, 0x00, 0x00
-gUnknown_845705C:: @ 845705C
- .byte 0x09, 0xFF, 0x00, 0x00
-gUnknown_8457060:: @ 8457060
- .byte 0x0A, 0xFF, 0x00, 0x00
-gUnknown_8457064:: @ 8457064
- .byte 0x0B, 0xFF, 0x00, 0x00
-gUnknown_8457068:: @ 8457068
- .byte 0x15, 0xFF, 0x00, 0x00
-gUnknown_845706C:: @ 845706C
- .byte 0x16, 0xFF, 0x00, 0x00
-gUnknown_8457070:: @ 8457070
- .byte 0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xFF, 0x00, 0x00
-gUnknown_845707C:: @ 845707C
- .byte 0x0C, 0xFF, 0x00, 0x00
-gUnknown_8457080:: @ 8457080
- .byte 0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0x0D, 0xFF, 0x00
-gUnknown_845708C:: @ 845708C
- .byte 0x01, 0x02, 0x03, 0x04, 0x0A, 0xFF, 0x00, 0x00
-
-gUnknown_8457094:: @ 8457094
- .word gUnknown_845704C
- .word gUnknown_8457050
- .word gUnknown_8457054
- .word gUnknown_8457058
- .word gUnknown_845705C
- .word gUnknown_8457060
- .word gUnknown_8457064
- .word gUnknown_8457068
- .word gUnknown_845706C
- .word gUnknown_8457070
- .word gUnknown_845707C
- .word gUnknown_8457080
- .word gUnknown_845708C
-
-gUnknown_84570C8:: @ 84570C8
- .byte 0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0xF7, 0x00, 0xAF, 0xF7, 0x01, 0xFF, 0x00
-
-gUnknown_84570D8:: @ 84570D8
- .byte 0x29, 0x36, 0x27, 0x12, 0x13, 0x14, 0x19, 0x1A, 0x00, 0x00, 0x2A, 0x3A, 0x28, 0x16, 0x17, 0x18, 0x1C, 0x1D, 0x00, 0x00
-
-gUnknown_84570EC:: @ 84570EC
- .2byte 0x0004
- .2byte 0x0006
- .2byte 0x000D
- .2byte 0x0008
- .2byte 0x000A
- .2byte 0x0006
- .2byte 0x0001
- .2byte 0x0008
- .2byte 0x000D
- .2byte 0x0004
- .2byte 0x0007
- .2byte 0x0004
- .2byte 0x0001
- .2byte 0x0004
- .2byte 0x0007
- .2byte 0x0008
-
-gUnknown_845710C:: @ 845710C
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01
-
-gUnknown_8457116:: @ 8457116
- .byte 0x00, 0x02, 0x01, 0x04, 0x03
-
-gUnknown_845711B:: @ 845711B
- .byte 0x01, 0x03, 0x01, 0x04, 0x02
-
-gUnknown_8457120:: @ 8457120
- .byte 0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00
-
- .align 2
-gUnknown_8457138:: @ 8457138
- abspath "rfu_union_tool.c"
-
- .align 2
-gUnknown_8457174:: @ 8457174
- .asciz "0"
-
- .align 2
-gUnknown_8457178:: @ 8457178
- .asciz "UnionObjWork != NULL"
-
-gUnknown_845718D:: @ 845718D
- .byte 0xA4, 0xFE
-
-gUnknown_845718F:: @ 845718F
- .byte 0xA5, 0xFE, 0x00, 0x00, 0x00
-
-gUnknown_8457194:: @ 8457194
- .2byte 0x01FC, 0x0000 @ BgTemplate
-
-gUnknown_8457198:: @ 8457198
- .byte 0x00, 0x02, 0x0F, 0x1A, 0x04, 0x0E @ window template
- .2byte 0x0014
-
- @ ???
- .byte -1, 0, 0, 0
- .byte 0, 0, 0, 0
-
-gUnknown_84571A8:: @ 84571A8
- .byte 0x01, 0x02, 0x03, 0x00
-
-gUnknown_84571AC:: @ 84571AC
- .string "$"
-
- .align 2
-gUnknown_84571B0:: @ 84571B0
- .string ":$"
-
- .align 2
-gUnknown_84571B4:: @ 84571B4
- .string "{EXTRA 7}$"
-
- .align 2
-gUnknown_84571B8:: @ 84571B8
- .string "Please start over from the beginning.$"
-
- .align 2
-gUnknown_84571E0:: @ 84571E0
- .string "The WIRELESS COMMUNICATION\n"
- .string "SYSTEM search has been canceled.$"
-
- .align 2
- .string "ともだちからの れんらくを\n" @ something about waiting for a friend to connect?
- .string "まっています$"
-
- .align 2
-gUnknown_8457234:: @ 8457234
- .string "{STR_VAR_1}! Awaiting\n"
- .string "communication from another player.$"
-
- .align 2
-gUnknown_8457264:: @ 8457264
- .string "{STR_VAR_1}! Awaiting link!\n"
- .string "Press START when everyone's ready.$"
-
- .align 2
-gJPText_SingleBattle::
- .string "シングルバトルを かいさいする$"
-
- .align 2
-gJPText_DoubleBattle::
- .string "ダブルバトルを かいさいする$"
-
- .align 2
-gJPText_MultiBattle::
- .string "マルチバトルを かいさいする$"
-
- .align 2
-gJPText_TradePokemon::
- .string "ポケモンこうかんを かいさいする$"
-
- .align 2
-gJPText_Chat::
- .string "チャットを かいさいする$"
-
- .align 2
-gJPText_DistWonderCard::
- .string "ふしぎなカードをくばる$"
-
- .align 2
-gJPText_DistWonderNews::
- .string "ふしぎなニュースをくばる$"
-
- .align 2
-unref_text_union_room_1::
- .string "ふしぎなできごとを かいさいする$"
-
- .align 2
-gJPText_HoldPokemonJump::
- .string "なわとびを かいさいする$"
-
- .align 2
-gJPText_HoldBerryCrush::
- .string "きのみマッシャーを かいさいする$"
-
- .align 2
-gJPText_HoldBerryPicking::
- .string "きのみどりを かいさいする$"
-
- .align 2
-gJPText_HoldSpinTrade::
- .string "ぐるぐるこうかんを かいさいする$"
-
- .align 2
-gJPText_HoldSpinShop::
- .string "ぐるぐるショップを かいさいする$"
-
- .align 2
-unref_text_ptrs_union_room_0::
- .word gJPText_SingleBattle
- .word gJPText_DoubleBattle
- .word gJPText_MultiBattle
- .word gJPText_TradePokemon
- .word gJPText_Chat
- .word gJPText_DistWonderCard
- .word gJPText_DistWonderNews
- .word gJPText_DistWonderCard
- .word gJPText_HoldPokemonJump
- .word gJPText_HoldBerryCrush
- .word gJPText_HoldBerryPicking
- .word gJPText_HoldBerryPicking
- .word gJPText_HoldSpinTrade
- .word gJPText_HoldSpinShop
-
-gText_1PlayerNeeded::
- .string "1 player\n"
- .string "needed.$"
-gText_2PlayersNeeded::
- .string "2 players\n"
- .string "needed.$"
-gText_3PlayersNeeded::
- .string "3 players\n"
- .string "needed.$"
-gText_4PlayersNeeded:: @ uhhhh this one is JP but not the others??? but its english in emerald???
- .string "あと4にん\n"
- .string "ひつよう$"
-gText_2PlayerMode::
- .string "2-PLAYER\n"
- .string "MODE$"
-gText_3PlayerMode::
- .string "3-PLAYER\n"
- .string "MODE$"
-gText_4PlayerMode::
- .string "4-PLAYER\n"
- .string "MODE$"
-gText_5PlayerMode::
- .string "5-PLAYER\n"
- .string "MODE$"
-
-gUnknown_845742C:: @ 845742C
- .word gText_1PlayerNeeded
- .word gText_2PlayerMode
- .word NULL
- .word NULL
- .word NULL
-
- .word gText_3PlayersNeeded
- .word gText_2PlayersNeeded
- .word gText_1PlayerNeeded
- .word gText_4PlayerMode
- .word NULL
-
- .word gText_1PlayerNeeded
- .word gText_2PlayerMode
- .word gText_3PlayerMode
- .word gText_4PlayerMode
- .word gText_5PlayerMode
-
- .word gText_2PlayersNeeded
- .word gText_1PlayerNeeded
- .word gText_3PlayerMode
- .word gText_4PlayerMode
- .word gText_5PlayerMode
-
- @ Huh? No 4 ptrs here from pokeemerald?
-
- .align 2
-gUnknown_845747C:: @ 845747C
- .string "{B_BUTTON}CANCEL$"
-
- .align 2
-unref_text_union_room_2::
- .string "ため\nさんかしゃ ぼしゅうちゅう です!$"
-
- .align 2
-gUnknown_84574A0:: @ 84574A0
- .string "{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?$"
-
- .align 2
-gUnknown_84574C4:: @ 84574C4
- .string "{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?$"
-
- .align 2
-gUnknown_84574EC:: @ 84574EC
- .string "{STR_VAR_2} contacted you.\nAdd to the members?$"
-
- .align 2
-gUnknown_8457514:: @ 8457514
- .string "{STR_VAR_1}!\nAre these members OK?$"
-
- .align 2
-gUnknown_8457530:: @ 8457530
- .string "Cancel {STR_VAR_1} MODE\nwith these members?$"
-
- .align 2
-gUnknown_8457554:: @ 8457554
- .string "An “OK” was sent\nto {STR_VAR_1}.$"
-
- .align 2
-gUnknown_845756C:: @ 845756C
- .string "The other TRAINER doesn't appear\nto be available now…\p$"
-
- .align 2
-gUnknown_84575A4:: @ 84575A4
- .string "You can't transmit with a TRAINER\nwho is too far away.\p$"
-
- .align 2
-gUnknown_84575DC:: @ 84575DC
- .string "The other TRAINER(S) is/are not\nready yet.\p$"
-
- .align 2
-gUnknown_8457608:: @ 8457608
- .word gUnknown_84575A4
- .word gUnknown_84575DC
-
- .align 2
-gUnknown_8457610:: @ 8457610
- .string "The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}$"
-
- .align 2
-gUnknown_8457644:: @ 8457644
- .string "There is a member who can no\nlonger remain available.\p$"
-
- .align 2
-gUnknown_845767C:: @ 845767C
- .word gUnknown_845756C
- .word gUnknown_8457644
-
- .align 2
-gUnknown_8457684:: @ 8457684
- .string "The other TRAINER appears\nunavailable…\p$"
-
- .align 2
-gUnknown_84576AC:: @ 84576AC
- .string "{STR_VAR_1} sent back an “OK”!$"
-
- .align 2
-gUnknown_84576C4:: @ 84576C4
- .string "{STR_VAR_1} OK'd your registration as\na member.$"
-
- .align 2
-gUnknown_84576EC:: @ 84576EC
- .string "{STR_VAR_1} replied, “No…”\p$"
-
- .align 2
-gUnknown_8457700:: @ 8457700
- .string "{STR_VAR_1}!\nAwaiting other members!$"
-
- .align 2
-gUnknown_845771C:: @ 845771C
- .string "Quit being a member?$"
-
- .align 2
-gUnknown_8457734:: @ 8457734
- .string "You stopped being a member.\p$"
-
- .align 2
-gUnknown_8457754:: @ 8457754
- .word NULL
- .word gUnknown_8457644
- .word gUnknown_8457684
- .word NULL
- .word NULL
- .word NULL
- .word gUnknown_84576EC
- .word NULL
- .word NULL
- .word gUnknown_8457734
-
- .align 2
-gUnknown_845777C:: @ 845777C
- .string "The WIRELESS COMMUNICATION\nSYSTEM link has been established.$"
-
- .align 2
-gUnknown_84577BC:: @ 84577BC
- .string "The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…$"
-
- .align 2
-gUnknown_84577F8:: @ 84577F8
- .string "The link with your friend has been\ndropped…$"
-
- .align 2
-gUnknown_8457824:: @ 8457824
- .string "{STR_VAR_1} replied, “No…”$"
-
- .align 2
-gUnknown_8457838:: @ 8457838
- .word NULL
- .word gUnknown_84577F8
- .word gUnknown_84577F8
- .word NULL
- .word NULL
- .word NULL
- .word gUnknown_8457824
- .word NULL
- .word NULL
- .word NULL
-
- .align 2
-gUnknown_8457860:: @ 8457860
- .string "Do you want the {STR_VAR_2}\nMODE?$"
-
- .align 2
-gUnknown_845787C:: @ 845787C
- .string "Do you want the {STR_VAR_2}\nMODE?$"
-
- .align 2
-gUnknown_8457898:: @ 8457898
- .word gUnknown_8457860
- .word gUnknown_845787C
-
- .align 2
-gUnknown_84578A0:: @ 84578A0
- .string "はなしかけています…\n" @ Communicating... please wait
- .string "しょうしょう おまちください$"
-
- .align 2
-gUnknown_84578BC:: @ 84578BC
- .string "Awaiting {STR_VAR_1}'s response about\nthe trade…$"
-
- .align 2
-gUnknown_84578E4:: @ 84578E4
- .string "Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.$"
-
- .align 2
-gUnknown_8457950:: @ 8457950
- .string "Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.$"
-
- .align 2
-gUnknown_84579BC:: @ 84579BC
- .string "Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.$"
-
- .align 2
-gUnknown_8457A34:: @ 8457A34
- .word gUnknown_84578E4
- .word gUnknown_8457950
- .word gUnknown_84579BC
-
- .align 2
-gUnknown_8457A40:: @ 8457A40
- .string "Hiya! Is there something that you\nwanted to do?$"
-
- .align 2
-gUnknown_8457A70:: @ 8457A70
- .string "Hello!\nWould you like to do something?$"
-
- .align 2
-gUnknown_8457A98:: @ 8457A98
- .string "{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?$"
-
- .align 2
-gUnknown_8457AD0:: @ 8457AD0
- .string "{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?$"
-
- .align 2
-gUnknown_8457B04:: @ 8457B04
- .word gUnknown_8457A40
- .word gUnknown_8457A70
- .word gUnknown_8457A98
- .word gUnknown_8457AD0
-
- .align 2
-gUnknown_8457B14:: @ 8457B14
- .string "Want to do something?$"
-
- .align 2
-gUnknown_8457B2C:: @ 8457B2C
- .string "Would you like to do something?$"
-
- .align 2
-gUnknown_8457B4C:: @ 8457B4C
- .string "{STR_VAR_1}: What would you like to\ndo now?$"
-
- .align 2
-gUnknown_8457B70:: @ 8457B70
- .string "{STR_VAR_1}‘また なにかする?$" @ Want to do anything else?
-
- .align 2
-gUnknown_8457B80:: @ 8457B80
- .word gUnknown_8457B14
- .word gUnknown_8457B2C
- .word gUnknown_8457B4C
- .word gUnknown_8457B4C
-
- .align 2
-gUnknown_8457B90:: @ 8457B90
- .string "Somebody has contacted you.{PAUSE 60}$"
-
- .align 2
-gUnknown_8457BA0:: @ 8457BA0
- .string "{STR_VAR_1} has contacted you.{PAUSE 60}$"
-
- .align 2
-gUnknown_8457BCC:: @ 8457BCC
- .word gUnknown_8457B90
- .word gUnknown_8457BA0
-
- .align 2
-gUnknown_8457BD4:: @ 8457BD4
- .string "Awaiting a response from\nthe other TRAINER…$"
-
- .align 2
-gUnknown_8457C00:: @ 8457C00
- .string "Awaiting a response from\n{STR_VAR_1}…$"
-
- .align 2
-gUnknown_8457C20:: @ 8457C20
- .word gUnknown_8457BD4
- .word gUnknown_8457C00
-
- .align 2
-gUnknown_8457C28:: @ 8457C28
- .string "あいての ていあんを まっています\n"
- .string "ビーボタンで キャンセル$"
-
- .align 2
-gUnknown_8457C48:: @ 8457C48
- .string "The other TRAINER showed\n"
- .string "you their TRAINER CARD.\p"
- .string "Would you like to show your\n"
- .string "TRAINER CARD?$"
-
- .align 2
-gUnknown_8457CA4:: @ 8457CA4
- .string "The other TRAINER challenges you\n"
- .string "to battle.\p"
- .string "Will you accept the battle\n"
- .string "challenge?$"
-
- .align 2
-gUnknown_8457CF8:: @ 8457CF8
- .string "The other TRAINER invites you\n"
- .string "to chat.\p"
- .string "Will you accept the chat\n"
- .string "invitation?$"
-
- .align 2
-gUnknown_8457D44:: @ 8457D44
- .string "There is an offer to trade your\n"
- .string "registered Lv. {DYNAMIC 0} {DYNAMIC 1}\p"
- .string "in exchange for a\n"
- .string "Lv. {DYNAMIC 2} {DYNAMIC 3}.\p"
- .string "Will you accept this trade\n"
- .string "offer?$"
-
- .align 2
-gUnknown_8457DB8:: @ 8457DB8
- .string "There is an offer to trade your\n"
- .string "registered EGG.\l"
- .string "Will you accept this trade offer?$"
-
- .align 2
-gUnknown_8457E0C:: @ 8457E0C
- .string "The chat has been dropped.\p$"
-
-gUnknown_8457E28:: @ 8457E28
- .string "You declined the offer.\p$"
-
- .align 2
-gUnknown_8457E44:: @ 8457E44
- .string "You declined the offer.\p$"
-
- .align 2
-gUnknown_8457E60:: @ 8457E60
- .string "The chat was ended.\p$"
- .align 2
-
-gUnknown_8457E78::
- .4byte gUnknown_8457C48
- .4byte gUnknown_8457CA4
- .4byte gUnknown_8457CF8
- .4byte gUnknown_8457D44
-
- .align 2
-gUnknown_8457E88::
- .string "Oh, hey! We're in a chat right now.\n"
- .string "Want to join us?$"
-
- .align 2
-gUnknown_8457EC0::
- .string "{STR_VAR_1}: Hey, {PLAYER}!\n"
- .string "We're having a chat right now.\l"
- .string "Want to join us?$"
-
- .align 2
-gUnknown_8457F00::
- .string "Oh, hi! We're having a chat now.\n"
- .string "Would you like to join us?$"
-
- .align 2
-gUnknown_8457F3C::
- .string "{STR_VAR_1}: Oh, hi, {PLAYER}!\n"
- .string "We're having a chat now.\l"
- .string "Would you like to join us?$"
-
- .align 2
-gUnknown_8457F80:: @ 8457F80
- .4byte gUnknown_8457E88
- .4byte gUnknown_8457F00
- .4byte gUnknown_8457EC0
- .4byte gUnknown_8457F3C
-
-gUnknown_8457F90:: @ 8457F90
- .string "……\n"
- .string "The TRAINER appears to be busy…\p$"
-
- .align 2
-gUnknown_8457FB4::
- .string "A battle, huh?\n"
- .string "All right, just give me some time.$"
-
- .align 2
-gUnknown_8457FE8::
- .string "You want to chat, huh?\n"
- .string "Sure, just wait a little.$"
-
- .align 2
-gUnknown_845801C::
- .string "Sure thing! As my “Greetings,”\n"
- .string "here's my TRAINER CARD.$"
-
- .align 2
-gUnknown_8458054::
- .string "A battle? Of course, but I need\n"
- .string "time to get ready.$"
-
- .align 2
-gUnknown_8458088::
- .string "Did you want to chat?\n"
- .string "Okay, but please wait a moment.$"
-
- .align 2
-gUnknown_84580C0::
- .string "As my introduction, I'll show you\n"
- .string "my TRAINER CARD.$"
-
- .align 2
-gUnknown_84580F4:: @ 84580F4
- .4byte gUnknown_8457FB4
- .4byte gUnknown_8457FE8
- .4byte 0
- .4byte gUnknown_845801C
- .4byte gUnknown_8458054
- .4byte gUnknown_8458088
- .4byte 0
- .4byte gUnknown_84580C0
-
- .align 2
- .string "チャットだね!\n" @ You want to chat, huh? Sure, just wait a little.
- .string "わかった ちょっと まってて!$"
-
- .align 2
-gUnknown_845812C::
- .string "Thanks for waiting!\n"
- .string "Let's get our battle started!{PAUSE 60}$"
-
- .align 2
-gUnknown_8458164::
- .string "All right!\n"
- .string "Let's chat!{PAUSE 60}$"
-
- .align 2
-gUnknown_8458180::
- .string "Sorry I made you wait!\n"
- .string "Let's get started!{PAUSE 60}$"
-
- .align 2
-gUnknown_84581B0::
- .string "Sorry I made you wait!\n"
- .string "Let's chat.{PAUSE 60}$"
-
- .align 2
-gUnknown_84581D8::
- .string "The trade will be started.{PAUSE 60}$"
-
- .align 2
-gUnknown_84581F8::
- .string "The battle will be started.{PAUSE 60}$"
-
- .align 2
-gUnknown_8458218::
- .string "Entering the chat…{PAUSE 60}$"
-
- .align 2
-gUnknown_8458230:: @ 8458230
- .4byte gUnknown_84581F8
- .4byte gUnknown_8458218
- .4byte gUnknown_84581D8
- .4byte gUnknown_84581F8
- .4byte gUnknown_8458218
- .4byte gUnknown_84581D8
- .4byte gUnknown_845812C
- .4byte gUnknown_8458164
- .4byte gUnknown_84581D8
- .4byte gUnknown_8458180
- .4byte gUnknown_84581B0
- .4byte gUnknown_84581D8
-
-gUnknown_8458260::
- .string "Sorry! My POKéMON don't seem to\n"
- .string "be feeling too well right now.\l"
- .string "Let me battle you another time.\p$"
-
-gUnknown_84582C0::
- .string "I'm terribly sorry, but my POKéMON\n"
- .string "aren't feeling well…\p"
- .string "Let's battle another time.\p$"
-
-gUnknown_8458314:: @ 8458314
- .4byte gUnknown_8458260
- .4byte gUnknown_84582C0
-
- .align 2
-gUnknown_845831C::
- .string "Huh? My TRAINER CARD…\n"
- .string "Where'd it go now?\l"
- .string "Sorry! I'll show you another time!\p$"
-
- .align 2
-gUnknown_845836C::
- .string "Oh? Now where did I put my\n"
- .string "TRAINER CARD?…\l"
- .string "Sorry! I'll show you later!\p$"
-
- .align 2
-gUnknown_84583B4:: @ 84583B4
- .4byte gUnknown_845831C
- .4byte gUnknown_845836C
-
- .align 2
-gUnknown_84583BC::
- .string "If you want to do something with\n"
- .string "me, just give me a shout!\p$"
- .align 2
-gUnknown_84583F8::
- .string "If you want to do something with\n"
- .string "me, don't be shy.\p$"
-
- .align 2
-gUnknown_845842C:: @ 845842C
- .4byte gUnknown_84583BC
- .4byte gUnknown_84583F8
-
-gUnknown_8458434:: @ 8458434
- .string "Whoops! Sorry, but I have to do\n"
- .string "something else.\l"
- .string "Another time, okay?\p$"
-
- .align 2
-gUnknown_845847C:: @ 845847C
- .string "If you want to battle, you need\n"
- .string "two POKéMON that are below\l"
- .string "Lv. 30.\p$"
-
-gUnknown_84584C0:: @ 84584C0
- .string "For a battle, you need two\n"
- .string "POKéMON that are below Lv. 30.\p$"
-
- .align 2
-gUnknown_84584FC::
- .string "Oh, all right.\n"
- .string "Come see me anytime, okay?\p$"
-
- .align 2
-gUnknown_8458528::
- .string "Oh…\n"
- .string "Please come by anytime.\p$"
-
- .align 2
-gUnknown_8458548:: @ 8458548
- .4byte gUnknown_84584FC
- .4byte gUnknown_8458528
-
- .align 2
-gUnknown_8458550::
- .string "Oh, sorry!\n"
- .string "I just can't right this instant.\l"
- .string "Let's chat another time.\p$"
-
- .align 2
-gUnknown_8458598::
- .string "Oh, I'm sorry.\n"
- .string "I have too much to do right now.\l"
- .string "Let's chat some other time.\p$"
-
- .align 2
-gUnknown_84585E8:: @ 84585E8
- .4byte gUnknown_8458550
- .4byte gUnknown_8458598
-
- .align 2
-gUnknown_84585F0::
- .string "Whoa!\n"
- .string "I can tell you're pretty tough!\p$"
-
- .align 2
-gUnknown_8458618::
- .string "You used that move?\n"
- .string "That's good strategy!\p$"
-
- .align 2
-gUnknown_8458644::
- .string "Way to go!\n"
- .string "That was an eye-opener!\p$"
-
- .align 2
-gUnknown_8458668::
- .string "Oh! How could you use that\n"
- .string "POKéMON in that situation?\p$"
-
- .align 2
-gUnknown_84586A0::
- .string "That POKéMON…\n"
- .string "It's been raised really well!\p$"
-
- .align 2
-gUnknown_84586D0::
- .string "That's it!\n"
- .string "This is the right move now!\p$"
-
- .align 2
-gUnknown_84586F8::
- .string "That's awesome!\n"
- .string "You can battle that way?\p$"
-
- .align 2
-gUnknown_8458724::
- .string "You have exquisite timing for\n"
- .string "switching POKéMON!\p$"
-
- .align 2
-gUnknown_8458758:: @ 8458758
- .4byte gUnknown_84585F0
- .4byte gUnknown_8458618
- .4byte gUnknown_8458644
- .4byte gUnknown_8458668
- .4byte gUnknown_84586A0
- .4byte gUnknown_84586D0
- .4byte gUnknown_84586F8
- .4byte gUnknown_8458724
-
- .align 2
-gUnknown_8458778::
- .string "Oh, I see!\n"
- .string "This is educational!\p$"
-
- .align 2
-gUnknown_845879C::
- .string "Don't say anything funny anymore!\n"
- .string "I'm sore from laughing!\p$"
-
- .align 2
-gUnknown_84587D8::
- .string "Oh?\n"
- .string "Something like that happened.\p$"
-
- .align 2
-gUnknown_84587FC::
- .string "Hmhm… What?\n"
- .string "So is this what you're saying?\p$"
-
- .align 2
-gUnknown_8458828::
- .string "Is that right?\n"
- .string "I didn't know that.\p$"
-
- .align 2
-gUnknown_845884C::
- .string "Ahaha!\n"
- .string "What is that about?\p$"
-
- .align 2
-gUnknown_8458868::
- .string "Yes, that's exactly it!\n"
- .string "That's what I meant.\p$"
-
- .align 2
-gUnknown_8458898::
- .string "In other words…\n"
- .string "Yes! That's right!\p$"
-
- .align 2
-gUnknown_84588BC:: @ 84588BC
- .4byte gUnknown_8458778
- .4byte gUnknown_845879C
- .4byte gUnknown_84587D8
- .4byte gUnknown_84587FC
- .4byte gUnknown_8458828
- .4byte gUnknown_845884C
- .4byte gUnknown_8458868
- .4byte gUnknown_8458898
-
- .align 2
-gUnknown_84588DC::
- .string "I'm just showing my TRAINER CARD\n"
- .string "as my way of greeting.\p$"
-
- .align 2
-gUnknown_8458918::
- .string "I hope I get to know you better!\p$"
-
- .align 2
-gUnknown_845893C::
- .string "We're showing each other our\n"
- .string "TRAINER CARDS to get acquainted.\p$"
-
- .align 2
-gUnknown_845897C::
- .string "Glad to meet you.\n"
- .string "Please don't be a stranger!\p$"
-
- .align 2
-gUnknown_84589AC:: @ 84589AC
- .4byte gUnknown_84588DC
- .4byte gUnknown_8458918
- .4byte gUnknown_845893C
- .4byte gUnknown_845897C
-
- .align 2
-gUnknown_84589BC::
- .string "Yeahah!\n"
- .string "I really wanted this POKéMON!\p$"
-
- .align 2
-gUnknown_84589E4::
- .string "Finally, a trade got me that\n"
- .string "POKéMON I'd wanted a long time.\p$"
-
- .align 2
-gUnknown_8458A24::
- .string "I'm trading POKéMON right now.\p$"
-
- .align 2
-gUnknown_8458A44::
- .string "I finally got that POKéMON I\n"
- .string "wanted in a trade!\p$"
-
- .align 2
-gUnknown_8458A78:: @ 8458A78
- .4byte gUnknown_84589BC
- .4byte gUnknown_84589E4
- .4byte NULL
- .4byte NULL
- .4byte gUnknown_8458A24
- .4byte gUnknown_8458A44
- .4byte NULL
- .4byte NULL
-
-gUnknown_8458A98:: @ 8458A98
- .string "{STR_VAR_1} checked the\n"
- .string "TRADING BOARD.\p$"
-
- .align 2
-gUnknown_8458AB8:: @ 8458AB8
- .string "Welcome to the TRADING BOARD.\p"
- .string "You may register your POKéMON\n"
- .string "and offer it up for a trade.\p"
- .string "Would you like to register one of\n"
- .string "your POKéMON?$"
-
- .align 2
-gUnknown_8458B44:: @ 8458B44
- .string "This TRADING BOARD is used for\n"
- .string "offering a POKéMON for a trade.\p"
- .string "All you need to do is register a\n"
- .string "POKéMON for a trade.\p"
- .string "Another TRAINER may offer a party\n"
- .string "POKéMON in return for the trade.\p"
- .string "We hope you will register POKéMON\n"
- .string "and trade them with many, many\l"
- .string "other TRAINERS.\p"
- .string "Would you like to register one of\n"
- .string "your POKéMON?$"
-
- .align 2
- .string "こうかんけいじばん の とうろくが\n"
- .string "かんりょう しました\p"
- .string "ごりよう ありがとう\n"
- .string "ございました!\p$"
-
- .align 2
- .string "けいじばんに だれも ポケモンを\n"
- .string "とうろく していません\p\n$"
-
- .align 2
-gUnknown_8458CD4:: @ 8458CD4
- .string "Please choose the type of POKéMON\n"
- .string "that you would like in the trade.\n$"
-
- .align 2
-gUnknown_8458D1C:: @ 8458D1C
- .string "Which of your party POKéMON will\n"
- .string "you offer in trade?\p$"
-
- .align 2
-gUnknown_8458D54:: @ 8458D54
- .string "Registration has been canceled.\p$"
-
- .align 2
-gUnknown_8458D78:: @ 8458D78
- .string "Registration has been completed.\p$"
-
- .align 2
-gUnknown_8458D9C:: @ 8458D9C
- .string "The trade has been canceled.\p$"
-
- .align 2
-gUnknown_8458DBC:: @ 8458DBC
- .string "Cancel the registration of your\n"
- .string "Lv. {STR_VAR_2} {STR_VAR_1}?$"
-
- .align 2
-gUnknown_8458DE8:: @ 8458DE8
- .string "Cancel the registration of your\n"
- .string "EGG?$"
-
- .align 2
-gUnknown_8458E10:: @ 8458E10
- .string "The registration has been canceled.\p$"
-
- .align 2
- .string "こうかんを きぼうしているひとを\n"
- .string "ひょうじします$"
-
- .align 2
- .string "こうかん したい トレーナーを\n"
- .string "えらんで ください$"
-
- .align 2
-gUnknown_8458E70:: @ 8458E70
- .string "Would you like to ask {STR_VAR_1} to\n"
- .string "make a trade?$"
-
- .align 2
- .string "……\n"
- .string "あいての へんじを まっています$"
-
- .align 2
- .string "あなたが こうかんにだす\n"
- .string "ポケモンが とうろくされていません\p$"
-
- .align 2
-gUnknown_8458ED0:: @ 8458ED0
- .string "You don't have a {STR_VAR_2}-type\n"
- .string "POKéMON that {STR_VAR_1} wants.\p$"
-
- .align 2
-gUnknown_8458F04:: @ 8458F04
- .string "You don't have an EGG that\n"
- .string "{STR_VAR_1} wants.\p$"
-
- .align 2
-gUnknown_8458F2C:: @ 8458F2C
- .string "{STR_VAR_1} can't make a trade for\n"
- .string "your POKéMON right now.\p$"
-
- .align 2
-gUnknown_8458F60:: @ 8458F60
- .string "You can't make a trade for\n"
- .string "{STR_VAR_1}'s POKéMON right now.\p$"
-
- .align 2
-gUnknown_8458F94:: @ 8458F94
- .word gUnknown_8458F2C
- .word gUnknown_8458F60
-
-gUnknown_8458F9C:: @ 8458F9C
- .string "Your trade offer was rejected.\p$"
-
-gUnknown_8458FBC:: @ 8458FBC
- .string "EGG TRADE$"
-
- .align 2
-gUnknown_8458FC8:: @ 8458FC8
- .string "{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL$"
-
- .align 2
-gUnknown_8458FE4:: @ 8458FE4
- .string "Please choose a TRAINER.$"
-
- .align 2
-gUnknown_8459000::
- .string "Please choose a TRAINER for\n"
- .string "a SINGLE BATTLE.$"
-
- .align 2
-gUnknown_8459030::
- .string "Please choose a TRAINER for\n"
- .string "a DOUBLE BATTLE.$"
-
- .align 2
-gUnknown_8459060::
- .string "Please choose the LEADER\n"
- .string "for a MULTI BATTLE.$"
-
- .align 2
-gUnknown_8459090::
- .string "Please choose the TRAINER to\n"
- .string "trade with.$"
-
- .align 2
-gUnknown_84590BC::
- .string "Please choose the TRAINER who is\n"
- .string "sharing WONDER CARDS.$"
-
- .align 2
-gUnknown_84590F4::
- .string "Please choose the TRAINER who is\n"
- .string "sharing WONDER NEWS.$"
-
- .align 2
-gUnknown_845912C::
- .string "Jump with mini POKéMON!\n"
- .string "Please choose the LEADER.$"
-
- .align 2
-gUnknown_8459160::
- .string "BERRY CRUSH!\n"
- .string "Please choose the LEADER.$"
-
- .align 2
-gUnknown_8459188::
- .string "DODRIO BERRY-PICKING!\n"
- .string "Please choose the LEADER.$"
-
- .align 2
-gUnknown_84591B8:: @ 84591B8
- .4byte gUnknown_8459000
- .4byte gUnknown_8459030
- .4byte gUnknown_8459060
- .4byte gUnknown_8459090
- .4byte gUnknown_845912C
- .4byte gUnknown_8459160
- .4byte gUnknown_8459188
- .4byte gUnknown_84590BC
- .4byte gUnknown_84590F4
-
- .align 2
-gUnknown_84591DC:: @ 84591DC
- .string "Searching for a WIRELESS\n"
- .string "COMMUNICATION SYSTEM. Wait...$"
-
- .align 2
- .string "ダブルバトルでは 2ひき いじょうの\n"
- .string "ポケモンが ひつようです\p$"
-
- .align 2
-gUnknown_8459238:: @ 8459238
- .string "Awaiting {STR_VAR_1}'s response…$"
-
- .align 2
-gUnknown_8459250:: @ 8459250
- .string "{STR_VAR_1} has been asked to register\n"
- .string "you as a member. Please wait.$"
-
- .align 2
-gUnknown_845928C:: @ 845928C
- .string "Awaiting a response from the\n"
- .string "WIRELESS COMMUNICATION SYSTEM.$"
-
- .align 2
- .string "ほかの さんかしゃが そろうまで\n"
- .string "しょうしょう おまちください$"
-
- .align 2
-gUnknown_84592E8:: @ 84592E8
- .string "No CARDS appear to be shared \n"
- .string "right now.$"
-
- .align 2
-gUnknown_8459314:: @ 8459314
- .string "No NEWS appears to be shared\n"
- .string "right now.$"
-
-gUnknown_845933C:: @ 845933C
- .word gUnknown_84592E8
- .word gUnknown_8459314
-
- .align 2
-gUnknown_8459344:: @ 8459344
- .string "BATTLE$"
-
- .align 2
-gUnknown_845934C:: @ 845934C
- .string "CHAT$"
-
- .align 2
-gUnknown_8459354:: @ 8459354
- .string "GREETINGS$"
-
- .align 2
-gUnknown_8459360:: @ 8459360
- .string "EXIT$"
-
- .align 2
-gUnknown_8459368:: @ 8459368
- .string "EXIT$"
-
- .align 2
-gUnknown_8459370:: @ 8459370
- .string "INFO$"
-
- .align 2
-gUnknown_8459378:: @ 8459378
- .string "NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.$"
-
- .align 2
-gUnknown_8459394:: @ 8459394
- .string "SINGLE BATTLE$"
-
- .align 2
-gUnknown_84593A4:: @ 84593A4
- .string "DOUBLE BATTLE$"
-
- .align 2
-gUnknown_84593B4:: @ 84593B4
- .string "MULTI BATTLE$"
-
- .align 2
-gUnknown_84593C4:: @ 84593C4
- .string "POKéMON TRADES$"
-
- .align 2
-gUnknown_84593D4:: @ 84593D4
- .string "CHAT$"
-
- .align 2
-gUnknown_84593DC:: @ 84593DC
- .string "CARDS$"
-
- .align 2
-gUnknown_84593E4:: @ 84593E4
- .string "WONDER CARDS$"
-
- .align 2
-gUnknown_84593F4:: @ 84593F4
- .string "WONDER NEWS$"
-
- .align 2
-gUnknown_8459400:: @ 8459400
- .string "POKéMON JUMP$"
-
- .align 2
-gUnknown_8459410:: @ 8459410
- .string "BERRY CRUSH$"
-
- .align 2
-gUnknown_845941C:: @ 845941C
- .string "BERRY-PICKING$"
-
- .align 2
-gUnknown_845942C:: @ 845942C
- .string "SEARCH$"
-
- .align 2
-gUnknown_8459434:: @ 8459434
- .string "ぐるぐるこうかん$"
-
- .align 2
-gUnknown_8459440:: @ 8459440
- .string "アイテムトレード$"
-
- .align 2
-gUnknown_845944C:: @ 845944C
- .string "It's a NORMAL CARD.$"
-
- .align 2
-gUnknown_8459460:: @ 459460
- .string "It's a BRONZE CARD!$"
-
- .align 2
-gUnknown_8459474:: @ 8459474
- .string "It's a COPPER CARD!$"
-
- .align 2
-gUnknown_8459488:: @ 8459488
- .string "It's a SILVER CARD!$"
-
- .align 2
-gUnknown_845949C:: @ 845949C
- .string "It's a GOLD CARD!$"
-
- .align 2
-gUnknown_84594B0:: @ 84594B0
- .word gUnknown_845944C
- .word gUnknown_8459460
- .word gUnknown_8459474
- .word gUnknown_8459488
- .word gUnknown_845949C
-
- .align 2
-gUnknown_84594C4:: @ 84594C4
- .string "This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p$"
-
- .align 2
-gUnknown_8459504:: @ 8459504
- .string "BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p$"
-
- .align 2
-gUnknown_8459544:: @ 8459544
- .string "{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}$"
-
- .align 2
-gUnknown_8459564:: @ 8459564
- .string "{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}$"
-
- .align 2
-gUnknown_8459580:: @ 8459580
- .word gUnknown_8459544
- .word gUnknown_8459564
-
- .align 2
-gUnknown_8459588:: @ 8459588
- .string "Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}$"
-
- @ why is this data here of all places?
-
- .align 2
-gUnknown_84595B0::
- .string "Canceled reading the Card.$"
-
- .align 2
-gUnknown_84595CC::
- .4byte 0x02, 0x15 @ RECEIVE ID(0x15)
- .4byte 0x0c, 0x00 @ READ PACKET AND COMPUTER SOMETHING
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x0e @ RETURN 0x0e
-
-gMEventSrvScript_OtherTrainerCanceled:: @ 84595EC @ referenced in mevent/script_common.inc
- .4byte 0x12, 0x20, gUnknown_84595CC @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x14, 0x1b, gUnknown_84595B0 @ SEND_STR
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x09, NULL @ RETURN (other trainer canceled)
diff --git a/include/bag.h b/include/bag.h
index f82531778..fec9f67bf 100644
--- a/include/bag.h
+++ b/include/bag.h
@@ -1,18 +1,20 @@
#ifndef GUARD_BAG_H
#define GUARD_BAG_H
-void sub_810B858(void);
-void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx);
-void sub_810B958(const u8 * str);
-void sub_810B994(void);
-u8 sub_810B9DC(u8 a0, u8 a1);
-void sub_810BA3C(u8 a0);
-u8 sub_810BA70(u8 a0);
-void sub_810BA9C(u8 a0);
-u8 sub_810BAD8(u8 a0);
-void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs);
-void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs);
-void sub_810BB40(void);
-void sub_810BB74(u8 windowId);
+#include "menu_helpers.h"
+
+void InitBagWindows(void);
+void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
+void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused);
+void BagDrawDepositItemTextBox(void);
+u8 ShowBagWindow(u8 whichWindow, u8 nItems);
+void HideBagWindow(u8 whichWindow);
+u8 OpenBagWindow(u8 whichWindow);
+void CloseBagWindow(u8 whichWindow);
+u8 GetBagWindow(u8 whichWindow);
+void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs);
+void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs);
+void BagPrintMoneyAmount(void);
+void BagDrawTextBoxOnWindow(u8 windowId);
#endif //GUARD_BAG_H
diff --git a/include/battle.h b/include/battle.h
index bed12204f..c9534745d 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -45,7 +45,6 @@
#define B_ACTION_NONE 0xFF
#define MAX_TRAINER_ITEMS 4
-#define MAX_MON_MOVES 4
// array entries for battle communication
#define MULTIUSE_STATE 0x0
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 06a0e2957..412856353 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -2,6 +2,7 @@
#define GUARD_BATTLE_CONTROLLERS_H
#include "global.h"
+#include "battle.h"
enum
{
diff --git a/include/berry_crush.h b/include/berry_crush.h
new file mode 100644
index 000000000..2583aba61
--- /dev/null
+++ b/include/berry_crush.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_CRUSH_H
+#define GUARD_BERRY_CRUSH_H
+
+void sub_814B754(MainCallback callback);
+
+#endif //GUARD_BERRY_CRUSH_H
diff --git a/include/cable_club.h b/include/cable_club.h
index 5375c2210..c1dbab1a5 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -10,5 +10,6 @@
// Exported ROM declarations
void sub_8081A90(u8 taskId);
u8 sub_8081150(void);
+void sub_8081668(void);
#endif //GUARD_CABLE_CLUB_H
diff --git a/include/constants/daycare.h b/include/constants/daycare.h
new file mode 100644
index 000000000..103f920f2
--- /dev/null
+++ b/include/constants/daycare.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_DAYCARE_CONSTANTS_H
+#define GUARD_DAYCARE_CONSTANTS_H
+
+// Parent compatability scores
+#define PARENTS_INCOMPATIBLE 0
+#define PARENTS_LOW_COMPATIBILITY 20
+#define PARENTS_MED_COMPATABILITY 50
+#define PARENTS_MAX_COMPATABILITY 70
+
+// Daycare state
+#define DAYCARE_NO_MONS 0
+#define DAYCARE_EGG_WAITING 1
+#define DAYCARE_ONE_MON 2
+#define DAYCARE_TWO_MONS 3
+
+#define INHERITED_IV_COUNT 3
+#define EGG_HATCH_LEVEL 5
+#define EGG_GENDER_MALE 0x8000 // used to create a male egg from a female-only parent species (e.g. Nidoran)
+
+#define DAYCARE_LEVEL_MENU_EXIT 5
+#define DAYCARE_EXITED_LEVEL_MENU 2 // would be redundant with above if GF had used the same value
+
+// Array buffers
+#define EGG_MOVES_ARRAY_COUNT 10
+#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
+
+#endif //GUARD_DAYCARE_CONSTANTS_H
diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h
index 6a4405b65..bf75a47cc 100644
--- a/include/constants/event_object_movement.h
+++ b/include/constants/event_object_movement.h
@@ -1,6 +1,7 @@
#ifndef GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
#define GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
+// FIXME: Different in FRLG
#define MOVEMENT_TYPE_NONE 0x0
#define MOVEMENT_TYPE_LOOK_AROUND 0x1
#define MOVEMENT_TYPE_WANDER_AROUND 0x2
@@ -239,8 +240,10 @@
#define MOVEMENT_ACTION_STOP_LEVITATE 0x99
#define MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP 0x9A
#define MOVEMENT_ACTION_FIGURE_8 0x9B
-#define MOVEMENT_ACTION_FLY_UP 0x9C
-#define MOVEMENT_ACTION_FLY_DOWN 0x9D
+
+// These two are verified correct in FRLG
+#define MOVEMENT_ACTION_FLY_UP 0xA4
+#define MOVEMENT_ACTION_FLY_DOWN 0xA5
#define MOVEMENT_ACTION_STEP_END 0xFE
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 982c90fcc..26ffa8a7c 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -104,14 +104,14 @@
#define FLAG_HIDE_DOJO_HITMONLEE_BALL 0x060
#define FLAG_HIDE_DOJO_HITMONCHAN_BALL 0x061
#define FLAG_HIDE_CINNABAR_BILL 0x062
-#define FLAG_HIDE_UNION_ROOM_1 0x063
-#define FLAG_HIDE_UNION_ROOM_2 0x064
-#define FLAG_HIDE_UNION_ROOM_3 0x065
-#define FLAG_HIDE_UNION_ROOM_4 0x066
-#define FLAG_HIDE_UNION_ROOM_5 0x067
-#define FLAG_HIDE_UNION_ROOM_6 0x068
-#define FLAG_HIDE_UNION_ROOM_7 0x069
-#define FLAG_HIDE_UNION_ROOM_8 0x06A
+#define FLAG_HIDE_UNION_ROOM_PLAYER_1 0x063
+#define FLAG_HIDE_UNION_ROOM_PLAYER_2 0x064
+#define FLAG_HIDE_UNION_ROOM_PLAYER_3 0x065
+#define FLAG_HIDE_UNION_ROOM_PLAYER_4 0x066
+#define FLAG_HIDE_UNION_ROOM_PLAYER_5 0x067
+#define FLAG_HIDE_UNION_ROOM_PLAYER_6 0x068
+#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x069
+#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x06A
#define FLAG_HIDE_CINNABAR_SEAGALLOP 0x06B
#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0x06C
#define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0x06D
@@ -450,7 +450,7 @@
#define FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL 0x1B6
#define FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE 0x1B7
#define FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL 0x1B8
-#define FLAG_HIDE_FUCHSIA_CITY_BUILDING1_RARE_CANDY 0x1B9
+#define FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY 0x1B9
#define FLAG_HIDE_TWO_ISLAND_REVIVE 0x1BA
#define FLAG_HIDE_THREE_ISLAND_ZINC 0x1BB
#define FLAG_0x1BC 0x1BC
diff --git a/include/constants/global.h b/include/constants/global.h
index 420a9da71..77ef6f203 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -36,6 +36,7 @@
#define MALE 0
#define FEMALE 1
+#define GENDER_COUNT 2
#define OPTIONS_BUTTON_MODE_HELP 0
#define OPTIONS_BUTTON_MODE_LR 1
@@ -59,6 +60,8 @@
#define NUM_BAG_POCKETS 5
+#define MAX_MON_MOVES 4
+
#define PARTY_SIZE 6
#define MULTI_PARTY_SIZE (PARTY_SIZE / 2)
diff --git a/include/constants/item_menu.h b/include/constants/item_menu.h
new file mode 100644
index 000000000..d173b9212
--- /dev/null
+++ b/include/constants/item_menu.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_CONSTANTS_ITEM_MENU_H
+#define GUARD_CONSTANTS_ITEM_MENU_H
+
+#define OPEN_BAG_ITEMS 0
+#define OPEN_BAG_KEYITEMS 1
+#define OPEN_BAG_POKEBALLS 2
+#define OPEN_BAG_LAST 3
+
+#define ITEMMENULOCATION_FIELD 0
+#define ITEMMENULOCATION_PARTY 1
+#define ITEMMENULOCATION_SHOP 2
+#define ITEMMENULOCATION_ITEMPC 3
+#define ITEMMENULOCATION_PCBOX 4
+#define ITEMMENULOCATION_BATTLE 5
+#define ITEMMENULOCATION_OLD_MAN 6
+#define ITEMMENULOCATION_TTVSCR_STATUS 7
+#define ITEMMENULOCATION_TTVSCR_CATCHING 8
+#define ITEMMENULOCATION_TTVSCR_REGISTER 9
+#define ITEMMENULOCATION_TTVSCR_TMS 10
+#define ITEMMENULOCATION_LAST 11
+
+#define ITEMMENUACTION_USE 0
+#define ITEMMENUACTION_TOSS 1
+#define ITEMMENUACTION_REGISTER 2
+#define ITEMMENUACTION_GIVE 3
+#define ITEMMENUACTION_CANCEL 4
+#define ITEMMENUACTION_BATTLE_USE 5
+#define ITEMMENUACTION_CHECK 6
+#define ITEMMENUACTION_OPEN 7
+#define ITEMMENUACTION_OPEN_BERRIES 8
+#define ITEMMENUACTION_WALK 9
+#define ITEMMENUACTION_DESELECT 10
+#define ITEMMENUACTION_DUMMY 11
+
+#endif //GUARD_CONSTANTS_ITEM_MENU_H
diff --git a/include/constants/layouts.h b/include/constants/layouts.h
index a9d40220f..657d531e8 100644
--- a/include/constants/layouts.h
+++ b/include/constants/layouts.h
@@ -180,10 +180,10 @@
#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F 195
#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F 196
#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF 197
-#define LAYOUT_SAFARI_ZONE_BUILDING 198
+#define LAYOUT_SAFARI_ZONE_REST_HOUSE 198
#define LAYOUT_SAFARI_ZONE_SECRET_HOUSE 199
-#define LAYOUT_FUCHSIA_CITY_ZOO_BUILDING 200
-#define LAYOUT_FUCHSIA_CITY_BUILDING1 201
+#define LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE 200
+#define LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE 201
#define LAYOUT_FUCHSIA_CITY_HOUSE2 202
#define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE 203
#define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE 204
@@ -260,8 +260,8 @@
#define LAYOUT_ROUTE5_POKEMON_DAY_CARE 275
#define LAYOUT_VIRIDIAN_CITY_HOUSE1 276
#define LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE 277
-#define LAYOUT_UNUSED_LAYOUT_833B6EC 278
-#define LAYOUT_UNUSED_LAYOUT_833BE30 279
+#define LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED 278
+#define LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED 279
#define LAYOUT_MT_EMBER_EXTERIOR 280
#define LAYOUT_MT_EMBER_SUMMIT 281
#define LAYOUT_MT_EMBER_SUMMIT_PATH_1F 282
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
index 4d37b0dc8..0cc1c27fb 100644
--- a/include/constants/map_groups.h
+++ b/include/constants/map_groups.h
@@ -76,10 +76,10 @@
#define MAP_SAFARI_ZONE_EAST (64 | (1 << 8))
#define MAP_SAFARI_ZONE_NORTH (65 | (1 << 8))
#define MAP_SAFARI_ZONE_WEST (66 | (1 << 8))
-#define MAP_SAFARI_ZONE_BUILDING1 (67 | (1 << 8))
-#define MAP_SAFARI_ZONE_BUILDING2 (68 | (1 << 8))
-#define MAP_SAFARI_ZONE_BUILDING3 (69 | (1 << 8))
-#define MAP_SAFARI_ZONE_BUILDING4 (70 | (1 << 8))
+#define MAP_SAFARI_ZONE_CENTER_REST_HOUSE (67 | (1 << 8))
+#define MAP_SAFARI_ZONE_EAST_REST_HOUSE (68 | (1 << 8))
+#define MAP_SAFARI_ZONE_NORTH_REST_HOUSE (69 | (1 << 8))
+#define MAP_SAFARI_ZONE_WEST_REST_HOUSE (70 | (1 << 8))
#define MAP_SAFARI_ZONE_SECRET_HOUSE (71 | (1 << 8))
#define MAP_CERULEAN_CAVE_1F (72 | (1 << 8))
#define MAP_CERULEAN_CAVE_2F (73 | (1 << 8))
@@ -342,12 +342,12 @@
// Map Group 11
#define MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE (0 | (11 << 8))
#define MAP_FUCHSIA_CITY_MART (1 | (11 << 8))
-#define MAP_FUCHSIA_CITY_ZOO_BUILDING (2 | (11 << 8))
+#define MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE (2 | (11 << 8))
#define MAP_FUCHSIA_CITY_GYM (3 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE1 (4 | (11 << 8))
#define MAP_FUCHSIA_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
#define MAP_FUCHSIA_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
-#define MAP_FUCHSIA_CITY_BUILDING1 (7 | (11 << 8))
+#define MAP_FUCHSIA_CITY_WARDENS_HOUSE (7 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE2 (8 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE3 (9 | (11 << 8))
diff --git a/include/constants/menu.h b/include/constants/menu.h
index 6d72787dc..aed98dec4 100644
--- a/include/constants/menu.h
+++ b/include/constants/menu.h
@@ -78,4 +78,35 @@
#define LISTMENU_BERRY_POWDER 5
#define LISTMENU_TRAINER_TOWER_FLOORS 6
+// Std String Ids
+#define STDSTRING_COOL 0
+#define STDSTRING_BEAUTY 1
+#define STDSTRING_CUTE 2
+#define STDSTRING_SMART 3
+#define STDSTRING_TOUGH 4
+#define STDSTRING_COOL2 5
+#define STDSTRING_BEAUTY2 6
+#define STDSTRING_CUTE2 7
+#define STDSTRING_SMART2 8
+#define STDSTRING_TOUGH2 9
+#define STDSTRING_ITEMS 10
+#define STDSTRING_KEY_ITEMS 11
+#define STDSTRING_POKEBALLS 12
+#define STDSTRING_TMHMS 13
+#define STDSTRING_BERRIES 14
+#define STDSTRING_BOULDER_BADGE 15
+#define STDSTRING_CASCADE_BADGE 16
+#define STDSTRING_THUNDER_BADGE 17
+#define STDSTRING_RAINBOW_BADGE 18
+#define STDSTRING_SOUL_BADGE 19
+#define STDSTRING_MARSH_BADGE 20
+#define STDSTRING_VOLCANO_BADGE 21
+#define STDSTRING_EARTH_BADGE 22
+#define STDSTRING_COINS 23
+#define STDSTRING_ITEMS_POCKET 24
+#define STDSTRING_KEY_ITEMS_POCKET 25
+#define STDSTRING_POKEBALLS_POCKET 26
+#define STDSTRING_TM_CASE 27
+#define STDSTRING_BERRY_POUCH 28
+
#endif //GUARD_CONSTANTS_MENU_H
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index c664290d5..f2bf4b865 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -1,6 +1,9 @@
#ifndef GUARD_METATILE_LABELS_H
#define GUARD_METATILE_LABELS_H
+// General
+#define METATILE_General_CalmWater 0x12B
+
// Pokemon Mansion
#define METATILE_PokemonMansion_Floor 0x284
#define METATILE_PokemonMansion_Floor_ShadeFull 0x285
@@ -34,4 +37,7 @@
#define METATILE_PokemonMansion_Statue_RedEyes_Shade 0x34E
#define METATILE_PokemonMansion_Statue_RedEyes_Basement 0x34F
+// gTileset_82D504C. Below metatile probably needs generic name
+#define METATILE_MtEmber_CaveEntrance 0x346
+
#endif // GUARD_METATILE_LABELS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index e394a8fb4..a8009f1ff 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -1,6 +1,97 @@
#ifndef GUARD_CONSTANTS_POKEMON_H
#define GUARD_CONSTANTS_POKEMON_H
+// For (Set|Get)(Box)?MonData
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_OT_ID 1
+#define MON_DATA_NICKNAME 2
+#define MON_DATA_LANGUAGE 3
+#define MON_DATA_SANITY_IS_BAD_EGG 4
+#define MON_DATA_SANITY_HAS_SPECIES 5
+#define MON_DATA_SANITY_IS_EGG 6
+#define MON_DATA_OT_NAME 7
+#define MON_DATA_MARKINGS 8
+#define MON_DATA_CHECKSUM 9
+#define MON_DATA_ENCRYPT_SEPARATOR 10
+#define MON_DATA_SPECIES 11
+#define MON_DATA_HELD_ITEM 12
+#define MON_DATA_MOVE1 13
+#define MON_DATA_MOVE2 14
+#define MON_DATA_MOVE3 15
+#define MON_DATA_MOVE4 16
+#define MON_DATA_PP1 17
+#define MON_DATA_PP2 18
+#define MON_DATA_PP3 19
+#define MON_DATA_PP4 20
+#define MON_DATA_PP_BONUSES 21
+#define MON_DATA_COOL 22
+#define MON_DATA_BEAUTY 23
+#define MON_DATA_CUTE 24
+#define MON_DATA_EXP 25
+#define MON_DATA_HP_EV 26
+#define MON_DATA_ATK_EV 27
+#define MON_DATA_DEF_EV 28
+#define MON_DATA_SPEED_EV 29
+#define MON_DATA_SPATK_EV 30
+#define MON_DATA_SPDEF_EV 31
+#define MON_DATA_FRIENDSHIP 32
+#define MON_DATA_SMART 33
+#define MON_DATA_POKERUS 34
+#define MON_DATA_MET_LOCATION 35
+#define MON_DATA_MET_LEVEL 36
+#define MON_DATA_MET_GAME 37
+#define MON_DATA_POKEBALL 38
+#define MON_DATA_HP_IV 39
+#define MON_DATA_ATK_IV 40
+#define MON_DATA_DEF_IV 41
+#define MON_DATA_SPEED_IV 42
+#define MON_DATA_SPATK_IV 43
+#define MON_DATA_SPDEF_IV 44
+#define MON_DATA_IS_EGG 45
+#define MON_DATA_ABILITY_NUM 46
+#define MON_DATA_TOUGH 47
+#define MON_DATA_SHEEN 48
+#define MON_DATA_OT_GENDER 49
+#define MON_DATA_COOL_RIBBON 50
+#define MON_DATA_BEAUTY_RIBBON 51
+#define MON_DATA_CUTE_RIBBON 52
+#define MON_DATA_SMART_RIBBON 53
+#define MON_DATA_TOUGH_RIBBON 54
+#define MON_DATA_STATUS 55
+#define MON_DATA_LEVEL 56
+#define MON_DATA_HP 57
+#define MON_DATA_MAX_HP 58
+#define MON_DATA_ATK 59
+#define MON_DATA_DEF 60
+#define MON_DATA_SPEED 61
+#define MON_DATA_SPATK 62
+#define MON_DATA_SPDEF 63
+#define MON_DATA_MAIL 64
+#define MON_DATA_SPECIES2 65
+#define MON_DATA_IVS 66
+#define MON_DATA_CHAMPION_RIBBON 67
+#define MON_DATA_WINNING_RIBBON 68
+#define MON_DATA_VICTORY_RIBBON 69
+#define MON_DATA_ARTIST_RIBBON 70
+#define MON_DATA_EFFORT_RIBBON 71
+#define MON_DATA_GIFT_RIBBON_1 72
+#define MON_DATA_GIFT_RIBBON_2 73
+#define MON_DATA_GIFT_RIBBON_3 74
+#define MON_DATA_GIFT_RIBBON_4 75
+#define MON_DATA_GIFT_RIBBON_5 76
+#define MON_DATA_GIFT_RIBBON_6 77
+#define MON_DATA_GIFT_RIBBON_7 78
+#define MON_DATA_FATEFUL_ENCOUNTER 79
+#define MON_DATA_OBEDIENCE 80
+#define MON_DATA_KNOWN_MOVES 81
+#define MON_DATA_RIBBON_COUNT 82
+#define MON_DATA_RIBBONS 83
+#define MON_DATA_ATK2 84
+#define MON_DATA_DEF2 85
+#define MON_DATA_SPEED2 86
+#define MON_DATA_SPATK2 87
+#define MON_DATA_SPDEF2 88
+
// Pokemon types
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
@@ -40,6 +131,8 @@
#define EGG_GROUP_DRAGON 14
#define EGG_GROUP_UNDISCOVERED 15
+#define EGG_GROUPS_PER_MON 2
+
// Pokemon natures
#define NATURE_HARDY 0
#define NATURE_LONELY 1
@@ -91,8 +184,33 @@
#define PLAYER_HAS_ONE_MON 0x1
#define PLAYER_HAS_ONE_USABLE_MON 0x2
+#define MAX_LEVEL 100
+
+#define OT_ID_RANDOM_NO_SHINY 2
+#define OT_ID_PRESET 1
+#define OT_ID_PLAYER_ID 0
+
+#define MON_GIVEN_TO_PARTY 0x0
+#define MON_GIVEN_TO_PC 0x1
+#define MON_CANT_GIVE 0x2
+
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
+#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
+#define FRIENDSHIP_EVENT_VITAMIN 0x1
+#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
+#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
+#define FRIENDSHIP_EVENT_WALKING 0x5
+#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
+#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
+#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
+
+#define PARTY_SIZE 6
+#define MAX_TOTAL_EVS 510
+#define UNOWN_FORM_COUNT 28
+#define MAX_MON_LEVEL 100
+
#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/constants/region_map.h b/include/constants/region_map.h
index bd087bd60..78dab242c 100644
--- a/include/constants/region_map.h
+++ b/include/constants/region_map.h
@@ -206,6 +206,8 @@
#define MAPSEC_SPECIAL_AREA 0xC4
#define MAPSEC_NONE 0xC5
-#define MAPSEC_IN_GAME_TRADE 0xFE
+#define METLOC_SPECIAL_EGG 0xFD
+#define METLOC_IN_GAME_TRADE 0xFE
+#define METLOC_FATEFUL_ENCOUNTER 0xFF
#endif //GUARD_CONSTANTS_REGION_MAP_H
diff --git a/include/data.h b/include/data.h
index 72e6b66fc..f308b044c 100644
--- a/include/data.h
+++ b/include/data.h
@@ -57,7 +57,7 @@ extern const struct SpriteFrameImage gUnknown_82346D8[];
extern const struct SpriteFrameImage gUnknown_82346F8[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Red[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[];
-extern const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[];
+extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[];
extern const struct SpriteFrameImage gTrainerBackPicTable_OldMan[];
extern const struct SpriteFrameImage gTrainerBackPicTable_RSBrendan[];
extern const struct SpriteFrameImage gTrainerBackPicTable_RSMay[];
diff --git a/include/daycare.h b/include/daycare.h
index 08ca11187..71eada93e 100644
--- a/include/daycare.h
+++ b/include/daycare.h
@@ -3,8 +3,6 @@
#include "global.h"
-#define EGG_HATCH_LEVEL 5
-
u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest);
u8 CountPokemonInDaycare(struct DayCare *daycare);
diff --git a/include/dodrio_berry_picking.h b/include/dodrio_berry_picking.h
new file mode 100644
index 000000000..59736ba7a
--- /dev/null
+++ b/include/dodrio_berry_picking.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_DODRIO_BERRY_PICKING_H
+#define GUARD_DODRIO_BERRY_PICKING_H
+
+void sub_81507FC(u16 species, MainCallback callback);
+
+#endif //GUARD_DODRIO_BERRY_PICKING_H
diff --git a/include/event_object_80688E4.h b/include/event_object_80688E4.h
index cee8ff707..36040e0a5 100644
--- a/include/event_object_80688E4.h
+++ b/include/event_object_80688E4.h
@@ -6,5 +6,10 @@
void FreezeObjectEvents(void);
void FreezeObjectEvent(struct ObjectEvent *);
void FreezeObjectEventsExceptOne(u8 objEventId);
+void sub_8069124(u8 a0, bool8 a1);
+u32 sub_806916C(u8 a0);
+void sub_80691A4(u8 a0, u8 a1);
+void sub_8069094(u8 a0, u8 a1);
+bool32 sub_8069294(u8 a0);
#endif // GUARD_EVENT_OBJECT_80688E4_H
diff --git a/include/event_object_8097404.h b/include/event_object_8097404.h
index 77781943e..23fce9576 100644
--- a/include/event_object_8097404.h
+++ b/include/event_object_8097404.h
@@ -14,7 +14,7 @@ extern void *gUnknown_020375B8;
// Exported ROM declarations
void sub_8097AC8(struct Sprite *);
-void npc_sync_anim_pause_bits(struct ObjectEvent *);
+void UnfreezeObjectEvent(struct ObjectEvent *);
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
u8 sub_8097F78(struct ObjectEvent *);
bool8 obj_npc_ministep(struct Sprite *sprite);
diff --git a/include/event_object_lock.h b/include/event_object_lock.h
index c5c32857b..5c65585b5 100644
--- a/include/event_object_lock.h
+++ b/include/event_object_lock.h
@@ -11,5 +11,6 @@ void sub_8098630(void);
bool8 sub_8098734(void);
void sub_80696C0(void);
bool8 walkrun_is_standing_still(void);
+void sub_80696F0(void);
#endif // GUARD_EVENT_OBJECT_LOCK_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index b81a61664..f2e7bd325 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -47,7 +47,7 @@ void ObjectEventClearAnimIfSpecialAnimActive(struct ObjectEvent *);
void SpawnObjectEventsInView(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8);
-u8 show_sprite(u8, u8, u8);
+u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
u8 SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
void sub_8093038(s16, s16, s16 *, s16 *);
@@ -82,7 +82,7 @@ bool8 ObjectEventIsSpecialAnimActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct ObjectEvent *, struct Sprite *);
-void ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
+bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
void npc_coords_shift_still(struct ObjectEvent *);
void sub_805FE7C(struct ObjectEvent *, u8);
void SetTrainerMovementType(struct ObjectEvent *, u8);
diff --git a/include/event_scripts.h b/include/event_scripts.h
index b5e355484..54eb2b2a9 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1148,10 +1148,10 @@ extern const u8 EventScript_FldEffStrength[];
extern const u8 EventScript_FailSweetScent[];
extern const u8 EventScript_FldEffRockSmash[];
-extern const u8 EventScript_SafariTimesUp[];
-extern const u8 EventScript_SafariRetire[];
-extern const u8 EventScript_SafariWarpOut[];
-extern const u8 EventScript_SafariOutOfBalls[];
+extern const u8 SafariZone_EventScript_TimesUp[];
+extern const u8 SafariZone_EventScript_RetirePrompt[];
+extern const u8 SafariZone_EventScript_OutOfBallsMidBattle[];
+extern const u8 SafariZone_EventScript_OutOfBalls[];
extern const u8 EventScript_ItemfinderDigUpUnderfootItem[];
@@ -1162,7 +1162,7 @@ extern const u8 EventScript_TryDoNormalTrainerBattle[];
extern const u8 EventScript_TryDoDoubleRematchBattle[];
extern const u8 EventScript_TryDoRematchBattle[];
extern const u8 gUnknown_81A4EB4[];
-extern const u8 EventScript_1C555B[];
+extern const u8 Test_EventScript_Sign[];
// new_game
extern const u8 EventScript_ResetAllMapFlags[];
@@ -1195,4 +1195,6 @@ extern const u8 Text_1A5D31[];
extern const u8 Text_1A5D6E[];
extern const u8 Text_1A5DB1[];
+extern const u8 EventScript_BagItemCanBeRegistered[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index ecb622de5..57a2fab66 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -7,5 +7,6 @@ extern u32 gUnknown_3005078;
void RestartWildEncounterImmunitySteps(void);
void ClearPoisonStepCounter(void);
+void SetCableClubWarp(void);
#endif //GUARD_FIELD_CONTROL_AVATAR_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 22849a37d..d27d0e54a 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -17,6 +17,8 @@ void FieldCallback_ReturnToEventScript2(void);
void sub_807DC00(void);
void FadeTransition_FadeInOnReturnToStartMenu(void);
+void sub_807DCE4(void);
+
bool32 sub_807E418(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index ec1a077be..a69ec6155 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -35,5 +35,6 @@ bool32 sub_805DAD0(void);
bool32 sub_805DC24(void);
bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerSurfingNorth(void);
+void player_get_pos_including_state_based_drift(s16 *x, s16 *y);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_weather.h b/include/field_weather.h
index 2709a7298..de2543edb 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -3,7 +3,7 @@
#include "global.h"
-void fade_screen(u8, s8);
+void FadeScreen(u8, s8);
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 1560a0841..91a45d8c5 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -31,5 +31,6 @@ void sub_8059948(u8 a0, u8 a1);
void save_serialize_map(void);
u32 sub_8058F1C(u32 original, u8 bit);
u32 sub_8058F48(s16 x, s16 y, u8 z);
+void sub_8059024(s32 x, s32 y, bool32 arg2);
#endif //GUARD_FIELDMAP_H
diff --git a/include/gflib.h b/include/gflib.h
new file mode 100644
index 000000000..a6dfc62df
--- /dev/null
+++ b/include/gflib.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_GFLIB_H
+#define GUARD_GFLIB_H
+
+#include "global.h"
+
+#include "bg.h"
+#include "palette.h"
+#include "gpu_regs.h"
+#include "dma3.h"
+#include "malloc.h"
+#include "sound.h"
+#include "text.h"
+#include "sprite.h"
+#include "window.h"
+#include "blit.h"
+#include "string_util.h"
+
+#endif //GUARD_GFLIB_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 4402d5042..01cd992ec 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -275,9 +275,9 @@ enum
struct PlayerAvatar /* 0x202E858 */
{
/*0x00*/ u8 flags;
- /*0x01*/ u8 bike;
- /*0x02*/ u8 running2;
- /*0x03*/ u8 running1;
+ /*0x01*/ u8 unk1; // used to be bike, but it's not that in Emerald and probably isn't here either. maybe transition flags?
+ /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
+ /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;
/*0x05*/ u8 objectEventId;
/*0x06*/ u8 unk6;
diff --git a/include/graphics.h b/include/graphics.h
index a668364bd..e87acb556 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -1,7 +1,3 @@
-//
-// Created by scott on 10/21/2017.
-//
-
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
@@ -2656,7 +2652,7 @@ extern const u32 gTrainerPalette_RSBrendan1[];
extern const u32 gTrainerPalette_RSMay1[];
extern const u32 gTrainerPalette_LeafBackPic[];
extern const u32 gTrainerPalette_RedBackPic[];
-extern const u32 gTrainerPalette_PokeDudeBackPic[];
+extern const u32 gTrainerPalette_PokedudeBackPic[];
extern const u32 gTrainerPalette_OldManBackPic[];
extern const u32 gTrainerPalette_PokemonBreederM[];
extern const u32 gTrainerPalette_RSPokemonBreederF[];
@@ -4358,7 +4354,7 @@ extern const u8 gBerryPouchBg1Tilemap[];
extern const u8 gTrainerBackPic_Red[];
extern const u8 gTrainerBackPic_Leaf[];
-extern const u8 gTrainerBackPic_PokeDude[];
+extern const u8 gTrainerBackPic_Pokedude[];
extern const u8 gTrainerBackPic_OldMan[];
extern const u8 gTrainerBackPic_RSBrendan[];
extern const u8 gTrainerBackPic_RSMay[];
@@ -4861,4 +4857,11 @@ extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
extern const u16 gUnknown_8D12404[];
+// item_menu
+extern const u32 gUnknown_8E830CC[];
+extern const u32 gUnknown_8E832C0[];
+extern const u32 gUnknown_8E83444[];
+extern const u32 gBagBgPalette[];
+extern const u32 gBagBgPalette_FemaleOverride[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 187674e83..27bd73e72 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -3,6 +3,7 @@
#include "global.h"
#include "task.h"
+#include "constants/item_menu.h"
// Exported type declarations
@@ -10,15 +11,15 @@
struct BagStruct
{
- void (*bagCallback)(void);
+ MainCallback bagCallback;
u8 location;
- u8 pocket;
- u16 unk6;
- u8 cursorPosition[6];
- u8 scrollPosition[6];
+ bool8 bagOpen;
+ u16 pocket;
+ u16 itemsAbove[3];
+ u16 cursorPos[3];
};
-extern struct BagStruct gUnknown_203ACFC;
+extern struct BagStruct gBagMenuState;
extern u16 gSpecialVar_ItemId;
@@ -26,19 +27,19 @@ extern u16 gSpecialVar_ItemId;
void sub_81AAC50(void);
void sub_81AAC70(void);
void CB2_SetUpReshowBattleScreenAfterMenu(void);
-void sub_81089BC(void);
-void sub_810B108(u8);
+void ResetBagCursorPositions(void);
+void InitPokedudeBag(u8);
void CB2_BagMenuFromStartMenu(void);
-void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2);
+void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_);
void ItemMenu_StartFadeToExitCallback(u8 taskId);
-void sub_8108CB4(void);
+void Bag_BeginCloseWin0Animation(void);
void ItemMenu_SetExitCallback(void (*)(void));
-void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc);
-void sub_810A1F8(u8 taskId);
-void sub_8107ECC(void);
-void sub_810AF74(void);
-void sub_8108DC8(u8 pocketId);
-void sub_81089F4(u8 pocketId);
+void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc);
+void Task_ReturnToBagFromContextMenu(u8 taskId);
+void CB2_BagMenuFromBattle(void);
+void InitOldManBag(void);
+void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId);
+void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId);
void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback);
#endif //GUARD_ITEM_MENU_H
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
index b5b5c6b0b..fd66a9375 100644
--- a/include/item_menu_icons.h
+++ b/include/item_menu_icons.h
@@ -3,28 +3,26 @@
#include "global.h"
-extern void * gUnknown_2039884;
-
-extern const struct CompressedSpriteSheet gUnknown_83D41E4;
-extern const struct CompressedSpriteSheet gUnknown_83D41EC;
-extern const struct CompressedSpritePalette gUnknown_83D41F4;
+extern const struct CompressedSpriteSheet gSpriteSheet_Backpack;
+extern const struct CompressedSpriteSheet gSpriteSheet_Satchel;
+extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel;
extern const struct CompressedSpriteSheet gBagSwapSpriteSheet;
extern const struct CompressedSpritePalette gBagSwapSpritePalette;
void ResetItemMenuIconState(void);
-void sub_80985E4(void);
+void ItemMenuIcons_CreateInsertIndicatorBarHidden(void);
void DestroyItemMenuIcon(bool8 a0);
void CreateItemMenuIcon(u16 itemId, bool8 a0);
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId);
u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
void sub_80989A0(u16 itemId, u8 idx);
-void sub_80986A8(s16 x, u16 y);
-void sub_8098660(u8);
+void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
+void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
void sub_8098528(u8);
void sub_8098580(void);
-const void * sub_8098974(u16 itemId, u8 ptrId);
-void sub_80984FC(u8 animNum);
+const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId);
+void CreateBagOrSatchelSprite(u8 animNum);
#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/link.h b/include/link.h
index 4175ac97f..770a60f44 100644
--- a/include/link.h
+++ b/include/link.h
@@ -278,5 +278,6 @@ bool8 HandleLinkConnection(void);
void sub_800B0B4(void);
void sub_800B110(u32 who);
void sub_800ACBC(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
+u8 sub_800A8D4(void);
#endif // GUARD_LINK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index bde20c555..790429870 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -233,9 +233,9 @@ void MG_DrawCheckerboardPattern(void);
void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
bool8 IsLinkRfuTaskFinished(void);
void DestroyWirelessStatusIndicatorSprite(void);
-void MEvent_CreateTask_CardOrNewsWithFriend(u8);
-void MEvent_CreateTask_CardOrNewsOverWireless(u8);
-void MEvent_CreateTask_Leader(u8);
+void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
+void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
+void MEvent_CreateTask_Leader(u32 arg0);
void sub_80F9E2C(void * data);
u8 sub_8116DE0(void);
void sub_80FBB4C(void);
@@ -288,13 +288,43 @@ bool8 sub_80FC6E8(struct UnkRfuStruct_2_Sub_124 * a0, u8 *a1);
void sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1);
u8 sub_80FEA34(u8 a0, u16 a1);
void sub_80FDA30(u32 a0);
-void InitHostRFUtgtGname(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3);
+void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 r2, s32 r3);
void LinkRfu_syncVBlank_(void);
s32 sub_80FD430(void (*func1)(u8, u8), void (*func2)(u16));
void sub_80FEB3C(void);
void sub_80FAFE0(u8 a0);
bool32 sub_80FA44C(u32 a0);
bool8 sub_80FC1B0(void);
+bool8 sub_80F8F40(void);
+void sub_80F8F5C(void);
+bool32 sub_80FA5D4(void);
+bool32 sub_80FC1CC(void);
+bool32 sub_80F8F7C(bool32 a0);
+bool32 sub_80FA634(u16 a0, const u8 *a1);
+void sub_80FA670(u8 a0, u16 a1, const u8 *a2);
+u32 sub_80FA6FC(u16 a0, const u8 *a1);
+void SetHostRFUtgtGname(u8 a0, u32 a1, u32 a2);
+void sub_80FBB8C(u32 a0);
+void sub_80FBD4C(const u8 *ptr, u16 a1);
+void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *gname, u8 *uname);
+void sub_80FBBD8(void);
+void sub_80FA6BC(void);
+void sub_80FBF54(const u8 *src, u16 trainerId);
+void sub_80FB008(u8 a0, u32 a1, u32 a2);
+void RecordMixTrainerNames(void);
+void sub_80F8CFC();
+void sub_80F8D14();
+void sub_80FAF74(bool32 a0, bool32 a1);
+void ClearAndInitHostRFUtgtGname(void);
+void sub_80F8FA0(void);
+void sub_80FAFA0(u32 type, u32 species, u32 level);
+bool32 sub_80FBB0C(void);
+void sub_80FBC00(void);
+void sub_80FBD6C(u32 a0);
+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);
#include "mevent_server.h"
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
index c8ce02c30..a7c1234c6 100644
--- a/include/map_name_popup.h
+++ b/include/map_name_popup.h
@@ -4,5 +4,6 @@
#include "global.h"
void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer);
+void DismissMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 1e75b336c..d26f50483 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -20,14 +20,14 @@ bool8 sub_80BF748(void);
bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinatesAndBgCntRegs(void);
-u8 sub_80BF8E4(void);
+u8 GetDialogBoxFontId(void);
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
u8 GetLRKeysState(void);
u8 GetLRKeysPressedAndHeld(void);
bool8 itemid_link_can_give_berry(u16 itemId);
-bool8 itemid_80BF6D8_mail_related(u16 itemId);
+bool8 CanWriteMailHere(u16 itemId);
void ResetVramOamAndBgCntRegs(void);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/mevent.h b/include/mevent.h
index 81caeb42f..85782f20a 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -70,5 +70,8 @@ void sub_8143D24(void);
u16 sub_81445C0(u32 command);
void sub_8144714(u32 a0, u32 a1);
u16 *GetMEventProfileECWordsMaybe(void);
+void sub_81446C4(void);
+bool32 sub_81446D0(u16 a0);
+u16 GetWonderCardFlagId(void);
#endif //GUARD_MEVENT_H
diff --git a/include/mevent_server.h b/include/mevent_server.h
index b691e9e1f..1e9ef7bef 100644
--- a/include/mevent_server.h
+++ b/include/mevent_server.h
@@ -86,6 +86,7 @@ struct mevent_server_cmd
#define SRV_SEND_NEWS {.instr = 14}
#define SRV_BUFFER_SEND {.instr = 15}
#define SRV_SEND(x, y) {.instr = 18, .flag = x, .parameter = (void *)y}
+#define SRV_SENDSTR(x, y) {.instr = 20, .flag = x, .parameter = (void *)y}
#define SRV_BUFFER_CARD {.instr = 26}
#define SRV_BUFFER_NEWS {.instr = 27}
#define SRV_RAM_SCRIPT_IF_VALID {.instr = 28}
diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h
index 32624d602..bd790b36e 100644
--- a/include/mystery_gift_menu.h
+++ b/include/mystery_gift_menu.h
@@ -7,5 +7,8 @@ void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void);
void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32);
void c2_mystery_gift(void);
void c2_mystery_gift_e_reader_run(void);
+s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str);
+void MG_DrawTextBorder(u8 windowId);
+u16 GetMysteryGiftBaseBlock(void);
#endif //GUARD_MYSTERY_GIFT_MENU_H
diff --git a/include/overworld.h b/include/overworld.h
index c24b63cf9..a7031e56d 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -62,7 +62,8 @@ extern struct WarpData gUnknown_2031DB4;
extern struct WarpData gUnknown_2031DBC;
extern u8 gUnknown_2031DE0;
-extern u8 gUnknown_300502C;
+extern u8 gFieldLinkPlayerCount;
+extern u8 gLocalLinkPlayerId;
void IncrementGameStat(u8 index);
diff --git a/include/party_menu.h b/include/party_menu.h
index cc8889137..a1b85e059 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -68,7 +68,7 @@ void CB2_ChooseMonToGiveItem(void);
void ChooseMonToGiveMailFromMailbox(void);
void InitChooseHalfPartyForBattle(u8 a1);
void ClearSelectedPartyOrder(void);
-void sub_81277F4(u8 menuType, MainCallback callback);
+void ChooseMonForTradingBoard(u8 menuType, MainCallback callback);
void ChooseMonForMoveTutor(void);
void ChooseMonForWirelessMinigame(void);
void OpenPartyMenuInTutorialBattle(u8 partyAction);
diff --git a/include/pokemon.h b/include/pokemon.h
index 54ea44efd..be0a35877 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -5,144 +5,6 @@
#include "sprite.h"
#include "constants/pokemon.h"
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_OT_ID 1
-#define MON_DATA_NICKNAME 2
-#define MON_DATA_LANGUAGE 3
-#define MON_DATA_SANITY_IS_BAD_EGG 4
-#define MON_DATA_SANITY_HAS_SPECIES 5
-#define MON_DATA_SANITY_IS_EGG 6
-#define MON_DATA_OT_NAME 7
-#define MON_DATA_MARKINGS 8
-#define MON_DATA_CHECKSUM 9
-#define MON_DATA_ENCRYPT_SEPARATOR 10
-#define MON_DATA_SPECIES 11
-#define MON_DATA_HELD_ITEM 12
-#define MON_DATA_MOVE1 13
-#define MON_DATA_MOVE2 14
-#define MON_DATA_MOVE3 15
-#define MON_DATA_MOVE4 16
-#define MON_DATA_PP1 17
-#define MON_DATA_PP2 18
-#define MON_DATA_PP3 19
-#define MON_DATA_PP4 20
-#define MON_DATA_PP_BONUSES 21
-#define MON_DATA_COOL 22
-#define MON_DATA_BEAUTY 23
-#define MON_DATA_CUTE 24
-#define MON_DATA_EXP 25
-#define MON_DATA_HP_EV 26
-#define MON_DATA_ATK_EV 27
-#define MON_DATA_DEF_EV 28
-#define MON_DATA_SPEED_EV 29
-#define MON_DATA_SPATK_EV 30
-#define MON_DATA_SPDEF_EV 31
-#define MON_DATA_FRIENDSHIP 32
-#define MON_DATA_SMART 33
-#define MON_DATA_POKERUS 34
-#define MON_DATA_MET_LOCATION 35
-#define MON_DATA_MET_LEVEL 36
-#define MON_DATA_MET_GAME 37
-#define MON_DATA_POKEBALL 38
-#define MON_DATA_HP_IV 39
-#define MON_DATA_ATK_IV 40
-#define MON_DATA_DEF_IV 41
-#define MON_DATA_SPEED_IV 42
-#define MON_DATA_SPATK_IV 43
-#define MON_DATA_SPDEF_IV 44
-#define MON_DATA_IS_EGG 45
-#define MON_DATA_ABILITY_NUM 46
-#define MON_DATA_TOUGH 47
-#define MON_DATA_SHEEN 48
-#define MON_DATA_OT_GENDER 49
-#define MON_DATA_COOL_RIBBON 50
-#define MON_DATA_BEAUTY_RIBBON 51
-#define MON_DATA_CUTE_RIBBON 52
-#define MON_DATA_SMART_RIBBON 53
-#define MON_DATA_TOUGH_RIBBON 54
-#define MON_DATA_STATUS 55
-#define MON_DATA_LEVEL 56
-#define MON_DATA_HP 57
-#define MON_DATA_MAX_HP 58
-#define MON_DATA_ATK 59
-#define MON_DATA_DEF 60
-#define MON_DATA_SPEED 61
-#define MON_DATA_SPATK 62
-#define MON_DATA_SPDEF 63
-#define MON_DATA_MAIL 64
-#define MON_DATA_SPECIES2 65
-#define MON_DATA_IVS 66
-#define MON_DATA_CHAMPION_RIBBON 67
-#define MON_DATA_WINNING_RIBBON 68
-#define MON_DATA_VICTORY_RIBBON 69
-#define MON_DATA_ARTIST_RIBBON 70
-#define MON_DATA_EFFORT_RIBBON 71
-#define MON_DATA_GIFT_RIBBON_1 72
-#define MON_DATA_GIFT_RIBBON_2 73
-#define MON_DATA_GIFT_RIBBON_3 74
-#define MON_DATA_GIFT_RIBBON_4 75
-#define MON_DATA_GIFT_RIBBON_5 76
-#define MON_DATA_GIFT_RIBBON_6 77
-#define MON_DATA_GIFT_RIBBON_7 78
-#define MON_DATA_FATEFUL_ENCOUNTER 79
-#define MON_DATA_OBEDIENCE 80
-#define MON_DATA_KNOWN_MOVES 81
-#define MON_DATA_RIBBON_COUNT 82
-#define MON_DATA_RIBBONS 83
-#define MON_DATA_ATK2 84
-#define MON_DATA_DEF2 85
-#define MON_DATA_SPEED2 86
-#define MON_DATA_SPATK2 87
-#define MON_DATA_SPDEF2 88
-
-#define MAX_LEVEL 100
-
-#define OT_ID_RANDOM_NO_SHINY 2
-#define OT_ID_PRESET 1
-#define OT_ID_PLAYER_ID 0
-
-#define MON_GIVEN_TO_PARTY 0x0
-#define MON_GIVEN_TO_PC 0x1
-#define MON_CANT_GIVE 0x2
-
-#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
-#define FRIENDSHIP_EVENT_VITAMIN 0x1
-#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2
-#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
-#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
-#define FRIENDSHIP_EVENT_WALKING 0x5
-#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
-#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
-#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
-
-#define TYPE_NORMAL 0x00
-#define TYPE_FIGHTING 0x01
-#define TYPE_FLYING 0x02
-#define TYPE_POISON 0x03
-#define TYPE_GROUND 0x04
-#define TYPE_ROCK 0x05
-#define TYPE_BUG 0x06
-#define TYPE_GHOST 0x07
-#define TYPE_STEEL 0x08
-#define TYPE_MYSTERY 0x09
-#define TYPE_FIRE 0x0a
-#define TYPE_WATER 0x0b
-#define TYPE_GRASS 0x0c
-#define TYPE_ELECTRIC 0x0d
-#define TYPE_PSYCHIC 0x0e
-#define TYPE_ICE 0x0f
-#define TYPE_DRAGON 0x10
-#define TYPE_DARK 0x11
-
-#define NUMBER_OF_MON_TYPES 0x12
-
-#define PARTY_SIZE 6
-#define MAX_TOTAL_EVS 510
-#define NUM_STATS 6
-#define UNOWN_FORM_COUNT 28
-#define MAX_MON_LEVEL 100
-
-
struct PokemonSubstruct0
{
u16 species;
@@ -335,18 +197,6 @@ struct BattlePokemon
/*0x54*/ u32 otId;
};
-enum
-{
- STAT_STAGE_HP, // 0
- STAT_STAGE_ATK, // 1
- STAT_STAGE_DEF, // 2
- STAT_STAGE_SPEED, // 3
- STAT_STAGE_SPATK, // 4
- STAT_STAGE_SPDEF, // 5
- STAT_STAGE_ACC, // 6
- STAT_STAGE_EVASION, // 7
-};
-
struct BaseStats
{
/* 0x00 */ u8 baseHP;
diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h
index 8623b223a..0e9094752 100644
--- a/include/pokemon_jump.h
+++ b/include/pokemon_jump.h
@@ -5,5 +5,6 @@
void ResetPokeJumpResults(void);
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
+void sub_8147AA8(u16 species, MainCallback callback);
#endif // GUARD_POKEMON_JUMP_H
diff --git a/include/rfu_union_tool.h b/include/rfu_union_tool.h
new file mode 100644
index 000000000..b8b5cd664
--- /dev/null
+++ b/include/rfu_union_tool.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H
+#define GUARD_UNION_ROOM_PLAYER_AVATAR_H
+
+#include "union_room.h"
+
+void sub_811C1C8(void);
+void sub_811BAAC(u8 *spriteIds, s32 arg1);
+void sub_811BB40(u8 *spriteIds);
+void sub_811BB68(void);
+void sub_811BECC(struct UnkStruct_URoom *arg0);
+void sub_811BEDC(struct UnkStruct_URoom *arg0);
+bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
+void sub_811C028(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
+u8 ZeroUnionObjWork(struct UnionObj * ptr);
+void sub_811BA78(void);
+
+#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H
diff --git a/include/save_location.h b/include/save_location.h
index fb71ab728..c8e362231 100644
--- a/include/save_location.h
+++ b/include/save_location.h
@@ -6,6 +6,7 @@
#define POKECENTER_SAVEWARP (1 << 1)
#define LOBBY_SAVEWARP (1 << 2)
#define UNK_SPECIAL_SAVE_WARP_FLAG_3 (1 << 3)
+#define CHAMPION_SAVEWARP (1 << 7)
void TrySetMapSaveWarpStatus(void);
bool32 IsCurMapPokeCenter(void);
diff --git a/include/strings.h b/include/strings.h
index eace8d67e..a57493a9b 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -112,8 +112,8 @@ extern const u8 gText_OhNoICantBuyThat[];
extern const u8 gText_HowManyWouldYouLikeToSell[];
extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
extern const u8 gText_TurnedOverItemsWorthYen[];
-extern const u8 gPokeDudeText_TMTypes[];
-extern const u8 gPokeDudeText_ReadTMDescription[];
+extern const u8 gPokedudeText_TMTypes[];
+extern const u8 gPokedudeText_ReadTMDescription[];
extern const u8 gFameCheckerText_Cancel[];
extern const u8 gFameCheckerText_ListMenuCursor[];
extern const u8 gFameCheckerText_FameCheckerWillBeClosed[];
@@ -134,7 +134,7 @@ extern const u8 gTeachyTvString_CatchPkmn[];
extern const u8 gTeachyTvString_AboutTMs[];
extern const u8 gTeachyTvString_RegisterItem[];
extern const u8 gTeachyTvString_Cancel[];
-extern const u8 gTeachyTvText_PokeDudeSaysHello[];
+extern const u8 gTeachyTvText_PokedudeSaysHello[];
extern const u8 gTeachyTvText_BattleScript1[];
extern const u8 gTeachyTvText_StatusScript1[];
extern const u8 gTeachyTvText_MatchupsScript1[];
@@ -1038,4 +1038,27 @@ extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[];
extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[];
extern const u8 gText_SaveFailedScreen_SaveCompleted[];
+// bag
+extern const u8 gText_DepositItem[];
+
+// item_menu
+extern const u8 gOtherText_Register[];
+extern const u8 gOtherText_Walk[];
+extern const u8 gOtherText_Check[];
+extern const u8 gOtherText_Open[];
+extern const u8 gOtherText_Deselect[];
+extern const u8 gText_Items2[];
+extern const u8 gText_PokeBalls2[];
+extern const u8 gText_KeyItems2[];
+extern const u8 gText_CloseBag[];
+extern const u8 gText_CantWriteMailHere[];
+extern const u8 gText_DepositHowManyStrVars1[];
+extern const u8 gText_DepositedStrVar2StrVar1s[];
+extern const u8 gText_NoRoomToStoreItems[];
+
+// union_room_battle
+extern const u8 gText_CommStandbyAwaitingOtherPlayer[];
+extern const u8 gText_RefusedBattle[];
+extern const u8 gText_BattleWasRefused[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/teachy_tv.h b/include/teachy_tv.h
index 36bac6a67..3484f88c1 100644
--- a/include/teachy_tv.h
+++ b/include/teachy_tv.h
@@ -1,6 +1,16 @@
#ifndef GUARD_TEACHY_TV_H
#define GUARD_TEACHY_TV_H
+enum TeachyTvScript
+{
+ TTVSCR_BATTLE,
+ TTVSCR_STATUS,
+ TTVSCR_MATCHUPS,
+ TTVSCR_CATCHING,
+ TTVSCR_TMS,
+ TTVSCR_REGISTER
+};
+
void InitTeachyTvController(u8 mode, void (*cb)());
void CB2_ReturnToTeachyTV(void);
void SetTeachyTvControllerModeToResume(void);
diff --git a/include/tm_case.h b/include/tm_case.h
index f77eae457..22fb021e0 100644
--- a/include/tm_case.h
+++ b/include/tm_case.h
@@ -1,8 +1,18 @@
#ifndef GUARD_TM_CASE_H
#define GUARD_TM_CASE_H
+enum TmCaseType
+{
+ TMCASE_FROMFIELD,
+ TMCASE_FROMPARTYGIVE,
+ TMCASE_FROMMARTSELL,
+ TMCASE_FROMPOKEMONSTORAGEPC,
+ TMCASE_FROMBATTLE,
+ TMCASE_NA
+};
+
void InitTMCase(u8 a0, void (* a1)(void), u8 a2);
void ResetTMCaseCursorPos(void);
-void PokeDude_InitTMCase(void);
+void Pokedude_InitTMCase(void);
#endif //GUARD_TM_CASE_H
diff --git a/include/union_room.h b/include/union_room.h
index d57683a8a..3cb8eb84a 100644
--- a/include/union_room.h
+++ b/include/union_room.h
@@ -2,11 +2,11 @@
#define GUARD_UNION_ROOM_H
#include "global.h"
-#include "librfu.h"
+#include "link_rfu.h"
struct UnkStruct_Shared
{
- struct GFtgtGname field_0;
+ struct GFtgtGname gname;
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH];
};
@@ -28,26 +28,27 @@ struct UnkStruct_x20
u8 field_1F;
};
+// These arrays are dynamically allocated but must be
+// represented as structs to match.
+// Don't ask me why.
+
+// FIXME: Find a way around this.
+
struct UnkStruct_Main0
{
- struct UnkStruct_x20 arr[8];
+ struct UnkStruct_x20 arr[0];
};
struct UnkStruct_Main4
{
- struct UnkStruct_x1C arr[5];
-};
-
-struct UnkStruct_Main8
-{
- struct UnkStruct_x20 arr[5];
+ struct UnkStruct_x1C arr[0];
};
struct UnkStruct_Leader
{
- struct UnkStruct_Main0 *field_0;
- struct UnkStruct_Main4 *field_4;
- struct UnkStruct_Main8 *field_8;
+ struct UnkStruct_Main0 * field_0;
+ struct UnkStruct_Main4 * field_4;
+ struct UnkStruct_Main0 * field_8;
u8 state;
u8 textState;
u8 field_E;
@@ -67,8 +68,8 @@ struct UnkStruct_Leader
struct UnkStruct_Group
{
- struct UnkStruct_Main0 *field_0;
- struct UnkStruct_Main4 *field_4;
+ struct UnkStruct_Main0 * field_0;
+ struct UnkStruct_Main4 * field_4;
u8 state;
u8 textState;
u8 field_A;
@@ -85,56 +86,56 @@ struct UnkStruct_Group
u8 field_15;
};
-struct UnkStruct_8019BA8
+struct UnionObj
{
- u8 field_0;
- u8 field_1;
- s8 field_2;
- u8 field_3;
+ u8 state;
+ u8 gfxId;
+ s8 animState;
+ u8 schedAnim;
};
struct UnkStruct_URoom
{
- struct UnkStruct_Main0 *field_0;
- struct UnkStruct_Main4 *field_4;
- struct UnkStruct_Main0 *field_8;
- struct UnkStruct_Main4 *field_C;
- u16 field_10;
- u16 field_12;
- u8 state;
- u8 stateAfterPrint;
- u8 textState;
- u8 field_17;
- u8 field_18;
- u8 field_19;
- u8 field_1A;
- u8 field_1B;
- u8 field_1C;
- u8 field_1D;
- u8 field_1E;
- u8 field_1F;
- u8 field_20;
- u8 spriteIds[40];
- u8 field_49;
- u8 field_4A;
- u16 field_4C[6];
- u8 field_58[0x98 - 0x58];
- u16 field_98;
- u16 field_9A[3];
- struct UnkStruct_8019BA8 field_A0[8];
- u8 field_C0[12][15];
- u8 field_174[48];
- u8 field_1A4[200];
+ /* 0x000 */ struct UnkStruct_Main0 * field_0;
+ /* 0x004 */ struct UnkStruct_Main4 * field_4;
+ /* 0x008 */ struct UnkStruct_Main0 * field_8;
+ /* 0x00C */ struct UnkStruct_Main4 * field_C;
+ /* 0x010 */ u16 field_10;
+ /* 0x012 */ u16 field_12;
+ /* 0x014 */ u8 state;
+ /* 0x015 */ u8 stateAfterPrint;
+ /* 0x016 */ u8 textState;
+ /* 0x017 */ u8 field_17;
+ /* 0x018 */ u8 field_18;
+ /* 0x019 */ u8 field_19;
+ /* 0x01A */ u8 field_1A;
+ /* 0x01B */ u8 field_1B;
+ /* 0x01C */ u8 field_1C;
+ /* 0x01D */ u8 field_1D;
+ /* 0x01E */ u8 field_1E;
+ /* 0x01F */ u8 field_1F;
+ /* 0x020 */ u8 field_20;
+ /* 0x021 */ u8 spriteIds[40];
+ /* 0x049 */ u8 field_49;
+ /* 0x04A */ u8 field_4A;
+ /* 0x04C */ u16 field_4C[6];
+ /* 0x058 */ u8 field_58[4][11];
+ /* 0x084 */ u16 field_98;
+ /* 0x086 */ u16 field_9A[3];
+ /* 0x08C */ struct UnionObj unionObjs[8];
+ /* 0x0AC */ u8 trainerCardStrbufs[12][15];
+ /* 0x160 */ u8 field_174[48];
+ /* 0x190 */ u8 field_1A4[200];
};
union UnkUnion_Main
{
- struct UnkStruct_Leader *leader;
- struct UnkStruct_Group *group;
- struct UnkStruct_URoom *uRoom;
+ struct UnkStruct_Leader * leader;
+ struct UnkStruct_Group * group;
+ struct UnkStruct_URoom * uRoom;
};
-struct TradeUnkStruct
+struct UnionRoomTrade
{
u16 field_0;
u16 type;
@@ -153,4 +154,6 @@ extern struct GFtgtGnameSub gUnknown_203B064;
extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType;
+void sub_81173C0(u16 battleFlags);
+
#endif //GUARD_UNION_ROOM_H
diff --git a/include/union_room_chat.h b/include/union_room_chat.h
index 17e482525..66daac376 100644
--- a/include/union_room_chat.h
+++ b/include/union_room_chat.h
@@ -2,6 +2,7 @@
#define GUARD_UNION_ROOM_CHAT_H
void sub_801DD98(void);
+void sub_8128420(void);
void copy_strings_to_sav1(void);
#endif // GUARD_UNION_ROOM_CHAT_H
diff --git a/include/union_room_message.h b/include/union_room_message.h
new file mode 100644
index 000000000..b7de673ba
--- /dev/null
+++ b/include/union_room_message.h
@@ -0,0 +1,114 @@
+#ifndef GUARD_UNION_ROOM_MESSAGE_H
+#define GUARD_UNION_ROOM_MESSAGE_H
+
+#include "global.h"
+
+extern const u8 gUnknown_84571AC[];
+extern const u8 gUnknown_84571B0[];
+extern const u8 gUnknown_84571B4[];
+extern const u8 gUnknown_84571B8[];
+extern const u8 gUnknown_84571E0[];
+extern const u8 gUnknown_8457234[];
+extern const u8 gUnknown_8457264[];
+extern const u8 *const gUnknown_845742C[][5];
+extern const u8 gUnknown_845747C[];
+extern const u8 gUnknown_84574A0[];
+extern const u8 gUnknown_84574C4[];
+extern const u8 gUnknown_84574EC[];
+extern const u8 gUnknown_8457514[];
+extern const u8 gUnknown_8457530[];
+extern const u8 gUnknown_8457554[];
+extern const u8 *const gUnknown_8457608[];
+extern const u8 gUnknown_8457610[];
+extern const u8 *const gUnknown_845767C[];
+extern const u8 gUnknown_84576AC[];
+extern const u8 gUnknown_84576C4[];
+extern const u8 gUnknown_8457700[];
+extern const u8 gUnknown_845771C[];
+extern const u8 *const gUnknown_8457754[];
+extern const u8 gUnknown_845777C[];
+extern const u8 gUnknown_84577BC[];
+extern const u8 gUnknown_84577F8[];
+extern const u8 *const gUnknown_8457838[];
+extern const u8 gUnknown_84578BC[];
+extern const u8 *const gUnknown_8457A34[];
+extern const u8 *const gUnknown_8457B04[][2];
+extern const u8 *const gUnknown_8457BCC[];
+extern const u8 *const gUnknown_8457C20[];
+extern const u8 gUnknown_8457C48[];
+extern const u8 gUnknown_8457CA4[];
+extern const u8 gUnknown_8457CF8[];
+extern const u8 gUnknown_8457D44[];
+extern const u8 gUnknown_8457DB8[];
+extern const u8 gUnknown_8457E0C[];
+extern const u8 gUnknown_8457E28[];
+extern const u8 gUnknown_8457E44[];
+extern const u8 gUnknown_8457E60[];
+extern const u8 *const gUnknown_8457F80[][2];
+extern const u8 gUnknown_8457F90[];
+extern const u8 *const gUnknown_84580F4[][4];
+extern const u8 *const gUnknown_8458230[][2][3];
+extern const u8 *const gUnknown_8458314[];
+extern const u8 *const gUnknown_84583B4[];
+extern const u8 *const gUnknown_845842C[];
+extern const u8 gUnknown_8458434[];
+extern const u8 gUnknown_845847C[];
+extern const u8 gUnknown_84584C0[];
+extern const u8 *const gUnknown_8458548[];
+extern const u8 *const gUnknown_84585E8[];
+extern const u8 *const gUnknown_8458758[2][4];
+extern const u8 *const gUnknown_84588BC[2][4];
+extern const u8 *const gUnknown_84589AC[2][2];
+extern const u8 *const gUnknown_8458A78[2][4];
+extern const u8 gUnknown_8458A98[];
+extern const u8 gUnknown_8458AB8[];
+extern const u8 gUnknown_8458B44[];
+extern const u8 gUnknown_8458CD4[];
+extern const u8 gUnknown_8458D1C[];
+extern const u8 gUnknown_8458D54[];
+extern const u8 gUnknown_8458D78[];
+extern const u8 gUnknown_8458D9C[];
+extern const u8 gUnknown_8458DBC[];
+extern const u8 gUnknown_8458DE8[];
+extern const u8 gUnknown_8458E10[];
+extern const u8 gUnknown_8458E70[];
+extern const u8 gUnknown_8458ED0[];
+extern const u8 gUnknown_8458F04[];
+extern const u8 gUnknown_8458F9C[];
+extern const u8 gUnknown_8458FBC[];
+extern const u8 gUnknown_8458FC8[];
+extern const u8 gUnknown_8458FE4[];
+extern const u8 gUnknown_84591DC[];
+extern const u8 *const gUnknown_84591B8[];
+extern const u8 gUnknown_8459238[];
+extern const u8 gUnknown_8459250[];
+extern const u8 gUnknown_845928C[];
+extern const u8 *const gUnknown_845933C[];
+extern const u8 gUnknown_8459344[];
+extern const u8 gUnknown_845934C[];
+extern const u8 gUnknown_8459354[];
+extern const u8 gUnknown_8459360[];
+extern const u8 gUnknown_8459368[];
+extern const u8 gUnknown_8459370[];
+extern const u8 gUnknown_8459378[];
+extern const u8 gUnknown_8459394[];
+extern const u8 gUnknown_84593A4[];
+extern const u8 gUnknown_84593B4[];
+extern const u8 gUnknown_84593C4[];
+extern const u8 gUnknown_84593D4[];
+extern const u8 gUnknown_84593E4[];
+extern const u8 gUnknown_84593F4[];
+extern const u8 gUnknown_84593DC[];
+extern const u8 gUnknown_8459400[];
+extern const u8 gUnknown_8459410[];
+extern const u8 gUnknown_845941C[];
+extern const u8 gUnknown_845942C[];
+extern const u8 gUnknown_8459434[];
+extern const u8 gUnknown_8459440[];
+extern const u8 *const gUnknown_84594B0[];
+extern const u8 gUnknown_84594C4[];
+extern const u8 gUnknown_8459504[];
+extern const u8 *const gUnknown_8459580[];
+extern const u8 gUnknown_8459588[];
+
+#endif //GUARD_UNION_ROOM_MESSAGE_H
diff --git a/ld_script.txt b/ld_script.txt
index f07e480a2..f0792ad9d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -232,7 +232,7 @@ SECTIONS {
src/pokedex_screen.o(.text);
asm/pokedex_screen.o(.text);
src/list_menu.o(.text);
- asm/item_menu.o(.text);
+ src/item_menu.o(.text);
src/save_location.o(.text);
src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text);
@@ -241,8 +241,9 @@ SECTIONS {
src/mailbox_pc.o(.text);
src/menu.o(.text);
src/quest_log.o(.text);
- asm/union_room.o(.text);
- asm/union_room_player_avatar.o(.text);
+ src/union_room.o(.text);
+ src/rfu_union_tool.o(.text);
+ src/union_room_battle.o(.text);
asm/pokemon_special_anim.o(.text);
src/party_menu.o(.text);
asm/union_room_chat.o(.text);
@@ -517,7 +518,7 @@ SECTIONS {
src/pokedex_screen.o(.rodata);
data/pokedex_screen.o(.rodata);
src/list_menu.o(.rodata);
- data/item_menu.o(.rodata);
+ src/item_menu.o(.rodata);
src/save_location.o(.rodata);
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
@@ -527,7 +528,10 @@ SECTIONS {
data/decorations.o(.rodata);
src/menu.o(.rodata);
src/quest_log.o(.rodata);
- data/union_room.o(.rodata);
+ src/union_room.o(.rodata);
+ src/rfu_union_tool.o(.rodata);
+ src/union_room_battle.o(.rodata);
+ src/union_room_message.o(.rodata);
data/pokemon_special_anim.o(.rodata);
src/party_menu.o(.rodata);
data/union_room_chat.o(.rodata);
diff --git a/src/bag.c b/src/bag.c
index c30bc626d..049aa9f8f 100644
--- a/src/bag.c
+++ b/src/bag.c
@@ -10,17 +10,18 @@
#include "menu.h"
#include "money.h"
#include "bag.h"
+#include "strings.h"
-extern const u8 gText_DepositItem[];
+static const u16 sBagWindowPalF[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
-const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
-const u8 gUnknown_84530B8[][3] = {
+static const u8 sTextColors[][3] = {
{0, 1, 2},
{0, 2, 3},
{0, 3, 2},
{0, 8, 9}
};
-const struct WindowTemplate gUnknown_84530C4[] = {
+
+static const struct WindowTemplate sDefaultBagWindowsStd[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
@@ -47,7 +48,8 @@ const struct WindowTemplate gUnknown_84530C4[] = {
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
-const struct WindowTemplate gUnknown_84530E4[] = {
+
+static const struct WindowTemplate sDefaultBagWindowsDeposit[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
@@ -74,7 +76,8 @@ const struct WindowTemplate gUnknown_84530E4[] = {
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
-const struct WindowTemplate gUnknown_8453104[] = {
+
+static const struct WindowTemplate sWindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 24,
@@ -99,122 +102,114 @@ const struct WindowTemplate gUnknown_8453104[] = {
.height = 3,
.paletteNum = 0xC,
.baseBlock = 0x272
- }
-};
-
-const struct WindowTemplate gUnknown_845311C = {
- .bg = 0,
- .tilemapLeft = 23,
- .tilemapTop = 15,
- .width = 6,
- .height = 4,
- .paletteNum = 0xF,
- .baseBlock = 0x28a
-};
-
-const struct WindowTemplate gUnknown_8453124 = {
- .bg = 0,
- .tilemapLeft = 21,
- .tilemapTop = 9,
- .width = 6,
- .height = 4,
- .paletteNum = 0xF,
- .baseBlock = 0x28a
-};
-
-const struct WindowTemplate gUnknown_845312C[] = {
- {
- .bg = 0x00,
- .tilemapLeft = 0x02,
- .tilemapTop = 0x0f,
- .width = 0x1a,
- .height = 0x04,
- .paletteNum = 0x0f,
- .baseBlock = 0x02a2
}, {
- .bg = 0x00,
- .tilemapLeft = 0x06,
- .tilemapTop = 0x0f,
- .width = 0x0e,
- .height = 0x04,
- .paletteNum = 0x0c,
- .baseBlock = 0x02a2
+ .bg = 0,
+ .tilemapLeft = 23,
+ .tilemapTop = 15,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x28a
}, {
- .bg = 0x00,
- .tilemapLeft = 0x06,
- .tilemapTop = 0x0f,
- .width = 0x0f,
- .height = 0x04,
- .paletteNum = 0x0c,
- .baseBlock = 0x02da
+ .bg = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 9,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x28a
}, {
- .bg = 0x00,
- .tilemapLeft = 0x06,
- .tilemapTop = 0x0f,
- .width = 0x10,
- .height = 0x04,
- .paletteNum = 0x0c,
- .baseBlock = 0x0316
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 26,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x2a2
}, {
- .bg = 0x00,
- .tilemapLeft = 0x06,
- .tilemapTop = 0x0f,
- .width = 0x17,
- .height = 0x04,
- .paletteNum = 0x0c,
- .baseBlock = 0x0356
+ .bg = 0,
+ .tilemapLeft = 6,
+ .tilemapTop = 15,
+ .width = 14,
+ .height = 4,
+ .paletteNum = 0xC,
+ .baseBlock = 0x2a2
}, {
- .bg = 0x00,
- .tilemapLeft = 0x16,
- .tilemapTop = 0x11,
- .width = 0x07,
- .height = 0x02,
- .paletteNum = 0x0f,
- .baseBlock = 0x020a
+ .bg = 0,
+ .tilemapLeft = 6,
+ .tilemapTop = 15,
+ .width = 15,
+ .height = 4,
+ .paletteNum = 0xC,
+ .baseBlock = 0x2da
}, {
- .bg = 0x00,
- .tilemapLeft = 0x16,
- .tilemapTop = 0x0f,
- .width = 0x07,
- .height = 0x04,
- .paletteNum = 0x0f,
- .baseBlock = 0x020a
+ .bg = 0,
+ .tilemapLeft = 6,
+ .tilemapTop = 15,
+ .width = 16,
+ .height = 4,
+ .paletteNum = 0xC,
+ .baseBlock = 0x316
}, {
- .bg = 0x00,
- .tilemapLeft = 0x16,
- .tilemapTop = 0x0d,
- .width = 0x07,
- .height = 0x06,
- .paletteNum = 0x0f,
- .baseBlock = 0x020a
+ .bg = 0,
+ .tilemapLeft = 6,
+ .tilemapTop = 15,
+ .width = 23,
+ .height = 4,
+ .paletteNum = 0xC,
+ .baseBlock = 0x356
}, {
- .bg = 0x00,
- .tilemapLeft = 0x16,
- .tilemapTop = 0x0b,
- .width = 0x07,
- .height = 0x08,
- .paletteNum = 0x0f,
- .baseBlock = 0x020a
+ .bg = 0,
+ .tilemapLeft = 22,
+ .tilemapTop = 17,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 0xF,
+ .baseBlock = 0x20a
+ }, {
+ .bg = 0,
+ .tilemapLeft = 22,
+ .tilemapTop = 15,
+ .width = 7,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x20a
+ }, {
+ .bg = 0,
+ .tilemapLeft = 22,
+ .tilemapTop = 13,
+ .width = 7,
+ .height = 6,
+ .paletteNum = 0xF,
+ .baseBlock = 0x20a
+ }, {
+ .bg = 0,
+ .tilemapLeft = 22,
+ .tilemapTop = 11,
+ .width = 7,
+ .height = 8,
+ .paletteNum = 0xF,
+ .baseBlock = 0x20a
}
};
-const u8 gUnknown_8453174[] = {16, 8, 4};
+static const u8 sUnused_8453174[] = {16, 8, 4};
-EWRAM_DATA u8 gUnknown_203AD34[11] = {};
+static EWRAM_DATA u8 sOpenWindows[11] = {};
-void sub_810B858(void)
+void InitBagWindows(void)
{
u8 i;
- if (gUnknown_203ACFC.location != 3)
- InitWindows(gUnknown_84530C4);
+ if (gBagMenuState.location != 3)
+ InitWindows(sDefaultBagWindowsStd);
else
- InitWindows(gUnknown_84530E4);
+ InitWindows(sDefaultBagWindowsDeposit);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0);
TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
- LoadPalette(gUnknown_8453098, 0xF0, 0x20);
+ LoadPalette(sBagWindowPalF, 0xF0, 0x20);
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(i, 0x00);
@@ -223,22 +218,22 @@ void sub_810B858(void)
ScheduleBgCopyTilemapToVram(0);
for (i = 0; i < 11; i++)
{
- gUnknown_203AD34[i] = 0xFF;
+ sOpenWindows[i] = 0xFF;
}
}
-void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
+void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
- AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str);
+ AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, sTextColors[colorIdx], speed, str);
}
-void sub_810B958(const u8 * str)
+void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused)
{
u32 x = 0x48 - GetStringWidth(1, str, 0);
- AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str);
+ AddTextPrinterParameterized3(2, 1, x / 2, 1, sTextColors[0], 0, str);
}
-void sub_810B994(void)
+void BagDrawDepositItemTextBox(void)
{
u32 x;
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
@@ -246,77 +241,76 @@ void sub_810B994(void)
AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL);
}
-u8 sub_810B9DC(u8 a0, u8 a1)
+u8 ShowBagWindow(u8 whichWindow, u8 nItems)
{
- if (gUnknown_203AD34[a0] == 0xFF)
+ if (sOpenWindows[whichWindow] == 0xFF)
{
- gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]);
- if (a0 != 6)
+ sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow + nItems]);
+ if (whichWindow != 6)
{
- DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
+ DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 0xE);
}
else
{
- DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
+ DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 0xC);
}
ScheduleBgCopyTilemapToVram(0);
}
- return gUnknown_203AD34[a0];
+ return sOpenWindows[whichWindow];
}
-void sub_810BA3C(u8 a0)
+void HideBagWindow(u8 whichWindow)
{
- ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
- ClearWindowTilemap(gUnknown_203AD34[a0]);
- RemoveWindow(gUnknown_203AD34[a0]);
+ ClearStdWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
+ ClearWindowTilemap(sOpenWindows[whichWindow]);
+ RemoveWindow(sOpenWindows[whichWindow]);
ScheduleBgCopyTilemapToVram(0);
- gUnknown_203AD34[a0] = 0xFF;
+ sOpenWindows[whichWindow] = 0xFF;
}
-u8 sub_810BA70(u8 a0)
+u8 OpenBagWindow(u8 whichWindow)
{
- if (gUnknown_203AD34[a0] == 0xFF)
+ if (sOpenWindows[whichWindow] == 0xFF)
{
- gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]);
+ sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow]);
}
- return gUnknown_203AD34[a0];
+ return sOpenWindows[whichWindow];
}
-void sub_810BA9C(u8 a0)
+void CloseBagWindow(u8 whichWindow)
{
- if (gUnknown_203AD34[a0] != 0xFF)
+ if (sOpenWindows[whichWindow] != 0xFF)
{
- ClearDialogWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
- ClearWindowTilemap(gUnknown_203AD34[a0]);
- RemoveWindow(gUnknown_203AD34[a0]);
+ ClearDialogWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
+ ClearWindowTilemap(sOpenWindows[whichWindow]);
+ RemoveWindow(sOpenWindows[whichWindow]);
PutWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0);
- gUnknown_203AD34[a0] = 0xFF;
-
+ sOpenWindows[whichWindow] = 0xFF;
}
}
-u8 sub_810BAD8(u8 a0)
+u8 GetBagWindow(u8 whichWindow)
{
- return gUnknown_203AD34[a0];
+ return sOpenWindows[whichWindow];
}
-void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs)
+void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{
- CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs);
+ CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[3], 2, 0, 2, 0x064, 0x0E, ptrs);
}
-void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs)
+void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{
- CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs);
+ CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[4], 2, 0, 2, 0x064, 0x0E, ptrs);
}
-void sub_810BB40(void)
+void BagPrintMoneyAmount(void)
{
- PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
+ PrintMoneyAmountInMoneyBoxWithBorder(ShowBagWindow(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
}
-void sub_810BB74(u8 windowId)
+void BagDrawTextBoxOnWindow(u8 windowId)
{
DrawTextBorderOuter(windowId, 0x064, 0x0E);
}
diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c
index 6ae50d058..0807018a2 100644
--- a/src/battle_controller_oak_old_man.c
+++ b/src/battle_controller_oak_old_man.c
@@ -379,9 +379,9 @@ static void OpenBagAndChooseItem(void)
nullsub_44();
FreeAllWindowBuffers();
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
- sub_8107ECC();
+ CB2_BagMenuFromBattle();
else
- sub_810AF74();
+ InitOldManBag();
}
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 7f1f738a3..cb9e04a50 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -1330,7 +1330,7 @@ static void OpenBagAndChooseItem(void)
gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem;
nullsub_44();
FreeAllWindowBuffers();
- sub_8107ECC();
+ CB2_BagMenuFromBattle();
}
}
diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c
index 86da27ee3..d8ebe5ba4 100644
--- a/src/battle_controller_pokedude.c
+++ b/src/battle_controller_pokedude.c
@@ -23,6 +23,7 @@
#include "battle_interface.h"
#include "battle_message.h"
#include "reshow_battle_screen.h"
+#include "teachy_tv.h"
#include "constants/songs.h"
#include "constants/items.h"
#include "constants/moves.h"
@@ -733,15 +734,15 @@ static void OpenBagAndChooseItem(void)
FreeAllWindowBuffers();
switch (gSpecialVar_0x8004)
{
- case 1:
+ case TTVSCR_STATUS:
default:
- callbackId = 7;
+ callbackId = ITEMMENULOCATION_TTVSCR_STATUS;
break;
- case 3:
- callbackId = 8;
+ case TTVSCR_CATCHING:
+ callbackId = ITEMMENULOCATION_TTVSCR_CATCHING;
break;
}
- sub_810B108(callbackId);
+ InitPokedudeBag(callbackId);
}
}
diff --git a/src/battle_main.c b/src/battle_main.c
index 51509513f..fd8aeffbc 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -86,7 +86,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum);
static void CB2_HandleStartBattle(void);
static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
static void BattleMainCB1(void);
-static void CB2_QuitPokeDudeBattle(void);
+static void CB2_QuitPokedudeBattle(void);
static void sub_80111FC(struct Sprite *sprite);
static void sub_8011B94(void);
static void sub_8011BB0(void);
@@ -1438,7 +1438,7 @@ void BattleMainCB2(void)
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW;
ResetPaletteFadeControl();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- SetMainCallback2(CB2_QuitPokeDudeBattle);
+ SetMainCallback2(CB2_QuitPokedudeBattle);
}
}
@@ -1454,7 +1454,7 @@ void FreeRestoreBattleData(void)
FreeBattleResources();
}
-static void CB2_QuitPokeDudeBattle(void)
+static void CB2_QuitPokedudeBattle(void)
{
UpdatePaletteFade();
if (!gPaletteFade.active)
diff --git a/src/battle_message.c b/src/battle_message.c
index c4faf73f9..c30150799 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -463,7 +463,7 @@ const u8 *const gPokeblockWasTooXStringTable[] = {
static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!");
static const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!");
-static const u8 sText_PokeDudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!");
+static const u8 sText_PokedudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!");
static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!");
static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!");
static const u8 sText_DontBeAThief[] = _("Don't be a thief!");
@@ -876,7 +876,7 @@ const u8 *const gBattleStringsTable[] = {
Text_1A5D31,
Text_1A5D6E,
Text_1A5DB1,
- sText_PokeDudeUsedItem,
+ sText_PokedudeUsedItem,
gUnknown_83FDA4D,
gUnknown_83FDA7A,
gUnknown_83FDA8C,
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 4859b9234..102a1b969 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -978,7 +978,7 @@ const u8 *BattleSetup_GetScriptAddrAfterBattle(void)
if (sTrainerBattleEndScript != NULL)
return sTrainerBattleEndScript;
else
- return EventScript_1C555B;
+ return Test_EventScript_Sign;
}
const u8 *BattleSetup_GetTrainerPostBattleScript(void)
@@ -986,7 +986,7 @@ const u8 *BattleSetup_GetTrainerPostBattleScript(void)
if (sTrainerABattleScriptRetAddr != NULL)
return sTrainerABattleScriptRetAddr;
else
- return EventScript_1C555B;
+ return Test_EventScript_Sign;
}
void ScrSpecial_ShowTrainerNonBattlingSpeech(void)
diff --git a/src/berry_pouch.c b/src/berry_pouch.c
index 711a17768..63677574b 100644
--- a/src/berry_pouch.c
+++ b/src/berry_pouch.c
@@ -1269,7 +1269,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
- DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
+ DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
}
else
{
@@ -1285,7 +1285,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
- DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_Sell_PrintSelectMultipleUI);
+ DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_Sell_PrintSelectMultipleUI);
}
}
}
@@ -1295,7 +1295,7 @@ static void Task_AskSellMultiple(u8 taskId)
s16 * data = gTasks[taskId].data;
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
- DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
+ DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
}
static void Task_SellMultiple_CreateYesNoMenu(u8 taskId)
diff --git a/src/credits.c b/src/credits.c
index a0138e57a..ceb2028f9 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -920,7 +920,7 @@ static s32 RollCredits(void)
case CREDITSSCRCMD_MON:
sCreditsMgr->mainseqno = CREDITSSCENE_MON_DESTROY_ASSETS;
sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
- fade_screen(1, 0);
+ FadeScreen(1, 0);
break;
case CREDITSSCRCMD_THEENDGFX:
sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS;
@@ -1342,7 +1342,7 @@ static s32 RollCredits(void)
"\tstrb r0, [r2, 0x9]\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
- "\tbl fade_screen\n"
+ "\tbl FadeScreen\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
"_080F3E50: .4byte sCreditsMgr\n"
diff --git a/src/data.c b/src/data.c
index dddeeac51..891c9f94f 100644
--- a/src/data.c
+++ b/src/data.c
@@ -60,12 +60,12 @@ const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] =
gTrainerBackPic_Leaf + 0x2000, 0x0800,
};
-const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[] =
+const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[] =
{
- gTrainerBackPic_PokeDude, 0x0800,
- gTrainerBackPic_PokeDude + 0x0800, 0x0800,
- gTrainerBackPic_PokeDude + 0x1000, 0x0800,
- gTrainerBackPic_PokeDude + 0x1800, 0x0800,
+ gTrainerBackPic_Pokedude, 0x0800,
+ gTrainerBackPic_Pokedude + 0x0800, 0x0800,
+ gTrainerBackPic_Pokedude + 0x1000, 0x0800,
+ gTrainerBackPic_Pokedude + 0x1800, 0x0800,
};
const struct SpriteFrameImage gTrainerBackPicTable_OldMan[] =
diff --git a/src/data/trainer_graphics/back_pic_anims.h b/src/data/trainer_graphics/back_pic_anims.h
index 2e107c21e..833a0cb28 100644
--- a/src/data/trainer_graphics/back_pic_anims.h
+++ b/src/data/trainer_graphics/back_pic_anims.h
@@ -16,7 +16,7 @@ static const union AnimCmd sAnimCmd_Leaf_1[] = {
ANIMCMD_END
};
-static const union AnimCmd sAnimCmd_PokeDude_1[] = {
+static const union AnimCmd sAnimCmd_Pokedude_1[] = {
ANIMCMD_FRAME(1, 24),
ANIMCMD_FRAME(2, 9),
ANIMCMD_FRAME(3, 24),
@@ -60,9 +60,9 @@ const union AnimCmd *const sBackAnims_Leaf[] = {
sAnimCmd_Leaf_1
};
-const union AnimCmd *const sBackAnims_PokeDude[] = {
+const union AnimCmd *const sBackAnims_Pokedude[] = {
sAnim_GeneralFrame0,
- sAnimCmd_PokeDude_1
+ sAnimCmd_Pokedude_1
};
const union AnimCmd *const sBackAnims_OldMan[] = {
@@ -85,6 +85,6 @@ const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = {
sBackAnims_Leaf,
sBackAnims_RSBrendan,
sBackAnims_RSMay,
- sBackAnims_PokeDude,
+ sBackAnims_Pokedude,
sBackAnims_OldMan
};
diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h
index 86e7824c1..4d0c129a8 100644
--- a/src/data/trainer_graphics/back_pic_tables.h
+++ b/src/data/trainer_graphics/back_pic_tables.h
@@ -12,7 +12,7 @@ const struct CompressedSpriteSheet gTrainerBackPicTable[] = {
{ (const u32 *)gTrainerBackPic_Leaf, 0x2800, 1 },
{ (const u32 *)gTrainerBackPic_RSBrendan, 0x2000, 2 },
{ (const u32 *)gTrainerBackPic_RSMay, 0x2000, 3 },
- { (const u32 *)gTrainerBackPic_PokeDude, 0x2000, 4 },
+ { (const u32 *)gTrainerBackPic_Pokedude, 0x2000, 4 },
{ (const u32 *)gTrainerBackPic_OldMan, 0x2000, 5 }
};
@@ -21,6 +21,6 @@ const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = {
{ gTrainerPalette_LeafBackPic, 1 },
{ gTrainerPalette_RSBrendan1, 2 },
{ gTrainerPalette_RSMay1, 3 },
- { gTrainerPalette_PokeDudeBackPic, 4 },
+ { gTrainerPalette_PokedudeBackPic, 4 },
{ gTrainerPalette_OldManBackPic, 5 }
};
diff --git a/src/daycare.c b/src/daycare.c
index b3e76faba..a377e97f5 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -37,9 +37,11 @@
#include "naming_screen.h"
#include "help_system.h"
#include "field_fadetransition.h"
+#include "constants/daycare.h"
+#include "constants/pokemon.h"
+#include "constants/region_map.h"
-#define EGG_MOVES_ARRAY_COUNT 10
-#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
+// Combination of RSE's Day-Care (re-used on Four Island), FRLG's Day-Care, and egg_hatch.c
struct EggHatchData
{
@@ -119,7 +121,7 @@ static const struct ListMenuItem sLevelMenuItems[] =
{
{gExpandedPlaceholder_Empty, 0},
{gExpandedPlaceholder_Empty, 1},
- {gOtherText_Exit, 5}
+ {gOtherText_Exit, DAYCARE_LEVEL_MENU_EXIT}
};
static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
@@ -372,7 +374,7 @@ static const s16 sEggShardVelocities[][2] =
// code
-u8 *GetMonNick(struct Pokemon *mon, u8 *dest)
+static u8 *DayCare_GetMonNickname(struct Pokemon *mon, u8 *dest)
{
u8 nickname[POKEMON_NAME_LENGTH * 2];
@@ -380,7 +382,7 @@ u8 *GetMonNick(struct Pokemon *mon, u8 *dest)
return StringCopy10(dest, nickname);
}
-u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest)
+static u8 *DayCare_GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest)
{
u8 nickname[POKEMON_NAME_LENGTH * 2];
@@ -450,7 +452,7 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar
u8 mailId;
StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName);
- GetMonNick(mon, daycareMon->mail.monName);
+ DayCare_GetMonNickname(mon, daycareMon->mail.monName);
// StripExtCtrlCodes(daycareMon->mail.monName);
// daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH;
// daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE);
@@ -483,8 +485,8 @@ void StoreSelectedPokemonInDaycare(void)
static void ShiftDaycareSlots(struct DayCare *daycare)
{
// This condition is only satisfied when the player takes out the first pokemon from the daycare.
- if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != 0
- && GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) == 0)
+ if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != SPECIES_NONE
+ && GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) == SPECIES_NONE)
{
daycare->mons[0].mon = daycare->mons[1].mon;
ZeroBoxMonData(&daycare->mons[1].mon);
@@ -512,11 +514,8 @@ static void ApplyDaycareExperience(struct Pokemon *mon)
while ((learnedMove = MonTryLearningNewMove(mon, firstMove)) != 0)
{
firstMove = FALSE;
- if (learnedMove == 0xFFFF)
- {
- // Mon already knows 4 moves.
+ if (learnedMove == MON_HAS_MAX_MOVES)
DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn);
- }
}
}
else
@@ -535,7 +534,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
u32 experience;
struct Pokemon pokemon;
- GetBoxMonNick(&daycareMon->mon, gStringVar1);
+ DayCare_GetBoxMonNickname(&daycareMon->mon, gStringVar1);
species = GetBoxMonData(&daycareMon->mon, MON_DATA_SPECIES);
BoxMonToMon(&daycareMon->mon, &pokemon);
@@ -595,7 +594,7 @@ static u8 GetNumLevelsGainedForDaycareMon(struct DaycareMon *daycareMon)
{
u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon);
ConvertIntToDecimalStringN(gStringVar2, numLevelsGained, STR_CONV_MODE_LEFT_ALIGN, 2);
- GetBoxMonNick(&daycareMon->mon, gStringVar1);
+ DayCare_GetBoxMonNickname(&daycareMon->mon, gStringVar1);
return numLevelsGained;
}
@@ -604,7 +603,7 @@ static u32 GetDaycareCostForSelectedMon(struct DaycareMon *daycareMon)
u32 cost;
u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon);
- GetBoxMonNick(&daycareMon->mon, gStringVar1);
+ DayCare_GetBoxMonNickname(&daycareMon->mon, gStringVar1);
cost = 100 + 100 * numLevelsGained;
ConvertIntToDecimalStringN(gStringVar2, cost, STR_CONV_MODE_LEFT_ALIGN, 5);
return cost;
@@ -639,7 +638,7 @@ static void ClearDaycareMonMail(struct DayCareMail *mail)
{
s32 i;
- for (i = 0; i < PLAYER_NAME_LENGTH; 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;
@@ -777,7 +776,7 @@ static void _TriggerPendingDaycareEgg(struct DayCare *daycare)
static void _TriggerPendingDaycareMaleEgg(struct DayCare *daycare)
{
- daycare->offspringPersonality = (Random()) | (0x8000);
+ daycare->offspringPersonality = (Random()) | (EGG_GENDER_MALE);
FlagSet(FLAG_PENDING_DAYCARE_EGG);
}
@@ -815,7 +814,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
{
u8 i;
- u8 selectedIvs[3];
+ u8 selectedIvs[INHERITED_IV_COUNT];
u8 availableIVs[NUM_STATS];
u8 whichParent[ARRAY_COUNT(selectedIvs)];
u8 iv;
@@ -829,17 +828,15 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
// Select the 3 IVs that will be inherited.
for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
{
- // Randomly pick an IV from the available list.
+ // Randomly pick an IV from the available list and stop from being chosen again.
selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
-
- // Remove the selected IV index from the available IV indices.
RemoveIVIndexFromList(availableIVs, selectedIvs[i]);
}
// Determine which parent each of the selected IVs should inherit from.
for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
{
- whichParent[i] = Random() % 2;
+ whichParent[i] = Random() % DAYCARE_MON_COUNT;
}
// Set each of inherited IVs on the egg mon.
@@ -921,14 +918,14 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
numSharedParentMoves = 0;
for (i = 0; i < MAX_MON_MOVES; i++)
{
- sHatchedEggMotherMoves[i] = 0;
- sHatchedEggFatherMoves[i] = 0;
- sHatchedEggFinalMoves[i] = 0;
+ sHatchedEggMotherMoves[i] = MOVE_NONE;
+ sHatchedEggFatherMoves[i] = MOVE_NONE;
+ sHatchedEggFinalMoves[i] = MOVE_NONE;
}
for (i = 0; i < EGG_MOVES_ARRAY_COUNT; i++)
- sHatchedEggEggMoves[i] = 0;
+ sHatchedEggEggMoves[i] = MOVE_NONE;
for (i = 0; i < EGG_LVL_UP_MOVES_ARRAY_COUNT; i++)
- sHatchedEggLevelUpMoves[i] = 0;
+ sHatchedEggLevelUpMoves[i] = MOVE_NONE;
numLevelUpMoves = GetLevelUpMovesBySpecies(GetMonData(egg, MON_DATA_SPECIES), sHatchedEggLevelUpMoves);
for (i = 0; i < MAX_MON_MOVES; i++)
@@ -947,7 +944,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j])
{
- if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
+ if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES)
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
break;
}
@@ -966,7 +963,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01/*_FOCUS_PUNCH*/ + j) && CanMonLearnTMHM(egg, j))
{
- if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
+ if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES)
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
}
}
@@ -991,7 +988,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j])
{
- if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF)
+ if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == MON_HAS_MAX_MOVES)
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]);
break;
}
@@ -1036,7 +1033,7 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare
if (motherItem == ITEM_LIGHT_BALL || fatherItem == ITEM_LIGHT_BALL)
{
- if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == 0xFFFF)
+ if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == MON_HAS_MAX_MOVES)
DeleteFirstMoveAndGiveMoveToMon(mon, MOVE_VOLT_TACKLE);
}
}*/
@@ -1044,13 +1041,13 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare
static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
{
u16 i;
- u16 species[2];
+ u16 species[DAYCARE_MON_COUNT];
u16 eggSpecies;
// Determine which of the daycare mons is the mother and father of the egg.
// The 0th index of the parentSlots array is considered the mother slot, and the
// 1st index is the father slot.
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
species[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES);
if (species[i] == SPECIES_DITTO)
@@ -1066,11 +1063,11 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent
}
eggSpecies = GetEggSpecies(species[parentSlots[0]]);
- if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & 0x8000)
+ if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & EGG_GENDER_MALE)
{
eggSpecies = SPECIES_NIDORAN_M;
}
- if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & 0x8000)
+ if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE)
{
eggSpecies = SPECIES_VOLBEAT;
}
@@ -1078,19 +1075,19 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent
// Make Ditto the "mother" slot if the other daycare mon is male.
if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]].mon) != MON_FEMALE)
{
- u8 temp = parentSlots[1];
+ u8 ditto = parentSlots[1];
parentSlots[1] = parentSlots[0];
- parentSlots[0] = temp;
+ parentSlots[0] = ditto;
}
return eggSpecies;
}
-static void _GiveEggFromDaycare(struct DayCare *daycare) // give_egg
+static void _GiveEggFromDaycare(struct DayCare *daycare)
{
struct Pokemon egg;
u16 species;
- u8 parentSlots[2]; // 0th index is "mother" daycare slot, 1st is "father"
+ u8 parentSlots[DAYCARE_MON_COUNT];
bool8 isEgg;
species = DetermineEggSpeciesAndParentSlots(daycare, parentSlots);
@@ -1118,7 +1115,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
u8 metLocation;
u8 isEgg;
- CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, FALSE, 0, FALSE, 0);
+ CreateMon(mon, species, EGG_HATCH_LEVEL, 32, FALSE, 0, OT_ID_PLAYER_ID, 0);
metLevel = 0;
ball = ITEM_POKE_BALL;
language = LANGUAGE_JAPANESE;
@@ -1129,7 +1126,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
SetMonData(mon, MON_DATA_LANGUAGE, &language);
if (setHotSpringsLocation)
{
- metLocation = 253; // hot springs; see PokemonSummaryScreen_PrintEggTrainerMemo
+ metLocation = METLOC_SPECIAL_EGG;
SetMonData(mon, MON_DATA_MET_LOCATION, &metLocation);
}
@@ -1145,7 +1142,7 @@ static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *
u8 language;
personality = daycare->offspringPersonality | (Random() << 16);
- CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, TRUE, personality, FALSE, 0);
+ CreateMon(mon, species, EGG_HATCH_LEVEL, 32, TRUE, personality, OT_ID_PLAYER_ID, 0);
metLevel = 0;
ball = ITEM_POKE_BALL;
language = LANGUAGE_JAPANESE;
@@ -1161,7 +1158,7 @@ void GiveEggFromDaycare(void)
_GiveEggFromDaycare(&gSaveBlock1Ptr->daycare);
}
-static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
+static bool8 TryProduceOrHatchEgg(struct DayCare *daycare)
{
u32 i, validEggs = 0;
@@ -1171,15 +1168,16 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
daycare->mons[i].steps++, validEggs++;
}
- // try to trigger poke sex
- if (daycare->offspringPersonality == 0 && validEggs == 2 && (daycare->mons[1].steps & 0xFF) == 0xFF)
+ // Check if an egg should be produced
+ if (daycare->offspringPersonality == 0 && validEggs == DAYCARE_MON_COUNT && (daycare->mons[1].steps & 0xFF) == 0xFF)
{
- u8 loveScore = GetDaycareCompatibilityScore(daycare);
- if (loveScore > (Random() * 100u) / USHRT_MAX)
+ u8 compatability = GetDaycareCompatibilityScore(daycare);
+ if (compatability > (Random() * 100u) / USHRT_MAX)
TriggerPendingDaycareEgg();
}
- if (++daycare->stepCounter == 255) // hatch an egg
+ // Hatch Egg
+ if (++daycare->stepCounter == 255)
{
u32 steps;
@@ -1191,10 +1189,9 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
continue;
steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP);
- if (steps != 0) // subtract needed steps
+ if (steps != 0)
{
steps -= 1;
-
SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &steps);
}
else // hatch the egg
@@ -1212,7 +1209,7 @@ bool8 ShouldEggHatch(void)
{
if (GetBoxMonData(&gSaveBlock1Ptr->route5DayCareMon.mon, MON_DATA_SANITY_HAS_SPECIES))
gSaveBlock1Ptr->route5DayCareMon.steps++;
- return _DoEggActions_CheckHatch(&gSaveBlock1Ptr->daycare);
+ return TryProduceOrHatchEgg(&gSaveBlock1Ptr->daycare);
}
static bool8 IsEggPending(struct DayCare *daycare)
@@ -1226,22 +1223,22 @@ static bool8 IsEggPending(struct DayCare *daycare)
static void _GetDaycareMonNicknames(struct DayCare *daycare)
{
u8 text[12];
- if (GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) != 0)
+ if (GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) != SPECIES_NONE)
{
- GetBoxMonNick(&daycare->mons[0].mon, gStringVar1);
+ DayCare_GetBoxMonNickname(&daycare->mons[0].mon, gStringVar1);
GetBoxMonData(&daycare->mons[0].mon, MON_DATA_OT_NAME, text);
StringCopy(gStringVar3, text);
}
- if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != 0)
+ if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != SPECIES_NONE)
{
- GetBoxMonNick(&daycare->mons[1].mon, gStringVar2);
+ DayCare_GetBoxMonNickname(&daycare->mons[1].mon, gStringVar2);
}
}
-u16 GetSelectedMonNickAndSpecies(void)
+u16 GetSelectedMonNicknameAndSpecies(void)
{
- GetBoxMonNick(&gPlayerParty[GetCursorSelectionMonId()].box, gStringVar1);
+ DayCare_GetBoxMonNickname(&gPlayerParty[GetCursorSelectionMonId()].box, gStringVar1);
return GetBoxMonData(&gPlayerParty[GetCursorSelectionMonId()].box, MON_DATA_SPECIES);
}
@@ -1252,26 +1249,19 @@ void GetDaycareMonNicknames(void)
u8 GetDaycareState(void)
{
- // The daycare can be in 4 possible states:
- // 0: default state--no deposited mons, no egg
- // 1: there is an egg waiting for the player to pick it up
- // 2: there is a single pokemon in the daycare
- // 3: there are two pokemon in the daycare, no egg
-
u8 numMons;
if (IsEggPending(&gSaveBlock1Ptr->daycare))
{
- // There is an Egg waiting for the player.
- return 1;
+ return DAYCARE_EGG_WAITING;
}
numMons = CountPokemonInDaycare(&gSaveBlock1Ptr->daycare);
if (numMons != 0)
{
- return numMons + 1;
+ return numMons + 1; // DAYCARE_ONE_MON or DAYCARE_TWO_MONS
}
- return 0;
+ return DAYCARE_NO_MONS;
}
u8 GetDaycarePokemonCount(void)
@@ -1283,15 +1273,15 @@ u8 GetDaycarePokemonCount(void)
return 0;
}
+// Determine if the two given egg group lists contain any of the
+// same egg groups.
static bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2)
{
- // Determine if the two given egg group lists contain any of the
- // same egg groups.
s32 i, j;
- for (i = 0; i < 2; i++)
+ for (i = 0; i < EGG_GROUPS_PER_MON; i++)
{
- for (j = 0; j < 2; j++)
+ for (j = 0; j < EGG_GROUPS_PER_MON; j++)
{
if (eggGroups1[i] == eggGroups2[j])
return TRUE;
@@ -1304,12 +1294,12 @@ static bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2)
static u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
{
u32 i;
- u16 eggGroups[2][2];
- u16 species[2];
- u32 trainerIds[2];
- u32 genders[2];
+ u16 eggGroups[DAYCARE_MON_COUNT][EGG_GROUPS_PER_MON];
+ u16 species[DAYCARE_MON_COUNT];
+ u32 trainerIds[DAYCARE_MON_COUNT];
+ u32 genders[DAYCARE_MON_COUNT];
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
u32 personality;
@@ -1323,41 +1313,42 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
// check unbreedable egg group
if (eggGroups[0][0] == EGG_GROUP_UNDISCOVERED || eggGroups[1][0] == EGG_GROUP_UNDISCOVERED)
- return 0;
+ return PARENTS_INCOMPATIBLE;
// two Ditto can't breed
if (eggGroups[0][0] == EGG_GROUP_DITTO && eggGroups[1][0] == EGG_GROUP_DITTO)
- return 0;
+ return PARENTS_INCOMPATIBLE;
- // now that we checked, one ditto can breed with any other mon
+ // one parent is Ditto
if (eggGroups[0][0] == EGG_GROUP_DITTO || eggGroups[1][0] == EGG_GROUP_DITTO)
{
- if (trainerIds[0] == trainerIds[1]) // same trainer
- return 20;
+ if (trainerIds[0] == trainerIds[1])
+ return PARENTS_LOW_COMPATIBILITY;
- return 50; // different trainers, more chance of poke sex
+ return PARENTS_MED_COMPATABILITY;
}
+ // neither parent is Ditto
else
{
- if (genders[0] == genders[1]) // no homo
- return 0;
+ if (genders[0] == genders[1])
+ return PARENTS_INCOMPATIBLE;
if (genders[0] == MON_GENDERLESS || genders[1] == MON_GENDERLESS)
- return 0;
- if (!EggGroupsOverlap(eggGroups[0], eggGroups[1])) // not compatible with each other
- return 0;
+ return PARENTS_INCOMPATIBLE;
+ if (!EggGroupsOverlap(eggGroups[0], eggGroups[1]))
+ return PARENTS_INCOMPATIBLE;
- if (species[0] == species[1]) // same species
+ if (species[0] == species[1])
{
- if (trainerIds[0] == trainerIds[1]) // same species and trainer
- return 50;
+ if (trainerIds[0] == trainerIds[1])
+ return PARENTS_MED_COMPATABILITY; // same species, same trainer
- return 70; // different trainers, same species
+ return PARENTS_MAX_COMPATABILITY; // same species, different trainers
}
else
{
- if (trainerIds[0] != trainerIds[1]) // different trainers, different species
- return 50;
+ if (trainerIds[0] != trainerIds[1])
+ return PARENTS_MED_COMPATABILITY; // different species, different trainers
- return 20; // different species, same trainer
+ return PARENTS_LOW_COMPATIBILITY; // different species, same trainer
}
}
}
@@ -1374,13 +1365,13 @@ void SetDaycareCompatibilityString(void)
relationshipScore = GetDaycareCompatibilityScoreFromSave();
whichString = 0;
- if (relationshipScore == 0)
+ if (relationshipScore == PARENTS_INCOMPATIBLE)
whichString = 3;
- if (relationshipScore == 20)
+ if (relationshipScore == PARENTS_LOW_COMPATIBILITY)
whichString = 2;
- if (relationshipScore == 50)
+ if (relationshipScore == PARENTS_MED_COMPATABILITY)
whichString = 1;
- if (relationshipScore == 70)
+ if (relationshipScore == PARENTS_MAX_COMPATABILITY)
whichString = 0;
StringCopy(gStringVar4, sCompatibilityMessages[whichString]);
@@ -1389,20 +1380,20 @@ void SetDaycareCompatibilityString(void)
bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
{
u8 i;
- u8 symbolsCount[2]; // male, female
- symbolsCount[0] = symbolsCount[1] = 0;
+ u8 symbolsCount[GENDER_COUNT];
+ symbolsCount[MALE] = symbolsCount[FEMALE] = 0;
for (i = 0; name[i] != EOS; i++)
{
if (name[i] == CHAR_MALE)
- symbolsCount[0]++;
+ symbolsCount[MALE]++;
if (name[i] == CHAR_FEMALE)
- symbolsCount[1]++;
+ symbolsCount[FEMALE]++;
}
- if (genderRatio == MON_MALE && symbolsCount[0] != 0 && symbolsCount[1] == 0)
+ if (genderRatio == MON_MALE && symbolsCount[MALE] != 0 && symbolsCount[FEMALE] == 0)
return TRUE;
- if (genderRatio == MON_FEMALE && symbolsCount[1] != 0 && symbolsCount[0] == 0)
+ if (genderRatio == MON_FEMALE && symbolsCount[FEMALE] != 0 && symbolsCount[MALE] == 0)
return TRUE;
return FALSE;
@@ -1431,13 +1422,13 @@ static u8 *AppendMonGenderSymbol(u8 *name, struct BoxPokemon *boxMon)
static void GetDaycareLevelMenuText(struct DayCare *daycare, u8 *dest)
{
- u8 monNames[2][20];
+ u8 monNames[DAYCARE_MON_COUNT][20];
u8 i;
*dest = EOS;
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
- GetBoxMonNick(&daycare->mons[i].mon, monNames[i]);
+ DayCare_GetBoxMonNickname(&daycare->mons[i].mon, monNames[i]);
AppendMonGenderSymbol(monNames[i], &daycare->mons[i].mon);
}
@@ -1455,7 +1446,7 @@ static void GetDaycareLevelMenuLevelText(struct DayCare *daycare, u8 *dest)
u8 text[20];
*dest = EOS;
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
StringAppend(dest, gText_Lv);
level = GetLevelAfterDaycareSteps(&daycare->mons[i].mon, daycare->mons[i].steps);
@@ -1487,13 +1478,13 @@ static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
AddTextPrinter(&printer, 0xFF, NULL);
}
-static void DaycarePrintMonNick(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
+static void DaycarePrintMonNickname(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
{
- u8 nick[POKEMON_NAME_LENGTH * 2];
+ u8 nickname[POKEMON_NAME_LENGTH * 2];
- GetBoxMonNick(&daycare->mons[daycareSlotId].mon, nick);
- AppendMonGenderSymbol(nick, &daycare->mons[daycareSlotId].mon);
- DaycareAddTextPrinter(windowId, nick, 8, y);
+ DayCare_GetBoxMonNickname(&daycare->mons[daycareSlotId].mon, nickname);
+ AppendMonGenderSymbol(nickname, &daycare->mons[daycareSlotId].mon);
+ DaycareAddTextPrinter(windowId, nickname, 8, y);
}
static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
@@ -1519,7 +1510,7 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y)
{
if (daycareSlotId < (unsigned) DAYCARE_MON_COUNT)
{
- DaycarePrintMonNick(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y);
+ DaycarePrintMonNickname(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y);
DaycarePrintMonLvl(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y);
}
}
@@ -1539,8 +1530,8 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId)
case 1:
gSpecialVar_Result = input;
break;
- case 5:
- gSpecialVar_Result = 2;
+ case DAYCARE_LEVEL_MENU_EXIT:
+ gSpecialVar_Result = DAYCARE_EXITED_LEVEL_MENU;
break;
}
DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL);
@@ -1551,7 +1542,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId)
}
else if (gMain.newKeys & B_BUTTON)
{
- gSpecialVar_Result = 2;
+ gSpecialVar_Result = DAYCARE_EXITED_LEVEL_MENU;
DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL);
ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE);
RemoveWindow(gTasks[taskId].tWindowId);
@@ -1697,7 +1688,7 @@ static void AddHatchedMonToParty(u8 id)
GetSetPokedexFlag(pokeNum, FLAG_SET_SEEN);
GetSetPokedexFlag(pokeNum, FLAG_SET_CAUGHT);
- GetMonNick(mon, gStringVar1);
+ DayCare_GetMonNickname(mon, gStringVar1);
ball = ITEM_POKE_BALL;
SetMonData(mon, MON_DATA_POKEBALL, &ball);
@@ -1722,7 +1713,7 @@ static bool8 sub_8046E34(struct DayCare *daycare, u8 daycareId)
u8 nick[0x20];
struct DaycareMon *daycareMon = &daycare->mons[daycareId];
- GetBoxMonNick(&daycareMon->mon, nick);
+ DayCare_GetBoxMonNickname(&daycareMon->mon, nick);
if (daycareMon->mail.message.itemId != 0
&& (StringCompare(nick, daycareMon->mail.monName) != 0
|| StringCompare(gSaveBlock2Ptr->playerName, daycareMon->mail.OT_name) != 0))
@@ -1963,7 +1954,7 @@ static void CB2_EggHatch_1(void)
}
break;
case 5:
- GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
+ DayCare_GetMonNickname(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg);
EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF);
PlayFanfare(MUS_FANFA5);
@@ -1980,7 +1971,7 @@ static void CB2_EggHatch_1(void)
sEggHatchData->CB2_state++;
break;
case 8:
- GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
+ DayCare_GetMonNickname(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_NickHatchPrompt);
EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 2, 1);
sEggHatchData->CB2_state++;
@@ -1997,7 +1988,7 @@ static void CB2_EggHatch_1(void)
switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
- GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3);
+ DayCare_GetMonNickname(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3);
species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES);
gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]);
personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0);
diff --git a/src/event_object_lock.c b/src/event_object_lock.c
index ea4fa00b9..e91642aa2 100644
--- a/src/event_object_lock.c
+++ b/src/event_object_lock.c
@@ -9,7 +9,7 @@
bool8 walkrun_is_standing_still(void)
{
- if (gPlayerAvatar.running1 == 1)
+ if (gPlayerAvatar.tileTransitionState == 1)
return FALSE;
else
return TRUE;
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index dbc5f23b5..0af5f462c 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -56,12 +56,12 @@ void pal_fill_for_maplights(void)
{
case 0:
palette_bg_faded_fill_black();
- fade_screen(0, 0);
+ FadeScreen(0, 0);
palette_bg_faded_fill_black();
break;
case 1:
palette_bg_faded_fill_white();
- fade_screen(2, 0);
+ FadeScreen(2, 0);
palette_bg_faded_fill_white();
break;
}
@@ -73,12 +73,12 @@ static void sub_807DBAC(void)
{
case 0:
palette_bg_faded_fill_black();
- fade_screen(0, 3);
+ FadeScreen(0, 3);
palette_bg_faded_fill_black();
break;
case 1:
palette_bg_faded_fill_white();
- fade_screen(2, 3);
+ FadeScreen(2, 3);
palette_bg_faded_fill_white();
break;
}
@@ -87,7 +87,7 @@ static void sub_807DBAC(void)
void sub_807DC00(void)
{
palette_bg_faded_fill_black();
- fade_screen(0, 0);
+ FadeScreen(0, 0);
palette_bg_faded_fill_black();
}
@@ -95,16 +95,16 @@ void sub_807DC18(void)
{
const struct MapHeader *header = warp1_get_mapheader();
if (header->regionMapSectionId != gMapHeader.regionMapSectionId && sub_80F8110(header->regionMapSectionId, FALSE))
- fade_screen(1, 0);
+ FadeScreen(1, 0);
else
{
switch (sub_80C9D7C(GetCurrentMapType(), header->mapType))
{
case 0:
- fade_screen(1, 0);
+ FadeScreen(1, 0);
break;
case 1:
- fade_screen(3, 0);
+ FadeScreen(3, 0);
break;
}
}
@@ -115,10 +115,10 @@ static void sub_807DC70(void)
switch (sub_80C9D7C(GetCurrentMapType(), warp1_get_mapheader()->mapType))
{
case 0:
- fade_screen(1, 3);
+ FadeScreen(1, 3);
break;
case 1:
- fade_screen(3, 3);
+ FadeScreen(3, 3);
break;
}
}
@@ -654,7 +654,7 @@ static void sub_807E678(u8 taskId)
{
case 0:
ClearLinkCallback_2();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
sub_8055F88();
PlaySE(SE_KAIDAN);
data[0]++;
diff --git a/src/field_specials.c b/src/field_specials.c
index 8d6014fba..57bf53830 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1816,7 +1816,7 @@ static const struct {
{MAP_GROUP(ROCKET_HIDEOUT_B1F), MAP_NUM(ROCKET_HIDEOUT_B1F), MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER)},
{MAP_GROUP(SAFARI_ZONE_CENTER), MAP_NUM(SAFARI_ZONE_CENTER), MAP_GROUP(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE), MAP_NUM(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE)},
{MAP_GROUP(FUCHSIA_CITY_GYM), MAP_NUM(FUCHSIA_CITY_GYM), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)},
- {MAP_GROUP(FUCHSIA_CITY_BUILDING1), MAP_NUM(FUCHSIA_CITY_BUILDING1), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)},
+ {MAP_GROUP(FUCHSIA_CITY_WARDENS_HOUSE), MAP_NUM(FUCHSIA_CITY_WARDENS_HOUSE), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)},
{MAP_GROUP(SAFFRON_CITY_DOJO), MAP_NUM(SAFFRON_CITY_DOJO), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)},
{MAP_GROUP(SAFFRON_CITY_GYM), MAP_NUM(SAFFRON_CITY_GYM), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)},
{MAP_GROUP(SILPH_CO_1F), MAP_NUM(SILPH_CO_1F), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)},
diff --git a/src/item_menu.c b/src/item_menu.c
new file mode 100644
index 000000000..ffba2eae9
--- /dev/null
+++ b/src/item_menu.c
@@ -0,0 +1,2400 @@
+#include "global.h"
+#include "gflib.h"
+#include "bag.h"
+#include "battle_controllers.h"
+#include "berry_pouch.h"
+#include "decompress.h"
+#include "event_scripts.h"
+#include "event_object_80688E4.h"
+#include "field_player_avatar.h"
+#include "graphics.h"
+#include "help_system.h"
+#include "item.h"
+#include "item_menu.h"
+#include "item_menu_icons.h"
+#include "item_use.h"
+#include "link.h"
+#include "list_menu.h"
+#include "load_save.h"
+#include "mail_data.h"
+#include "map_name_popup.h"
+#include "menu.h"
+#include "menu_indicators.h"
+#include "money.h"
+#include "new_menu_helpers.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "pokemon_storage_system.h"
+#include "scanline_effect.h"
+#include "script.h"
+#include "shop.h"
+#include "strings.h"
+#include "teachy_tv.h"
+#include "tm_case.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+
+#define FREE_IF_SET(ptr) ({ if (ptr) Free(ptr); })
+
+struct BagMenuAlloc
+{
+ MainCallback exitCB;
+ u8 itemOriginalLocation;
+ u8 pocketSwitchMode:4;
+ u8 itemMenuIcon:2;
+ u8 inhibitItemDescriptionPrint:2;
+ u16 contextMenuSelectedItem;
+ u8 pocketScrollArrowsTask;
+ u8 pocketSwitchArrowsTask;
+ u8 nItems[3];
+ u8 maxShowed[3];
+ u8 data[4];
+};
+
+struct BagSlots
+{
+ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
+ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
+ u16 itemsAbove[3];
+ u16 cursorPos[3];
+ u16 registeredItem;
+ u16 pocket;
+};
+
+EWRAM_DATA struct BagStruct gBagMenuState = {};
+static EWRAM_DATA struct BagMenuAlloc * sBagMenuDisplay = NULL;
+static EWRAM_DATA void * sBagBgTilemapBuffer = NULL;
+static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL;
+static EWRAM_DATA u8 (*sListMenuItemStrings)[19] = NULL;
+static EWRAM_DATA u8 sContextMenuItemsBuffer[4] = {};
+static EWRAM_DATA const u8 *sContextMenuItemsPtr = NULL;
+static EWRAM_DATA u8 sContextMenuNumItems = 0;
+static EWRAM_DATA struct BagSlots * sBackupPlayerBag = NULL;
+EWRAM_DATA u16 gSpecialVar_ItemId = ITEM_NONE;
+
+static void CB2_OpenBagMenu(void);
+static bool8 LoadBagMenuGraphics(void);
+static void FadeOutOfBagMenu(void);
+static void Task_WaitFadeOutOfBagMenu(u8 taskId);
+static void NullBagMenuBufferPtrs(void);
+static bool8 BagMenuInitBgsAndAllocTilemapBuffer(void);
+static bool8 DoLoadBagGraphics(void);
+static u8 CreateBagInputHandlerTask(u8 location);
+static bool8 TryAllocListMenuBuffers(void);
+static void Bag_BuildListMenuTemplate(u8 pocket);
+static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId);
+static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void BagListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y);
+static void bag_menu_print_cursor(u8 y, u8 colorIdx);
+static void PrintBagPocketName(void);
+static void PrintItemDescriptionOnMessageWindow(s32 itemIndex);
+static void CreatePocketScrollArrowPair(void);
+static void CreatePocketSwitchArrowPair(void);
+static void BagDestroyPocketSwitchArrowPair(void);
+static void CalculateInitialCursorPosAndItemsAbove(void);
+static void UpdatePocketScrollPositions(void);
+static void DestroyBagMenuResources(void);
+static void Task_ItemMenu_WaitFadeAndSwitchToExitCallback(u8 taskId);
+static void Task_AnimateWin0v(u8 taskId);
+static void ShowBagOrBeginWin0OpenTask(void);
+static void All_CalculateNItemsAndMaxShowed(void);
+static void Task_BagMenu_HandleInput(u8 taskId);
+static void Task_ItemContextMenuByLocation(u8 taskId);
+static void Bag_FillMessageBoxWithPalette(u32 a0);
+static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId);
+static void SwitchPockets(u8 taskId, s16 direction, bool16 a2);
+static void Task_AnimateSwitchPockets(u8 taskId);
+static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex);
+static void Task_MoveItemInPocket_HandleInput(u8 taskId);
+static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex);
+static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex);
+static void CopyBagListBgTileRowToTilemapBuffer(u8 a0);
+static void Task_ItemContext_FieldOrBattle(u8 taskId);
+static void Task_FieldItemContextMenuHandleInput(u8 taskId);
+static void Task_ItemMenuAction_Use(u8 taskId);
+static void Task_ItemMenuAction_Toss(u8 taskId);
+static void Task_ConfirmTossItems(u8 taskId);
+static void Task_TossItem_No(u8 taskId);
+static void Task_SelectQuantityToToss(u8 taskId);
+static void Task_TossItem_Yes(u8 taskId);
+static void Task_WaitAB_RedrawAndReturnToBag(u8 taskId);
+static void Task_ItemMenuAction_ToggleSelect(u8 taskId);
+static void Task_ItemMenuAction_Give(u8 taskId);
+static void Task_PrintThereIsNoPokemon(u8 taskId);
+static void Task_ItemMenuAction_Cancel(u8 taskId);
+static void Task_PrintItemCantBeHeld(u8 taskId);
+static void Task_WaitAButtonAndCloseContextMenu(u8 taskId);
+static void Task_ItemMenuAction_BattleUse(u8 taskId);
+static void Task_ItemContext_FieldGive(u8 taskId);
+static void GoToTMCase_Give(void);
+static void GoToBerryPouch_Give(void);
+static void ReturnToBagMenuFromSubmenu_Give(void);
+static void Task_ItemContext_PcBoxGive(u8 taskId);
+static void GoToTMCase_PCBox(void);
+static void GoToBerryPouch_PCBox(void);
+static void ReturnToBagMenuFromSubmenu_PCBox(void);
+static void Task_ItemContext_Sell(u8 taskId);
+static void GoToTMCase_Sell(void);
+static void GoToBerryPouch_Sell(void);
+static void ReturnToBagMenuFromSubmenu_Sell(void);
+static void Task_PrintSaleConfirmationText(u8 taskId);
+static void Task_ShowSellYesNoMenu(u8 taskId);
+static void Task_SellItem_No(u8 taskId);
+static void Task_InitSaleQuantitySelectInterface(u8 taskId);
+static void UpdateSalePriceDisplay(s32 price);
+static void Task_SelectQuantityToSell(u8 taskId);
+static void Task_SellItem_Yes(u8 taskId);
+static void Task_FinalizeSaleToShop(u8 taskId);
+static void Task_WaitPressAB_AfterSell(u8 taskId);
+static void Task_ItemContext_Deposit(u8 taskId);
+static void Task_SelectQuantityToDeposit(u8 taskId);
+static void Task_TryDoItemDeposit(u8 taskId);
+static bool8 BagIsTutorial(void);
+static void Task_Bag_OldManTutorial(u8 taskId);
+static void Task_Pokedude_FadeFromBag(u8 taskId);
+static void Task_Pokedude_WaitFadeAndExitBag(u8 taskId);
+static void Task_Bag_TeachyTvRegister(u8 taskId);
+static void Task_Bag_TeachyTvCatching(u8 taskId);
+static void Task_Bag_TeachyTvStatus(u8 taskId);
+static void Task_Bag_TeachyTvTMs(u8 taskId);
+
+static const struct BgTemplate sBgTemplates[2] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }
+};
+
+static const u8 *const sPocketNames[] = {
+ gText_Items2,
+ gText_KeyItems2,
+ gText_PokeBalls2
+};
+
+static const u16 sBagListBgTiles[][18] = {
+ INCBIN_U16("graphics/item_menu/bagmap_0.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_1.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_2.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_3.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_4.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_5.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_6.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_7.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_8.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_9.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_A.bin"),
+ INCBIN_U16("graphics/item_menu/bagmap_B.bin")
+};
+
+static const struct MenuAction sItemMenuContextActions[] = {
+ [ITEMMENUACTION_USE] = {gOtherText_Use, {.void_u8 = Task_ItemMenuAction_Use}},
+ [ITEMMENUACTION_TOSS] = {gOtherText_Toss, {.void_u8 = Task_ItemMenuAction_Toss}},
+ [ITEMMENUACTION_REGISTER] = {gOtherText_Register, {.void_u8 = Task_ItemMenuAction_ToggleSelect}},
+ [ITEMMENUACTION_GIVE] = {gOtherText_Give, {.void_u8 = Task_ItemMenuAction_Give}},
+ [ITEMMENUACTION_CANCEL] = {gFameCheckerText_Cancel, {.void_u8 = Task_ItemMenuAction_Cancel}},
+ [ITEMMENUACTION_BATTLE_USE] = {gOtherText_Use, {.void_u8 = Task_ItemMenuAction_BattleUse}},
+ [ITEMMENUACTION_CHECK] = {gOtherText_Check, {.void_u8 = Task_ItemMenuAction_Use}},
+ [ITEMMENUACTION_OPEN] = {gOtherText_Open, {.void_u8 = Task_ItemMenuAction_Use}},
+ [ITEMMENUACTION_OPEN_BERRIES] = {gOtherText_Open, {.void_u8 = Task_ItemMenuAction_BattleUse}},
+ [ITEMMENUACTION_WALK] = {gOtherText_Walk, {.void_u8 = Task_ItemMenuAction_Use}},
+ [ITEMMENUACTION_DESELECT] = {gOtherText_Deselect, {.void_u8 = Task_ItemMenuAction_ToggleSelect}},
+ [ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}}
+};
+
+static const u8 sContextMenuItems_Field[][4] = {
+ {
+ ITEMMENUACTION_USE,
+ ITEMMENUACTION_GIVE,
+ ITEMMENUACTION_TOSS,
+ ITEMMENUACTION_CANCEL
+ }, {
+ ITEMMENUACTION_USE,
+ ITEMMENUACTION_REGISTER,
+ ITEMMENUACTION_CANCEL,
+ ITEMMENUACTION_DUMMY
+ }, {
+ ITEMMENUACTION_GIVE,
+ ITEMMENUACTION_TOSS,
+ ITEMMENUACTION_CANCEL,
+ ITEMMENUACTION_DUMMY
+ }
+};
+
+static const u8 sContextMenuItems_CheckGiveTossCancel[] = {
+ ITEMMENUACTION_CHECK,
+ ITEMMENUACTION_GIVE,
+ ITEMMENUACTION_TOSS,
+ ITEMMENUACTION_CANCEL
+};
+
+static const u8 sContextMenuItems_GiveIfNotKeyItemPocket[][2] = {
+ {
+ ITEMMENUACTION_GIVE,
+ ITEMMENUACTION_CANCEL
+ }, {
+ ITEMMENUACTION_CANCEL,
+ ITEMMENUACTION_DUMMY
+ }, {
+ ITEMMENUACTION_GIVE,
+ ITEMMENUACTION_CANCEL
+ }
+};
+
+static const u8 sContextMenuItems_Open[] = {
+ ITEMMENUACTION_OPEN,
+ ITEMMENUACTION_CANCEL
+};
+
+static const u8 sContextMenuItems_BattleUse[] = {
+ ITEMMENUACTION_BATTLE_USE,
+ ITEMMENUACTION_CANCEL
+};
+
+static const u8 sContextMenuItems_Cancel[] = {
+ ITEMMENUACTION_CANCEL,
+ ITEMMENUACTION_DUMMY
+};
+
+static const TaskFunc sItemContextTaskFuncs[] = {
+ [ITEMMENULOCATION_FIELD] = Task_ItemContext_FieldOrBattle,
+ [ITEMMENULOCATION_PARTY] = Task_ItemContext_FieldGive,
+ [ITEMMENULOCATION_SHOP] = Task_ItemContext_Sell,
+ [ITEMMENULOCATION_ITEMPC] = Task_ItemContext_Deposit,
+ [ITEMMENULOCATION_PCBOX] = Task_ItemContext_PcBoxGive,
+ [ITEMMENULOCATION_BATTLE] = Task_ItemContext_FieldOrBattle,
+ [ITEMMENULOCATION_OLD_MAN] = NULL
+};
+
+static const struct YesNoFuncTable sYesNoMenu_Toss = {
+ Task_TossItem_Yes,
+ Task_TossItem_No
+};
+
+static const struct YesNoFuncTable sYesNoMenu_Sell = {
+ Task_SellItem_Yes,
+ Task_SellItem_No
+};
+
+static const u8 sListItemTextColor_RegularItem[] = _("{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}");
+
+static const u8 sListItemTextColor_TmCase_BerryPouch[] = _("{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}");
+
+static const struct ScrollArrowsTemplate sPocketSwitchArrowPairTemplate = {
+ .firstArrowType = SCROLL_ARROW_LEFT,
+ .firstX = 8,
+ .firstY = 72,
+ .secondArrowType = SCROLL_ARROW_RIGHT,
+ .secondX = 72,
+ .secondY = 72,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 2,
+ .tileTag = 111,
+ .palTag = 111,
+ .palNum = 0,
+};
+
+static const u8 sBlit_SelectButton[] = INCBIN_U8("graphics/interface/select_button.4bpp");
+
+void GoToBagMenu(u8 location, u8 pocket, MainCallback bagCallback)
+{
+ u8 i;
+
+ NullBagMenuBufferPtrs();
+ sBagMenuDisplay = Alloc(sizeof(struct BagMenuAlloc));
+ if (sBagMenuDisplay == NULL)
+ SetMainCallback2(bagCallback);
+ else
+ {
+ if (location != ITEMMENULOCATION_LAST)
+ gBagMenuState.location = location;
+ if (bagCallback != NULL)
+ gBagMenuState.bagCallback = bagCallback;
+ sBagMenuDisplay->exitCB = NULL;
+ sBagMenuDisplay->itemOriginalLocation = 0xFF;
+ sBagMenuDisplay->itemMenuIcon = 0;
+ sBagMenuDisplay->inhibitItemDescriptionPrint = FALSE;
+ sBagMenuDisplay->pocketScrollArrowsTask = 0xFF;
+ sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF;
+ if (location == ITEMMENULOCATION_ITEMPC)
+ sBagMenuDisplay->pocketSwitchMode = 1;
+ else if (location == ITEMMENULOCATION_OLD_MAN)
+ sBagMenuDisplay->pocketSwitchMode = 2;
+ else
+ sBagMenuDisplay->pocketSwitchMode = 0;
+ for (i = 0; i < 4; i++)
+ {
+ sBagMenuDisplay->data[i] = 0;
+ }
+ if (pocket == OPEN_BAG_ITEMS || pocket == OPEN_BAG_KEYITEMS || pocket == OPEN_BAG_POKEBALLS)
+ gBagMenuState.pocket = pocket;
+ gTextFlags.autoScroll = FALSE;
+ gSpecialVar_ItemId = ITEM_NONE;
+ SetMainCallback2(CB2_OpenBagMenu);
+ }
+}
+
+void CB2_BagMenuFromStartMenu(void)
+{
+ GoToBagMenu(ITEMMENULOCATION_FIELD, OPEN_BAG_LAST, CB2_ReturnToFieldWithOpenMenu);
+}
+
+void CB2_BagMenuFromBattle(void)
+{
+ GoToBagMenu(ITEMMENULOCATION_BATTLE, OPEN_BAG_LAST, SetCB2ToReshowScreenAfterMenu2);
+}
+
+static void CB2_BagMenuRun(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ DoScheduledBgTilemapCopiesToVram();
+ UpdatePaletteFade();
+}
+
+static void VBlankCB_BagMenuRun(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void CB2_OpenBagMenu(void)
+{
+ while (1)
+ {
+ if ((u8)sub_80BF72C() == TRUE)
+ break;
+ if (LoadBagMenuGraphics() == TRUE)
+ break;
+ if (MenuHelpers_LinkSomething() == TRUE)
+ break;
+ }
+}
+
+static bool8 LoadBagMenuGraphics(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankHBlankCallbacksToNull();
+ ClearScheduledBgCopiesToVram();
+ gMain.state++;
+ break;
+ case 1:
+ ScanlineEffect_Stop();
+ gMain.state++;
+ break;
+ case 2:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 3:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ gMain.state++;
+ break;
+ case 4:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 5:
+ ResetItemMenuIconState();
+ gMain.state++;
+ break;
+ case 6:
+ if (!MenuHelpers_LinkSomething())
+ {
+ ResetTasks();
+ }
+ gMain.state++;
+ break;
+ case 7:
+ if (BagMenuInitBgsAndAllocTilemapBuffer())
+ {
+ sBagMenuDisplay->data[0] = 0;
+ gMain.state++;
+ }
+ else
+ {
+ FadeOutOfBagMenu();
+ return TRUE;
+ }
+ break;
+ case 8:
+ if (DoLoadBagGraphics() == TRUE)
+ gMain.state++;
+ break;
+ case 9:
+ InitBagWindows();
+ gMain.state++;
+ break;
+ case 10:
+ All_CalculateNItemsAndMaxShowed();
+ CalculateInitialCursorPosAndItemsAbove();
+ UpdatePocketScrollPositions();
+ gMain.state++;
+ break;
+ case 11:
+ if (!TryAllocListMenuBuffers())
+ {
+ FadeOutOfBagMenu();
+ return TRUE;
+ }
+ gMain.state++;
+ break;
+ case 12:
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ gMain.state++;
+ break;
+ case 13:
+ if (gBagMenuState.location != ITEMMENULOCATION_ITEMPC)
+ PrintBagPocketName();
+ else
+ BagDrawDepositItemTextBox();
+ gMain.state++;
+ break;
+ case 14:
+ taskId = CreateBagInputHandlerTask(gBagMenuState.location);
+ gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[8] = 0;
+ gMain.state++;
+ break;
+ case 15:
+ CreateBagOrSatchelSprite(gBagMenuState.pocket);
+ gMain.state++;
+ break;
+ case 16:
+ CreatePocketScrollArrowPair();
+ CreatePocketSwitchArrowPair();
+ gMain.state++;
+ break;
+ case 17:
+ ItemMenuIcons_CreateInsertIndicatorBarHidden();
+ gMain.state++;
+ break;
+ case 18:
+ ShowBagOrBeginWin0OpenTask();
+ gMain.state++;
+ break;
+ case 19:
+ if (gBagMenuState.location == ITEMMENULOCATION_ITEMPC)
+ HelpSystem_SetSomeVariable2(29);
+ else
+ HelpSystem_SetSomeVariable2(9);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gMain.state++;
+ break;
+ default:
+ SetVBlankCallback(VBlankCB_BagMenuRun);
+ SetMainCallback2(CB2_BagMenuRun);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void FadeOutOfBagMenu(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
+ CreateTask(Task_WaitFadeOutOfBagMenu, 0);
+ SetVBlankCallback(VBlankCB_BagMenuRun);
+ SetMainCallback2(CB2_BagMenuRun);
+}
+
+static void Task_WaitFadeOutOfBagMenu(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(gBagMenuState.bagCallback);
+ DestroyBagMenuResources();
+ DestroyTask(taskId);
+ }
+}
+
+static void NullBagMenuBufferPtrs(void)
+{
+ sBagMenuDisplay = NULL;
+ sBagBgTilemapBuffer = NULL;
+ sListMenuItems = NULL;
+ sListMenuItemStrings = NULL;
+}
+
+static bool8 BagMenuInitBgsAndAllocTilemapBuffer(void)
+{
+ void **buff;
+ ResetAllBgsCoordinatesAndBgCntRegs();
+ buff = &sBagBgTilemapBuffer;
+ *buff = Alloc(0x800);
+ if (*buff == NULL)
+ return FALSE;
+ memset(*buff, 0, 0x800);
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates));
+ SetBgTilemapBuffer(1, *buff);
+ ScheduleBgCopyTilemapToVram(1);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON);
+ ShowBg(0);
+ ShowBg(1);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ return TRUE;
+}
+
+static bool8 DoLoadBagGraphics(void)
+{
+ switch (sBagMenuDisplay->data[0])
+ {
+ case 0:
+ ResetTempTileDataBuffers();
+ DecompressAndCopyTileDataToVram(1, gUnknown_8E830CC, 0, 0, 0);
+ sBagMenuDisplay->data[0]++;
+ break;
+ case 1:
+ if (FreeTempTileDataBuffersIfPossible() != TRUE)
+ {
+ if (gBagMenuState.location != ITEMMENULOCATION_ITEMPC)
+ LZDecompressWram(gUnknown_8E832C0, sBagBgTilemapBuffer);
+ else
+ LZDecompressWram(gUnknown_8E83444, sBagBgTilemapBuffer);
+ sBagMenuDisplay->data[0]++;
+ }
+ break;
+ case 2:
+ LoadCompressedPalette(gBagBgPalette, 0x00, 0x60);
+ if (!BagIsTutorial() && gSaveBlock2Ptr->playerGender != MALE)
+ LoadCompressedPalette(gBagBgPalette_FemaleOverride, 0x00, 0x20);
+ sBagMenuDisplay->data[0]++;
+ break;
+ case 3:
+ if (BagIsTutorial() == TRUE || gSaveBlock2Ptr->playerGender == MALE)
+ LoadCompressedSpriteSheet(&gSpriteSheet_Backpack);
+ else
+ LoadCompressedSpriteSheet(&gSpriteSheet_Satchel);
+ sBagMenuDisplay->data[0]++;
+ break;
+ case 4:
+ LoadCompressedSpritePalette(&gSpritePalette_BagOrSatchel);
+ sBagMenuDisplay->data[0]++;
+ break;
+ case 5:
+ LoadCompressedSpriteSheet(&gBagSwapSpriteSheet);
+ sBagMenuDisplay->data[0]++;
+ break;
+ default:
+ LoadCompressedSpritePalette(&gBagSwapSpritePalette);
+ sBagMenuDisplay->data[0] = 0;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static u8 CreateBagInputHandlerTask(u8 location)
+{
+ switch (location)
+ {
+ case ITEMMENULOCATION_OLD_MAN:
+ return CreateTask(Task_Bag_OldManTutorial, 0);
+ case ITEMMENULOCATION_TTVSCR_REGISTER:
+ return CreateTask(Task_Bag_TeachyTvRegister, 0);
+ case ITEMMENULOCATION_TTVSCR_TMS:
+ return CreateTask(Task_Bag_TeachyTvTMs, 0);
+ case ITEMMENULOCATION_TTVSCR_STATUS:
+ return CreateTask(Task_Bag_TeachyTvStatus, 0);
+ case ITEMMENULOCATION_TTVSCR_CATCHING:
+ return CreateTask(Task_Bag_TeachyTvCatching, 0);
+ default:
+ return CreateTask(Task_BagMenu_HandleInput, 0);
+ }
+}
+
+static bool8 TryAllocListMenuBuffers(void)
+{
+ // The items pocket has the highest capacity, + 1 for CANCEL
+ sListMenuItems = Alloc((BAG_ITEMS_COUNT + 1) * sizeof(struct ListMenuItem));
+ if (sListMenuItems == NULL)
+ return FALSE;
+ sListMenuItemStrings = Alloc((BAG_ITEMS_COUNT + 1) * sizeof(*sListMenuItemStrings));
+ if (sListMenuItemStrings == NULL)
+ return FALSE;
+ return TRUE;
+}
+
+static void Bag_BuildListMenuTemplate(u8 pocket)
+{
+ u16 i;
+ struct BagPocket * bagPocket = &gBagPockets[pocket];
+ for (i = 0; i < sBagMenuDisplay->nItems[pocket]; i++)
+ {
+ BagListMenuGetItemNameColored(sListMenuItemStrings[i], bagPocket->itemSlots[i].itemId);
+ sListMenuItems[i].label = sListMenuItemStrings[i];
+ sListMenuItems[i].index = i;
+ }
+ StringCopy(sListMenuItemStrings[i], sListItemTextColor_RegularItem);
+ StringAppend(sListMenuItemStrings[i], gFameCheckerText_Cancel);
+ sListMenuItems[i].label = sListMenuItemStrings[i];
+ sListMenuItems[i].index = i;
+ gMultiuseListMenuTemplate.items = sListMenuItems;
+ gMultiuseListMenuTemplate.totalItems = sBagMenuDisplay->nItems[pocket] + 1;
+ gMultiuseListMenuTemplate.windowId = 0;
+ gMultiuseListMenuTemplate.header_X = 0;
+ gMultiuseListMenuTemplate.item_X = 9;
+ gMultiuseListMenuTemplate.cursor_X = 1;
+ gMultiuseListMenuTemplate.lettersSpacing = 0;
+ gMultiuseListMenuTemplate.itemVerticalPadding = 2;
+ gMultiuseListMenuTemplate.upText_Y = 2;
+ gMultiuseListMenuTemplate.maxShowed = sBagMenuDisplay->maxShowed[pocket];
+ gMultiuseListMenuTemplate.fontId = 2;
+ gMultiuseListMenuTemplate.cursorPal = 2;
+ gMultiuseListMenuTemplate.fillValue = 0;
+ gMultiuseListMenuTemplate.cursorShadowPal = 3;
+ gMultiuseListMenuTemplate.moveCursorFunc = BagListMenuMoveCursorFunc;
+ gMultiuseListMenuTemplate.itemPrintFunc = BagListMenuItemPrintFunc;
+ gMultiuseListMenuTemplate.cursorKind = 0;
+ gMultiuseListMenuTemplate.scrollMultiple = 0;
+}
+
+static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId)
+{
+ if (itemId == ITEM_TM_CASE || itemId == ITEM_BERRY_POUCH)
+ StringCopy(dest, sListItemTextColor_TmCase_BerryPouch);
+ else
+ StringCopy(dest, sListItemTextColor_RegularItem);
+ StringAppend(dest, ItemId_GetName(itemId));
+}
+
+static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ if (onInit != TRUE)
+ {
+ PlaySE(SE_BAG1);
+ sub_8098580();
+ }
+ if (sBagMenuDisplay->itemOriginalLocation == 0xFF)
+ {
+ DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1);
+ if (sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemIndex)
+ CreateItemMenuIcon(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon);
+ else
+ CreateItemMenuIcon(ITEM_N_A, sBagMenuDisplay->itemMenuIcon);
+ sBagMenuDisplay->itemMenuIcon ^= 1;
+ if (!sBagMenuDisplay->inhibitItemDescriptionPrint)
+ PrintItemDescriptionOnMessageWindow(itemIndex);
+ }
+}
+
+static void BagListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y)
+{
+ u16 bagItemId;
+ u16 bagItemQuantity;
+ if (sBagMenuDisplay->itemOriginalLocation != 0xFF)
+ {
+ if (sBagMenuDisplay->itemOriginalLocation == (u8)itemId)
+ bag_menu_print_cursor(y, 2);
+ else
+ bag_menu_print_cursor(y, 0xFF);
+ }
+ if (itemId != -2 && sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemId)
+ {
+ bagItemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemId);
+ bagItemQuantity = BagGetQuantityByPocketPosition(gBagMenuState.pocket + 1, itemId);
+ if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(bagItemId))
+ {
+ ConvertIntToDecimalStringN(gStringVar1, bagItemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ BagPrintTextOnWindow(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1);
+ }
+ else if (gSaveBlock1Ptr->registeredItem != ITEM_NONE && gSaveBlock1Ptr->registeredItem == bagItemId)
+ {
+ BlitBitmapToWindow(windowId, sBlit_SelectButton, 0x70, y, 0x18, 0x10);
+ }
+ }
+}
+
+static void bag_menu_print_cursor_(u8 taskId, u8 colorIdx)
+{
+ bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx);
+}
+
+static void bag_menu_print_cursor(u8 y, u8 colorIdx)
+{
+ if (colorIdx == 0xFF)
+ {
+ FillWindowPixelRect(0, PIXEL_FILL(0), 1, y, GetMenuCursorDimensionByFont(2, 0), GetMenuCursorDimensionByFont(2, 1));
+ }
+ else
+ {
+ BagPrintTextOnWindow(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx);
+ }
+}
+
+static void PrintBagPocketName(void)
+{
+ FillWindowPixelBuffer(2, PIXEL_FILL(0));
+ BagPrintTextOnWin1CenteredColor0(sPocketNames[gBagMenuState.pocket], gBagMenuState.pocket);
+}
+
+static void PrintItemDescriptionOnMessageWindow(s32 itemIndex)
+{
+ const u8 *description;
+ if (itemIndex != sBagMenuDisplay->nItems[gBagMenuState.pocket])
+ description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex));
+ else
+ description = gText_CloseBag;
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ BagPrintTextOnWindow(1, 2, description, 0, 3, 2, 0, 0, 0);
+}
+
+static void CreatePocketScrollArrowPair(void)
+{
+ sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized(
+ SCROLL_ARROW_UP,
+ 160,
+ 8,
+ 104,
+ sBagMenuDisplay->nItems[gBagMenuState.pocket] - sBagMenuDisplay->maxShowed[gBagMenuState.pocket] + 1,
+ 110,
+ 110,
+ &gBagMenuState.cursorPos[gBagMenuState.pocket]
+ );
+}
+
+static void CreatePocketSwitchArrowPair(void)
+{
+ if (sBagMenuDisplay->pocketSwitchMode != 1)
+ {
+ sBagMenuDisplay->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&sPocketSwitchArrowPairTemplate, &gBagMenuState.pocket);
+ }
+}
+
+static void CreatePocketScrollArrowPair_SellQuantity(void)
+{
+ sBagMenuDisplay->contextMenuSelectedItem = 1;
+ sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized(
+ SCROLL_ARROW_UP,
+ 152,
+ 72,
+ 104,
+ 2,
+ 110,
+ 110,
+ &sBagMenuDisplay->contextMenuSelectedItem
+ );
+}
+
+static void CreateArrowPair_QuantitySelect(void)
+{
+ sBagMenuDisplay->contextMenuSelectedItem = 1;
+ sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized(
+ SCROLL_ARROW_UP,
+ 212,
+ 120,
+ 152,
+ 2,
+ 110,
+ 110,
+ &sBagMenuDisplay->contextMenuSelectedItem
+ );
+}
+
+static void BagDestroyPocketScrollArrowPair(void)
+{
+ if (sBagMenuDisplay->pocketScrollArrowsTask != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(sBagMenuDisplay->pocketScrollArrowsTask);
+ sBagMenuDisplay->pocketScrollArrowsTask = 0xFF;
+ }
+ BagDestroyPocketSwitchArrowPair();
+}
+
+static void BagDestroyPocketSwitchArrowPair(void)
+{
+ if (sBagMenuDisplay->pocketSwitchArrowsTask != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(sBagMenuDisplay->pocketSwitchArrowsTask);
+ sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF;
+ }
+}
+
+void ResetBagCursorPositions(void)
+{
+ u8 i;
+ gBagMenuState.pocket = POCKET_ITEMS - 1;
+ gBagMenuState.bagOpen = FALSE;
+ for (i = 0; i < 3; i++)
+ {
+ gBagMenuState.itemsAbove[i] = 0;
+ gBagMenuState.cursorPos[i] = 0;
+ }
+}
+
+void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId)
+{
+ if (gBagMenuState.cursorPos[pocketId] != 0 && gBagMenuState.cursorPos[pocketId] + sBagMenuDisplay->maxShowed[pocketId] > sBagMenuDisplay->nItems[pocketId] + 1)
+ {
+ gBagMenuState.cursorPos[pocketId] = (sBagMenuDisplay->nItems[pocketId] + 1) - sBagMenuDisplay->maxShowed[pocketId];
+ }
+ if (gBagMenuState.cursorPos[pocketId] + gBagMenuState.itemsAbove[pocketId] >= sBagMenuDisplay->nItems[pocketId] + 1)
+ {
+ if (sBagMenuDisplay->nItems[pocketId] + 1 < 2)
+ gBagMenuState.itemsAbove[pocketId] = 0;
+ else
+ gBagMenuState.itemsAbove[pocketId] = sBagMenuDisplay->nItems[pocketId];
+ }
+}
+
+static void CalculateInitialCursorPosAndItemsAbove(void)
+{
+ u8 i;
+ for (i = 0; i < 3; i++)
+ {
+ PocketCalculateInitialCursorPosAndItemsAbove(i);
+ }
+}
+
+static void UpdatePocketScrollPositions(void)
+{
+ u8 i;
+ u8 j;
+
+ for (i = 0; i < 3; i++)
+ {
+ if (gBagMenuState.itemsAbove[i] > 3)
+ {
+ for (j = 0; j <= gBagMenuState.itemsAbove[i] - 3; gBagMenuState.itemsAbove[i]--, gBagMenuState.cursorPos[i]++, j++)
+ {
+ if (gBagMenuState.cursorPos[i] + sBagMenuDisplay->maxShowed[i] == sBagMenuDisplay->nItems[i] + 1)
+ break;
+ }
+ }
+ }
+}
+
+static void DestroyBagMenuResources(void)
+{
+ FREE_IF_SET(sBagMenuDisplay);
+ FREE_IF_SET(sBagBgTilemapBuffer);
+ FREE_IF_SET(sListMenuItems);
+ FREE_IF_SET(sListMenuItemStrings);
+ FreeAllWindowBuffers();
+}
+
+void ItemMenu_StartFadeToExitCallback(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
+ gTasks[taskId].func = Task_ItemMenu_WaitFadeAndSwitchToExitCallback;
+}
+
+static void Task_ItemMenu_WaitFadeAndSwitchToExitCallback(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE)
+ {
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ if (sBagMenuDisplay->exitCB != NULL)
+ SetMainCallback2(sBagMenuDisplay->exitCB);
+ else
+ SetMainCallback2(gBagMenuState.bagCallback);
+ BagDestroyPocketScrollArrowPair();
+ DestroyBagMenuResources();
+ DestroyTask(taskId);
+ }
+}
+
+static void ShowBagOrBeginWin0OpenTask(void)
+{
+ u16 paldata = RGB_BLACK;
+ u8 taskId;
+
+ LoadPalette(&paldata, 0x00, 0x02);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
+ BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ if (gBagMenuState.bagOpen == TRUE)
+ {
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 0));
+ }
+ else
+ {
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
+ taskId = CreateTask(Task_AnimateWin0v, 0);
+ gTasks[taskId].data[0] = 192;
+ gTasks[taskId].data[1] = -16;
+ gBagMenuState.bagOpen = TRUE;
+ }
+}
+
+void Bag_BeginCloseWin0Animation(void)
+{
+
+ u8 taskId = CreateTask(Task_AnimateWin0v, 0);
+ gTasks[taskId].data[0] = -16;
+ gTasks[taskId].data[1] = 16;
+ gBagMenuState.bagOpen = FALSE;
+}
+
+void CB2_SetUpReshowBattleScreenAfterMenu(void)
+{
+ gBagMenuState.bagOpen = FALSE;
+}
+
+static void Task_AnimateWin0v(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[0] += data[1];
+ if (data[0] > 160)
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
+ else
+ SetGpuReg(REG_OFFSET_WIN0V, data[0]);
+ if ((data[1] == 16 && data[0] == 160) || (data[1] == -16 && data[0] == 0))
+ DestroyTask(taskId);
+}
+
+void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_)
+{
+ // dumb assignments needed to match
+ struct ItemSlot *itemSlots = itemSlots_;
+ u32 to = to_;
+
+ if (from != to)
+ {
+ s16 i, count;
+ struct ItemSlot firstSlot = itemSlots[from];
+
+ if (to > from)
+ {
+ to--;
+ for (i = from, count = to; i < count; i++)
+ itemSlots[i] = itemSlots[i + 1];
+ }
+ else
+ {
+ for (i = from, count = to; i > count; i--)
+ itemSlots[i] = itemSlots[i - 1];
+ }
+ itemSlots[to] = firstSlot;
+ }
+}
+
+void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId)
+{
+ u16 i;
+ struct BagPocket * pocket = &gBagPockets[pocketId];
+ BagPocketCompaction(pocket->itemSlots, pocket->capacity);
+ sBagMenuDisplay->nItems[pocketId] = 0;
+ for (i = 0; i < pocket->capacity; i++)
+ {
+ if (pocket->itemSlots[i].itemId == ITEM_NONE)
+ break;
+ sBagMenuDisplay->nItems[pocketId]++;
+ }
+ if (sBagMenuDisplay->nItems[pocketId] + 1 > 6)
+ sBagMenuDisplay->maxShowed[pocketId] = 6;
+ else
+ sBagMenuDisplay->maxShowed[pocketId] = sBagMenuDisplay->nItems[pocketId] + 1;
+}
+
+static void All_CalculateNItemsAndMaxShowed(void)
+{
+ u8 i;
+ for (i = 0; i < 3; i++)
+ Pocket_CalculateNItemsAndMaxShowed(i);
+}
+
+void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc)
+{
+ s16 *data = gTasks[taskId].data;
+ data[10] = OpenBagWindow(5);
+ FillWindowPixelBuffer(data[10], PIXEL_FILL(1));
+ DisplayMessageAndContinueTask(taskId, data[10], 0x06D, 0x0D, fontId, GetTextSpeedSetting(), string, followUpFunc);
+ ScheduleBgCopyTilemapToVram(0);
+}
+
+void ItemMenu_SetExitCallback(MainCallback cb)
+{
+ sBagMenuDisplay->exitCB = cb;
+}
+
+static u8 GetSelectedItemIndex(u8 pocket)
+{
+ return gBagMenuState.cursorPos[pocket] + gBagMenuState.itemsAbove[pocket];
+}
+
+static void Task_BagMenu_HandleInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 cursorPos;
+ u16 itemsAbove;
+ s32 input;
+
+ if (gPaletteFade.active)
+ return;
+ if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE)
+ return;
+ if ((u8)sub_80BF72C() == TRUE)
+ return;
+ switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket))
+ {
+ case 1:
+ SwitchPockets(taskId, -1, FALSE);
+ return;
+ case 2:
+ SwitchPockets(taskId, 1, FALSE);
+ return;
+ default:
+ if (JOY_NEW(SELECT_BUTTON) && gBagMenuState.location == ITEMMENULOCATION_FIELD)
+ {
+ ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
+ if (cursorPos + itemsAbove != sBagMenuDisplay->nItems[gBagMenuState.pocket])
+ {
+ PlaySE(SE_SELECT);
+ BeginMovingItemInPocket(taskId, cursorPos + itemsAbove);
+ return;
+ }
+ }
+ break;
+ }
+ input = ListMenu_ProcessInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ switch (input)
+ {
+ case LIST_NOTHING_CHOSEN:
+ return;
+ case LIST_CANCEL:
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = ITEM_NONE;
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ if (input == sBagMenuDisplay->nItems[gBagMenuState.pocket])
+ {
+ gSpecialVar_ItemId = ITEM_NONE;
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
+ }
+ else
+ {
+ BagDestroyPocketScrollArrowPair();
+ bag_menu_print_cursor_(data[0], 2);
+ data[1] = input;
+ data[2] = BagGetQuantityByPocketPosition(gBagMenuState.pocket + 1, input);
+ gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, input);
+ gTasks[taskId].func = Task_ItemContextMenuByLocation;
+ }
+ break;
+ }
+}
+
+static void Task_ItemContextMenuByLocation(u8 taskId)
+{
+ Bag_FillMessageBoxWithPalette(1);
+ sItemContextTaskFuncs[gBagMenuState.location](taskId);
+}
+
+static void Task_RedrawArrowsAndReturnToBagMenuSelect(u8 taskId)
+{
+ Bag_FillMessageBoxWithPalette(0);
+ CreatePocketScrollArrowPair();
+ CreatePocketSwitchArrowPair();
+ gTasks[taskId].func = Task_BagMenu_HandleInput;
+}
+
+static void Bag_FillMessageBoxWithPalette(u32 a0)
+{
+ SetBgTilemapPalette(1, 0, 14, 30, 6, a0 + 1);
+ ScheduleBgCopyTilemapToVram(1);
+}
+
+static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId)
+{
+ u8 lrState;
+ if (sBagMenuDisplay->pocketSwitchMode != 0)
+ return 0;
+ lrState = GetLRKeysState();
+ if (JOY_NEW(DPAD_LEFT) || lrState == 1)
+ {
+ if (pocketId == POCKET_ITEMS - 1)
+ return 0;
+ PlaySE(SE_BAG2);
+ return 1;
+ }
+ if (JOY_NEW(DPAD_RIGHT) || lrState == 2)
+ {
+ if (pocketId >= POCKET_POKE_BALLS - 1)
+ return 0;
+ PlaySE(SE_BAG2);
+ return 2;
+ }
+ return 0;
+}
+
+static void SwitchPockets(u8 taskId, s16 direction, bool16 a2)
+{
+ s16 *data = gTasks[taskId].data;
+ data[13] = 0;
+ data[12] = 0;
+ data[11] = direction;
+ if (!a2)
+ {
+ ClearWindowTilemap(0);
+ ClearWindowTilemap(1);
+ ClearWindowTilemap(2);
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ ScheduleBgCopyTilemapToVram(0);
+ DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1);
+ BagDestroyPocketScrollArrowPair();
+ }
+ FillBgTilemapBufferRect_Palette0(1, 0x02D, 11, 1, 18, 12);
+ ScheduleBgCopyTilemapToVram(1);
+ sub_8098528(gBagMenuState.pocket + direction);
+ SetTaskFuncWithFollowupFunc(taskId, Task_AnimateSwitchPockets, gTasks[taskId].func);
+}
+
+static void Task_AnimateSwitchPockets(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!MenuHelpers_LinkSomething() && !BagIsTutorial())
+ {
+ switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket + data[11]))
+ {
+ case 1:
+ gBagMenuState.pocket += data[11];
+ SwitchTaskToFollowupFunc(taskId);
+ SwitchPockets(taskId, -1, TRUE);
+ return;
+ case 2:
+ gBagMenuState.pocket += data[11];
+ SwitchTaskToFollowupFunc(taskId);
+ SwitchPockets(taskId, 1, TRUE);
+ return;
+ }
+ }
+ switch (data[13])
+ {
+ case 0:
+ if (data[12] != 0x7FFF)
+ {
+ data[12]++;
+ CopyBagListBgTileRowToTilemapBuffer(data[12]);
+ if (data[12] == 12)
+ data[12] = 0x7FFF;
+ }
+ if (data[12] == 0x7FFF)
+ data[13]++;
+ break;
+ case 1:
+ gBagMenuState.pocket += data[11];
+ PrintBagPocketName();
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ PutWindowTilemap(1);
+ PutWindowTilemap(2);
+ ScheduleBgCopyTilemapToVram(0);
+ CreatePocketScrollArrowPair();
+ CreatePocketSwitchArrowPair();
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ }
+}
+
+static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex)
+{
+ u16 itemsAbove;
+ u16 cursorPos;
+ s16 *data = gTasks[taskId].data;
+ ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
+ ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1);
+ data[1] = itemIndex;
+ sBagMenuDisplay->itemOriginalLocation = itemIndex;
+ StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])));
+ StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced);
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ BagPrintTextOnWindow(1, 2, gStringVar4, 0, 3, 2, 0, 0, 0);
+ ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE);
+ BagDestroyPocketSwitchArrowPair();
+ bag_menu_print_cursor_(data[0], 2);
+ gTasks[taskId].func = Task_MoveItemInPocket_HandleInput;
+}
+
+static void Task_MoveItemInPocket_HandleInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s32 input;
+ u16 itemsAbove;
+ u16 cursorPos;
+ if ((u8)sub_80BF72C() == TRUE)
+ return;
+ input = ListMenu_ProcessInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ if (JOY_NEW(SELECT_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sBagMenuDisplay->itemOriginalLocation = 0xFF;
+ ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
+ ExecuteMoveItemInPocket(taskId, cursorPos + itemsAbove);
+ return;
+ }
+ switch (input)
+ {
+ case LIST_NOTHING_CHOSEN:
+ return;
+ case LIST_CANCEL:
+ PlaySE(SE_SELECT);
+ sBagMenuDisplay->itemOriginalLocation = 0xFF;
+ ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
+ AbortMovingItemInPocket(taskId, cursorPos + itemsAbove);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sBagMenuDisplay->itemOriginalLocation = 0xFF;
+ ExecuteMoveItemInPocket(taskId, input);
+ break;
+ }
+}
+
+static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex)
+{
+ s16 *data = gTasks[taskId].data;
+ if (data[1] == itemIndex || data[1] == itemIndex - 1)
+ {
+ AbortMovingItemInPocket(taskId, itemIndex);
+ }
+ else
+ {
+ MoveItemSlotInList(gBagPockets[gBagMenuState.pocket].itemSlots, data[1], itemIndex);
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ if (data[1] < itemIndex)
+ gBagMenuState.itemsAbove[gBagMenuState.pocket]--;
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
+ CreatePocketSwitchArrowPair();
+ gTasks[taskId].func = Task_BagMenu_HandleInput;
+ }
+}
+
+static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex)
+{
+ s16 *data = gTasks[taskId].data;
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ if (data[1] < itemIndex)
+ gBagMenuState.itemsAbove[gBagMenuState.pocket]--;
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
+ CreatePocketSwitchArrowPair();
+ gTasks[taskId].func = Task_BagMenu_HandleInput;
+}
+
+static void InitQuantityToTossOrDeposit(u16 cursorPos, const u8 *str)
+{
+ u8 r4;
+ u8 r5 = ShowBagWindow(6, 2);
+ CopyItemName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, cursorPos), gStringVar1);
+ StringExpandPlaceholders(gStringVar4, str);
+ BagPrintTextOnWindow(r5, 2, gStringVar4, 0, 2, 1, 0, 0, 1);
+ r4 = ShowBagWindow(0, 0);
+ ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ BagPrintTextOnWindow(r4, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ CreateArrowPair_QuantitySelect();
+}
+
+static void UpdateQuantityToTossOrDeposit(s16 value, u8 ndigits)
+{
+ u8 r6 = GetBagWindow(0);
+ FillWindowPixelBuffer(r6, PIXEL_FILL(1));
+ ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, ndigits);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ BagPrintTextOnWindow(r6, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+}
+
+static void CopyBagListBgTileRowToTilemapBuffer(u8 frame)
+{
+ CopyToBgTilemapBufferRect(1, sBagListBgTiles[12 - frame], 11, 13 - frame, 18, 1);
+ ScheduleBgCopyTilemapToVram(1);
+}
+
+static void OpenContextMenu(u8 taskId)
+{
+ u8 r6;
+ u8 r4;
+ switch (gBagMenuState.location)
+ {
+ case ITEMMENULOCATION_BATTLE:
+ case ITEMMENULOCATION_TTVSCR_STATUS:
+ if (gSpecialVar_ItemId == ITEM_BERRY_POUCH)
+ {
+ sContextMenuItemsBuffer[0] = ITEMMENUACTION_OPEN_BERRIES;
+ sContextMenuItemsBuffer[1] = ITEMMENUACTION_CANCEL;
+ sContextMenuItemsPtr = sContextMenuItemsBuffer;
+ sContextMenuNumItems = 2;
+ }
+ else if (ItemId_GetBattleUsage(gSpecialVar_ItemId))
+ {
+ sContextMenuItemsPtr = sContextMenuItems_BattleUse;
+ sContextMenuNumItems = 2;
+ }
+ else
+ {
+ sContextMenuItemsPtr = sContextMenuItems_Cancel;
+ sContextMenuNumItems = 1;
+ }
+ break;
+ case ITEMMENULOCATION_OLD_MAN:
+ case ITEMMENULOCATION_TTVSCR_CATCHING:
+ sContextMenuItemsPtr = sContextMenuItems_BattleUse;
+ sContextMenuNumItems = 2;
+ break;
+ default:
+ if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE)
+ {
+ if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH)
+ {
+ sContextMenuItemsPtr = sContextMenuItems_Open;
+ sContextMenuNumItems = 2;
+ }
+ else
+ {
+ if (gBagMenuState.pocket == POCKET_KEY_ITEMS - 1)
+ sContextMenuNumItems = 1;
+ else
+ sContextMenuNumItems = 2;
+ sContextMenuItemsPtr = sContextMenuItems_GiveIfNotKeyItemPocket[gBagMenuState.pocket];
+ }
+ }
+ else
+ {
+ switch (gBagMenuState.pocket)
+ {
+ case OPEN_BAG_ITEMS:
+ sContextMenuNumItems = 4;
+ if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
+ sContextMenuItemsPtr = sContextMenuItems_CheckGiveTossCancel;
+ else
+ sContextMenuItemsPtr = sContextMenuItems_Field[gBagMenuState.pocket];
+ break;
+ case OPEN_BAG_KEYITEMS:
+ sContextMenuItemsPtr = sContextMenuItemsBuffer;
+ sContextMenuNumItems = 3;
+ sContextMenuItemsBuffer[2] = ITEMMENUACTION_CANCEL;
+ if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId)
+ sContextMenuItemsBuffer[1] = ITEMMENUACTION_DESELECT;
+ else
+ sContextMenuItemsBuffer[1] = ITEMMENUACTION_REGISTER;
+ if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH)
+ sContextMenuItemsBuffer[0] = ITEMMENUACTION_OPEN;
+ else if (gSpecialVar_ItemId == ITEM_BICYCLE && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE))
+ sContextMenuItemsBuffer[0] = ITEMMENUACTION_WALK;
+ else
+ sContextMenuItemsBuffer[0] = ITEMMENUACTION_USE;
+ break;
+ case OPEN_BAG_POKEBALLS:
+ sContextMenuItemsPtr = sContextMenuItems_Field[gBagMenuState.pocket];
+ sContextMenuNumItems = 3;
+ break;
+ }
+ }
+ }
+ r6 = ShowBagWindow(10, sContextMenuNumItems - 1);
+ AddItemMenuActionTextPrinters(
+ r6,
+ 2,
+ GetMenuCursorDimensionByFont(2, 0),
+ 2,
+ GetFontAttribute(2, FONTATTR_LETTER_SPACING),
+ GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2,
+ sContextMenuNumItems,
+ sItemMenuContextActions,
+ sContextMenuItemsPtr
+ );
+ Menu_InitCursor(r6, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, sContextMenuNumItems, 0);
+ r4 = ShowBagWindow(6, 0);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1);
+ BagPrintTextOnWindow(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1);
+}
+
+static void Task_ItemContext_FieldOrBattle(u8 taskId)
+{
+ OpenContextMenu(taskId);
+ gTasks[taskId].func = Task_FieldItemContextMenuHandleInput;
+}
+
+static void Task_FieldItemContextMenuHandleInput(u8 taskId)
+{
+ s8 input;
+ if ((u8)sub_80BF72C() != TRUE)
+ {
+ input = Menu_ProcessInputNoWrapAround();
+ switch (input)
+ {
+ case -1:
+ PlaySE(SE_SELECT);
+ sItemMenuContextActions[ITEMMENUACTION_CANCEL].func.void_u8(taskId);
+ break;
+ case -2:
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sItemMenuContextActions[sContextMenuItemsPtr[input]].func.void_u8(taskId);
+ break;
+ }
+ }
+}
+
+static void Task_ItemMenuAction_Use(u8 taskId)
+{
+ if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL)
+ {
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1)
+ Task_PrintThereIsNoPokemon(taskId);
+ else
+ ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
+ }
+}
+
+static void Task_ItemMenuAction_Toss(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ ClearWindowTilemap(GetBagWindow(10));
+ ClearWindowTilemap(GetBagWindow(6));
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ data[8] = 1;
+ if (data[2] == 1)
+ {
+ Task_ConfirmTossItems(taskId);
+ }
+ else
+ {
+ InitQuantityToTossOrDeposit(data[1], gText_TossOutHowManyStrVar1s);
+ gTasks[taskId].func = Task_SelectQuantityToToss;
+ }
+}
+
+static void Task_ConfirmTossItems(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_ThrowAwayStrVar2OfThisItemQM);
+ BagPrintTextOnWindow(ShowBagWindow(6, 1), 2, gStringVar4, 0, 2, 1, 0, 0, 1);
+ BagCreateYesNoMenuBottomRight(taskId, &sYesNoMenu_Toss);
+}
+
+static void Task_TossItem_No(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ HideBagWindow(6);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+}
+
+static void Task_SelectQuantityToToss(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
+ {
+ UpdateQuantityToTossOrDeposit(data[8], 3);
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ ClearWindowTilemap(GetBagWindow(6));
+ HideBagWindow(6);
+ HideBagWindow(0);
+ ScheduleBgCopyTilemapToVram(0);
+ BagDestroyPocketScrollArrowPair();
+ Task_ConfirmTossItems(taskId);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ HideBagWindow(6);
+ HideBagWindow(0);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ BagDestroyPocketScrollArrowPair();
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+ }
+}
+
+static void Task_TossItem_Yes(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ HideBagWindow(6);
+ CopyItemName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]), gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_ThrewAwayStrVar2StrVar1s);
+ BagPrintTextOnWindow(ShowBagWindow(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1);
+ gTasks[taskId].func = Task_WaitAB_RedrawAndReturnToBag;
+}
+
+static void Task_WaitAB_RedrawAndReturnToBag(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ RemoveBagItem(gSpecialVar_ItemId, data[8]);
+ HideBagWindow(6);
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ Pocket_CalculateNItemsAndMaxShowed(gBagMenuState.pocket);
+ PocketCalculateInitialCursorPosAndItemsAbove(gBagMenuState.pocket);
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+ }
+}
+
+static void Task_ItemMenuAction_ToggleSelect(u8 taskId)
+{
+ u16 itemId;
+ s16 *data = gTasks[taskId].data;
+ itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]);
+ if (gSaveBlock1Ptr->registeredItem == itemId)
+ gSaveBlock1Ptr->registeredItem = ITEM_NONE;
+ else
+ gSaveBlock1Ptr->registeredItem = itemId;
+
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ CopyWindowToVram(0, 1);
+ Task_ItemMenuAction_Cancel(taskId);
+}
+
+static void Task_ItemMenuAction_Give(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]);
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(0, 1);
+ if (!CanWriteMailHere(itemId))
+ DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
+ else if (!itemid_is_unique(itemId))
+ {
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ Task_PrintThereIsNoPokemon(taskId);
+ }
+ else
+ {
+ sBagMenuDisplay->exitCB = CB2_ChooseMonToGiveItem;
+ gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
+ }
+ }
+ else
+ Task_PrintItemCantBeHeld(taskId);
+}
+
+static void Task_PrintThereIsNoPokemon(u8 taskId)
+{
+ DisplayItemMessageInBag(taskId, 2, gText_ThereIsNoPokemon, Task_WaitAButtonAndCloseContextMenu);
+}
+
+static void Task_PrintItemCantBeHeld(u8 taskId)
+{
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld);
+ DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_WaitAButtonAndCloseContextMenu);
+}
+
+static void Task_WaitAButtonAndCloseContextMenu(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ Task_ReturnToBagFromContextMenu(taskId);
+ }
+}
+
+void Task_ReturnToBagFromContextMenu(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ CloseBagWindow(5);
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ Pocket_CalculateNItemsAndMaxShowed(gBagMenuState.pocket);
+ PocketCalculateInitialCursorPosAndItemsAbove(gBagMenuState.pocket);
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+}
+
+static void unref_sub_810A288(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 itemsAbove;
+ u16 cursorPos;
+ ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
+ PrintItemDescriptionOnMessageWindow(cursorPos + itemsAbove);
+ PutWindowTilemap(0);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+}
+
+static void Task_ItemMenuAction_Cancel(u8 taskId)
+{
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(gTasks[taskId].data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+}
+
+static void Task_ItemMenuAction_BattleUse(u8 taskId)
+{
+ if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL)
+ {
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(0, 1);
+ ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId);
+ }
+}
+
+static void Task_ItemContext_FieldGive(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]);
+ if (!CanWriteMailHere(itemId))
+ {
+ DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
+ }
+ else if (itemId == ITEM_TM_CASE)
+ {
+ ItemMenu_SetExitCallback(GoToTMCase_Give);
+ ItemMenu_StartFadeToExitCallback(taskId);
+ }
+ else if (itemId == ITEM_BERRY_POUCH)
+ {
+ ItemMenu_SetExitCallback(GoToBerryPouch_Give);
+ ItemMenu_StartFadeToExitCallback(taskId);
+ }
+ else if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId))
+ {
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
+ }
+ else
+ {
+ Task_PrintItemCantBeHeld(taskId);
+ }
+}
+
+static void GoToTMCase_Give(void)
+{
+ InitTMCase(TMCASE_FROMPARTYGIVE, ReturnToBagMenuFromSubmenu_Give, FALSE);
+}
+
+static void GoToBerryPouch_Give(void)
+{
+ InitBerryPouch(BERRYPOUCH_FROMPARTYGIVE, ReturnToBagMenuFromSubmenu_Give, FALSE);
+}
+
+static void ReturnToBagMenuFromSubmenu_Give(void)
+{
+ CB2_SelectBagItemToGive();
+}
+
+static void Task_ItemContext_PcBoxGive(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]);
+ if (ItemIsMail(itemId) == TRUE)
+ {
+ DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
+ }
+ else if (itemId == ITEM_TM_CASE)
+ {
+ ItemMenu_SetExitCallback(GoToTMCase_PCBox);
+ ItemMenu_StartFadeToExitCallback(taskId);
+ }
+ else if (itemId == ITEM_BERRY_POUCH)
+ {
+ ItemMenu_SetExitCallback(GoToBerryPouch_PCBox);
+ ItemMenu_StartFadeToExitCallback(taskId);
+ }
+ else if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId))
+ {
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
+ }
+ else
+ {
+ Task_PrintItemCantBeHeld(taskId);
+ }
+}
+
+static void GoToTMCase_PCBox(void)
+{
+ InitTMCase(TMCASE_FROMPOKEMONSTORAGEPC, ReturnToBagMenuFromSubmenu_PCBox, FALSE);
+}
+
+static void GoToBerryPouch_PCBox(void)
+{
+ InitBerryPouch(BERRYPOUCH_FROMPOKEMONSTORAGEPC, ReturnToBagMenuFromSubmenu_PCBox, FALSE);
+}
+
+static void ReturnToBagMenuFromSubmenu_PCBox(void)
+{
+ GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, sub_808CE60);
+}
+
+static void Task_ItemContext_Sell(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (gSpecialVar_ItemId == ITEM_TM_CASE)
+ {
+ ItemMenu_SetExitCallback(GoToTMCase_Sell);
+ ItemMenu_StartFadeToExitCallback(taskId);
+ }
+ else if (gSpecialVar_ItemId == ITEM_BERRY_POUCH)
+ {
+ ItemMenu_SetExitCallback(GoToBerryPouch_Sell);
+ ItemMenu_StartFadeToExitCallback(taskId);
+ }
+ else if (itemid_get_market_price(gSpecialVar_ItemId) == 0)
+ {
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
+ DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_ReturnToBagFromContextMenu);
+ }
+ else
+ {
+ data[8] = 1;
+ if (data[2] == 1)
+ {
+ BagPrintMoneyAmount();
+ Task_PrintSaleConfirmationText(taskId);
+ }
+ else
+ {
+ if (data[2] > 99)
+ data[2] = 99;
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
+ DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitSaleQuantitySelectInterface);
+ }
+ }
+}
+
+static void GoToTMCase_Sell(void)
+{
+ InitTMCase(TMCASE_FROMMARTSELL, ReturnToBagMenuFromSubmenu_Sell, FALSE);
+}
+
+static void GoToBerryPouch_Sell(void)
+{
+ InitBerryPouch(BERRYPOUCH_FROMMARTSELL, ReturnToBagMenuFromSubmenu_Sell, FALSE);
+}
+
+static void ReturnToBagMenuFromSubmenu_Sell(void)
+{
+ GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField);
+}
+
+static void Task_PrintSaleConfirmationText(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
+ DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_ShowSellYesNoMenu);
+}
+
+static void Task_ShowSellYesNoMenu(u8 taskId)
+{
+ BagCreateYesNoMenuTopRight(taskId, &sYesNoMenu_Sell);
+}
+
+static void Task_SellItem_No(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ HideBagWindow(2);
+ CloseBagWindow(5);
+ PutWindowTilemap(2);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+}
+
+static void Task_InitSaleQuantitySelectInterface(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u8 r4 = ShowBagWindow(0, 1);
+ ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ BagPrintTextOnWindow(r4, 0, gStringVar4, 4, 10, 1, 0, 0xFF, 1);
+ UpdateSalePriceDisplay(itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8]);
+ BagPrintMoneyAmount();
+ CreatePocketScrollArrowPair_SellQuantity();
+ gTasks[taskId].func = Task_SelectQuantityToSell;
+}
+
+static void UpdateSalePriceDisplay(s32 amount)
+{
+ PrintMoneyAmount(GetBagWindow(0), 56, 10, amount, 0);
+}
+
+static void Task_SelectQuantityToSell(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
+ {
+ UpdateQuantityToTossOrDeposit(data[8], 2);
+ UpdateSalePriceDisplay(itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8]);
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ HideBagWindow(0);
+ PutWindowTilemap(0);
+ ScheduleBgCopyTilemapToVram(0);
+ BagDestroyPocketScrollArrowPair();
+ Task_PrintSaleConfirmationText(taskId);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ HideBagWindow(0);
+ HideBagWindow(2);
+ CloseBagWindow(5);
+ PutWindowTilemap(2);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ BagDestroyPocketScrollArrowPair();
+ bag_menu_print_cursor_(data[0], 1);
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+ }
+}
+
+static void Task_SellItem_Yes(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ PutWindowTilemap(0);
+ ScheduleBgCopyTilemapToVram(0);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen);
+ DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_FinalizeSaleToShop);
+}
+
+static void Task_FinalizeSaleToShop(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ PlaySE(SE_SHOP);
+ RemoveBagItem(gSpecialVar_ItemId, data[8]);
+ AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
+ RecordItemPurchase(gSpecialVar_ItemId, data[8], 2);
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ Pocket_CalculateNItemsAndMaxShowed(gBagMenuState.pocket);
+ PocketCalculateInitialCursorPosAndItemsAbove(gBagMenuState.pocket);
+ sBagMenuDisplay->inhibitItemDescriptionPrint = TRUE;
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ bag_menu_print_cursor_(data[0], 2);
+ BagDrawTextBoxOnWindow(GetBagWindow(2));
+ PrintMoneyAmountInMoneyBox(GetBagWindow(2), GetMoney(&gSaveBlock1Ptr->money), 0);
+ gTasks[taskId].func = Task_WaitPressAB_AfterSell;
+}
+
+static void Task_WaitPressAB_AfterSell(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ HideBagWindow(2);
+ PutWindowTilemap(2);
+ sBagMenuDisplay->inhibitItemDescriptionPrint = FALSE;
+ Task_ReturnToBagFromContextMenu(taskId);
+ }
+}
+
+static void Task_ItemContext_Deposit(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[8] = 1;
+ if (data[2] == 1)
+ {
+ Task_TryDoItemDeposit(taskId);
+ }
+ else
+ {
+ InitQuantityToTossOrDeposit(data[1], gText_DepositHowManyStrVars1);
+ gTasks[taskId].func = Task_SelectQuantityToDeposit;
+ }
+}
+
+static void Task_SelectQuantityToDeposit(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
+ {
+ UpdateQuantityToTossOrDeposit(data[8], 3);
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ ClearWindowTilemap(GetBagWindow(6));
+ HideBagWindow(6);
+ HideBagWindow(0);
+ ScheduleBgCopyTilemapToVram(0);
+ BagDestroyPocketScrollArrowPair();
+ Task_TryDoItemDeposit(taskId);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ HideBagWindow(6);
+ HideBagWindow(0);
+ PutWindowTilemap(1);
+ ScheduleBgCopyTilemapToVram(0);
+ bag_menu_print_cursor_(data[0], 1);
+ BagDestroyPocketScrollArrowPair();
+ Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
+ }
+}
+
+static void Task_TryDoItemDeposit(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (AddPCItem(gSpecialVar_ItemId, data[8]) == TRUE)
+ {
+ ItemUse_SetQuestLogEvent(28, 0, gSpecialVar_ItemId, 0xFFFF);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_DepositedStrVar2StrVar1s);
+ BagPrintTextOnWindow(ShowBagWindow(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1);
+ gTasks[taskId].func = Task_WaitAB_RedrawAndReturnToBag;
+ }
+ else
+ {
+ DisplayItemMessageInBag(taskId, 2, gText_NoRoomToStoreItems, Task_WaitAButtonAndCloseContextMenu);
+ }
+}
+
+bool8 UseRegisteredKeyItemOnField(void)
+{
+ u8 taskId;
+ if (InUnionRoom() == TRUE)
+ return FALSE;
+ DismissMapNamePopup();
+ ChangeBgY(0, 0, 0);
+ if (gSaveBlock1Ptr->registeredItem != ITEM_NONE)
+ {
+ if (CheckBagHasItem(gSaveBlock1Ptr->registeredItem, 1) == TRUE)
+ {
+ ScriptContext2_Enable();
+ FreezeObjectEvents();
+ sub_805C270();
+ sub_805C780();
+ gSpecialVar_ItemId = gSaveBlock1Ptr->registeredItem;
+ taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1Ptr->registeredItem), 8);
+ gTasks[taskId].data[3] = 1;
+ return TRUE;
+ }
+ gSaveBlock1Ptr->registeredItem = ITEM_NONE;
+ }
+ ScriptContext1_SetupScript(EventScript_BagItemCanBeRegistered);
+ return TRUE;
+}
+
+static bool8 BagIsTutorial(void)
+{
+ if (
+ gBagMenuState.location == ITEMMENULOCATION_OLD_MAN
+ || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_CATCHING
+ || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_STATUS
+ || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_REGISTER
+ || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_TMS
+ )
+ return TRUE;
+ return FALSE;
+}
+
+static void BackUpPlayerBag(void)
+{
+ u32 i;
+ sBackupPlayerBag = AllocZeroed(sizeof(struct BagSlots));
+ memcpy(sBackupPlayerBag->bagPocket_Items, gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot));
+ memcpy(sBackupPlayerBag->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot));
+ memcpy(sBackupPlayerBag->bagPocket_PokeBalls, gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot));
+ sBackupPlayerBag->registeredItem = gSaveBlock1Ptr->registeredItem;
+ sBackupPlayerBag->pocket = gBagMenuState.pocket;
+ for (i = 0; i < 3; i++)
+ {
+ sBackupPlayerBag->itemsAbove[i] = gBagMenuState.itemsAbove[i];
+ sBackupPlayerBag->cursorPos[i] = gBagMenuState.cursorPos[i];
+ }
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT);
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, BAG_KEYITEMS_COUNT);
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT);
+ gSaveBlock1Ptr->registeredItem = ITEM_NONE;
+ ResetBagCursorPositions();
+}
+
+static void RestorePlayerBag(void)
+{
+ u32 i;
+ memcpy(gSaveBlock1Ptr->bagPocket_Items, sBackupPlayerBag->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot));
+ memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sBackupPlayerBag->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot));
+ memcpy(gSaveBlock1Ptr->bagPocket_PokeBalls, sBackupPlayerBag->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot));
+ gSaveBlock1Ptr->registeredItem = sBackupPlayerBag->registeredItem;
+ gBagMenuState.pocket = sBackupPlayerBag->pocket;
+ for (i = 0; i < 3; i++)
+ {
+ gBagMenuState.itemsAbove[i] = sBackupPlayerBag->itemsAbove[i];
+ gBagMenuState.cursorPos[i] = sBackupPlayerBag->cursorPos[i];
+ }
+ Free(sBackupPlayerBag);
+}
+
+void InitOldManBag(void)
+{
+ BackUpPlayerBag();
+ AddBagItem(ITEM_POTION, 1);
+ AddBagItem(ITEM_POKE_BALL, 1);
+ GoToBagMenu(ITEMMENULOCATION_OLD_MAN, OPEN_BAG_ITEMS, SetCB2ToReshowScreenAfterMenu2);
+}
+
+static void Task_Bag_OldManTutorial(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ switch (data[8])
+ {
+ case 102:
+ case 204:
+ PlaySE(SE_BAG2);
+ SwitchPockets(taskId, 1, FALSE);
+ break;
+ case 306:
+ PlaySE(SE_SELECT);
+ bag_menu_print_cursor_(data[0], 2);
+ Bag_FillMessageBoxWithPalette(1);
+ gSpecialVar_ItemId = ITEM_POKE_BALL;
+ OpenContextMenu(taskId);
+ break;
+ case 408:
+ PlaySE(SE_SELECT);
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(0, 1);
+ DestroyListMenuTask(data[0], NULL, NULL);
+ RestorePlayerBag();
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = Task_Pokedude_FadeFromBag;
+ return;
+ }
+ data[8]++;
+ }
+}
+
+static void Task_Pokedude_FadeFromBag(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
+ gTasks[taskId].func = Task_Pokedude_WaitFadeAndExitBag;
+}
+
+static void Task_Pokedude_WaitFadeAndExitBag(u8 taskId)
+{
+ if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE)
+ {
+ if (sBagMenuDisplay->exitCB != NULL)
+ SetMainCallback2(sBagMenuDisplay->exitCB);
+ else
+ SetMainCallback2(gBagMenuState.bagCallback);
+ BagDestroyPocketScrollArrowPair();
+ DestroyBagMenuResources();
+ DestroyTask(taskId);
+ }
+}
+
+void InitPokedudeBag(u8 a0)
+{
+ MainCallback cb2;
+ u8 location;
+ BackUpPlayerBag();
+ AddBagItem(ITEM_POTION, 1);
+ AddBagItem(ITEM_ANTIDOTE, 1);
+ AddBagItem(ITEM_TEACHY_TV, 1);
+ AddBagItem(ITEM_TM_CASE, 1);
+ AddBagItem(ITEM_POKE_BALL, 5);
+ AddBagItem(ITEM_GREAT_BALL, 1);
+ AddBagItem(ITEM_NEST_BALL, 1);
+ switch (a0)
+ {
+ default:
+ cb2 = CB2_ReturnToTeachyTV;
+ location = a0;
+ break;
+ case 7:
+ cb2 = SetCB2ToReshowScreenAfterMenu2;
+ location = ITEMMENULOCATION_TTVSCR_STATUS;
+ break;
+ case 8:
+ cb2 = SetCB2ToReshowScreenAfterMenu2;
+ location = ITEMMENULOCATION_TTVSCR_CATCHING;
+ break;
+ }
+ GoToBagMenu(location, OPEN_BAG_ITEMS, cb2);
+}
+
+static bool8 Task_BButtonInterruptTeachyTv(u8 taskId)
+{
+ if (JOY_NEW(B_BUTTON))
+ {
+ RestorePlayerBag();
+ SetTeachyTvControllerModeToResume();
+ sBagMenuDisplay->exitCB = CB2_ReturnToTeachyTV;
+ gTasks[taskId].func = Task_Pokedude_FadeFromBag;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static void Task_Bag_TeachyTvRegister(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active && Task_BButtonInterruptTeachyTv(taskId) != TRUE)
+ {
+ switch (data[8])
+ {
+ case 102:
+ PlaySE(SE_BAG2);
+ SwitchPockets(taskId, 1, FALSE);
+ break;
+ case 204:
+ PlaySE(SE_SELECT);
+ bag_menu_print_cursor_(data[0], 2);
+ Bag_FillMessageBoxWithPalette(1);
+ gSpecialVar_ItemId = ITEM_TEACHY_TV;
+ OpenContextMenu(taskId);
+ break;
+ case 306:
+ PlaySE(SE_SELECT);
+ Menu_MoveCursorNoWrapAround(1);
+ break;
+ case 408:
+ PlaySE(SE_SELECT);
+ gSaveBlock1Ptr->registeredItem = gSpecialVar_ItemId;
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ Bag_BuildListMenuTemplate(gBagMenuState.pocket);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
+ Bag_FillMessageBoxWithPalette(0);
+ bag_menu_print_cursor_(data[0], 1);
+ CopyWindowToVram(0, 1);
+ break;
+ case 510:
+ case 612:
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_DOWN;
+ ListMenu_ProcessInput(data[0]);
+ break;
+ case 714:
+ PlaySE(SE_SELECT);
+ DestroyListMenuTask(data[0], NULL, NULL);
+ RestorePlayerBag();
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = Task_Pokedude_FadeFromBag;
+ return;
+ }
+ data[8]++;
+ }
+}
+
+static void Task_Bag_TeachyTvCatching(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ if (Task_BButtonInterruptTeachyTv(taskId) == TRUE)
+ {
+ FreeRestoreBattleData();
+ LoadPlayerParty();
+ return;
+ }
+ switch (data[8])
+ {
+ case 102:
+ case 204:
+ PlaySE(SE_BAG2);
+ SwitchPockets(taskId, 1, FALSE);
+ break;
+ case 306:
+ case 408:
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_DOWN;
+ ListMenu_ProcessInput(data[0]);
+ break;
+ case 510:
+ case 612:
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_UP;
+ ListMenu_ProcessInput(data[0]);
+ break;
+ case 714:
+ PlaySE(SE_SELECT);
+ bag_menu_print_cursor_(data[0], 2);
+ Bag_FillMessageBoxWithPalette(1);
+ gSpecialVar_ItemId = ITEM_POKE_BALL;
+ OpenContextMenu(taskId);
+ break;
+ case 816:
+ PlaySE(SE_SELECT);
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(0, 1);
+ DestroyListMenuTask(data[0], NULL, NULL);
+ RestorePlayerBag();
+ Bag_BeginCloseWin0Animation();
+ gTasks[taskId].func = Task_Pokedude_FadeFromBag;
+ return;
+ }
+ data[8]++;
+ }
+}
+
+static void Task_Bag_TeachyTvStatus(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ if (Task_BButtonInterruptTeachyTv(taskId) == TRUE)
+ {
+ FreeRestoreBattleData();
+ LoadPlayerParty();
+ return;
+ }
+ switch (data[8])
+ {
+ case 102:
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_DOWN;
+ ListMenu_ProcessInput(data[0]);
+ break;
+ case 204:
+ PlaySE(SE_SELECT);
+ bag_menu_print_cursor_(data[0], 2);
+ Bag_FillMessageBoxWithPalette(1);
+ gSpecialVar_ItemId = ITEM_ANTIDOTE;
+ OpenContextMenu(taskId);
+ break;
+ case 306:
+ PlaySE(SE_SELECT);
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(0, 1);
+ DestroyListMenuTask(data[0], NULL, NULL);
+ RestorePlayerBag();
+ gItemUseCB = ItemUseCB_MedicineStep;
+ ItemMenu_SetExitCallback(ChooseMonForInBattleItem);
+ gTasks[taskId].func = Task_Pokedude_FadeFromBag;
+ return;
+ }
+ data[8]++;
+ }
+}
+
+static void Task_Bag_TeachyTvTMs(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active && Task_BButtonInterruptTeachyTv(taskId) != TRUE)
+ {
+ switch (data[8])
+ {
+ case 102:
+ PlaySE(SE_BAG2);
+ SwitchPockets(taskId, 1, 0);
+ break;
+ case 204:
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_DOWN;
+ ListMenu_ProcessInput(data[0]);
+ break;
+ case 306:
+ PlaySE(SE_SELECT);
+ bag_menu_print_cursor_(data[0], 2);
+ Bag_FillMessageBoxWithPalette(1);
+ gSpecialVar_ItemId = ITEM_TM_CASE;
+ OpenContextMenu(taskId);
+ break;
+ case 408:
+ PlaySE(SE_SELECT);
+ HideBagWindow(10);
+ HideBagWindow(6);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(0, 1);
+ DestroyListMenuTask(data[0], NULL, NULL);
+ RestorePlayerBag();
+ sBagMenuDisplay->exitCB = Pokedude_InitTMCase;
+ gTasks[taskId].func = Task_Pokedude_FadeFromBag;
+ return;
+ }
+ data[8]++;
+ }
+}
diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c
index 0c2c60437..d389c7781 100644
--- a/src/item_menu_icons.c
+++ b/src/item_menu_icons.c
@@ -5,14 +5,14 @@
#include "malloc.h"
#include "constants/items.h"
-static EWRAM_DATA u8 gUnknown_2039878[12] = {0};
-EWRAM_DATA void * gUnknown_2039884 = NULL;
-static EWRAM_DATA void * gUnknown_2039888 = NULL;
+static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0};
+static EWRAM_DATA void * sItemIconTilesBuffer = NULL;
+static EWRAM_DATA void * sItemIconTilesBufferPadded = NULL;
static void sub_8098560(struct Sprite * sprite);
static void sub_80985BC(struct Sprite * sprite);
-static const struct OamData gUnknown_83D416C = {
+static const struct OamData sOamData_BagOrSatchel = {
.affineMode = ST_OAM_AFFINE_NORMAL,
.shape = ST_OAM_SQUARE,
.size = 3,
@@ -20,36 +20,36 @@ static const struct OamData gUnknown_83D416C = {
.paletteNum = 0
};
-static const union AnimCmd gUnknown_83D4174[] = {
+static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x40, 0),
ANIMCMD_END
};
-static const union AnimCmd gUnknown_83D4180[] = {
+static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x80, 0),
ANIMCMD_END
};
-static const union AnimCmd gUnknown_83D418C[] = {
+static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0xc0, 0),
ANIMCMD_END
};
-static const union AnimCmd *const gUnknown_83D4198[] = {
- gUnknown_83D4180,
- gUnknown_83D418C,
- gUnknown_83D4174
+static const union AnimCmd *const sAnimTable_BagOrSatchel[] = {
+ sAnim_BagOrSatchel_OpenKeyItemPocket,
+ sAnim_BagOrSatchel_OpenPokeBallsPocket,
+ sAnim_BagOrSatchel_OpenItemPocket
};
-static const union AffineAnimCmd gUnknown_83D41A4[] = {
+static const union AffineAnimCmd sAffineAnim_Idle[] = {
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_END
};
-static const union AffineAnimCmd gUnknown_83D41B4[] = {
+static const union AffineAnimCmd sAffineAnim_Wobble[] = {
AFFINEANIMCMD_FRAME(0, 0, -2, 2),
AFFINEANIMCMD_FRAME(0, 0, 2, 4),
AFFINEANIMCMD_FRAME(0, 0, -2, 4),
@@ -57,35 +57,35 @@ static const union AffineAnimCmd gUnknown_83D41B4[] = {
AFFINEANIMCMD_END
};
-static const union AffineAnimCmd *const gUnknown_83D41DC[] = {
- gUnknown_83D41A4,
- gUnknown_83D41B4
+static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = {
+ sAffineAnim_Idle,
+ sAffineAnim_Wobble
};
-const struct CompressedSpriteSheet gUnknown_83D41E4 = {
+const struct CompressedSpriteSheet gSpriteSheet_Backpack = {
gUnknown_8E8362C,
0x2000,
100
};
-const struct CompressedSpriteSheet gUnknown_83D41EC = {
+const struct CompressedSpriteSheet gSpriteSheet_Satchel = {
gUnknown_8E83DBC,
0x2000,
100
};
-const struct CompressedSpritePalette gUnknown_83D41F4 = {
+const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = {
gUnknown_8E84560,
100
};
-static const struct SpriteTemplate gUnknown_83D41FC = {
+static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = {
100,
100,
- &gUnknown_83D416C,
- gUnknown_83D4198,
+ &sOamData_BagOrSatchel,
+ sAnimTable_BagOrSatchel,
NULL,
- gUnknown_83D41DC,
+ sAffineAnimTable_BagOrSatchel,
SpriteCallbackDummy
};
@@ -139,7 +139,7 @@ static const struct SpriteTemplate gUnknown_83D4250 = {
SpriteCallbackDummy
};
-static const struct OamData gUnknown_83D4268 = {
+static const struct OamData sOamData_ItemIcon = {
.affineMode = ST_OAM_AFFINE_OFF,
.shape = ST_OAM_SQUARE,
.size = 2,
@@ -147,26 +147,26 @@ static const struct OamData gUnknown_83D4268 = {
.paletteNum = 2
};
-static const union AnimCmd gUnknown_83D4270[] = {
+static const union AnimCmd sAnim_ItemIcon_0[] = {
ANIMCMD_FRAME(0, 0),
ANIMCMD_END
};
-static const union AnimCmd *const gUnknown_83D4278[] = {
- gUnknown_83D4270
+static const union AnimCmd *const sAnimTable_ItemIcon[] = {
+ sAnim_ItemIcon_0
};
-static const struct SpriteTemplate gUnknown_83D427C = {
+static const struct SpriteTemplate sSpriteTemplate_ItemIcon = {
102,
102,
- &gUnknown_83D4268,
- gUnknown_83D4278,
+ &sOamData_ItemIcon,
+ sAnimTable_ItemIcon,
NULL,
gDummySpriteAffineAnimTable,
SpriteCallbackDummy
};
-static const void *const gUnknown_83D4294[][2] = {
+static const void *const sItemIconGfxPtrs[][2] = {
{gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
{gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette},
{gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette},
@@ -549,19 +549,19 @@ void ResetItemMenuIconState(void)
{
u16 i;
- for (i = 0; i < NELEMS(gUnknown_2039878); i++)
- gUnknown_2039878[i] = 0xFF;
+ for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++)
+ sItemMenuIconSpriteIds[i] = 0xFF;
}
-void sub_80984FC(u8 animNum)
+void CreateBagOrSatchelSprite(u8 animNum)
{
- gUnknown_2039878[0] = CreateSprite(&gUnknown_83D41FC, 40, 68, 0);
+ sItemMenuIconSpriteIds[0] = CreateSprite(&sSpriteTemplate_BagOrSatchel, 40, 68, 0);
sub_8098528(animNum);
}
void sub_8098528(u8 animNum)
{
- struct Sprite * sprite = &gSprites[gUnknown_2039878[0]];
+ struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
sprite->pos2.y = -5;
sprite->callback = sub_8098560;
StartSpriteAnim(sprite, animNum);
@@ -577,7 +577,7 @@ static void sub_8098560(struct Sprite * sprite)
void sub_8098580(void)
{
- struct Sprite * sprite = &gSprites[gUnknown_2039878[0]];
+ struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
if (sprite->affineAnimEnded)
{
StartSpriteAffineAnim(sprite, 1);
@@ -594,40 +594,44 @@ static void sub_80985BC(struct Sprite * sprite)
}
}
-void sub_80985E4(void)
+void ItemMenuIcons_CreateInsertIndicatorBarHidden(void)
{
u8 i;
- u8 * ptr = &gUnknown_2039878[1];
+ u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0);
- if (i != 0)
+ switch (i)
{
- if (i == 8)
- StartSpriteAnim(&gSprites[ptr[i]], 2);
- else
- StartSpriteAnim(&gSprites[ptr[i]], 1);
+ case 0:
+ break;
+ case 8:
+ StartSpriteAnim(&gSprites[ptr[i]], 2);
+ break;
+ default:
+ StartSpriteAnim(&gSprites[ptr[i]], 1);
+ break;
}
gSprites[ptr[i]].invisible = TRUE;
}
}
-void sub_8098660(u8 flag)
+void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible)
{
u8 i;
- u8 * ptr = &gUnknown_2039878[1];
+ u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
- gSprites[ptr[i]].invisible = flag;
+ gSprites[ptr[i]].invisible = invisible;
}
}
-void sub_80986A8(s16 x, u16 y)
+void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y)
{
u8 i;
- u8 * ptr = &gUnknown_2039878[1];
+ u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
@@ -636,15 +640,15 @@ void sub_80986A8(s16 x, u16 y)
}
}
-static bool8 sub_80986EC(void)
+static bool8 TryAllocItemIconTilesBuffers(void)
{
void ** ptr1, ** ptr2;
- ptr1 = &gUnknown_2039884;
+ ptr1 = &sItemIconTilesBuffer;
*ptr1 = Alloc(0x120);
if (*ptr1 == NULL)
return FALSE;
- ptr2 = &gUnknown_2039888;
+ ptr2 = &sItemIconTilesBufferPadded;
*ptr2 = AllocZeroed(0x200);
if (*ptr2 == NULL)
{
@@ -671,27 +675,27 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
struct CompressedSpritePalette spritePalette;
u8 spriteId;
- if (!sub_80986EC())
+ if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
- LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884);
- CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888);
- spriteSheet.data = gUnknown_2039888;
+ LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
+ CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
+ spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
- spritePalette.data = sub_8098974(itemId, 1);
+ spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
- CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate));
+ CpuCopy16(&sSpriteTemplate_ItemIcon, &template, sizeof(struct SpriteTemplate));
template.tileTag = tilesTag;
template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0);
- Free(gUnknown_2039884);
- Free(gUnknown_2039888);
+ Free(sItemIconTilesBuffer);
+ Free(sItemIconTilesBufferPadded);
return spriteId;
}
@@ -702,17 +706,17 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
struct CompressedSpritePalette spritePalette;
u8 spriteId;
- if (!sub_80986EC())
+ if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
- LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884);
- CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888);
- spriteSheet.data = gUnknown_2039888;
+ LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
+ CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
+ spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
- spritePalette.data = sub_8098974(itemId, 1);
+ spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
@@ -721,14 +725,14 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0);
- Free(gUnknown_2039884);
- Free(gUnknown_2039888);
+ Free(sItemIconTilesBuffer);
+ Free(sItemIconTilesBufferPadded);
return spriteId;
}
void CreateItemMenuIcon(u16 itemId, u8 idx)
{
- u8 * ptr = &gUnknown_2039878[10];
+ u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId;
if (ptr[idx] == 0xFF)
@@ -747,7 +751,7 @@ void CreateItemMenuIcon(u16 itemId, u8 idx)
void DestroyItemMenuIcon(u8 idx)
{
- u8 * ptr = &gUnknown_2039878[10];
+ u8 * ptr = &sItemMenuIconSpriteIds[10];
if (ptr[idx] != 0xFF)
{
@@ -756,16 +760,16 @@ void DestroyItemMenuIcon(u8 idx)
}
}
-const void * sub_8098974(u16 itemId, u8 attrId)
+const void * GetItemIconGfxPtr(u16 itemId, u8 attrId)
{
if (itemId > ITEM_N_A)
itemId = ITEM_NONE;
- return gUnknown_83D4294[itemId][attrId];
+ return sItemIconGfxPtrs[itemId][attrId];
}
void sub_80989A0(u16 itemId, u8 idx)
{
- u8 * ptr = &gUnknown_2039878[10];
+ u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId;
if (ptr[idx] == 0xFF)
diff --git a/src/item_pc.c b/src/item_pc.c
index 217acc829..7c7abdce3 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -348,7 +348,7 @@ static bool8 ItemPc_DoGfxSetup(void)
gMain.state++;
break;
case 14:
- sub_80985E4();
+ ItemMenuIcons_CreateInsertIndicatorBarHidden();
gMain.state++;
break;
case 15:
@@ -780,8 +780,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced);
FillWindowPixelBuffer(1, 0x00);
ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0);
- sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
- sub_8098660(0);
+ ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE);
ItemPc_PrintOrRemoveCursor(data[0], 2);
gTasks[taskId].func = Task_ItemPcMoveItemModeRun;
}
@@ -792,7 +792,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId)
ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
- sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
{
PlaySE(SE_SELECT);
@@ -814,13 +814,13 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
ItemPc_MoveItemModeCancel(taskId, pos);
else
{
- ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
+ MoveItemSlotInList(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
- sub_8098660(1);
+ ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain;
}
}
@@ -834,7 +834,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
- sub_8098660(1);
+ ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain;
}
diff --git a/src/item_use.c b/src/item_use.c
index d5db22ca1..57771754a 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -154,7 +154,7 @@ static void sub_80A0FBC(u8 taskId)
{
ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]);
if (itemType == 1)
- sub_8108CB4();
+ Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
}
@@ -188,7 +188,7 @@ static void sub_80A10C4(u8 taskId, bool8 a1, u8 a2, const u8 * str)
{
StringExpandPlaceholders(gStringVar4, str);
if (a1 == FALSE)
- DisplayItemMessageInBag(taskId, a2, gStringVar4, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, a2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C);
}
@@ -345,7 +345,7 @@ void FieldUseFunc_CoinCase(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416537);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
- DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
}
@@ -356,7 +356,7 @@ void FieldUseFunc_PowderJar(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416644);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
- DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
}
@@ -384,7 +384,7 @@ void FieldUseFunc_PokeFlute(u8 taskId)
{
// Now that's a catchy tune!
if (gTasks[taskId].data[3] == 0)
- DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C);
}
@@ -401,7 +401,7 @@ static void sub_80A1674(u8 taskId)
if (WaitFanfare(FALSE))
{
if (gTasks[taskId].data[3] == 0)
- DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C);
}
@@ -458,7 +458,7 @@ void FieldUseFunc_TmCase(u8 taskId)
else
{
StopPokemonLeagueLightingEffectTask();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_InitTMCaseFromField;
}
}
@@ -489,7 +489,7 @@ void FieldUseFunc_BerryPouch(u8 taskId)
else
{
StopPokemonLeagueLightingEffectTask();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_InitBerryPouchFromField;
}
}
@@ -518,7 +518,7 @@ void BattleUseFunc_BerryPouch(u8 taskId)
static void InitBerryPouchFromBattle(void)
{
- InitBerryPouch(BERRYPOUCH_FROMBATTLE, sub_8107ECC, 0);
+ InitBerryPouch(BERRYPOUCH_FROMBATTLE, CB2_BagMenuFromBattle, 0);
}
void FieldUseFunc_TeachyTv(u8 taskId)
@@ -532,7 +532,7 @@ void FieldUseFunc_TeachyTv(u8 taskId)
else
{
StopPokemonLeagueLightingEffectTask();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_InitTeachyTvFromField;
}
}
@@ -562,7 +562,7 @@ void FieldUseFunc_SuperRepel(u8 taskId)
}
else
// An earlier repel is still in effect
- DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, Task_ReturnToBagFromContextMenu);
}
static void sub_80A19E8(u8 taskId)
@@ -572,15 +572,15 @@ static void sub_80A19E8(u8 taskId)
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
sub_80A1A44();
- DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
}
}
static void sub_80A1A44(void)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
- sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId));
- sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId));
+ Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId));
+ PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId));
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_841658C);
}
@@ -613,7 +613,7 @@ static void sub_80A1B48(u8 taskId)
if (++gTasks[taskId].data[8] > 7)
{
PlaySE(SE_BIDORO);
- DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
}
}
@@ -662,7 +662,7 @@ void FieldUseFunc_TownMap(u8 taskId)
else
{
StopPokemonLeagueLightingEffectTask();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = sub_80A1CC0;
}
}
@@ -694,7 +694,7 @@ void FieldUseFunc_FameChecker(u8 taskId)
else
{
StopPokemonLeagueLightingEffectTask();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = sub_80A1D68;
}
}
@@ -745,18 +745,18 @@ void BattleUseFunc_PokeBallEtc(u8 taskId)
if (!IsPlayerPartyAndPokemonStorageFull())
{
RemoveBagItem(gSpecialVar_ItemId, 1);
- sub_8108CB4();
+ Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
else
{
- DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, Task_ReturnToBagFromContextMenu);
}
}
void BattleUseFunc_PokeFlute(u8 taskId)
{
- sub_8108CB4();
+ Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
@@ -764,7 +764,7 @@ void BattleUseFunc_GuardSpec(u8 taskId)
{
if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0))
{
- DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, sub_810A1F8);
+ DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, Task_ReturnToBagFromContextMenu);
}
else
{
@@ -790,7 +790,7 @@ static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId)
{
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
- sub_8108CB4();
+ Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
}
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index 41fe72e20..17f604ee8 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -1917,7 +1917,7 @@ void ClearAndInitHostRFUtgtGname(void)
InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, 0, 0, 0);
}
-void sub_80FAF58(u8 a0, u32 a1, u32 a2)
+void SetHostRFUtgtGname(u8 a0, u32 a1, u32 a2)
{
InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, a0, a2, a1);
}
@@ -1944,7 +1944,7 @@ void sub_80FAFE0(u8 a0)
void sub_80FB008(u8 a0, u32 a1, u32 a2)
{
if (a0)
- sub_80FAF58(a0, a1, a2);
+ SetHostRFUtgtGname(a0, a1, a2);
rfu_REQ_configGameData(0, 2, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer);
}
diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c
index 87197f57f..31ea0830b 100644
--- a/src/link_rfu_3.c
+++ b/src/link_rfu_3.c
@@ -603,7 +603,7 @@ static u8 GetConnectedChildStrength(u8 maxFlags)
}
#endif
-void InitHostRFUtgtGname(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3)
+void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 r2, s32 r3)
{
s32 i;
@@ -617,7 +617,7 @@ void InitHostRFUtgtGname(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3)
r3 >>= 8;
}
data->playerGender = gSaveBlock2Ptr->playerGender;
- data->unk_0a_0 = r9;
+ data->unk_0a_0 = activity;
data->unk_0a_7 = r2;
data->unk_00.unk_00_0 = GAME_LANGUAGE;
data->unk_00.unk_01_2 = GAME_VERSION;
@@ -681,7 +681,7 @@ bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx)
return retVal;
}
-void sub_80FCD50(struct GFtgtGname *gname, u8 *uname)
+void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *gname, u8 *uname)
{
memcpy(gname, &gHostRFUtgtGnameBuffer, RFU_GAME_NAME_LENGTH);
memcpy(uname, gHostRFUtgtUnameBuffer, RFU_USER_NAME_LENGTH);
@@ -929,7 +929,7 @@ void RecordMixTrainerNames(void)
}
}
-bool32 sub_80FD338(u16 id, u8 *name)
+bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name)
{
s32 i;
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 905e3c1ea..dedd7aa9e 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -107,7 +107,7 @@ bool8 itemid_link_can_give_berry(u16 itemId)
return FALSE;
}
-bool8 itemid_80BF6D8_mail_related(u16 itemId)
+bool8 CanWriteMailHere(u16 itemId)
{
if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE)
return TRUE;
@@ -242,7 +242,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return FALSE;
}
-u8 sub_80BF8E4(void)
+u8 GetDialogBoxFontId(void)
{
if (!ContextNpcGetTextColor())
return 4;
diff --git a/src/mevent.c b/src/mevent.c
index b22d02cbc..afad326b5 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -652,7 +652,7 @@ void BlankMEventBuffer2(void)
gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.crc = 0;
}
-u16 sub_81440E8(void)
+u16 GetWonderCardFlagId(void)
{
if (ValidateReceivedWonderCard())
return gSaveBlock1Ptr->mysteryEventBuffers.mecard.data.unk_00;
@@ -674,7 +674,7 @@ bool32 sub_8144124(u16 a0)
bool32 CheckReceivedGiftFromWonderCard(void)
{
- u16 value = sub_81440E8();
+ u16 value = GetWonderCardFlagId();
if (!sub_8144124(value))
return FALSE;
if (FlagGet(gUnknown_8466F00[value - 1000]) == TRUE)
diff --git a/src/new_game.c b/src/new_game.c
index 471c49e67..381ba28c8 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -98,7 +98,7 @@ void ResetMenuAndMonGlobals(void)
gDifferentSaveFile = FALSE;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
- sub_81089BC();
+ ResetBagCursorPositions();
ResetTMCaseCursorPos();
BerryPouch_CursorResetToTop();
ResetQuestLog();
diff --git a/src/party_menu.c b/src/party_menu.c
index d12a17e6c..df0e70b37 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -3451,7 +3451,7 @@ static void CursorCB_Give(u8 taskId)
void CB2_SelectBagItemToGive(void)
{
- GoToBagMenu(1, 3, CB2_GiveHoldItem);
+ GoToBagMenu(ITEMMENULOCATION_PARTY, OPEN_BAG_LAST, CB2_GiveHoldItem);
}
void CB2_GiveHoldItem(void)
@@ -4283,12 +4283,12 @@ void CB2_ShowPartyMenuForItemUse(void)
static void CB2_ReturnToBagMenu(void)
{
- GoToBagMenu(11, 3, NULL);
+ GoToBagMenu(ITEMMENULOCATION_LAST, OPEN_BAG_LAST, NULL);
}
static void CB2_ReturnToTMCaseMenu(void)
{
- InitTMCase(5, NULL, 0xFF);
+ InitTMCase(TMCASE_NA, NULL, 0xFF);
}
static void CB2_ReturnToBerryPouchMenu(void)
@@ -5818,7 +5818,7 @@ static void Task_ContinueChoosingHalfParty(u8 taskId)
}
}
-void sub_81277F4(u8 menuType, MainCallback callback)
+void ChooseMonForTradingBoard(u8 menuType, MainCallback callback)
{
InitPartyMenu(menuType,
PARTY_LAYOUT_SINGLE,
@@ -5904,7 +5904,7 @@ void OpenPartyMenuInBattle(void)
void ChooseMonForInBattleItem(void)
{
- InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, sub_8107ECC);
+ InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, CB2_BagMenuFromBattle);
nullsub_44();
UpdatePartyToBattleOrder();
}
@@ -5919,7 +5919,7 @@ void sub_81279E0(void)
FALSE,
PARTY_MSG_NONE,
sub_8120C3C,
- sub_8107ECC);
+ CB2_BagMenuFromBattle);
sub_80EB2F4(8);
}
else
@@ -5929,7 +5929,7 @@ void sub_81279E0(void)
if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH)
callback = CB2_ReturnToBerryPouchMenu;
else
- callback = sub_8107ECC;
+ callback = CB2_BagMenuFromBattle;
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE,
GetPartyLayoutFromBattleType(),
PARTY_ACTION_USE_ITEM,
diff --git a/src/player_pc.c b/src/player_pc.c
index 00d41abe6..928676844 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -322,7 +322,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
- GoToBagMenu(3, POCKET_ITEMS - 1, CB2_ReturnToField);
+ GoToBagMenu(ITEMMENULOCATION_ITEMPC, OPEN_BAG_ITEMS, CB2_ReturnToField);
gFieldCallback = CB2_ReturnFromDepositMenu;
DestroyTask(taskId);
}
@@ -331,7 +331,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
static void Task_PlayerPcDepositItem(u8 taskId)
{
gTasks[taskId].func = Task_DepositItem_WaitFadeAndGoToBag;
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
static void Task_ReturnToItemStorageSubmenu(u8 taskId)
@@ -394,7 +394,7 @@ static void Task_WithdrawItemBeginFade(u8 taskId)
{
gTasks[taskId].func = Task_WithdrawItem_WaitFadeAndGoToItemStorage;
ItemPc_SetInitializedFlag(0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
static void Task_PlayerPcCancel(u8 taskId)
@@ -556,7 +556,7 @@ static void Task_MailSubmenuHandleInput(u8 taskId)
static void Task_PlayerPcReadMail(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_WaitFadeAndReadSelectedMail;
}
@@ -663,7 +663,7 @@ static void Task_PlayerPcGiveMailToMon(u8 taskId)
}
else
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_WaitFadeAndGoToPartyMenu;
}
}
diff --git a/src/pokemon.c b/src/pokemon.c
index 1270a25ed..d1305861a 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1547,7 +1547,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
.paletteTag = 0,
.oam = &gOamData_824F018,
.anims = NULL,
- .images = gTrainerBackPicTable_PokeDude,
+ .images = gTrainerBackPicTable_Pokedude,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
},
@@ -3982,49 +3982,49 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
retVal = FALSE;
}
if ((itemEffect[cmdIndex] & 0xF)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_ATK] < 12)
{
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] += itemEffect[cmdIndex] & 0xF;
- if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] > 12)
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] = 12;
+ gBattleMons[gActiveBattler].statStages[STAT_ATK] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_ATK] = 12;
retVal = FALSE;
}
break;
// in-battle stat boosting effects?
case 1:
if ((itemEffect[cmdIndex] & 0xF0)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_DEF] < 12)
{
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] += (itemEffect[cmdIndex] & 0xF0) >> 4;
- if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] > 12)
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] = 12;
+ gBattleMons[gActiveBattler].statStages[STAT_DEF] += (itemEffect[cmdIndex] & 0xF0) >> 4;
+ if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_DEF] = 12;
retVal = FALSE;
}
if ((itemEffect[cmdIndex] & 0xF)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < 12)
{
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] += itemEffect[cmdIndex] & 0xF;
- if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] > 12)
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] = 12;
+ gBattleMons[gActiveBattler].statStages[STAT_SPEED] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_SPEED] = 12;
retVal = FALSE;
}
break;
// more stat boosting effects?
case 2:
if ((itemEffect[cmdIndex] & 0xF0)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_ACC] < 12)
{
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] += (itemEffect[cmdIndex] & 0xF0) >> 4;
- if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] > 12)
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] = 12;
+ gBattleMons[gActiveBattler].statStages[STAT_ACC] += (itemEffect[cmdIndex] & 0xF0) >> 4;
+ if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_ACC] = 12;
retVal = FALSE;
}
if ((itemEffect[cmdIndex] & 0xF)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < 12)
{
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] += itemEffect[cmdIndex] & 0xF;
- if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] > 12)
- gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] = 12;
+ gBattleMons[gActiveBattler].statStages[STAT_SPATK] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_SPATK] = 12;
retVal = FALSE;
}
break;
@@ -4496,25 +4496,25 @@ bool8 PokemonItemUseNoEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mo
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_FOCUS_ENERGY))
retVal = FALSE;
if ((itemEffect[cmdIndex] & 0xF)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_ATK] < 12)
retVal = FALSE;
break;
// in-battle stat boosting effects?
case 1:
if ((itemEffect[cmdIndex] & 0xF0)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_DEF] < 12)
retVal = FALSE;
if ((itemEffect[cmdIndex] & 0xF)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < 12)
retVal = FALSE;
break;
// more stat boosting effects?
case 2:
if ((itemEffect[cmdIndex] & 0xF0)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_ACC] < 12)
retVal = FALSE;
if ((itemEffect[cmdIndex] & 0xF)
- && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] < 12)
+ && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < 12)
retVal = FALSE;
break;
case 3:
diff --git a/src/quest_log.c b/src/quest_log.c
index 38b3733ea..0cda4eb77 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -1049,7 +1049,7 @@ static void sub_811175C(u8 sceneNum, struct UnkStruct_203AE98 * a1)
static void sub_81118F4(s8 a0)
{
- fade_screen(1, a0);
+ FadeScreen(1, a0);
sQuestLogCB = QuestLog_AdvancePlayhead;
}
@@ -1309,7 +1309,7 @@ static void QuestLog_CloseTextWindow(void)
static void QuestLog_SkipToEndOfPlayback(s8 a0)
{
- fade_screen(1, a0);
+ FadeScreen(1, a0);
sQuestLogCB = QuestLog_WaitFadeAndCancelPlayback;
}
diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c
new file mode 100644
index 000000000..20b29de9b
--- /dev/null
+++ b/src/rfu_union_tool.c
@@ -0,0 +1,663 @@
+#include "global.h"
+#include "event_data.h"
+#include "event_object_movement.h"
+#include "event_object_80688E4.h"
+#include "event_object_8097404.h"
+#include "field_player_avatar.h"
+#include "fieldmap.h"
+#include "rfu_union_tool.h"
+#include "script.h"
+#include "task.h"
+#include "constants/flags.h"
+#include "constants/event_object_movement.h"
+#include "constants/object_events.h"
+
+static EWRAM_DATA struct UnionObj * UnionObjWork = NULL;
+static EWRAM_DATA u32 sUnionObjRefreshTimer = 0;
+
+static u8 StartUnionObjAnimTask(void);
+static u32 sub_811BBC8(u32 playerIdx, u32 arg1);
+static void sub_811C008(s32 arg0, s32 arg1, u8 arg2);
+
+static const u8 sUnionObjectEventGfxIds[][10] = {
+ [MALE] = {
+ OBJECT_EVENT_GFX_COOLTRAINER_M,
+ OBJECT_EVENT_GFX_BLACKBELT,
+ OBJECT_EVENT_GFX_CAMPER,
+ OBJECT_EVENT_GFX_YOUNGSTER,
+ OBJECT_EVENT_GFX_BOY,
+ OBJECT_EVENT_GFX_BUG_CATCHER,
+ OBJECT_EVENT_GFX_MAN,
+ OBJECT_EVENT_GFX_ROCKER
+ },
+ [FEMALE] = {
+ OBJECT_EVENT_GFX_COOLTRAINER_F,
+ OBJECT_EVENT_GFX_CHANNELER,
+ OBJECT_EVENT_GFX_PICNICKER,
+ OBJECT_EVENT_GFX_LASS,
+ OBJECT_EVENT_GFX_WOMAN_1,
+ OBJECT_EVENT_GFX_BATTLE_GIRL,
+ OBJECT_EVENT_GFX_WOMAN_2,
+ OBJECT_EVENT_GFX_BEAUTY
+ }
+};
+
+static const s16 sUnionPartnerCoords[][2] = {
+ { 4, 6},
+ {13, 8},
+ {10, 6},
+ { 1, 8},
+ {13, 4},
+ { 7, 4},
+ { 1, 4},
+ { 7, 8}
+};
+
+static const s8 sFacingDirectionOffsets[][2] = {
+ [DIR_NONE] = { 0, 0},
+ [DIR_SOUTH] = { 1, 0},
+ [DIR_NORTH] = { 0, -1},
+ [DIR_WEST] = {-1, 0},
+ [DIR_EAST] = { 0, 1}
+};
+
+static const u8 sOppositeFacingDirection[] = {
+ [DIR_NONE] = DIR_NONE,
+ [DIR_SOUTH] = DIR_NORTH,
+ [DIR_NORTH] = DIR_SOUTH,
+ [DIR_WEST] = DIR_EAST,
+ [DIR_EAST] = DIR_WEST
+};
+
+static const u8 gUnknown_845711B[] = {
+ 1,
+ 3,
+ 1,
+ 4,
+ 2
+};
+
+static const u8 sUnionRoomLocalIds[] = {
+ 9,
+ 8,
+ 7,
+ 2,
+ 6,
+ 5,
+ 4,
+ 3
+};
+
+static const u16 sUnref_8457128[] = {
+ 0x63,
+ 0x64,
+ 0x65,
+ 0x66,
+ 0x67,
+ 0x68,
+ 0x69,
+ 0x6A
+};
+
+static bool32 is_walking_or_running(void)
+{
+ if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static u8 GetUnionRoomPlayerGraphicsId(u32 gender, u32 id)
+{
+ return sUnionObjectEventGfxIds[gender][id % 8];
+}
+
+static void GetUnionRoomPlayerFacingCoords(u32 id, u32 dirn, s32 * xp, s32 * yp)
+{
+ *xp = sUnionPartnerCoords[id][0] + sFacingDirectionOffsets[dirn][0] + 7;
+ *yp = sUnionPartnerCoords[id][1] + sFacingDirectionOffsets[dirn][1] + 7;
+}
+
+static bool32 sub_811B58C(u32 id, u32 dirn, s32 x, s32 y)
+{
+ if (sUnionPartnerCoords[id][0] + sFacingDirectionOffsets[dirn][0] + 7 != x)
+ {
+ return FALSE;
+ }
+ else if (sUnionPartnerCoords[id][1] + sFacingDirectionOffsets[dirn][1] + 7 != y)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+static bool32 IsUnionRoomPlayerHidden(u32 player_idx)
+{
+ return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx);
+}
+
+static void HideUnionRoomPlayer(u32 player_idx)
+{
+ FlagSet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx);
+}
+
+static void ShowUnionRoomPlayer(u32 player_idx)
+{
+ FlagClear(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx);
+}
+
+static void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId)
+{
+ VarSet(VAR_OBJ_GFX_ID_0 + playerIdx, gfxId);
+}
+
+static void CreateUnionRoomPlayerObjectEvent(u32 playerIdx)
+{
+ TrySpawnObjectEvent(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+}
+
+static void RemoveUnionRoomPlayerObjectEvent(u32 playerIdx)
+{
+ RemoveObjectEventByLocalIdAndMap(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+}
+
+static bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement)
+{
+ u8 objectId;
+ struct ObjectEvent * object;
+ if (TryGetObjectEventIdByLocalIdAndMap(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId))
+ {
+ return FALSE;
+ }
+ object = &gObjectEvents[objectId];
+ if (ObjectEventIsMovementOverridden(object))
+ {
+ return FALSE;
+ }
+ if (ObjectEventSetHeldMovement(object, *movement))
+ {
+ AGB_ASSERT_EX(0, ABSPATH("rfu_union_tool.c"), 387);
+ return FALSE;
+ }
+ return TRUE;
+}
+static bool32 TryReleaseUnionRoomPlayerObjectEvent(u32 playerIdx)
+{
+ u8 objectId;
+ struct ObjectEvent * object;
+ if (TryGetObjectEventIdByLocalIdAndMap(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId))
+ {
+ return TRUE;
+ }
+ object = &gObjectEvents[objectId];
+ if (!ObjectEventClearHeldMovementIfFinished(object))
+ {
+ return FALSE;
+ }
+ if (!ScriptContext2_IsEnabled())
+ {
+ UnfreezeObjectEvent(object);
+ }
+ else
+ {
+ FreezeObjectEvent(object);
+ }
+ return TRUE;
+}
+
+u8 ZeroUnionObjWork(struct UnionObj * ptr)
+{
+ s32 i;
+
+ sUnionObjRefreshTimer = 0;
+ UnionObjWork = ptr;
+ AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 442)
+ for (i = 0; i < 8; i++)
+ {
+ ptr[i].state = 0;
+ ptr[i].gfxId = 0;
+ ptr[i].animState = 0;
+ ptr[i].schedAnim = 0;
+ }
+ return StartUnionObjAnimTask();
+}
+
+static const u8 sMovement_UnionPlayerExit[2] = {
+ MOVEMENT_ACTION_FLY_UP,
+ MOVEMENT_ACTION_STEP_END
+};
+
+static bool32 AnimateUnionRoomPlayerDespawn(s8 * a0, u32 playerIdx, struct UnionObj * ptr)
+{
+ switch (*a0)
+ {
+ case 0:
+ if (SetUnionRoomPlayerEnterExitMovement(playerIdx, sMovement_UnionPlayerExit) == TRUE)
+ {
+ HideUnionRoomPlayer(playerIdx);
+ (*a0)++;
+ }
+ break;
+ case 1:
+ if (TryReleaseUnionRoomPlayerObjectEvent(playerIdx))
+ {
+ RemoveUnionRoomPlayerObjectEvent(playerIdx);
+ HideUnionRoomPlayer(playerIdx);
+ *a0 = 0;
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+static const u8 sMovement_UnionPlayerEnter[2] = {
+ MOVEMENT_ACTION_FLY_DOWN,
+ MOVEMENT_ACTION_STEP_END
+};
+
+static bool32 AnimateUnionRoomPlayerSpawn(s8 * a0, u32 playerIdx, struct UnionObj * ptr)
+{
+ s16 x, y;
+
+ switch (*a0)
+ {
+ case 0:
+ if (!is_walking_or_running())
+ {
+ break;
+ }
+ PlayerGetDestCoords(&x, &y);
+ if (sub_811B58C(playerIdx, 0, x, y) == TRUE)
+ {
+ break;
+ }
+ player_get_pos_including_state_based_drift(&x, &y);
+ if (sub_811B58C(playerIdx, 0, x, y) == TRUE)
+ {
+ break;
+ }
+ SetUnionRoomPlayerGfx(playerIdx, ptr->gfxId);
+ CreateUnionRoomPlayerObjectEvent(playerIdx);
+ ShowUnionRoomPlayer(playerIdx);
+ (*a0)++;
+ // fallthrough
+ case 3: // incorrect?
+ if (SetUnionRoomPlayerEnterExitMovement(playerIdx, sMovement_UnionPlayerEnter) == 1)
+ {
+ (*a0)++;
+ }
+ break;
+ case 2:
+ if (TryReleaseUnionRoomPlayerObjectEvent(playerIdx))
+ {
+ *a0 = 0;
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+static bool32 sub_811B8BC(u32 playerIdx, u32 a1, u32 a2)
+{
+ struct UnionObj * ptr = &UnionObjWork[playerIdx];
+ AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 561)
+ ptr->schedAnim = 1;
+ ptr->gfxId = GetUnionRoomPlayerGraphicsId(a1, a2);
+ if (ptr->state == 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static bool32 sub_811B90C(u32 playerIdx)
+{
+ struct UnionObj * ptr = &UnionObjWork[playerIdx];
+ AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 577)
+ ptr->schedAnim = 2;
+ if (ptr->state == 1)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static void AnimateUnionObj(u32 playerIdx, struct UnionObj * ptr)
+{
+ switch (ptr->state)
+ {
+ case 0:
+ if (ptr->schedAnim == 1)
+ {
+ ptr->state = 2;
+ ptr->animState = 0;
+ }
+ else
+ {
+ break;
+ }
+ // fallthrough
+ case 2:
+ if (!sub_811BBC8(playerIdx, 0) && ptr->schedAnim == 2)
+ {
+ ptr->state = 0;
+ ptr->animState = 0;
+ RemoveUnionRoomPlayerObjectEvent(playerIdx);
+ HideUnionRoomPlayer(playerIdx);
+ }
+ else if (AnimateUnionRoomPlayerSpawn(&ptr->animState, playerIdx, ptr) == TRUE)
+ {
+ ptr->state = 1;
+ }
+ break;
+ case 1:
+ if (ptr->schedAnim == 2)
+ {
+ ptr->state = 3;
+ ptr->animState = 0;
+ }
+ else
+ {
+ break;
+ }
+ // fallthrough
+ case 3:
+ if (AnimateUnionRoomPlayerDespawn(&ptr->animState, playerIdx, ptr) == TRUE)
+ {
+ ptr->state = 0;
+ }
+ break;
+ }
+ ptr->schedAnim = 0;
+}
+
+static void Task_AnimateUnionObjs(u8 taskId)
+{
+ s32 i;
+ AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 643)
+ for (i = 0; i < 8; i++)
+ {
+ AnimateUnionObj(i, &UnionObjWork[i]);
+ }
+}
+
+static u8 StartUnionObjAnimTask(void)
+{
+ if (FuncIsActiveTask(Task_AnimateUnionObjs) == TRUE)
+ {
+ AGB_ASSERT_EX(0, ABSPATH("rfu_union_tool.c"), 655)
+ return NUM_TASKS;
+ }
+ else
+ {
+ return CreateTask(Task_AnimateUnionObjs, 5);
+ }
+}
+
+static void sub_811BA5C(void)
+{
+ u8 taskId = FindTaskIdByFunc(Task_AnimateUnionObjs);
+ if (taskId < NUM_TASKS)
+ {
+ DestroyTask(taskId);
+ }
+}
+
+void sub_811BA78(void)
+{
+ s32 i;
+ for (i = 0; i < 8; i++)
+ {
+ if (!IsUnionRoomPlayerHidden(i))
+ {
+ RemoveUnionRoomPlayerObjectEvent(i);
+ HideUnionRoomPlayer(i);
+ }
+ }
+ UnionObjWork = NULL;
+ sub_811BA5C();
+}
+
+void sub_811BAAC(u8 * sp8, s32 r9)
+{
+ s32 r7;
+
+ for (r7 = 0; r7 < 5; r7++)
+ {
+ s32 r5 = 5 * r9 + r7;
+ sp8[r5] = sprite_new(OBJECT_EVENT_GFX_MAN, r5 - 0x38, sUnionPartnerCoords[r9][0] + sFacingDirectionOffsets[r7][0], sUnionPartnerCoords[r9][1] + sFacingDirectionOffsets[r7][1], 3, 1);
+ sub_8069124(r5 - 0x38, TRUE);
+ }
+}
+
+void sub_811BB40(u8 * r5)
+{
+ s32 i;
+ for (i = 0; i < 40; i++)
+ {
+ DestroySprite(&gSprites[r5[i]]);
+ }
+}
+
+void sub_811BB68(void)
+{
+ s32 i, j, x, y;
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 5; j++)
+ {
+ GetUnionRoomPlayerFacingCoords(i, j, &x, &y);
+ sub_8059024(x, y, 0);
+ }
+ }
+}
+
+static u8 sub_811BBA0(u32 r1, u32 unused, struct GFtgtGname * r2)
+{
+ if (r1 != 0)
+ {
+ return gUnknown_845711B[r1];
+ }
+ else if (r2->unk_0a_0 == 0x45)
+ {
+ return 1;
+ }
+ else
+ {
+ return 4;
+ }
+}
+
+static u32 sub_811BBC8(u32 a0, u32 a1)
+{
+ return sub_806916C(5 * a0 + a1 - 0x38);
+}
+
+static void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9)
+{
+ s32 x, y;
+ s32 r7 = 5 * r5 + r6;
+ if (sub_811BBC8(r5, r6) == 1)
+ {
+ sub_8069124(r7 - 0x38, FALSE);
+ sub_80691A4(r7 - 0x38, 1);
+ }
+ sub_8069094(r7 - 0x38, r8);
+ sub_811C008(r6, r5, sub_811BBA0(r6, r5, r9));
+ GetUnionRoomPlayerFacingCoords(r5, r6, &x, &y);
+ sub_8059024(x, y, 1);
+}
+
+static void sub_811BC68(u32 a0, u32 a1)
+{
+ s32 x, y;
+ sub_80691A4(5 * a0 + a1 - 0x38, 2);
+ GetUnionRoomPlayerFacingCoords(a0, a1, &x, &y);
+ sub_8059024(x, y, 0);
+}
+
+static void sub_811BCA0(u32 r7, struct GFtgtGname * r8)
+{
+ s16 x, y, x2, y2;
+ s32 i;
+
+ PlayerGetDestCoords(&x, &y);
+ player_get_pos_including_state_based_drift(&x2, &y2);
+ if (sub_806916C(5 * r7 - 0x38) == 1)
+ {
+ if (sub_811B58C(r7, 0, x, y) == TRUE || sub_811B58C(r7, 0, x2, y2) == TRUE)
+ {
+ return;
+ }
+ sub_811BBE0(r7, 0, GetUnionRoomPlayerGraphicsId(r8->playerGender, r8->unk_00.playerTrainerId[0]), r8);
+ }
+ for (i = 1; i < 5; i++)
+ {
+ if (r8->unk_04[i - 1] == 0)
+ {
+ sub_811BC68(r7, i);
+ }
+ else if (sub_811B58C(r7, i, x, y) == FALSE && sub_811B58C(r7, i, x2, y2) == FALSE)
+ {
+ sub_811BBE0(r7, i, GetUnionRoomPlayerGraphicsId((r8->unk_04[i - 1] >> 3) & 1, r8->unk_04[i - 1] & 7), r8);
+ }
+ }
+}
+
+static void sub_811BDA8(u32 r5, struct GFtgtGname * r4)
+{
+ u32 i;
+ switch (r4->unk_0a_0)
+ {
+ case 0x40:
+ case 0x54:
+ sub_811B8BC(r5, r4->playerGender, r4->unk_00.playerTrainerId[0]);
+ for (i = 0; i < 5; i++)
+ {
+ sub_811BC68(r5, i);
+ }
+ break;
+ case 0x41:
+ case 0x44:
+ case 0x45:
+ case 0x48:
+ case 0x51:
+ case 0x52:
+ case 0x53:
+ sub_811B90C(r5);
+ sub_811BCA0(r5, r4);
+ break;
+ default:
+ AGB_ASSERT_EX(0, ABSPATH("rfu_union_tool.c"), 979)
+ }
+}
+
+static void sub_811BE6C(u32 r5, struct GFtgtGname * unused)
+{
+ s32 i;
+ sub_811B90C(r5);
+ for (i = 0; i < 5; i++)
+ {
+ sub_811BC68(r5, i);
+ }
+}
+
+static void UpdateUnionRoomPlayerSprites(struct UnkStruct_URoom *r0)
+{
+ s32 i;
+ struct UnkStruct_x20 * r4;
+ sUnionObjRefreshTimer = 0;
+ for (i = 0, r4 = r0->field_0->arr; i < 8; i++)
+ {
+ if (r4[i].field_1A_0 == 1)
+ {
+ sub_811BDA8(i, &r4[i].unk.gname);
+ }
+ else if (r4[i].field_1A_0 == 2)
+ {
+ sub_811BE6C(i, &r4[i].unk.gname);
+ }
+ }
+}
+
+void sub_811BECC(struct UnkStruct_URoom *unused)
+{
+ sUnionObjRefreshTimer = 300;
+}
+
+void sub_811BEDC(struct UnkStruct_URoom *r2)
+{
+ if (++sUnionObjRefreshTimer > 300)
+ {
+ UpdateUnionRoomPlayerSprites(r2);
+ }
+}
+
+bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
+{
+ s16 x, y;
+ s32 i, j;
+ struct UnkStruct_x20 * r4;
+ if (!is_walking_or_running())
+ {
+ return FALSE;
+ }
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ for (i = 0, r4 = arg0->arr; i < 8; i++)
+ {
+ for (j = 0; j < 5; j++)
+ {
+ s32 r3 = 5 * i + j;
+ if (x != sUnionPartnerCoords[i][0] + sFacingDirectionOffsets[j][0] + 7)
+ {
+ continue;
+ }
+ if (y != sUnionPartnerCoords[i][1] + sFacingDirectionOffsets[j][1] + 7)
+ {
+ continue;
+ }
+ if (sub_806916C(r3 - 0x38) != 0)
+ {
+ continue;
+ }
+ if (sub_8069294(r3 - 0x38) != 0)
+ {
+ continue;
+ }
+ if (r4[i].field_1A_0 != 1)
+ {
+ continue;
+ }
+ sub_811C008(j, i, sOppositeFacingDirection[GetPlayerFacingDirection()]);
+ *arg1 = j;
+ *arg2 = i;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void sub_811C008(s32 arg0, s32 arg1, u8 arg2)
+{
+ sub_8069058(5 * arg1 - 0x38 + arg0, arg2);
+}
+
+void sub_811C028(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2)
+{
+ return sub_811C008(arg0, arg1, sub_811BBA0(arg0, arg1, &arg2->arr[arg1].unk.gname));
+}
diff --git a/src/safari_zone.c b/src/safari_zone.c
index cb0a58586..65fb89bca 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -47,7 +47,7 @@ bool8 SafariZoneTakeStep(void)
gSafariZoneStepCounter--;
if (gSafariZoneStepCounter == 0)
{
- ScriptContext1_SetupScript(EventScript_SafariTimesUp);
+ ScriptContext1_SetupScript(SafariZone_EventScript_TimesUp);
return TRUE;
}
return FALSE;
@@ -55,7 +55,7 @@ bool8 SafariZoneTakeStep(void)
void SafariZoneRetirePrompt(void)
{
- ScriptContext1_SetupScript(EventScript_SafariRetire);
+ ScriptContext1_SetupScript(SafariZone_EventScript_RetirePrompt);
}
void CB2_EndSafariBattle(void)
@@ -66,14 +66,14 @@ void CB2_EndSafariBattle(void)
}
else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS)
{
- ScriptContext2_RunNewScript(EventScript_SafariWarpOut);
+ ScriptContext2_RunNewScript(SafariZone_EventScript_OutOfBallsMidBattle);
WarpIntoMap();
gFieldCallback = sub_807E3EC;
SetMainCallback2(CB2_LoadMap);
}
else if (gBattleOutcome == B_OUTCOME_CAUGHT)
{
- ScriptContext1_SetupScript(EventScript_SafariOutOfBalls);
+ ScriptContext1_SetupScript(SafariZone_EventScript_OutOfBalls);
ScriptContext1_Stop();
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 51e7d2c35..c2c422a0a 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -630,7 +630,7 @@ static bool8 IsPaletteNotActive(void)
bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
{
- fade_screen(ScriptReadByte(ctx), 0);
+ FadeScreen(ScriptReadByte(ctx), 0);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@@ -640,7 +640,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
u8 mode = ScriptReadByte(ctx);
u8 speed = ScriptReadByte(ctx);
- fade_screen(mode, speed);
+ FadeScreen(mode, speed);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@@ -1064,7 +1064,7 @@ bool8 ScrCmd_addobject(struct ScriptContext *ctx)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
- show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ TrySpawnObjectEvent(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
return FALSE;
}
@@ -1074,7 +1074,7 @@ bool8 ScrCmd_addobject_at(struct ScriptContext *ctx)
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
- show_sprite(objectId, mapNum, mapGroup);
+ TrySpawnObjectEvent(objectId, mapNum, mapGroup);
return FALSE;
}
diff --git a/src/script_menu.c b/src/script_menu.c
index 42be3b539..72ff1dc9e 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -565,36 +565,37 @@ const struct MultichoiceListStruct gScriptMultiChoiceMenus[] = {
{ sScriptMultiChoiceMenu_TrainerTowerMode, NELEMS(sScriptMultiChoiceMenu_TrainerTowerMode) }
};
+// From Cool to Berries goes unused
const u8 *const gStdStringPtrs[] = {
- gText_Cool,
- gText_Beauty,
- gText_Cute,
- gText_Smart,
- gText_Tough,
- gText_Cool_2,
- gText_Beauty_2,
- gText_Cute_2,
- gText_Smart_2,
- gText_Tough_2,
- gText_Items,
- gText_KeyItems,
- gText_PokeBalls,
- gText_TMsAndHMs,
- gText_Berries,
- gText_Boulderbadge,
- gText_Cascadebadge,
- gText_Thunderbadge,
- gText_Rainbowbadge,
- gText_Soulbadge,
- gText_Marshbadge,
- gText_Volcanobadge,
- gText_Earthbadge,
- gText_Coins_2,
- gText_ItemsPocket,
- gText_KeyItemsPocket,
- gText_PokeBallsPocket,
- gText_TmCase,
- gText_BerryPouch_2
+ [STDSTRING_COOL] = gText_Cool,
+ [STDSTRING_BEAUTY] = gText_Beauty,
+ [STDSTRING_CUTE] = gText_Cute,
+ [STDSTRING_SMART] = gText_Smart,
+ [STDSTRING_TOUGH] = gText_Tough,
+ [STDSTRING_COOL2] = gText_Cool_2,
+ [STDSTRING_BEAUTY2] = gText_Beauty_2,
+ [STDSTRING_CUTE2] = gText_Cute_2,
+ [STDSTRING_SMART2] = gText_Smart_2,
+ [STDSTRING_TOUGH2] = gText_Tough_2,
+ [STDSTRING_ITEMS] = gText_Items,
+ [STDSTRING_KEY_ITEMS] = gText_KeyItems,
+ [STDSTRING_POKEBALLS] = gText_PokeBalls,
+ [STDSTRING_TMHMS] = gText_TMsAndHMs,
+ [STDSTRING_BERRIES] = gText_Berries,
+ [STDSTRING_BOULDER_BADGE] = gText_Boulderbadge,
+ [STDSTRING_CASCADE_BADGE] = gText_Cascadebadge,
+ [STDSTRING_THUNDER_BADGE] = gText_Thunderbadge,
+ [STDSTRING_RAINBOW_BADGE] = gText_Rainbowbadge,
+ [STDSTRING_SOUL_BADGE] = gText_Soulbadge,
+ [STDSTRING_MARSH_BADGE] = gText_Marshbadge,
+ [STDSTRING_VOLCANO_BADGE] = gText_Volcanobadge,
+ [STDSTRING_EARTH_BADGE] = gText_Earthbadge,
+ [STDSTRING_COINS] = gText_Coins_2,
+ [STDSTRING_ITEMS_POCKET] = gText_ItemsPocket,
+ [STDSTRING_KEY_ITEMS_POCKET] = gText_KeyItemsPocket,
+ [STDSTRING_POKEBALLS_POCKET] = gText_PokeBallsPocket,
+ [STDSTRING_TM_CASE] = gText_TmCase,
+ [STDSTRING_BERRY_POUCH] = gText_BerryPouch_2
};
static const u8 *const sDescriptionPtrs_CableClub_TradeBattleCancel[] = {
diff --git a/src/shop.c b/src/shop.c
index b410b32b9..97061f8c0 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -294,20 +294,20 @@ static void Task_ShopMenu(u8 taskId)
static void Task_HandleShopMenuBuy(u8 taskId)
{
SetWordTaskArg(taskId, 0xE, (u32)CB2_InitBuyMenu);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
}
static void Task_HandleShopMenuSell(u8 taskId)
{
SetWordTaskArg(taskId, 0xE, (u32)CB2_GoToSellMenu);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
}
static void CB2_GoToSellMenu(void)
{
- GoToBagMenu(2, POCKET_POKE_BALLS, CB2_ReturnToField);
+ GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField);
gFieldCallback = MapPostLoadHook_ReturnToShopMenu;
}
diff --git a/src/start_menu.c b/src/start_menu.c
index 59bfb8643..b159f0375 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -446,7 +446,7 @@ static void StartMenu_FadeScreenIfLeavingOverworld(void)
&& sStartMenuCallback != StartMenuSafariZoneRetireCallback)
{
StopPokemonLeagueLightingEffectTask();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
}
@@ -554,7 +554,7 @@ static bool8 StartMenuLinkPlayerCallback(void)
{
PlayRainStoppingSoundEffect();
CleanupOverworldWindowsAndTilemaps();
- ShowTrainerCardInLink(gUnknown_300502C, CB2_ReturnToFieldWithOpenMenu);
+ ShowTrainerCardInLink(gLocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu);
return TRUE;
}
return FALSE;
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 11d4a80b1..1467131b0 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -34,16 +34,6 @@
#include "fieldmap.h"
#include "strings.h"
-enum TeachyTvScript
-{
- TTVSCR_BATTLE,
- TTVSCR_STATUS,
- TTVSCR_MATCHUPS,
- TTVSCR_CATCHING,
- TTVSCR_TMS,
- TTVSCR_REGISTER
-};
-
struct TeachyTvCtrlBlk
{
MainCallback callback;
@@ -805,7 +795,7 @@ static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
if (spriteAddr->pos2.x == 0x78)
{
StartSpriteAnim(&gSprites[data[1]], 0);
- TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello);
+ TeachyTvInitTextPrinter(gTeachyTvText_PokedudeSaysHello);
data[2] = 0;
++data[3];
}
@@ -1103,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId)
static void TeachyTvSetupBagItemsByOptionChosen(void)
{
if (sStaticResources.whichScript == TTVSCR_TMS)
- sub_810B108(10);
+ InitPokedudeBag(ITEMMENULOCATION_TTVSCR_TMS);
else
- sub_810B108(9);
+ InitPokedudeBag(ITEMMENULOCATION_TTVSCR_REGISTER);
}
static void TeachyTvPostBattleFadeControl(u8 taskId)
diff --git a/src/tm_case.c b/src/tm_case.c
index 40509ed1b..d45061bde 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -67,7 +67,7 @@ struct UnkStruct_203B11C
static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
-static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL;
+static EWRAM_DATA struct UnkStruct_203B11C * sPokedudePackBackup = NULL;
static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
@@ -977,7 +977,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
- TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
+ TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
}
else
{
@@ -993,7 +993,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
- TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI);
+ TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitQuantitySelectUI);
}
}
}
@@ -1004,7 +1004,7 @@ static void Task_AskConfirmSaleWithAmount(u8 taskId)
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
- TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox);
+ TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_PlaceYesNoBox);
}
static void Task_PlaceYesNoBox(u8 taskId)
@@ -1133,13 +1133,13 @@ static void Task_AfterSale_ReturnToList(u8 taskId)
}
}
-void PokeDude_InitTMCase(void)
+void Pokedude_InitTMCase(void)
{
- sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup));
- memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
- memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
- sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
- sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
+ sPokedudePackBackup = AllocZeroed(sizeof(*sPokedudePackBackup));
+ memcpy(sPokedudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(sPokedudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ sPokedudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
+ sPokedudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
ResetTMCaseCursorPos();
@@ -1234,7 +1234,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break;
case 8:
FillBG2RowWithPalette_2timesNplus1(1);
- TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_TMTypes, 0);
gTasks[taskId].func = Task_TMCaseDude_Playback;
data[8]++;
break;
@@ -1256,7 +1256,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break;
case 18:
FillBG2RowWithPalette_2timesNplus1(1);
- TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_ReadTMDescription, NULL);
gTasks[taskId].func = Task_TMCaseDude_Playback; // this function
data[8]++;
break;
@@ -1267,12 +1267,12 @@ static void Task_TMCaseDude_Playback(u8 taskId)
case 21:
if (!gPaletteFade.active)
{
- memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
- memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokedudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokedudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
DestroyListMenuTask(data[0], NULL, NULL);
- sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
- sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
- Free(sPokeDudePackBackup);
+ sTMCaseStaticResources.selectedRow = sPokedudePackBackup->unk_160;
+ sTMCaseStaticResources.scrollOffset = sPokedudePackBackup->unk_162;
+ Free(sPokedudePackBackup);
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
CB2_SetUpReshowBattleScreenAfterMenu();
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
diff --git a/src/trade_scene.c b/src/trade_scene.c
index 9e3c1d0ce..b420cb196 100644
--- a/src/trade_scene.c
+++ b/src/trade_scene.c
@@ -2443,7 +2443,7 @@ static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx)
const struct InGameTrade * inGameTrade = &sInGameTrades[inGameTradeIdx];
u8 level = GetMonData(&gPlayerParty[playerSlot], MON_DATA_LEVEL);
struct MailStruct mail;
- u8 metLocation = MAPSEC_IN_GAME_TRADE;
+ u8 metLocation = METLOC_IN_GAME_TRADE;
struct Pokemon * tradeMon = &gEnemyParty[0];
u8 mailNum;
CreateMon(tradeMon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, TRUE, inGameTrade->otId);
diff --git a/src/union_room.c b/src/union_room.c
new file mode 100644
index 000000000..4e3428cc6
--- /dev/null
+++ b/src/union_room.c
@@ -0,0 +1,4607 @@
+#include "global.h"
+#include "gflib.h"
+#include "battle.h"
+#include "berry_crush.h"
+#include "cable_club.h"
+#include "data.h"
+#include "decompress.h"
+#include "dodrio_berry_picking.h"
+#include "dynamic_placeholder_text_util.h"
+#include "easy_chat.h"
+#include "event_data.h"
+#include "event_object_lock.h"
+#include "field_control_avatar.h"
+#include "field_fadetransition.h"
+#include "field_player_avatar.h"
+#include "field_weather.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "list_menu.h"
+#include "load_save.h"
+#include "menu.h"
+#include "mevent.h"
+#include "mystery_gift_menu.h"
+#include "new_menu_helpers.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "pokemon_jump.h"
+#include "quest_log.h"
+#include "random.h"
+#include "save_location.h"
+#include "script.h"
+#include "script_pokemon_util.h"
+#include "start_menu.h"
+#include "strings.h"
+#include "task.h"
+#include "trade.h"
+#include "trade_scene.h"
+#include "trainer_card.h"
+#include "union_room.h"
+#include "union_room_chat.h"
+#include "rfu_union_tool.h"
+#include "union_room_message.h"
+#include "constants/songs.h"
+#include "constants/maps.h"
+#include "constants/cable_club.h"
+#include "constants/field_weather.h"
+#include "constants/species.h"
+
+static EWRAM_DATA u8 sUnionRoomPlayerName[12] = {};
+static EWRAM_DATA u8 gUnknown_203B058 = 0;
+static EWRAM_DATA u8 gUnknown_203B059 = 0;
+static EWRAM_DATA union UnkUnion_Main sUnionRoomMain = {};
+static EWRAM_DATA u32 sUnref_203B060 = 0;
+EWRAM_DATA struct GFtgtGnameSub gUnknown_203B064 = {};
+EWRAM_DATA u16 gUnionRoomOfferedSpecies = SPECIES_NONE;
+EWRAM_DATA u8 gUnionRoomRequestedMonType = TYPE_NORMAL;
+static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {};
+
+static struct UnkStruct_Leader * sLeader;
+static struct UnkStruct_Group * sGroup;
+static struct UnkStruct_URoom * sURoom;
+
+static void sub_8115A68(u8 taskId);
+static void sub_81161E4(struct UnkStruct_Leader * leader);
+static bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2);
+static void sub_81164C8(u8 windowId, s32 itemId, u8 y);
+static u8 sub_8116524(struct UnkStruct_Main0 * a0);
+static u8 sub_81165E8(struct UnkStruct_Main0 * a0);
+static void sub_8116738(u8 taskId);
+static u32 sub_8116D10(struct UnkStruct_Group * group, s32 id);
+static void sub_8116D60(struct UnkStruct_Group * group, s32 id);
+static void sub_8116E1C(u8 taskId);
+static void sub_8116F94(u8 windowId, s32 itemId, u8 y);
+static u8 sub_8116FE4(void);
+static void sub_8117990(void);
+static void sub_81179A4(void);
+static void sub_8117A0C(u8 taskId);
+static void sub_8117F20(u8 taskId);
+static void sub_81182DC(u8 taskId);
+static void sub_81186E0(u8 taskId);
+static u16 ReadAsU16(const u8 *data);
+static void sub_8119904(struct UnkStruct_URoom * uRoom);
+static bool32 sub_8119944(struct UnkStruct_URoom * uRoom);
+static void sub_81199FC(u8 taskId);
+static u8 sub_8119B94(void);
+static u8 sub_8119E84(struct UnkStruct_Main4 * arg0, struct UnkStruct_Main4 * arg1, u32 arg2);
+static bool32 sub_8119FB0(struct GFtgtGname * arg0, s16 arg1);
+static u8 sub_811A054(struct UnkStruct_Main4 * arg0, u32 arg1);
+static u8 sub_811A084(struct UnkStruct_Main4 * arg0, u32 arg1);
+static bool32 sub_811A0B4(const u8 * str);
+static bool32 sub_811A0E0(void);
+static bool8 PrintOnTextbox(u8 *textState, const u8 *str);
+static s8 sub_811A14C(u8 *dest, bool32 arg1);
+static s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate);
+static s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate, struct UnkStruct_Main0 * arg6);
+static void sub_811A3F8(void);
+static void sub_811A41C(void);
+static void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
+static void sub_811A5E4(struct UnkStruct_x20 * arg0, u8 count);
+static void sub_811A650(struct UnkStruct_x1C * arg0, u8 count);
+static bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared * arg1);
+static bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1);
+static u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1);
+static u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2);
+static void sub_811A81C(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 arg4, u8 id);
+static void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id);
+static bool32 sub_811A9B8(void);
+static u32 sub_811A9FC(s32 a0);
+static u32 sub_811AA24(struct UnkStruct_x20 * unkX20);
+static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender);
+static void nullsub_92(u8 windowId, s32 itemId, u8 y);
+static void sub_811ACA4(u8 windowId, s32 itemId, u8 y);
+static s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1);
+static s32 GetUnionRoomPlayerGender(s32 a0, struct UnkStruct_Main0 * a1);
+static s32 sub_811ADD0(u32 type, u32 species);
+static void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender);
+static void sub_811AECC(u8 *dst, u8 arg1);
+static s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom * arg3);
+static bool32 sub_811B0A4(struct UnkStruct_URoom * arg0);
+static bool32 HasAtLeastTwoMonsOfLevel30OrLower(void);
+static void ResetUnionRoomTrade(struct UnionRoomTrade * trade);
+static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade * trade);
+static void RegisterTradeMon(u32 monId, struct UnionRoomTrade * trade);
+static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 mpId);
+static void sub_811B258(bool32 a0);
+static void sub_811B298(void);
+static u8 sub_811B2A8(s32 a0);
+static u8 sub_811B2D8(struct UnkStruct_URoom * arg0);
+static void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender);
+
+#define _8456CD8(a, b) ((a) | ((b) << 8))
+
+static const u8 *const gUnknown_8456C74[] = {
+ gUnknown_84571AC,
+ gUnknown_8459394,
+ gUnknown_84593A4,
+ gUnknown_84593B4,
+ gUnknown_84593C4,
+ gUnknown_84593D4,
+ gUnknown_84593E4,
+ gUnknown_84593F4,
+ gUnknown_84593DC,
+ gUnknown_8459400,
+ gUnknown_8459410,
+ gUnknown_845941C,
+ gUnknown_845942C,
+ gUnknown_8459434,
+ gUnknown_8459440,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84593E4,
+ gUnknown_84593F4
+};
+
+static const struct WindowTemplate gUnknown_8456CD0 = {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 30,
+ .height = 2,
+ .paletteNum = 0xF,
+ .baseBlock = 0x008
+};
+
+static const u32 gUnknown_8456CD8[] = {
+ _8456CD8( 1, 2),
+ _8456CD8( 2, 2),
+ _8456CD8( 3, 4),
+ _8456CD8( 4, 2),
+ _8456CD8( 9, 37),
+ _8456CD8(10, 37),
+ _8456CD8(11, 53),
+ _8456CD8(13, 53),
+ _8456CD8(14, 53)
+};
+
+static const struct WindowTemplate gUnknown_8456CFC = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 13,
+ .height = 10,
+ .paletteNum = 15,
+ .baseBlock = 0x044
+};
+
+static const struct WindowTemplate gUnknown_8456D04 = {
+ .bg = 0,
+ .tilemapLeft = 16,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x0C6
+};
+
+const struct ListMenuItem gUnknown_8456D0C[] = {
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4}
+};
+
+static const struct ListMenuTemplate gUnknown_8456D34 = {
+ .items = gUnknown_8456D0C,
+ .moveCursorFunc = NULL,
+ .itemPrintFunc = sub_81164C8,
+ .totalItems = 5,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 1,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 2,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 1
+};
+
+static const struct WindowTemplate gUnknown_8456D4C = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 17,
+ .height = 10,
+ .paletteNum = 15,
+ .baseBlock = 0x044
+};
+
+static const struct WindowTemplate gUnknown_8456D54 = {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x0EE
+};
+
+static const struct ListMenuItem gUnknown_8456D5C[] = {
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4},
+ {gUnknown_84571AC, 5},
+ {gUnknown_84571AC, 6},
+ {gUnknown_84571AC, 7},
+ {gUnknown_84571AC, 8},
+ {gUnknown_84571AC, 9},
+ {gUnknown_84571AC, 10},
+ {gUnknown_84571AC, 11},
+ {gUnknown_84571AC, 12},
+ {gUnknown_84571AC, 13},
+ {gUnknown_84571AC, 14},
+ {gUnknown_84571AC, 15}
+};
+
+static const struct ListMenuTemplate gUnknown_8456DDC = {
+ .items = gUnknown_8456D5C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = sub_8116F94,
+ .totalItems = 16,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 2,
+ .scrollMultiple = LIST_MULTIPLE_SCROLL_DPAD,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456DF4 = {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 6,
+ .width = 8,
+ .height = 7,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+};
+
+static const struct ListMenuItem gUnknown_8456DFC[] = {
+ {gUnknown_8459354, _8456CD8( 8, 2)},
+ {gUnknown_8459344, _8456CD8(65, 2)},
+ {gUnknown_845934C, _8456CD8(69, 2)},
+ {gUnknown_8459360, _8456CD8(64, 0)}
+};
+
+static const struct ListMenuTemplate gUnknown_8456E1C = {
+ .items = gUnknown_8456DFC,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = 4,
+ .maxShowed = 4,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456E34 = {
+ .bg = 0,
+ .tilemapLeft = 18,
+ .tilemapTop = 8,
+ .width = 11,
+ .height = 5,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+};
+
+static const struct ListMenuItem gUnknown_8456E3C[] = {
+ {gText_Register, 1},
+ {gUnknown_8459370, 2},
+ {gUnknown_8459360, 3}
+};
+
+static const struct ListMenuTemplate gUnknown_8456E54 = {
+ .items = gUnknown_8456E3C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = 3,
+ .maxShowed = 3,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456E6C = {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 2,
+ .width = 9,
+ .height = 11,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+};
+
+static const struct ListMenuItem gUnknown_8456E74[] = {
+ {gTypeNames[TYPE_NORMAL], TYPE_NORMAL},
+ {gTypeNames[TYPE_FIRE], TYPE_FIRE},
+ {gTypeNames[TYPE_WATER], TYPE_WATER},
+ {gTypeNames[TYPE_ELECTRIC], TYPE_ELECTRIC},
+ {gTypeNames[TYPE_GRASS], TYPE_GRASS},
+ {gTypeNames[TYPE_ICE], TYPE_ICE},
+ {gTypeNames[TYPE_GROUND], TYPE_GROUND},
+ {gTypeNames[TYPE_ROCK], TYPE_ROCK},
+ {gTypeNames[TYPE_FLYING], TYPE_FLYING},
+ {gTypeNames[TYPE_PSYCHIC], TYPE_PSYCHIC},
+ {gTypeNames[TYPE_FIGHTING], TYPE_FIGHTING},
+ {gTypeNames[TYPE_POISON], TYPE_POISON},
+ {gTypeNames[TYPE_BUG], TYPE_BUG},
+ {gTypeNames[TYPE_GHOST], TYPE_GHOST},
+ {gTypeNames[TYPE_DRAGON], TYPE_DRAGON},
+ {gTypeNames[TYPE_STEEL], TYPE_STEEL},
+ {gTypeNames[TYPE_DARK], TYPE_DARK},
+ {gUnknown_8459360, NUMBER_OF_MON_TYPES}
+};
+
+static const struct ListMenuTemplate gUnknown_8456F04 = {
+ .items = gUnknown_8456E74,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = NUMBER_OF_MON_TYPES,
+ .maxShowed = 6,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 2,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456F1C = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 28,
+ .height = 2,
+ .paletteNum = 13,
+ .baseBlock = 0x001
+};
+
+static const struct WindowTemplate gUnknown_8456F24 = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 5,
+ .width = 28,
+ .height = 10,
+ .paletteNum = 13,
+ .baseBlock = 0x039
+};
+
+static const struct ListMenuItem gUnknown_8456F2C[] = {
+ {gUnknown_84571AC, -3},
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4},
+ {gUnknown_84571AC, 5},
+ {gUnknown_84571AC, 6},
+ {gUnknown_84571AC, 7},
+ {gUnknown_8459368, 8}
+};
+
+static const struct ListMenuTemplate gUnknown_8456F7C = {
+ .items = gUnknown_8456F2C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = sub_811ACA4,
+ .totalItems = 10,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 12,
+ .cursor_X = 0,
+ .upText_Y = 2,
+ .cursorPal = 14,
+ .fillValue = 15,
+ .cursorShadowPal = 13,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 1,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456F94 = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 5,
+ .width = 28,
+ .height = 10,
+ .paletteNum = 13,
+ .baseBlock = 0x039
+};
+
+static const struct ListMenuItem gUnknown_8456F9C[] = {
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4},
+ {gUnknown_84571AC, 5},
+ {gUnknown_84571AC, 6},
+ {gUnknown_84571AC, 7},
+ {gUnknown_84571AC, 8},
+ {gUnknown_84571AC, 9},
+ {gUnknown_84571AC, 10},
+ {gUnknown_84571AC, 11},
+ {gUnknown_84571AC, 12},
+ {gUnknown_84571AC, 13},
+ {gUnknown_84571AC, 14},
+ {gUnknown_84571AC, 15}
+};
+
+static const struct ListMenuTemplate gUnknown_845701C = {
+ .items = gUnknown_8456F9C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = nullsub_92,
+ .totalItems = 16,
+ .maxShowed = 4,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 1,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_MULTIPLE_SCROLL_DPAD,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct UnkStruct_Shared gUnknown_8457034 = {};
+
+// starts at gUnknown_082F0474 in pokeemerald, union link groups
+
+ALIGNED(4) static const u8 gUnknown_845704C[] = {0x01, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457050[] = {0x02, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457054[] = {0x03, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457058[] = {0x04, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845705C[] = {0x09, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457060[] = {0x0A, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457064[] = {0x0B, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457068[] = {0x15, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845706C[] = {0x16, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457070[] = {0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845707C[] = {0x0C, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457080[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0x0D, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845708C[] = {0x01, 0x02, 0x03, 0x04, 0x0A, 0xFF};
+
+static const u8 *const gUnknown_8457094[] = {
+ gUnknown_845704C,
+ gUnknown_8457050,
+ gUnknown_8457054,
+ gUnknown_8457058,
+ gUnknown_845705C,
+ gUnknown_8457060,
+ gUnknown_8457064,
+ gUnknown_8457068,
+ gUnknown_845706C,
+ gUnknown_8457070,
+ gUnknown_845707C,
+ gUnknown_8457080,
+ gUnknown_845708C
+};
+
+static const u8 gUnknown_84570C8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0xF7, 0x00, 0xAF, 0xF7, 0x01, 0xFF, 0x00};
+
+#undef _8456CD8
+
+// These are functions in Emerald but inlined in FireRed
+
+#define IntlConvPartnerUname7(dest, arg1) ({ \
+ StringCopy7(dest, (arg1).unk.playerName); \
+ ConvertInternationalString(dest, (arg1).unk.gname.unk_00.unk_00_0); \
+})
+
+#define IntlConvPartnerUname(dest, arg1) ({ \
+ StringCopy(dest, (arg1).unk.playerName); \
+ ConvertInternationalString(dest, (arg1).unk.gname.unk_00.unk_00_0); \
+})
+
+#define CopyTrainerCardData(dest, src, _version) ({ \
+ (dest) = *((struct TrainerCard * )(src)); \
+ (dest).version = _version; \
+})
+
+#define GetStringRightAlignXOffset(_fontId, _string, _maxWidth) ({ \
+ u16 strWidth = GetStringWidth(_fontId, _string, 0); \
+ _maxWidth - strWidth; \
+})
+
+static void sub_811586C(u8 windowId, u8 arg1, u8 stringId)
+{
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ switch (arg1 << 8)
+ {
+ case 0x200:
+ sub_811A444(windowId, 2, gUnknown_845742C[0][stringId - 1], 0, 2, 0);
+ break;
+ case 0x400:
+ sub_811A444(windowId, 2, gUnknown_845742C[1][stringId - 1], 0, 2, 0);
+ break;
+ case 0x2500:
+ sub_811A444(windowId, 2, gUnknown_845742C[2][stringId - 1], 0, 2, 0);
+ break;
+ case 0x3500:
+ sub_811A444(windowId, 2, gUnknown_845742C[3][stringId - 1], 0, 2, 0);
+ break;
+ }
+
+ CopyWindowToVram(windowId, 2);
+}
+
+static void sub_8115924(u8 windowId)
+{
+ u8 text[12];
+ u8 text2[12];
+
+ sub_811A444(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, 0);
+ StringCopy(text2, gUnknown_84571B4);
+ ConvertIntToDecimalStringN(text, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5);
+ StringAppend(text2, text);
+ sub_811A444(windowId, 0, text2, 0, 0x10, 0);
+}
+
+static void sub_811599C(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1 ... 4:
+ case 9 ... 11:
+ case 21 ... 22:
+ // UB: argument *dst isn't used, instead it always prints to gStringVar4
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457234);
+ break;
+ }
+}
+
+void TryBecomeLinkLeader(void)
+{
+ u8 taskId;
+ struct UnkStruct_Leader * dataPtr;
+
+ taskId = CreateTask(sub_8115A68, 0);
+ sUnionRoomMain.leader = dataPtr = (void*)(gTasks[taskId].data);
+ sLeader = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ gSpecialVar_Result = 0;
+}
+
+static void sub_8115A68(u8 taskId)
+{
+ u32 id, val;
+ struct UnkStruct_Leader * data = sUnionRoomMain.leader;
+
+ switch (data->state)
+ {
+ case 0:
+ gUnknown_203B058 = gUnknown_8456CD8[gSpecialVar_0x8004];
+ gUnknown_203B059 = gUnknown_8456CD8[gSpecialVar_0x8004] >> 8;
+ SetHostRFUtgtGname(gUnknown_203B058, 0, 0);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBB8C(gUnknown_203B059 & 0xF);
+ data->state = 3;
+ break;
+ case 3:
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(5 * sizeof(struct UnkStruct_x20));
+ data->field_8 = AllocZeroed(5 * sizeof(struct UnkStruct_x20));
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A5E4(data->field_0->arr, 5);
+ LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.gname, data->field_0->arr[0].unk.playerName);
+ data->field_0->arr[0].field_18 = 0;
+ data->field_0->arr[0].field_1A_0 = 1;
+ data->field_0->arr[0].field_1A_1 = 0;
+ data->field_0->arr[0].field_1B = 0;
+ data->field_17 = sub_811A054(data->field_4, 0xFF);
+ data->field_10 = AddWindow(&gUnknown_8456CD0);
+ data->listWindowId = AddWindow(&gUnknown_8456CFC);
+ data->field_11 = AddWindow(&gUnknown_8456D04);
+
+ FillWindowPixelBuffer(data->field_10, PIXEL_FILL(2));
+ sub_811A444(data->field_10, 0, gUnknown_845747C, 8, 2, 4);
+ PutWindowTilemap(data->field_10);
+ CopyWindowToVram(data->field_10, 2);
+
+ DrawStdWindowFrame(data->listWindowId, FALSE);
+ gMultiuseListMenuTemplate = gUnknown_8456D34;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ DrawStdWindowFrame(data->field_11, FALSE);
+ PutWindowTilemap(data->field_11);
+ CopyWindowToVram(data->field_11, 2);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_13 = 1;
+ data->state = 4;
+ break;
+ case 4:
+ StringCopy(gStringVar1, gUnknown_8456C74[gUnknown_203B058]);
+ if ((gUnknown_203B059 >> 4) != 0)
+ {
+ if (data->field_13 > (gUnknown_203B059 >> 4) - 1 && (gUnknown_203B059 & 0xF) != 0)
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457264);
+ else
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457234);
+ }
+ else
+ {
+ sub_811599C(gStringVar4, gUnknown_203B058);
+ }
+
+ sub_811586C(data->field_11, gUnknown_203B059, data->field_13);
+ data->state = 5;
+ break;
+ case 5:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = 6;
+ break;
+ case 6:
+ sub_8116444(data, 7, 10);
+ if (JOY_NEW(B_BUTTON))
+ {
+ if (data->field_13 == 1)
+ data->state = 23;
+ else if ((gUnknown_203B059 & 0xF0) != 0)
+ data->state = 30;
+ else
+ data->state = 19;
+ }
+ if ((gUnknown_203B059 >> 4) != 0
+ && data->field_13 > (gUnknown_203B059 >> 4) - 1
+ && (gUnknown_203B059 & 0xF) != 0
+ && sub_80FC1CC()
+ && JOY_NEW(START_BUTTON))
+ {
+ data->state = 15;
+ sub_80F8F5C();
+ }
+ if (data->state == 6 && sub_80FA5D4())
+ {
+ data->state = 9;
+ }
+ break;
+ case 9:
+ if (!sub_80FA5D4())
+ {
+ data->state = 6;
+ data->field_13 = sub_81165E8(data->field_0);
+ }
+ break;
+ case 10:
+ id = ((gUnknown_203B058 & 0xF) == 2) ? 1 : 0;
+ if (PrintOnTextbox(&data->textState, gUnknown_845767C[id]))
+ {
+ data->field_13 = sub_81165E8(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 4;
+ }
+ break;
+ case 29:
+ id = ((gUnknown_203B059 & 0xF) == 2) ? 0 : 1;
+ if (PrintOnTextbox(&data->textState, gUnknown_845767C[id]))
+ {
+ data->state = 21;
+ }
+ break;
+ case 7:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ data->state = 11;
+ }
+ break;
+ case 11:
+ switch (sub_811A14C(&data->textState, sub_80FA634(ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName)))
+ {
+ case 0:
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ data->field_19 = 5;
+ sub_80FA670(5, ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 12;
+ break;
+ case 1:
+ case -1:
+ data->field_19 = 6;
+ sub_80FA670(6, ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 12;
+ break;
+ case -3:
+ data->state = 9;
+ break;
+ }
+ break;
+ case 12:
+ val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ if (val == 1)
+ {
+ if (data->field_19 == 5)
+ {
+ data->field_0->arr[data->field_13].field_1B = 0;
+ RedrawListMenu(data->listTaskId);
+ data->field_13++;
+ if (data->field_13 == (gUnknown_203B059 & 0xF))
+ {
+ if ((gUnknown_203B059 & 0xF0) != 0 || data->field_13 == 4)
+ {
+ data->state = 15;
+ }
+ else
+ {
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_13 - 1]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457554);
+ data->state = 13;
+ }
+
+ sub_80F8F5C();
+ sub_811586C(data->field_11, gUnknown_203B059, data->field_13);
+ }
+ else
+ {
+ data->state = 4;
+ }
+ }
+ else
+ {
+ sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId));
+ data->field_0->arr[data->field_13].field_1A_0 = 0;
+ sub_81165E8(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 4;
+ }
+
+ data->field_19 = 0;
+ }
+ else if (val == 2)
+ {
+ sub_80FB9E4(0, 0);
+ data->state = 4;
+ }
+ break;
+ case 13:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = 14;
+ break;
+ case 14:
+ if (++data->field_E > 120)
+ data->state = 17;
+ break;
+ case 15:
+ if (PrintOnTextbox(&data->textState, gUnknown_8457514))
+ data->state = 16;
+ break;
+ case 16:
+ switch (sub_811A14C(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 17;
+ break;
+ case 1:
+ case -1:
+ if ((gUnknown_203B059 & 0xF0) != 0)
+ data->state = 30;
+ else
+ data->state = 19;
+ break;
+ }
+ break;
+ case 19:
+ if (PrintOnTextbox(&data->textState, gUnknown_8457530))
+ data->state = 20;
+ break;
+ case 20:
+ switch (sub_811A14C(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 23;
+ break;
+ case 1:
+ case -1:
+ if ((gUnknown_203B059 & 0xF0) != 0)
+ data->state = 15;
+ else if (data->field_13 == (gUnknown_203B059 & 0xF))
+ data->state = 15;
+ else
+ data->state = 4;
+ break;
+ }
+ break;
+ case 17:
+ if (!sub_8116444(data, 7, 23))
+ data->state = 18;
+ break;
+ case 18:
+ if (sub_80F8F40())
+ {
+ if (sub_80F8F7C(FALSE))
+ {
+ data->state = 26;
+ }
+ }
+ else
+ {
+ data->state = 29;
+ data->textState = 0;
+ }
+ break;
+ case 30:
+ if (PrintOnTextbox(&data->textState, gUnknown_8457610))
+ data->state = 23;
+ break;
+ case 21:
+ case 23:
+ DestroyWirelessStatusIndicatorSprite();
+ sub_80F8DC0();
+ sub_81161E4(data);
+ data->state++;
+ break;
+ case 24:
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ gSpecialVar_Result = 5;
+ break;
+ case 22:
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ gSpecialVar_Result = 8;
+ break;
+ case 26:
+ if (sub_80FBA00())
+ {
+ data->state = 29;
+ }
+ else
+ {
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_80FAFE0(1);
+ sub_8117990();
+ sub_81161E4(data);
+ DestroyTask(taskId);
+ }
+ }
+ break;
+ }
+}
+
+static void sub_81161E4(struct UnkStruct_Leader * data)
+{
+ ClearWindowTilemap(data->field_11);
+ ClearStdWindowAndFrame(data->field_11, FALSE);
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ ClearWindowTilemap(data->field_10);
+ ClearStdWindowAndFrame(data->listWindowId, FALSE);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->field_11);
+ RemoveWindow(data->listWindowId);
+ RemoveWindow(data->field_10);
+ DestroyTask(data->field_17);
+
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_4);
+}
+
+static void sub_8116244(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1:
+ case 2:
+ case 4:
+ StringExpandPlaceholders(dst, gUnknown_84574A0);
+ break;
+ case 21:
+ case 22:
+ StringExpandPlaceholders(dst, gUnknown_84574C4);
+ break;
+ case 3:
+ case 9:
+ case 10:
+ case 11:
+ StringExpandPlaceholders(dst, gUnknown_84574EC);
+ break;
+ }
+}
+
+static void sub_81162E0(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 65:
+ case 68:
+ StringExpandPlaceholders(dst, gUnknown_8457E28);
+ break;
+ case 69:
+ case 72:
+ StringExpandPlaceholders(dst, gUnknown_8457E44);
+ break;
+ }
+}
+
+static void sub_811631C(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 21:
+ case 22:
+ StringExpandPlaceholders(dst, gUnknown_8459238);
+ break;
+ case 3:
+ case 9:
+ case 10:
+ case 11:
+ StringExpandPlaceholders(dst, gUnknown_8459250);
+ break;
+ }
+}
+
+static void sub_81163B0(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 21:
+ case 22:
+ StringExpandPlaceholders(dst, gUnknown_84576AC);
+ break;
+ case 3:
+ case 9:
+ case 10:
+ case 11:
+ StringExpandPlaceholders(dst, gUnknown_84576C4);
+ break;
+ }
+}
+
+static bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2)
+{
+ switch (sub_8116524(data->field_0))
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ RedrawListMenu(data->listTaskId);
+ IntlConvPartnerUname7(gStringVar2, data->field_0->arr[data->field_13]);
+ sub_8116244(gStringVar4, gUnknown_203B058);
+ data->state = arg1;
+ break;
+ case 2:
+ sub_80FB9E4(0, 0);
+ RedrawListMenu(data->listTaskId);
+ data->state = arg2;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void sub_81164C8(u8 windowId, s32 itemId, u8 y)
+{
+ struct UnkStruct_Leader * data = sUnionRoomMain.leader;
+ u8 var = 0;
+
+ switch (data->field_0->arr[itemId].field_1A_0)
+ {
+ case 1:
+ if (data->field_0->arr[itemId].field_1B != 0)
+ var = 2;
+ break;
+ case 2:
+ var = 1;
+ break;
+ }
+
+ sub_811A910(windowId, 0, y, &data->field_0->arr[itemId], var, itemId);
+}
+
+static u8 sub_8116524(struct UnkStruct_Main0 * arg0)
+{
+ struct UnkStruct_Leader * data = sUnionRoomMain.leader;
+ u8 ret = 0;
+ u8 i;
+ s32 id;
+
+ for (i = 1; i < 5; i++)
+ {
+ u16 var = data->field_0->arr[i].field_1A_0;
+ if (var == 1)
+ {
+ id = sub_811A748(&data->field_0->arr[i], data->field_4->arr);
+ if (id != 0xFF)
+ {
+ data->field_0->arr[i].unk = data->field_4->arr[id].unk0;
+ data->field_0->arr[i].field_18 = var;
+ }
+ else
+ {
+ data->field_0->arr[i].field_1A_0 = 2;
+ ret = 2;
+ }
+ }
+ }
+
+ for (id = 0; id < 4; id++)
+ sub_811A798(data->field_0->arr, &data->field_4->arr[id], 5);
+
+ if (ret != 2)
+ {
+ for (id = 0; id < 5; id++)
+ {
+ if (data->field_0->arr[id].field_1B != 0)
+ ret = 1;
+ }
+ }
+
+ return ret;
+}
+
+static u8 sub_81165E8(struct UnkStruct_Main0 * arg0)
+{
+ struct UnkStruct_Leader * data = sUnionRoomMain.leader;
+ u8 copiedCount;
+ s32 i;
+ u8 ret;
+
+ for (i = 0; i < 5; i++)
+ data->field_8->arr[i] = data->field_0->arr[i];
+
+ copiedCount = 0;
+ for (i = 0; i < 5; i++)
+ {
+ if (data->field_8->arr[i].field_1A_0 == 1)
+ {
+ data->field_0->arr[copiedCount] = data->field_8->arr[i];
+ copiedCount++;
+ }
+ }
+
+ ret = copiedCount;
+ for (; copiedCount < 5; copiedCount++)
+ {
+ data->field_0->arr[copiedCount].unk = gUnknown_8457034;
+ data->field_0->arr[copiedCount].field_18 = 0;
+ data->field_0->arr[copiedCount].field_1A_0 = 0;
+ data->field_0->arr[copiedCount].field_1A_1 = 0;
+ data->field_0->arr[copiedCount].field_1B = 0;
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ if (data->field_0->arr[i].field_1A_0 != 1)
+ continue;
+ if (data->field_0->arr[i].field_1B != 0x40)
+ continue;
+
+ ret = i;
+ break;
+ }
+
+ return ret;
+}
+
+void TryJoinLinkGroup(void)
+{
+ u8 taskId;
+ struct UnkStruct_Group * dataPtr;
+
+ taskId = CreateTask(sub_8116738, 0);
+ sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data);
+ sGroup = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ gSpecialVar_Result = 0;
+}
+
+static void sub_8116738(u8 taskId)
+{
+ s32 id;
+ struct UnkStruct_Group * data = sUnionRoomMain.group;
+
+ switch (data->state)
+ {
+ case 0:
+ SetHostRFUtgtGname(gUnknown_84570C8[gSpecialVar_0x8004], 0, 0);
+ gUnknown_203B058 = gUnknown_84570C8[gSpecialVar_0x8004];
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBBD8();
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20));
+ data->state = 1;
+ break;
+ case 1:
+ if (PrintOnTextbox(&data->textState, gUnknown_84591B8[gSpecialVar_0x8004]))
+ data->state = 2;
+ break;
+ case 2:
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A5E4(data->field_0->arr, 16);
+ data->field_11 = sub_811A054(data->field_4, gSpecialVar_0x8004);
+ data->field_C = AddWindow(&gUnknown_8456CD0);
+ data->listWindowId = AddWindow(&gUnknown_8456D4C);
+ data->field_D = AddWindow(&gUnknown_8456D54);
+
+ FillWindowPixelBuffer(data->field_C, PIXEL_FILL(2));
+ sub_811A444(data->field_C, 0, gUnknown_8458FC8, 8, 2, 4);
+ PutWindowTilemap(data->field_C);
+ CopyWindowToVram(data->field_C, 2);
+
+ DrawStdWindowFrame(data->listWindowId, FALSE);
+ gMultiuseListMenuTemplate = gUnknown_8456DDC;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ DrawStdWindowFrame(data->field_D, FALSE);
+ PutWindowTilemap(data->field_D);
+ sub_8115924(data->field_D);
+ CopyWindowToVram(data->field_D, 2);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ id = sub_8116FE4();
+ switch (id)
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 0:
+ id = ListMenu_ProcessInput(data->listTaskId);
+ if (JOY_NEW(A_BUTTON) && id != -1)
+ {
+ // this unused variable along with the assignment is needed to match
+ u32 unusedVar;
+ unusedVar = data->field_0->arr[id].unk.gname.unk_0a_0;
+
+ if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.gname.unk_0a_7)
+ {
+ u32 var = sub_8116D10(data, id);
+ if (var == 0)
+ {
+ sub_8116D60(data, id);
+ data->state = 5;
+ PlaySE(SE_PN_ON);
+ }
+ else
+ {
+ StringCopy(gStringVar4, gUnknown_8457608[var - 1]);
+ data->state = 18;
+ PlaySE(SE_PN_ON);
+ }
+ }
+ else
+ {
+ PlaySE(SE_WALL_HIT);
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ data->state = 10;
+ }
+ break;
+ default:
+ RedrawListMenu(data->listTaskId);
+ break;
+ }
+ break;
+ case 5:
+ sub_811631C(gStringVar4, gUnknown_203B058);
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_F]);
+ data->state = 6;
+ }
+ break;
+ case 6:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gUnknown_203B058 = data->field_0->arr[data->field_F].unk.gname.unk_0a_0;
+ sub_80FB9E4(0, 0);
+ switch (gUnknown_203B058)
+ {
+ case 1 ... 5:
+ case 9 ... 11:
+ case 13 ... 14:
+ case 21 ... 22:
+ data->state = 20;
+ break;
+ }
+ }
+
+ switch (sub_80FB9F4())
+ {
+ case 1:
+ data->state = 12;
+ break;
+ case 2:
+ case 6:
+ case 9:
+ data->state = 14;
+ break;
+ case 5:
+ sub_81163B0(gStringVar4, gUnknown_203B058);
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ sub_80FB9E4(7, 0);
+ StringCopy(gStringVar1, gUnknown_8456C74[gUnknown_203B058]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457700);
+ }
+ break;
+ case 7:
+ if (data->field_15 > 0xF0)
+ {
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ sub_80FB9E4(12, 0);
+ data->field_15 = 0;
+ }
+ }
+ else
+ {
+ data->field_15++;
+ }
+ break;
+ }
+
+ if (!sub_80FB9F4() && JOY_NEW(B_BUTTON))
+ data->state = 7;
+ break;
+ case 7:
+ if (PrintOnTextbox(&data->textState, gUnknown_845771C))
+ data->state = 8;
+ break;
+ case 8:
+ switch (sub_811A14C(&data->textState, sub_80FB9F4()))
+ {
+ case 0:
+ sub_80FA6BC();
+ data->state = 9;
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 1:
+ case -1:
+ data->state = 5;
+ RedrawListMenu(data->listTaskId);
+ break;
+ case -3:
+ data->state = 6;
+ RedrawListMenu(data->listTaskId);
+ break;
+ }
+ break;
+ case 9:
+ if (sub_80FB9F4())
+ data->state = 6;
+ break;
+ case 10:
+ case 12:
+ case 14:
+ case 18:
+ case 20:
+ ClearWindowTilemap(data->field_D);
+ ClearStdWindowAndFrame(data->field_D, FALSE);
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ ClearWindowTilemap(data->field_C);
+ ClearStdWindowAndFrame(data->listWindowId, FALSE);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->field_D);
+ RemoveWindow(data->listWindowId);
+ RemoveWindow(data->field_C);
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 13:
+ DestroyWirelessStatusIndicatorSprite();
+ if (PrintOnTextbox(&data->textState, gUnknown_8457754[sub_80FB9F4()]))
+ {
+ gSpecialVar_Result = 6;
+ data->state = 23;
+ }
+ break;
+ case 11:
+ DestroyWirelessStatusIndicatorSprite();
+ gSpecialVar_Result = 5;
+ data->state = 23;
+ break;
+ case 15:
+ DestroyWirelessStatusIndicatorSprite();
+ if (PrintOnTextbox(&data->textState, gUnknown_8457754[sub_80FB9F4()]))
+ {
+ gSpecialVar_Result = 8;
+ data->state = 23;
+ }
+ break;
+ case 19:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ gSpecialVar_Result = 8;
+ data->state = 23;
+ }
+ break;
+ case 23:
+ DestroyTask(taskId);
+ sub_811A41C();
+ sub_80F8DC0();
+ break;
+ case 21:
+ sub_8117990();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static u32 sub_8116D10(struct UnkStruct_Group * arg0, s32 id)
+{
+ struct UnkStruct_x20 * structPtr = &arg0->field_0->arr[id];
+
+ if (gUnknown_203B058 == 4 && structPtr->unk.gname.unk_00.unk_01_2 != VERSION_FIRE_RED && structPtr->unk.gname.unk_00.unk_01_2 != VERSION_LEAF_GREEN)
+ {
+ if (!(gSaveBlock2Ptr->specialSaveWarpFlags & CHAMPION_SAVEWARP))
+ return 1;
+ else if (structPtr->unk.gname.unk_00.isChampion)
+ return 0;
+ }
+ else
+ {
+ return 0;
+ }
+
+ return 2;
+}
+
+static void sub_8116D60(struct UnkStruct_Group * data, s32 id)
+{
+ data->field_F = id;
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ RedrawListMenu(data->listTaskId);
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_F]);
+ sub_80FB008(gUnknown_84570C8[gSpecialVar_0x8004], 0, 1);
+ sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.gname.unk_00.playerTrainerId));
+}
+
+u8 sub_8116DE0(void)
+{
+ u8 taskId;
+ struct UnkStruct_Group * dataPtr;
+
+ taskId = CreateTask(sub_8116E1C, 0);
+ sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data);
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+
+ sGroup = dataPtr;
+
+ return taskId;
+}
+
+static void sub_8116E1C(u8 taskId)
+{
+ struct UnkStruct_Group * data = sUnionRoomMain.group;
+
+ switch (data->state)
+ {
+ case 0:
+ SetHostRFUtgtGname(0, 0, 0);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBBD8();
+ sub_80FB128(TRUE);
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20));
+ data->state = 2;
+ break;
+ case 2:
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A5E4(data->field_0->arr, 16);
+ data->field_11 = sub_811A054(data->field_4, 0xFF);
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ if (sub_8116FE4() == 1)
+ PlaySE(SE_PC_LOGIN);
+ if (gTasks[taskId].data[15] == 0xFF)
+ data->state = 10;
+ break;
+ case 10:
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ sub_80F8DC0();
+ data->state++;
+ break;
+ case 11:
+ sub_80F8DC0();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static bool32 sub_8116F28(u32 arg0, u32 id)
+{
+ if (id == 0xFF)
+ return TRUE;
+
+ if (id <= NELEMS(gUnknown_8457094)) // UB: <= may access data outside the array
+ {
+ const u8 *bytes = gUnknown_8457094[id];
+
+ while ((*(bytes) != 0xFF))
+ {
+ if ((*bytes) == arg0)
+ return TRUE;
+ bytes++;
+ }
+ }
+
+ return FALSE;
+}
+
+static u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id)
+{
+ if (data->field_0->arr[id].field_1A_0 == 1)
+ {
+ if (data->field_0->arr[id].unk.gname.unk_0a_7)
+ return 3;
+ else if (data->field_0->arr[id].field_1A_1 != 0)
+ return 1;
+ else if (data->field_0->arr[id].field_1B != 0)
+ return 2;
+ }
+
+ return 0;
+}
+
+static void sub_8116F94(u8 windowId, s32 itemId, u8 y)
+{
+ struct UnkStruct_Group * data = sUnionRoomMain.group;
+ u8 var = sub_8116F5C(data, itemId);
+
+ sub_811A81C(windowId, 8, y, &data->field_0->arr[itemId], var, itemId);
+}
+
+static u8 sub_8116FE4(void)
+{
+ struct UnkStruct_Group * data = sUnionRoomMain.group;
+ u8 ret = 0;
+ u8 i;
+ s32 id;
+
+ for (i = 0; i < 16; i++)
+ {
+ if (data->field_0->arr[i].field_1A_0 != 0)
+ {
+ id = sub_811A748(&data->field_0->arr[i], data->field_4->arr);
+ if (id != 0xFF)
+ {
+ if (data->field_0->arr[i].field_1A_0 == 1)
+ {
+ if (sub_811A6DC(&data->field_0->arr[i].unk, &data->field_4->arr[id].unk0))
+ {
+ data->field_0->arr[i].unk = data->field_4->arr[id].unk0;
+ data->field_0->arr[i].field_1B = 0x40;
+ ret = 1;
+ }
+ else
+ {
+ if (data->field_0->arr[i].field_1B != 0)
+ {
+ data->field_0->arr[i].field_1B--;
+ if (data->field_0->arr[i].field_1B == 0)
+ ret = 2;
+ }
+ }
+ }
+ else
+ {
+ data->field_0->arr[i].field_1A_0 = 1;
+ data->field_0->arr[i].field_1B = 0x40;
+ ret = 1;
+ }
+
+ data->field_0->arr[i].field_18 = 0;
+ }
+ else
+ {
+ if (data->field_0->arr[i].field_1A_0 != 2)
+ {
+ data->field_0->arr[i].field_18++;
+ if (data->field_0->arr[i].field_18 >= 300)
+ {
+ data->field_0->arr[i].field_1A_0 = 2;
+ ret = 2;
+ }
+ }
+ }
+ }
+ }
+
+ for (id = 0; id < 4; id++)
+ {
+ if (sub_811A798(data->field_0->arr, &data->field_4->arr[id], 16) != 0xFF)
+ ret = 1;
+ }
+
+ return ret;
+}
+
+static void sub_8117100(u8 taskId)
+{
+ CB2_ReturnFromLinkTrade();
+ DestroyTask(taskId);
+}
+
+u8 sub_8117118(void)
+{
+ u8 taskId = CreateTask(sub_8117100, 0);
+
+ return taskId;
+}
+
+static void sub_8117130(u8 taskId)
+{
+ u32 monId = GetPartyPositionOfRegisteredMon(&sUnionRoomTrade, GetMultiplayerId());
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ gTasks[taskId].data[0]++;
+ SendBlock(0, &gPlayerParty[monId], sizeof(struct Pokemon));
+ break;
+ case 1:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]);
+ IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES);
+ ResetBlockReceivedFlags();
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct MailStruct) * PARTY_SIZE + 4);
+ if (SendBlock(0, gBlockSendBuffer, sizeof(struct MailStruct) * PARTY_SIZE + 4))
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ memcpy(gLinkPartnerMail, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct MailStruct) * PARTY_SIZE);
+ ResetBlockReceivedFlags();
+ gSelectedTradeMonPositions[TRADE_PLAYER] = monId;
+ gSelectedTradeMonPositions[TRADE_PARTNER] = PARTY_SIZE;
+ gMain.savedCallback = CB2_ReturnToField;
+ SetMainCallback2(CB2_InitTradeAnim_LinkTrade);
+ ResetUnionRoomTrade(&sUnionRoomTrade);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void sub_8117280(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (GetMultiplayerId() == 0)
+ sub_800A474(2);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if (GetBlockReceivedStatus() == sub_800A8D4())
+ {
+ s32 i;
+ u16 *recvBuff;
+
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ {
+ recvBuff = gBlockRecvBuffer[i];
+ CopyTrainerCardData(gTrainerCards[i], recvBuff, gLinkPlayers[i].version);
+ }
+
+ if (GetLinkPlayerCount() == 2)
+ {
+ recvBuff = gBlockRecvBuffer[GetMultiplayerId() ^ 1];
+ sub_81446D0(recvBuff[48]);
+ }
+ else
+ {
+ sub_81446C4();
+ }
+
+ ResetBlockReceivedFlags();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void sub_8117354(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ CreateTask(sub_8117280, 5);
+ gMain.state++;
+ break;
+ case 1:
+ if (!FuncIsActiveTask(sub_8117280))
+ ShowTrainerCardInLink(GetMultiplayerId() ^ 1, CB2_ReturnToField);
+ break;
+ }
+
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void sub_81173C0(u16 battleFlags)
+{
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ gLinkPlayers[0].linkType = LINKTYPE_BATTLE;
+ gLinkPlayers[GetMultiplayerId()].id = GetMultiplayerId();
+ gLinkPlayers[GetMultiplayerId() ^ 1].id = GetMultiplayerId() ^ 1;
+ gMain.savedCallback = sub_8081668;
+ gBattleTypeFlags = battleFlags;
+ PlayBattleBGM();
+}
+
+static void sub_8117440(u16 linkService, u16 x, u16 y)
+{
+ VarSet(VAR_CABLE_CLUB_STATE, linkService);
+ SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
+ SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
+ WarpIntoMap();
+}
+
+static void sub_81174B4(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 linkService)
+{
+ gSpecialVar_0x8004 = linkService;
+ VarSet(VAR_CABLE_CLUB_STATE, linkService);
+ gFieldLinkPlayerCount = GetLinkPlayerCount();
+ gLocalLinkPlayerId = GetMultiplayerId();
+ SetCableClubWarp();
+ SetWarpDestination(mapGroup, mapNum, -1, x, y);
+ WarpIntoMap();
+}
+
+static void sub_8117534(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ CreateTask(sub_8117280, 5);
+ gMain.state++;
+ break;
+ case 1:
+ if (!FuncIsActiveTask(sub_8117280))
+ SetMainCallback2(sub_8056788);
+ break;
+ }
+
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+static void sub_8117594(void *arg0, bool32 arg1)
+{
+ TrainerCard_GenerateCardForLinkPlayer((struct TrainerCard * )arg0);
+ if (arg1)
+ *((u16 *)(arg0 + sizeof(struct TrainerCard))) = GetWonderCardFlagId();
+ else
+ *((u16 *)(arg0 + sizeof(struct TrainerCard))) = 0;
+}
+
+static void sub_81175BC(u8 taskId)
+{
+ sub_81446C4();
+ switch (gUnknown_203B058)
+ {
+ case 1 ... 4:
+ case 9 ... 11:
+ case 13:
+ case 14:
+ RecordMixTrainerNames();
+ break;
+ }
+
+ switch (gUnknown_203B058)
+ {
+ case 65:
+ case 81:
+ CleanupOverworldWindowsAndTilemaps();
+ gMain.savedCallback = sub_811C1C8;
+ InitChooseHalfPartyForBattle(2);
+ break;
+ case 1:
+ CleanupOverworldWindowsAndTilemaps();
+ sub_8117594(gBlockSendBuffer, TRUE);
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ sub_81174B4(MAP_GROUP(BATTLE_COLOSSEUM_2P), MAP_NUM(BATTLE_COLOSSEUM_2P), 6, 8, USING_SINGLE_BATTLE);
+ SetMainCallback2(sub_8117534);
+ break;
+ case 2:
+ CleanupOverworldWindowsAndTilemaps();
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ sub_8117594(gBlockSendBuffer, TRUE);
+ sub_81174B4(MAP_GROUP(BATTLE_COLOSSEUM_2P), MAP_NUM(BATTLE_COLOSSEUM_2P), 6, 8, USING_DOUBLE_BATTLE);
+ SetMainCallback2(sub_8117534);
+ break;
+ case 3:
+ CleanupOverworldWindowsAndTilemaps();
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ sub_8117594(gBlockSendBuffer, TRUE);
+ sub_81174B4(MAP_GROUP(BATTLE_COLOSSEUM_4P), MAP_NUM(BATTLE_COLOSSEUM_4P), 5, 8, USING_MULTI_BATTLE);
+ SetMainCallback2(sub_8117534);
+ break;
+ case 4:
+ sub_8117594(gBlockSendBuffer, TRUE);
+ CleanupOverworldWindowsAndTilemaps();
+ sub_81174B4(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, USING_TRADE_CENTER);
+ SetMainCallback2(sub_8117534);
+ break;
+ case 68:
+ CreateTask(sub_8117130, 0);
+ break;
+ case 5:
+ case 69:
+ if (GetMultiplayerId() == 0)
+ {
+ sub_80F8CFC();
+ }
+ else
+ {
+ sub_80F8D14();
+ SetHostRFUtgtGname(69, 0, 1);
+ }
+ sub_8128420();
+ break;
+ case 8:
+ case 72:
+ sub_8117594(gBlockSendBuffer, FALSE);
+ SetMainCallback2(sub_8117354);
+ break;
+ case 9:
+ sub_8117440(USING_MINIGAME, 5, 1);
+ sub_8147AA8(GetCursorSelectionMonId(), CB2_LoadMap);
+ break;
+ case 10:
+ sub_8117440(USING_BERRY_CRUSH, 9, 1);
+ sub_814B754(CB2_LoadMap);
+ break;
+ case 11:
+ sub_8117440(USING_MINIGAME, 5, 1);
+ sub_81507FC(GetCursorSelectionMonId(), CB2_LoadMap);
+ break;
+ }
+
+ DestroyTask(taskId);
+ gSpecialVar_Result = 1;
+ ScriptContext2_Disable();
+}
+
+static void sub_8117900(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 *sendBuff = (u16*)(gBlockSendBuffer);
+
+ switch (data[0])
+ {
+ case 0:
+ gSpecialVar_Result = 1;
+ EnableBothScriptContexts();
+ data[0]++;
+ break;
+ case 1:
+ if (!ScriptContext1_IsScriptSetUp())
+ {
+ FadeScreen(FADE_TO_BLACK, 0);
+ data[0]++;
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ sub_800AB9C();
+ data[0]++;
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ DestroyTask(taskId);
+ sub_81179A4();
+ }
+ break;
+ }
+}
+
+static void sub_8117990(void)
+{
+ CreateTask(sub_8117900, 0);
+}
+
+static void sub_81179A4(void)
+{
+ u8 taskId = CreateTask(sub_81175BC, 0);
+ gTasks[taskId].data[0] = 0;
+}
+
+void MEvent_CreateTask_Leader(u32 arg0)
+{
+ u8 taskId;
+ struct UnkStruct_Leader * dataPtr;
+
+ taskId = CreateTask(sub_8117A0C, 0);
+ sUnionRoomMain.leader = dataPtr = (void*)(gTasks[taskId].data);
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_18 = arg0;
+ gSpecialVar_Result = 0;
+}
+
+static void sub_8117A0C(u8 taskId)
+{
+ struct UnkStruct_Leader * data = sUnionRoomMain.leader;
+ struct WindowTemplate winTemplate;
+ s32 val;
+
+ switch (data->state)
+ {
+ case 0:
+ gUnknown_203B058 = data->field_18;
+ gUnknown_203B059 = 2;
+ SetHostRFUtgtGname(data->field_18, 0, 0);
+ sub_80FAF74(FALSE, FALSE);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBB8C(2);
+ data->state = 1;
+ break;
+ case 1:
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(5 * sizeof(struct UnkStruct_x20));
+ data->field_8 = AllocZeroed(5 * sizeof(struct UnkStruct_x20));
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A5E4(data->field_0->arr, 5);
+ LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.gname, data->field_0->arr[0].unk.playerName);
+ data->field_0->arr[0].field_18 = 0;
+ data->field_0->arr[0].field_1A_0 = 1;
+ data->field_0->arr[0].field_1A_1 = 0;
+ data->field_0->arr[0].field_1B = 0;
+ data->field_17 = sub_811A054(data->field_4, 0xFF);
+
+ winTemplate = gUnknown_8456CFC;
+ winTemplate.baseBlock = GetMysteryGiftBaseBlock();
+ data->listWindowId = AddWindow(&winTemplate);
+ MG_DrawTextBorder(data->listWindowId);
+ gMultiuseListMenuTemplate = gUnknown_8456D34;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_13 = 1;
+ data->state = 2;
+ break;
+ case 2:
+ StringCopy(gStringVar1, gUnknown_8456C74[gUnknown_203B058]);
+ sub_811599C(gStringVar4, gUnknown_203B058);
+ data->state = 3;
+ break;
+ case 3:
+ AddTextPrinterToWindow1(gStringVar4);
+ data->state = 4;
+ break;
+ case 4:
+ sub_8116444(data, 5, 6);
+ if (JOY_NEW(B_BUTTON))
+ {
+ data->state = 13;
+ DestroyWirelessStatusIndicatorSprite();
+ }
+ break;
+ case 6:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577F8))
+ {
+ data->field_13 = sub_81165E8(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 2;
+ }
+ break;
+ case 5:
+ data->state = 7;
+ break;
+ case 7:
+ switch (mevent_message_print_and_prompt_yes_no(&data->textState, (u16 *)&data->field_14, FALSE, gStringVar4))
+ {
+ case 0:
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ data->field_0->arr[data->field_13].field_1B = 0;
+ RedrawListMenu(data->listTaskId);
+ data->field_19 = 5;
+ sub_80FA670(5, ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 8;
+ break;
+ case 1:
+ case -1:
+ data->field_19 = 6;
+ sub_80FA670(6, ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 8;
+ break;
+ }
+ break;
+ case 8:
+ val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ if (val == 1)
+ {
+ if (data->field_19 == 5)
+ {
+ data->field_0->arr[data->field_13].field_1B = 0;
+ RedrawListMenu(data->listTaskId);
+ data->field_13++;
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_13 - 1]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457554);
+ data->state = 9;
+ sub_80F8F5C();
+ }
+ else
+ {
+ sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.gname.unk_00.playerTrainerId));
+ data->field_0->arr[data->field_13].field_1A_0 = 0;
+ sub_81165E8(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 2;
+ }
+
+ data->field_19 = 0;
+ }
+ else if (val == 2)
+ {
+ sub_80FB9E4(0, 0);
+ data->state = 2;
+ }
+ break;
+ case 9:
+ AddTextPrinterToWindow1(gStringVar4);
+ data->state = 10;
+ break;
+ case 10:
+ if (++data->field_E > 120)
+ data->state = 11;
+ break;
+ case 11:
+ if (!sub_8116444(data, 5, 6))
+ data->state = 12;
+ break;
+ case 12:
+ if (sub_80F8F40())
+ {
+ sub_80F8F7C(FALSE);
+ data->state = 15;
+ }
+ else
+ {
+ data->state = 6;
+ }
+ break;
+ case 13:
+ DestroyWirelessStatusIndicatorSprite();
+ sub_80F8DC0();
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->listWindowId);
+ DestroyTask(data->field_17);
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 14:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571B8))
+ {
+ DestroyTask(taskId);
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 15:
+ if (sub_80FB9F4() == 1 || sub_80FB9F4() == 2)
+ {
+ data->state = 13;
+ }
+ else if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_80FAFE0(1);
+ data->state++;
+ }
+ break;
+ case 16:
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->listWindowId);
+ DestroyTask(data->field_17);
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_4);
+ sub_800AB9C();
+ data->state++;
+ break;
+ case 17:
+ if (IsLinkTaskFinished())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0)
+{
+ u8 taskId;
+ struct UnkStruct_Group * dataPtr;
+
+ taskId = CreateTask(sub_8117F20, 0);
+ sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data);
+ sGroup = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_12 = arg0 - 21;
+ gSpecialVar_Result = 0;
+}
+
+static void sub_8117F20(u8 taskId)
+{
+ s32 id;
+ struct WindowTemplate winTemplate1, winTemplate2;
+ struct UnkStruct_Group * data = sUnionRoomMain.group;
+
+ switch (data->state)
+ {
+ case 0:
+ SetHostRFUtgtGname(data->field_12 + 21, 0, 0);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBBD8();
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20));
+ data->state = 1;
+ break;
+ case 1:
+ AddTextPrinterToWindow1(gUnknown_8458FE4);
+ data->state = 2;
+ break;
+ case 2:
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A5E4(data->field_0->arr, 16);
+ data->field_11 = sub_811A054(data->field_4, data->field_12 + 7);
+
+ winTemplate1 = gUnknown_8456D4C;
+ winTemplate1.baseBlock = GetMysteryGiftBaseBlock();
+ data->listWindowId = AddWindow(&winTemplate1);
+
+ data->field_D = AddWindow(&gUnknown_8456D54);
+
+ MG_DrawTextBorder(data->listWindowId);
+ gMultiuseListMenuTemplate = gUnknown_8456DDC;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ MG_DrawTextBorder(data->field_D);
+ FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1));
+ PutWindowTilemap(data->field_D);
+ sub_8115924(data->field_D);
+ CopyWindowToVram(data->field_D, 2);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ id = sub_8116FE4();
+ switch (id)
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ default:
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 0:
+ id = ListMenu_ProcessInput(data->listTaskId);
+ if (JOY_NEW(A_BUTTON) && id != -1)
+ {
+ // this unused variable along with the assignment is needed to match
+ u32 unusedVar;
+ unusedVar = data->field_0->arr[id].unk.gname.unk_0a_0;
+
+ if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.gname.unk_0a_7)
+ {
+ data->field_F = id;
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ RedrawListMenu(data->listTaskId);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]);
+ sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.gname.unk_00.playerTrainerId));
+ PlaySE(SE_PN_ON);
+ data->state = 4;
+ }
+ else
+ {
+ PlaySE(SE_WALL_HIT);
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ data->state = 6;
+ }
+ break;
+ }
+ break;
+ case 4:
+ AddTextPrinterToWindow1(gUnknown_8459238);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]);
+ data->state = 5;
+ break;
+ case 5:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gUnknown_203B058 = data->field_0->arr[data->field_F].unk.gname.unk_0a_0;
+ data->state = 10;
+ }
+
+ switch (sub_80FB9F4())
+ {
+ case 1:
+ case 2:
+ case 6:
+ data->state = 8;
+ break;
+ case 5:
+ AddTextPrinterToWindow1(gUnknown_84576AC);
+ sub_80FB9E4(0, 0);
+ break;
+ }
+ break;
+ case 6:
+ case 8:
+ case 10:
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->field_D);
+ RemoveWindow(data->listWindowId);
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 9:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_8457838[sub_80FB9F4()]))
+ {
+ DestroyWirelessStatusIndicatorSprite();
+ DestroyTask(taskId);
+ sub_80F8DC0();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 7:
+ DestroyWirelessStatusIndicatorSprite();
+ AddTextPrinterToWindow1(gUnknown_84571B8);
+ DestroyTask(taskId);
+ sub_80F8DC0();
+ gSpecialVar_Result = 5;
+ break;
+ case 11:
+ data->state++;
+ sub_800AB9C();
+ break;
+ case 12:
+ if (IsLinkTaskFinished())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0)
+{
+ u8 taskId;
+ struct UnkStruct_Group * dataPtr;
+
+ taskId = CreateTask(sub_81182DC, 0);
+ sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data);
+ sGroup = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_12 = arg0 - 21;
+ gSpecialVar_Result = 0;
+}
+
+static void sub_81182DC(u8 taskId)
+{
+ s32 id;
+ struct WindowTemplate winTemplate;
+ struct UnkStruct_Group * data = sUnionRoomMain.group;
+
+ switch (data->state)
+ {
+ case 0:
+ SetHostRFUtgtGname(0, 0, 0);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBBD8();
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20));
+ data->state = 1;
+ break;
+ case 1:
+ AddTextPrinterToWindow1(gUnknown_84591DC);
+ data->state = 2;
+ break;
+ case 2:
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A5E4(data->field_0->arr, 16);
+ data->field_11 = sub_811A084(data->field_4, data->field_12 + 7);
+
+ if (data->field_13 != 0)
+ {
+ winTemplate = gUnknown_8456D4C;
+ winTemplate.baseBlock = GetMysteryGiftBaseBlock();
+ data->listWindowId = AddWindow(&winTemplate);
+
+ MG_DrawTextBorder(data->listWindowId);
+ gMultiuseListMenuTemplate = gUnknown_8456DDC;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ CopyBgTilemapBufferToVram(0);
+ }
+
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ id = sub_8116FE4();
+ switch (id)
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ default:
+ if (data->field_13 != 0)
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 0:
+ if (data->field_13 != 0)
+ id = ListMenu_ProcessInput(data->listTaskId);
+ if (data->field_14 > 120)
+ {
+ if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.gname.unk_0a_7)
+ {
+ if (sub_8119FB0(&data->field_0->arr[0].unk.gname, data->field_12 + 7))
+ {
+ data->field_F = 0;
+ data->field_14 = 0;
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ sub_80FBF54(data->field_0->arr[0].unk.playerName, ReadAsU16(data->field_0->arr[0].unk.gname.unk_00.playerTrainerId));
+ PlaySE(SE_PN_ON);
+ data->state = 4;
+ }
+ else
+ {
+ PlaySE(SE_BOO);
+ data->state = 10;
+ }
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ data->state = 6;
+ data->field_14 = 0;
+ }
+ data->field_14++;
+ break;
+ }
+ break;
+ case 4:
+ AddTextPrinterToWindow1(gUnknown_845928C);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]);
+ data->state = 5;
+ break;
+ case 5:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gUnknown_203B058 = data->field_0->arr[data->field_F].unk.gname.unk_0a_0;
+ data->state = 12;
+ }
+
+ switch (sub_80FB9F4())
+ {
+ case 1:
+ case 2:
+ case 6:
+ data->state = 8;
+ break;
+ case 5:
+ AddTextPrinterToWindow1(gUnknown_845777C);
+ sub_80FB9E4(0, 0);
+ break;
+ }
+ break;
+ case 6:
+ case 8:
+ case 10:
+ case 12:
+ if (data->field_13 != 0)
+ {
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->listWindowId);
+ }
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 9:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577BC))
+ {
+ DestroyWirelessStatusIndicatorSprite();
+ DestroyTask(taskId);
+ sub_80F8DC0();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 7:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571E0))
+ {
+ DestroyWirelessStatusIndicatorSprite();
+ DestroyTask(taskId);
+ sub_80F8DC0();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 11:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_845933C[data->field_12]))
+ {
+ DestroyWirelessStatusIndicatorSprite();
+ DestroyTask(taskId);
+ sub_80F8DC0();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 13:
+ data->state++;
+ sub_800AB9C();
+ break;
+ case 14:
+ if (IsLinkTaskFinished())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void UnionRoomSpecial(void)
+{
+ struct UnkStruct_URoom * dataPtr;
+
+ ClearAndInitHostRFUtgtGname();
+ CreateTask(sub_81186E0, 10);
+
+ // dumb line needed to match
+ sUnionRoomMain.uRoom = sUnionRoomMain.uRoom;
+
+ dataPtr = AllocZeroed(sizeof(*sUnionRoomMain.uRoom));
+ sUnionRoomMain.uRoom = dataPtr;
+ sURoom = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_10 = 0;
+ dataPtr->field_12 = 0;
+
+ gSpecialVar_Result = 0;
+ sub_8107D38(0xD0, 1);
+}
+
+static u16 ReadAsU16(const u8 *ptr)
+{
+ return (ptr[1] << 8) | (ptr[0]);
+}
+
+static void sub_8118664(u32 nextState, const u8 *src)
+{
+ struct UnkStruct_URoom * data = sUnionRoomMain.uRoom;
+
+ data->state = 8;
+ data->stateAfterPrint = nextState;
+ if (src != gStringVar4)
+ StringExpandPlaceholders(gStringVar4, src);
+}
+
+static void sub_811868C(const u8 *src)
+{
+ struct UnkStruct_URoom * data = sUnionRoomMain.uRoom;
+
+ data->state = 26;
+ if (src != gStringVar4)
+ StringExpandPlaceholders(gStringVar4, src);
+}
+
+static void sub_81186B0(struct UnkStruct_URoom * data)
+{
+ memcpy(&gDecompressionBuffer[0x3F00], data->field_0, 8 * sizeof(struct UnkStruct_x20));
+}
+
+static void sub_81186C8(struct UnkStruct_URoom * data)
+{
+ memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 8 * sizeof(struct UnkStruct_x20));
+}
+
+static void sub_81186E0(u8 taskId)
+{
+ u32 id = 0;
+ s32 var5 = 0;
+ s32 playerGender = MALE;
+ struct UnkStruct_URoom * data = sUnionRoomMain.uRoom;
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (data->state)
+ {
+ case 0:
+ data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_C = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ data->field_0 = AllocZeroed(8 * sizeof(struct UnkStruct_x20));
+ data->field_8 = AllocZeroed(sizeof(struct UnkStruct_x20));
+ sub_811A5E4(data->field_0->arr, 8);
+ gUnknown_203B058 = 0x40;
+ data->field_20 = sub_8119E84(data->field_C, data->field_4, 9);
+ ZeroUnionObjWork(data->unionObjs);
+ sub_811BB68();
+ data->state = 1;
+ break;
+ case 1:
+ sub_811BAAC(data->spriteIds, taskData[0]);
+ if (++taskData[0] == 8)
+ data->state = 2;
+ break;
+ case 2:
+ SetHostRFUtgtGname(0x40, 0, 0);
+ sub_80FAFA0(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBC00();
+ sub_811A5E4(&data->field_8->arr[0], 1);
+ sub_811A650(data->field_4->arr, 4);
+ sub_811A650(data->field_C->arr, 4);
+ gSpecialVar_Result = 0;
+ data->state = 3;
+ break;
+ case 3:
+ if ((GetPartyMenuType() == PARTY_MENU_TYPE_UNION_ROOM_REGISTER
+ || GetPartyMenuType() == PARTY_MENU_TYPE_UNION_ROOM_TRADE)
+ && sUnionRoomTrade.field_0 != 0)
+ {
+ id = GetCursorSelectionMonId();
+ switch (sUnionRoomTrade.field_0)
+ {
+ case 1:
+ sub_80FB008(0x54, 0, 1);
+ if (id >= PARTY_SIZE)
+ {
+ ResetUnionRoomTrade(&sUnionRoomTrade);
+ sub_80FAFA0(0, 0, 0);
+ sub_811868C(gUnknown_8458D54);
+ }
+ else if (!RegisterTradeMonAndGetIsEgg(GetCursorSelectionMonId(), &sUnionRoomTrade))
+ {
+ sub_8118664(0x34, gUnknown_8458CD4);
+ }
+ else
+ {
+ data->state = 55;
+ }
+ break;
+ case 2:
+ sub_81186C8(data);
+ taskData[1] = sUnionRoomTrade.field_8;
+ if (id >= PARTY_SIZE)
+ {
+ sub_811868C(gUnknown_8458D9C);
+ }
+ else
+ {
+ sub_80FB008(0x54, 0, 1);
+ gUnknown_203B058 = 0x44;
+ RegisterTradeMon(GetCursorSelectionMonId(), &sUnionRoomTrade);
+ data->state = 51;
+ }
+ break;
+ }
+ sUnionRoomTrade.field_0 = 0;
+ }
+ else
+ {
+ data->state = 4;
+ }
+ break;
+ case 4:
+ if (gSpecialVar_Result != 0)
+ {
+ if (gSpecialVar_Result == 9)
+ {
+ sub_80FB008(0x54, 0, 1);
+ PlaySE(SE_PC_LOGIN);
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ data->state = 42;
+ gSpecialVar_Result = 0;
+ }
+ else if (gSpecialVar_Result == 11)
+ {
+ sub_80FB008(0x54, 0, 1);
+ data->state = 23;
+ gSpecialVar_Result = 0;
+ }
+ else
+ {
+ taskData[0] = 0;
+ taskData[1] = gSpecialVar_Result - 1;
+ data->state = 24;
+ gSpecialVar_Result = 0;
+ }
+ }
+ else if (ScriptContext2_IsEnabled() != TRUE)
+ {
+ if (JOY_NEW(A_BUTTON))
+ {
+ if (sub_811BF00(data->field_0, &taskData[0], &taskData[1], data->spriteIds))
+ {
+ PlaySE(SE_SELECT);
+ sub_811B298();
+ data->state = 24;
+ break;
+ }
+ else if (sub_811A9B8())
+ {
+ sub_80FB008(0x54, 0, 1);
+ PlaySE(SE_PC_LOGIN);
+ sub_811B298();
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ data->state = 45;
+ break;
+ }
+ }
+
+ switch (sub_8119B94())
+ {
+ case 1:
+ PlaySE(SE_TOY_C);
+ case 2:
+ sub_811BECC(data);
+ break;
+ case 4:
+ data->state = 11;
+ sub_811B298();
+ sub_80FAFA0(0, 0, 0);
+ sub_80FB008(0x53, sub_811B2D8(data), 0);
+ break;
+ }
+ sub_811BEDC(data);
+ }
+ break;
+ case 23:
+ if (!FuncIsActiveTask(Task_StartMenuHandleInput))
+ {
+ sub_80FB008(0x40, 0, 0);
+ data->state = 4;
+ }
+ break;
+ case 24:
+ sub_811A0E0();
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ sub_80FB008(0x54, 0, 1);
+ switch (sub_811AA5C(data->field_0, taskData[0], taskData[1], playerGender))
+ {
+ case 0:
+ data->state = 26;
+ break;
+ case 1:
+ sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.gname, gUnknown_203B058);
+ data->field_12 = id; // Should be just 0, but won't match any other way.
+ data->state = 25;
+ break;
+ case 2:
+ sub_8118664(0x13, gStringVar4);
+ break;
+ }
+ break;
+ case 25:
+ sub_811A0E0();
+ switch (sub_80FB9F4())
+ {
+ case 4:
+ sub_811B258(TRUE);
+ data->state = 4;
+ break;
+ case 1:
+ case 2:
+ if (sub_80FBB0C() == TRUE)
+ sub_811868C(gUnknown_8457F90);
+ else
+ sub_8118664(30, gUnknown_8457F90);
+
+ gUnknown_203B058 = 0x40;
+ break;
+ }
+
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_8117594(gBlockSendBuffer, TRUE);
+ CreateTask(sub_8117280, 5);
+ data->state = 38;
+ }
+ break;
+ case 38:
+ if (!FuncIsActiveTask(sub_8117280))
+ {
+ if (gUnknown_203B058 == 0x44)
+ sub_8118664(31, gUnknown_84578BC);
+ else
+ data->state = 5;
+ }
+ break;
+ case 30:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ sub_811B258(FALSE);
+ sub_811C028(taskData[0], taskData[1], data->field_0);
+ data->state = 2;
+ }
+ break;
+ case 5:
+ id = sub_811AA24(&data->field_0->arr[taskData[1]]);
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ sub_8118664(6, gUnknown_8457B04[id][playerGender]);
+ break;
+ case 6:
+ var5 = sub_811A218(&data->textState, &data->field_1B, &data->field_1C, &gUnknown_8456DF4, &gUnknown_8456E1C);
+ if (var5 != -1)
+ {
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ data->state = 28;
+ }
+ else
+ {
+ data->field_98 = 0;
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ if (var5 == -2 || var5 == 0x40)
+ {
+ data->field_4C[0] = 0x40;
+ sub_80F9E2C(data->field_4C);
+ StringCopy(gStringVar4, gUnknown_845842C[gLinkPlayers[0].gender]);
+ data->state = 32;
+ }
+ else
+ {
+ gUnknown_203B058 = var5;
+ gUnknown_203B059 = (u32)(var5) >> 8;
+ if (gUnknown_203B058 == 0x41 && !HasAtLeastTwoMonsOfLevel30OrLower())
+ {
+ sub_8118664(5, gUnknown_845847C);
+ }
+ else
+ {
+ data->field_4C[0] = gUnknown_203B058 | 0x40;
+ sub_80F9E2C(data->field_4C);
+ data->state = 27;
+ }
+ }
+ }
+ }
+ break;
+ case 28:
+ StringCopy(gStringVar4, gUnknown_8458434);
+ data->state = 36;
+ break;
+ case 27:
+ sub_811B0A4(data);
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ id = sub_811A9FC(data->field_4C[0] & 0x3F);
+ if (PrintOnTextbox(&data->textState, gUnknown_84580F4[playerGender][id]))
+ {
+ taskData[3] = 0;
+ data->state = 29;
+ }
+ break;
+ case 32:
+ sub_800AAC0();
+ data->state = 36;
+ break;
+ case 31:
+ data->field_4C[0] = 0x44;
+ data->field_4C[1] = sUnionRoomTrade.species;
+ data->field_4C[2] = sUnionRoomTrade.level;
+ sub_80F9E2C(data->field_4C);
+ data->state = 29;
+ break;
+ case 29:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ StringCopy(gStringVar4, gUnknown_8458434);
+ data->state = 28;
+ }
+ else
+ {
+ sub_811B0A4(data);
+ if (data->field_98 == 0x51)
+ {
+ if (gUnknown_203B058 == 8)
+ {
+ sub_811B31C(gStringVar4, data, FALSE);
+ data->state = 40;
+ }
+ else
+ {
+ data->state = 13;
+ }
+ }
+ else if (data->field_98 == 0x52)
+ {
+ data->state = 32;
+ sub_811AE68(gStringVar4, gUnknown_203B058 | 0x40, gLinkPlayers[0].gender);
+ gUnknown_203B058 = 0;
+ }
+ }
+ break;
+
+ case 7:
+ id = sub_811AA24(&data->field_0->arr[taskData[1]]);
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ sub_8118664(6, gUnknown_8457B04[id][playerGender]);
+ break;
+ case 40:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ data->state = 41;
+ sub_800AB9C();
+ data->field_98 = 0;
+ data->field_9A[0] = 0;
+ }
+ break;
+ case 41:
+ if (IsLinkTaskFinished())
+ {
+ if (GetMultiplayerId() == 0)
+ {
+ StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name);
+ id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name);
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457C20[id]);
+ data->state = 33;
+ }
+ else
+ {
+ data->state = 7;
+ }
+ }
+ break;
+ case 19:
+ switch (sub_811A14C(&data->textState, FALSE))
+ {
+ case 0:
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203B058 = 0x45;
+ sub_80FB008(0x45, 0, 1);
+ sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.gname, gUnknown_203B058);
+ data->field_12 = taskData[1];
+ data->state = 20;
+ taskData[3] = 0;
+ break;
+ case 1:
+ case -1:
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ sub_811868C(gUnknown_8458548[playerGender]);
+ break;
+ }
+ break;
+ case 20:
+ if (++taskData[2] > 60)
+ {
+ data->state = 21;
+ taskData[2] = 0;
+ }
+ break;
+ case 21:
+ switch (sub_80FB9F4())
+ {
+ case 4:
+ sub_811B258(TRUE);
+ data->state = 4;
+ break;
+ case 1:
+ case 2:
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ sub_80FB008(0x54, 0, 1);
+ if (sub_80FBB0C() == TRUE)
+ sub_811868C(gUnknown_84585E8[playerGender]);
+ else
+ sub_8118664(30, gUnknown_84585E8[playerGender]);
+ break;
+ case 3:
+ data->state = 22;
+ break;
+ }
+ taskData[3]++;
+ break;
+ case 22:
+ if (sub_80FBA00())
+ {
+ playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0);
+ sub_80FB008(0x54, 0, 1);
+ if (sub_80FBB0C() == TRUE)
+ sub_811868C(gUnknown_84585E8[playerGender]);
+ else
+ sub_8118664(30, gUnknown_84585E8[playerGender]);
+ }
+ if (gReceivedRemoteLinkPlayers != 0)
+ data->state = 16;
+ break;
+ case 11:
+ PlaySE(SE_PINPON);
+ sub_80F8FA0();
+ data->state = 12;
+ data->field_9A[0] = 0;
+ break;
+ case 12:
+ if (sub_80FBA00())
+ {
+ sub_811B258(FALSE);
+ data->state = 2;
+ }
+ else if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_8117594(gBlockSendBuffer, TRUE);
+ CreateTask(sub_8117280, 5);
+ data->state = 39;
+ }
+ break;
+ case 39:
+ sub_8119904(data);
+ if (!FuncIsActiveTask(sub_8117280))
+ {
+ data->state = 33;
+ StringCopy(gStringVar1, gLinkPlayers[1].name);
+ id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name);
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457BCC[id]);
+ }
+ break;
+ case 33:
+ sub_8119904(data);
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = 34;
+ break;
+ case 34:
+ sub_8119904(data);
+ if (sub_8119944(data) && JOY_NEW(B_BUTTON))
+ {
+ sub_80FBD6C(1);
+ StringCopy(gStringVar4, gUnknown_8457E60);
+ data->state = 36;
+ }
+ break;
+ case 35:
+ sub_8118664(9, gStringVar4);
+ break;
+ case 9:
+ switch (sub_811A14C(&data->textState, FALSE))
+ {
+ case 0:
+ data->field_4C[0] = 0x51;
+ if (gUnknown_203B058 == 0x45)
+ sub_80FB008(gUnknown_203B058 | 0x40, sub_811B2A8(1), 0);
+ else
+ sub_80FB008(gUnknown_203B058 | 0x40, sub_811B2A8(1), 1);
+
+ data->field_8->arr[0].field_1B = 0;
+ taskData[3] = 0;
+ if (gUnknown_203B058 == 0x41)
+ {
+ if (!HasAtLeastTwoMonsOfLevel30OrLower())
+ {
+ data->field_4C[0] = 0x52;
+ sub_80F9E2C(data->field_4C);
+ data->state = 10;
+ StringCopy(gStringVar4, gUnknown_84584C0);
+ }
+ else
+ {
+ sub_80F9E2C(data->field_4C);
+ data->state = 13;
+ }
+ }
+ else if (gUnknown_203B058 == 0x48)
+ {
+ sub_80F9E2C(data->field_4C);
+ sub_811B31C(gStringVar4, data, 1);
+ data->state = 40;
+ }
+ else
+ {
+ sub_80F9E2C(data->field_4C);
+ data->state = 13;
+ }
+ break;
+ case 1:
+ case -1:
+ data->field_4C[0] = 0x52;
+ sub_80F9E2C(data->field_4C);
+ data->state = 10;
+ sub_81162E0(gStringVar4, gUnknown_203B058);
+ break;
+ }
+ break;
+ case 10:
+ sub_800AAC0();
+ data->state = 36;
+ break;
+ case 36:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ gUnknown_203B058 = 0x40;
+ sub_8118664(0x25, gStringVar4);
+ memset(data->field_4C, 0, sizeof(data->field_4C));
+ data->field_9A[0] = 0;
+ data->field_98 = 0;
+ }
+ break;
+ case 37:
+ data->state = 2;
+ sub_811B258(FALSE);
+ break;
+ case 13:
+ sub_811AECC(gStringVar4, gUnknown_203B058 | 0x40);
+ sub_8118664(14, gStringVar4);
+ break;
+ case 14:
+ sub_800AB9C();
+ data->state = 15;
+ break;
+ case 15:
+ if (IsLinkTaskFinished())
+ data->state = 16;
+ break;
+ case 16:
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_C);
+ Free(data->field_4);
+ DestroyTask(data->field_20);
+ sub_811BB40(data->spriteIds);
+ data->state = 17;
+ break;
+ case 17:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK);
+ data->state = 18;
+ break;
+ case 18:
+ if (!UpdatePaletteFade())
+ {
+ sub_811BA78();
+ DestroyTask(taskId);
+ Free(sUnionRoomMain.uRoom);
+ sub_81179A4();
+ }
+ break;
+ case 42:
+ if (sub_80F9800()->species == SPECIES_NONE)
+ {
+ data->state = 43;
+ }
+ else
+ {
+ if (sub_80F9800()->species == SPECIES_EGG)
+ {
+ StringCopy(gStringVar4, gUnknown_8458DE8);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gSpeciesNames[sub_80F9800()->species]);
+ ConvertIntToDecimalStringN(gStringVar2, sub_80F9800()->level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gUnknown_8458DBC);
+ }
+ sub_8118664(44, gStringVar4);
+ }
+ break;
+ case 43:
+ if (PrintOnTextbox(&data->textState, gUnknown_8458AB8))
+ data->state = 47;
+ break;
+ case 47:
+ var5 = sub_811A218(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_8456E34, &gUnknown_8456E54);
+ if (var5 != -1)
+ {
+ if (var5 == -2 || var5 == 3)
+ {
+ data->state = 4;
+ sub_811B258(TRUE);
+ }
+ else
+ {
+ switch (var5)
+ {
+ case 1: // REGISTER
+ sub_8118664(53, gUnknown_8458D1C);
+ break;
+ case 2: // INFO
+ sub_8118664(47, gUnknown_8458B44);
+ break;
+ }
+ }
+ DestroyHelpMessageWindow_();
+ }
+ break;
+ case 53:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK);
+ data->state = 54;
+ break;
+ case 54:
+ if (!gPaletteFade.active)
+ {
+ sUnionRoomTrade.field_0 = 1;
+ gFieldCallback = sub_807DCE4;
+ ChooseMonForTradingBoard(PARTY_MENU_TYPE_UNION_ROOM_REGISTER, CB2_ReturnToField);
+ }
+ break;
+ case 52:
+ var5 = sub_811A218(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_8456E6C, &gUnknown_8456F04);
+ if (var5 != -1)
+ {
+ switch (var5)
+ {
+ case -2:
+ case 18:
+ ResetUnionRoomTrade(&sUnionRoomTrade);
+ sub_80FAFA0(0, 0, 0);
+ sub_811868C(gUnknown_8458D54);
+ break;
+ default:
+ sUnionRoomTrade.type = var5;
+ data->state = 55;
+ break;
+ }
+ }
+ break;
+ case 55:
+ sub_80FAFA0(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel);
+ sub_811868C(gUnknown_8458D78);
+ break;
+ case 44:
+ switch (sub_811A14C(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 56;
+ break;
+ case 1:
+ case -1:
+ sub_811B258(TRUE);
+ data->state = 4;
+ break;
+ }
+ break;
+ case 56:
+ if (PrintOnTextbox(&data->textState, gUnknown_8458E10))
+ {
+ sub_80FAFA0(0, 0, 0);
+ ResetUnionRoomTrade(&sUnionRoomTrade);
+ sub_811B258(TRUE);
+ data->state = 4;
+ }
+ break;
+ case 45:
+ if (PrintOnTextbox(&data->textState, gUnknown_8458A98))
+ data->state = 46;
+ break;
+ case 46:
+ sub_811A3F8();
+ data->state = 48;
+ break;
+ case 48:
+ var5 = sub_811A2EC(&data->textState, &data->field_1D, &data->field_4A, &data->field_1E, &gUnknown_8456F24, &gUnknown_8456F7C, data->field_0);
+ if (var5 != -1)
+ {
+ switch (var5)
+ {
+ case -2:
+ case 8:
+ sub_811B258(TRUE);
+ DestroyHelpMessageWindow_();
+ data->state = 4;
+ break;
+ default:
+ switch (sub_811ADD0(data->field_0->arr[var5].unk.gname.type, data->field_0->arr[var5].unk.gname.species))
+ {
+ case 0:
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]);
+ sub_8118664(49, gUnknown_8458E70);
+ taskData[1] = var5;
+ break;
+ case 1:
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]);
+ StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.gname.type]);
+ sub_8118664(46, gUnknown_8458ED0);
+ break;
+ case 2:
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]);
+ StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.gname.type]);
+ sub_8118664(46, gUnknown_8458F04);
+ break;
+ }
+ break;
+ }
+ }
+ break;
+ case 49:
+ switch (sub_811A14C(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 50;
+ break;
+ case -1:
+ case 1:
+ sub_811B258(TRUE);
+ data->state = 4;
+ break;
+ }
+ break;
+ case 50:
+ if (PrintOnTextbox(&data->textState, gUnknown_8458D1C))
+ {
+ sUnionRoomTrade.field_0 = 2;
+ memcpy(&gUnknown_203B064, &data->field_0->arr[taskData[1]].unk.gname.unk_00, sizeof(gUnknown_203B064));
+ gUnionRoomRequestedMonType = data->field_0->arr[taskData[1]].unk.gname.type;
+ gUnionRoomOfferedSpecies = data->field_0->arr[taskData[1]].unk.gname.species;
+ gFieldCallback = sub_807DCE4;
+ ChooseMonForTradingBoard(PARTY_MENU_TYPE_UNION_ROOM_TRADE, CB2_ReturnToField);
+ sub_81186B0(data);
+ sUnionRoomTrade.field_8 = taskData[1];
+ }
+ break;
+ case 51:
+ gUnknown_203B058 = 0x44;
+ sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.gname, 0x44);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[taskData[1]]);
+ sub_811A0B4(gUnknown_8457A34[2]);
+ data->state = 25;
+ break;
+ case 26:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ sub_811B258(TRUE);
+ sub_811C028(taskData[0], taskData[1], data->field_0);
+ data->state = 4;
+ }
+ break;
+ case 8:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = data->stateAfterPrint;
+ break;
+ }
+}
+
+void var_800D_set_xB(void)
+{
+ if (InUnionRoom() == TRUE)
+ gSpecialVar_Result = 11;
+}
+
+static void sub_8119904(struct UnkStruct_URoom * arg0)
+{
+ if (gRecvCmds[1][1] != 0 && (gRecvCmds[1][0] & 0xFF00) == 0x2F00)
+ {
+ arg0->field_9A[0] = gRecvCmds[1][1];
+ if (gRecvCmds[1][1] == 0x44)
+ {
+ arg0->field_9A[1] = gRecvCmds[1][2];
+ arg0->field_9A[2] = gRecvCmds[1][3];
+ }
+ }
+}
+
+static bool32 sub_8119944(struct UnkStruct_URoom * arg0)
+{
+ if (arg0->field_9A[0] != 0)
+ {
+ s32 var = sub_811AF6C(gStringVar4, gLinkPlayers[1].gender, &arg0->field_9A[0], arg0);
+ if (var == 0)
+ {
+ return TRUE;
+ }
+ else if (var == 1)
+ {
+ arg0->state = 35;
+ gUnknown_203B058 = arg0->field_9A[0];
+ return FALSE;
+ }
+ else if (var == 2)
+ {
+ arg0->state = 36;
+ sub_800AAC0();
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+void InitUnionRoom(void)
+{
+ struct UnkStruct_URoom * ptr;
+
+ sUnionRoomPlayerName[0] = EOS;
+ if (gQuestLogState == 2 || gQuestLogState == 3)
+ return;
+ CreateTask(sub_81199FC, 0);
+ sUnionRoomMain.uRoom = sUnionRoomMain.uRoom; // Needed to match.
+ sUnionRoomMain.uRoom = ptr = AllocZeroed(sizeof(struct UnkStruct_URoom));
+ sURoom = sUnionRoomMain.uRoom;
+ ptr->state = 0;
+ ptr->textState = 0;
+ ptr->field_10 = 0;
+ ptr->field_12 = 0;
+ sUnionRoomPlayerName[0] = EOS;
+}
+
+static void sub_81199FC(u8 taskId)
+{
+ s32 i;
+ u8 text[32];
+ struct UnkStruct_URoom * structPtr = sUnionRoomMain.uRoom;
+
+ switch (structPtr->state)
+ {
+ case 0:
+ structPtr->state = 1;
+ break;
+ case 1:
+ SetHostRFUtgtGname(0xC, 0, 0);
+ sub_800B1F4();
+ OpenLink();
+ sub_80FBC00();
+ sub_80FB128(1);
+ structPtr->state = 2;
+ break;
+ case 2:
+ structPtr->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ sub_811A650(structPtr->field_4->arr, 4);
+ structPtr->field_C = AllocZeroed(4 * sizeof(struct UnkStruct_x1C));
+ sub_811A650(structPtr->field_C->arr, 4);
+ structPtr->field_0 = AllocZeroed(8 * sizeof(struct UnkStruct_x20));
+ sub_811A5E4(structPtr->field_0->arr, 8);
+ structPtr->field_8 = AllocZeroed(sizeof(struct UnkStruct_x20));
+ sub_811A5E4(&structPtr->field_8->arr[0], 1);
+ structPtr->field_20 = sub_8119E84(structPtr->field_C, structPtr->field_4, 10);
+ structPtr->state = 3;
+ break;
+ case 3:
+ switch (sub_8119B94())
+ {
+ case 1:
+ case 2:
+ if (sUnionRoomPlayerName[0] == EOS)
+ {
+ for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ {
+ if (structPtr->field_0->arr[i].field_1A_0 == 1)
+ {
+ IntlConvPartnerUname(text, structPtr->field_0->arr[i]);
+ if (PlayerHasMetTrainerBefore(ReadAsU16(structPtr->field_0->arr[i].unk.gname.unk_00.playerTrainerId), text))
+ {
+ StringCopy(sUnionRoomPlayerName, text);
+ break;
+ }
+ }
+ }
+ }
+ break;
+ case 3:
+ break;
+ }
+ break;
+ case 4:
+ Free(structPtr->field_8);
+ Free(structPtr->field_0);
+ Free(structPtr->field_C);
+ Free(structPtr->field_4);
+ DestroyTask(structPtr->field_20);
+ Free(sUnionRoomMain.uRoom);
+ sub_80F8DC0();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+bool16 BufferUnionRoomPlayerName(void)
+{
+ if (sUnionRoomPlayerName[0] != EOS)
+ {
+ StringCopy(gStringVar1, sUnionRoomPlayerName);
+ sUnionRoomPlayerName[0] = EOS;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static u8 sub_8119B94(void)
+{
+ s32 i;
+ u8 j;
+ struct UnkStruct_URoom * structPtr = sUnionRoomMain.uRoom;
+ s32 r7 = 0;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sub_811A694(&structPtr->field_C->arr[i].unk0, &gUnknown_8457034) == TRUE)
+ {
+ structPtr->field_8->arr[0].unk = structPtr->field_C->arr[i].unk0;
+ structPtr->field_8->arr[0].field_18 = 0;
+ structPtr->field_8->arr[0].field_1A_0 = 1;
+ structPtr->field_8->arr[0].field_1B = 1;
+ return 4;
+ }
+ }
+ for (j = 0; j < 8; j++)
+ {
+ if (structPtr->field_0->arr[j].field_1A_0 != 0)
+ {
+ i = sub_811A748(&structPtr->field_0->arr[j], &structPtr->field_4->arr[0]);
+ if (i != 0xFF)
+ {
+ if (structPtr->field_0->arr[j].field_1A_0 == 1)
+ {
+ if (sub_811A6DC(&structPtr->field_0->arr[j].unk, &structPtr->field_4->arr[i].unk0))
+ {
+ structPtr->field_0->arr[j].unk = structPtr->field_4->arr[i].unk0;
+ structPtr->field_0->arr[j].field_1B = 0x40;
+ r7 = 1;
+ }
+ else if (structPtr->field_0->arr[j].field_1B != 0)
+ {
+ structPtr->field_0->arr[j].field_1B--;
+ if (structPtr->field_0->arr[j].field_1B == 0)
+ r7 = 2;
+ }
+ }
+ else
+ {
+ structPtr->field_0->arr[j].field_1A_0 = 1;
+ structPtr->field_0->arr[j].field_1B = 0;
+ r7 = 2;
+ }
+ structPtr->field_0->arr[j].field_18 = 0;
+ }
+ else if (structPtr->field_0->arr[j].field_1A_0 != 2)
+ {
+ structPtr->field_0->arr[j].field_18++;
+ if (structPtr->field_0->arr[j].field_18 >= 600)
+ {
+ structPtr->field_0->arr[j].field_1A_0 = 2;
+ r7 = 2;
+ }
+ }
+ else if (structPtr->field_0->arr[j].field_1A_0 == 2)
+ {
+ structPtr->field_0->arr[j].field_18++;
+ if (structPtr->field_0->arr[j].field_18 >= 900)
+ {
+ sub_811A5E4(&structPtr->field_0->arr[j], 1);
+ }
+ }
+ }
+ }
+ for (i = 0; i < 4; i++)
+ {
+ if (sub_811A798(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i], 8) != 0xFF)
+ r7 = 1;
+ }
+
+ return r7;
+}
+
+static void sub_8119D34(u8 taskId)
+{
+ s32 i, j;
+ struct UnkStruct_Shared sp0;
+ struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data;
+ bool8 r4;
+
+ for (i = 0; i < 4; i++)
+ {
+ r4 = sub_80FCC3C(&sp0.gname, sp0.playerName, i);
+ if (!sub_8116F28(sp0.gname.unk_0a_0, gTasks[taskId].data[4]))
+ {
+ sp0 = gUnknown_8457034;
+ }
+ if (sp0.gname.unk_00.unk_00_0 == 1)
+ {
+ sp0 = gUnknown_8457034;
+ }
+ if (!r4)
+ {
+ for (j = 0; j < i; j++)
+ {
+ if (!sub_811A694(&ptr[1]->arr[j].unk0, &sp0))
+ {
+ sp0 = gUnknown_8457034;
+ }
+ }
+ ptr[1]->arr[i].unk0 = sp0;
+ ptr[1]->arr[i].unk18 = sub_811A694(&ptr[1]->arr[i].unk0, &gUnknown_8457034);
+ }
+ else
+ {
+ ptr[0]->arr[i].unk0 = sp0;
+ ptr[0]->arr[i].unk18 = sub_811A694(&ptr[0]->arr[i].unk0, &gUnknown_8457034);
+ }
+ }
+}
+
+static u8 sub_8119E84(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, u32 a2)
+{
+ u8 taskId = CreateTask(sub_8119D34, 0);
+ struct UnkStruct_Main4 ** data = (void *)gTasks[taskId].data;
+ data[0] = a0;
+ data[1] = a1;
+ gTasks[taskId].data[4] = a2;
+ return taskId;
+}
+
+static void sub_8119EB8(u8 taskId)
+{
+ s32 i, j;
+ struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data;
+
+ for (i = 0; i < 4; i++)
+ {
+ sub_80FCC3C(&ptr[0]->arr[i].unk0.gname, ptr[0]->arr[i].unk0.playerName, i);
+ if (!sub_8116F28(ptr[0]->arr[i].unk0.gname.unk_0a_0, gTasks[taskId].data[2]))
+ {
+ ptr[0]->arr[i].unk0 = gUnknown_8457034;
+ }
+ for (j = 0; j < i; j++)
+ {
+ if (!sub_811A694(&ptr[0]->arr[j].unk0, &ptr[0]->arr[i].unk0))
+ {
+ ptr[0]->arr[i].unk0 = gUnknown_8457034;
+ }
+ }
+ ptr[0]->arr[i].unk18 = sub_811A694(&ptr[0]->arr[i].unk0, &gUnknown_8457034);
+ }
+}
+
+static bool32 sub_8119FB0(struct GFtgtGname * arg0, s16 arg1)
+{
+ if (arg1 == 7)
+ {
+ if (!arg0->unk_00.unk_00_5)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else if (arg1 == 8)
+ {
+ if (!arg0->unk_00.unk_00_4)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static void sub_8119FD8(u8 taskId)
+{
+ s32 i;
+ struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sub_80FCCF4(&ptr[0]->arr[i].unk0.gname, ptr[0]->arr[i].unk0.playerName, i))
+ {
+ sub_8119FB0(&ptr[0]->arr[i].unk0.gname, gTasks[taskId].data[2]);
+ }
+ ptr[0]->arr[i].unk18 = sub_811A694(&ptr[0]->arr[i].unk0, &gUnknown_8457034);
+ }
+}
+
+static u8 sub_811A054(struct UnkStruct_Main4 * a0, u32 a1)
+{
+ u8 taskId = CreateTask(sub_8119EB8, 0);
+ struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data;
+ ptr[0] = a0;
+ gTasks[taskId].data[2] = a1;
+ return taskId;
+}
+
+static u8 sub_811A084(struct UnkStruct_Main4 * a0, u32 a1)
+{
+ u8 taskId = CreateTask(sub_8119FD8, 0);
+ struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data;
+ ptr[0] = a0;
+ gTasks[taskId].data[2] = a1;
+ return taskId;
+}
+
+static bool32 sub_811A0B4(const u8 *src)
+{
+ LoadStdWindowFrameGfx();
+ DrawDialogueFrame(0, 1);
+ StringExpandPlaceholders(gStringVar4, src);
+ AddTextPrinterWithCustomSpeedForMessage(FALSE, 1);
+ return FALSE;
+}
+
+static bool32 sub_811A0E0(void)
+{
+ if (!RunTextPrinters_CheckPrinter0Active())
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static bool8 PrintOnTextbox(u8 *textState, const u8 *str)
+{
+ switch (*textState)
+ {
+ case 0:
+ LoadStdWindowFrameGfx();
+ DrawDialogueFrame(0, 1);
+ StringExpandPlaceholders(gStringVar4, str);
+ AddTextPrinterForMessage(TRUE);
+ (*textState)++;
+ break;
+ case 1:
+ if (!RunTextPrinters_CheckPrinter0Active())
+ {
+ *textState = 0;
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+static s8 sub_811A14C(u8 *arg0, bool32 arg1)
+{
+ s8 r1;
+
+ switch (*arg0)
+ {
+ case 0:
+ if (arg1)
+ {
+ return -3;
+ }
+ DisplayYesNoMenuDefaultYes();
+ (*arg0)++;
+ break;
+ case 1:
+ if (arg1)
+ {
+ DestroyYesNoMenu();
+ *arg0 = 0;
+ return -3;
+ }
+ r1 = Menu_ProcessInputNoWrapClearOnChoose();
+ if (r1 == -1 || r1 == 0 || r1 == 1)
+ {
+ *arg0 = 0;
+ return r1;
+ }
+ break;
+ }
+ return -2;
+}
+
+static u8 sub_811A1AC(const struct WindowTemplate * template)
+{
+ u8 windowId = AddWindow(template);
+ DrawStdWindowFrame(windowId, FALSE);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(15));
+ sub_811A444(windowId, 0, gUnknown_8459378, 8, 1, 6);
+ PutWindowTilemap(windowId);
+ CopyWindowToVram(windowId, 2);
+ return windowId;
+}
+
+static void sub_811A1FC(u8 windowId)
+{
+ ClearStdWindowAndFrame(windowId, TRUE);
+ RemoveWindow(windowId);
+}
+
+static s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate)
+{
+ s32 r1, r8;
+
+ switch (*arg0)
+ {
+ case 0:
+ *arg1 = AddWindow(winTemplate);
+ DrawStdWindowFrame(*arg1, FALSE);
+ gMultiuseListMenuTemplate = *menuTemplate;
+ gMultiuseListMenuTemplate.windowId = *arg1;
+ *arg2 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+ CopyWindowToVram(*arg1, TRUE);
+ (*arg0)++;
+ break;
+ case 1:
+ r8 = ListMenu_ProcessInput(*arg2);
+ if (JOY_NEW(A_BUTTON))
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ ClearStdWindowAndFrame(*arg1, TRUE);
+ RemoveWindow(*arg1);
+ *arg0 = 0;
+ return r8;
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ ClearStdWindowAndFrame(*arg1, TRUE);
+ RemoveWindow(*arg1);
+ *arg0 = 0;
+ return -2;
+ }
+ break;
+ }
+
+ return -1;
+}
+
+static s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate, struct UnkStruct_Main0 * arg6)
+{
+ s32 input;
+ s32 r4;
+
+ switch (*arg0)
+ {
+ case 0:
+ *arg3 = sub_811A1AC(&gUnknown_8456F1C);
+ *arg1 = AddWindow(winTemplate);
+ DrawStdWindowFrame(*arg1, FALSE);
+ gMultiuseListMenuTemplate = *menuTemplate;
+ gMultiuseListMenuTemplate.windowId = *arg1;
+ *arg2 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 1);
+ CopyWindowToVram(*arg1, TRUE);
+ (*arg0)++;
+ break;
+ case 1:
+ input = ListMenu_ProcessInput(*arg2);
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ if (input == 8 || JOY_NEW(B_BUTTON))
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ ClearStdWindowAndFrame(*arg1, TRUE);
+ RemoveWindow(*arg1);
+ sub_811A1FC(*arg3);
+ *arg0 = 0;
+ return -2;
+ }
+ else
+ {
+ r4 = sub_811AD7C(arg6->arr, input);
+ if (r4 >= 0)
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ ClearStdWindowAndFrame(*arg1, TRUE);
+ RemoveWindow(*arg1);
+ sub_811A1FC(*arg3);
+ *arg0 = 0;
+ return r4;
+ }
+ else
+ {
+ PlaySE(SE_WALL_HIT);
+ }
+ }
+ }
+ break;
+ }
+
+ return -1;
+}
+
+static void sub_811A3F8(void)
+{
+ FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0);
+ CopyBgTilemapBufferToVram(0);
+}
+
+static void sub_811A41C(void)
+{
+ FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0);
+ CopyBgTilemapBufferToVram(0);
+ EnableBothScriptContexts();
+}
+
+static void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx)
+{
+ struct TextPrinterTemplate printerTemplate;
+
+ printerTemplate.currentChar = str;
+ printerTemplate.windowId = windowId;
+ printerTemplate.fontId = fontId;
+ printerTemplate.x = x;
+ printerTemplate.y = y;
+ printerTemplate.currentX = x;
+ printerTemplate.currentY = y;
+ printerTemplate.unk = 0;
+
+ gTextFlags.useAlternateDownArrow = FALSE;
+ switch (colorIdx)
+ {
+ case 0:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 2;
+ printerTemplate.bgColor = 1;
+ printerTemplate.shadowColor = 3;
+ break;
+ case 1:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 4;
+ printerTemplate.bgColor = 1;
+ printerTemplate.shadowColor = 5;
+ break;
+ case 2:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 6;
+ printerTemplate.bgColor = 1;
+ printerTemplate.shadowColor = 7;
+ break;
+ case 3:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 1;
+ printerTemplate.bgColor = 1;
+ printerTemplate.shadowColor = 3;
+ break;
+ case 4:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 1;
+ printerTemplate.bgColor = 2;
+ printerTemplate.shadowColor = 3;
+ break;
+ case 5:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 7;
+ printerTemplate.bgColor = 15;
+ printerTemplate.shadowColor = 9;
+ break;
+ case 6:
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.fgColor = 14;
+ printerTemplate.bgColor = 15;
+ printerTemplate.shadowColor = 9;
+ break;
+ }
+
+ AddTextPrinter(&printerTemplate, 0xFF, NULL);
+}
+
+static void sub_811A5E4(struct UnkStruct_x20 * arg0, u8 count)
+{
+ s32 i;
+
+ for (i = 0; i < count; i++)
+ {
+ arg0[i].unk = gUnknown_8457034;
+ arg0[i].field_18 = 0xFF;
+ arg0[i].field_1A_0 = 0;
+ arg0[i].field_1A_1 = 0;
+ arg0[i].field_1B = 0;
+ }
+}
+
+static void sub_811A650(struct UnkStruct_x1C * arg0, u8 count)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ arg0[i].unk0 = gUnknown_8457034;
+ arg0[i].unk18 = 0;
+ }
+}
+
+static bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared * arg1)
+{
+ s32 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ if (arg0->gname.unk_00.playerTrainerId[i] != arg1->gname.unk_00.playerTrainerId[i])
+ {
+ return TRUE;
+ }
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ if (arg0->playerName[i] != arg1->playerName[i])
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1)
+{
+ s32 i;
+
+ if (arg0->gname.unk_0a_0 != arg1->gname.unk_0a_0)
+ {
+ return TRUE;
+ }
+
+ if (arg0->gname.unk_0a_7 != arg1->gname.unk_0a_7)
+ {
+ return TRUE;
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ if (arg0->gname.unk_04[i] != arg1->gname.unk_04[i])
+ {
+ return TRUE;
+ }
+ }
+
+ if (arg0->gname.species != arg1->gname.species)
+ {
+ return TRUE;
+ }
+
+ if (arg0->gname.type != arg1->gname.type)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1)
+{
+ u8 result = 0xFF;
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (arg1[i].unk18 && !sub_811A694(&arg0->unk, &arg1[i].unk0))
+ {
+ result = i;
+ arg1[i].unk18 = FALSE;
+ }
+ }
+
+ return result;
+}
+
+static u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2)
+{
+ s32 i;
+
+ if (arg1->unk18)
+ {
+ for (i = 0; i < arg2; i++)
+ {
+ if (arg0[i].field_1A_0 == 0)
+ {
+ arg0[i].unk = arg1->unk0;
+ arg0[i].field_18 = 0;
+ arg0[i].field_1A_0 = 1;
+ arg0[i].field_1B = 64;
+ arg1->unk18 = FALSE;
+ return i;
+ }
+ }
+ }
+
+ return 0xFF;
+}
+
+static void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id)
+{
+ u8 r2;
+ u8 sp0[6];
+ u8 sp10[30];
+
+ ConvertIntToDecimalStringN(gStringVar4, id + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(gStringVar4, gUnknown_84571B0);
+ sub_811A444(arg0, 0, gStringVar4, arg1, arg2, 0);
+ arg1 += 18;
+ r2 = arg3->unk.gname.unk_0a_0;
+ if (arg3->field_1A_0 == 1 && !(r2 & 0x40))
+ {
+ IntlConvPartnerUname(sp10, *arg3);
+ sub_811A444(arg0, 2, sp10, arg1, arg2, arg4);
+ ConvertIntToDecimalStringN(sp0, arg3->unk.gname.unk_00.playerTrainerId[0] | (arg3->unk.gname.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5);
+ StringCopy(gStringVar4, gUnknown_84571B4);
+ StringAppend(gStringVar4, sp0);
+ arg1 += 77;
+ sub_811A444(arg0, 0, gStringVar4, arg1, arg2, arg4);
+ }
+}
+
+static void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 arg4, u8 id)
+{
+ u8 sp0[6];
+ u8 sp10[30];
+
+ if (arg3->field_1A_0 == 1)
+ {
+ IntlConvPartnerUname(sp10, *arg3);
+ sub_811A444(windowId, 2, sp10, x, y, arg4);
+ ConvertIntToDecimalStringN(sp0, arg3->unk.gname.unk_00.playerTrainerId[0] | (arg3->unk.gname.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5);
+ StringCopy(gStringVar4, gUnknown_84571B4);
+ StringAppend(gStringVar4, sp0);
+ x += 71;
+ sub_811A444(windowId, 0, gStringVar4, x, y, arg4);
+ }
+}
+
+static bool32 sub_811A9B8(void)
+{
+ s16 x, y;
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ if (x != 9)
+ {
+ return FALSE;
+ }
+ if (y != 8)
+ {
+ return FALSE;
+ }
+ if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static u32 sub_811A9FC(s32 arg0)
+{
+ switch (arg0)
+ {
+ case 5:
+ return 1;
+ case 4:
+ return 2;
+ case 8:
+ return 3;
+ case 3:
+ default:
+ return 0;
+ }
+}
+
+static u32 sub_811AA24(struct UnkStruct_x20 * arg0)
+{
+ u8 sp0[30];
+ IntlConvPartnerUname(sp0, *arg0);
+ return PlayerHasMetTrainerBefore(ReadAsU16(arg0->unk.gname.unk_00.playerTrainerId), sp0);
+}
+
+static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender)
+{
+ bool32 r2;
+
+ struct UnkStruct_x20 * r5 = &arg0->arr[arg2];
+
+ if (!r5->unk.gname.unk_0a_7 && arg1 == 0)
+ {
+ IntlConvPartnerUname(gStringVar1, *r5);
+ r2 = PlayerHasMetTrainerBefore(ReadAsU16(r5->unk.gname.unk_00.playerTrainerId), gStringVar1);
+ if (r5->unk.gname.unk_0a_0 == 0x45)
+ {
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457F80[r2][playerGender]);
+ return 2;
+ }
+ else
+ {
+ sub_811A0B4(gUnknown_8457A34[r2]);
+ return 1;
+ }
+ }
+ else
+ {
+ IntlConvPartnerUname(gStringVar1, *r5);
+ if (arg1 != 0)
+ {
+ playerGender = (r5->unk.gname.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1;
+ }
+ switch (r5->unk.gname.unk_0a_0 & 0x3F)
+ {
+ case 1:
+ StringExpandPlaceholders(gStringVar4, gUnknown_8458758[playerGender][Random() % 4]);
+ break;
+ case 4:
+ StringExpandPlaceholders(gStringVar4, gUnknown_8458A78[playerGender][Random() % 2]);
+ break;
+ case 5:
+ StringExpandPlaceholders(gStringVar4, gUnknown_84588BC[playerGender][Random() % 4]);
+ break;
+ case 8:
+ StringExpandPlaceholders(gStringVar4, gUnknown_84589AC[playerGender][Random() % 2]);
+ break;
+ default:
+ StringExpandPlaceholders(gStringVar4, gUnknown_8457F90);
+ break;
+ }
+ return 0;
+ }
+}
+
+static void nullsub_92(u8 windowId, s32 itemId, u8 y)
+{
+
+}
+
+static void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx)
+{
+ u8 level_t[4];
+ u16 species = gname->species;
+ u8 type = gname->type;
+ u8 level = gname->level;
+
+ sub_811A444(windowId, 2, uname, 8, y, colorIdx);
+ if (species == SPECIES_EGG)
+ {
+ sub_811A444(windowId, 2, gUnknown_8458FBC, 0x44, y, colorIdx);
+ }
+ else
+ {
+ BlitMoveInfoIcon(windowId, type + 1, 0x44, y);
+ sub_811A444(windowId, 2, gSpeciesNames[species], 0x76, y, colorIdx);
+ ConvertIntToDecimalStringN(level_t, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sub_811A444(windowId, 2, level_t, GetStringRightAlignXOffset(2, level_t, 218), y, colorIdx);
+ }
+}
+
+static void sub_811ACA4(u8 windowId, s32 itemId, u8 y)
+{
+ struct UnkStruct_Leader * leader = sUnionRoomMain.leader;
+ struct GFtgtGname * rfu;
+ s32 i, j;
+ u8 uname[8];
+
+ if (itemId == -3 && y == gUnknown_8456F7C.upText_Y)
+ {
+ rfu = sub_80F9800();
+ if (rfu->species != SPECIES_NONE)
+ {
+ sub_811ABE4(windowId, y, rfu, gSaveBlock2Ptr->playerName, 5);
+ }
+ }
+ else
+ {
+ j = 0;
+ for (i = 0; i < 8; i++)
+ {
+ if (leader->field_0->arr[i].field_1A_0 == 1 && leader->field_0->arr[i].unk.gname.species != SPECIES_NONE)
+ {
+ j++;
+ }
+ if (j == itemId + 1)
+ {
+ IntlConvPartnerUname(uname, leader->field_0->arr[i]);
+ sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.gname, uname, 6);
+ break;
+ }
+ }
+ }
+}
+
+static s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1)
+{
+ s32 i;
+ s32 j = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (arg[i].field_1A_0 == 1 && arg[i].unk.gname.species != SPECIES_NONE)
+ {
+ j++;
+ }
+ if (j == arg1 + 1)
+ {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+static s32 GetUnionRoomPlayerGender(s32 arg1, struct UnkStruct_Main0 * arg0)
+{
+ return arg0->arr[arg1].unk.gname.playerGender;
+}
+
+static s32 sub_811ADD0(u32 type, u32 species)
+{
+ s32 i;
+
+ if (species == SPECIES_EGG)
+ {
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (species == SPECIES_EGG)
+ {
+ return 0;
+ }
+ }
+ return 2;
+ }
+ else
+ {
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (gBaseStats[species].type1 == type || gBaseStats[species].type2 == type)
+ {
+ return 0;
+ }
+ }
+ return 1;
+ }
+}
+
+static void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender)
+{
+ switch (arg1)
+ {
+ case 0x41:
+ StringExpandPlaceholders(dst, gUnknown_8458314[playerGender]);
+ break;
+ case 0x45:
+ StringExpandPlaceholders(dst, gUnknown_84585E8[playerGender]);
+ break;
+ case 0x44:
+ StringExpandPlaceholders(dst, gUnknown_8458F9C);
+ break;
+ case 0x48:
+ StringExpandPlaceholders(dst, gUnknown_84583B4[playerGender]);
+ break;
+ }
+}
+
+static void sub_811AECC(u8 *dst, u8 arg1)
+{
+ u8 mpId = GetMultiplayerId();
+ u8 gender = gLinkPlayers[mpId ^ 1].gender;
+
+ switch (arg1)
+ {
+ case 0x41:
+ StringCopy(dst, gUnknown_8458230[mpId][gender][0]);
+ break;
+ case 0x44:
+ StringCopy(dst, gUnknown_8458230[mpId][gender][2]);
+ break;
+ case 0x45:
+ StringCopy(dst, gUnknown_8458230[mpId][gender][1]);
+ break;
+ }
+}
+
+static s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom * arg3)
+{
+ s32 result = 0;
+ u16 species = SPECIES_NONE;
+ s32 i;
+
+ switch (arg2[0])
+ {
+ case 0x41:
+ StringExpandPlaceholders(dst, gUnknown_8457CA4);
+ result = 1;
+ break;
+ case 0x45:
+ StringExpandPlaceholders(dst, gUnknown_8457CF8);
+ result = 1;
+ break;
+ case 0x44:
+ ConvertIntToDecimalStringN(arg3->field_58[0], sUnionRoomTrade.playerLevel, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(arg3->field_58[1], gSpeciesNames[sUnionRoomTrade.playerSpecies]);
+ for (i = 0; i < 4; i++)
+ {
+ if (gRfuLinkStatus->partner[i].serialNo == 2)
+ {
+ ConvertIntToDecimalStringN(arg3->field_58[2], arg2[2], STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(arg3->field_58[3], gSpeciesNames[arg2[1]]);
+ species = arg2[1];
+ break;
+ }
+ }
+ if (species == SPECIES_EGG)
+ {
+ StringCopy(dst, gUnknown_8457DB8);
+ }
+ else
+ {
+ for (i = 0; i < 4; i++)
+ {
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(i, arg3->field_58[i]);
+ }
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gUnknown_8457D44);
+ }
+ result = 1;
+ break;
+ case 0x48:
+ StringExpandPlaceholders(dst, gUnknown_8457C48);
+ result = 1;
+ break;
+ case 0x40:
+ StringExpandPlaceholders(dst, gUnknown_8457E0C);
+ result = 2;
+ break;
+ }
+
+ return result;
+}
+
+static bool32 sub_811B0A4(struct UnkStruct_URoom * arg0)
+{
+ if (gRecvCmds[0][1] != 0)
+ {
+ if (gRecvCmds[0][1] == 0x51)
+ {
+ arg0->field_98 = 0x51;
+ return TRUE;
+ }
+ else if (gRecvCmds[0][1] == 0x52)
+ {
+ arg0->field_98 = 0x52;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool32 InUnionRoom(void)
+{
+ return gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNION_ROOM)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(UNION_ROOM)
+ ? TRUE : FALSE;
+}
+
+static bool32 HasAtLeastTwoMonsOfLevel30OrLower(void)
+{
+ s32 i;
+ s32 count = 0;
+
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) <= 30
+ && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) != SPECIES_EGG)
+ {
+ count++;
+ }
+ }
+
+ if (count > 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void ResetUnionRoomTrade(struct UnionRoomTrade * arg0)
+{
+ arg0->field_0 = 0;
+ arg0->type = 0;
+ arg0->playerPersonality = 0;
+ arg0->playerSpecies = 0;
+ arg0->playerLevel = 0;
+ arg0->species = 0;
+ arg0->level = 0;
+ arg0->personality = 0;
+}
+
+void Script_ResetUnionRoomTrade(void)
+{
+ ResetUnionRoomTrade(&sUnionRoomTrade);
+}
+
+static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade * trade)
+{
+ trade->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
+ trade->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ trade->playerPersonality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
+ if (trade->playerSpecies == SPECIES_EGG)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void RegisterTradeMon(u32 monId, struct UnionRoomTrade * trade)
+{
+ trade->species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
+ trade->level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ trade->personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
+}
+
+static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 multiplayerId)
+{
+ u16 response = 0;
+ u16 species;
+ u32 personality;
+ u32 cur_personality;
+ u16 cur_species;
+ s32 i;
+
+ // player
+ if (multiplayerId == 0)
+ {
+ species = trade->playerSpecies;
+ personality = trade->playerPersonality;
+ }
+ // partner
+ else
+ {
+ species = trade->species;
+ personality = trade->personality;
+ }
+
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ cur_personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
+ if (cur_personality != personality)
+ {
+ continue;
+ }
+ cur_species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (cur_species != species)
+ {
+ continue;
+ }
+ response = i;
+ break;
+ }
+
+ return response;
+}
+
+static void sub_811B258(bool32 arg0)
+{
+ sub_811A3F8();
+ ScriptContext2_Disable();
+ sub_80696F0();
+ gUnknown_203B058 = 0;
+ if (arg0)
+ {
+ sub_80FAFA0(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel);
+ sub_80FB008(0x40, 0, 0);
+ }
+}
+
+static void sub_811B298(void)
+{
+ ScriptContext2_Enable();
+ ScriptFreezeObjectEvents();
+}
+
+static u8 sub_811B2A8(s32 linkPlayer)
+{
+ u8 retval = 0x80;
+ retval |= gLinkPlayers[linkPlayer].gender << 3;
+ retval |= gLinkPlayers[linkPlayer].trainerId & 7;
+ return retval;
+}
+
+static u8 sub_811B2D8(struct UnkStruct_URoom * arg0)
+{
+ u8 retVal = 0x80;
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (arg0->field_C->arr[i].unk18)
+ {
+ retVal |= arg0->field_C->arr[i].unk0.gname.playerGender << 3;
+ retVal |= arg0->field_C->arr[i].unk0.gname.unk_00.playerTrainerId[0] & 7;
+ break;
+ }
+ }
+
+ return retVal;
+}
+
+static void sub_811B31C(u8 *unused, struct UnkStruct_URoom * arg1, bool8 arg2)
+{
+ struct TrainerCard * trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1];
+ s32 i;
+ s32 n;
+
+ DynamicPlaceholderTextUtil_Reset();
+
+ StringCopy(arg1->trainerCardStrbufs[0], gTrainerClassNames[sub_80447F0()]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->trainerCardStrbufs[0]);
+
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName);
+
+ StringCopy(arg1->field_174, gUnknown_84594B0[trainerCard->stars]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_174);
+
+ ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->trainerCardStrbufs[2]);
+
+ ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, arg1->trainerCardStrbufs[3]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, arg1->trainerCardStrbufs[4]);
+
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_84594C4);
+ StringCopy(gStringVar4, arg1->field_1A4);
+
+ n = trainerCard->linkBattleWins;
+ if (n > 9999)
+ {
+ n = 9999;
+ }
+ ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[0], n, STR_CONV_MODE_LEFT_ALIGN, 4);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->trainerCardStrbufs[0]);
+
+ n = trainerCard->linkBattleLosses;
+ if (n > 9999)
+ {
+ n = 9999;
+ }
+ ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[1], n, STR_CONV_MODE_LEFT_ALIGN, 4);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->trainerCardStrbufs[1]);
+
+ ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->trainerCardStrbufs[2]);
+
+ for (i = 0; i < 4; i++)
+ {
+ CopyEasyChatWord(arg1->trainerCardStrbufs[i + 3], trainerCard->var_28[i]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->trainerCardStrbufs[i + 3]);
+ }
+
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459504);
+ StringAppend(gStringVar4, arg1->field_1A4);
+
+ if (arg2 == TRUE)
+ {
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459588);
+ StringAppend(gStringVar4, arg1->field_1A4);
+ }
+ else if (arg2 == FALSE)
+ {
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459580[trainerCard->gender]);
+ StringAppend(gStringVar4, arg1->field_1A4);
+ }
+}
diff --git a/src/union_room_battle.c b/src/union_room_battle.c
new file mode 100644
index 000000000..b75cc086d
--- /dev/null
+++ b/src/union_room_battle.c
@@ -0,0 +1,225 @@
+#include "global.h"
+#include "bg.h"
+#include "battle.h"
+#include "gpu_regs.h"
+#include "link.h"
+#include "malloc.h"
+#include "menu.h"
+#include "new_menu_helpers.h"
+#include "overworld.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "strings.h"
+#include "text_window.h"
+#include "union_room.h"
+#include "window.h"
+
+struct UnkStruct_203B08C
+{
+ s16 a0;
+};
+
+static EWRAM_DATA struct UnkStruct_203B08C * gUnknown_203B08C = NULL;
+
+static const struct BgTemplate gUnknown_8457194[] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 31
+ }
+};
+
+static const struct WindowTemplate gUnknown_8457198[] = {
+ {
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 26,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x014
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const u8 gUnknown_84571A8[] = {1, 2, 3};
+
+static void sub_811C04C(void)
+{
+ s32 i;
+ sub_81173C0(BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER);
+ for (i = 0; i < 2; i++)
+ {
+ gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1];
+ }
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ ZeroMonData(&gPlayerParty[i]);
+ }
+ for (i = 0; i < 2; i++)
+ {
+ gPlayerParty[i] = gEnemyParty[i];
+ }
+ IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES);
+ CalculatePlayerPartyCount();
+ gTrainerBattleOpponent_A = TRAINER_OPPONENT_C00;
+ SetMainCallback2(CB2_InitBattle);
+}
+
+static void sub_811C0E0(u8 windowId, const u8 * str, u8 x, u8 y, s32 speed)
+{
+ s32 letterSpacing = 1;
+ s32 lineSpacing = 1;
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(gUnknown_84571A8[0]));
+ AddTextPrinterParameterized4(windowId, 3, x, y, letterSpacing, lineSpacing, gUnknown_84571A8, speed, str);
+}
+
+static bool32 sub_811C150(s16 * state, const u8 * str, s32 speed)
+{
+ switch (*state)
+ {
+ case 0:
+ DrawTextBorderOuter(0, 0x001, 0xD);
+ sub_811C0E0(0, str, 0, 2, speed);
+ PutWindowTilemap(0);
+ CopyWindowToVram(0, 3);
+ (*state)++;
+ break;
+ case 1:
+ if (!IsTextPrinterActive(0))
+ {
+ *state = 0;
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+static void sub_811C1B4(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_811C1C8(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetGpuReg(REG_OFFSET_DISPCNT, 0x0000);
+ gUnknown_203B08C = AllocZeroed(sizeof(struct UnkStruct_203B08C));
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_8457194, 1);
+ ResetTempTileDataBuffers();
+ if (!InitWindows(gUnknown_8457198))
+ {
+ return;
+ }
+ DeactivateAllTextPrinters();
+ ClearWindowTilemap(0);
+ FillWindowPixelBuffer(0, PIXEL_FILL(0));
+ FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF);
+ TextWindow_SetStdFrame0_WithPal(0, 1, 0xD0);
+ Menu_LoadStdPal();
+ SetVBlankCallback(sub_811C1B4);
+ gMain.state++;
+ break;
+ case 1:
+ if (sub_811C150(&gUnknown_203B08C->a0, gText_CommStandbyAwaitingOtherPlayer, 0))
+ {
+ gMain.state++;
+ }
+ break;
+ case 2:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ ShowBg(0);
+ gMain.state++;
+ break;
+ case 3:
+ if (!UpdatePaletteFade())
+ {
+ memset(gBlockSendBuffer, 0, 0x20);
+ if (gSelectedOrderFromParty[0] == -gSelectedOrderFromParty[1])
+ {
+ gBlockSendBuffer[0] = 0x52;
+ }
+ else
+ {
+ gBlockSendBuffer[0] = 0x51;
+ }
+ SendBlock(0, gBlockSendBuffer, 0x20);
+ gMain.state++;
+ }
+ break;
+ case 4:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ if (gBlockRecvBuffer[0][0] == 0x51 && gBlockRecvBuffer[1][0] == 0x51)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ gMain.state = 50;
+ }
+ else
+ {
+ sub_800AAC0();
+ if (gBlockRecvBuffer[GetMultiplayerId()][0] == 0x52)
+ {
+ gMain.state = 6;
+ }
+ else
+ {
+ gMain.state = 8;
+ }
+ }
+ ResetBlockReceivedFlags();
+ }
+ break;
+ case 50:
+ if (!UpdatePaletteFade())
+ {
+ sub_800AB9C();
+ gMain.state++;
+ }
+ break;
+ case 51:
+ if (IsLinkTaskFinished())
+ {
+ SetMainCallback2(sub_811C04C);
+ }
+ break;
+ case 6:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ gMain.state++;
+ }
+ break;
+ case 7:
+ if (sub_811C150(&gUnknown_203B08C->a0, gText_RefusedBattle, 1))
+ {
+ SetMainCallback2(CB2_ReturnToField);
+ }
+ break;
+ case 8:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ gMain.state++;
+ }
+ break;
+ case 9:
+ if (sub_811C150(&gUnknown_203B08C->a0, gText_BattleWasRefused, 1))
+ {
+ SetMainCallback2(CB2_ReturnToField);
+ }
+ break;
+ }
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
diff --git a/src/union_room_message.c b/src/union_room_message.c
new file mode 100644
index 000000000..9ca5aa15b
--- /dev/null
+++ b/src/union_room_message.c
@@ -0,0 +1,543 @@
+#include "global.h"
+#include "union_room_message.h"
+#include "mevent_server.h"
+
+ALIGNED(4) const u8 gUnknown_84571AC[] = _("");
+ALIGNED(4) const u8 gUnknown_84571B0[] = _(":");
+ALIGNED(4) const u8 gUnknown_84571B4[] = _("{EXTRA 7}");
+ALIGNED(4) const u8 gUnknown_84571B8[] = _("Please start over from the beginning.");
+ALIGNED(4) const u8 gUnknown_84571E0[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled.");
+ALIGNED(4) const u8 gUnref_845721C[] = _("ともだちからの れんらくを\nまっています");
+ALIGNED(4) const u8 gUnknown_8457234[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player.");
+ALIGNED(4) const u8 gUnknown_8457264[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready.");
+
+ALIGNED(4) const u8 gJPText_SingleBattle[] = _("シングルバトルを かいさいする");
+ALIGNED(4) const u8 gJPText_DoubleBattle[] = _("ダブルバトルを かいさいする");
+ALIGNED(4) const u8 gJPText_MultiBattle[] = _("マルチバトルを かいさいする");
+ALIGNED(4) const u8 gJPText_TradePokemon[] = _("ポケモンこうかんを かいさいする");
+ALIGNED(4) const u8 gJPText_Chat[] = _("チャットを かいさいする");
+ALIGNED(4) const u8 gJPText_DistWonderCard[] = _("ふしぎなカードをくばる");
+ALIGNED(4) const u8 gJPText_DistWonderNews[] = _("ふしぎなニュースをくばる");
+ALIGNED(4) const u8 unref_text_union_room_1[] = _("ふしぎなできごとを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldPokemonJump[] = _("なわとびを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldBerryPicking[] = _("きのみどりを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする");
+
+const u8 *const unref_text_ptrs_union_room_0[] = {
+ gJPText_SingleBattle,
+ gJPText_DoubleBattle,
+ gJPText_MultiBattle,
+ gJPText_TradePokemon,
+ gJPText_Chat,
+ gJPText_DistWonderCard,
+ gJPText_DistWonderNews,
+ gJPText_DistWonderCard,
+ gJPText_HoldPokemonJump,
+ gJPText_HoldBerryCrush,
+ gJPText_HoldBerryPicking,
+ gJPText_HoldBerryPicking,
+ gJPText_HoldSpinTrade,
+ gJPText_HoldSpinShop
+};
+
+const u8 gText_1PlayerNeeded[] = _("1 player\nneeded.");
+const u8 gText_2PlayersNeeded[] = _("2 players\nneeded.");
+const u8 gText_3PlayersNeeded[] = _("3 players\nneeded.");
+const u8 gText_4PlayersNeeded[] = _("あと4にん\nひつよう");
+const u8 gText_2PlayerMode[] = _("2-PLAYER\nMODE");
+const u8 gText_3PlayerMode[] = _("3-PLAYER\nMODE");
+const u8 gText_4PlayerMode[] = _("4-PLAYER\nMODE");
+const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE");
+
+const u8 *const gUnknown_845742C[][5] = {
+ {
+ gText_1PlayerNeeded,
+ gText_2PlayerMode
+ }, {
+ gText_3PlayersNeeded,
+ gText_2PlayersNeeded,
+ gText_1PlayerNeeded,
+ gText_4PlayerMode
+ }, {
+ gText_1PlayerNeeded,
+ gText_2PlayerMode,
+ gText_3PlayerMode,
+ gText_4PlayerMode,
+ gText_5PlayerMode
+ }, {
+ gText_2PlayersNeeded,
+ gText_1PlayerNeeded,
+ gText_3PlayerMode,
+ gText_4PlayerMode,
+ gText_5PlayerMode
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_845747C[] = _("{B_BUTTON}CANCEL");
+ALIGNED(4) const u8 unref_text_union_room_2[] = _("ため\nさんかしゃ ぼしゅうちゅう です!");
+ALIGNED(4) const u8 gUnknown_84574A0[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?");
+ALIGNED(4) const u8 gUnknown_84574C4[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?");
+ALIGNED(4) const u8 gUnknown_84574EC[] = _("{STR_VAR_2} contacted you.\nAdd to the members?");
+ALIGNED(4) const u8 gUnknown_8457514[] = _("{STR_VAR_1}!\nAre these members OK?");
+ALIGNED(4) const u8 gUnknown_8457530[] = _("Cancel {STR_VAR_1} MODE\nwith these members?");
+ALIGNED(4) const u8 gUnknown_8457554[] = _("An “OK” was sent\nto {STR_VAR_1}.");
+
+ALIGNED(4) const u8 gUnknown_845756C[] = _("The other TRAINER doesn't appear\nto be available now…\p");
+ALIGNED(4) const u8 gUnknown_84575A4[] = _("You can't transmit with a TRAINER\nwho is too far away.\p");
+ALIGNED(4) const u8 gUnknown_84575DC[] = _("The other TRAINER(S) is/are not\nready yet.\p");
+
+const u8 *const gUnknown_8457608[] = {
+ gUnknown_84575A4,
+ gUnknown_84575DC
+};
+
+ALIGNED(4) const u8 gUnknown_8457610[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}");
+ALIGNED(4) const u8 gUnknown_8457644[] = _("There is a member who can no\nlonger remain available.\p");
+
+const u8 *const gUnknown_845767C[] = {
+ gUnknown_845756C,
+ gUnknown_8457644
+};
+
+ALIGNED(4) const u8 gUnknown_8457684[] = _("The other TRAINER appears\nunavailable…\p");
+ALIGNED(4) const u8 gUnknown_84576AC[] = _("{STR_VAR_1} sent back an “OK”!");
+ALIGNED(4) const u8 gUnknown_84576C4[] = _("{STR_VAR_1} OK'd your registration as\na member.");
+ALIGNED(4) const u8 gUnknown_84576EC[] = _("{STR_VAR_1} replied, “No…”\p");
+ALIGNED(4) const u8 gUnknown_8457700[] = _("{STR_VAR_1}!\nAwaiting other members!");
+ALIGNED(4) const u8 gUnknown_845771C[] = _("Quit being a member?");
+ALIGNED(4) const u8 gUnknown_8457734[] = _("You stopped being a member.\p");
+
+const u8 *const gUnknown_8457754[] = {
+ NULL,
+ gUnknown_8457644,
+ gUnknown_8457684,
+ NULL,
+ NULL,
+ NULL,
+ gUnknown_84576EC,
+ NULL,
+ NULL,
+ gUnknown_8457734
+};
+
+ALIGNED(4) const u8 gUnknown_845777C[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established.");
+ALIGNED(4) const u8 gUnknown_84577BC[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…");
+ALIGNED(4) const u8 gUnknown_84577F8[] = _("The link with your friend has been\ndropped…");
+ALIGNED(4) const u8 gUnknown_8457824[] = _("{STR_VAR_1} replied, “No…”");
+
+const u8 *const gUnknown_8457838[] = {
+ NULL,
+ gUnknown_84577F8,
+ gUnknown_84577F8,
+ NULL,
+ NULL,
+ NULL,
+ gUnknown_8457824,
+ NULL,
+ NULL,
+ NULL
+};
+
+ALIGNED(4) const u8 gUnknown_8457860[] = _("Do you want the {STR_VAR_2}\nMODE?");
+ALIGNED(4) const u8 gUnknown_845787C[] = _("Do you want the {STR_VAR_2}\nMODE?");
+
+const u8 *const gUnknown_8457898[] = {
+ gUnknown_8457860,
+ gUnknown_845787C
+};
+
+ALIGNED(4) const u8 gUnknown_84578A0[] = _("はなしかけています…\nしょうしょう おまちください");
+ALIGNED(4) const u8 gUnknown_84578BC[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…");
+ALIGNED(4) const u8 gUnknown_84578E4[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
+ALIGNED(4) const u8 gUnknown_8457950[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
+ALIGNED(4) const u8 gUnknown_84579BC[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
+
+const u8 *const gUnknown_8457A34[] = {
+ gUnknown_84578E4,
+ gUnknown_8457950,
+ gUnknown_84579BC
+};
+
+ALIGNED(4) const u8 gUnknown_8457A40[] = _("Hiya! Is there something that you\nwanted to do?");
+ALIGNED(4) const u8 gUnknown_8457A70[] = _("Hello!\nWould you like to do something?");
+ALIGNED(4) const u8 gUnknown_8457A98[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?");
+ALIGNED(4) const u8 gUnknown_8457AD0[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?");
+
+const u8 *const gUnknown_8457B04[][2] = {
+ {
+ gUnknown_8457A40,
+ gUnknown_8457A70
+ }, {
+ gUnknown_8457A98,
+ gUnknown_8457AD0
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_8457B14[] = _("Want to do something?");
+ALIGNED(4) const u8 gUnknown_8457B2C[] = _("Would you like to do something?");
+ALIGNED(4) const u8 gUnknown_8457B4C[] = _("{STR_VAR_1}: What would you like to\ndo now?");
+ALIGNED(4) const u8 gUnknown_8457B70[] = _("{STR_VAR_1}‘また なにかする?");
+
+const u8 *const gUnknown_8457B80[] = {
+ gUnknown_8457B14,
+ gUnknown_8457B2C,
+ gUnknown_8457B4C,
+ gUnknown_8457B4C
+};
+
+ALIGNED(4) const u8 gUnknown_8457B90[] = _("Somebody has contacted you.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_8457BA0[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}");
+
+const u8 *const gUnknown_8457BCC[] = {
+ gUnknown_8457B90,
+ gUnknown_8457BA0
+};
+
+ALIGNED(4) const u8 gUnknown_8457BD4[] = _("Awaiting a response from\nthe other TRAINER…");
+ALIGNED(4) const u8 gUnknown_8457C00[] = _("Awaiting a response from\n{STR_VAR_1}…");
+
+const u8 *const gUnknown_8457C20[] = {
+ gUnknown_8457BD4,
+ gUnknown_8457C00
+};
+
+ALIGNED(4) const u8 gUnknown_8457C28[] = _("あいての ていあんを まっています\nビーボタンで キャンセル");
+ALIGNED(4) const u8 gUnknown_8457C48[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?");
+ALIGNED(4) const u8 gUnknown_8457CA4[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?");
+ALIGNED(4) const u8 gUnknown_8457CF8[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?");
+ALIGNED(4) const u8 gUnknown_8457D44[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?");
+ALIGNED(4) const u8 gUnknown_8457DB8[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?");
+ALIGNED(4) const u8 gUnknown_8457E0C[] = _("The chat has been dropped.\p");
+ALIGNED(4) const u8 gUnknown_8457E28[] = _("You declined the offer.\p");
+ALIGNED(4) const u8 gUnknown_8457E44[] = _("You declined the offer.\p");
+ALIGNED(4) const u8 gUnknown_8457E60[] = _("The chat was ended.\p");
+
+const u8 *const gUnknown_8457E78[] = {
+ gUnknown_8457C48,
+ gUnknown_8457CA4,
+ gUnknown_8457CF8,
+ gUnknown_8457D44
+};
+
+ALIGNED(4) const u8 gUnknown_8457E88[] = _("Oh, hey! We're in a chat right now.\nWant to join us?");
+ALIGNED(4) const u8 gUnknown_8457EC0[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?");
+ALIGNED(4) const u8 gUnknown_8457F00[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?");
+ALIGNED(4) const u8 gUnknown_8457F3C[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?");
+
+const u8 *const gUnknown_8457F80[][2] = {
+ {
+ gUnknown_8457E88,
+ gUnknown_8457F00
+ }, {
+ gUnknown_8457EC0,
+ gUnknown_8457F3C
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_8457F90[] = _("……\nThe TRAINER appears to be busy…\p");
+ALIGNED(4) const u8 gUnknown_8457FB4[] = _("A battle, huh?\nAll right, just give me some time.");
+ALIGNED(4) const u8 gUnknown_8457FE8[] = _("You want to chat, huh?\nSure, just wait a little.");
+ALIGNED(4) const u8 gUnknown_845801C[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD.");
+ALIGNED(4) const u8 gUnknown_8458054[] = _("A battle? Of course, but I need\ntime to get ready.");
+ALIGNED(4) const u8 gUnknown_8458088[] = _("Did you want to chat?\nOkay, but please wait a moment.");
+ALIGNED(4) const u8 gUnknown_84580C0[] = _("As my introduction, I'll show you\nmy TRAINER CARD.");
+
+const u8 *const gUnknown_84580F4[][4] = {
+ {
+ gUnknown_8457FB4,
+ gUnknown_8457FE8,
+ NULL,
+ gUnknown_845801C
+ }, {
+ gUnknown_8458054,
+ gUnknown_8458088,
+ NULL,
+ gUnknown_84580C0
+ }
+};
+
+ALIGNED(4) const u8 gUnref_8458104[] = _("チャットだね!\nわかった ちょっと まってて!");
+ALIGNED(4) const u8 gUnknown_845812C[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_8458164[] = _("All right!\nLet's chat!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_8458180[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_84581B0[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_84581D8[] = _("The trade will be started.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_84581F8[] = _("The battle will be started.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_8458218[] = _("Entering the chat…{PAUSE 60}");
+
+const u8 *const gUnknown_8458230[][2][3] = {
+ {
+ {
+ gUnknown_84581F8,
+ gUnknown_8458218,
+ gUnknown_84581D8
+ }, {
+ gUnknown_84581F8,
+ gUnknown_8458218,
+ gUnknown_84581D8
+ }
+ }, {
+ {
+ gUnknown_845812C,
+ gUnknown_8458164,
+ gUnknown_84581D8
+ }, {
+ gUnknown_8458180,
+ gUnknown_84581B0,
+ gUnknown_84581D8
+ }
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_8458260[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p");
+ALIGNED(4) const u8 gUnknown_84582C0[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p");
+
+const u8 *const gUnknown_8458314[] = {
+ gUnknown_8458260,
+ gUnknown_84582C0
+};
+
+ALIGNED(4) const u8 gUnknown_845831C[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p");
+ALIGNED(4) const u8 gUnknown_845836C[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p");
+
+const u8 *const gUnknown_84583B4[] = {
+ gUnknown_845831C,
+ gUnknown_845836C
+};
+
+ALIGNED(4) const u8 gUnknown_84583BC[] = _("If you want to do something with\nme, just give me a shout!\p");
+ALIGNED(4) const u8 gUnknown_84583F8[] = _("If you want to do something with\nme, don't be shy.\p");
+
+const u8 *const gUnknown_845842C[] = {
+ gUnknown_84583BC,
+ gUnknown_84583F8
+};
+
+ALIGNED(4) const u8 gUnknown_8458434[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p");
+ALIGNED(4) const u8 gUnknown_845847C[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p");
+ALIGNED(4) const u8 gUnknown_84584C0[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p");
+ALIGNED(4) const u8 gUnknown_84584FC[] = _("Oh, all right.\nCome see me anytime, okay?\p");
+ALIGNED(4) const u8 gUnknown_8458528[] = _("Oh…\nPlease come by anytime.\p");
+
+const u8 *const gUnknown_8458548[] = {
+ gUnknown_84584FC,
+ gUnknown_8458528
+};
+
+ALIGNED(4) const u8 gUnknown_8458550[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p");
+ALIGNED(4) const u8 gUnknown_8458598[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p");
+
+const u8 *const gUnknown_84585E8[] = {
+ gUnknown_8458550,
+ gUnknown_8458598
+};
+
+ALIGNED(4) const u8 gUnknown_84585F0[] = _("Whoa!\nI can tell you're pretty tough!\p");
+ALIGNED(4) const u8 gUnknown_8458618[] = _("You used that move?\nThat's good strategy!\p");
+ALIGNED(4) const u8 gUnknown_8458644[] = _("Way to go!\nThat was an eye-opener!\p");
+ALIGNED(4) const u8 gUnknown_8458668[] = _("Oh! How could you use that\nPOKéMON in that situation?\p");
+ALIGNED(4) const u8 gUnknown_84586A0[] = _("That POKéMON…\nIt's been raised really well!\p");
+ALIGNED(4) const u8 gUnknown_84586D0[] = _("That's it!\nThis is the right move now!\p");
+ALIGNED(4) const u8 gUnknown_84586F8[] = _("That's awesome!\nYou can battle that way?\p");
+ALIGNED(4) const u8 gUnknown_8458724[] = _("You have exquisite timing for\nswitching POKéMON!\p");
+
+const u8 *const gUnknown_8458758[][4] = {
+ {
+ gUnknown_84585F0,
+ gUnknown_8458618,
+ gUnknown_8458644,
+ gUnknown_8458668
+ }, {
+ gUnknown_84586A0,
+ gUnknown_84586D0,
+ gUnknown_84586F8,
+ gUnknown_8458724
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_8458778[] = _("Oh, I see!\nThis is educational!\p");
+ALIGNED(4) const u8 gUnknown_845879C[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p");
+ALIGNED(4) const u8 gUnknown_84587D8[] = _("Oh?\nSomething like that happened.\p");
+ALIGNED(4) const u8 gUnknown_84587FC[] = _("Hmhm… What?\nSo is this what you're saying?\p");
+ALIGNED(4) const u8 gUnknown_8458828[] = _("Is that right?\nI didn't know that.\p");
+ALIGNED(4) const u8 gUnknown_845884C[] = _("Ahaha!\nWhat is that about?\p");
+ALIGNED(4) const u8 gUnknown_8458868[] = _("Yes, that's exactly it!\nThat's what I meant.\p");
+ALIGNED(4) const u8 gUnknown_8458898[] = _("In other words…\nYes! That's right!\p");
+
+const u8 *const gUnknown_84588BC[][4] = {
+ {
+ gUnknown_8458778,
+ gUnknown_845879C,
+ gUnknown_84587D8,
+ gUnknown_84587FC
+ }, {
+ gUnknown_8458828,
+ gUnknown_845884C,
+ gUnknown_8458868,
+ gUnknown_8458898
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_84588DC[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p");
+ALIGNED(4) const u8 gUnknown_8458918[] = _("I hope I get to know you better!\p");
+ALIGNED(4) const u8 gUnknown_845893C[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p");
+ALIGNED(4) const u8 gUnknown_845897C[] = _("Glad to meet you.\nPlease don't be a stranger!\p");
+
+const u8 *const gUnknown_84589AC[][2] = {
+ {
+ gUnknown_84588DC,
+ gUnknown_8458918
+ }, {
+ gUnknown_845893C,
+ gUnknown_845897C
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_84589BC[] = _("Yeahah!\nI really wanted this POKéMON!\p");
+ALIGNED(4) const u8 gUnknown_84589E4[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p");
+ALIGNED(4) const u8 gUnknown_8458A24[] = _("I'm trading POKéMON right now.\p");
+ALIGNED(4) const u8 gUnknown_8458A44[] = _("I finally got that POKéMON I\nwanted in a trade!\p");
+
+const u8 *const gUnknown_8458A78[][4] = {
+ {
+ gUnknown_84589BC,
+ gUnknown_84589E4
+ }, {
+ gUnknown_8458A24,
+ gUnknown_8458A44
+ }
+};
+
+const u8 gUnknown_8458A98[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p");
+ALIGNED(4) const u8 gUnknown_8458AB8[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?");
+ALIGNED(4) const u8 gUnknown_8458B44[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?");
+ALIGNED(4) const u8 gUnref_ThankYouForComing_JP[] = _("こうかんけいじばん の とうろくが\nかんりょう しました\pごりよう ありがとう\nございました!\p");
+ALIGNED(4) const u8 gUnref_NoOneRegisteredMon[] = _("けいじばんに だれも ポケモンを\nとうろく していません\p\n");
+ALIGNED(4) const u8 gUnknown_8458CD4[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n");
+ALIGNED(4) const u8 gUnknown_8458D1C[] = _("Which of your party POKéMON will\nyou offer in trade?\p");
+ALIGNED(4) const u8 gUnknown_8458D54[] = _("Registration has been canceled.\p");
+ALIGNED(4) const u8 gUnknown_8458D78[] = _("Registration has been completed.\p");
+ALIGNED(4) const u8 gUnknown_8458D9C[] = _("The trade has been canceled.\p");
+ALIGNED(4) const u8 gUnknown_8458DBC[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?");
+ALIGNED(4) const u8 gUnknown_8458DE8[] = _("Cancel the registration of your\nEGG?");
+ALIGNED(4) const u8 gUnknown_8458E10[] = _("The registration has been canceled.\p");
+ALIGNED(4) const u8 gUnref_ShowPeopleWhoLikeYou_JP[] = _("こうかんを きぼうしているひとを\nひょうじします");
+ALIGNED(4) const u8 gUnref_PleaseChooseTrainerYouWant[] = _("こうかん したい トレーナーを\nえらんで ください");
+ALIGNED(4) const u8 gUnknown_8458E70[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?");
+ALIGNED(4) const u8 gUnref_ImWaitingForAnswer[] = _("……\nあいての へんじを まっています");
+ALIGNED(4) const u8 gUnref_MonSentOutIsNotRegistered[] = _("あなたが こうかんにだす\nポケモンが とうろくされていません\p");
+ALIGNED(4) const u8 gUnknown_8458ED0[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p");
+ALIGNED(4) const u8 gUnknown_8458F04[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p");
+ALIGNED(4) const u8 gUnknown_8458F2C[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p");
+ALIGNED(4) const u8 gUnknown_8458F60[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p");
+
+const u8 *const gUnknown_8458F94[] = {
+ gUnknown_8458F2C,
+ gUnknown_8458F60
+};
+
+ALIGNED(4) const u8 gUnknown_8458F9C[] = _("Your trade offer was rejected.\p");
+ALIGNED(4) const u8 gUnknown_8458FBC[] = _("EGG TRADE");
+ALIGNED(4) const u8 gUnknown_8458FC8[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL");
+ALIGNED(4) const u8 gUnknown_8458FE4[] = _("Please choose a TRAINER.");
+ALIGNED(4) const u8 gUnknown_8459000[] = _("Please choose a TRAINER for\na SINGLE BATTLE.");
+ALIGNED(4) const u8 gUnknown_8459030[] = _("Please choose a TRAINER for\na DOUBLE BATTLE.");
+ALIGNED(4) const u8 gUnknown_8459060[] = _("Please choose the LEADER\nfor a MULTI BATTLE.");
+ALIGNED(4) const u8 gUnknown_8459090[] = _("Please choose the TRAINER to\ntrade with.");
+ALIGNED(4) const u8 gUnknown_84590BC[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS.");
+ALIGNED(4) const u8 gUnknown_84590F4[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS.");
+ALIGNED(4) const u8 gUnknown_845912C[] = _("Jump with mini POKéMON!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_8459160[] = _("BERRY CRUSH!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_8459188[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER.");
+
+const u8 *const gUnknown_84591B8[] = {
+ gUnknown_8459000,
+ gUnknown_8459030,
+ gUnknown_8459060,
+ gUnknown_8459090,
+ gUnknown_845912C,
+ gUnknown_8459160,
+ gUnknown_8459188,
+ gUnknown_84590BC,
+ gUnknown_84590F4
+};
+
+ALIGNED(4) const u8 gUnknown_84591DC[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait...");
+ALIGNED(4) const u8 gUnref_NeedAtLeast2InDblBtl[] = _("ダブルバトルでは 2ひき いじょうの\nポケモンが ひつようです\p");
+ALIGNED(4) const u8 gUnknown_8459238[] = _("Awaiting {STR_VAR_1}'s response…");
+ALIGNED(4) const u8 gUnknown_8459250[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait.");
+ALIGNED(4) const u8 gUnknown_845928C[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM.");
+ALIGNED(4) const u8 gUnref_PlsWaitLittleWHile[] = _("ほかの さんかしゃが そろうまで\nしょうしょう おまちください");
+ALIGNED(4) const u8 gUnknown_84592E8[] = _("No CARDS appear to be shared \nright now.");
+ALIGNED(4) const u8 gUnknown_8459314[] = _("No NEWS appears to be shared\nright now.");
+
+const u8 *const gUnknown_845933C[] = {
+ gUnknown_84592E8,
+ gUnknown_8459314
+};
+
+ALIGNED(4) const u8 gUnknown_8459344[] = _("BATTLE");
+ALIGNED(4) const u8 gUnknown_845934C[] = _("CHAT");
+ALIGNED(4) const u8 gUnknown_8459354[] = _("GREETINGS");
+ALIGNED(4) const u8 gUnknown_8459360[] = _("EXIT");
+ALIGNED(4) const u8 gUnknown_8459368[] = _("EXIT");
+ALIGNED(4) const u8 gUnknown_8459370[] = _("INFO");
+ALIGNED(4) const u8 gUnknown_8459378[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.");
+ALIGNED(4) const u8 gUnknown_8459394[] = _("SINGLE BATTLE");
+ALIGNED(4) const u8 gUnknown_84593A4[] = _("DOUBLE BATTLE");
+ALIGNED(4) const u8 gUnknown_84593B4[] = _("MULTI BATTLE");
+ALIGNED(4) const u8 gUnknown_84593C4[] = _("POKéMON TRADES");
+ALIGNED(4) const u8 gUnknown_84593D4[] = _("CHAT");
+ALIGNED(4) const u8 gUnknown_84593DC[] = _("CARDS");
+ALIGNED(4) const u8 gUnknown_84593E4[] = _("WONDER CARDS");
+ALIGNED(4) const u8 gUnknown_84593F4[] = _("WONDER NEWS");
+ALIGNED(4) const u8 gUnknown_8459400[] = _("POKéMON JUMP");
+ALIGNED(4) const u8 gUnknown_8459410[] = _("BERRY CRUSH");
+ALIGNED(4) const u8 gUnknown_845941C[] = _("BERRY-PICKING");
+ALIGNED(4) const u8 gUnknown_845942C[] = _("SEARCH");
+ALIGNED(4) const u8 gUnknown_8459434[] = _("ぐるぐるこうかん");
+ALIGNED(4) const u8 gUnknown_8459440[] = _("アイテムトレード");
+ALIGNED(4) const u8 gUnknown_845944C[] = _("It's a NORMAL CARD.");
+ALIGNED(4) const u8 gUnknown_8459460[] = _("It's a BRONZE CARD!");
+ALIGNED(4) const u8 gUnknown_8459474[] = _("It's a COPPER CARD!");
+ALIGNED(4) const u8 gUnknown_8459488[] = _("It's a SILVER CARD!");
+ALIGNED(4) const u8 gUnknown_845949C[] = _("It's a GOLD CARD!");
+
+const u8 *const gUnknown_84594B0[] = {
+ gUnknown_845944C,
+ gUnknown_8459460,
+ gUnknown_8459474,
+ gUnknown_8459488,
+ gUnknown_845949C
+};
+
+ALIGNED(4) const u8 gUnknown_84594C4[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p");
+ALIGNED(4) const u8 gUnknown_8459504[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p");
+ALIGNED(4) const u8 gUnknown_8459544[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_8459564[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}");
+
+const u8 *const gUnknown_8459580[] = {
+ gUnknown_8459544,
+ gUnknown_8459564
+};
+
+ALIGNED(4) const u8 gUnknown_8459588[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_84595B0[] = _("Canceled reading the Card.");
+
+const struct mevent_client_cmd gUnknown_84595CC[] = {
+ CLI_RECEIVE(0x15),
+ CLI_RECVBUF,
+ CLI_SENDALL,
+ CLI_RETURN(0x0e)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[] = {
+ SRV_SEND(0x20, gUnknown_84595CC),
+ SRV_WAITSND,
+ SRV_SENDSTR(0x1b, gUnknown_84595B0),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x09)
+};
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index b88a7f15c..b35b6143e 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -1273,7 +1273,7 @@ static u8 GetRematchableTrainerLocalId(void)
static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * trainerInfo, const u8 * script)
{
- npc_sync_anim_pause_bits(&gObjectEvents[trainerInfo->objectEventId]);
+ UnfreezeObjectEvent(&gObjectEvents[trainerInfo->objectEventId]);
ScriptMovement_StartObjectMovementScript(trainerInfo->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, script);
}
diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c
index 1c355c3ba..9be2823aa 100644
--- a/src/wireless_communication_status_screen.c
+++ b/src/wireless_communication_status_screen.c
@@ -364,7 +364,7 @@ void sub_814F65C(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx)
u32 sub_814F714(struct UnkStruct_x20 * unk20, u32 * arg1)
{
- u32 r8 = unk20->unk.field_0.unk_0a_0;
+ u32 r8 = unk20->unk.gname.unk_0a_0;
s32 i, j, k;
for (i = 0; i < NELEMS(gUnknown_846FAC0); i++)
@@ -376,7 +376,7 @@ u32 sub_814F714(struct UnkStruct_x20 * unk20, u32 * arg1)
k = 0;
for (j = 0; j < 4; j++)
{
- if (unk20->unk.field_0.unk_04[j] != 0) k++;
+ if (unk20->unk.gname.unk_04[j] != 0) k++;
}
k++;
arg1[gUnknown_846FAC0[i][1]] += k;
diff --git a/sym_bss.txt b/sym_bss.txt
index 16c5758fc..5651e3366 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -76,17 +76,10 @@ gUnknown_3000FE8: @ 3000FE8
.include "src/link_rfu_3.o"
.align 2
.include "src/quest_log.o"
-
.align 2
-gUnknown_3002024: @ 3002024
- .space 0x4
-
-gUnknown_3002028: @ 3002028
- .space 0x4
-
-gUnknown_300202C: @ 300202C
- .space 0x4
+ .include "src/union_room.o"
+ .align 2
gUnknown_3002030: @ 3002030
.space 0x8
diff --git a/sym_common.txt b/sym_common.txt
index 74e642bc2..d71df5ce2 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -38,10 +38,10 @@ gFieldCallback2: @ 3005024
gHeldKeyCodeToSend: @ 3005028
.space 0x4
-gUnknown_300502C: @ 300502C
+gLocalLinkPlayerId: @ 300502C
.space 0x4
-gUnknown_3005030: @ 3005030
+gFieldLinkPlayerCount: @ 3005030
.space 0x10
.align 2
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 188ccd3aa..3ab110c7b 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -335,45 +335,7 @@ gUnknown_203ACF0: @ 203ACF0
.align 2
.include "src/list_menu.o"
.align 2
-gUnknown_203ACFC: @ 203ACFC
- .space 0x6
-
-gUnknown_203AD02: @ 203AD02
- .space 0x2
-
-gUnknown_203AD04: @ 203AD04
- .space 0x6
-
-gUnknown_203AD0A: @ 203AD0A
- .space 0x6
-
-gUnknown_203AD10: @ 203AD10
- .space 0x4
-
-gUnknown_203AD14: @ 203AD14
- .space 0x4
-
-gUnknown_203AD18: @ 203AD18
- .space 0x4
-
-gUnknown_203AD1C: @ 203AD1C
- .space 0x4
-
-gUnknown_203AD20: @ 203AD20
- .space 0x4
-
-gUnknown_203AD24: @ 203AD24
- .space 0x4
-
-gUnknown_203AD28: @ 203AD28
- .space 0x4
-
-gUnknown_203AD2C: @ 203AD2C
- .space 0x4
-
-gSpecialVar_ItemId: @ 203AD30
- .space 0x4
-
+ .include "src/item_menu.o"
.align 2
.include "src/bag.o"
.align 2
@@ -388,41 +350,14 @@ gSpecialVar_ItemId: @ 203AD30
.include "src/menu.o"
.align 2
.include "src/quest_log.o"
-
.align 2
-gUnknown_203B04C: @ 203B04C
- .space 0xC
-
-gUnknown_203B058: @ 203B058
- .space 0x1
-
-gUnknown_203B059: @ 203B059
- .space 0x3
-
-gUnknown_203B05C: @ 203B05C
- .space 0x8
-
-gUnknown_203B064: @ 203B064
- .space 0x4
-
-gUnionRoomOfferedSpecies: @ 203B068
- .space 0x2
-
-gUnionRoomRequestedMonType: @ 203B06A
- .space 0x2
-
-gUnknown_203B06C: @ 203B06C
- .space 0x18
-
-gUnknown_203B084: @ 203B084
- .space 0x4
-
-gUnknown_203B088: @ 203B088
- .space 0x4
-
-gUnknown_203B08C: @ 203B08C
- .space 0x4
+ .include "src/union_room.o"
+ .align 2
+ .include "src/rfu_union_tool.o"
+ .align 2
+ .include "src/union_room_battle.o"
+ .align 2
gUnknown_203B090: @ 203B090
.space 0x4