From a4f5f41e2496a4c2b91cd0643dc44d98faed0c89 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 16 Jan 2020 17:06:34 -0500 Subject: Document static mon scripts --- asm/macros/event.inc | 7 ++ data/event_scripts.s | 4 +- .../SeafoamIslands_B3F_CurrentStopped/border.bin | 1 + .../SeafoamIslands_B3F_CurrentStopped/map.bin | 3 + .../SeafoamIslands_B4F_CurrentStopped/border.bin | 1 + .../SeafoamIslands_B4F_CurrentStopped/map.bin | 3 + data/layouts/UnusedLayout_833B6EC/border.bin | 1 - data/layouts/UnusedLayout_833B6EC/map.bin | 3 - data/layouts/UnusedLayout_833BE30/border.bin | 1 - data/layouts/UnusedLayout_833BE30/map.bin | 3 - data/layouts/layouts.json | 16 +-- data/maps/CeruleanCave_B1F/map.json | 2 +- data/maps/CeruleanCave_B1F/scripts.inc | 26 ++-- data/maps/CeruleanCave_B1F/text.inc | 2 +- data/maps/MtEmber_Exterior/map.json | 16 +-- data/maps/MtEmber_Exterior/scripts.inc | 92 +++++++-------- data/maps/MtEmber_Exterior/text.inc | 53 +++++---- data/maps/MtEmber_RubyPath_B3F/scripts.inc | 6 +- data/maps/MtEmber_RubyPath_B3F/text.inc | 2 +- data/maps/MtEmber_RubyPath_B4F/map.json | 52 ++++---- data/maps/MtEmber_RubyPath_B4F/scripts.inc | 40 +++---- data/maps/MtEmber_RubyPath_B5F/map.json | 4 +- data/maps/MtEmber_RubyPath_B5F/scripts.inc | 39 ++---- data/maps/MtEmber_Summit/map.json | 2 +- data/maps/MtEmber_Summit/scripts.inc | 22 ++-- data/maps/PowerPlant/map.json | 6 +- data/maps/PowerPlant/scripts.inc | 50 ++++---- data/maps/Route12/map.json | 6 +- data/maps/Route12/scripts.inc | 36 +++--- data/maps/Route12/text.inc | 10 +- data/maps/Route16/map.json | 6 +- data/maps/Route16/scripts.inc | 44 +++---- data/maps/Route16/text.inc | 6 +- data/maps/SeafoamIslands_B3F/scripts.inc | 60 +++++----- data/maps/SeafoamIslands_B4F/map.json | 12 +- data/maps/SeafoamIslands_B4F/scripts.inc | 131 +++++++++++---------- data/maps/SeafoamIslands_B4F/text.inc | 4 +- data/maps/SixIsland_DottedHole_1F/scripts.inc | 8 +- .../SixIsland_DottedHole_SapphireRoom/scripts.inc | 77 +++--------- data/maps/SixIsland_RuinValley/scripts.inc | 2 +- data/text/braille.inc | 78 ++++++------ include/constants/layouts.h | 4 +- include/constants/metatile_labels.h | 6 + 43 files changed, 448 insertions(+), 499 deletions(-) create mode 100644 data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin create mode 100644 data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin create mode 100644 data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin create mode 100644 data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin delete mode 100644 data/layouts/UnusedLayout_833B6EC/border.bin delete mode 100644 data/layouts/UnusedLayout_833B6EC/map.bin delete mode 100644 data/layouts/UnusedLayout_833BE30/border.bin delete mode 100644 data/layouts/UnusedLayout_833BE30/map.bin 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/data/event_scripts.s b/data/event_scripts.s index f1d28077f..2c7fa7437 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" @@ -1117,7 +1118,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 diff --git a/data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin b/data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F_CurrentStopped/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin b/data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin new file mode 100644 index 000000000..d1385e8cb --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F_CurrentStopped/map.bin @@ -0,0 +1,3 @@ +'''///BBBBBBBBB///2222222BBBBBBBBB7772222222BBBBBBBBB !!& %"22222222BBBBBBBBB#     $22222222BBBBBBBBBC C C C C C +C $BBBBBBBBBBBB()BBBBBBBBBBBBB2222BBBBB*,BBBBBBBBBBBBB2222BBB22*,BBBBBBBBBBBWCBBBBXCBBB ###1,22BBBBBBBBBBBBBBBBB*++++0###!BBBBBBBBBBB*::::::::,BBBBBBBBBBB22BBBWC C C C C +C::CXCBBBB22BBBBBBBBB3,3,32BBBBB2222222222BBBBBBBBB3-3-32BBBBBBU22222222225-3'4222222222222222227'-622222U2222222222222222223./22222UV3012UVUUV3./VBFUUVVBBU3012VBBBUVBBBBBUVBBB \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin b/data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F_CurrentStopped/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin b/data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin new file mode 100644 index 000000000..13a635e49 --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F_CurrentStopped/map.bin @@ -0,0 +1,3 @@ + #!BBBBBBBB ##!BBBBBBBBBBBBB*+,BBBBBBBB*++,BBBBBBBBBBBB*+,BBBBBB*++,BBBBBBBBBBB*+,22*++,BBBBBBBBBBBB*+0##########1++,BBBBBBBBBBB*+++++++++++++++,BB22*++++++C C C C C C C C CXCBB #########!*+++++,BBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,V*+++++,BBBBBBB*+++++++++,U*+++++,22BB ##1+++++++++,*+++++0######!BB*++++++++++++,*++++++++++++,BB*++++++++++++,VU*++++++++++++,BB*++++++++++++,*++++++++++++,BB*++++++++++++,U    ++C C C C C CXCBBWC C +C++++++++++,*+BBBBBBBBBBBWC +C++++++++,BBBBBBBBBBBBBB       VBBBBBBBBBBBBBB  U                  V \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833B6EC/border.bin b/data/layouts/UnusedLayout_833B6EC/border.bin deleted file mode 100644 index a021ddd4e..000000000 --- a/data/layouts/UnusedLayout_833B6EC/border.bin +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833B6EC/map.bin b/data/layouts/UnusedLayout_833B6EC/map.bin deleted file mode 100644 index d1385e8cb..000000000 --- a/data/layouts/UnusedLayout_833B6EC/map.bin +++ /dev/null @@ -1,3 +0,0 @@ -'''///BBBBBBBBB///2222222BBBBBBBBB7772222222BBBBBBBBB !!& %"22222222BBBBBBBBB#     $22222222BBBBBBBBBC C C C C C -C $BBBBBBBBBBBB()BBBBBBBBBBBBB2222BBBBB*,BBBBBBBBBBBBB2222BBB22*,BBBBBBBBBBBWCBBBBXCBBB ###1,22BBBBBBBBBBBBBBBBB*++++0###!BBBBBBBBBBB*::::::::,BBBBBBBBBBB22BBBWC C C C C -C::CXCBBBB22BBBBBBBBB3,3,32BBBBB2222222222BBBBBBBBB3-3-32BBBBBBU22222222225-3'4222222222222222227'-622222U2222222222222222223./22222UV3012UVUUV3./VBFUUVVBBU3012VBBBUVBBBBBUVBBB \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833BE30/border.bin b/data/layouts/UnusedLayout_833BE30/border.bin deleted file mode 100644 index a021ddd4e..000000000 --- a/data/layouts/UnusedLayout_833BE30/border.bin +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833BE30/map.bin b/data/layouts/UnusedLayout_833BE30/map.bin deleted file mode 100644 index 13a635e49..000000000 --- a/data/layouts/UnusedLayout_833BE30/map.bin +++ /dev/null @@ -1,3 +0,0 @@ - #!BBBBBBBB ##!BBBBBBBBBBBBB*+,BBBBBBBB*++,BBBBBBBBBBBB*+,BBBBBB*++,BBBBBBBBBBB*+,22*++,BBBBBBBBBBBB*+0##########1++,BBBBBBBBBBB*+++++++++++++++,BB22*++++++C C C C C C C C CXCBB #########!*+++++,BBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,V*+++++,BBBBBBB*+++++++++,U*+++++,22BB ##1+++++++++,*+++++0######!BB*++++++++++++,*++++++++++++,BB*++++++++++++,VU*++++++++++++,BB*++++++++++++,*++++++++++++,BB*++++++++++++,U    ++C C C C C CXCBBWC C -C++++++++++,*+BBBBBBBBBBBWC -C++++++++,BBBBBBBBBBBBBB       VBBBBBBBBBBBBBB  U                  V \ No newline at end of file diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 04727aaa7..f42871fbe 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -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/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/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/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/include/constants/layouts.h b/include/constants/layouts.h index a9d40220f..26893ac0c 100644 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -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/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 -- cgit v1.2.3 From f6e050cf354a6ca3f5ea3a57496cc0ae2aac49dd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Jan 2020 15:11:46 -0500 Subject: through sub_81081AC --- asm/item_menu.s | 512 ------------------------------------------- include/bag.h | 2 + include/battle_controllers.h | 1 + include/item_menu.h | 4 +- ld_script.txt | 1 + src/item_menu.c | 281 ++++++++++++++++++++++++ 6 files changed, 287 insertions(+), 514 deletions(-) create mode 100644 src/item_menu.c diff --git a/asm/item_menu.s b/asm/item_menu.s index 704d8d5d8..f3af32b36 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,518 +5,6 @@ .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} diff --git a/include/bag.h b/include/bag.h index f82531778..8c085a211 100644 --- a/include/bag.h +++ b/include/bag.h @@ -1,6 +1,8 @@ #ifndef GUARD_BAG_H #define GUARD_BAG_H +#include "menu_helpers.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); 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/item_menu.h b/include/item_menu.h index 187674e83..d141c6601 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -14,8 +14,8 @@ struct BagStruct u8 location; u8 pocket; u16 unk6; - u8 cursorPosition[6]; - u8 scrollPosition[6]; + u16 itemsAbove[3]; + u16 cursorPos[3]; }; extern struct BagStruct gUnknown_203ACFC; diff --git a/ld_script.txt b/ld_script.txt index f07e480a2..feca781e7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -232,6 +232,7 @@ SECTIONS { src/pokedex_screen.o(.text); asm/pokedex_screen.o(.text); src/list_menu.o(.text); + src/item_menu.o(.text); asm/item_menu.o(.text); src/save_location.o(.text); src/bag.o(.text); diff --git a/src/item_menu.c b/src/item_menu.c new file mode 100644 index 000000000..9128d0856 --- /dev/null +++ b/src/item_menu.c @@ -0,0 +1,281 @@ +#include "global.h" +#include "bag.h" +#include "battle_controllers.h" +#include "bg.h" +#include "help_system.h" +#include "item_menu.h" +#include "item_menu_icons.h" +#include "list_menu.h" +#include "malloc.h" +#include "new_menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "scanline_effect.h" +#include "text.h" +#include "constants/items.h" + +struct BagMenuAlloc +{ + u32 field_00; + u8 field_04; + u8 field_05_0:4; + u8 field_05_4:2; + u8 field_05_6:2; + u16 field_06; + u8 field_08; + u8 field_09; + u8 filler_0A[6]; + u8 field_10[4]; +}; + +EWRAM_DATA struct BagStruct gUnknown_203ACFC = {}; +EWRAM_DATA struct BagMenuAlloc * gUnknown_203AD10 = NULL; +EWRAM_DATA void * gUnknown_203AD14 = NULL; +EWRAM_DATA struct ListMenuItem * gUnknown_203AD18 = NULL; +EWRAM_DATA u8 (*gUnknown_203AD1C)[20] = NULL; + +void sub_8107F10(void); +bool8 sub_8107F3C(void); +void sub_810813C(void); +void sub_8108178(u8 taskId); +void sub_81081AC(void); +bool8 sub_81081D0(void); +bool8 sub_8108240(void); +u8 sub_8108388(u8 location); +bool8 sub_81083F4(void); +void sub_810842C(u8 a0); +void sub_81087EC(void); +void sub_8108888(void); +void sub_81088D8(void); +void sub_8108A68(void); +void sub_8108A84(void); +void sub_8108B04(void); +void sub_8108C10(void); +void sub_8108E54(void); + +void GoToBagMenu(u8 location, u8 a1, MainCallback a2) +{ + u8 i; + + sub_81081AC(); + gUnknown_203AD10 = Alloc(sizeof(struct BagMenuAlloc)); + if (gUnknown_203AD10 == NULL) + SetMainCallback2(a2); + else + { + if (location != 11) + gUnknown_203ACFC.location = location; + if (a2 != NULL) + gUnknown_203ACFC.bagCallback = a2; + gUnknown_203AD10->field_00 = 0; + gUnknown_203AD10->field_04 = 0xFF; + gUnknown_203AD10->field_05_4 = 0; + gUnknown_203AD10->field_05_6 = 0; + gUnknown_203AD10->field_08 = 0xFF; + gUnknown_203AD10->field_09 = 0xFF; + if (location == 3) + gUnknown_203AD10->field_05_0 = 1; + else if (location == 6) + gUnknown_203AD10->field_05_0 = 2; + else + gUnknown_203AD10->field_05_0 = 0; + for (i = 0; i < 4; i++) + { + gUnknown_203AD10->field_10[i] = 0; + } + if (a1 == 0 || a1 == 1 || a1 == 2) + gUnknown_203ACFC.unk6 = a1; + gTextFlags.autoScroll = FALSE; + gSpecialVar_ItemId = ITEM_NONE; + SetMainCallback2(sub_8107F10); + } +} + +void CB2_BagMenuFromStartMenu(void) +{ + GoToBagMenu(0, 3, CB2_ReturnToFieldWithOpenMenu); +} + +void sub_8107ECC(void) +{ + GoToBagMenu(5, 3, SetCB2ToReshowScreenAfterMenu2); +} + +void sub_8107EE0(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + DoScheduledBgTilemapCopiesToVram(); + UpdatePaletteFade(); +} + +void sub_8107EFC(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8107F10(void) +{ + while (1) + { + if ((u8)sub_80BF72C() == TRUE) + break; + if (sub_8107F3C() == TRUE) + break; + if (MenuHelpers_LinkSomething() == TRUE) + break; + } +} + +bool8 sub_8107F3C(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 (sub_81081D0()) + { + gUnknown_203AD10->field_10[0] = 0; + gMain.state++; + } + else + { + sub_810813C(); + return TRUE; + } + break; + case 8: + if (sub_8108240() == TRUE) + gMain.state++; + break; + case 9: + sub_810B858(); + gMain.state++; + break; + case 10: + sub_8108E54(); + sub_8108A68(); + sub_8108A84(); + gMain.state++; + break; + case 11: + if (!sub_81083F4()) + { + sub_810813C(); + return TRUE; + } + gMain.state++; + break; + case 12: + sub_810842C(gUnknown_203ACFC.unk6); + gMain.state++; + break; + case 13: + if (gUnknown_203ACFC.location != 3) + sub_81087EC(); + else + sub_810B994(); + gMain.state++; + break; + case 14: + taskId = sub_8108388(gUnknown_203ACFC.location); + gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.unk6], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.unk6]); + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[8] = 0; + gMain.state++; + break; + case 15: + sub_80984FC(gUnknown_203ACFC.unk6); + gMain.state++; + break; + case 16: + sub_8108888(); + sub_81088D8(); + gMain.state++; + break; + case 17: + sub_80985E4(); + gMain.state++; + break; + case 18: + sub_8108C10(); + gMain.state++; + break; + case 19: + if (gUnknown_203ACFC.location == 3) + HelpSystem_SetSomeVariable2(29); + else + HelpSystem_SetSomeVariable2(9); + gPaletteFade.bufferTransferDisabled = FALSE; + gMain.state++; + break; + default: + SetVBlankCallback(sub_8107EFC); + SetMainCallback2(sub_8107EE0); + return TRUE; + } + return FALSE; +} + +void sub_810813C(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + CreateTask(sub_8108178, 0); + SetVBlankCallback(sub_8107EFC); + SetMainCallback2(sub_8107EE0); +} + +void sub_8108178(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(gUnknown_203ACFC.bagCallback); + sub_8108B04(); + DestroyTask(taskId); + } +} + +void sub_81081AC(void) +{ + gUnknown_203AD10 = NULL; + gUnknown_203AD14 = NULL; + gUnknown_203AD18 = NULL; + gUnknown_203AD1C = NULL; +} -- cgit v1.2.3 From dbf3ac402d94be993839bddd109e3cfaef8e3dea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Jan 2020 16:40:53 -0500 Subject: through sub_8108560 --- asm/item_menu.s | 475 ---------------------------------------------------- include/gflib.h | 18 ++ include/graphics.h | 11 +- include/item_menu.h | 4 +- src/item_menu.c | 180 ++++++++++++++++++-- 5 files changed, 196 insertions(+), 492 deletions(-) create mode 100644 include/gflib.h diff --git a/asm/item_menu.s b/asm/item_menu.s index f3af32b36..c90b708cd 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,481 +5,6 @@ .text - 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} 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/graphics.h b/include/graphics.h index a668364bd..eb9a9a20d 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 @@ -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 gUnknown_8E835B4[]; +extern const u32 gUnknown_8E83604[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/item_menu.h b/include/item_menu.h index d141c6601..343fae393 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -12,8 +12,8 @@ struct BagStruct { void (*bagCallback)(void); u8 location; - u8 pocket; - u16 unk6; + u8 unk5; + u16 pocket; u16 itemsAbove[3]; u16 cursorPos[3]; }; diff --git a/src/item_menu.c b/src/item_menu.c index 9128d0856..ce964b647 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1,17 +1,18 @@ #include "global.h" +#include "gflib.h" #include "bag.h" #include "battle_controllers.h" -#include "bg.h" +#include "decompress.h" +#include "graphics.h" #include "help_system.h" +#include "item.h" #include "item_menu.h" #include "item_menu_icons.h" #include "list_menu.h" -#include "malloc.h" #include "new_menu_helpers.h" #include "overworld.h" -#include "palette.h" #include "scanline_effect.h" -#include "text.h" +#include "strings.h" #include "constants/items.h" struct BagMenuAlloc @@ -24,7 +25,8 @@ struct BagMenuAlloc u16 field_06; u8 field_08; u8 field_09; - u8 filler_0A[6]; + u8 field_0A[3]; + u8 field_0D[3]; u8 field_10[4]; }; @@ -32,7 +34,7 @@ EWRAM_DATA struct BagStruct gUnknown_203ACFC = {}; EWRAM_DATA struct BagMenuAlloc * gUnknown_203AD10 = NULL; EWRAM_DATA void * gUnknown_203AD14 = NULL; EWRAM_DATA struct ListMenuItem * gUnknown_203AD18 = NULL; -EWRAM_DATA u8 (*gUnknown_203AD1C)[20] = NULL; +EWRAM_DATA u8 (*gUnknown_203AD1C)[19] = NULL; void sub_8107F10(void); bool8 sub_8107F3C(void); @@ -43,7 +45,10 @@ bool8 sub_81081D0(void); bool8 sub_8108240(void); u8 sub_8108388(u8 location); bool8 sub_81083F4(void); -void sub_810842C(u8 a0); +void sub_810842C(u8 pocket); +void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list); +void sub_8108654(u8 windowId, s32 itemId, u8 y); +void sub_8108560(u8 *dest, u16 itemId); void sub_81087EC(void); void sub_8108888(void); void sub_81088D8(void); @@ -52,6 +57,17 @@ void sub_8108A84(void); void sub_8108B04(void); void sub_8108C10(void); void sub_8108E54(void); +void sub_8108F0C(u8 taskId); +bool8 sub_810ADAC(void); +void sub_810AF9C(u8 taskId); +void sub_810B1D4(u8 taskId); +void sub_810B378(u8 taskId); +void sub_810B4BC(u8 taskId); +void sub_810B5D4(u8 taskId); + +extern const struct BgTemplate gUnknown_8452CF4[2]; +extern const u8 gUnknown_8452F60[]; +extern const u8 gUnknown_8452F66[]; void GoToBagMenu(u8 location, u8 a1, MainCallback a2) { @@ -84,7 +100,7 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2) gUnknown_203AD10->field_10[i] = 0; } if (a1 == 0 || a1 == 1 || a1 == 2) - gUnknown_203ACFC.unk6 = a1; + gUnknown_203ACFC.pocket = a1; gTextFlags.autoScroll = FALSE; gSpecialVar_ItemId = ITEM_NONE; SetMainCallback2(sub_8107F10); @@ -204,7 +220,7 @@ bool8 sub_8107F3C(void) gMain.state++; break; case 12: - sub_810842C(gUnknown_203ACFC.unk6); + sub_810842C(gUnknown_203ACFC.pocket); gMain.state++; break; case 13: @@ -216,13 +232,13 @@ bool8 sub_8107F3C(void) break; case 14: taskId = sub_8108388(gUnknown_203ACFC.location); - gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.unk6], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.unk6]); + gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); gTasks[taskId].data[3] = 0; gTasks[taskId].data[8] = 0; gMain.state++; break; case 15: - sub_80984FC(gUnknown_203ACFC.unk6); + sub_80984FC(gUnknown_203ACFC.pocket); gMain.state++; break; case 16: @@ -279,3 +295,145 @@ void sub_81081AC(void) gUnknown_203AD18 = NULL; gUnknown_203AD1C = NULL; } + +bool8 sub_81081D0(void) +{ + void **buff; + ResetAllBgsCoordinatesAndBgCntRegs(); + buff = &gUnknown_203AD14; + *buff = Alloc(0x800); + if (*buff == NULL) + return FALSE; + memset(*buff, 0, 0x800); + ResetBgsAndClearDma3BusyFlags(FALSE); + InitBgsFromTemplates(0, gUnknown_8452CF4, NELEMS(gUnknown_8452CF4)); + 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; +} + +bool8 sub_8108240(void) +{ + switch (gUnknown_203AD10->field_10[0]) + { + case 0: + ResetTempTileDataBuffers(); + DecompressAndCopyTileDataToVram(1, gUnknown_8E830CC, 0, 0, 0); + gUnknown_203AD10->field_10[0]++; + break; + case 1: + if (FreeTempTileDataBuffersIfPossible() != TRUE) + { + if (gUnknown_203ACFC.location != 3) + LZDecompressWram(gUnknown_8E832C0, gUnknown_203AD14); + else + LZDecompressWram(gUnknown_8E83444, gUnknown_203AD14); + gUnknown_203AD10->field_10[0]++; + } + break; + case 2: + LoadCompressedPalette(gUnknown_8E835B4, 0x00, 0x60); + if (!sub_810ADAC() && gSaveBlock2Ptr->playerGender != MALE) + LoadCompressedPalette(gUnknown_8E83604, 0x00, 0x20); + gUnknown_203AD10->field_10[0]++; + break; + case 3: + if (sub_810ADAC() == TRUE || gSaveBlock2Ptr->playerGender == MALE) + LoadCompressedSpriteSheet(&gUnknown_83D41E4); + else + LoadCompressedSpriteSheet(&gUnknown_83D41EC); + gUnknown_203AD10->field_10[0]++; + break; + case 4: + LoadCompressedSpritePalette(&gUnknown_83D41F4); + gUnknown_203AD10->field_10[0]++; + break; + case 5: + LoadCompressedSpriteSheet(&gBagSwapSpriteSheet); + gUnknown_203AD10->field_10[0]++; + break; + default: + LoadCompressedSpritePalette(&gBagSwapSpritePalette); + gUnknown_203AD10->field_10[0] = 0; + return TRUE; + } + + return FALSE; +} + +u8 sub_8108388(u8 location) +{ + switch (location) + { + case 6: + return CreateTask(sub_810AF9C, 0); + case 9: + return CreateTask(sub_810B1D4, 0); + case 10: + return CreateTask(sub_810B5D4, 0); + case 7: + return CreateTask(sub_810B4BC, 0); + case 8: + return CreateTask(sub_810B378, 0); + default: + return CreateTask(sub_8108F0C, 0); + } +} + +bool8 sub_81083F4(void) +{ + gUnknown_203AD18 = Alloc(43 * sizeof(struct ListMenuItem)); + if (gUnknown_203AD18 == NULL) + return FALSE; + gUnknown_203AD1C = Alloc(43 * 19); + if (gUnknown_203AD1C == NULL) + return FALSE; + return TRUE; +} + +void sub_810842C(u8 pocket) +{ + u16 i; + struct BagPocket * bagPocket = &gBagPockets[pocket]; + for (i = 0; i < gUnknown_203AD10->field_0A[pocket]; i++) + { + sub_8108560(gUnknown_203AD1C[i], bagPocket->itemSlots[i].itemId); + gUnknown_203AD18[i].label = gUnknown_203AD1C[i]; + gUnknown_203AD18[i].index = i; + } + StringCopy(gUnknown_203AD1C[i], gUnknown_8452F60); + StringAppend(gUnknown_203AD1C[i], gFameCheckerText_Cancel); + gUnknown_203AD18[i].label = gUnknown_203AD1C[i]; + gUnknown_203AD18[i].index = i; + gMultiuseListMenuTemplate.items = gUnknown_203AD18; + gMultiuseListMenuTemplate.totalItems = gUnknown_203AD10->field_0A[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 = gUnknown_203AD10->field_0D[pocket]; + gMultiuseListMenuTemplate.fontId = 2; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 0; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = sub_81085A4; + gMultiuseListMenuTemplate.itemPrintFunc = sub_8108654; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.scrollMultiple = 0; +} + +void sub_8108560(u8 *dest, u16 itemId) +{ + if (itemId == ITEM_TM_CASE || itemId == ITEM_BERRY_POUCH) + StringCopy(dest, gUnknown_8452F66); + else + StringCopy(dest, gUnknown_8452F60); + StringAppend(dest, ItemId_GetName(itemId)); +} -- cgit v1.2.3 From 881199142ccac48aa975d0b59be07dfd78ad70af Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Jan 2020 22:23:20 -0500 Subject: through bag_menu_print_cursor --- asm/item_menu.s | 284 -------------------------------------------------------- include/bag.h | 2 +- src/bag.c | 2 +- src/item_menu.c | 71 +++++++++++++- 4 files changed, 72 insertions(+), 287 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index c90b708cd..8e0d2e137 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,290 +5,6 @@ .text - 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} diff --git a/include/bag.h b/include/bag.h index 8c085a211..321a48ab0 100644 --- a/include/bag.h +++ b/include/bag.h @@ -4,7 +4,7 @@ #include "menu_helpers.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_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); void sub_810B958(const u8 * str); void sub_810B994(void); u8 sub_810B9DC(u8 a0, u8 a1); diff --git a/src/bag.c b/src/bag.c index c30bc626d..4a962bec6 100644 --- a/src/bag.c +++ b/src/bag.c @@ -227,7 +227,7 @@ 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_810B8F0(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); } diff --git a/src/item_menu.c b/src/item_menu.c index ce964b647..578170c17 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -14,6 +14,7 @@ #include "scanline_effect.h" #include "strings.h" #include "constants/items.h" +#include "constants/songs.h" struct BagMenuAlloc { @@ -46,10 +47,12 @@ bool8 sub_8108240(void); u8 sub_8108388(u8 location); bool8 sub_81083F4(void); void sub_810842C(u8 pocket); +void sub_8108560(u8 *dest, u16 itemId); void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list); void sub_8108654(u8 windowId, s32 itemId, u8 y); -void sub_8108560(u8 *dest, u16 itemId); +void bag_menu_print_cursor(u8 y, u8 colorIdx); void sub_81087EC(void); +void sub_8108818(s32 itemIndex); void sub_8108888(void); void sub_81088D8(void); void sub_8108A68(void); @@ -68,6 +71,7 @@ void sub_810B5D4(u8 taskId); extern const struct BgTemplate gUnknown_8452CF4[2]; extern const u8 gUnknown_8452F60[]; extern const u8 gUnknown_8452F66[]; +extern const u8 gUnknown_8452F7C[]; void GoToBagMenu(u8 location, u8 a1, MainCallback a2) { @@ -437,3 +441,68 @@ void sub_8108560(u8 *dest, u16 itemId) StringCopy(dest, gUnknown_8452F60); StringAppend(dest, ItemId_GetName(itemId)); } + +void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + { + PlaySE(SE_BAG1); + sub_8098580(); + } + if (gUnknown_203AD10->field_04 == 0xFF) + { + DestroyItemMenuIcon(gUnknown_203AD10->field_05_4 ^ 1); + if (gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemIndex) + CreateItemMenuIcon(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex), gUnknown_203AD10->field_05_4); + else + CreateItemMenuIcon(ITEM_N_A, gUnknown_203AD10->field_05_4); + gUnknown_203AD10->field_05_4 ^= 1; + if (gUnknown_203AD10->field_05_6 == 0) + sub_8108818(itemIndex); + } +} + +void sub_8108654(u8 windowId, s32 itemId, u8 y) +{ + u16 bagItemId; + u16 bagItemQuantity; + if (gUnknown_203AD10->field_04 != 0xFF) + { + if (gUnknown_203AD10->field_04 == (u8)itemId) + bag_menu_print_cursor(y, 2); + else + bag_menu_print_cursor(y, 0xFF); + } + if (itemId != -2 && gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemId) + { + bagItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId); + bagItemQuantity = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId); + if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(bagItemId)) + { + ConvertIntToDecimalStringN(gStringVar1, bagItemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + sub_810B8F0(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1); + } + else if (gSaveBlock1Ptr->registeredItem != ITEM_NONE && gSaveBlock1Ptr->registeredItem == bagItemId) + { + BlitBitmapToWindow(windowId, gUnknown_8452F7C, 0x70, y, 0x18, 0x10); + } + } +} + +void bag_menu_print_cursor_(u8 taskId, u8 colorIdx) +{ + bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx); +} + +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 + { + sub_810B8F0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx); + } +} -- cgit v1.2.3 From 2ce545fc216cc07ac9b9bf833a6ed410d90ab420 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 09:23:48 -0500 Subject: through sub_810899C --- asm/item_menu.s | 253 +----------------------------------------------------- include/bag.h | 2 +- include/strings.h | 3 + src/bag.c | 2 +- src/item_menu.c | 92 ++++++++++++++++++++ sym_ewram.txt | 11 +-- 6 files changed, 102 insertions(+), 261 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index 8e0d2e137..a6d327eb2 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,251 +5,6 @@ .text - 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} @@ -368,7 +123,7 @@ sub_8108A84: @ 8108A84 mov r7, r8 push {r7} movs r6, 0 - ldr r0, _08108AF8 @ =gUnknown_203AD04 + ldr r0, _08108AF8 @ =gUnknown_203ACFC+8 mov r8, r0 _08108A90: lsls r2, r6, 1 @@ -382,7 +137,7 @@ _08108A90: subs r0, 0x3 cmp r5, r0 bgt _08108AE6 - ldr r0, _08108AFC @ =gUnknown_203AD0A + ldr r0, _08108AFC @ =gUnknown_203ACFC+14 ldr r3, _08108B00 @ =gUnknown_203AD10 mov r12, r3 adds r4, r2, r0 @@ -426,8 +181,8 @@ _08108AE6: pop {r0} bx r0 .align 2, 0 -_08108AF8: .4byte gUnknown_203AD04 -_08108AFC: .4byte gUnknown_203AD0A +_08108AF8: .4byte gUnknown_203ACFC+8 +_08108AFC: .4byte gUnknown_203ACFC+14 _08108B00: .4byte gUnknown_203AD10 thumb_func_end sub_8108A84 diff --git a/include/bag.h b/include/bag.h index 321a48ab0..c48940173 100644 --- a/include/bag.h +++ b/include/bag.h @@ -5,7 +5,7 @@ void sub_810B858(void); void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); -void sub_810B958(const u8 * str); +void sub_810B958(const u8 * str, u8 unused); void sub_810B994(void); u8 sub_810B9DC(u8 a0, u8 a1); void sub_810BA3C(u8 a0); diff --git a/include/strings.h b/include/strings.h index eace8d67e..2e74d7b38 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1038,4 +1038,7 @@ extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[]; extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; extern const u8 gText_SaveFailedScreen_SaveCompleted[]; +// item_menu +extern const u8 gUnknown_84162F5[]; + #endif //GUARD_STRINGS_H diff --git a/src/bag.c b/src/bag.c index 4a962bec6..b5ba01b4d 100644 --- a/src/bag.c +++ b/src/bag.c @@ -232,7 +232,7 @@ void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSp AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str); } -void sub_810B958(const u8 * str) +void sub_810B958(const u8 * str, u8 unused) { u32 x = 0x48 - GetStringWidth(1, str, 0); AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str); diff --git a/src/item_menu.c b/src/item_menu.c index 578170c17..12db534e8 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -9,6 +9,7 @@ #include "item_menu.h" #include "item_menu_icons.h" #include "list_menu.h" +#include "menu_indicators.h" #include "new_menu_helpers.h" #include "overworld.h" #include "scanline_effect.h" @@ -55,6 +56,7 @@ void sub_81087EC(void); void sub_8108818(s32 itemIndex); void sub_8108888(void); void sub_81088D8(void); +void sub_810899C(void); void sub_8108A68(void); void sub_8108A84(void); void sub_8108B04(void); @@ -69,8 +71,10 @@ void sub_810B4BC(u8 taskId); void sub_810B5D4(u8 taskId); extern const struct BgTemplate gUnknown_8452CF4[2]; +extern const u8 *const gUnknown_8452CFC[]; extern const u8 gUnknown_8452F60[]; extern const u8 gUnknown_8452F66[]; +extern const struct ScrollArrowsTemplate gUnknown_8452F6C; extern const u8 gUnknown_8452F7C[]; void GoToBagMenu(u8 location, u8 a1, MainCallback a2) @@ -506,3 +510,91 @@ void bag_menu_print_cursor(u8 y, u8 colorIdx) sub_810B8F0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx); } } + +void sub_81087EC(void) +{ + FillWindowPixelBuffer(2, PIXEL_FILL(0)); + sub_810B958(gUnknown_8452CFC[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket); +} + +void sub_8108818(s32 itemIndex) +{ + const u8 *description; + if (itemIndex != gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket]) + description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex)); + else + description = gUnknown_84162F5; + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + sub_810B8F0(1, 2, description, 0, 3, 2, 0, 0, 0); +} + +void sub_8108888(void) +{ + gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( + 2, + 160, + 8, + 104, + gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] - gUnknown_203AD10->field_0D[gUnknown_203ACFC.pocket] + 1, + 110, + 110, + &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket] + ); +} + +void sub_81088D8(void) +{ + if (gUnknown_203AD10->field_05_0 != 1) + { + gUnknown_203AD10->field_09 = AddScrollIndicatorArrowPair(&gUnknown_8452F6C, &gUnknown_203ACFC.pocket); + } +} + +void sub_8108908(void) +{ + gUnknown_203AD10->field_06 = 1; + gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( + 2, + 152, + 72, + 104, + 2, + 110, + 110, + &gUnknown_203AD10->field_06 + ); +} + +void sub_8108940(void) +{ + gUnknown_203AD10->field_06 = 1; + gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( + 2, + 212, + 120, + 152, + 2, + 110, + 110, + &gUnknown_203AD10->field_06 + ); +} + +void sub_8108978(void) +{ + if (gUnknown_203AD10->field_08 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203AD10->field_08); + gUnknown_203AD10->field_08 = 0xFF; + } + sub_810899C(); +} + +void sub_810899C(void) +{ + if (gUnknown_203AD10->field_09 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203AD10->field_09); + gUnknown_203AD10->field_09 = 0xFF; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 188ccd3aa..cb8a6f205 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -336,16 +336,7 @@ gUnknown_203ACF0: @ 203ACF0 .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 + .space 0x14 gUnknown_203AD10: @ 203AD10 .space 0x4 -- cgit v1.2.3 From 1c3f865acf9e957e8f6ba4daf7f0cfa093893074 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 09:36:16 -0500 Subject: through ItemMenu_StartFadeToExitCallback --- asm/item_menu.s | 249 ------------------------------------------------------ data/item_menu.s | 55 ------------ include/strings.h | 8 ++ ld_script.txt | 1 + src/item_menu.c | 233 +++++++++++++++++++++++++++++++++++++++----------- 5 files changed, 192 insertions(+), 354 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index a6d327eb2..143e87b66 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,255 +5,6 @@ .text - 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_203ACFC+8 - 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_203ACFC+14 - 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_203ACFC+8 -_08108AFC: .4byte gUnknown_203ACFC+14 -_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} diff --git a/data/item_menu.s b/data/item_menu.s index b5cc492e3..c9385108e 100644 --- a/data/item_menu.s +++ b/data/item_menu.s @@ -6,61 +6,6 @@ .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 diff --git a/include/strings.h b/include/strings.h index 2e74d7b38..809007409 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1039,6 +1039,14 @@ extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; extern const u8 gText_SaveFailedScreen_SaveCompleted[]; // item_menu +extern const u8 gUnknown_84161A9[]; +extern const u8 gUnknown_84161BC[]; +extern const u8 gUnknown_84161E9[]; +extern const u8 gUnknown_84161F4[]; +extern const u8 gUnknown_84161F9[]; +extern const u8 gUnknown_84162CD[]; +extern const u8 gUnknown_84162D3[]; +extern const u8 gUnknown_84162DE[]; extern const u8 gUnknown_84162F5[]; #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index feca781e7..ddec18aa0 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -518,6 +518,7 @@ SECTIONS { src/pokedex_screen.o(.rodata); data/pokedex_screen.o(.rodata); src/list_menu.o(.rodata); + src/item_menu.o(.rodata); data/item_menu.o(.rodata); src/save_location.o(.rodata); src/bag.o(.rodata); diff --git a/src/item_menu.c b/src/item_menu.c index 12db534e8..a861cb742 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -9,6 +9,7 @@ #include "item_menu.h" #include "item_menu_icons.h" #include "list_menu.h" +#include "menu.h" #include "menu_indicators.h" #include "new_menu_helpers.h" #include "overworld.h" @@ -17,19 +18,21 @@ #include "constants/items.h" #include "constants/songs.h" +#define FREE_IF_SET(ptr) ({ if (ptr) Free(ptr); }) + struct BagMenuAlloc { u32 field_00; u8 field_04; u8 field_05_0:4; - u8 field_05_4:2; + u8 itemMenuIcon:2; u8 field_05_6:2; - u16 field_06; - u8 field_08; - u8 field_09; - u8 field_0A[3]; - u8 field_0D[3]; - u8 field_10[4]; + u16 contextMenuSelectedItem; + u8 pocketScrollArrowsTask; + u8 pocketSwitchArrowsTask; + u8 nItems[3]; + u8 maxShowed[3]; + u8 data[4]; }; EWRAM_DATA struct BagStruct gUnknown_203ACFC = {}; @@ -60,9 +63,16 @@ void sub_810899C(void); void sub_8108A68(void); void sub_8108A84(void); void sub_8108B04(void); +void sub_8108B8C(u8 taskId); void sub_8108C10(void); void sub_8108E54(void); void sub_8108F0C(u8 taskId); +void sub_8109C50(u8 taskId); +void sub_8109CC0(u8 taskId); +void sub_810A000(u8 taskId); +void sub_810A0A8(u8 taskId); +void sub_810A2DC(u8 taskId); +void sub_810A324(u8 taskId); bool8 sub_810ADAC(void); void sub_810AF9C(u8 taskId); void sub_810B1D4(u8 taskId); @@ -70,8 +80,62 @@ void sub_810B378(u8 taskId); void sub_810B4BC(u8 taskId); void sub_810B5D4(u8 taskId); -extern const struct BgTemplate gUnknown_8452CF4[2]; -extern const u8 *const gUnknown_8452CFC[]; +const struct BgTemplate gUnknown_8452CF4[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 + } +}; + +const u8 *const gUnknown_8452CFC[] = { + gUnknown_84162CD, + gUnknown_84162DE, + gUnknown_84162D3 +}; + +const u16 gUnknown_8452D08[][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") +}; + +const struct MenuAction gUnknown_8452EB8[] = { + {gOtherText_Use, {.void_u8 = sub_8109C50}}, + {gOtherText_Toss, {.void_u8 = sub_8109CC0}}, + {gUnknown_84161A9, {.void_u8 = sub_810A000}}, + {gOtherText_Give, {.void_u8 = sub_810A0A8}}, + {gFameCheckerText_Cancel, {.void_u8 = sub_810A2DC}}, + {gOtherText_Use, {.void_u8 = sub_810A324}}, + {gUnknown_84161E9, {.void_u8 = sub_8109C50}}, + {gUnknown_84161F4, {.void_u8 = sub_8109C50}}, + {gUnknown_84161F4, {.void_u8 = sub_810A324}}, + {gUnknown_84161BC, {.void_u8 = sub_8109C50}}, + {gUnknown_84161F9, {.void_u8 = sub_810A000}}, + {gString_Dummy, {.void_u8 = NULL}} +}; + extern const u8 gUnknown_8452F60[]; extern const u8 gUnknown_8452F66[]; extern const struct ScrollArrowsTemplate gUnknown_8452F6C; @@ -93,10 +157,10 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2) gUnknown_203ACFC.bagCallback = a2; gUnknown_203AD10->field_00 = 0; gUnknown_203AD10->field_04 = 0xFF; - gUnknown_203AD10->field_05_4 = 0; + gUnknown_203AD10->itemMenuIcon = 0; gUnknown_203AD10->field_05_6 = 0; - gUnknown_203AD10->field_08 = 0xFF; - gUnknown_203AD10->field_09 = 0xFF; + gUnknown_203AD10->pocketScrollArrowsTask = 0xFF; + gUnknown_203AD10->pocketSwitchArrowsTask = 0xFF; if (location == 3) gUnknown_203AD10->field_05_0 = 1; else if (location == 6) @@ -105,7 +169,7 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2) gUnknown_203AD10->field_05_0 = 0; for (i = 0; i < 4; i++) { - gUnknown_203AD10->field_10[i] = 0; + gUnknown_203AD10->data[i] = 0; } if (a1 == 0 || a1 == 1 || a1 == 2) gUnknown_203ACFC.pocket = a1; @@ -196,7 +260,7 @@ bool8 sub_8107F3C(void) case 7: if (sub_81081D0()) { - gUnknown_203AD10->field_10[0] = 0; + gUnknown_203AD10->data[0] = 0; gMain.state++; } else @@ -326,12 +390,12 @@ bool8 sub_81081D0(void) bool8 sub_8108240(void) { - switch (gUnknown_203AD10->field_10[0]) + switch (gUnknown_203AD10->data[0]) { case 0: ResetTempTileDataBuffers(); DecompressAndCopyTileDataToVram(1, gUnknown_8E830CC, 0, 0, 0); - gUnknown_203AD10->field_10[0]++; + gUnknown_203AD10->data[0]++; break; case 1: if (FreeTempTileDataBuffersIfPossible() != TRUE) @@ -340,33 +404,33 @@ bool8 sub_8108240(void) LZDecompressWram(gUnknown_8E832C0, gUnknown_203AD14); else LZDecompressWram(gUnknown_8E83444, gUnknown_203AD14); - gUnknown_203AD10->field_10[0]++; + gUnknown_203AD10->data[0]++; } break; case 2: LoadCompressedPalette(gUnknown_8E835B4, 0x00, 0x60); if (!sub_810ADAC() && gSaveBlock2Ptr->playerGender != MALE) LoadCompressedPalette(gUnknown_8E83604, 0x00, 0x20); - gUnknown_203AD10->field_10[0]++; + gUnknown_203AD10->data[0]++; break; case 3: if (sub_810ADAC() == TRUE || gSaveBlock2Ptr->playerGender == MALE) LoadCompressedSpriteSheet(&gUnknown_83D41E4); else LoadCompressedSpriteSheet(&gUnknown_83D41EC); - gUnknown_203AD10->field_10[0]++; + gUnknown_203AD10->data[0]++; break; case 4: LoadCompressedSpritePalette(&gUnknown_83D41F4); - gUnknown_203AD10->field_10[0]++; + gUnknown_203AD10->data[0]++; break; case 5: LoadCompressedSpriteSheet(&gBagSwapSpriteSheet); - gUnknown_203AD10->field_10[0]++; + gUnknown_203AD10->data[0]++; break; default: LoadCompressedSpritePalette(&gBagSwapSpritePalette); - gUnknown_203AD10->field_10[0] = 0; + gUnknown_203AD10->data[0] = 0; return TRUE; } @@ -407,7 +471,7 @@ void sub_810842C(u8 pocket) { u16 i; struct BagPocket * bagPocket = &gBagPockets[pocket]; - for (i = 0; i < gUnknown_203AD10->field_0A[pocket]; i++) + for (i = 0; i < gUnknown_203AD10->nItems[pocket]; i++) { sub_8108560(gUnknown_203AD1C[i], bagPocket->itemSlots[i].itemId); gUnknown_203AD18[i].label = gUnknown_203AD1C[i]; @@ -418,7 +482,7 @@ void sub_810842C(u8 pocket) gUnknown_203AD18[i].label = gUnknown_203AD1C[i]; gUnknown_203AD18[i].index = i; gMultiuseListMenuTemplate.items = gUnknown_203AD18; - gMultiuseListMenuTemplate.totalItems = gUnknown_203AD10->field_0A[pocket] + 1; + gMultiuseListMenuTemplate.totalItems = gUnknown_203AD10->nItems[pocket] + 1; gMultiuseListMenuTemplate.windowId = 0; gMultiuseListMenuTemplate.header_X = 0; gMultiuseListMenuTemplate.item_X = 9; @@ -426,7 +490,7 @@ void sub_810842C(u8 pocket) gMultiuseListMenuTemplate.lettersSpacing = 0; gMultiuseListMenuTemplate.itemVerticalPadding = 2; gMultiuseListMenuTemplate.upText_Y = 2; - gMultiuseListMenuTemplate.maxShowed = gUnknown_203AD10->field_0D[pocket]; + gMultiuseListMenuTemplate.maxShowed = gUnknown_203AD10->maxShowed[pocket]; gMultiuseListMenuTemplate.fontId = 2; gMultiuseListMenuTemplate.cursorPal = 2; gMultiuseListMenuTemplate.fillValue = 0; @@ -455,12 +519,12 @@ void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list) } if (gUnknown_203AD10->field_04 == 0xFF) { - DestroyItemMenuIcon(gUnknown_203AD10->field_05_4 ^ 1); - if (gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemIndex) - CreateItemMenuIcon(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex), gUnknown_203AD10->field_05_4); + DestroyItemMenuIcon(gUnknown_203AD10->itemMenuIcon ^ 1); + if (gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket] != itemIndex) + CreateItemMenuIcon(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex), gUnknown_203AD10->itemMenuIcon); else - CreateItemMenuIcon(ITEM_N_A, gUnknown_203AD10->field_05_4); - gUnknown_203AD10->field_05_4 ^= 1; + CreateItemMenuIcon(ITEM_N_A, gUnknown_203AD10->itemMenuIcon); + gUnknown_203AD10->itemMenuIcon ^= 1; if (gUnknown_203AD10->field_05_6 == 0) sub_8108818(itemIndex); } @@ -477,7 +541,7 @@ void sub_8108654(u8 windowId, s32 itemId, u8 y) else bag_menu_print_cursor(y, 0xFF); } - if (itemId != -2 && gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemId) + if (itemId != -2 && gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket] != itemId) { bagItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId); bagItemQuantity = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId); @@ -520,7 +584,7 @@ void sub_81087EC(void) void sub_8108818(s32 itemIndex) { const u8 *description; - if (itemIndex != gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket]) + if (itemIndex != gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex)); else description = gUnknown_84162F5; @@ -530,12 +594,12 @@ void sub_8108818(s32 itemIndex) void sub_8108888(void) { - gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( - 2, + gUnknown_203AD10->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, 160, 8, 104, - gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] - gUnknown_203AD10->field_0D[gUnknown_203ACFC.pocket] + 1, + gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket] - gUnknown_203AD10->maxShowed[gUnknown_203ACFC.pocket] + 1, 110, 110, &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket] @@ -546,55 +610,124 @@ void sub_81088D8(void) { if (gUnknown_203AD10->field_05_0 != 1) { - gUnknown_203AD10->field_09 = AddScrollIndicatorArrowPair(&gUnknown_8452F6C, &gUnknown_203ACFC.pocket); + gUnknown_203AD10->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&gUnknown_8452F6C, &gUnknown_203ACFC.pocket); } } void sub_8108908(void) { - gUnknown_203AD10->field_06 = 1; - gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( - 2, + gUnknown_203AD10->contextMenuSelectedItem = 1; + gUnknown_203AD10->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, 152, 72, 104, 2, 110, 110, - &gUnknown_203AD10->field_06 + &gUnknown_203AD10->contextMenuSelectedItem ); } void sub_8108940(void) { - gUnknown_203AD10->field_06 = 1; - gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( - 2, + gUnknown_203AD10->contextMenuSelectedItem = 1; + gUnknown_203AD10->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, 212, 120, 152, 2, 110, 110, - &gUnknown_203AD10->field_06 + &gUnknown_203AD10->contextMenuSelectedItem ); } void sub_8108978(void) { - if (gUnknown_203AD10->field_08 != 0xFF) + if (gUnknown_203AD10->pocketScrollArrowsTask != 0xFF) { - RemoveScrollIndicatorArrowPair(gUnknown_203AD10->field_08); - gUnknown_203AD10->field_08 = 0xFF; + RemoveScrollIndicatorArrowPair(gUnknown_203AD10->pocketScrollArrowsTask); + gUnknown_203AD10->pocketScrollArrowsTask = 0xFF; } sub_810899C(); } void sub_810899C(void) { - if (gUnknown_203AD10->field_09 != 0xFF) + if (gUnknown_203AD10->pocketSwitchArrowsTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203AD10->pocketSwitchArrowsTask); + gUnknown_203AD10->pocketSwitchArrowsTask = 0xFF; + } +} + +void sub_81089BC(void) +{ + u8 i; + gUnknown_203ACFC.pocket = POCKET_ITEMS - 1; + gUnknown_203ACFC.unk5 = 0; + for (i = 0; i < 3; i++) + { + gUnknown_203ACFC.itemsAbove[i] = 0; + gUnknown_203ACFC.cursorPos[i] = 0; + } +} + +void sub_81089F4(u8 pocketId) +{ + if (gUnknown_203ACFC.cursorPos[pocketId] != 0 && gUnknown_203ACFC.cursorPos[pocketId] + gUnknown_203AD10->maxShowed[pocketId] > gUnknown_203AD10->nItems[pocketId] + 1) { - RemoveScrollIndicatorArrowPair(gUnknown_203AD10->field_09); - gUnknown_203AD10->field_09 = 0xFF; + gUnknown_203ACFC.cursorPos[pocketId] = (gUnknown_203AD10->nItems[pocketId] + 1) - gUnknown_203AD10->maxShowed[pocketId]; } + if (gUnknown_203ACFC.cursorPos[pocketId] + gUnknown_203ACFC.itemsAbove[pocketId] >= gUnknown_203AD10->nItems[pocketId] + 1) + { + if (gUnknown_203AD10->nItems[pocketId] + 1 < 2) + gUnknown_203ACFC.itemsAbove[pocketId] = 0; + else + gUnknown_203ACFC.itemsAbove[pocketId] = gUnknown_203AD10->nItems[pocketId]; + } +} + +void sub_8108A68(void) +{ + u8 i; + for (i = 0; i < 3; i++) + { + sub_81089F4(i); + } +} + +void sub_8108A84(void) +{ + u8 i; + u8 j; + + for (i = 0; i < 3; i++) + { + if (gUnknown_203ACFC.itemsAbove[i] > 3) + { + for (j = 0; j <= gUnknown_203ACFC.itemsAbove[i] - 3; gUnknown_203ACFC.itemsAbove[i]--, gUnknown_203ACFC.cursorPos[i]++, j++) + { + if (gUnknown_203ACFC.cursorPos[i] + gUnknown_203AD10->maxShowed[i] == gUnknown_203AD10->nItems[i] + 1) + break; + } + } + } +} + +void sub_8108B04(void) +{ + FREE_IF_SET(gUnknown_203AD10); + FREE_IF_SET(gUnknown_203AD14); + FREE_IF_SET(gUnknown_203AD18); + FREE_IF_SET(gUnknown_203AD1C); + FreeAllWindowBuffers(); +} + +void ItemMenu_StartFadeToExitCallback(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + gTasks[taskId].func = sub_8108B8C; } -- cgit v1.2.3 From dfcfe6d8e1942349adfefc8e79255dcd8befca0a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 11:52:32 -0500 Subject: through MoveItemSlotInList --- asm/item_menu.s | 325 +++--------------------------------------- data/item_menu.s | 1 + data/strings.s | 16 +-- include/constants/item_menu.h | 17 +++ include/item_menu.h | 3 +- include/strings.h | 16 +-- src/item_menu.c | 167 +++++++++++++++++----- src/item_pc.c | 2 +- 8 files changed, 186 insertions(+), 361 deletions(-) create mode 100644 include/constants/item_menu.h diff --git a/asm/item_menu.s b/asm/item_menu.s index 143e87b66..2444ffeb0 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,295 +5,6 @@ .text - 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} @@ -1306,7 +1017,7 @@ _081095E8: ldr r0, [r0] adds r1, r2, 0 adds r2, r5, 0 - bl ItemMenu_MoveItemSlotToNewPositionInArray + bl MoveItemSlotInList ldrb r0, [r6] ldrh r2, [r4, 0x6] lsls r2, 1 @@ -1641,7 +1352,7 @@ _081098AC: _081098B6: ldr r2, _081098D4 @ =gSpecialVar_ItemId ldrh r1, [r2] - ldr r0, _081098D8 @ =0x0000016d + ldr r0, _081098D8 @ =0x0000016d @ ITEM_BERRY_POUCH cmp r1, r0 bne _081098E8 ldr r1, _081098DC @ =gUnknown_203AD20 @@ -2068,8 +1779,8 @@ _08109C48: .4byte gUnknown_8452EB8 _08109C4C: .4byte gUnknown_203AD24 thumb_func_end sub_8109BE4 - thumb_func_start sub_8109C50 -sub_8109C50: @ 8109C50 + thumb_func_start Task_ItemMenuAction_Use +Task_ItemMenuAction_Use: @ 8109C50 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -2116,10 +1827,10 @@ _08109CB4: bx r0 .align 2, 0 _08109CBC: .4byte gSpecialVar_ItemId - thumb_func_end sub_8109C50 + thumb_func_end Task_ItemMenuAction_Use - thumb_func_start sub_8109CC0 -sub_8109CC0: @ 8109CC0 + thumb_func_start Task_ItemMenuAction_Toss +Task_ItemMenuAction_Toss: @ 8109CC0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -2171,7 +1882,7 @@ _08109D2A: .align 2, 0 _08109D30: .4byte gText_TossOutHowManyStrVar1s _08109D34: .4byte sub_8109DEC - thumb_func_end sub_8109CC0 + thumb_func_end Task_ItemMenuAction_Toss thumb_func_start sub_8109D38 sub_8109D38: @ 8109D38 @@ -2489,8 +2200,8 @@ _08109FF8: .4byte gUnknown_203ACFC _08109FFC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_8109F44 - thumb_func_start sub_810A000 -sub_810A000: @ 810A000 + thumb_func_start Task_ItemMenuAction_ToggleSelect +Task_ItemMenuAction_ToggleSelect: @ 810A000 push {r4-r7,lr} mov r7, r8 push {r7} @@ -2557,7 +2268,7 @@ _0810A052: movs r1, 0x1 bl CopyWindowToVram mov r0, r8 - bl sub_810A2DC + bl Task_ItemMenuAction_Cancel pop {r3} mov r8, r3 pop {r4-r7} @@ -2566,10 +2277,10 @@ _0810A052: .align 2, 0 _0810A0A0: .4byte gUnknown_203ACFC _0810A0A4: .4byte gMultiuseListMenuTemplate - thumb_func_end sub_810A000 + thumb_func_end Task_ItemMenuAction_ToggleSelect - thumb_func_start sub_810A0A8 -sub_810A0A8: @ 810A0A8 + thumb_func_start Task_ItemMenuAction_Give +Task_ItemMenuAction_Give: @ 810A0A8 push {r4-r7,lr} mov r7, r8 push {r7} @@ -2655,7 +2366,7 @@ _0810A166: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_810A0A8 + thumb_func_end Task_ItemMenuAction_Give thumb_func_start sub_810A170 sub_810A170: @ 810A170 @@ -2831,8 +2542,8 @@ sub_810A288: @ 810A288 _0810A2D8: .4byte gTasks+0x8 thumb_func_end sub_810A288 - thumb_func_start sub_810A2DC -sub_810A2DC: @ 810A2DC + thumb_func_start Task_ItemMenuAction_Cancel +Task_ItemMenuAction_Cancel: @ 810A2DC push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -2862,7 +2573,7 @@ sub_810A2DC: @ 810A2DC bx r0 .align 2, 0 _0810A320: .4byte gTasks - thumb_func_end sub_810A2DC + thumb_func_end Task_ItemMenuAction_Cancel thumb_func_start sub_810A324 sub_810A324: @ 810A324 diff --git a/data/item_menu.s b/data/item_menu.s index c9385108e..66e13cca0 100644 --- a/data/item_menu.s +++ b/data/item_menu.s @@ -1,6 +1,7 @@ #include "constants/region_map.h" #include "constants/flags.h" #include "constants/moves.h" +#include "constants/item_menu.h" .include "asm/macros.inc" .include "constants/constants.inc" .section .rodata diff --git a/data/strings.s b/data/strings.s index 55c54f6c3..fc6ab5cb5 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,13 +555,13 @@ 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 diff --git a/include/constants/item_menu.h b/include/constants/item_menu.h new file mode 100644 index 000000000..8e91d2a17 --- /dev/null +++ b/include/constants/item_menu.h @@ -0,0 +1,17 @@ +#ifndef GUARD_CONSTANTS_ITEM_MENU_H +#define GUARD_CONSTANTS_ITEM_MENU_H + +#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/item_menu.h b/include/item_menu.h index 343fae393..e7337ffc4 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 @@ -29,7 +30,7 @@ void CB2_SetUpReshowBattleScreenAfterMenu(void); void sub_81089BC(void); void sub_810B108(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 ItemMenu_SetExitCallback(void (*)(void)); diff --git a/include/strings.h b/include/strings.h index 809007409..8dba28b3c 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1039,14 +1039,14 @@ extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; extern const u8 gText_SaveFailedScreen_SaveCompleted[]; // item_menu -extern const u8 gUnknown_84161A9[]; -extern const u8 gUnknown_84161BC[]; -extern const u8 gUnknown_84161E9[]; -extern const u8 gUnknown_84161F4[]; -extern const u8 gUnknown_84161F9[]; -extern const u8 gUnknown_84162CD[]; -extern const u8 gUnknown_84162D3[]; -extern const u8 gUnknown_84162DE[]; +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 gUnknown_84162F5[]; #endif //GUARD_STRINGS_H diff --git a/src/item_menu.c b/src/item_menu.c index a861cb742..5c09791ae 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -22,7 +22,7 @@ struct BagMenuAlloc { - u32 field_00; + MainCallback field_00; u8 field_04; u8 field_05_0:4; u8 itemMenuIcon:2; @@ -64,14 +64,15 @@ void sub_8108A68(void); void sub_8108A84(void); void sub_8108B04(void); void sub_8108B8C(u8 taskId); +void sub_8108CFC(u8 taskId); void sub_8108C10(void); void sub_8108E54(void); void sub_8108F0C(u8 taskId); -void sub_8109C50(u8 taskId); -void sub_8109CC0(u8 taskId); -void sub_810A000(u8 taskId); -void sub_810A0A8(u8 taskId); -void sub_810A2DC(u8 taskId); +void Task_ItemMenuAction_Use(u8 taskId); +void Task_ItemMenuAction_Toss(u8 taskId); +void Task_ItemMenuAction_ToggleSelect(u8 taskId); +void Task_ItemMenuAction_Give(u8 taskId); +void Task_ItemMenuAction_Cancel(u8 taskId); void sub_810A324(u8 taskId); bool8 sub_810ADAC(void); void sub_810AF9C(u8 taskId); @@ -100,40 +101,40 @@ const struct BgTemplate gUnknown_8452CF4[2] = { } }; -const u8 *const gUnknown_8452CFC[] = { - gUnknown_84162CD, - gUnknown_84162DE, - gUnknown_84162D3 +const u8 *const sPocketNames[] = { + gText_Items2, + gText_KeyItems2, + gText_PokeBalls2 }; const u16 gUnknown_8452D08[][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") + [ITEMMENUACTION_USE] = INCBIN_U16("graphics/item_menu/bagmap_0.bin"), + [ITEMMENUACTION_TOSS] = INCBIN_U16("graphics/item_menu/bagmap_1.bin"), + [ITEMMENUACTION_REGISTER] = INCBIN_U16("graphics/item_menu/bagmap_2.bin"), + [ITEMMENUACTION_GIVE] = INCBIN_U16("graphics/item_menu/bagmap_3.bin"), + [ITEMMENUACTION_CANCEL] = INCBIN_U16("graphics/item_menu/bagmap_4.bin"), + [ITEMMENUACTION_BATTLE_USE] = INCBIN_U16("graphics/item_menu/bagmap_5.bin"), + [ITEMMENUACTION_CHECK] = INCBIN_U16("graphics/item_menu/bagmap_6.bin"), + [ITEMMENUACTION_OPEN] = INCBIN_U16("graphics/item_menu/bagmap_7.bin"), + [ITEMMENUACTION_OPEN_BERRIES] = INCBIN_U16("graphics/item_menu/bagmap_8.bin"), + [ITEMMENUACTION_WALK] = INCBIN_U16("graphics/item_menu/bagmap_9.bin"), + [ITEMMENUACTION_DESELECT] = INCBIN_U16("graphics/item_menu/bagmap_A.bin"), + [ITEMMENUACTION_DUMMY] = INCBIN_U16("graphics/item_menu/bagmap_B.bin") }; const struct MenuAction gUnknown_8452EB8[] = { - {gOtherText_Use, {.void_u8 = sub_8109C50}}, - {gOtherText_Toss, {.void_u8 = sub_8109CC0}}, - {gUnknown_84161A9, {.void_u8 = sub_810A000}}, - {gOtherText_Give, {.void_u8 = sub_810A0A8}}, - {gFameCheckerText_Cancel, {.void_u8 = sub_810A2DC}}, - {gOtherText_Use, {.void_u8 = sub_810A324}}, - {gUnknown_84161E9, {.void_u8 = sub_8109C50}}, - {gUnknown_84161F4, {.void_u8 = sub_8109C50}}, - {gUnknown_84161F4, {.void_u8 = sub_810A324}}, - {gUnknown_84161BC, {.void_u8 = sub_8109C50}}, - {gUnknown_84161F9, {.void_u8 = sub_810A000}}, - {gString_Dummy, {.void_u8 = NULL}} + [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 = sub_810A324}}, + [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 = sub_810A324}}, + [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}} }; extern const u8 gUnknown_8452F60[]; @@ -155,7 +156,7 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2) gUnknown_203ACFC.location = location; if (a2 != NULL) gUnknown_203ACFC.bagCallback = a2; - gUnknown_203AD10->field_00 = 0; + gUnknown_203AD10->field_00 = NULL; gUnknown_203AD10->field_04 = 0xFF; gUnknown_203AD10->itemMenuIcon = 0; gUnknown_203AD10->field_05_6 = 0; @@ -578,7 +579,7 @@ void bag_menu_print_cursor(u8 y, u8 colorIdx) void sub_81087EC(void) { FillWindowPixelBuffer(2, PIXEL_FILL(0)); - sub_810B958(gUnknown_8452CFC[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket); + sub_810B958(sPocketNames[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket); } void sub_8108818(s32 itemIndex) @@ -731,3 +732,97 @@ void ItemMenu_StartFadeToExitCallback(u8 taskId) BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); gTasks[taskId].func = sub_8108B8C; } + +void sub_8108B8C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE) + { + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + if (gUnknown_203AD10->field_00 != NULL) + SetMainCallback2(gUnknown_203AD10->field_00); + else + SetMainCallback2(gUnknown_203ACFC.bagCallback); + sub_8108978(); + sub_8108B04(); + DestroyTask(taskId); + } +} + +void sub_8108C10(void) +{ + u16 paldata = RGB_BLACK; + u8 taskId; + + LoadPalette(&paldata, 0x00, 0x02); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0x3F); + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + if (gUnknown_203ACFC.unk5 == 1) + { + 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(sub_8108CFC, 0); + gTasks[taskId].data[0] = 192; + gTasks[taskId].data[1] = -16; + gUnknown_203ACFC.unk5 = 1; + } +} + +void sub_8108CB4(void) +{ + + u8 taskId = CreateTask(sub_8108CFC, 0); + gTasks[taskId].data[0] = -16; + gTasks[taskId].data[1] = 16; + gUnknown_203ACFC.unk5 = 0; +} + +void CB2_SetUpReshowBattleScreenAfterMenu(void) +{ + gUnknown_203ACFC.unk5 = 0; +} + +void sub_8108CFC(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; + } +} diff --git a/src/item_pc.c b/src/item_pc.c index 217acc829..3134d9f6b 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -814,7 +814,7 @@ 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--; -- cgit v1.2.3 From 24e199fdfdce8e17f65578b7446c2a8368b3a0be Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 12:59:26 -0500 Subject: through sub_81090DC --- asm/item_menu.s | 416 ---------------------------------------------------- include/item_menu.h | 2 +- src/item_menu.c | 140 +++++++++++++++++- 3 files changed, 137 insertions(+), 421 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index 2444ffeb0..60bbe8635 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,422 +5,6 @@ .text - 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} diff --git a/include/item_menu.h b/include/item_menu.h index e7337ffc4..43159401a 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -34,7 +34,7 @@ void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_); void ItemMenu_StartFadeToExitCallback(u8 taskId); void sub_8108CB4(void); void ItemMenu_SetExitCallback(void (*)(void)); -void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc); +void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc); void sub_810A1F8(u8 taskId); void sub_8107ECC(void); void sub_810AF74(void); diff --git a/src/item_menu.c b/src/item_menu.c index 5c09791ae..7b42ddaae 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -22,7 +22,7 @@ struct BagMenuAlloc { - MainCallback field_00; + MainCallback exitCB; u8 field_04; u8 field_05_0:4; u8 itemMenuIcon:2; @@ -68,12 +68,26 @@ void sub_8108CFC(u8 taskId); void sub_8108C10(void); void sub_8108E54(void); void sub_8108F0C(u8 taskId); +void sub_81090DC(u8 taskId); +void sub_8109140(u8 a0); +u8 sub_8109168(u8 taskId, u8 pocketId); +void sub_81091D0(u8 taskId, s16 itemIndex, u8 a2); +void sub_81093B8(u8 taskId, s16 itemIndex); +void sub_8109BB8(u8 taskId); void Task_ItemMenuAction_Use(u8 taskId); void Task_ItemMenuAction_Toss(u8 taskId); void Task_ItemMenuAction_ToggleSelect(u8 taskId); void Task_ItemMenuAction_Give(u8 taskId); void Task_ItemMenuAction_Cancel(u8 taskId); +void sub_8109DB0(u8 taskId); +void sub_8109EA8(u8 taskId); void sub_810A324(u8 taskId); +void sub_810A370(u8 taskId); +void sub_810A468(u8 taskId); +void sub_810A568(u8 taskId); +void sub_810A720(u8 taskId); +void sub_810A940(u8 taskId); +void sub_810AB40(u8 taskId); bool8 sub_810ADAC(void); void sub_810AF9C(u8 taskId); void sub_810B1D4(u8 taskId); @@ -137,6 +151,7 @@ const struct MenuAction gUnknown_8452EB8[] = { [ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}} }; +extern const TaskFunc gUnknown_8452F34[]; extern const u8 gUnknown_8452F60[]; extern const u8 gUnknown_8452F66[]; extern const struct ScrollArrowsTemplate gUnknown_8452F6C; @@ -156,7 +171,7 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2) gUnknown_203ACFC.location = location; if (a2 != NULL) gUnknown_203ACFC.bagCallback = a2; - gUnknown_203AD10->field_00 = NULL; + gUnknown_203AD10->exitCB = NULL; gUnknown_203AD10->field_04 = 0xFF; gUnknown_203AD10->itemMenuIcon = 0; gUnknown_203AD10->field_05_6 = 0; @@ -739,8 +754,8 @@ void sub_8108B8C(u8 taskId) if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE) { DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - if (gUnknown_203AD10->field_00 != NULL) - SetMainCallback2(gUnknown_203AD10->field_00); + if (gUnknown_203AD10->exitCB != NULL) + SetMainCallback2(gUnknown_203AD10->exitCB); else SetMainCallback2(gUnknown_203ACFC.bagCallback); sub_8108978(); @@ -826,3 +841,120 @@ void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_) itemSlots[to] = firstSlot; } } + +void sub_8108DC8(u8 pocketId) +{ + u16 i; + struct BagPocket * pocket = &gBagPockets[pocketId]; + BagPocketCompaction(pocket->itemSlots, pocket->capacity); + gUnknown_203AD10->nItems[pocketId] = 0; + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == ITEM_NONE) + break; + gUnknown_203AD10->nItems[pocketId]++; + } + if (gUnknown_203AD10->nItems[pocketId] + 1 > 6) + gUnknown_203AD10->maxShowed[pocketId] = 6; + else + gUnknown_203AD10->maxShowed[pocketId] = gUnknown_203AD10->nItems[pocketId] + 1; +} + +void sub_8108E54(void) +{ + u8 i; + for (i = 0; i < 3; i++) + sub_8108DC8(i); +} + +void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc) +{ + s16 *data = gTasks[taskId].data; + data[10] = sub_810BA70(5); + FillWindowPixelBuffer(data[10], PIXEL_FILL(1)); + DisplayMessageAndContinueTask(taskId, data[10], 0x06D, 0x0D, fontId, GetTextSpeedSetting(), string, followUpFunc); + ScheduleBgCopyTilemapToVram(0); +} + +void ItemMenu_SetExitCallback(MainCallback cb) +{ + gUnknown_203AD10->exitCB = cb; +} + +u8 sub_8108EEC(u8 a0) +{ + return gUnknown_203ACFC.cursorPos[a0] + gUnknown_203ACFC.itemsAbove[a0]; +} + +void sub_8108F0C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 cursorPos; + u16 itemsAbove; + s32 input; + + if (gPaletteFade.active) + return; + if (FuncIsActiveTask(sub_8108CFC) == TRUE) + return; + if ((u8)sub_80BF72C() == TRUE) + return; + switch (sub_8109168(taskId, gUnknown_203ACFC.pocket)) + { + case 1: + sub_81091D0(taskId, -1, 0); + return; + case 2: + sub_81091D0(taskId, 1, 0); + return; + default: + if (JOY_NEW(SELECT_BUTTON) && gUnknown_203ACFC.location == 0) + { + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + if (cursorPos + itemsAbove != gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) + { + PlaySE(SE_SELECT); + sub_81093B8(taskId, cursorPos + itemsAbove); + return; + } + } + break; + } + input = ListMenu_ProcessInput(data[0]); + ListMenuGetScrollAndRow(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + switch (input) + { + case -1: + return; + case -2: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = ITEM_NONE; + sub_8108CB4(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + break; + default: + PlaySE(SE_SELECT); + if (input == gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) + { + gSpecialVar_ItemId = ITEM_NONE; + sub_8108CB4(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + else + { + sub_8108978(); + bag_menu_print_cursor_(data[0], 2); + data[1] = input; + data[2] = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, input); + gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, input); + gTasks[taskId].func = sub_81090DC; + } + break; + } +} + +void sub_81090DC(u8 taskId) +{ + sub_8109140(1); + gUnknown_8452F34[gUnknown_203ACFC.location](taskId); +} -- cgit v1.2.3 From 39dcda73c4eced02683dccb4319dac480f3300fe Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 14:59:07 -0500 Subject: through sub_810967C --- asm/item_menu.s | 733 -------------------------------------------------------- src/item_menu.c | 210 +++++++++++++++- 2 files changed, 206 insertions(+), 737 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index 60bbe8635..2b42a59b8 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,739 +5,6 @@ .text - 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 MoveItemSlotInList - 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} diff --git a/src/item_menu.c b/src/item_menu.c index 7b42ddaae..66656f8bf 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -69,10 +69,15 @@ void sub_8108C10(void); void sub_8108E54(void); void sub_8108F0C(u8 taskId); void sub_81090DC(u8 taskId); -void sub_8109140(u8 a0); +void sub_8109140(u32 a0); u8 sub_8109168(u8 taskId, u8 pocketId); -void sub_81091D0(u8 taskId, s16 itemIndex, u8 a2); +void sub_81091D0(u8 taskId, s16 direction, bool16 a2); +void sub_8109298(u8 taskId); void sub_81093B8(u8 taskId, s16 itemIndex); +void sub_81094B0(u8 taskId); +void sub_81095AC(u8 taskId, u32 itemIndex); +void sub_810967C(u8 taskId, u32 itemIndex); +void sub_8109854(u8 a0); void sub_8109BB8(u8 taskId); void Task_ItemMenuAction_Use(u8 taskId); void Task_ItemMenuAction_Toss(u8 taskId); @@ -902,10 +907,10 @@ void sub_8108F0C(u8 taskId) switch (sub_8109168(taskId, gUnknown_203ACFC.pocket)) { case 1: - sub_81091D0(taskId, -1, 0); + sub_81091D0(taskId, -1, FALSE); return; case 2: - sub_81091D0(taskId, 1, 0); + sub_81091D0(taskId, 1, FALSE); return; default: if (JOY_NEW(SELECT_BUTTON) && gUnknown_203ACFC.location == 0) @@ -958,3 +963,200 @@ void sub_81090DC(u8 taskId) sub_8109140(1); gUnknown_8452F34[gUnknown_203ACFC.location](taskId); } + +void sub_810910C(u8 taskId) +{ + sub_8109140(0); + sub_8108888(); + sub_81088D8(); + gTasks[taskId].func = sub_8108F0C; +} + +void sub_8109140(u32 a0) +{ + SetBgTilemapPalette(1, 0, 14, 30, 6, a0 + 1); + ScheduleBgCopyTilemapToVram(1); +} + +u8 sub_8109168(u8 taskId, u8 pocketId) +{ + u8 lrState; + if (gUnknown_203AD10->field_05_0 != 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; +} + +void sub_81091D0(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], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + ScheduleBgCopyTilemapToVram(0); + DestroyItemMenuIcon(gUnknown_203AD10->itemMenuIcon ^ 1); + sub_8108978(); + } + FillBgTilemapBufferRect_Palette0(1, 0x02D, 11, 1, 18, 12); + ScheduleBgCopyTilemapToVram(1); + sub_8098528(gUnknown_203ACFC.pocket + direction); + SetTaskFuncWithFollowupFunc(taskId, sub_8109298, gTasks[taskId].func); +} + +void sub_8109298(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!MenuHelpers_LinkSomething() && !sub_810ADAC()) + { + switch (sub_8109168(taskId, gUnknown_203ACFC.pocket + data[11])) + { + case 1: + gUnknown_203ACFC.pocket += data[11]; + SwitchTaskToFollowupFunc(taskId); + sub_81091D0(taskId, -1, TRUE); + return; + case 2: + gUnknown_203ACFC.pocket += data[11]; + SwitchTaskToFollowupFunc(taskId); + sub_81091D0(taskId, 1, TRUE); + return; + } + } + switch (data[13]) + { + case 0: + if (data[12] != 0x7FFF) + { + data[12]++; + sub_8109854(data[12]); + if (data[12] == 12) + data[12] = 0x7FFF; + } + if (data[12] == 0x7FFF) + data[13]++; + break; + case 1: + gUnknown_203ACFC.pocket += data[11]; + sub_81087EC(); + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + PutWindowTilemap(1); + PutWindowTilemap(2); + ScheduleBgCopyTilemapToVram(0); + sub_8108888(); + sub_81088D8(); + SwitchTaskToFollowupFunc(taskId); + break; + } +} + +void sub_81093B8(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; + gUnknown_203AD10->field_04 = itemIndex; + StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]))); + StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + sub_810B8F0(1, 2, gStringVar4, 0, 3, 2, 0, 0, 0); + sub_80986A8(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + sub_8098660(0); + sub_810899C(); + bag_menu_print_cursor_(data[0], 2); + gTasks[taskId].func = sub_81094B0; +} + +void sub_81094B0(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], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_80986A8(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + if (JOY_NEW(SELECT_BUTTON)) + { + PlaySE(SE_SELECT); + gUnknown_203AD10->field_04 = 0xFF; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + sub_81095AC(taskId, cursorPos + itemsAbove); + return; + } + switch (input) + { + case -1: + return; + case -2: + PlaySE(SE_SELECT); + gUnknown_203AD10->field_04 = 0xFF; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + sub_810967C(taskId, cursorPos + itemsAbove); + break; + default: + PlaySE(SE_SELECT); + gUnknown_203AD10->field_04 = 0xFF; + sub_81095AC(taskId, input); + break; + } +} + +void sub_81095AC(u8 taskId, u32 itemIndex) +{ + s16 *data = gTasks[taskId].data; + if (data[1] == itemIndex || data[1] == itemIndex - 1) + { + sub_810967C(taskId, itemIndex); + } + else + { + MoveItemSlotInList(gBagPockets[gUnknown_203ACFC.pocket].itemSlots, data[1], itemIndex); + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + if (data[1] < itemIndex) + gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]--; + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_8098660(1); + sub_81088D8(); + gTasks[taskId].func = sub_8108F0C; + } +} + +void sub_810967C(u8 taskId, u32 itemIndex) +{ + s16 *data = gTasks[taskId].data; + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + if (data[1] < itemIndex) + gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]--; + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_8098660(1); + sub_81088D8(); + gTasks[taskId].func = sub_8108F0C; +} -- cgit v1.2.3 From 3a235a4fc078bf6474215507bb8e78e0ed8df733 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 16:12:55 -0500 Subject: through sub_8109890 --- asm/item_menu.s | 549 -------------------------------------------------------- src/item_menu.c | 141 +++++++++++++++ 2 files changed, 141 insertions(+), 549 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index 2b42a59b8..f13ae7f38 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,555 +5,6 @@ .text - 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 @ ITEM_BERRY_POUCH - 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} diff --git a/src/item_menu.c b/src/item_menu.c index 66656f8bf..7d03c5170 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -3,12 +3,15 @@ #include "bag.h" #include "battle_controllers.h" #include "decompress.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 "link.h" #include "list_menu.h" +#include "mail_data.h" #include "menu.h" #include "menu_indicators.h" #include "new_menu_helpers.h" @@ -40,6 +43,9 @@ EWRAM_DATA struct BagMenuAlloc * gUnknown_203AD10 = NULL; EWRAM_DATA void * gUnknown_203AD14 = NULL; EWRAM_DATA struct ListMenuItem * gUnknown_203AD18 = NULL; EWRAM_DATA u8 (*gUnknown_203AD1C)[19] = NULL; +EWRAM_DATA u8 gUnknown_203AD20[4] = {}; +EWRAM_DATA const u8 *gUnknown_203AD24 = NULL; +EWRAM_DATA u8 gUnknown_203AD28 = 0; void sub_8107F10(void); bool8 sub_8107F3C(void); @@ -156,6 +162,12 @@ const struct MenuAction gUnknown_8452EB8[] = { [ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}} }; +extern const u8 gUnknown_8452F18[][4]; +extern const u8 gUnknown_8452F24[]; +extern const u8 gUnknown_8452F28[][2]; +extern const u8 gUnknown_8452F2E[]; +extern const u8 gUnknown_8452F30[]; +extern const u8 gUnknown_8452F32[]; extern const TaskFunc gUnknown_8452F34[]; extern const u8 gUnknown_8452F60[]; extern const u8 gUnknown_8452F66[]; @@ -1160,3 +1172,132 @@ void sub_810967C(u8 taskId, u32 itemIndex) sub_81088D8(); gTasks[taskId].func = sub_8108F0C; } + +void sub_810971C(u16 cursorPos, const u8 *str) +{ + u8 r4; + u8 r5 = sub_810B9DC(6, 2); + CopyItemName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, cursorPos), gStringVar1); + StringExpandPlaceholders(gStringVar4, str); + sub_810B8F0(r5, 2, gStringVar4, 0, 2, 1, 0, 0, 1); + r4 = sub_810B9DC(0, 0); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + sub_810B8F0(r4, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + sub_8108940(); +} + +void sub_81097E4(s16 value, u8 ndigits) +{ + u8 r6 = sub_810BAD8(0); + FillWindowPixelBuffer(r6, PIXEL_FILL(1)); + ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, ndigits); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + sub_810B8F0(r6, 0, gStringVar4, 4, 10, 1, 0, 0, 1); +} + +void sub_8109854(u8 a0) +{ + CopyToBgTilemapBufferRect(1, gUnknown_8452D08[12 - a0], 11, 13 - a0, 18, 1); + ScheduleBgCopyTilemapToVram(1); +} + +void sub_8109890(void) +{ + u8 r6; + u8 r4; + switch (gUnknown_203ACFC.location) + { + case 5: + case 7: + if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) + { + gUnknown_203AD20[0] = ITEMMENUACTION_OPEN_BERRIES; + gUnknown_203AD20[1] = ITEMMENUACTION_CANCEL; + gUnknown_203AD24 = gUnknown_203AD20; + gUnknown_203AD28 = 2; + } + else if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) + { + gUnknown_203AD24 = gUnknown_8452F30; + gUnknown_203AD28 = 2; + } + else + { + gUnknown_203AD24 = gUnknown_8452F32; + gUnknown_203AD28 = 1; + } + break; + case 6: + case 8: + gUnknown_203AD24 = gUnknown_8452F30; + gUnknown_203AD28 = 2; + break; + default: + if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE) + { + if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) + { + gUnknown_203AD24 = gUnknown_8452F2E; + gUnknown_203AD28 = 2; + } + else + { + if (gUnknown_203ACFC.pocket == POCKET_KEY_ITEMS - 1) + gUnknown_203AD28 = 1; + else + gUnknown_203AD28 = 2; + gUnknown_203AD24 = gUnknown_8452F28[gUnknown_203ACFC.pocket]; + } + } + else + { + switch (gUnknown_203ACFC.pocket) + { + case POCKET_ITEMS - 1: + gUnknown_203AD28 = 4; + if (ItemIsMail(gSpecialVar_ItemId) == TRUE) + gUnknown_203AD24 = gUnknown_8452F24; + else + gUnknown_203AD24 = gUnknown_8452F18[gUnknown_203ACFC.pocket]; + break; + case POCKET_KEY_ITEMS - 1: + gUnknown_203AD24 = gUnknown_203AD20; + gUnknown_203AD28 = 3; + gUnknown_203AD20[2] = ITEMMENUACTION_CANCEL; + if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) + gUnknown_203AD20[1] = ITEMMENUACTION_DESELECT; + else + gUnknown_203AD20[1] = ITEMMENUACTION_REGISTER; + if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) + gUnknown_203AD20[0] = ITEMMENUACTION_OPEN; + else if (gSpecialVar_ItemId == ITEM_BICYCLE && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) + gUnknown_203AD20[0] = ITEMMENUACTION_WALK; + else + gUnknown_203AD20[0] = ITEMMENUACTION_USE; + break; + case POCKET_POKE_BALLS - 1: + gUnknown_203AD24 = gUnknown_8452F18[gUnknown_203ACFC.pocket]; + gUnknown_203AD28 = 3; + break; + } + } + } + r6 = sub_810B9DC(10, gUnknown_203AD28 - 1); + AddItemMenuActionTextPrinters( + r6, + 2, + GetMenuCursorDimensionByFont(2, 0), + 2, + GetFontAttribute(2, FONTATTR_LETTER_SPACING), + GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, + gUnknown_203AD28, + gUnknown_8452EB8, + gUnknown_203AD24 + ); + Menu_InitCursor(r6, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203AD28, 0); + r4 = sub_810B9DC(6, 0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); + sub_810B8F0(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1); +} -- cgit v1.2.3 From 0ed743a582a04f178d138d51159426179c969288 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 19:54:25 -0500 Subject: through sub_810A554 --- asm/item_menu.s | 1168 ------------------------------------------------ data/item_menu.s | 62 --- data/strings.s | 4 +- include/menu_helpers.h | 2 +- include/strings.h | 3 +- ld_script.txt | 1 - src/item_menu.c | 486 +++++++++++++++++++- src/menu_helpers.c | 2 +- 8 files changed, 473 insertions(+), 1255 deletions(-) delete mode 100644 data/item_menu.s diff --git a/asm/item_menu.s b/asm/item_menu.s index f13ae7f38..d42c65d45 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,1174 +5,6 @@ .text - 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 Task_ItemMenuAction_Use -Task_ItemMenuAction_Use: @ 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 Task_ItemMenuAction_Use - - thumb_func_start Task_ItemMenuAction_Toss -Task_ItemMenuAction_Toss: @ 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 Task_ItemMenuAction_Toss - - 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 Task_ItemMenuAction_ToggleSelect -Task_ItemMenuAction_ToggleSelect: @ 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 Task_ItemMenuAction_Cancel - 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 Task_ItemMenuAction_ToggleSelect - - thumb_func_start Task_ItemMenuAction_Give -Task_ItemMenuAction_Give: @ 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 Task_ItemMenuAction_Give - - 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 Task_ItemMenuAction_Cancel -Task_ItemMenuAction_Cancel: @ 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 Task_ItemMenuAction_Cancel - - 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} diff --git a/data/item_menu.s b/data/item_menu.s deleted file mode 100644 index 66e13cca0..000000000 --- a/data/item_menu.s +++ /dev/null @@ -1,62 +0,0 @@ -#include "constants/region_map.h" -#include "constants/flags.h" -#include "constants/moves.h" -#include "constants/item_menu.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .align 2 - -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/strings.s b/data/strings.s index fc6ab5cb5..c572f6bc9 100644 --- a/data/strings.s +++ b/data/strings.s @@ -567,7 +567,7 @@ gText_KeyItems2:: @ 0x84162DE 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.$" diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 1e75b336c..90aeb95f6 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -27,7 +27,7 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa 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/strings.h b/include/strings.h index 8dba28b3c..0d70d9e19 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1047,6 +1047,7 @@ extern const u8 gOtherText_Deselect[]; extern const u8 gText_Items2[]; extern const u8 gText_PokeBalls2[]; extern const u8 gText_KeyItems2[]; -extern const u8 gUnknown_84162F5[]; +extern const u8 gText_CloseBag[]; +extern const u8 gText_CantWriteMailHere[]; #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index ddec18aa0..86b2448db 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -519,7 +519,6 @@ SECTIONS { data/pokedex_screen.o(.rodata); src/list_menu.o(.rodata); src/item_menu.o(.rodata); - data/item_menu.o(.rodata); src/save_location.o(.rodata); src/bag.o(.rodata); src/trainer_pokemon_sprites.o(.rodata); diff --git a/src/item_menu.c b/src/item_menu.c index 7d03c5170..1e2cbfa3b 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -2,6 +2,7 @@ #include "gflib.h" #include "bag.h" #include "battle_controllers.h" +#include "berry_pouch.h" #include "decompress.h" #include "field_player_avatar.h" #include "graphics.h" @@ -16,8 +17,11 @@ #include "menu_indicators.h" #include "new_menu_helpers.h" #include "overworld.h" +#include "party_menu.h" +#include "pokemon_storage_system.h" #include "scanline_effect.h" #include "strings.h" +#include "tm_case.h" #include "constants/items.h" #include "constants/songs.h" @@ -85,16 +89,29 @@ void sub_81095AC(u8 taskId, u32 itemIndex); void sub_810967C(u8 taskId, u32 itemIndex); void sub_8109854(u8 a0); void sub_8109BB8(u8 taskId); +void sub_8109BE4(u8 taskId); void Task_ItemMenuAction_Use(u8 taskId); void Task_ItemMenuAction_Toss(u8 taskId); +void sub_8109D38(u8 taskId); +void sub_8109DB0(u8 taskId); +void sub_8109DEC(u8 taskId); +void sub_8109EA8(u8 taskId); +void sub_8109F44(u8 taskId); void Task_ItemMenuAction_ToggleSelect(u8 taskId); void Task_ItemMenuAction_Give(u8 taskId); +void sub_810A170(u8 taskId); void Task_ItemMenuAction_Cancel(u8 taskId); -void sub_8109DB0(u8 taskId); -void sub_8109EA8(u8 taskId); +void sub_810A18C(u8 taskId); +void sub_810A1D0(u8 taskId); void sub_810A324(u8 taskId); void sub_810A370(u8 taskId); +void sub_810A434(void); +void sub_810A448(void); +void sub_810A45C(void); void sub_810A468(u8 taskId); +void sub_810A52C(void); +void sub_810A540(void); +void sub_810A554(void); void sub_810A568(u8 taskId); void sub_810A720(u8 taskId); void sub_810A940(u8 taskId); @@ -162,17 +179,99 @@ const struct MenuAction gUnknown_8452EB8[] = { [ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}} }; -extern const u8 gUnknown_8452F18[][4]; -extern const u8 gUnknown_8452F24[]; -extern const u8 gUnknown_8452F28[][2]; -extern const u8 gUnknown_8452F2E[]; -extern const u8 gUnknown_8452F30[]; -extern const u8 gUnknown_8452F32[]; -extern const TaskFunc gUnknown_8452F34[]; -extern const u8 gUnknown_8452F60[]; -extern const u8 gUnknown_8452F66[]; -extern const struct ScrollArrowsTemplate gUnknown_8452F6C; -extern const u8 gUnknown_8452F7C[]; +const u8 gUnknown_8452F18[][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 + } +}; + +const u8 gUnknown_8452F24[] = { + ITEMMENUACTION_CHECK, + ITEMMENUACTION_GIVE, + ITEMMENUACTION_TOSS, + ITEMMENUACTION_CANCEL +}; + +const u8 gUnknown_8452F28[][2] = { + { + ITEMMENUACTION_GIVE, + ITEMMENUACTION_CANCEL + }, { + ITEMMENUACTION_CANCEL, + ITEMMENUACTION_DUMMY + }, { + ITEMMENUACTION_GIVE, + ITEMMENUACTION_CANCEL + } +}; + +const u8 gUnknown_8452F2E[] = { + ITEMMENUACTION_OPEN, + ITEMMENUACTION_CANCEL +}; + +const u8 gUnknown_8452F30[] = { + ITEMMENUACTION_BATTLE_USE, + ITEMMENUACTION_CANCEL +}; + +const u8 gUnknown_8452F32[] = { + ITEMMENUACTION_CANCEL, + ITEMMENUACTION_DUMMY +}; + +const TaskFunc gUnknown_8452F34[] = { + sub_8109BB8, + sub_810A370, + sub_810A568, + sub_810AB40, + sub_810A468, + sub_8109BB8, + NULL +}; + +const struct YesNoFuncTable gUnknown_8452F50 = { + sub_8109EA8, + sub_8109DB0 +}; + +const struct YesNoFuncTable gUnknown_8452F58 = { + sub_810A940, + sub_810A720 +}; + +const u8 gUnknown_8452F60[] = _("{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}"); + +const u8 gUnknown_8452F66[] = _("{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}"); + +const struct ScrollArrowsTemplate gUnknown_8452F6C = { + .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, +}; + +const u8 gUnknown_8452F7C[] = INCBIN_U8("graphics/interface/select_button.4bpp"); void GoToBagMenu(u8 location, u8 a1, MainCallback a2) { @@ -620,7 +719,7 @@ void sub_8108818(s32 itemIndex) if (itemIndex != gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex)); else - description = gUnknown_84162F5; + description = gText_CloseBag; FillWindowPixelBuffer(1, PIXEL_FILL(0)); sub_810B8F0(1, 2, description, 0, 3, 2, 0, 0, 0); } @@ -941,9 +1040,9 @@ void sub_8108F0C(u8 taskId) ListMenuGetScrollAndRow(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); switch (input) { - case -1: + case LIST_NOTHING_CHOSEN: return; - case -2: + case LIST_CANCEL: PlaySE(SE_SELECT); gSpecialVar_ItemId = ITEM_NONE; sub_8108CB4(); @@ -1123,9 +1222,9 @@ void sub_81094B0(u8 taskId) } switch (input) { - case -1: + case LIST_NOTHING_CHOSEN: return; - case -2: + case LIST_CANCEL: PlaySE(SE_SELECT); gUnknown_203AD10->field_04 = 0xFF; ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); @@ -1202,7 +1301,7 @@ void sub_8109854(u8 a0) ScheduleBgCopyTilemapToVram(1); } -void sub_8109890(void) +void sub_8109890(u8 taskId) { u8 r6; u8 r4; @@ -1301,3 +1400,352 @@ void sub_8109890(void) StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); sub_810B8F0(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1); } + +void sub_8109BB8(u8 taskId) +{ + sub_8109890(taskId); + gTasks[taskId].func = sub_8109BE4; +} + +void sub_8109BE4(u8 taskId) +{ + s8 input; + if ((u8)sub_80BF72C() != TRUE) + { + input = Menu_ProcessInputNoWrapAround(); + switch (input) + { + case -1: + PlaySE(SE_SELECT); + gUnknown_8452EB8[ITEMMENUACTION_CANCEL].func.void_u8(taskId); + break; + case -2: + break; + default: + PlaySE(SE_SELECT); + gUnknown_8452EB8[gUnknown_203AD24[input]].func.void_u8(taskId); + break; + } + } +} + +void Task_ItemMenuAction_Use(u8 taskId) +{ + if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) + { + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) + sub_810A170(taskId); + else + ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); + } +} + +void Task_ItemMenuAction_Toss(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ClearWindowTilemap(sub_810BAD8(10)); + ClearWindowTilemap(sub_810BAD8(6)); + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + data[8] = 1; + if (data[2] == 1) + { + sub_8109D38(taskId); + } + else + { + sub_810971C(data[1], gText_TossOutHowManyStrVar1s); + gTasks[taskId].func = sub_8109DEC; + } +} + +void sub_8109D38(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_ThrowAwayStrVar2OfThisItemQM); + sub_810B8F0(sub_810B9DC(6, 1), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + sub_810BAE8(taskId, &gUnknown_8452F50); +} + +void sub_8109DB0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_810BA3C(6); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_810910C(taskId); +} + +void sub_8109DEC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + sub_81097E4(data[8], 3); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ClearWindowTilemap(sub_810BAD8(6)); + sub_810BA3C(6); + sub_810BA3C(0); + ScheduleBgCopyTilemapToVram(0); + sub_8108978(); + sub_8109D38(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810BA3C(6); + sub_810BA3C(0); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_8108978(); + sub_810910C(taskId); + } +} + +void sub_8109EA8(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_810BA3C(6); + CopyItemName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]), gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_ThrewAwayStrVar2StrVar1s); + sub_810B8F0(sub_810B9DC(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + gTasks[taskId].func = sub_8109F44; +} + +void sub_8109F44(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + RemoveBagItem(gSpecialVar_ItemId, data[8]); + sub_810BA3C(6); + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_8108DC8(gUnknown_203ACFC.pocket); + sub_81089F4(gUnknown_203ACFC.pocket); + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_810910C(taskId); + } +} + +void Task_ItemMenuAction_ToggleSelect(u8 taskId) +{ + u16 itemId; + s16 *data = gTasks[taskId].data; + itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + if (gSaveBlock1Ptr->registeredItem == itemId) + gSaveBlock1Ptr->registeredItem = ITEM_NONE; + else + gSaveBlock1Ptr->registeredItem = itemId; + + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + CopyWindowToVram(0, 1); + Task_ItemMenuAction_Cancel(taskId); +} + +void Task_ItemMenuAction_Give(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + if (!CanWriteMailHere(itemId)) + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, sub_810A1D0); + else if (!itemid_is_unique(itemId)) + { + if (CalculatePlayerPartyCount() == 0) + { + sub_810A170(taskId); + } + else + { + gUnknown_203AD10->exitCB = CB2_ChooseMonToGiveItem; + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + } + else + sub_810A18C(taskId); +} + +void sub_810A170(u8 taskId) +{ + DisplayItemMessageInBag(taskId, 2, gText_ThereIsNoPokemon, sub_810A1D0); +} + +void sub_810A18C(u8 taskId) +{ + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld); + DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1D0); +} + +void sub_810A1D0(u8 taskId) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810A1F8(taskId); + } +} + +void sub_810A1F8(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_810BA9C(5); + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_8108DC8(gUnknown_203ACFC.pocket); + sub_81089F4(gUnknown_203ACFC.pocket); + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_810910C(taskId); +} + +void sub_810A288(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemsAbove; + u16 cursorPos; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + sub_8108818(cursorPos + itemsAbove); + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_810910C(taskId); +} + +void Task_ItemMenuAction_Cancel(u8 taskId) +{ + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(gTasks[taskId].data[0], 1); + sub_810910C(taskId); +} + +void sub_810A324(u8 taskId) +{ + if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL) + { + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); + } +} + +void sub_810A370(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + if (!CanWriteMailHere(itemId)) + { + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, sub_810A1D0); + } + else if (itemId == ITEM_TM_CASE) + { + ItemMenu_SetExitCallback(sub_810A434); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (itemId == ITEM_BERRY_POUCH) + { + ItemMenu_SetExitCallback(sub_810A448); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) + { + sub_8108CB4(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + else + { + sub_810A18C(taskId); + } +} + +void sub_810A434(void) +{ + InitTMCase(1, sub_810A45C, FALSE); +} + +void sub_810A448(void) +{ + InitBerryPouch(1, sub_810A45C, FALSE); +} + +void sub_810A45C(void) +{ + CB2_SelectBagItemToGive(); +} + +void sub_810A468(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + if (ItemIsMail(itemId) == TRUE) + { + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, sub_810A1D0); + } + else if (itemId == ITEM_TM_CASE) + { + ItemMenu_SetExitCallback(sub_810A52C); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (itemId == ITEM_BERRY_POUCH) + { + ItemMenu_SetExitCallback(sub_810A540); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) + { + sub_8108CB4(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + else + { + sub_810A18C(taskId); + } +} + +void sub_810A52C(void) +{ + InitTMCase(3, sub_810A554, FALSE); +} + +void sub_810A540(void) +{ + InitBerryPouch(3, sub_810A554, FALSE); +} + +void sub_810A554(void) +{ + GoToBagMenu(4, 3, sub_808CE60); +} diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 905e3c1ea..53b9992a2 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; -- cgit v1.2.3 From c9cb5d931c7609bdb2ce4ad15d60993efb2d2fe3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 20:40:33 -0500 Subject: through sub_810A834 --- asm/item_menu.s | 357 -------------------------------------------------------- src/item_menu.c | 106 +++++++++++++++++ 2 files changed, 106 insertions(+), 357 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index d42c65d45..20e9423e9 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,363 +5,6 @@ .text - 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} diff --git a/src/item_menu.c b/src/item_menu.c index 1e2cbfa3b..b73d9f1a8 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -15,6 +15,7 @@ #include "mail_data.h" #include "menu.h" #include "menu_indicators.h" +#include "money.h" #include "new_menu_helpers.h" #include "overworld.h" #include "party_menu.h" @@ -113,7 +114,15 @@ void sub_810A52C(void); void sub_810A540(void); void sub_810A554(void); void sub_810A568(u8 taskId); +void sub_810A654(void); +void sub_810A668(void); +void sub_810A67C(void); +void sub_810A690(u8 taskId); +void sub_810A70C(u8 taskId); void sub_810A720(u8 taskId); +void sub_810A770(u8 taskId); +void sub_810A834(s32 price); +void sub_810A85C(u8 taskId); void sub_810A940(u8 taskId); void sub_810AB40(u8 taskId); bool8 sub_810ADAC(void); @@ -1749,3 +1758,100 @@ void sub_810A554(void) { GoToBagMenu(4, 3, sub_808CE60); } + +void sub_810A568(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (gSpecialVar_ItemId == ITEM_TM_CASE) + { + ItemMenu_SetExitCallback(sub_810A654); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) + { + ItemMenu_SetExitCallback(sub_810A668); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (itemid_get_market_price(gSpecialVar_ItemId) == 0) + { + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); + DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A1F8); + } + else + { + data[8] = 1; + if (data[2] == 1) + { + sub_810BB40(); + sub_810A690(taskId); + } + else + { + if (data[2] > 99) + data[2] = 99; + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); + DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A770); + } + } +} + +void sub_810A654(void) +{ + InitTMCase(2, sub_810A67C, FALSE); +} + +void sub_810A668(void) +{ + InitBerryPouch(2, sub_810A67C, FALSE); +} + +void sub_810A67C(void) +{ + GoToBagMenu(2, 3, CB2_ReturnToField); +} + +void sub_810A690(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); + DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A70C); +} + +void sub_810A70C(u8 taskId) +{ + sub_810BB14(taskId, &gUnknown_8452F58); +} + +void sub_810A720(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_810BA3C(2); + sub_810BA9C(5); + PutWindowTilemap(2); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_810910C(taskId); +} + +void sub_810A770(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u8 r4 = sub_810B9DC(0, 1); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + sub_810B8F0(r4, 0, gStringVar4, 4, 10, 1, 0, 0xFF, 1); + sub_810A834(itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8]); + sub_810BB40(); + sub_8108908(); + gTasks[taskId].func = sub_810A85C; +} + +void sub_810A834(s32 amount) +{ + PrintMoneyAmount(sub_810BAD8(0), 56, 10, amount, 0); +} -- cgit v1.2.3 From 4c62d0f35f58cd5720997ffb1241d5a08dd90620 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Jan 2020 22:14:54 -0500 Subject: through InitTutorialBag --- asm/item_menu.s | 866 +----------------------------------- data/strings.s | 6 +- include/event_scripts.h | 2 + include/item_menu.h | 2 +- include/map_name_popup.h | 1 + include/strings.h | 3 + src/battle_controller_oak_old_man.c | 2 +- src/item_menu.c | 238 ++++++++++ 8 files changed, 256 insertions(+), 864 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index 20e9423e9..3bdc40756 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,858 +5,6 @@ .text - 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} @@ -936,7 +84,7 @@ _0810B01C: movs r1, 0 movs r2, 0 bl DestroyListMenuTask - bl sub_810AECC + bl RestorePlayerBag bl sub_8108CB4 adds r0, r7, 0 subs r0, 0x8 @@ -1037,7 +185,7 @@ sub_810B108: @ 810B108 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_810ADD8 + bl BackUpPlayerBag movs r0, 0xD movs r1, 0x1 bl AddBagItem @@ -1105,7 +253,7 @@ sub_810B180: @ 810B180 .align 2, 0 _0810B198: .4byte gMain _0810B19C: - bl sub_810AECC + bl RestorePlayerBag bl SetTeachyTvControllerModeToResume ldr r0, _0810B1C4 @ =gUnknown_203AD10 ldr r1, [r0] @@ -1307,7 +455,7 @@ _0810B344: movs r1, 0 movs r2, 0 bl DestroyListMenuTask - bl sub_810AECC + bl RestorePlayerBag bl sub_8108CB4 adds r0, r6, 0 subs r0, 0x8 @@ -1462,7 +610,7 @@ _0810B468: movs r1, 0 movs r2, 0 bl DestroyListMenuTask - bl sub_810AECC + bl RestorePlayerBag bl sub_8108CB4 adds r0, r7, 0 subs r0, 0x8 @@ -1578,7 +726,7 @@ _0810B564: movs r1, 0 movs r2, 0 bl DestroyListMenuTask - bl sub_810AECC + bl RestorePlayerBag ldr r1, _0810B5B0 @ =gItemUseCB ldr r0, _0810B5B4 @ =ItemUseCB_MedicineStep str r0, [r1] @@ -1713,7 +861,7 @@ _0810B68C: movs r1, 0 movs r2, 0 bl DestroyListMenuTask - bl sub_810AECC + bl RestorePlayerBag ldr r0, _0810B6D4 @ =gUnknown_203AD10 ldr r1, [r0] ldr r0, _0810B6D8 @ =PokeDude_InitTMCase diff --git a/data/strings.s b/data/strings.s index c572f6bc9..d25e28e94 100644 --- a/data/strings.s +++ b/data/strings.s @@ -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.$" diff --git a/include/event_scripts.h b/include/event_scripts.h index b5e355484..dcbe2c137 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1195,4 +1195,6 @@ extern const u8 Text_1A5D31[]; extern const u8 Text_1A5D6E[]; extern const u8 Text_1A5DB1[]; +extern const u8 gUnknown_81A77A0[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/item_menu.h b/include/item_menu.h index 43159401a..d8257ccf1 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -37,7 +37,7 @@ void ItemMenu_SetExitCallback(void (*)(void)); void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc); void sub_810A1F8(u8 taskId); void sub_8107ECC(void); -void sub_810AF74(void); +void InitTutorialBag(void); void sub_8108DC8(u8 pocketId); void sub_81089F4(u8 pocketId); void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback); 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/strings.h b/include/strings.h index 0d70d9e19..852e88a5c 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1049,5 +1049,8 @@ 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[]; #endif //GUARD_STRINGS_H diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index 6ae50d058..a027808af 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -381,7 +381,7 @@ static void OpenBagAndChooseItem(void) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) sub_8107ECC(); else - sub_810AF74(); + InitTutorialBag(); } } diff --git a/src/item_menu.c b/src/item_menu.c index b73d9f1a8..8efb9cd6f 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -4,15 +4,19 @@ #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 "mail_data.h" +#include "map_name_popup.h" #include "menu.h" #include "menu_indicators.h" #include "money.h" @@ -21,6 +25,8 @@ #include "party_menu.h" #include "pokemon_storage_system.h" #include "scanline_effect.h" +#include "script.h" +#include "shop.h" #include "strings.h" #include "tm_case.h" #include "constants/items.h" @@ -43,6 +49,17 @@ struct BagMenuAlloc 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 gUnknown_203ACFC = {}; EWRAM_DATA struct BagMenuAlloc * gUnknown_203AD10 = NULL; EWRAM_DATA void * gUnknown_203AD14 = NULL; @@ -51,6 +68,7 @@ EWRAM_DATA u8 (*gUnknown_203AD1C)[19] = NULL; EWRAM_DATA u8 gUnknown_203AD20[4] = {}; EWRAM_DATA const u8 *gUnknown_203AD24 = NULL; EWRAM_DATA u8 gUnknown_203AD28 = 0; +EWRAM_DATA struct BagSlots * gUnknown_203AD2C = NULL; void sub_8107F10(void); bool8 sub_8107F3C(void); @@ -124,7 +142,11 @@ void sub_810A770(u8 taskId); void sub_810A834(s32 price); void sub_810A85C(u8 taskId); void sub_810A940(u8 taskId); +void sub_810A9D4(u8 taskId); +void sub_810AAF4(u8 taskId); void sub_810AB40(u8 taskId); +void sub_810AB88(u8 taskId); +void sub_810AC40(u8 taskId); bool8 sub_810ADAC(void); void sub_810AF9C(u8 taskId); void sub_810B1D4(u8 taskId); @@ -1855,3 +1877,219 @@ void sub_810A834(s32 amount) { PrintMoneyAmount(sub_810BAD8(0), 56, 10, amount, 0); } + +void sub_810A85C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + sub_81097E4(data[8], 2); + sub_810A834(itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8]); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810BA3C(0); + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + sub_8108978(); + sub_810A690(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810BA3C(0); + sub_810BA3C(2); + sub_810BA9C(5); + PutWindowTilemap(2); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + sub_8108978(); + bag_menu_print_cursor_(data[0], 1); + sub_810910C(taskId); + } +} + +void sub_810A940(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen); + DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A9D4); +} + +void sub_810A9D4(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], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_8108DC8(gUnknown_203ACFC.pocket); + sub_81089F4(gUnknown_203ACFC.pocket); + gUnknown_203AD10->field_05_6 = 1; + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + bag_menu_print_cursor_(data[0], 2); + sub_810BB74(sub_810BAD8(2)); + PrintMoneyAmountInMoneyBox(sub_810BAD8(2), GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = sub_810AAF4; +} + +void sub_810AAF4(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810BA3C(2); + PutWindowTilemap(2); + gUnknown_203AD10->field_05_6 = 0; + sub_810A1F8(taskId); + } +} + +void sub_810AB40(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[8] = 1; + if (data[2] == 1) + { + sub_810AC40(taskId); + } + else + { + sub_810971C(data[1], gText_DepositHowManyStrVars1); + gTasks[taskId].func = sub_810AB88; + } +} + +void sub_810AB88(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + sub_81097E4(data[8], 3); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ClearWindowTilemap(sub_810BAD8(6)); + sub_810BA3C(6); + sub_810BA3C(0); + ScheduleBgCopyTilemapToVram(0); + sub_8108978(); + sub_810AC40(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810BA3C(6); + sub_810BA3C(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + sub_8108978(); + sub_810910C(taskId); + } +} + +void sub_810AC40(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); + sub_810B8F0(sub_810B9DC(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + gTasks[taskId].func = sub_8109F44; + } + else + { + DisplayItemMessageInBag(taskId, 2, gText_NoRoomToStoreItems, sub_810A1D0); + } +} + +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(gUnknown_81A77A0); + return TRUE; +} + +bool8 sub_810ADAC(void) +{ + if (gUnknown_203ACFC.location == 6 || gUnknown_203ACFC.location == 8 || gUnknown_203ACFC.location == 7 || gUnknown_203ACFC.location == 9 || gUnknown_203ACFC.location == 10) + return TRUE; + return FALSE; +} + +void BackUpPlayerBag(void) +{ + u32 i; + gUnknown_203AD2C = AllocZeroed(sizeof(struct BagSlots)); + memcpy(gUnknown_203AD2C->bagPocket_Items, gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(gUnknown_203AD2C->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(gUnknown_203AD2C->bagPocket_PokeBalls, gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot)); + gUnknown_203AD2C->registeredItem = gSaveBlock1Ptr->registeredItem; + gUnknown_203AD2C->pocket = gUnknown_203ACFC.pocket; + for (i = 0; i < 3; i++) + { + gUnknown_203AD2C->itemsAbove[i] = gUnknown_203ACFC.itemsAbove[i]; + gUnknown_203AD2C->cursorPos[i] = gUnknown_203ACFC.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; + sub_81089BC(); +} + +void RestorePlayerBag(void) +{ + u32 i; + memcpy(gSaveBlock1Ptr->bagPocket_Items, gUnknown_203AD2C->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, gUnknown_203AD2C->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(gSaveBlock1Ptr->bagPocket_PokeBalls, gUnknown_203AD2C->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot)); + gSaveBlock1Ptr->registeredItem = gUnknown_203AD2C->registeredItem; + gUnknown_203ACFC.pocket = gUnknown_203AD2C->pocket; + for (i = 0; i < 3; i++) + { + gUnknown_203ACFC.itemsAbove[i] = gUnknown_203AD2C->itemsAbove[i]; + gUnknown_203ACFC.cursorPos[i] = gUnknown_203AD2C->cursorPos[i]; + } + Free(gUnknown_203AD2C); +} + +void InitTutorialBag(void) +{ + BackUpPlayerBag(); + AddBagItem(ITEM_POTION, 1); + AddBagItem(ITEM_POKE_BALL, 1); + GoToBagMenu(6, 0, SetCB2ToReshowScreenAfterMenu2); +} -- cgit v1.2.3 From a698f43f26f16fed3e7d0bd377b2ffac9b52e78d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Jan 2020 11:04:37 -0500 Subject: Finish dism of item_menu --- asm/item_menu.s | 892 -------------------------------------------------------- ld_script.txt | 1 - src/item_menu.c | 297 +++++++++++++++++++ 3 files changed, 297 insertions(+), 893 deletions(-) delete mode 100644 asm/item_menu.s diff --git a/asm/item_menu.s b/asm/item_menu.s deleted file mode 100644 index 3bdc40756..000000000 --- a/asm/item_menu.s +++ /dev/null @@ -1,892 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - 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 RestorePlayerBag - 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 BackUpPlayerBag - 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 RestorePlayerBag - 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 RestorePlayerBag - 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 RestorePlayerBag - 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 RestorePlayerBag - 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 RestorePlayerBag - 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/ld_script.txt b/ld_script.txt index 86b2448db..016793dc9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -233,7 +233,6 @@ SECTIONS { asm/pokedex_screen.o(.text); src/list_menu.o(.text); src/item_menu.o(.text); - asm/item_menu.o(.text); src/save_location.o(.text); src/bag.o(.text); src/trainer_pokemon_sprites.o(.text); diff --git a/src/item_menu.c b/src/item_menu.c index 8efb9cd6f..a2a6f865b 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -15,6 +15,7 @@ #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" @@ -28,6 +29,7 @@ #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" @@ -149,6 +151,8 @@ void sub_810AB88(u8 taskId); void sub_810AC40(u8 taskId); bool8 sub_810ADAC(void); void sub_810AF9C(u8 taskId); +void sub_810B070(u8 taskId); +void sub_810B0AC(u8 taskId); void sub_810B1D4(u8 taskId); void sub_810B378(u8 taskId); void sub_810B4BC(u8 taskId); @@ -2093,3 +2097,296 @@ void InitTutorialBag(void) AddBagItem(ITEM_POKE_BALL, 1); GoToBagMenu(6, 0, SetCB2ToReshowScreenAfterMenu2); } + +void sub_810AF9C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + switch (data[8]) + { + case 102: + case 204: + PlaySE(SE_BAG2); + sub_81091D0(taskId, 1, FALSE); + break; + case 306: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + sub_8109140(1); + gSpecialVar_ItemId = ITEM_POKE_BALL; + sub_8109890(taskId); + break; + case 408: + PlaySE(SE_SELECT); + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + sub_8108CB4(); + gTasks[taskId].func = sub_810B070; + return; + } + data[8]++; + } +} + +void sub_810B070(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + gTasks[taskId].func = sub_810B0AC; +} + +void sub_810B0AC(u8 taskId) +{ + if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE) + { + if (gUnknown_203AD10->exitCB != NULL) + SetMainCallback2(gUnknown_203AD10->exitCB); + else + SetMainCallback2(gUnknown_203ACFC.bagCallback); + sub_8108978(); + sub_8108B04(); + DestroyTask(taskId); + } +} + +void sub_810B108(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 = 7; + break; + case 8: + cb2 = SetCB2ToReshowScreenAfterMenu2; + location = 8; + break; + } + GoToBagMenu(location, POCKET_ITEMS - 1, cb2); +} + +bool8 sub_810B180(u8 taskId) +{ + if (JOY_NEW(B_BUTTON)) + { + RestorePlayerBag(); + SetTeachyTvControllerModeToResume(); + gUnknown_203AD10->exitCB = CB2_ReturnToTeachyTV; + gTasks[taskId].func = sub_810B070; + return TRUE; + } + else + { + return FALSE; + } +} + +void sub_810B1D4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active && sub_810B180(taskId) != TRUE) + { + switch (data[8]) + { + case 102: + PlaySE(SE_BAG2); + sub_81091D0(taskId, 1, FALSE); + break; + case 204: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + sub_8109140(1); + gSpecialVar_ItemId = ITEM_TEACHY_TV; + sub_8109890(taskId); + break; + case 306: + PlaySE(SE_SELECT); + Menu_MoveCursorNoWrapAround(1); + break; + case 408: + PlaySE(SE_SELECT); + gSaveBlock1Ptr->registeredItem = gSpecialVar_ItemId; + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_810842C(gUnknown_203ACFC.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + sub_8109140(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(); + sub_8108CB4(); + gTasks[taskId].func = sub_810B070; + return; + } + data[8]++; + } +} + +void sub_810B378(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + if (sub_810B180(taskId) == TRUE) + { + FreeRestoreBattleData(); + LoadPlayerParty(); + return; + } + switch (data[8]) + { + case 102: + case 204: + PlaySE(SE_BAG2); + sub_81091D0(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); + sub_8109140(1); + gSpecialVar_ItemId = ITEM_POKE_BALL; + sub_8109890(taskId); + break; + case 816: + PlaySE(SE_SELECT); + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + sub_8108CB4(); + gTasks[taskId].func = sub_810B070; + return; + } + data[8]++; + } +} + +void sub_810B4BC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + if (sub_810B180(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); + sub_8109140(1); + gSpecialVar_ItemId = ITEM_ANTIDOTE; + sub_8109890(taskId); + break; + case 306: + PlaySE(SE_SELECT); + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + gItemUseCB = ItemUseCB_MedicineStep; + ItemMenu_SetExitCallback(ChooseMonForInBattleItem); + gTasks[taskId].func = sub_810B070; + return; + } + data[8]++; + } +} + +void sub_810B5D4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active && sub_810B180(taskId) != TRUE) + { + switch (data[8]) + { + case 102: + PlaySE(SE_BAG2); + sub_81091D0(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); + sub_8109140(1); + gSpecialVar_ItemId = ITEM_TM_CASE; + sub_8109890(taskId); + break; + case 408: + PlaySE(SE_SELECT); + sub_810BA3C(10); + sub_810BA3C(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + gUnknown_203AD10->exitCB = PokeDude_InitTMCase; + gTasks[taskId].func = sub_810B070; + return; + } + data[8]++; + } +} -- cgit v1.2.3 From 6e41dd7b2120f8024bb0cfff7a5ef25f0dce0366 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Jan 2020 14:47:23 -0500 Subject: Document item_menu --- asm/pokemon_storage_system.s | 4 +- data/event_scripts.s | 2 +- data/graphics.s | 4 +- include/bag.h | 26 +- include/constants/item_menu.h | 18 + include/event_scripts.h | 2 +- include/graphics.h | 4 +- include/item_menu.h | 20 +- include/item_menu_icons.h | 18 +- include/menu_helpers.h | 2 +- include/strings.h | 3 + include/teachy_tv.h | 10 + include/tm_case.h | 10 + src/bag.c | 272 +++--- src/battle_controller_oak_old_man.c | 4 +- src/battle_controller_player.c | 2 +- src/battle_controller_pokedude.c | 11 +- src/berry_pouch.c | 6 +- src/item_menu.c | 1581 ++++++++++++++++++----------------- src/item_menu_icons.c | 148 ++-- src/item_pc.c | 12 +- src/item_use.c | 34 +- src/menu_helpers.c | 2 +- src/new_game.c | 2 +- src/party_menu.c | 12 +- src/player_pc.c | 2 +- src/shop.c | 2 +- src/teachy_tv.c | 14 +- src/tm_case.c | 6 +- sym_ewram.txt | 31 +- 30 files changed, 1135 insertions(+), 1129 deletions(-) diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 358ea8b32..fc7fc398d 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -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/data/event_scripts.s b/data/event_scripts.s index f1d28077f..6e645aa75 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1537,7 +1537,7 @@ EventScript_1A778C:: @ 81A778C releaseall end -gUnknown_81A77A0:: @ 81A77A0 +EventScript_BagItemCanBeRegistered:: @ 81A77A0 msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN end diff --git a/data/graphics.s b/data/graphics.s index cea2a0ab3..0c7b8f341 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -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/include/bag.h b/include/bag.h index c48940173..fec9f67bf 100644 --- a/include/bag.h +++ b/include/bag.h @@ -3,18 +3,18 @@ #include "menu_helpers.h" -void sub_810B858(void); -void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); -void sub_810B958(const u8 * str, u8 unused); -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); +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/constants/item_menu.h b/include/constants/item_menu.h index 8e91d2a17..2a51b8c1b 100644 --- a/include/constants/item_menu.h +++ b/include/constants/item_menu.h @@ -1,6 +1,24 @@ #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_OLDMAN 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 diff --git a/include/event_scripts.h b/include/event_scripts.h index dcbe2c137..a597868b9 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1195,6 +1195,6 @@ extern const u8 Text_1A5D31[]; extern const u8 Text_1A5D6E[]; extern const u8 Text_1A5DB1[]; -extern const u8 gUnknown_81A77A0[]; +extern const u8 EventScript_BagItemCanBeRegistered[]; #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/graphics.h b/include/graphics.h index eb9a9a20d..296dee465 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4861,7 +4861,7 @@ extern const u16 gUnknown_8D12404[]; extern const u32 gUnknown_8E830CC[]; extern const u32 gUnknown_8E832C0[]; extern const u32 gUnknown_8E83444[]; -extern const u32 gUnknown_8E835B4[]; -extern const u32 gUnknown_8E83604[]; +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 d8257ccf1..4720080da 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -13,13 +13,13 @@ struct BagStruct { void (*bagCallback)(void); u8 location; - u8 unk5; + u8 bagOpen; u16 pocket; u16 itemsAbove[3]; u16 cursorPos[3]; }; -extern struct BagStruct gUnknown_203ACFC; +extern struct BagStruct gBagMenuState; extern u16 gSpecialVar_ItemId; @@ -27,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 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 fontId, const u8 * string, TaskFunc followUpFunc); -void sub_810A1F8(u8 taskId); -void sub_8107ECC(void); -void InitTutorialBag(void); -void sub_8108DC8(u8 pocketId); -void sub_81089F4(u8 pocketId); +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/menu_helpers.h b/include/menu_helpers.h index 90aeb95f6..d26f50483 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -20,7 +20,7 @@ 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); diff --git a/include/strings.h b/include/strings.h index 852e88a5c..6241bd8a9 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1038,6 +1038,9 @@ 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[]; 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..bb88fc4d1 100644 --- a/include/tm_case.h +++ b/include/tm_case.h @@ -1,6 +1,16 @@ #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); diff --git a/src/bag.c b/src/bag.c index b5ba01b4d..7f000722a 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[] = { + +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[] = { + +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[] = { + +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, u8 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, u8 unused) +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 a027808af..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 - InitTutorialBag(); + 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..b9df7e1ed 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/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/item_menu.c b/src/item_menu.c index a2a6f865b..467ff4c6b 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -39,10 +39,10 @@ struct BagMenuAlloc { MainCallback exitCB; - u8 field_04; - u8 field_05_0:4; + u8 itemOriginalLocation; + u8 pocketSwitchMode:4; u8 itemMenuIcon:2; - u8 field_05_6:2; + u8 inhibitItemDescriptionPrint:2; u16 contextMenuSelectedItem; u8 pocketScrollArrowsTask; u8 pocketSwitchArrowsTask; @@ -62,103 +62,104 @@ struct BagSlots u16 pocket; }; -EWRAM_DATA struct BagStruct gUnknown_203ACFC = {}; -EWRAM_DATA struct BagMenuAlloc * gUnknown_203AD10 = NULL; -EWRAM_DATA void * gUnknown_203AD14 = NULL; -EWRAM_DATA struct ListMenuItem * gUnknown_203AD18 = NULL; -EWRAM_DATA u8 (*gUnknown_203AD1C)[19] = NULL; -EWRAM_DATA u8 gUnknown_203AD20[4] = {}; -EWRAM_DATA const u8 *gUnknown_203AD24 = NULL; -EWRAM_DATA u8 gUnknown_203AD28 = 0; -EWRAM_DATA struct BagSlots * gUnknown_203AD2C = NULL; - -void sub_8107F10(void); -bool8 sub_8107F3C(void); -void sub_810813C(void); -void sub_8108178(u8 taskId); -void sub_81081AC(void); -bool8 sub_81081D0(void); -bool8 sub_8108240(void); -u8 sub_8108388(u8 location); -bool8 sub_81083F4(void); -void sub_810842C(u8 pocket); -void sub_8108560(u8 *dest, u16 itemId); -void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list); -void sub_8108654(u8 windowId, s32 itemId, u8 y); -void bag_menu_print_cursor(u8 y, u8 colorIdx); -void sub_81087EC(void); -void sub_8108818(s32 itemIndex); -void sub_8108888(void); -void sub_81088D8(void); -void sub_810899C(void); -void sub_8108A68(void); -void sub_8108A84(void); -void sub_8108B04(void); -void sub_8108B8C(u8 taskId); -void sub_8108CFC(u8 taskId); -void sub_8108C10(void); -void sub_8108E54(void); -void sub_8108F0C(u8 taskId); -void sub_81090DC(u8 taskId); -void sub_8109140(u32 a0); -u8 sub_8109168(u8 taskId, u8 pocketId); -void sub_81091D0(u8 taskId, s16 direction, bool16 a2); -void sub_8109298(u8 taskId); -void sub_81093B8(u8 taskId, s16 itemIndex); -void sub_81094B0(u8 taskId); -void sub_81095AC(u8 taskId, u32 itemIndex); -void sub_810967C(u8 taskId, u32 itemIndex); -void sub_8109854(u8 a0); -void sub_8109BB8(u8 taskId); -void sub_8109BE4(u8 taskId); -void Task_ItemMenuAction_Use(u8 taskId); -void Task_ItemMenuAction_Toss(u8 taskId); -void sub_8109D38(u8 taskId); -void sub_8109DB0(u8 taskId); -void sub_8109DEC(u8 taskId); -void sub_8109EA8(u8 taskId); -void sub_8109F44(u8 taskId); -void Task_ItemMenuAction_ToggleSelect(u8 taskId); -void Task_ItemMenuAction_Give(u8 taskId); -void sub_810A170(u8 taskId); -void Task_ItemMenuAction_Cancel(u8 taskId); -void sub_810A18C(u8 taskId); -void sub_810A1D0(u8 taskId); -void sub_810A324(u8 taskId); -void sub_810A370(u8 taskId); -void sub_810A434(void); -void sub_810A448(void); -void sub_810A45C(void); -void sub_810A468(u8 taskId); -void sub_810A52C(void); -void sub_810A540(void); -void sub_810A554(void); -void sub_810A568(u8 taskId); -void sub_810A654(void); -void sub_810A668(void); -void sub_810A67C(void); -void sub_810A690(u8 taskId); -void sub_810A70C(u8 taskId); -void sub_810A720(u8 taskId); -void sub_810A770(u8 taskId); -void sub_810A834(s32 price); -void sub_810A85C(u8 taskId); -void sub_810A940(u8 taskId); -void sub_810A9D4(u8 taskId); -void sub_810AAF4(u8 taskId); -void sub_810AB40(u8 taskId); -void sub_810AB88(u8 taskId); -void sub_810AC40(u8 taskId); -bool8 sub_810ADAC(void); -void sub_810AF9C(u8 taskId); -void sub_810B070(u8 taskId); -void sub_810B0AC(u8 taskId); -void sub_810B1D4(u8 taskId); -void sub_810B378(u8 taskId); -void sub_810B4BC(u8 taskId); -void sub_810B5D4(u8 taskId); - -const struct BgTemplate gUnknown_8452CF4[2] = { +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, @@ -178,43 +179,43 @@ const struct BgTemplate gUnknown_8452CF4[2] = { } }; -const u8 *const sPocketNames[] = { +static const u8 *const sPocketNames[] = { gText_Items2, gText_KeyItems2, gText_PokeBalls2 }; -const u16 gUnknown_8452D08[][18] = { - [ITEMMENUACTION_USE] = INCBIN_U16("graphics/item_menu/bagmap_0.bin"), - [ITEMMENUACTION_TOSS] = INCBIN_U16("graphics/item_menu/bagmap_1.bin"), - [ITEMMENUACTION_REGISTER] = INCBIN_U16("graphics/item_menu/bagmap_2.bin"), - [ITEMMENUACTION_GIVE] = INCBIN_U16("graphics/item_menu/bagmap_3.bin"), - [ITEMMENUACTION_CANCEL] = INCBIN_U16("graphics/item_menu/bagmap_4.bin"), - [ITEMMENUACTION_BATTLE_USE] = INCBIN_U16("graphics/item_menu/bagmap_5.bin"), - [ITEMMENUACTION_CHECK] = INCBIN_U16("graphics/item_menu/bagmap_6.bin"), - [ITEMMENUACTION_OPEN] = INCBIN_U16("graphics/item_menu/bagmap_7.bin"), - [ITEMMENUACTION_OPEN_BERRIES] = INCBIN_U16("graphics/item_menu/bagmap_8.bin"), - [ITEMMENUACTION_WALK] = INCBIN_U16("graphics/item_menu/bagmap_9.bin"), - [ITEMMENUACTION_DESELECT] = INCBIN_U16("graphics/item_menu/bagmap_A.bin"), - [ITEMMENUACTION_DUMMY] = INCBIN_U16("graphics/item_menu/bagmap_B.bin") +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") }; -const struct MenuAction gUnknown_8452EB8[] = { +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 = sub_810A324}}, + [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 = sub_810A324}}, + [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}} }; -const u8 gUnknown_8452F18[][4] = { +static const u8 sContextMenuItems_Field[][4] = { { ITEMMENUACTION_USE, ITEMMENUACTION_GIVE, @@ -233,14 +234,14 @@ const u8 gUnknown_8452F18[][4] = { } }; -const u8 gUnknown_8452F24[] = { +static const u8 sContextMenuItems_CheckGiveTossCancel[] = { ITEMMENUACTION_CHECK, ITEMMENUACTION_GIVE, ITEMMENUACTION_TOSS, ITEMMENUACTION_CANCEL }; -const u8 gUnknown_8452F28[][2] = { +static const u8 sContextMenuItems_GiveIfNotKeyItemPocket[][2] = { { ITEMMENUACTION_GIVE, ITEMMENUACTION_CANCEL @@ -253,46 +254,46 @@ const u8 gUnknown_8452F28[][2] = { } }; -const u8 gUnknown_8452F2E[] = { +static const u8 sContextMenuItems_Open[] = { ITEMMENUACTION_OPEN, ITEMMENUACTION_CANCEL }; -const u8 gUnknown_8452F30[] = { +static const u8 sContextMenuItems_BattleUse[] = { ITEMMENUACTION_BATTLE_USE, ITEMMENUACTION_CANCEL }; -const u8 gUnknown_8452F32[] = { +static const u8 sContextMenuItems_Cancel[] = { ITEMMENUACTION_CANCEL, ITEMMENUACTION_DUMMY }; -const TaskFunc gUnknown_8452F34[] = { - sub_8109BB8, - sub_810A370, - sub_810A568, - sub_810AB40, - sub_810A468, - sub_8109BB8, - NULL +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_OLDMAN] = NULL }; -const struct YesNoFuncTable gUnknown_8452F50 = { - sub_8109EA8, - sub_8109DB0 +static const struct YesNoFuncTable sYesNoMenu_Toss = { + Task_TossItem_Yes, + Task_TossItem_No }; -const struct YesNoFuncTable gUnknown_8452F58 = { - sub_810A940, - sub_810A720 +static const struct YesNoFuncTable sYesNoMenu_Sell = { + Task_SellItem_Yes, + Task_SellItem_No }; -const u8 gUnknown_8452F60[] = _("{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}"); +static const u8 sListItemTextColor_RegularItem[] = _("{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}"); -const u8 gUnknown_8452F66[] = _("{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}"); +static const u8 sListItemTextColor_TmCase_BerryPouch[] = _("{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}"); -const struct ScrollArrowsTemplate gUnknown_8452F6C = { +static const struct ScrollArrowsTemplate sPocketSwitchArrowPairTemplate = { .firstArrowType = SCROLL_ARROW_LEFT, .firstX = 8, .firstY = 72, @@ -306,57 +307,57 @@ const struct ScrollArrowsTemplate gUnknown_8452F6C = { .palNum = 0, }; -const u8 gUnknown_8452F7C[] = INCBIN_U8("graphics/interface/select_button.4bpp"); +static const u8 sBlit_SelectButton[] = INCBIN_U8("graphics/interface/select_button.4bpp"); -void GoToBagMenu(u8 location, u8 a1, MainCallback a2) +void GoToBagMenu(u8 location, u8 pocket, MainCallback bagCallback) { u8 i; - sub_81081AC(); - gUnknown_203AD10 = Alloc(sizeof(struct BagMenuAlloc)); - if (gUnknown_203AD10 == NULL) - SetMainCallback2(a2); + NullBagMenuBufferPtrs(); + sBagMenuDisplay = Alloc(sizeof(struct BagMenuAlloc)); + if (sBagMenuDisplay == NULL) + SetMainCallback2(bagCallback); else { - if (location != 11) - gUnknown_203ACFC.location = location; - if (a2 != NULL) - gUnknown_203ACFC.bagCallback = a2; - gUnknown_203AD10->exitCB = NULL; - gUnknown_203AD10->field_04 = 0xFF; - gUnknown_203AD10->itemMenuIcon = 0; - gUnknown_203AD10->field_05_6 = 0; - gUnknown_203AD10->pocketScrollArrowsTask = 0xFF; - gUnknown_203AD10->pocketSwitchArrowsTask = 0xFF; - if (location == 3) - gUnknown_203AD10->field_05_0 = 1; - else if (location == 6) - gUnknown_203AD10->field_05_0 = 2; + 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_OLDMAN) + sBagMenuDisplay->pocketSwitchMode = 2; else - gUnknown_203AD10->field_05_0 = 0; + sBagMenuDisplay->pocketSwitchMode = 0; for (i = 0; i < 4; i++) { - gUnknown_203AD10->data[i] = 0; + sBagMenuDisplay->data[i] = 0; } - if (a1 == 0 || a1 == 1 || a1 == 2) - gUnknown_203ACFC.pocket = a1; + if (pocket == OPEN_BAG_ITEMS || pocket == OPEN_BAG_KEYITEMS || pocket == OPEN_BAG_POKEBALLS) + gBagMenuState.pocket = pocket; gTextFlags.autoScroll = FALSE; gSpecialVar_ItemId = ITEM_NONE; - SetMainCallback2(sub_8107F10); + SetMainCallback2(CB2_OpenBagMenu); } } void CB2_BagMenuFromStartMenu(void) { - GoToBagMenu(0, 3, CB2_ReturnToFieldWithOpenMenu); + GoToBagMenu(ITEMMENULOCATION_FIELD, OPEN_BAG_LAST, CB2_ReturnToFieldWithOpenMenu); } -void sub_8107ECC(void) +void CB2_BagMenuFromBattle(void) { - GoToBagMenu(5, 3, SetCB2ToReshowScreenAfterMenu2); + GoToBagMenu(ITEMMENULOCATION_BATTLE, OPEN_BAG_LAST, SetCB2ToReshowScreenAfterMenu2); } -void sub_8107EE0(void) +static void CB2_BagMenuRun(void) { RunTasks(); AnimateSprites(); @@ -365,27 +366,27 @@ void sub_8107EE0(void) UpdatePaletteFade(); } -void sub_8107EFC(void) +static void VBlankCB_BagMenuRun(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_8107F10(void) +static void CB2_OpenBagMenu(void) { while (1) { if ((u8)sub_80BF72C() == TRUE) break; - if (sub_8107F3C() == TRUE) + if (LoadBagMenuGraphics() == TRUE) break; if (MenuHelpers_LinkSomething() == TRUE) break; } } -bool8 sub_8107F3C(void) +static bool8 LoadBagMenuGraphics(void) { u8 taskId; @@ -425,76 +426,76 @@ bool8 sub_8107F3C(void) gMain.state++; break; case 7: - if (sub_81081D0()) + if (BagMenuInitBgsAndAllocTilemapBuffer()) { - gUnknown_203AD10->data[0] = 0; + sBagMenuDisplay->data[0] = 0; gMain.state++; } else { - sub_810813C(); + FadeOutOfBagMenu(); return TRUE; } break; case 8: - if (sub_8108240() == TRUE) + if (DoLoadBagGraphics() == TRUE) gMain.state++; break; case 9: - sub_810B858(); + InitBagWindows(); gMain.state++; break; case 10: - sub_8108E54(); - sub_8108A68(); - sub_8108A84(); + All_CalculateNItemsAndMaxShowed(); + CalculateInitialCursorPosAndItemsAbove(); + UpdatePocketScrollPositions(); gMain.state++; break; case 11: - if (!sub_81083F4()) + if (!TryAllocListMenuBuffers()) { - sub_810813C(); + FadeOutOfBagMenu(); return TRUE; } gMain.state++; break; case 12: - sub_810842C(gUnknown_203ACFC.pocket); + Bag_BuildListMenuTemplate(gBagMenuState.pocket); gMain.state++; break; case 13: - if (gUnknown_203ACFC.location != 3) - sub_81087EC(); + if (gBagMenuState.location != ITEMMENULOCATION_ITEMPC) + PrintBagPocketName(); else - sub_810B994(); + BagDrawDepositItemTextBox(); gMain.state++; break; case 14: - taskId = sub_8108388(gUnknown_203ACFC.location); - gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + 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: - sub_80984FC(gUnknown_203ACFC.pocket); + CreateBagOrSatchelSprite(gBagMenuState.pocket); gMain.state++; break; case 16: - sub_8108888(); - sub_81088D8(); + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); gMain.state++; break; case 17: - sub_80985E4(); + ItemMenuIcons_CreateInsertIndicatorBarHidden(); gMain.state++; break; case 18: - sub_8108C10(); + ShowBagOrBeginWin0OpenTask(); gMain.state++; break; case 19: - if (gUnknown_203ACFC.location == 3) + if (gBagMenuState.location == ITEMMENULOCATION_ITEMPC) HelpSystem_SetSomeVariable2(29); else HelpSystem_SetSomeVariable2(9); @@ -502,50 +503,50 @@ bool8 sub_8107F3C(void) gMain.state++; break; default: - SetVBlankCallback(sub_8107EFC); - SetMainCallback2(sub_8107EE0); + SetVBlankCallback(VBlankCB_BagMenuRun); + SetMainCallback2(CB2_BagMenuRun); return TRUE; } return FALSE; } -void sub_810813C(void) +static void FadeOutOfBagMenu(void) { BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); - CreateTask(sub_8108178, 0); - SetVBlankCallback(sub_8107EFC); - SetMainCallback2(sub_8107EE0); + CreateTask(Task_WaitFadeOutOfBagMenu, 0); + SetVBlankCallback(VBlankCB_BagMenuRun); + SetMainCallback2(CB2_BagMenuRun); } -void sub_8108178(u8 taskId) +static void Task_WaitFadeOutOfBagMenu(u8 taskId) { if (!gPaletteFade.active) { - SetMainCallback2(gUnknown_203ACFC.bagCallback); - sub_8108B04(); + SetMainCallback2(gBagMenuState.bagCallback); + DestroyBagMenuResources(); DestroyTask(taskId); } } -void sub_81081AC(void) +static void NullBagMenuBufferPtrs(void) { - gUnknown_203AD10 = NULL; - gUnknown_203AD14 = NULL; - gUnknown_203AD18 = NULL; - gUnknown_203AD1C = NULL; + sBagMenuDisplay = NULL; + sBagBgTilemapBuffer = NULL; + sListMenuItems = NULL; + sListMenuItemStrings = NULL; } -bool8 sub_81081D0(void) +static bool8 BagMenuInitBgsAndAllocTilemapBuffer(void) { void **buff; ResetAllBgsCoordinatesAndBgCntRegs(); - buff = &gUnknown_203AD14; + buff = &sBagBgTilemapBuffer; *buff = Alloc(0x800); if (*buff == NULL) return FALSE; memset(*buff, 0, 0x800); ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, gUnknown_8452CF4, NELEMS(gUnknown_8452CF4)); + InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); SetBgTilemapBuffer(1, *buff); ScheduleBgCopyTilemapToVram(1); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); @@ -555,101 +556,101 @@ bool8 sub_81081D0(void) return TRUE; } -bool8 sub_8108240(void) +static bool8 DoLoadBagGraphics(void) { - switch (gUnknown_203AD10->data[0]) + switch (sBagMenuDisplay->data[0]) { case 0: ResetTempTileDataBuffers(); DecompressAndCopyTileDataToVram(1, gUnknown_8E830CC, 0, 0, 0); - gUnknown_203AD10->data[0]++; + sBagMenuDisplay->data[0]++; break; case 1: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - if (gUnknown_203ACFC.location != 3) - LZDecompressWram(gUnknown_8E832C0, gUnknown_203AD14); + if (gBagMenuState.location != ITEMMENULOCATION_ITEMPC) + LZDecompressWram(gUnknown_8E832C0, sBagBgTilemapBuffer); else - LZDecompressWram(gUnknown_8E83444, gUnknown_203AD14); - gUnknown_203AD10->data[0]++; + LZDecompressWram(gUnknown_8E83444, sBagBgTilemapBuffer); + sBagMenuDisplay->data[0]++; } break; case 2: - LoadCompressedPalette(gUnknown_8E835B4, 0x00, 0x60); - if (!sub_810ADAC() && gSaveBlock2Ptr->playerGender != MALE) - LoadCompressedPalette(gUnknown_8E83604, 0x00, 0x20); - gUnknown_203AD10->data[0]++; + LoadCompressedPalette(gBagBgPalette, 0x00, 0x60); + if (!BagIsTutorial() && gSaveBlock2Ptr->playerGender != MALE) + LoadCompressedPalette(gBagBgPalette_FemaleOverride, 0x00, 0x20); + sBagMenuDisplay->data[0]++; break; case 3: - if (sub_810ADAC() == TRUE || gSaveBlock2Ptr->playerGender == MALE) - LoadCompressedSpriteSheet(&gUnknown_83D41E4); + if (BagIsTutorial() == TRUE || gSaveBlock2Ptr->playerGender == MALE) + LoadCompressedSpriteSheet(&gSpriteSheet_Backpack); else - LoadCompressedSpriteSheet(&gUnknown_83D41EC); - gUnknown_203AD10->data[0]++; + LoadCompressedSpriteSheet(&gSpriteSheet_Satchel); + sBagMenuDisplay->data[0]++; break; case 4: - LoadCompressedSpritePalette(&gUnknown_83D41F4); - gUnknown_203AD10->data[0]++; + LoadCompressedSpritePalette(&gSpritePalette_BagOrSatchel); + sBagMenuDisplay->data[0]++; break; case 5: LoadCompressedSpriteSheet(&gBagSwapSpriteSheet); - gUnknown_203AD10->data[0]++; + sBagMenuDisplay->data[0]++; break; default: LoadCompressedSpritePalette(&gBagSwapSpritePalette); - gUnknown_203AD10->data[0] = 0; + sBagMenuDisplay->data[0] = 0; return TRUE; } return FALSE; } -u8 sub_8108388(u8 location) +static u8 CreateBagInputHandlerTask(u8 location) { switch (location) { - case 6: - return CreateTask(sub_810AF9C, 0); - case 9: - return CreateTask(sub_810B1D4, 0); - case 10: - return CreateTask(sub_810B5D4, 0); - case 7: - return CreateTask(sub_810B4BC, 0); - case 8: - return CreateTask(sub_810B378, 0); + case ITEMMENULOCATION_OLDMAN: + 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(sub_8108F0C, 0); + return CreateTask(Task_BagMenu_HandleInput, 0); } } -bool8 sub_81083F4(void) +static bool8 TryAllocListMenuBuffers(void) { - gUnknown_203AD18 = Alloc(43 * sizeof(struct ListMenuItem)); - if (gUnknown_203AD18 == NULL) + sListMenuItems = Alloc(43 * sizeof(struct ListMenuItem)); + if (sListMenuItems == NULL) return FALSE; - gUnknown_203AD1C = Alloc(43 * 19); - if (gUnknown_203AD1C == NULL) + sListMenuItemStrings = Alloc(43 * 19); + if (sListMenuItemStrings == NULL) return FALSE; return TRUE; } -void sub_810842C(u8 pocket) +static void Bag_BuildListMenuTemplate(u8 pocket) { u16 i; struct BagPocket * bagPocket = &gBagPockets[pocket]; - for (i = 0; i < gUnknown_203AD10->nItems[pocket]; i++) - { - sub_8108560(gUnknown_203AD1C[i], bagPocket->itemSlots[i].itemId); - gUnknown_203AD18[i].label = gUnknown_203AD1C[i]; - gUnknown_203AD18[i].index = i; - } - StringCopy(gUnknown_203AD1C[i], gUnknown_8452F60); - StringAppend(gUnknown_203AD1C[i], gFameCheckerText_Cancel); - gUnknown_203AD18[i].label = gUnknown_203AD1C[i]; - gUnknown_203AD18[i].index = i; - gMultiuseListMenuTemplate.items = gUnknown_203AD18; - gMultiuseListMenuTemplate.totalItems = gUnknown_203AD10->nItems[pocket] + 1; + 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; @@ -657,80 +658,80 @@ void sub_810842C(u8 pocket) gMultiuseListMenuTemplate.lettersSpacing = 0; gMultiuseListMenuTemplate.itemVerticalPadding = 2; gMultiuseListMenuTemplate.upText_Y = 2; - gMultiuseListMenuTemplate.maxShowed = gUnknown_203AD10->maxShowed[pocket]; + gMultiuseListMenuTemplate.maxShowed = sBagMenuDisplay->maxShowed[pocket]; gMultiuseListMenuTemplate.fontId = 2; gMultiuseListMenuTemplate.cursorPal = 2; gMultiuseListMenuTemplate.fillValue = 0; gMultiuseListMenuTemplate.cursorShadowPal = 3; - gMultiuseListMenuTemplate.moveCursorFunc = sub_81085A4; - gMultiuseListMenuTemplate.itemPrintFunc = sub_8108654; + gMultiuseListMenuTemplate.moveCursorFunc = BagListMenuMoveCursorFunc; + gMultiuseListMenuTemplate.itemPrintFunc = BagListMenuItemPrintFunc; gMultiuseListMenuTemplate.cursorKind = 0; gMultiuseListMenuTemplate.scrollMultiple = 0; } -void sub_8108560(u8 *dest, u16 itemId) +static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId) { if (itemId == ITEM_TM_CASE || itemId == ITEM_BERRY_POUCH) - StringCopy(dest, gUnknown_8452F66); + StringCopy(dest, sListItemTextColor_TmCase_BerryPouch); else - StringCopy(dest, gUnknown_8452F60); + StringCopy(dest, sListItemTextColor_RegularItem); StringAppend(dest, ItemId_GetName(itemId)); } -void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) { PlaySE(SE_BAG1); sub_8098580(); } - if (gUnknown_203AD10->field_04 == 0xFF) + if (sBagMenuDisplay->itemOriginalLocation == 0xFF) { - DestroyItemMenuIcon(gUnknown_203AD10->itemMenuIcon ^ 1); - if (gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket] != itemIndex) - CreateItemMenuIcon(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex), gUnknown_203AD10->itemMenuIcon); + DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1); + if (sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemIndex) + CreateItemMenuIcon(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon); else - CreateItemMenuIcon(ITEM_N_A, gUnknown_203AD10->itemMenuIcon); - gUnknown_203AD10->itemMenuIcon ^= 1; - if (gUnknown_203AD10->field_05_6 == 0) - sub_8108818(itemIndex); + CreateItemMenuIcon(ITEM_N_A, sBagMenuDisplay->itemMenuIcon); + sBagMenuDisplay->itemMenuIcon ^= 1; + if (!sBagMenuDisplay->inhibitItemDescriptionPrint) + PrintItemDescriptionOnMessageWindow(itemIndex); } } -void sub_8108654(u8 windowId, s32 itemId, u8 y) +static void BagListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y) { u16 bagItemId; u16 bagItemQuantity; - if (gUnknown_203AD10->field_04 != 0xFF) + if (sBagMenuDisplay->itemOriginalLocation != 0xFF) { - if (gUnknown_203AD10->field_04 == (u8)itemId) + if (sBagMenuDisplay->itemOriginalLocation == (u8)itemId) bag_menu_print_cursor(y, 2); else bag_menu_print_cursor(y, 0xFF); } - if (itemId != -2 && gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket] != itemId) + if (itemId != -2 && sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemId) { - bagItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId); - bagItemQuantity = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId); - if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(bagItemId)) + 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); - sub_810B8F0(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1); + BagPrintTextOnWindow(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1); } else if (gSaveBlock1Ptr->registeredItem != ITEM_NONE && gSaveBlock1Ptr->registeredItem == bagItemId) { - BlitBitmapToWindow(windowId, gUnknown_8452F7C, 0x70, y, 0x18, 0x10); + BlitBitmapToWindow(windowId, sBlit_SelectButton, 0x70, y, 0x18, 0x10); } } } -void bag_menu_print_cursor_(u8 taskId, u8 colorIdx) +static void bag_menu_print_cursor_(u8 taskId, u8 colorIdx) { bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx); } -void bag_menu_print_cursor(u8 y, u8 colorIdx) +static void bag_menu_print_cursor(u8 y, u8 colorIdx) { if (colorIdx == 0xFF) { @@ -738,53 +739,53 @@ void bag_menu_print_cursor(u8 y, u8 colorIdx) } else { - sub_810B8F0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx); + BagPrintTextOnWindow(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx); } } -void sub_81087EC(void) +static void PrintBagPocketName(void) { FillWindowPixelBuffer(2, PIXEL_FILL(0)); - sub_810B958(sPocketNames[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket); + BagPrintTextOnWin1CenteredColor0(sPocketNames[gBagMenuState.pocket], gBagMenuState.pocket); } -void sub_8108818(s32 itemIndex) +static void PrintItemDescriptionOnMessageWindow(s32 itemIndex) { const u8 *description; - if (itemIndex != gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) - description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex)); + if (itemIndex != sBagMenuDisplay->nItems[gBagMenuState.pocket]) + description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex)); else description = gText_CloseBag; FillWindowPixelBuffer(1, PIXEL_FILL(0)); - sub_810B8F0(1, 2, description, 0, 3, 2, 0, 0, 0); + BagPrintTextOnWindow(1, 2, description, 0, 3, 2, 0, 0, 0); } -void sub_8108888(void) +static void CreatePocketScrollArrowPair(void) { - gUnknown_203AD10->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( SCROLL_ARROW_UP, 160, 8, 104, - gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket] - gUnknown_203AD10->maxShowed[gUnknown_203ACFC.pocket] + 1, + sBagMenuDisplay->nItems[gBagMenuState.pocket] - sBagMenuDisplay->maxShowed[gBagMenuState.pocket] + 1, 110, 110, - &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket] + &gBagMenuState.cursorPos[gBagMenuState.pocket] ); } -void sub_81088D8(void) +static void CreatePocketSwitchArrowPair(void) { - if (gUnknown_203AD10->field_05_0 != 1) + if (sBagMenuDisplay->pocketSwitchMode != 1) { - gUnknown_203AD10->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&gUnknown_8452F6C, &gUnknown_203ACFC.pocket); + sBagMenuDisplay->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&sPocketSwitchArrowPairTemplate, &gBagMenuState.pocket); } } -void sub_8108908(void) +static void CreatePocketScrollArrowPair_SellQuantity(void) { - gUnknown_203AD10->contextMenuSelectedItem = 1; - gUnknown_203AD10->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + sBagMenuDisplay->contextMenuSelectedItem = 1; + sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( SCROLL_ARROW_UP, 152, 72, @@ -792,14 +793,14 @@ void sub_8108908(void) 2, 110, 110, - &gUnknown_203AD10->contextMenuSelectedItem + &sBagMenuDisplay->contextMenuSelectedItem ); } -void sub_8108940(void) +static void CreateArrowPair_QuantitySelect(void) { - gUnknown_203AD10->contextMenuSelectedItem = 1; - gUnknown_203AD10->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + sBagMenuDisplay->contextMenuSelectedItem = 1; + sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( SCROLL_ARROW_UP, 212, 120, @@ -807,115 +808,115 @@ void sub_8108940(void) 2, 110, 110, - &gUnknown_203AD10->contextMenuSelectedItem + &sBagMenuDisplay->contextMenuSelectedItem ); } -void sub_8108978(void) +static void BagDestroyPocketScrollArrowPair(void) { - if (gUnknown_203AD10->pocketScrollArrowsTask != 0xFF) + if (sBagMenuDisplay->pocketScrollArrowsTask != 0xFF) { - RemoveScrollIndicatorArrowPair(gUnknown_203AD10->pocketScrollArrowsTask); - gUnknown_203AD10->pocketScrollArrowsTask = 0xFF; + RemoveScrollIndicatorArrowPair(sBagMenuDisplay->pocketScrollArrowsTask); + sBagMenuDisplay->pocketScrollArrowsTask = 0xFF; } - sub_810899C(); + BagDestroyPocketSwitchArrowPair(); } -void sub_810899C(void) +static void BagDestroyPocketSwitchArrowPair(void) { - if (gUnknown_203AD10->pocketSwitchArrowsTask != 0xFF) + if (sBagMenuDisplay->pocketSwitchArrowsTask != 0xFF) { - RemoveScrollIndicatorArrowPair(gUnknown_203AD10->pocketSwitchArrowsTask); - gUnknown_203AD10->pocketSwitchArrowsTask = 0xFF; + RemoveScrollIndicatorArrowPair(sBagMenuDisplay->pocketSwitchArrowsTask); + sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF; } } -void sub_81089BC(void) +void ResetBagCursorPositions(void) { u8 i; - gUnknown_203ACFC.pocket = POCKET_ITEMS - 1; - gUnknown_203ACFC.unk5 = 0; + gBagMenuState.pocket = POCKET_ITEMS - 1; + gBagMenuState.bagOpen = 0; for (i = 0; i < 3; i++) { - gUnknown_203ACFC.itemsAbove[i] = 0; - gUnknown_203ACFC.cursorPos[i] = 0; + gBagMenuState.itemsAbove[i] = 0; + gBagMenuState.cursorPos[i] = 0; } } -void sub_81089F4(u8 pocketId) +void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId) { - if (gUnknown_203ACFC.cursorPos[pocketId] != 0 && gUnknown_203ACFC.cursorPos[pocketId] + gUnknown_203AD10->maxShowed[pocketId] > gUnknown_203AD10->nItems[pocketId] + 1) + if (gBagMenuState.cursorPos[pocketId] != 0 && gBagMenuState.cursorPos[pocketId] + sBagMenuDisplay->maxShowed[pocketId] > sBagMenuDisplay->nItems[pocketId] + 1) { - gUnknown_203ACFC.cursorPos[pocketId] = (gUnknown_203AD10->nItems[pocketId] + 1) - gUnknown_203AD10->maxShowed[pocketId]; + gBagMenuState.cursorPos[pocketId] = (sBagMenuDisplay->nItems[pocketId] + 1) - sBagMenuDisplay->maxShowed[pocketId]; } - if (gUnknown_203ACFC.cursorPos[pocketId] + gUnknown_203ACFC.itemsAbove[pocketId] >= gUnknown_203AD10->nItems[pocketId] + 1) + if (gBagMenuState.cursorPos[pocketId] + gBagMenuState.itemsAbove[pocketId] >= sBagMenuDisplay->nItems[pocketId] + 1) { - if (gUnknown_203AD10->nItems[pocketId] + 1 < 2) - gUnknown_203ACFC.itemsAbove[pocketId] = 0; + if (sBagMenuDisplay->nItems[pocketId] + 1 < 2) + gBagMenuState.itemsAbove[pocketId] = 0; else - gUnknown_203ACFC.itemsAbove[pocketId] = gUnknown_203AD10->nItems[pocketId]; + gBagMenuState.itemsAbove[pocketId] = sBagMenuDisplay->nItems[pocketId]; } } -void sub_8108A68(void) +static void CalculateInitialCursorPosAndItemsAbove(void) { u8 i; for (i = 0; i < 3; i++) { - sub_81089F4(i); + PocketCalculateInitialCursorPosAndItemsAbove(i); } } -void sub_8108A84(void) +static void UpdatePocketScrollPositions(void) { u8 i; u8 j; for (i = 0; i < 3; i++) { - if (gUnknown_203ACFC.itemsAbove[i] > 3) + if (gBagMenuState.itemsAbove[i] > 3) { - for (j = 0; j <= gUnknown_203ACFC.itemsAbove[i] - 3; gUnknown_203ACFC.itemsAbove[i]--, gUnknown_203ACFC.cursorPos[i]++, j++) + for (j = 0; j <= gBagMenuState.itemsAbove[i] - 3; gBagMenuState.itemsAbove[i]--, gBagMenuState.cursorPos[i]++, j++) { - if (gUnknown_203ACFC.cursorPos[i] + gUnknown_203AD10->maxShowed[i] == gUnknown_203AD10->nItems[i] + 1) + if (gBagMenuState.cursorPos[i] + sBagMenuDisplay->maxShowed[i] == sBagMenuDisplay->nItems[i] + 1) break; } } } } -void sub_8108B04(void) +static void DestroyBagMenuResources(void) { - FREE_IF_SET(gUnknown_203AD10); - FREE_IF_SET(gUnknown_203AD14); - FREE_IF_SET(gUnknown_203AD18); - FREE_IF_SET(gUnknown_203AD1C); + 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 = sub_8108B8C; + gTasks[taskId].func = Task_ItemMenu_WaitFadeAndSwitchToExitCallback; } -void sub_8108B8C(u8 taskId) +static void Task_ItemMenu_WaitFadeAndSwitchToExitCallback(u8 taskId) { s16 *data = gTasks[taskId].data; - if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE) + if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE) { - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - if (gUnknown_203AD10->exitCB != NULL) - SetMainCallback2(gUnknown_203AD10->exitCB); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + if (sBagMenuDisplay->exitCB != NULL) + SetMainCallback2(sBagMenuDisplay->exitCB); else - SetMainCallback2(gUnknown_203ACFC.bagCallback); - sub_8108978(); - sub_8108B04(); + SetMainCallback2(gBagMenuState.bagCallback); + BagDestroyPocketScrollArrowPair(); + DestroyBagMenuResources(); DestroyTask(taskId); } } -void sub_8108C10(void) +static void ShowBagOrBeginWin0OpenTask(void) { u16 paldata = RGB_BLACK; u8 taskId; @@ -925,7 +926,7 @@ void sub_8108C10(void) SetGpuReg(REG_OFFSET_WINOUT, 0x3F); BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - if (gUnknown_203ACFC.unk5 == 1) + if (gBagMenuState.bagOpen == 1) { SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 0)); @@ -934,28 +935,28 @@ void sub_8108C10(void) { SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160)); - taskId = CreateTask(sub_8108CFC, 0); + taskId = CreateTask(Task_AnimateWin0v, 0); gTasks[taskId].data[0] = 192; gTasks[taskId].data[1] = -16; - gUnknown_203ACFC.unk5 = 1; + gBagMenuState.bagOpen = 1; } } -void sub_8108CB4(void) +void Bag_BeginCloseWin0Animation(void) { - u8 taskId = CreateTask(sub_8108CFC, 0); + u8 taskId = CreateTask(Task_AnimateWin0v, 0); gTasks[taskId].data[0] = -16; gTasks[taskId].data[1] = 16; - gUnknown_203ACFC.unk5 = 0; + gBagMenuState.bagOpen = 0; } void CB2_SetUpReshowBattleScreenAfterMenu(void) { - gUnknown_203ACFC.unk5 = 0; + gBagMenuState.bagOpen = 0; } -void sub_8108CFC(u8 taskId) +static void Task_AnimateWin0v(u8 taskId) { s16 *data = gTasks[taskId].data; data[0] += data[1]; @@ -993,35 +994,35 @@ void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_) } } -void sub_8108DC8(u8 pocketId) +void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId) { u16 i; struct BagPocket * pocket = &gBagPockets[pocketId]; BagPocketCompaction(pocket->itemSlots, pocket->capacity); - gUnknown_203AD10->nItems[pocketId] = 0; + sBagMenuDisplay->nItems[pocketId] = 0; for (i = 0; i < pocket->capacity; i++) { if (pocket->itemSlots[i].itemId == ITEM_NONE) break; - gUnknown_203AD10->nItems[pocketId]++; + sBagMenuDisplay->nItems[pocketId]++; } - if (gUnknown_203AD10->nItems[pocketId] + 1 > 6) - gUnknown_203AD10->maxShowed[pocketId] = 6; + if (sBagMenuDisplay->nItems[pocketId] + 1 > 6) + sBagMenuDisplay->maxShowed[pocketId] = 6; else - gUnknown_203AD10->maxShowed[pocketId] = gUnknown_203AD10->nItems[pocketId] + 1; + sBagMenuDisplay->maxShowed[pocketId] = sBagMenuDisplay->nItems[pocketId] + 1; } -void sub_8108E54(void) +static void All_CalculateNItemsAndMaxShowed(void) { u8 i; for (i = 0; i < 3; i++) - sub_8108DC8(i); + Pocket_CalculateNItemsAndMaxShowed(i); } void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc) { s16 *data = gTasks[taskId].data; - data[10] = sub_810BA70(5); + data[10] = OpenBagWindow(5); FillWindowPixelBuffer(data[10], PIXEL_FILL(1)); DisplayMessageAndContinueTask(taskId, data[10], 0x06D, 0x0D, fontId, GetTextSpeedSetting(), string, followUpFunc); ScheduleBgCopyTilemapToVram(0); @@ -1029,15 +1030,15 @@ void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc f void ItemMenu_SetExitCallback(MainCallback cb) { - gUnknown_203AD10->exitCB = cb; + sBagMenuDisplay->exitCB = cb; } -u8 sub_8108EEC(u8 a0) +static u8 GetSelectedItemIndex(u8 pocket) { - return gUnknown_203ACFC.cursorPos[a0] + gUnknown_203ACFC.itemsAbove[a0]; + return gBagMenuState.cursorPos[pocket] + gBagMenuState.itemsAbove[pocket]; } -void sub_8108F0C(u8 taskId) +static void Task_BagMenu_HandleInput(u8 taskId) { s16 *data = gTasks[taskId].data; u16 cursorPos; @@ -1046,33 +1047,33 @@ void sub_8108F0C(u8 taskId) if (gPaletteFade.active) return; - if (FuncIsActiveTask(sub_8108CFC) == TRUE) + if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE) return; if ((u8)sub_80BF72C() == TRUE) return; - switch (sub_8109168(taskId, gUnknown_203ACFC.pocket)) + switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket)) { case 1: - sub_81091D0(taskId, -1, FALSE); + SwitchPockets(taskId, -1, FALSE); return; case 2: - sub_81091D0(taskId, 1, FALSE); + SwitchPockets(taskId, 1, FALSE); return; default: - if (JOY_NEW(SELECT_BUTTON) && gUnknown_203ACFC.location == 0) + if (JOY_NEW(SELECT_BUTTON) && gBagMenuState.location == ITEMMENULOCATION_FIELD) { ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); - if (cursorPos + itemsAbove != gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) + if (cursorPos + itemsAbove != sBagMenuDisplay->nItems[gBagMenuState.pocket]) { PlaySE(SE_SELECT); - sub_81093B8(taskId, cursorPos + itemsAbove); + BeginMovingItemInPocket(taskId, cursorPos + itemsAbove); return; } } break; } input = ListMenu_ProcessInput(data[0]); - ListMenuGetScrollAndRow(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); switch (input) { case LIST_NOTHING_CHOSEN: @@ -1080,54 +1081,54 @@ void sub_8108F0C(u8 taskId) case LIST_CANCEL: PlaySE(SE_SELECT); gSpecialVar_ItemId = ITEM_NONE; - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; break; default: PlaySE(SE_SELECT); - if (input == gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket]) + if (input == sBagMenuDisplay->nItems[gBagMenuState.pocket]) { gSpecialVar_ItemId = ITEM_NONE; - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; } else { - sub_8108978(); + BagDestroyPocketScrollArrowPair(); bag_menu_print_cursor_(data[0], 2); data[1] = input; - data[2] = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, input); - gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, input); - gTasks[taskId].func = sub_81090DC; + data[2] = BagGetQuantityByPocketPosition(gBagMenuState.pocket + 1, input); + gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, input); + gTasks[taskId].func = Task_ItemContextMenuByLocation; } break; } } -void sub_81090DC(u8 taskId) +static void Task_ItemContextMenuByLocation(u8 taskId) { - sub_8109140(1); - gUnknown_8452F34[gUnknown_203ACFC.location](taskId); + Bag_FillMessageBoxWithPalette(1); + sItemContextTaskFuncs[gBagMenuState.location](taskId); } -void sub_810910C(u8 taskId) +static void Task_RedrawArrowsAndReturnToBagMenuSelect(u8 taskId) { - sub_8109140(0); - sub_8108888(); - sub_81088D8(); - gTasks[taskId].func = sub_8108F0C; + Bag_FillMessageBoxWithPalette(0); + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); + gTasks[taskId].func = Task_BagMenu_HandleInput; } -void sub_8109140(u32 a0) +static void Bag_FillMessageBoxWithPalette(u32 a0) { SetBgTilemapPalette(1, 0, 14, 30, 6, a0 + 1); ScheduleBgCopyTilemapToVram(1); } -u8 sub_8109168(u8 taskId, u8 pocketId) +static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId) { u8 lrState; - if (gUnknown_203AD10->field_05_0 != 0) + if (sBagMenuDisplay->pocketSwitchMode != 0) return 0; lrState = GetLRKeysState(); if (JOY_NEW(DPAD_LEFT) || lrState == 1) @@ -1147,7 +1148,7 @@ u8 sub_8109168(u8 taskId, u8 pocketId) return 0; } -void sub_81091D0(u8 taskId, s16 direction, bool16 a2) +static void SwitchPockets(u8 taskId, s16 direction, bool16 a2) { s16 *data = gTasks[taskId].data; data[13] = 0; @@ -1158,33 +1159,33 @@ void sub_81091D0(u8 taskId, s16 direction, bool16 a2) ClearWindowTilemap(0); ClearWindowTilemap(1); ClearWindowTilemap(2); - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); ScheduleBgCopyTilemapToVram(0); - DestroyItemMenuIcon(gUnknown_203AD10->itemMenuIcon ^ 1); - sub_8108978(); + DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1); + BagDestroyPocketScrollArrowPair(); } FillBgTilemapBufferRect_Palette0(1, 0x02D, 11, 1, 18, 12); ScheduleBgCopyTilemapToVram(1); - sub_8098528(gUnknown_203ACFC.pocket + direction); - SetTaskFuncWithFollowupFunc(taskId, sub_8109298, gTasks[taskId].func); + sub_8098528(gBagMenuState.pocket + direction); + SetTaskFuncWithFollowupFunc(taskId, Task_AnimateSwitchPockets, gTasks[taskId].func); } -void sub_8109298(u8 taskId) +static void Task_AnimateSwitchPockets(u8 taskId) { s16 *data = gTasks[taskId].data; - if (!MenuHelpers_LinkSomething() && !sub_810ADAC()) + if (!MenuHelpers_LinkSomething() && !BagIsTutorial()) { - switch (sub_8109168(taskId, gUnknown_203ACFC.pocket + data[11])) + switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket + data[11])) { case 1: - gUnknown_203ACFC.pocket += data[11]; + gBagMenuState.pocket += data[11]; SwitchTaskToFollowupFunc(taskId); - sub_81091D0(taskId, -1, TRUE); + SwitchPockets(taskId, -1, TRUE); return; case 2: - gUnknown_203ACFC.pocket += data[11]; + gBagMenuState.pocket += data[11]; SwitchTaskToFollowupFunc(taskId); - sub_81091D0(taskId, 1, TRUE); + SwitchPockets(taskId, 1, TRUE); return; } } @@ -1194,7 +1195,7 @@ void sub_8109298(u8 taskId) if (data[12] != 0x7FFF) { data[12]++; - sub_8109854(data[12]); + CopyBagListBgTileRowToTilemapBuffer(data[12]); if (data[12] == 12) data[12] = 0x7FFF; } @@ -1202,21 +1203,21 @@ void sub_8109298(u8 taskId) data[13]++; break; case 1: - gUnknown_203ACFC.pocket += data[11]; - sub_81087EC(); - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + 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); - sub_8108888(); - sub_81088D8(); + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); SwitchTaskToFollowupFunc(taskId); break; } } -void sub_81093B8(u8 taskId, s16 itemIndex) +static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex) { u16 itemsAbove; u16 cursorPos; @@ -1224,19 +1225,19 @@ void sub_81093B8(u8 taskId, s16 itemIndex) ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); data[1] = itemIndex; - gUnknown_203AD10->field_04 = itemIndex; - StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]))); + sBagMenuDisplay->itemOriginalLocation = itemIndex; + StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]))); StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, PIXEL_FILL(0)); - sub_810B8F0(1, 2, gStringVar4, 0, 3, 2, 0, 0, 0); - sub_80986A8(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - sub_8098660(0); - sub_810899C(); + 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 = sub_81094B0; + gTasks[taskId].func = Task_MoveItemInPocket_HandleInput; } -void sub_81094B0(u8 taskId) +static void Task_MoveItemInPocket_HandleInput(u8 taskId) { s16 *data = gTasks[taskId].data; s32 input; @@ -1245,14 +1246,14 @@ void sub_81094B0(u8 taskId) if ((u8)sub_80BF72C() == TRUE) return; input = ListMenu_ProcessInput(data[0]); - ListMenuGetScrollAndRow(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_80986A8(0, ListMenuGetYCoordForPrintingArrowCursor(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); - gUnknown_203AD10->field_04 = 0xFF; + sBagMenuDisplay->itemOriginalLocation = 0xFF; ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); - sub_81095AC(taskId, cursorPos + itemsAbove); + ExecuteMoveItemInPocket(taskId, cursorPos + itemsAbove); return; } switch (input) @@ -1261,163 +1262,163 @@ void sub_81094B0(u8 taskId) return; case LIST_CANCEL: PlaySE(SE_SELECT); - gUnknown_203AD10->field_04 = 0xFF; + sBagMenuDisplay->itemOriginalLocation = 0xFF; ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); - sub_810967C(taskId, cursorPos + itemsAbove); + AbortMovingItemInPocket(taskId, cursorPos + itemsAbove); break; default: PlaySE(SE_SELECT); - gUnknown_203AD10->field_04 = 0xFF; - sub_81095AC(taskId, input); + sBagMenuDisplay->itemOriginalLocation = 0xFF; + ExecuteMoveItemInPocket(taskId, input); break; } } -void sub_81095AC(u8 taskId, u32 itemIndex) +static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex) { s16 *data = gTasks[taskId].data; if (data[1] == itemIndex || data[1] == itemIndex - 1) { - sub_810967C(taskId, itemIndex); + AbortMovingItemInPocket(taskId, itemIndex); } else { - MoveItemSlotInList(gBagPockets[gUnknown_203ACFC.pocket].itemSlots, data[1], itemIndex); - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + MoveItemSlotInList(gBagPockets[gBagMenuState.pocket].itemSlots, data[1], itemIndex); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); if (data[1] < itemIndex) - gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]--; - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_8098660(1); - sub_81088D8(); - gTasks[taskId].func = sub_8108F0C; + 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; } } -void sub_810967C(u8 taskId, u32 itemIndex) +static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex) { s16 *data = gTasks[taskId].data; - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); if (data[1] < itemIndex) - gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]--; - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_8098660(1); - sub_81088D8(); - gTasks[taskId].func = sub_8108F0C; + 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; } -void sub_810971C(u16 cursorPos, const u8 *str) +static void InitQuantityToTossOrDeposit(u16 cursorPos, const u8 *str) { u8 r4; - u8 r5 = sub_810B9DC(6, 2); - CopyItemName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, cursorPos), gStringVar1); + u8 r5 = ShowBagWindow(6, 2); + CopyItemName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, cursorPos), gStringVar1); StringExpandPlaceholders(gStringVar4, str); - sub_810B8F0(r5, 2, gStringVar4, 0, 2, 1, 0, 0, 1); - r4 = sub_810B9DC(0, 0); + 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); - sub_810B8F0(r4, 0, gStringVar4, 4, 10, 1, 0, 0, 1); - sub_8108940(); + BagPrintTextOnWindow(r4, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + CreateArrowPair_QuantitySelect(); } -void sub_81097E4(s16 value, u8 ndigits) +static void UpdateQuantityToTossOrDeposit(s16 value, u8 ndigits) { - u8 r6 = sub_810BAD8(0); + u8 r6 = GetBagWindow(0); FillWindowPixelBuffer(r6, PIXEL_FILL(1)); ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, ndigits); StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); - sub_810B8F0(r6, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + BagPrintTextOnWindow(r6, 0, gStringVar4, 4, 10, 1, 0, 0, 1); } -void sub_8109854(u8 a0) +static void CopyBagListBgTileRowToTilemapBuffer(u8 frame) { - CopyToBgTilemapBufferRect(1, gUnknown_8452D08[12 - a0], 11, 13 - a0, 18, 1); + CopyToBgTilemapBufferRect(1, sBagListBgTiles[12 - frame], 11, 13 - frame, 18, 1); ScheduleBgCopyTilemapToVram(1); } -void sub_8109890(u8 taskId) +static void OpenContextMenu(u8 taskId) { u8 r6; u8 r4; - switch (gUnknown_203ACFC.location) + switch (gBagMenuState.location) { - case 5: - case 7: + case ITEMMENULOCATION_BATTLE: + case ITEMMENULOCATION_TTVSCR_STATUS: if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) { - gUnknown_203AD20[0] = ITEMMENUACTION_OPEN_BERRIES; - gUnknown_203AD20[1] = ITEMMENUACTION_CANCEL; - gUnknown_203AD24 = gUnknown_203AD20; - gUnknown_203AD28 = 2; + sContextMenuItemsBuffer[0] = ITEMMENUACTION_OPEN_BERRIES; + sContextMenuItemsBuffer[1] = ITEMMENUACTION_CANCEL; + sContextMenuItemsPtr = sContextMenuItemsBuffer; + sContextMenuNumItems = 2; } else if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) { - gUnknown_203AD24 = gUnknown_8452F30; - gUnknown_203AD28 = 2; + sContextMenuItemsPtr = sContextMenuItems_BattleUse; + sContextMenuNumItems = 2; } else { - gUnknown_203AD24 = gUnknown_8452F32; - gUnknown_203AD28 = 1; + sContextMenuItemsPtr = sContextMenuItems_Cancel; + sContextMenuNumItems = 1; } break; - case 6: - case 8: - gUnknown_203AD24 = gUnknown_8452F30; - gUnknown_203AD28 = 2; + case ITEMMENULOCATION_OLDMAN: + 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) { - gUnknown_203AD24 = gUnknown_8452F2E; - gUnknown_203AD28 = 2; + sContextMenuItemsPtr = sContextMenuItems_Open; + sContextMenuNumItems = 2; } else { - if (gUnknown_203ACFC.pocket == POCKET_KEY_ITEMS - 1) - gUnknown_203AD28 = 1; + if (gBagMenuState.pocket == POCKET_KEY_ITEMS - 1) + sContextMenuNumItems = 1; else - gUnknown_203AD28 = 2; - gUnknown_203AD24 = gUnknown_8452F28[gUnknown_203ACFC.pocket]; + sContextMenuNumItems = 2; + sContextMenuItemsPtr = sContextMenuItems_GiveIfNotKeyItemPocket[gBagMenuState.pocket]; } } else { - switch (gUnknown_203ACFC.pocket) + switch (gBagMenuState.pocket) { - case POCKET_ITEMS - 1: - gUnknown_203AD28 = 4; + case OPEN_BAG_ITEMS: + sContextMenuNumItems = 4; if (ItemIsMail(gSpecialVar_ItemId) == TRUE) - gUnknown_203AD24 = gUnknown_8452F24; + sContextMenuItemsPtr = sContextMenuItems_CheckGiveTossCancel; else - gUnknown_203AD24 = gUnknown_8452F18[gUnknown_203ACFC.pocket]; + sContextMenuItemsPtr = sContextMenuItems_Field[gBagMenuState.pocket]; break; - case POCKET_KEY_ITEMS - 1: - gUnknown_203AD24 = gUnknown_203AD20; - gUnknown_203AD28 = 3; - gUnknown_203AD20[2] = ITEMMENUACTION_CANCEL; + case OPEN_BAG_KEYITEMS: + sContextMenuItemsPtr = sContextMenuItemsBuffer; + sContextMenuNumItems = 3; + sContextMenuItemsBuffer[2] = ITEMMENUACTION_CANCEL; if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) - gUnknown_203AD20[1] = ITEMMENUACTION_DESELECT; + sContextMenuItemsBuffer[1] = ITEMMENUACTION_DESELECT; else - gUnknown_203AD20[1] = ITEMMENUACTION_REGISTER; + sContextMenuItemsBuffer[1] = ITEMMENUACTION_REGISTER; if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) - gUnknown_203AD20[0] = ITEMMENUACTION_OPEN; + sContextMenuItemsBuffer[0] = ITEMMENUACTION_OPEN; else if (gSpecialVar_ItemId == ITEM_BICYCLE && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) - gUnknown_203AD20[0] = ITEMMENUACTION_WALK; + sContextMenuItemsBuffer[0] = ITEMMENUACTION_WALK; else - gUnknown_203AD20[0] = ITEMMENUACTION_USE; + sContextMenuItemsBuffer[0] = ITEMMENUACTION_USE; break; - case POCKET_POKE_BALLS - 1: - gUnknown_203AD24 = gUnknown_8452F18[gUnknown_203ACFC.pocket]; - gUnknown_203AD28 = 3; + case OPEN_BAG_POKEBALLS: + sContextMenuItemsPtr = sContextMenuItems_Field[gBagMenuState.pocket]; + sContextMenuNumItems = 3; break; } } } - r6 = sub_810B9DC(10, gUnknown_203AD28 - 1); + r6 = ShowBagWindow(10, sContextMenuNumItems - 1); AddItemMenuActionTextPrinters( r6, 2, @@ -1425,24 +1426,24 @@ void sub_8109890(u8 taskId) 2, GetFontAttribute(2, FONTATTR_LETTER_SPACING), GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, - gUnknown_203AD28, - gUnknown_8452EB8, - gUnknown_203AD24 + sContextMenuNumItems, + sItemMenuContextActions, + sContextMenuItemsPtr ); - Menu_InitCursor(r6, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203AD28, 0); - r4 = sub_810B9DC(6, 0); + 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); - sub_810B8F0(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1); + BagPrintTextOnWindow(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1); } -void sub_8109BB8(u8 taskId) +static void Task_ItemContext_FieldOrBattle(u8 taskId) { - sub_8109890(taskId); - gTasks[taskId].func = sub_8109BE4; + OpenContextMenu(taskId); + gTasks[taskId].func = Task_FieldItemContextMenuHandleInput; } -void sub_8109BE4(u8 taskId) +static void Task_FieldItemContextMenuHandleInput(u8 taskId) { s8 input; if ((u8)sub_80BF72C() != TRUE) @@ -1452,244 +1453,244 @@ void sub_8109BE4(u8 taskId) { case -1: PlaySE(SE_SELECT); - gUnknown_8452EB8[ITEMMENUACTION_CANCEL].func.void_u8(taskId); + sItemMenuContextActions[ITEMMENUACTION_CANCEL].func.void_u8(taskId); break; case -2: break; default: PlaySE(SE_SELECT); - gUnknown_8452EB8[gUnknown_203AD24[input]].func.void_u8(taskId); + sItemMenuContextActions[sContextMenuItemsPtr[input]].func.void_u8(taskId); break; } } } -void Task_ItemMenuAction_Use(u8 taskId) +static void Task_ItemMenuAction_Use(u8 taskId) { if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) { - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) - sub_810A170(taskId); + Task_PrintThereIsNoPokemon(taskId); else ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); } } -void Task_ItemMenuAction_Toss(u8 taskId) +static void Task_ItemMenuAction_Toss(u8 taskId) { s16 *data = gTasks[taskId].data; - ClearWindowTilemap(sub_810BAD8(10)); - ClearWindowTilemap(sub_810BAD8(6)); - sub_810BA3C(10); - sub_810BA3C(6); + ClearWindowTilemap(GetBagWindow(10)); + ClearWindowTilemap(GetBagWindow(6)); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); data[8] = 1; if (data[2] == 1) { - sub_8109D38(taskId); + Task_ConfirmTossItems(taskId); } else { - sub_810971C(data[1], gText_TossOutHowManyStrVar1s); - gTasks[taskId].func = sub_8109DEC; + InitQuantityToTossOrDeposit(data[1], gText_TossOutHowManyStrVar1s); + gTasks[taskId].func = Task_SelectQuantityToToss; } } -void sub_8109D38(u8 taskId) +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); - sub_810B8F0(sub_810B9DC(6, 1), 2, gStringVar4, 0, 2, 1, 0, 0, 1); - sub_810BAE8(taskId, &gUnknown_8452F50); + BagPrintTextOnWindow(ShowBagWindow(6, 1), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + BagCreateYesNoMenuBottomRight(taskId, &sYesNoMenu_Toss); } -void sub_8109DB0(u8 taskId) +static void Task_TossItem_No(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_810BA3C(6); + HideBagWindow(6); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); bag_menu_print_cursor_(data[0], 1); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -void sub_8109DEC(u8 taskId) +static void Task_SelectQuantityToToss(u8 taskId) { s16 *data = gTasks[taskId].data; if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) { - sub_81097E4(data[8], 3); + UpdateQuantityToTossOrDeposit(data[8], 3); } else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - ClearWindowTilemap(sub_810BAD8(6)); - sub_810BA3C(6); - sub_810BA3C(0); + ClearWindowTilemap(GetBagWindow(6)); + HideBagWindow(6); + HideBagWindow(0); ScheduleBgCopyTilemapToVram(0); - sub_8108978(); - sub_8109D38(taskId); + BagDestroyPocketScrollArrowPair(); + Task_ConfirmTossItems(taskId); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_810BA3C(6); - sub_810BA3C(0); + HideBagWindow(6); + HideBagWindow(0); PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); bag_menu_print_cursor_(data[0], 1); - sub_8108978(); - sub_810910C(taskId); + BagDestroyPocketScrollArrowPair(); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } } -void sub_8109EA8(u8 taskId) +static void Task_TossItem_Yes(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_810BA3C(6); - CopyItemName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]), gStringVar1); + HideBagWindow(6); + CopyItemName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]), gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayStrVar2StrVar1s); - sub_810B8F0(sub_810B9DC(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); - gTasks[taskId].func = sub_8109F44; + BagPrintTextOnWindow(ShowBagWindow(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + gTasks[taskId].func = Task_WaitAB_RedrawAndReturnToBag; } -void sub_8109F44(u8 taskId) +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]); - sub_810BA3C(6); - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_8108DC8(gUnknown_203ACFC.pocket); - sub_81089F4(gUnknown_203ACFC.pocket); - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + 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); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } } -void Task_ItemMenuAction_ToggleSelect(u8 taskId) +static void Task_ItemMenuAction_ToggleSelect(u8 taskId) { u16 itemId; s16 *data = gTasks[taskId].data; - itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); if (gSaveBlock1Ptr->registeredItem == itemId) gSaveBlock1Ptr->registeredItem = ITEM_NONE; else gSaveBlock1Ptr->registeredItem = itemId; - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + 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); } -void Task_ItemMenuAction_Give(u8 taskId) +static void Task_ItemMenuAction_Give(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); - sub_810BA3C(10); - sub_810BA3C(6); + 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, sub_810A1D0); + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); else if (!itemid_is_unique(itemId)) { if (CalculatePlayerPartyCount() == 0) { - sub_810A170(taskId); + Task_PrintThereIsNoPokemon(taskId); } else { - gUnknown_203AD10->exitCB = CB2_ChooseMonToGiveItem; + sBagMenuDisplay->exitCB = CB2_ChooseMonToGiveItem; gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; } } else - sub_810A18C(taskId); + Task_PrintItemCantBeHeld(taskId); } -void sub_810A170(u8 taskId) +static void Task_PrintThereIsNoPokemon(u8 taskId) { - DisplayItemMessageInBag(taskId, 2, gText_ThereIsNoPokemon, sub_810A1D0); + DisplayItemMessageInBag(taskId, 2, gText_ThereIsNoPokemon, Task_WaitAButtonAndCloseContextMenu); } -void sub_810A18C(u8 taskId) +static void Task_PrintItemCantBeHeld(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld); - DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1D0); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_WaitAButtonAndCloseContextMenu); } -void sub_810A1D0(u8 taskId) +static void Task_WaitAButtonAndCloseContextMenu(u8 taskId) { if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - sub_810A1F8(taskId); + Task_ReturnToBagFromContextMenu(taskId); } } -void sub_810A1F8(u8 taskId) +void Task_ReturnToBagFromContextMenu(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_810BA9C(5); - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_8108DC8(gUnknown_203ACFC.pocket); - sub_81089F4(gUnknown_203ACFC.pocket); - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + 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); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -void sub_810A288(u8 taskId) +static void unref_sub_810A288(u8 taskId) { s16 *data = gTasks[taskId].data; u16 itemsAbove; u16 cursorPos; ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); - sub_8108818(cursorPos + itemsAbove); + PrintItemDescriptionOnMessageWindow(cursorPos + itemsAbove); PutWindowTilemap(0); ScheduleBgCopyTilemapToVram(0); bag_menu_print_cursor_(data[0], 1); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -void Task_ItemMenuAction_Cancel(u8 taskId) +static void Task_ItemMenuAction_Cancel(u8 taskId) { - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); bag_menu_print_cursor_(gTasks[taskId].data[0], 1); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -void sub_810A324(u8 taskId) +static void Task_ItemMenuAction_BattleUse(u8 taskId) { if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL) { - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 1); @@ -1697,120 +1698,120 @@ void sub_810A324(u8 taskId) } } -void sub_810A370(u8 taskId) +static void Task_ItemContext_FieldGive(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); if (!CanWriteMailHere(itemId)) { - DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, sub_810A1D0); + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); } else if (itemId == ITEM_TM_CASE) { - ItemMenu_SetExitCallback(sub_810A434); + ItemMenu_SetExitCallback(GoToTMCase_Give); ItemMenu_StartFadeToExitCallback(taskId); } else if (itemId == ITEM_BERRY_POUCH) { - ItemMenu_SetExitCallback(sub_810A448); + ItemMenu_SetExitCallback(GoToBerryPouch_Give); ItemMenu_StartFadeToExitCallback(taskId); } - else if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) + else if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) { - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; } else { - sub_810A18C(taskId); + Task_PrintItemCantBeHeld(taskId); } } -void sub_810A434(void) +static void GoToTMCase_Give(void) { - InitTMCase(1, sub_810A45C, FALSE); + InitTMCase(TMCASE_FROMPARTYGIVE, ReturnToBagMenuFromSubmenu_Give, FALSE); } -void sub_810A448(void) +static void GoToBerryPouch_Give(void) { - InitBerryPouch(1, sub_810A45C, FALSE); + InitBerryPouch(BERRYPOUCH_FROMPARTYGIVE, ReturnToBagMenuFromSubmenu_Give, FALSE); } -void sub_810A45C(void) +static void ReturnToBagMenuFromSubmenu_Give(void) { CB2_SelectBagItemToGive(); } -void sub_810A468(u8 taskId) +static void Task_ItemContext_PcBoxGive(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 itemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1]); + u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); if (ItemIsMail(itemId) == TRUE) { - DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, sub_810A1D0); + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); } else if (itemId == ITEM_TM_CASE) { - ItemMenu_SetExitCallback(sub_810A52C); + ItemMenu_SetExitCallback(GoToTMCase_PCBox); ItemMenu_StartFadeToExitCallback(taskId); } else if (itemId == ITEM_BERRY_POUCH) { - ItemMenu_SetExitCallback(sub_810A540); + ItemMenu_SetExitCallback(GoToBerryPouch_PCBox); ItemMenu_StartFadeToExitCallback(taskId); } - else if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) + else if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) { - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; } else { - sub_810A18C(taskId); + Task_PrintItemCantBeHeld(taskId); } } -void sub_810A52C(void) +static void GoToTMCase_PCBox(void) { - InitTMCase(3, sub_810A554, FALSE); + InitTMCase(TMCASE_FROMPOKEMONSTORAGEPC, ReturnToBagMenuFromSubmenu_PCBox, FALSE); } -void sub_810A540(void) +static void GoToBerryPouch_PCBox(void) { - InitBerryPouch(3, sub_810A554, FALSE); + InitBerryPouch(BERRYPOUCH_FROMPOKEMONSTORAGEPC, ReturnToBagMenuFromSubmenu_PCBox, FALSE); } -void sub_810A554(void) +static void ReturnToBagMenuFromSubmenu_PCBox(void) { - GoToBagMenu(4, 3, sub_808CE60); + GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, sub_808CE60); } -void sub_810A568(u8 taskId) +static void Task_ItemContext_Sell(u8 taskId) { s16 *data = gTasks[taskId].data; if (gSpecialVar_ItemId == ITEM_TM_CASE) { - ItemMenu_SetExitCallback(sub_810A654); + ItemMenu_SetExitCallback(GoToTMCase_Sell); ItemMenu_StartFadeToExitCallback(taskId); } else if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) { - ItemMenu_SetExitCallback(sub_810A668); + 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, sub_80BF8E4(), gStringVar4, sub_810A1F8); + DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_ReturnToBagFromContextMenu); } else { data[8] = 1; if (data[2] == 1) { - sub_810BB40(); - sub_810A690(taskId); + BagPrintMoneyAmount(); + Task_PrintSaleConfirmationText(taskId); } else { @@ -1818,191 +1819,191 @@ void sub_810A568(u8 taskId) data[2] = 99; CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); - DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A770); + DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitSaleQuantitySelectInterface); } } } -void sub_810A654(void) +static void GoToTMCase_Sell(void) { - InitTMCase(2, sub_810A67C, FALSE); + InitTMCase(TMCASE_FROMMARTSELL, ReturnToBagMenuFromSubmenu_Sell, FALSE); } -void sub_810A668(void) +static void GoToBerryPouch_Sell(void) { - InitBerryPouch(2, sub_810A67C, FALSE); + InitBerryPouch(BERRYPOUCH_FROMMARTSELL, ReturnToBagMenuFromSubmenu_Sell, FALSE); } -void sub_810A67C(void) +static void ReturnToBagMenuFromSubmenu_Sell(void) { - GoToBagMenu(2, 3, CB2_ReturnToField); + GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField); } -void sub_810A690(u8 taskId) +static void Task_PrintSaleConfirmationText(u8 taskId) { s16 *data = gTasks[taskId].data; - ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + 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, sub_80BF8E4(), gStringVar4, sub_810A70C); + DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_ShowSellYesNoMenu); } -void sub_810A70C(u8 taskId) +static void Task_ShowSellYesNoMenu(u8 taskId) { - sub_810BB14(taskId, &gUnknown_8452F58); + BagCreateYesNoMenuTopRight(taskId, &sYesNoMenu_Sell); } -void sub_810A720(u8 taskId) +static void Task_SellItem_No(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_810BA3C(2); - sub_810BA9C(5); + HideBagWindow(2); + CloseBagWindow(5); PutWindowTilemap(2); PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); bag_menu_print_cursor_(data[0], 1); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -void sub_810A770(u8 taskId) +static void Task_InitSaleQuantitySelectInterface(u8 taskId) { s16 *data = gTasks[taskId].data; - u8 r4 = sub_810B9DC(0, 1); + u8 r4 = ShowBagWindow(0, 1); ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); - sub_810B8F0(r4, 0, gStringVar4, 4, 10, 1, 0, 0xFF, 1); - sub_810A834(itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8]); - sub_810BB40(); - sub_8108908(); - gTasks[taskId].func = sub_810A85C; + 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; } -void sub_810A834(s32 amount) +static void UpdateSalePriceDisplay(s32 amount) { - PrintMoneyAmount(sub_810BAD8(0), 56, 10, amount, 0); + PrintMoneyAmount(GetBagWindow(0), 56, 10, amount, 0); } -void sub_810A85C(u8 taskId) +static void Task_SelectQuantityToSell(u8 taskId) { s16 *data = gTasks[taskId].data; if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) { - sub_81097E4(data[8], 2); - sub_810A834(itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8]); + 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); - sub_810BA3C(0); + HideBagWindow(0); PutWindowTilemap(0); ScheduleBgCopyTilemapToVram(0); - sub_8108978(); - sub_810A690(taskId); + BagDestroyPocketScrollArrowPair(); + Task_PrintSaleConfirmationText(taskId); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_810BA3C(0); - sub_810BA3C(2); - sub_810BA9C(5); + HideBagWindow(0); + HideBagWindow(2); + CloseBagWindow(5); PutWindowTilemap(2); PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); - sub_8108978(); + BagDestroyPocketScrollArrowPair(); bag_menu_print_cursor_(data[0], 1); - sub_810910C(taskId); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } } -void sub_810A940(u8 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(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + 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, sub_810A9D4); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_FinalizeSaleToShop); } -void sub_810A9D4(u8 taskId) +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], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_8108DC8(gUnknown_203ACFC.pocket); - sub_81089F4(gUnknown_203ACFC.pocket); - gUnknown_203AD10->field_05_6 = 1; - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); + 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); - sub_810BB74(sub_810BAD8(2)); - PrintMoneyAmountInMoneyBox(sub_810BAD8(2), GetMoney(&gSaveBlock1Ptr->money), 0); - gTasks[taskId].func = sub_810AAF4; + BagDrawTextBoxOnWindow(GetBagWindow(2)); + PrintMoneyAmountInMoneyBox(GetBagWindow(2), GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = Task_WaitPressAB_AfterSell; } -void sub_810AAF4(u8 taskId) +static void Task_WaitPressAB_AfterSell(u8 taskId) { if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_810BA3C(2); + HideBagWindow(2); PutWindowTilemap(2); - gUnknown_203AD10->field_05_6 = 0; - sub_810A1F8(taskId); + sBagMenuDisplay->inhibitItemDescriptionPrint = FALSE; + Task_ReturnToBagFromContextMenu(taskId); } } -void sub_810AB40(u8 taskId) +static void Task_ItemContext_Deposit(u8 taskId) { s16 *data = gTasks[taskId].data; data[8] = 1; if (data[2] == 1) { - sub_810AC40(taskId); + Task_TryDoItemDeposit(taskId); } else { - sub_810971C(data[1], gText_DepositHowManyStrVars1); - gTasks[taskId].func = sub_810AB88; + InitQuantityToTossOrDeposit(data[1], gText_DepositHowManyStrVars1); + gTasks[taskId].func = Task_SelectQuantityToDeposit; } } -void sub_810AB88(u8 taskId) +static void Task_SelectQuantityToDeposit(u8 taskId) { s16 *data = gTasks[taskId].data; if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) { - sub_81097E4(data[8], 3); + UpdateQuantityToTossOrDeposit(data[8], 3); } else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - ClearWindowTilemap(sub_810BAD8(6)); - sub_810BA3C(6); - sub_810BA3C(0); + ClearWindowTilemap(GetBagWindow(6)); + HideBagWindow(6); + HideBagWindow(0); ScheduleBgCopyTilemapToVram(0); - sub_8108978(); - sub_810AC40(taskId); + BagDestroyPocketScrollArrowPair(); + Task_TryDoItemDeposit(taskId); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_810BA3C(6); - sub_810BA3C(0); + HideBagWindow(6); + HideBagWindow(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); bag_menu_print_cursor_(data[0], 1); - sub_8108978(); - sub_810910C(taskId); + BagDestroyPocketScrollArrowPair(); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } } -void sub_810AC40(u8 taskId) +static void Task_TryDoItemDeposit(u8 taskId) { s16 *data = gTasks[taskId].data; if (AddPCItem(gSpecialVar_ItemId, data[8]) == TRUE) @@ -2011,12 +2012,12 @@ void sub_810AC40(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_DepositedStrVar2StrVar1s); - sub_810B8F0(sub_810B9DC(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); - gTasks[taskId].func = sub_8109F44; + BagPrintTextOnWindow(ShowBagWindow(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + gTasks[taskId].func = Task_WaitAB_RedrawAndReturnToBag; } else { - DisplayItemMessageInBag(taskId, 2, gText_NoRoomToStoreItems, sub_810A1D0); + DisplayItemMessageInBag(taskId, 2, gText_NoRoomToStoreItems, Task_WaitAButtonAndCloseContextMenu); } } @@ -2042,63 +2043,69 @@ bool8 UseRegisteredKeyItemOnField(void) } gSaveBlock1Ptr->registeredItem = ITEM_NONE; } - ScriptContext1_SetupScript(gUnknown_81A77A0); + ScriptContext1_SetupScript(EventScript_BagItemCanBeRegistered); return TRUE; } -bool8 sub_810ADAC(void) +static bool8 BagIsTutorial(void) { - if (gUnknown_203ACFC.location == 6 || gUnknown_203ACFC.location == 8 || gUnknown_203ACFC.location == 7 || gUnknown_203ACFC.location == 9 || gUnknown_203ACFC.location == 10) + if ( + gBagMenuState.location == ITEMMENULOCATION_OLDMAN + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_CATCHING + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_STATUS + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_REGISTER + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_TMS + ) return TRUE; return FALSE; } -void BackUpPlayerBag(void) +static void BackUpPlayerBag(void) { u32 i; - gUnknown_203AD2C = AllocZeroed(sizeof(struct BagSlots)); - memcpy(gUnknown_203AD2C->bagPocket_Items, gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot)); - memcpy(gUnknown_203AD2C->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot)); - memcpy(gUnknown_203AD2C->bagPocket_PokeBalls, gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot)); - gUnknown_203AD2C->registeredItem = gSaveBlock1Ptr->registeredItem; - gUnknown_203AD2C->pocket = gUnknown_203ACFC.pocket; + 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++) { - gUnknown_203AD2C->itemsAbove[i] = gUnknown_203ACFC.itemsAbove[i]; - gUnknown_203AD2C->cursorPos[i] = gUnknown_203ACFC.cursorPos[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; - sub_81089BC(); + ResetBagCursorPositions(); } -void RestorePlayerBag(void) +static void RestorePlayerBag(void) { u32 i; - memcpy(gSaveBlock1Ptr->bagPocket_Items, gUnknown_203AD2C->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot)); - memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, gUnknown_203AD2C->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot)); - memcpy(gSaveBlock1Ptr->bagPocket_PokeBalls, gUnknown_203AD2C->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot)); - gSaveBlock1Ptr->registeredItem = gUnknown_203AD2C->registeredItem; - gUnknown_203ACFC.pocket = gUnknown_203AD2C->pocket; + 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++) { - gUnknown_203ACFC.itemsAbove[i] = gUnknown_203AD2C->itemsAbove[i]; - gUnknown_203ACFC.cursorPos[i] = gUnknown_203AD2C->cursorPos[i]; + gBagMenuState.itemsAbove[i] = sBackupPlayerBag->itemsAbove[i]; + gBagMenuState.cursorPos[i] = sBackupPlayerBag->cursorPos[i]; } - Free(gUnknown_203AD2C); + Free(sBackupPlayerBag); } -void InitTutorialBag(void) +void InitOldManBag(void) { BackUpPlayerBag(); AddBagItem(ITEM_POTION, 1); AddBagItem(ITEM_POKE_BALL, 1); - GoToBagMenu(6, 0, SetCB2ToReshowScreenAfterMenu2); + GoToBagMenu(ITEMMENULOCATION_OLDMAN, OPEN_BAG_ITEMS, SetCB2ToReshowScreenAfterMenu2); } -void sub_810AF9C(u8 taskId) +static void Task_Bag_OldManTutorial(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) @@ -2108,53 +2115,53 @@ void sub_810AF9C(u8 taskId) case 102: case 204: PlaySE(SE_BAG2); - sub_81091D0(taskId, 1, FALSE); + SwitchPockets(taskId, 1, FALSE); break; case 306: PlaySE(SE_SELECT); bag_menu_print_cursor_(data[0], 2); - sub_8109140(1); + Bag_FillMessageBoxWithPalette(1); gSpecialVar_ItemId = ITEM_POKE_BALL; - sub_8109890(taskId); + OpenContextMenu(taskId); break; case 408: PlaySE(SE_SELECT); - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 1); DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); - sub_8108CB4(); - gTasks[taskId].func = sub_810B070; + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = Task_PokeDude_FadeFromBag; return; } data[8]++; } } -void sub_810B070(u8 taskId) +static void Task_PokeDude_FadeFromBag(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); - gTasks[taskId].func = sub_810B0AC; + gTasks[taskId].func = Task_PokeDude_WaitFadeAndExitBag; } -void sub_810B0AC(u8 taskId) +static void Task_PokeDude_WaitFadeAndExitBag(u8 taskId) { - if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE) + if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE) { - if (gUnknown_203AD10->exitCB != NULL) - SetMainCallback2(gUnknown_203AD10->exitCB); + if (sBagMenuDisplay->exitCB != NULL) + SetMainCallback2(sBagMenuDisplay->exitCB); else - SetMainCallback2(gUnknown_203ACFC.bagCallback); - sub_8108978(); - sub_8108B04(); + SetMainCallback2(gBagMenuState.bagCallback); + BagDestroyPocketScrollArrowPair(); + DestroyBagMenuResources(); DestroyTask(taskId); } } -void sub_810B108(u8 a0) +void InitPokeDudeBag(u8 a0) { MainCallback cb2; u8 location; @@ -2174,24 +2181,24 @@ void sub_810B108(u8 a0) break; case 7: cb2 = SetCB2ToReshowScreenAfterMenu2; - location = 7; + location = ITEMMENULOCATION_TTVSCR_STATUS; break; case 8: cb2 = SetCB2ToReshowScreenAfterMenu2; - location = 8; + location = ITEMMENULOCATION_TTVSCR_CATCHING; break; } - GoToBagMenu(location, POCKET_ITEMS - 1, cb2); + GoToBagMenu(location, OPEN_BAG_ITEMS, cb2); } -bool8 sub_810B180(u8 taskId) +static bool8 Task_BButtonInterruptTeachyTv(u8 taskId) { if (JOY_NEW(B_BUTTON)) { RestorePlayerBag(); SetTeachyTvControllerModeToResume(); - gUnknown_203AD10->exitCB = CB2_ReturnToTeachyTV; - gTasks[taskId].func = sub_810B070; + sBagMenuDisplay->exitCB = CB2_ReturnToTeachyTV; + gTasks[taskId].func = Task_PokeDude_FadeFromBag; return TRUE; } else @@ -2200,23 +2207,23 @@ bool8 sub_810B180(u8 taskId) } } -void sub_810B1D4(u8 taskId) +static void Task_Bag_TeachyTvRegister(u8 taskId) { s16 *data = gTasks[taskId].data; - if (!gPaletteFade.active && sub_810B180(taskId) != TRUE) + if (!gPaletteFade.active && Task_BButtonInterruptTeachyTv(taskId) != TRUE) { switch (data[8]) { case 102: PlaySE(SE_BAG2); - sub_81091D0(taskId, 1, FALSE); + SwitchPockets(taskId, 1, FALSE); break; case 204: PlaySE(SE_SELECT); bag_menu_print_cursor_(data[0], 2); - sub_8109140(1); + Bag_FillMessageBoxWithPalette(1); gSpecialVar_ItemId = ITEM_TEACHY_TV; - sub_8109890(taskId); + OpenContextMenu(taskId); break; case 306: PlaySE(SE_SELECT); @@ -2225,14 +2232,14 @@ void sub_810B1D4(u8 taskId) case 408: PlaySE(SE_SELECT); gSaveBlock1Ptr->registeredItem = gSpecialVar_ItemId; - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); - DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_810842C(gUnknown_203ACFC.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]); - sub_8109140(0); + 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; @@ -2246,20 +2253,20 @@ void sub_810B1D4(u8 taskId) PlaySE(SE_SELECT); DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); - sub_8108CB4(); - gTasks[taskId].func = sub_810B070; + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = Task_PokeDude_FadeFromBag; return; } data[8]++; } } -void sub_810B378(u8 taskId) +static void Task_Bag_TeachyTvCatching(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) { - if (sub_810B180(taskId) == TRUE) + if (Task_BButtonInterruptTeachyTv(taskId) == TRUE) { FreeRestoreBattleData(); LoadPlayerParty(); @@ -2270,7 +2277,7 @@ void sub_810B378(u8 taskId) case 102: case 204: PlaySE(SE_BAG2); - sub_81091D0(taskId, 1, FALSE); + SwitchPockets(taskId, 1, FALSE); break; case 306: case 408: @@ -2287,33 +2294,33 @@ void sub_810B378(u8 taskId) case 714: PlaySE(SE_SELECT); bag_menu_print_cursor_(data[0], 2); - sub_8109140(1); + Bag_FillMessageBoxWithPalette(1); gSpecialVar_ItemId = ITEM_POKE_BALL; - sub_8109890(taskId); + OpenContextMenu(taskId); break; case 816: PlaySE(SE_SELECT); - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 1); DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); - sub_8108CB4(); - gTasks[taskId].func = sub_810B070; + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = Task_PokeDude_FadeFromBag; return; } data[8]++; } } -void sub_810B4BC(u8 taskId) +static void Task_Bag_TeachyTvStatus(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) { - if (sub_810B180(taskId) == TRUE) + if (Task_BButtonInterruptTeachyTv(taskId) == TRUE) { FreeRestoreBattleData(); LoadPlayerParty(); @@ -2329,14 +2336,14 @@ void sub_810B4BC(u8 taskId) case 204: PlaySE(SE_SELECT); bag_menu_print_cursor_(data[0], 2); - sub_8109140(1); + Bag_FillMessageBoxWithPalette(1); gSpecialVar_ItemId = ITEM_ANTIDOTE; - sub_8109890(taskId); + OpenContextMenu(taskId); break; case 306: PlaySE(SE_SELECT); - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 1); @@ -2344,23 +2351,23 @@ void sub_810B4BC(u8 taskId) RestorePlayerBag(); gItemUseCB = ItemUseCB_MedicineStep; ItemMenu_SetExitCallback(ChooseMonForInBattleItem); - gTasks[taskId].func = sub_810B070; + gTasks[taskId].func = Task_PokeDude_FadeFromBag; return; } data[8]++; } } -void sub_810B5D4(u8 taskId) +static void Task_Bag_TeachyTvTMs(u8 taskId) { s16 *data = gTasks[taskId].data; - if (!gPaletteFade.active && sub_810B180(taskId) != TRUE) + if (!gPaletteFade.active && Task_BButtonInterruptTeachyTv(taskId) != TRUE) { switch (data[8]) { case 102: PlaySE(SE_BAG2); - sub_81091D0(taskId, 1, 0); + SwitchPockets(taskId, 1, 0); break; case 204: gMain.newKeys = 0; @@ -2370,21 +2377,21 @@ void sub_810B5D4(u8 taskId) case 306: PlaySE(SE_SELECT); bag_menu_print_cursor_(data[0], 2); - sub_8109140(1); + Bag_FillMessageBoxWithPalette(1); gSpecialVar_ItemId = ITEM_TM_CASE; - sub_8109890(taskId); + OpenContextMenu(taskId); break; case 408: PlaySE(SE_SELECT); - sub_810BA3C(10); - sub_810BA3C(6); + HideBagWindow(10); + HideBagWindow(6); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 1); DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); - gUnknown_203AD10->exitCB = PokeDude_InitTMCase; - gTasks[taskId].func = sub_810B070; + 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 3134d9f6b..12a81f53e 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(0); 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); @@ -820,7 +820,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - sub_8098660(1); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(1); 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(1); gTasks[taskId].func = Task_ItemPcMain; } diff --git a/src/item_use.c b/src/item_use.c index d5db22ca1..fc5703a75 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); } @@ -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) @@ -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); } } @@ -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/menu_helpers.c b/src/menu_helpers.c index 53b9992a2..dedd7aa9e 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -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/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..b6ec995ff 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) @@ -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..63870c86a 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); } diff --git a/src/shop.c b/src/shop.c index b410b32b9..865688928 100644 --- a/src/shop.c +++ b/src/shop.c @@ -307,7 +307,7 @@ static void Task_HandleShopMenuSell(u8 taskId) 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/teachy_tv.c b/src/teachy_tv.c index 11d4a80b1..318803d88 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; @@ -1103,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId) static void TeachyTvSetupBagItemsByOptionChosen(void) { if (sStaticResources.whichScript == TTVSCR_TMS) - sub_810B108(10); + InitPokeDudeBag(10); else - sub_810B108(9); + InitPokeDudeBag(9); } static void TeachyTvPostBattleFadeControl(u8 taskId) diff --git a/src/tm_case.c b/src/tm_case.c index 40509ed1b..3da69c412 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -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) diff --git a/sym_ewram.txt b/sym_ewram.txt index cb8a6f205..9ceae4842 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -335,36 +335,7 @@ gUnknown_203ACF0: @ 203ACF0 .align 2 .include "src/list_menu.o" .align 2 -gUnknown_203ACFC: @ 203ACFC - .space 0x14 - -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 -- cgit v1.2.3 From 4723b1df96370705a695c7600ecb20de22bb7c70 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Jan 2020 14:53:31 -0500 Subject: bag static rodata --- src/bag.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bag.c b/src/bag.c index 7f000722a..049aa9f8f 100644 --- a/src/bag.c +++ b/src/bag.c @@ -21,7 +21,7 @@ static const u8 sTextColors[][3] = { {0, 8, 9} }; -const struct WindowTemplate sDefaultBagWindowsStd[] = { +static const struct WindowTemplate sDefaultBagWindowsStd[] = { { .bg = 0, .tilemapLeft = 0x0b, @@ -49,7 +49,7 @@ const struct WindowTemplate sDefaultBagWindowsStd[] = { }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate sDefaultBagWindowsDeposit[] = { +static const struct WindowTemplate sDefaultBagWindowsDeposit[] = { { .bg = 0, .tilemapLeft = 0x0b, @@ -77,7 +77,7 @@ const struct WindowTemplate sDefaultBagWindowsDeposit[] = { }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate sWindowTemplates[] = { +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, .tilemapLeft = 24, -- cgit v1.2.3 From 23949274b62c7b4c43b3012da89831662d8de6dd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Jan 2020 14:59:40 -0500 Subject: Use IML defines in InitPokeDudeBag args --- src/teachy_tv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 318803d88..a8763333b 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -1093,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId) static void TeachyTvSetupBagItemsByOptionChosen(void) { if (sStaticResources.whichScript == TTVSCR_TMS) - InitPokeDudeBag(10); + InitPokeDudeBag(ITEMMENULOCATION_TTVSCR_TMS); else - InitPokeDudeBag(9); + InitPokeDudeBag(ITEMMENULOCATION_TTVSCR_REGISTER); } static void TeachyTvPostBattleFadeControl(u8 taskId) -- cgit v1.2.3 From c365f58833d60606b2a759b190b1f35f09f7ee66 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Jan 2020 16:19:35 -0500 Subject: Address review comments --- data/graphics.s | 4 +-- data/text/teachy_tv.inc | 6 ++-- include/constants/item_menu.h | 2 +- include/data.h | 2 +- include/graphics.h | 4 +-- include/item_menu.h | 6 ++-- include/strings.h | 6 ++-- include/tm_case.h | 2 +- src/battle_controller_pokedude.c | 2 +- src/battle_main.c | 6 ++-- src/battle_message.c | 4 +-- src/data.c | 10 +++--- src/data/trainer_graphics/back_pic_anims.h | 8 ++--- src/data/trainer_graphics/back_pic_tables.h | 4 +-- src/graphics.c | 0 src/item_menu.c | 55 +++++++++++++++-------------- src/item_pc.c | 6 ++-- src/pokemon.c | 2 +- src/teachy_tv.c | 6 ++-- src/tm_case.c | 28 +++++++-------- 20 files changed, 82 insertions(+), 81 deletions(-) create mode 100644 src/graphics.c diff --git a/data/graphics.s b/data/graphics.s index 0c7b8f341..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 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/include/constants/item_menu.h b/include/constants/item_menu.h index 2a51b8c1b..d173b9212 100644 --- a/include/constants/item_menu.h +++ b/include/constants/item_menu.h @@ -12,7 +12,7 @@ #define ITEMMENULOCATION_ITEMPC 3 #define ITEMMENULOCATION_PCBOX 4 #define ITEMMENULOCATION_BATTLE 5 -#define ITEMMENULOCATION_OLDMAN 6 +#define ITEMMENULOCATION_OLD_MAN 6 #define ITEMMENULOCATION_TTVSCR_STATUS 7 #define ITEMMENULOCATION_TTVSCR_CATCHING 8 #define ITEMMENULOCATION_TTVSCR_REGISTER 9 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/graphics.h b/include/graphics.h index 296dee465..e87acb556 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2652,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[]; @@ -4354,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[]; diff --git a/include/item_menu.h b/include/item_menu.h index 4720080da..27bd73e72 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -11,9 +11,9 @@ struct BagStruct { - void (*bagCallback)(void); + MainCallback bagCallback; u8 location; - u8 bagOpen; + bool8 bagOpen; u16 pocket; u16 itemsAbove[3]; u16 cursorPos[3]; @@ -28,7 +28,7 @@ void sub_81AAC50(void); void sub_81AAC70(void); void CB2_SetUpReshowBattleScreenAfterMenu(void); void ResetBagCursorPositions(void); -void InitPokeDudeBag(u8); +void InitPokedudeBag(u8); void CB2_BagMenuFromStartMenu(void); void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_); void ItemMenu_StartFadeToExitCallback(u8 taskId); diff --git a/include/strings.h b/include/strings.h index 6241bd8a9..7e8a4fbb4 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[]; diff --git a/include/tm_case.h b/include/tm_case.h index bb88fc4d1..22fb021e0 100644 --- a/include/tm_case.h +++ b/include/tm_case.h @@ -13,6 +13,6 @@ enum TmCaseType 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/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index b9df7e1ed..d8ebe5ba4 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -742,7 +742,7 @@ static void OpenBagAndChooseItem(void) callbackId = ITEMMENULOCATION_TTVSCR_CATCHING; break; } - InitPokeDudeBag(callbackId); + InitPokedudeBag(callbackId); } } diff --git a/src/battle_main.c b/src/battle_main.c index 9f3477659..15c264369 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 568682031..5bc0f113f 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/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/graphics.c b/src/graphics.c new file mode 100644 index 000000000..e69de29bb diff --git a/src/item_menu.c b/src/item_menu.c index 467ff4c6b..ffba2eae9 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -152,8 +152,8 @@ 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_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); @@ -276,7 +276,7 @@ static const TaskFunc sItemContextTaskFuncs[] = { [ITEMMENULOCATION_ITEMPC] = Task_ItemContext_Deposit, [ITEMMENULOCATION_PCBOX] = Task_ItemContext_PcBoxGive, [ITEMMENULOCATION_BATTLE] = Task_ItemContext_FieldOrBattle, - [ITEMMENULOCATION_OLDMAN] = NULL + [ITEMMENULOCATION_OLD_MAN] = NULL }; static const struct YesNoFuncTable sYesNoMenu_Toss = { @@ -331,7 +331,7 @@ void GoToBagMenu(u8 location, u8 pocket, MainCallback bagCallback) sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF; if (location == ITEMMENULOCATION_ITEMPC) sBagMenuDisplay->pocketSwitchMode = 1; - else if (location == ITEMMENULOCATION_OLDMAN) + else if (location == ITEMMENULOCATION_OLD_MAN) sBagMenuDisplay->pocketSwitchMode = 2; else sBagMenuDisplay->pocketSwitchMode = 0; @@ -609,7 +609,7 @@ static u8 CreateBagInputHandlerTask(u8 location) { switch (location) { - case ITEMMENULOCATION_OLDMAN: + case ITEMMENULOCATION_OLD_MAN: return CreateTask(Task_Bag_OldManTutorial, 0); case ITEMMENULOCATION_TTVSCR_REGISTER: return CreateTask(Task_Bag_TeachyTvRegister, 0); @@ -626,10 +626,11 @@ static u8 CreateBagInputHandlerTask(u8 location) static bool8 TryAllocListMenuBuffers(void) { - sListMenuItems = Alloc(43 * sizeof(struct ListMenuItem)); + // 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(43 * 19); + sListMenuItemStrings = Alloc((BAG_ITEMS_COUNT + 1) * sizeof(*sListMenuItemStrings)); if (sListMenuItemStrings == NULL) return FALSE; return TRUE; @@ -835,7 +836,7 @@ void ResetBagCursorPositions(void) { u8 i; gBagMenuState.pocket = POCKET_ITEMS - 1; - gBagMenuState.bagOpen = 0; + gBagMenuState.bagOpen = FALSE; for (i = 0; i < 3; i++) { gBagMenuState.itemsAbove[i] = 0; @@ -923,10 +924,10 @@ static void ShowBagOrBeginWin0OpenTask(void) LoadPalette(&paldata, 0x00, 0x02); SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0x3F); + 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 == 1) + if (gBagMenuState.bagOpen == TRUE) { SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 0)); @@ -938,7 +939,7 @@ static void ShowBagOrBeginWin0OpenTask(void) taskId = CreateTask(Task_AnimateWin0v, 0); gTasks[taskId].data[0] = 192; gTasks[taskId].data[1] = -16; - gBagMenuState.bagOpen = 1; + gBagMenuState.bagOpen = TRUE; } } @@ -948,12 +949,12 @@ void Bag_BeginCloseWin0Animation(void) u8 taskId = CreateTask(Task_AnimateWin0v, 0); gTasks[taskId].data[0] = -16; gTasks[taskId].data[1] = 16; - gBagMenuState.bagOpen = 0; + gBagMenuState.bagOpen = FALSE; } void CB2_SetUpReshowBattleScreenAfterMenu(void) { - gBagMenuState.bagOpen = 0; + gBagMenuState.bagOpen = FALSE; } static void Task_AnimateWin0v(u8 taskId) @@ -1363,7 +1364,7 @@ static void OpenContextMenu(u8 taskId) sContextMenuNumItems = 1; } break; - case ITEMMENULOCATION_OLDMAN: + case ITEMMENULOCATION_OLD_MAN: case ITEMMENULOCATION_TTVSCR_CATCHING: sContextMenuItemsPtr = sContextMenuItems_BattleUse; sContextMenuNumItems = 2; @@ -2050,7 +2051,7 @@ bool8 UseRegisteredKeyItemOnField(void) static bool8 BagIsTutorial(void) { if ( - gBagMenuState.location == ITEMMENULOCATION_OLDMAN + gBagMenuState.location == ITEMMENULOCATION_OLD_MAN || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_CATCHING || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_STATUS || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_REGISTER @@ -2102,7 +2103,7 @@ void InitOldManBag(void) BackUpPlayerBag(); AddBagItem(ITEM_POTION, 1); AddBagItem(ITEM_POKE_BALL, 1); - GoToBagMenu(ITEMMENULOCATION_OLDMAN, OPEN_BAG_ITEMS, SetCB2ToReshowScreenAfterMenu2); + GoToBagMenu(ITEMMENULOCATION_OLD_MAN, OPEN_BAG_ITEMS, SetCB2ToReshowScreenAfterMenu2); } static void Task_Bag_OldManTutorial(u8 taskId) @@ -2134,20 +2135,20 @@ static void Task_Bag_OldManTutorial(u8 taskId) DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); Bag_BeginCloseWin0Animation(); - gTasks[taskId].func = Task_PokeDude_FadeFromBag; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; return; } data[8]++; } } -static void Task_PokeDude_FadeFromBag(u8 taskId) +static void Task_Pokedude_FadeFromBag(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); - gTasks[taskId].func = Task_PokeDude_WaitFadeAndExitBag; + gTasks[taskId].func = Task_Pokedude_WaitFadeAndExitBag; } -static void Task_PokeDude_WaitFadeAndExitBag(u8 taskId) +static void Task_Pokedude_WaitFadeAndExitBag(u8 taskId) { if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE) { @@ -2161,7 +2162,7 @@ static void Task_PokeDude_WaitFadeAndExitBag(u8 taskId) } } -void InitPokeDudeBag(u8 a0) +void InitPokedudeBag(u8 a0) { MainCallback cb2; u8 location; @@ -2198,7 +2199,7 @@ static bool8 Task_BButtonInterruptTeachyTv(u8 taskId) RestorePlayerBag(); SetTeachyTvControllerModeToResume(); sBagMenuDisplay->exitCB = CB2_ReturnToTeachyTV; - gTasks[taskId].func = Task_PokeDude_FadeFromBag; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; return TRUE; } else @@ -2254,7 +2255,7 @@ static void Task_Bag_TeachyTvRegister(u8 taskId) DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); Bag_BeginCloseWin0Animation(); - gTasks[taskId].func = Task_PokeDude_FadeFromBag; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; return; } data[8]++; @@ -2308,7 +2309,7 @@ static void Task_Bag_TeachyTvCatching(u8 taskId) DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); Bag_BeginCloseWin0Animation(); - gTasks[taskId].func = Task_PokeDude_FadeFromBag; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; return; } data[8]++; @@ -2351,7 +2352,7 @@ static void Task_Bag_TeachyTvStatus(u8 taskId) RestorePlayerBag(); gItemUseCB = ItemUseCB_MedicineStep; ItemMenu_SetExitCallback(ChooseMonForInBattleItem); - gTasks[taskId].func = Task_PokeDude_FadeFromBag; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; return; } data[8]++; @@ -2390,8 +2391,8 @@ static void Task_Bag_TeachyTvTMs(u8 taskId) CopyWindowToVram(0, 1); DestroyListMenuTask(data[0], NULL, NULL); RestorePlayerBag(); - sBagMenuDisplay->exitCB = PokeDude_InitTMCase; - gTasks[taskId].func = Task_PokeDude_FadeFromBag; + sBagMenuDisplay->exitCB = Pokedude_InitTMCase; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; return; } data[8]++; diff --git a/src/item_pc.c b/src/item_pc.c index 12a81f53e..7c7abdce3 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -781,7 +781,7 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) FillWindowPixelBuffer(1, 0x00); ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0); ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(0); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); ItemPc_PrintOrRemoveCursor(data[0], 2); gTasks[taskId].func = Task_ItemPcMoveItemModeRun; } @@ -820,7 +820,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(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); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(1); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } diff --git a/src/pokemon.c b/src/pokemon.c index 1270a25ed..5b715133b 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, }, diff --git a/src/teachy_tv.c b/src/teachy_tv.c index a8763333b..1467131b0 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -795,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]; } @@ -1093,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId) static void TeachyTvSetupBagItemsByOptionChosen(void) { if (sStaticResources.whichScript == TTVSCR_TMS) - InitPokeDudeBag(ITEMMENULOCATION_TTVSCR_TMS); + InitPokedudeBag(ITEMMENULOCATION_TTVSCR_TMS); else - InitPokeDudeBag(ITEMMENULOCATION_TTVSCR_REGISTER); + InitPokedudeBag(ITEMMENULOCATION_TTVSCR_REGISTER); } static void TeachyTvPostBattleFadeControl(u8 taskId) diff --git a/src/tm_case.c b/src/tm_case.c index 3da69c412..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; @@ -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); -- cgit v1.2.3 From 44337a41dbfcc4d2fe5f1e22cd87769a27c006c9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Jan 2020 20:23:15 -0500 Subject: through TryBecomeLinkLeader --- asm/union_room.s | 237 ------------------------------------------------------- ld_script.txt | 1 + src/union_room.c | 79 +++++++++++++++++++ 3 files changed, 80 insertions(+), 237 deletions(-) create mode 100644 src/union_room.c diff --git a/asm/union_room.s b/asm/union_room.s index cd549c173..222ecaa7a 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,243 +5,6 @@ .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} diff --git a/ld_script.txt b/ld_script.txt index 016793dc9..9d476e13a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -241,6 +241,7 @@ SECTIONS { src/mailbox_pc.o(.text); src/menu.o(.text); src/quest_log.o(.text); + src/union_room.o(.text); asm/union_room.o(.text); asm/union_room_player_avatar.o(.text); asm/pokemon_special_anim.o(.text); diff --git a/src/union_room.c b/src/union_room.c new file mode 100644 index 000000000..070c43a09 --- /dev/null +++ b/src/union_room.c @@ -0,0 +1,79 @@ +#include "global.h" +#include "gflib.h" +#include "event_data.h" +#include "link_rfu.h" +#include "task.h" +#include "union_room.h" + +EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; + +IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024; + +void sub_8115A68(u8 taskId); +u16 sub_8118658(const u8 *data); +void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); + +extern const u8 *const gUnknown_845742C[][5]; +extern const u8 gUnknown_84571B4[]; +extern const u8 gUnknown_8457234[]; + +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); +} + +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, sub_8118658(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); + StringAppend(text2, text); + sub_811A444(windowId, 0, text2, 0, 0x10, 0); +} + +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); + gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_3002024 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + gSpecialVar_Result = 0; +} -- cgit v1.2.3 From 2cd1460cc5910a78cd25929692cf12646fd7d4b7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 19 Jan 2020 21:48:48 -0500 Subject: Document Fuchsia City scripts --- data/event_scripts.s | 44 +++---- data/layouts/FuchsiaCity_Building1/border.bin | Bin 8 -> 0 bytes data/layouts/FuchsiaCity_Building1/map.bin | 1 - .../FuchsiaCity_SafariZone_Office/border.bin | Bin 0 -> 8 bytes data/layouts/FuchsiaCity_SafariZone_Office/map.bin | 1 + data/layouts/FuchsiaCity_WardensHouse/border.bin | Bin 0 -> 8 bytes data/layouts/FuchsiaCity_WardensHouse/map.bin | 1 + data/layouts/FuchsiaCity_ZooBuilding/border.bin | Bin 8 -> 0 bytes data/layouts/FuchsiaCity_ZooBuilding/map.bin | 1 - data/layouts/layouts.json | 16 +-- data/maps/FuchsiaCity/map.json | 36 +++--- data/maps/FuchsiaCity/scripts.inc | 83 ++++++------ data/maps/FuchsiaCity/text.inc | 39 +++--- data/maps/FuchsiaCity_Building1/map.json | 123 ------------------ data/maps/FuchsiaCity_Building1/scripts.inc | 63 ---------- data/maps/FuchsiaCity_Building1/text.inc | 64 ---------- data/maps/FuchsiaCity_Gym/map.json | 20 +-- data/maps/FuchsiaCity_Gym/scripts.inc | 82 ++++++------ data/maps/FuchsiaCity_Gym/text.inc | 58 ++++----- data/maps/FuchsiaCity_House1/map.json | 6 +- data/maps/FuchsiaCity_House1/scripts.inc | 12 +- data/maps/FuchsiaCity_House1/text.inc | 6 +- data/maps/FuchsiaCity_House2/map.json | 2 +- data/maps/FuchsiaCity_House2/scripts.inc | 28 ++--- data/maps/FuchsiaCity_House2/text.inc | 14 +-- data/maps/FuchsiaCity_House3/map.json | 2 +- data/maps/FuchsiaCity_House3/scripts.inc | 50 ++++---- data/maps/FuchsiaCity_House3/text.inc | 16 +-- data/maps/FuchsiaCity_Mart/map.json | 6 +- data/maps/FuchsiaCity_Mart/scripts.inc | 14 +-- data/maps/FuchsiaCity_Mart/text.inc | 4 +- data/maps/FuchsiaCity_PokemonCenter_1F/map.json | 8 +- data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc | 14 +-- data/maps/FuchsiaCity_PokemonCenter_1F/text.inc | 6 +- data/maps/FuchsiaCity_SafariZone_Entrance/map.json | 8 +- .../FuchsiaCity_SafariZone_Entrance/scripts.inc | 139 +++++++++++---------- data/maps/FuchsiaCity_SafariZone_Entrance/text.inc | 28 ++--- data/maps/FuchsiaCity_SafariZone_Office/map.json | 94 ++++++++++++++ .../maps/FuchsiaCity_SafariZone_Office/scripts.inc | 18 +++ data/maps/FuchsiaCity_SafariZone_Office/text.inc | 25 ++++ data/maps/FuchsiaCity_WardensHouse/map.json | 123 ++++++++++++++++++ data/maps/FuchsiaCity_WardensHouse/scripts.inc | 63 ++++++++++ data/maps/FuchsiaCity_WardensHouse/text.inc | 65 ++++++++++ data/maps/FuchsiaCity_ZooBuilding/map.json | 94 -------------- data/maps/FuchsiaCity_ZooBuilding/scripts.inc | 18 --- data/maps/FuchsiaCity_ZooBuilding/text.inc | 25 ---- data/maps/map_groups.json | 4 +- data/scripts/fame_checker.inc | 4 +- data/scripts/item_ball_scripts.inc | 2 +- data/text/fame_checker.inc | 2 +- include/battle.h | 1 - include/constants/flags.h | 2 +- include/constants/global.h | 2 + include/constants/layouts.h | 4 +- include/constants/map_groups.h | 4 +- include/event_scripts.h | 8 +- src/field_specials.c | 2 +- src/safari_zone.c | 8 +- 58 files changed, 785 insertions(+), 778 deletions(-) delete mode 100644 data/layouts/FuchsiaCity_Building1/border.bin delete mode 100644 data/layouts/FuchsiaCity_Building1/map.bin create mode 100644 data/layouts/FuchsiaCity_SafariZone_Office/border.bin create mode 100644 data/layouts/FuchsiaCity_SafariZone_Office/map.bin create mode 100644 data/layouts/FuchsiaCity_WardensHouse/border.bin create mode 100644 data/layouts/FuchsiaCity_WardensHouse/map.bin delete mode 100644 data/layouts/FuchsiaCity_ZooBuilding/border.bin delete mode 100644 data/layouts/FuchsiaCity_ZooBuilding/map.bin delete mode 100644 data/maps/FuchsiaCity_Building1/map.json delete mode 100644 data/maps/FuchsiaCity_Building1/scripts.inc delete mode 100644 data/maps/FuchsiaCity_Building1/text.inc create mode 100644 data/maps/FuchsiaCity_SafariZone_Office/map.json create mode 100644 data/maps/FuchsiaCity_SafariZone_Office/scripts.inc create mode 100644 data/maps/FuchsiaCity_SafariZone_Office/text.inc create mode 100644 data/maps/FuchsiaCity_WardensHouse/map.json create mode 100644 data/maps/FuchsiaCity_WardensHouse/scripts.inc create mode 100644 data/maps/FuchsiaCity_WardensHouse/text.inc delete mode 100644 data/maps/FuchsiaCity_ZooBuilding/map.json delete mode 100644 data/maps/FuchsiaCity_ZooBuilding/scripts.inc delete mode 100644 data/maps/FuchsiaCity_ZooBuilding/text.inc diff --git a/data/event_scripts.s b/data/event_scripts.s index f1d28077f..9d3a0a6c2 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -395,12 +395,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" @@ -710,11 +710,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" @@ -2325,54 +2325,54 @@ EventScript_1B2DF6:: @ 81B2DF6 @@ Block below consists of at least safari_zone.inc and flavor_text.inc. JP text making it hard to define boundaries -EventScript_SafariWarpOut:: @ 81BFB87 +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 -EventScript_1BFB98:: @ 81BFB98 +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 -EventScript_SafariRetire:: @ 81BFBAA +SafariZone_EventScript_RetirePrompt:: @ 81BFBAA lockall - msgbox Text_1BFBE9, MSGBOX_YESNO + msgbox SafariZone_Text_WouldYouLikeToExit, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_1BFBC0 + goto_if_eq SafariZone_EventScript_Retire releaseall end -EventScript_1BFBC0:: @ 81BFBC0 - goto EventScript_1BFB98 +SafariZone_EventScript_Retire:: @ 81BFBC0 + goto SafariZone_EventScript_Exit -EventScript_SafariTimesUp:: @ 81BFBC5 +SafariZone_EventScript_TimesUp:: @ 81BFBC5 lockall playse SE_PINPON - msgbox gUnknown_81BFC1B - goto EventScript_1BFB98 + msgbox SafariZone_Text_TimesUp + goto SafariZone_EventScript_Exit end -EventScript_SafariOutOfBalls:: @ 81BFBD7 +SafariZone_EventScript_OutOfBalls:: @ 81BFBD7 lockall playse SE_PINPON - msgbox gUnknown_81BFC53 - goto EventScript_1BFB98 + msgbox SafariZone_Text_OutOfBalls + goto SafariZone_EventScript_Exit end -Text_1BFBE9:: @ 81BFBE9 +SafariZone_Text_WouldYouLikeToExit:: @ 81BFBE9 .string "Would you like to exit the SAFARI\n" .string "ZONE right now?$" -gUnknown_81BFC1B:: @ 81BFC1B +SafariZone_Text_TimesUp:: @ 81BFC1B .string "PA: Ding-dong!\p" .string "Time's up!\p" .string "PA: Your SAFARI GAME is over!$" -gUnknown_81BFC53:: @ 81BFC53 +SafariZone_Text_OutOfBalls:: @ 81BFC53 .string "PA: Ding-dong!\p" .string "You are out of SAFARI BALLS!\p" .string "PA: Your SAFARI GAME is over!$" @@ -2433,7 +2433,7 @@ Text_1BFE70:: @ 81BFE70 .string "ぞんぶんに おたのしみ ください!\n" .string "では いってらっしゃい!$" -gUnknown_81BFEAC:: @ 81BFEAC +SafariZone_Text_ExcuseMeYourPCBoxIsFull:: @ 81BFEAC .string "Excuse me!\n" .string "Your PC BOX is full.$" @@ -2597,7 +2597,7 @@ Text_1C049D:: @ 81C049D .string "ミナモへ かえるか?$" Text_1C04BB:: @ 81C04BB - .string "ùÏ! ÉÇñÑ ÒñÉ!$" + .string "よし! かえると するか!$" Text_1C04C9:: @ 81C04C9 .string "そうかい\n" diff --git a/data/layouts/FuchsiaCity_Building1/border.bin b/data/layouts/FuchsiaCity_Building1/border.bin deleted file mode 100644 index a886cd764..000000000 Binary files a/data/layouts/FuchsiaCity_Building1/border.bin and /dev/null differ diff --git a/data/layouts/FuchsiaCity_Building1/map.bin b/data/layouts/FuchsiaCity_Building1/map.bin deleted file mode 100644 index 4efd7d891..000000000 --- a/data/layouts/FuchsiaCity_Building1/map.bin +++ /dev/null @@ -1 +0,0 @@ -M1N1M1N11111111111 1 1 12222 1 1222rf 1#1%1 1zn 131222251 11s1 1 1 1 1 1 1 1 1 11111 1 1 1 1 1 1 1 1 1 1 1 1V1 1 1 1 1 1 1 1 1 1 1 1U1^ 1 1 1 1?1G1O1 1 1 1 1] \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_SafariZone_Office/border.bin b/data/layouts/FuchsiaCity_SafariZone_Office/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_SafariZone_Office/border.bin differ diff --git a/data/layouts/FuchsiaCity_SafariZone_Office/map.bin b/data/layouts/FuchsiaCity_SafariZone_Office/map.bin new file mode 100644 index 000000000..d18ddbd61 --- /dev/null +++ b/data/layouts/FuchsiaCity_SafariZone_Office/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_WardensHouse/border.bin b/data/layouts/FuchsiaCity_WardensHouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_WardensHouse/border.bin differ diff --git a/data/layouts/FuchsiaCity_WardensHouse/map.bin b/data/layouts/FuchsiaCity_WardensHouse/map.bin new file mode 100644 index 000000000..4efd7d891 --- /dev/null +++ b/data/layouts/FuchsiaCity_WardensHouse/map.bin @@ -0,0 +1 @@ +M1N1M1N11111111111 1 1 12222 1 1222rf 1#1%1 1zn 131222251 11s1 1 1 1 1 1 1 1 1 11111 1 1 1 1 1 1 1 1 1 1 1 1V1 1 1 1 1 1 1 1 1 1 1 1U1^ 1 1 1 1?1G1O1 1 1 1 1] \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_ZooBuilding/border.bin b/data/layouts/FuchsiaCity_ZooBuilding/border.bin deleted file mode 100644 index a886cd764..000000000 Binary files a/data/layouts/FuchsiaCity_ZooBuilding/border.bin and /dev/null differ diff --git a/data/layouts/FuchsiaCity_ZooBuilding/map.bin b/data/layouts/FuchsiaCity_ZooBuilding/map.bin deleted file mode 100644 index d18ddbd61..000000000 --- a/data/layouts/FuchsiaCity_ZooBuilding/map.bin +++ /dev/null @@ -1 +0,0 @@ -2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 04727aaa7..3df335ce6 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -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", 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/map.json b/data/maps/FuchsiaCity_Building1/map.json deleted file mode 100644 index 763dfb3e8..000000000 --- a/data/maps/FuchsiaCity_Building1/map.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "id": "MAP_FUCHSIA_CITY_BUILDING1", - "name": "FuchsiaCity_Building1", - "layout": "LAYOUT_FUCHSIA_CITY_BUILDING1", - "music": "MUS_HANADA", - "region_map_section": "MAPSEC_FUCHSIA_CITY", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_8", - "unknown_18": 0, - "unknown_19": 0, - "elevator_flag": 0, - "battle_scene": "BATTLE_SCENE_0", - "connections": null, - "object_events": [ - { - "graphics_id": "OBJECT_EVENT_GFX_OLD_MAN_2", - "x": 3, - "y": 5, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Building1_EventScript_16D74C", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_STRENGTH_BOULDER", - "x": 11, - "y": 6, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "EventScript_InteractWithStrengthBoulderObject", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_ITEM_BALL", - "x": 11, - "y": 5, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "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" - }, - { - "graphics_id": "0", - "x": 4, - "y": 1, - "elevation": 0, - "movement_type": "MOVEMENT_TYPE_INVISIBLE", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Building1_EventScript_1ACEB8", - "flag": "FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL" - } - ], - "warp_events": [ - { - "x": 5, - "y": 10, - "elevation": 0, - "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 - }, - { - "x": 6, - "y": 9, - "elevation": 3, - "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 - }, - { - "x": 7, - "y": 10, - "elevation": 0, - "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 - } - ], - "coord_events": [], - "bg_events": [ - { - "type": "bg_event_type_0", - "x": 7, - "y": 4, - "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D80D" - }, - { - "type": "bg_event_type_0", - "x": 4, - "y": 4, - "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D804" - }, - { - "type": "bg_event_type_0", - "x": 5, - "y": 4, - "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D804" - }, - { - "type": "bg_event_type_0", - "x": 6, - "y": 4, - "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D80D" - } - ] -} 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_Building1/text.inc b/data/maps/FuchsiaCity_Building1/text.inc deleted file mode 100644 index dd4069e1f..000000000 --- a/data/maps/FuchsiaCity_Building1/text.inc +++ /dev/null @@ -1,64 +0,0 @@ -gUnknown_8198DF9:: @ 8198DF9 - .string "WARDEN: Hif fuff hefifoo!\p" - .string "Ha lof ha feef ee hafahi ho.\n" - .string "Heff hee fwee!$" - -gUnknown_8198E3F:: @ 8198E3F - .string "Ah howhee ho hoo!\n" - .string "Eef ee hafahi ho!$" - -gUnknown_8198E63:: @ 8198E63 - .string "Ha?\n" - .string "He ohay heh ha hoo ee haheh!$" - -Text_198E84:: @ 8198E84 - .string "{PLAYER} gave the GOLD TEETH\n" - .string "to the WARDEN.$" - -gUnknown_8198EAA:: @ 8198EAA - .string "The WARDEN popped in his teeth!$" - -gUnknown_8198ECA:: @ 8198ECA - .string "WARDEN: Thanks, son!\n" - .string "You're a real lifesaver!\p" - .string "No one could understand a word\n" - .string "that I said, not a one!\p" - .string "I was too ashamed to show my face\n" - .string "around the OFFICE, even.\p" - .string "Let me give you something for your\n" - .string "trouble.$" - -gUnknown_8198F96:: @ 8198F96 - .string "WARDEN: Thank you, lassie!\n" - .string "You're a real lifesaver!\p" - .string "No one could understand a word\n" - .string "that I said, not a one!\p" - .string "I was too ashamed to show my face\n" - .string "around the OFFICE, even.\p" - .string "Let me give you something for your\n" - .string "trouble.$" - -gUnknown_8199068:: @ 8199068 - .string "{PLAYER} received HM04\n" - .string "from the WARDEN.$" - -gUnknown_819908A:: @ 819908A - .string "WARDEN: Inside HM04 you'll find\n" - .string "STRENGTH.\p" - .string "It lets POKéMON move boulders when\n" - .string "you're outside of battle.\p" - .string "Oh yes, did you find the SECRET\n" - .string "HOUSE in the SAFARI ZONE?$" - -Text_19912B:: @ 819912B - .string "なんや にもつ\n" - .string "いっぱいやんけ!$" - -gUnknown_819913C:: @ 819913C - .string "POKéMON photos and fossils are on\n" - .string "display.$" - -gUnknown_8199167:: @ 8199167 - .string "Old POKéMON merchandise is on\n" - .string "display.$" - 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_SafariZone_Office/map.json b/data/maps/FuchsiaCity_SafariZone_Office/map.json new file mode 100644 index 000000000..be1abfced --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Office/map.json @@ -0,0 +1,94 @@ +{ + "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, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker2", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker3", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker1", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", + "x": 10, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker4", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 3 + }, + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} 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_SafariZone_Office/text.inc b/data/maps/FuchsiaCity_SafariZone_Office/text.inc new file mode 100644 index 000000000..0fedd07d6 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Office/text.inc @@ -0,0 +1,25 @@ +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.$" + +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.$" + +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!$" + +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" + .string "of the SAFARI ZONE.\p" + .string "If you can make it, you'll win a\n" + .string "very convenient prize.$" + diff --git a/data/maps/FuchsiaCity_WardensHouse/map.json b/data/maps/FuchsiaCity_WardensHouse/map.json new file mode 100644 index 000000000..00f33363c --- /dev/null +++ b/data/maps/FuchsiaCity_WardensHouse/map.json @@ -0,0 +1,123 @@ +{ + "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, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "OBJECT_EVENT_GFX_OLD_MAN_2", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_WardensHouse_EventScript_Warden", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_STRENGTH_BOULDER", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "EventScript_InteractWithStrengthBoulderObject", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_WardensHouse_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY" + }, + { + "graphics_id": "0", + "x": 4, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga", + "flag": "FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL" + } + ], + "warp_events": [ + { + "x": 5, + "y": 10, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 1 + }, + { + "x": 7, + "y": 10, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 7, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 4, + "elevation": 0, + "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_WardensHouse/text.inc b/data/maps/FuchsiaCity_WardensHouse/text.inc new file mode 100644 index 000000000..b3f4b7b35 --- /dev/null +++ b/data/maps/FuchsiaCity_WardensHouse/text.inc @@ -0,0 +1,65 @@ +FuchsiaCity_WardensHouse_Text_HifFuffHefifoo:: @ 8198DF9 + .string "WARDEN: Hif fuff hefifoo!\p" + .string "Ha lof ha feef ee hafahi ho.\n" + .string "Heff hee fwee!$" + +FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo:: @ 8198E3F + .string "Ah howhee ho hoo!\n" + .string "Eef ee hafahi ho!$" + +FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo:: @ 8198E63 + .string "Ha?\n" + .string "He ohay heh ha hoo ee haheh!$" + +FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden:: @ 8198E84 + .string "{PLAYER} gave the GOLD TEETH\n" + .string "to the WARDEN.$" + +FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth:: @ 8198EAA + .string "The WARDEN popped in his teeth!$" + +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" + .string "that I said, not a one!\p" + .string "I was too ashamed to show my face\n" + .string "around the OFFICE, even.\p" + .string "Let me give you something for your\n" + .string "trouble.$" + +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" + .string "that I said, not a one!\p" + .string "I was too ashamed to show my face\n" + .string "around the OFFICE, even.\p" + .string "Let me give you something for your\n" + .string "trouble.$" + +FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden:: @ 8199068 + .string "{PLAYER} received HM04\n" + .string "from the WARDEN.$" + +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" + .string "you're outside of battle.\p" + .string "Oh yes, did you find the SECRET\n" + .string "HOUSE in the SAFARI ZONE?$" + +@ Unused +FuchsiaCity_WardensHouse_Text_YouHaveTooMuchStuff:: @ 819912B + .string "なんや にもつ\n" + .string "いっぱいやんけ!$" + +FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay:: @ 819913C + .string "POKéMON photos and fossils are on\n" + .string "display.$" + +FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay:: @ 8199167 + .string "Old POKéMON merchandise is on\n" + .string "display.$" + diff --git a/data/maps/FuchsiaCity_ZooBuilding/map.json b/data/maps/FuchsiaCity_ZooBuilding/map.json deleted file mode 100644 index a4cf1b1a0..000000000 --- a/data/maps/FuchsiaCity_ZooBuilding/map.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "id": "MAP_FUCHSIA_CITY_ZOO_BUILDING", - "name": "FuchsiaCity_ZooBuilding", - "layout": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING", - "music": "MUS_HANADA", - "region_map_section": "MAPSEC_FUCHSIA_CITY", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_8", - "unknown_18": 0, - "unknown_19": 0, - "elevator_flag": 0, - "battle_scene": "BATTLE_SCENE_0", - "connections": null, - "object_events": [ - { - "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", - "x": 2, - "y": 2, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_UP", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D532", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", - "x": 12, - "y": 3, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D53B", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", - "x": 6, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D529", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_WORKER_M", - "x": 10, - "y": 8, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_LEFT", - "movement_range_x": 2, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D544", - "flag": "0" - } - ], - "warp_events": [ - { - "x": 5, - "y": 9, - "elevation": 0, - "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 - }, - { - "x": 6, - "y": 9, - "elevation": 0, - "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 - }, - { - "x": 7, - "y": 9, - "elevation": 3, - "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 - } - ], - "coord_events": [], - "bg_events": [] -} 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/FuchsiaCity_ZooBuilding/text.inc b/data/maps/FuchsiaCity_ZooBuilding/text.inc deleted file mode 100644 index 36b7e8a3e..000000000 --- a/data/maps/FuchsiaCity_ZooBuilding/text.inc +++ /dev/null @@ -1,25 +0,0 @@ -gUnknown_819816B:: @ 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 - .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 - .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 - .string "WARDEN SLOWPOKE is running a\n" - .string "promotion campaign right now.\p" - .string "Try to get to the farthest corner\n" - .string "of the SAFARI ZONE.\p" - .string "If you can make it, you'll win a\n" - .string "very convenient prize.$" - diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index b89b112a4..6f233a697 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -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/fame_checker.inc b/data/scripts/fame_checker.inc index 0d058b2d5..7868df34f 100644 --- a/data/scripts/fame_checker.inc +++ b/data/scripts/fame_checker.inc @@ -101,12 +101,12 @@ 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 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/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/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/constants/flags.h b/include/constants/flags.h index 982c90fcc..2f03573ab 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -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..9aee27d8e 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -59,6 +59,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/layouts.h b/include/constants/layouts.h index a9d40220f..d0454a0ad 100644 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -182,8 +182,8 @@ #define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF 197 #define LAYOUT_SAFARI_ZONE_BUILDING 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 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index 4d37b0dc8..a43ae78d0 100644 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -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/event_scripts.h b/include/event_scripts.h index b5e355484..468b965d0 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[]; 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/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); } -- cgit v1.2.3 From c99c454c3a36e0ccb0b9d568571f96f6da5130a6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 20 Jan 2020 00:59:48 -0500 Subject: Split unused Hoenn scripts --- data/event_scripts.s | 754 +------------------------------------ data/scripts/flavor_text.inc | 113 ++++++ data/scripts/safari_zone.inc | 37 ++ data/text/berries.inc | 226 +++++++++++ data/text/competitive_brothers.inc | 39 ++ data/text/eon_ticket.inc | 44 +++ data/text/flavor_text.inc | 122 ++++++ data/text/safari_zone.inc | 168 +++++++++ 8 files changed, 756 insertions(+), 747 deletions(-) create mode 100644 data/scripts/flavor_text.inc create mode 100644 data/scripts/safari_zone.inc create mode 100644 data/text/berries.inc create mode 100644 data/text/competitive_brothers.inc create mode 100644 data/text/eon_ticket.inc create mode 100644 data/text/flavor_text.inc create mode 100644 data/text/safari_zone.inc diff --git a/data/event_scripts.s b/data/event_scripts.s index 9d3a0a6c2..79968b1f5 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1375,118 +1375,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 @@ -2322,641 +2211,12 @@ EventScript_1B2DF6:: @ 81B2DF6 .include "data/scripts/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 - -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 - -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!$" - -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 "では いってらっしゃい!$" - -SafariZone_Text_ExcuseMeYourPCBoxIsFull:: @ 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/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/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/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/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/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/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 "あつまる きが するなあ$" -- cgit v1.2.3 From 5b27d3d2683251977873976f7774e352e3fd4e23 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 20 Jan 2020 01:32:25 -0500 Subject: Document Safari Zone scripts --- data/event_scripts.s | 16 ++-- data/layouts/SafariZone_Building/border.bin | Bin 8 -> 0 bytes data/layouts/SafariZone_Building/map.bin | 1 - data/layouts/SafariZone_RestHouse/border.bin | Bin 0 -> 8 bytes data/layouts/SafariZone_RestHouse/map.bin | 1 + data/layouts/layouts.json | 8 +- data/maps/SafariZone_Building1/map.json | 68 ---------------- data/maps/SafariZone_Building1/scripts.inc | 10 --- data/maps/SafariZone_Building1/text.inc | 8 -- data/maps/SafariZone_Building2/map.json | 81 ------------------- data/maps/SafariZone_Building2/scripts.inc | 14 ---- data/maps/SafariZone_Building2/text.inc | 12 --- data/maps/SafariZone_Building3/map.json | 94 ---------------------- data/maps/SafariZone_Building3/scripts.inc | 14 ---- data/maps/SafariZone_Building3/text.inc | 15 ---- data/maps/SafariZone_Building4/map.json | 81 ------------------- data/maps/SafariZone_Building4/scripts.inc | 14 ---- data/maps/SafariZone_Building4/text.inc | 22 ----- data/maps/SafariZone_Center/map.json | 8 +- data/maps/SafariZone_Center/scripts.inc | 12 +-- data/maps/SafariZone_Center/text.inc | 6 +- data/maps/SafariZone_Center_RestHouse/map.json | 68 ++++++++++++++++ data/maps/SafariZone_Center_RestHouse/scripts.inc | 10 +++ data/maps/SafariZone_Center_RestHouse/text.inc | 8 ++ data/maps/SafariZone_East/map.json | 8 +- data/maps/SafariZone_East/scripts.inc | 12 +-- data/maps/SafariZone_East/text.inc | 6 +- data/maps/SafariZone_East_RestHouse/map.json | 81 +++++++++++++++++++ data/maps/SafariZone_East_RestHouse/scripts.inc | 14 ++++ data/maps/SafariZone_East_RestHouse/text.inc | 12 +++ data/maps/SafariZone_North/map.json | 12 +-- data/maps/SafariZone_North/scripts.inc | 20 ++--- data/maps/SafariZone_North/text.inc | 10 +-- data/maps/SafariZone_North_RestHouse/map.json | 94 ++++++++++++++++++++++ data/maps/SafariZone_North_RestHouse/scripts.inc | 14 ++++ data/maps/SafariZone_North_RestHouse/text.inc | 15 ++++ data/maps/SafariZone_SecretHouse/map.json | 2 +- data/maps/SafariZone_SecretHouse/scripts.inc | 20 ++--- data/maps/SafariZone_SecretHouse/text.inc | 8 +- data/maps/SafariZone_West/map.json | 10 +-- data/maps/SafariZone_West/scripts.inc | 16 ++-- data/maps/SafariZone_West/text.inc | 8 +- data/maps/SafariZone_West_RestHouse/map.json | 81 +++++++++++++++++++ data/maps/SafariZone_West_RestHouse/scripts.inc | 14 ++++ data/maps/SafariZone_West_RestHouse/text.inc | 22 +++++ data/maps/map_groups.json | 8 +- data/scripts/fame_checker.inc | 4 +- include/constants/layouts.h | 2 +- include/constants/map_groups.h | 8 +- 49 files changed, 536 insertions(+), 536 deletions(-) delete mode 100644 data/layouts/SafariZone_Building/border.bin delete mode 100644 data/layouts/SafariZone_Building/map.bin create mode 100644 data/layouts/SafariZone_RestHouse/border.bin create mode 100644 data/layouts/SafariZone_RestHouse/map.bin delete mode 100644 data/maps/SafariZone_Building1/map.json delete mode 100644 data/maps/SafariZone_Building1/scripts.inc delete mode 100644 data/maps/SafariZone_Building1/text.inc delete mode 100644 data/maps/SafariZone_Building2/map.json delete mode 100644 data/maps/SafariZone_Building2/scripts.inc delete mode 100644 data/maps/SafariZone_Building2/text.inc delete mode 100644 data/maps/SafariZone_Building3/map.json delete mode 100644 data/maps/SafariZone_Building3/scripts.inc delete mode 100644 data/maps/SafariZone_Building3/text.inc delete mode 100644 data/maps/SafariZone_Building4/map.json delete mode 100644 data/maps/SafariZone_Building4/scripts.inc delete mode 100644 data/maps/SafariZone_Building4/text.inc create mode 100644 data/maps/SafariZone_Center_RestHouse/map.json create mode 100644 data/maps/SafariZone_Center_RestHouse/scripts.inc create mode 100644 data/maps/SafariZone_Center_RestHouse/text.inc create mode 100644 data/maps/SafariZone_East_RestHouse/map.json create mode 100644 data/maps/SafariZone_East_RestHouse/scripts.inc create mode 100644 data/maps/SafariZone_East_RestHouse/text.inc create mode 100644 data/maps/SafariZone_North_RestHouse/map.json create mode 100644 data/maps/SafariZone_North_RestHouse/scripts.inc create mode 100644 data/maps/SafariZone_North_RestHouse/text.inc create mode 100644 data/maps/SafariZone_West_RestHouse/map.json create mode 100644 data/maps/SafariZone_West_RestHouse/scripts.inc create mode 100644 data/maps/SafariZone_West_RestHouse/text.inc diff --git a/data/event_scripts.s b/data/event_scripts.s index 79968b1f5..1816b53e3 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -149,10 +149,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" @@ -562,10 +562,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" diff --git a/data/layouts/SafariZone_Building/border.bin b/data/layouts/SafariZone_Building/border.bin deleted file mode 100644 index a886cd764..000000000 Binary files a/data/layouts/SafariZone_Building/border.bin and /dev/null differ diff --git a/data/layouts/SafariZone_Building/map.bin b/data/layouts/SafariZone_Building/map.bin deleted file mode 100644 index caec48cdc..000000000 --- a/data/layouts/SafariZone_Building/map.bin +++ /dev/null @@ -1 +0,0 @@ -222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SafariZone_RestHouse/border.bin b/data/layouts/SafariZone_RestHouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SafariZone_RestHouse/border.bin differ diff --git a/data/layouts/SafariZone_RestHouse/map.bin b/data/layouts/SafariZone_RestHouse/map.bin new file mode 100644 index 000000000..caec48cdc --- /dev/null +++ b/data/layouts/SafariZone_RestHouse/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 3df335ce6..cd071f1b3 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", diff --git a/data/maps/SafariZone_Building1/map.json b/data/maps/SafariZone_Building1/map.json deleted file mode 100644 index 78ea6e719..000000000 --- a/data/maps/SafariZone_Building1/map.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "id": "MAP_SAFARI_ZONE_BUILDING1", - "name": "SafariZone_Building1", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", - "music": "MUS_SHINKA", - "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_8", - "unknown_18": 0, - "unknown_19": 0, - "elevator_flag": 0, - "battle_scene": "BATTLE_SCENE_0", - "connections": null, - "object_events": [ - { - "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", - "x": 3, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building1_EventScript_1623F5", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_WOMAN_1", - "x": 7, - "y": 3, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building1_EventScript_1623EC", - "flag": "0" - } - ], - "warp_events": [ - { - "x": 3, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 - }, - { - "x": 4, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 - }, - { - "x": 5, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 - } - ], - "coord_events": [], - "bg_events": [] -} 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_Building1/text.inc b/data/maps/SafariZone_Building1/text.inc deleted file mode 100644 index a071cffeb..000000000 --- a/data/maps/SafariZone_Building1/text.inc +++ /dev/null @@ -1,8 +0,0 @@ -gUnknown_8177A5A:: @ 8177A5A - .string "SARA: Where did my boyfriend,\n" - .string "ERIK, go?$" - -gUnknown_8177A82:: @ 8177A82 - .string "I'm catching POKéMON to take home\n" - .string "as gifts.$" - diff --git a/data/maps/SafariZone_Building2/map.json b/data/maps/SafariZone_Building2/map.json deleted file mode 100644 index a8108ab01..000000000 --- a/data/maps/SafariZone_Building2/map.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "id": "MAP_SAFARI_ZONE_BUILDING2", - "name": "SafariZone_Building2", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", - "music": "MUS_SHINKA", - "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_8", - "unknown_18": 0, - "unknown_19": 0, - "elevator_flag": 0, - "battle_scene": "BATTLE_SCENE_0", - "connections": null, - "object_events": [ - { - "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", - "x": 3, - "y": 5, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building2_EventScript_162408", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_ROCKER", - "x": 6, - "y": 3, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building2_EventScript_1623FF", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_BALDING_MAN", - "x": 7, - "y": 3, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building2_EventScript_162411", - "flag": "0" - } - ], - "warp_events": [ - { - "x": 3, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 - }, - { - "x": 4, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 - }, - { - "x": 5, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 - } - ], - "coord_events": [], - "bg_events": [] -} 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_Building2/text.inc b/data/maps/SafariZone_Building2/text.inc deleted file mode 100644 index b25194a31..000000000 --- a/data/maps/SafariZone_Building2/text.inc +++ /dev/null @@ -1,12 +0,0 @@ -gUnknown_8177AAE:: @ 8177AAE - .string "How many did you catch?\n" - .string "I'm bushed from the effort!$" - -gUnknown_8177AE2:: @ 8177AE2 - .string "I caught a CHANSEY!\p" - .string "That makes this all worthwhile.$" - -gUnknown_8177B16:: @ 8177B16 - .string "Whew!\n" - .string "I'm tired from all the fun!$" - diff --git a/data/maps/SafariZone_Building3/map.json b/data/maps/SafariZone_Building3/map.json deleted file mode 100644 index 5693b1873..000000000 --- a/data/maps/SafariZone_Building3/map.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "id": "MAP_SAFARI_ZONE_BUILDING3", - "name": "SafariZone_Building3", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", - "music": "MUS_SHINKA", - "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_8", - "unknown_18": 0, - "unknown_19": 0, - "elevator_flag": 0, - "battle_scene": "BATTLE_SCENE_0", - "connections": null, - "object_events": [ - { - "graphics_id": "OBJECT_EVENT_GFX_GENTLEMAN", - "x": 3, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_16242D", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", - "x": 7, - "y": 5, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_162424", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_FISHER", - "x": 6, - "y": 2, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_16241B", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_BALDING_MAN", - "x": 11, - "y": 2, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_UP", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_1ACED3", - "flag": "0" - } - ], - "warp_events": [ - { - "x": 3, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 - }, - { - "x": 4, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 - }, - { - "x": 5, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 - } - ], - "coord_events": [], - "bg_events": [] -} 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_Building3/text.inc b/data/maps/SafariZone_Building3/text.inc deleted file mode 100644 index d7956d083..000000000 --- a/data/maps/SafariZone_Building3/text.inc +++ /dev/null @@ -1,15 +0,0 @@ -gUnknown_8177B38:: @ 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 - .string "Go to the deepest part of the\n" - .string "SAFARI ZONE. You will win a prize!$" - -gUnknown_8177BEC:: @ 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_Building4/map.json b/data/maps/SafariZone_Building4/map.json deleted file mode 100644 index 6d994ad60..000000000 --- a/data/maps/SafariZone_Building4/map.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "id": "MAP_SAFARI_ZONE_BUILDING4", - "name": "SafariZone_Building4", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", - "music": "MUS_SHINKA", - "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_8", - "unknown_18": 0, - "unknown_19": 0, - "elevator_flag": 0, - "battle_scene": "BATTLE_SCENE_0", - "connections": null, - "object_events": [ - { - "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", - "x": 3, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building4_EventScript_162440", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_MAN", - "x": 2, - "y": 2, - "elevation": 0, - "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building4_EventScript_162437", - "flag": "0" - }, - { - "graphics_id": "OBJECT_EVENT_GFX_COOLTRAINER_F", - "x": 7, - "y": 3, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": 0, - "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building4_EventScript_162449", - "flag": "0" - } - ], - "warp_events": [ - { - "x": 3, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 - }, - { - "x": 4, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 - }, - { - "x": 5, - "y": 9, - "elevation": 3, - "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 - } - ], - "coord_events": [], - "bg_events": [] -} 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_Building4/text.inc b/data/maps/SafariZone_Building4/text.inc deleted file mode 100644 index 66bf06ba2..000000000 --- a/data/maps/SafariZone_Building4/text.inc +++ /dev/null @@ -1,22 +0,0 @@ -Text_177C47:: @ 8177C47 - .string "The SAFARI ZONE's huge, wouldn't\n" - .string "you say?\p" - .string "FUCHSIA's GYM LEADER, KOGA, \n" - .string "patrols the grounds every so often.\p" - .string "Thanks to him, we can play here\n" - .string "knowing that we're safe.$" - -gUnknown_8177CEB:: @ 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 - .string "Using BAIT will make POKéMON more\n" - .string "likely to stick around if they get\l" - .string "busy eating.$" - -gUnknown_8177D8B:: @ 8177D8B - .string "I hiked a lot, but I didn't see any\n" - .string "POKéMON I wanted.$" - 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_Center_RestHouse/map.json b/data/maps/SafariZone_Center_RestHouse/map.json new file mode 100644 index 000000000..fc4cbf67c --- /dev/null +++ b/data/maps/SafariZone_Center_RestHouse/map.json @@ -0,0 +1,68 @@ +{ + "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, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Center_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_WOMAN_1", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Center_RestHouse_EventScript_Sara", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 12 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 12 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 12 + } + ], + "coord_events": [], + "bg_events": [] +} 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_Center_RestHouse/text.inc b/data/maps/SafariZone_Center_RestHouse/text.inc new file mode 100644 index 000000000..156457318 --- /dev/null +++ b/data/maps/SafariZone_Center_RestHouse/text.inc @@ -0,0 +1,8 @@ +SafariZone_Center_Text_WhereDidErikGo:: @ 8177A5A + .string "SARA: Where did my boyfriend,\n" + .string "ERIK, go?$" + +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_East_RestHouse/map.json b/data/maps/SafariZone_East_RestHouse/map.json new file mode 100644 index 000000000..d491771d0 --- /dev/null +++ b/data/maps/SafariZone_East_RestHouse/map.json @@ -0,0 +1,81 @@ +{ + "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, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_ROCKER", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_RestHouse_EventScript_Rocker", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_BALDING_MAN", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_RestHouse_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 6 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 6 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} 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_East_RestHouse/text.inc b/data/maps/SafariZone_East_RestHouse/text.inc new file mode 100644 index 000000000..ea914b754 --- /dev/null +++ b/data/maps/SafariZone_East_RestHouse/text.inc @@ -0,0 +1,12 @@ +SafariZone_East_Text_HowManyDidYouCatch:: @ 8177AAE + .string "How many did you catch?\n" + .string "I'm bushed from the effort!$" + +SafariZone_East_Text_CaughtChanseyAllWorthwhile:: @ 8177AE2 + .string "I caught a CHANSEY!\p" + .string "That makes this all worthwhile.$" + +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_North_RestHouse/map.json b/data/maps/SafariZone_North_RestHouse/map.json new file mode 100644 index 000000000..48fc58755 --- /dev/null +++ b/data/maps/SafariZone_North_RestHouse/map.json @@ -0,0 +1,94 @@ +{ + "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, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "OBJECT_EVENT_GFX_GENTLEMAN", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_RestHouse_EventScript_Gentleman", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_FISHER", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_RestHouse_EventScript_Fisher", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_BALDING_MAN", + "x": 11, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_RestHouse_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 12 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 12 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 12 + } + ], + "coord_events": [], + "bg_events": [] +} 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_North_RestHouse/text.inc b/data/maps/SafariZone_North_RestHouse/text.inc new file mode 100644 index 000000000..cf0188053 --- /dev/null +++ b/data/maps/SafariZone_North_RestHouse/text.inc @@ -0,0 +1,15 @@ +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.$" + +SafariZone_East_Text_PrizeInDeepestPartOfSafariZone:: @ 8177BAB + .string "Go to the deepest part of the\n" + .string "SAFARI ZONE. You will win a prize!$" + +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_West_RestHouse/map.json b/data/maps/SafariZone_West_RestHouse/map.json new file mode 100644 index 000000000..a387fe992 --- /dev/null +++ b/data/maps/SafariZone_West_RestHouse/map.json @@ -0,0 +1,81 @@ +{ + "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, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "OBJECT_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_MAN", + "x": 2, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_RestHouse_EventScript_Man", + "flag": "0" + }, + { + "graphics_id": "OBJECT_EVENT_GFX_COOLTRAINER_F", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_RestHouse_EventScript_CooltrainerF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 10 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 10 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 10 + } + ], + "coord_events": [], + "bg_events": [] +} 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_West_RestHouse/text.inc b/data/maps/SafariZone_West_RestHouse/text.inc new file mode 100644 index 000000000..c6ef1ae59 --- /dev/null +++ b/data/maps/SafariZone_West_RestHouse/text.inc @@ -0,0 +1,22 @@ +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" + .string "patrols the grounds every so often.\p" + .string "Thanks to him, we can play here\n" + .string "knowing that we're safe.$" + +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.$" + +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.$" + +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/map_groups.json b/data/maps/map_groups.json index 6f233a697..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", diff --git a/data/scripts/fame_checker.inc b/data/scripts/fame_checker.inc index 7868df34f..e141634eb 100644 --- a/data/scripts/fame_checker.inc +++ b/data/scripts/fame_checker.inc @@ -110,11 +110,11 @@ FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga:: @ 81ACEB8 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/include/constants/layouts.h b/include/constants/layouts.h index d0454a0ad..ef3cfe126 100644 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -180,7 +180,7 @@ #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_SAFARI_ZONE_OFFICE 200 #define LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE 201 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index a43ae78d0..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)) -- cgit v1.2.3 From cedebf15ee3595228d6fa212b74e1c5aa6fac3f1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 09:09:02 -0500 Subject: sub_8115A68 --- asm/union_room.s | 887 +---------------------------------------------------- include/link_rfu.h | 12 + src/link_rfu_3.c | 2 +- src/union_room.c | 330 +++++++++++++++++++- 4 files changed, 343 insertions(+), 888 deletions(-) diff --git a/asm/union_room.s b/asm/union_room.s index 222ecaa7a..d35ca5190 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,891 +5,6 @@ .text - 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} @@ -3790,7 +2905,7 @@ _08117AB8: ldr r0, [r5] adds r1, r0, 0 adds r1, 0x10 - bl sub_80FCD50 + bl LinkRfu3_SetGnameUnameFromStaticBuffers ldr r1, [r5] movs r3, 0 movs r0, 0 diff --git a/include/link_rfu.h b/include/link_rfu.h index bde20c555..fd77688f2 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -295,6 +295,18 @@ 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 sub_80FAF58(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); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 87197f57f..2e09dc0a0 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -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); diff --git a/src/union_room.c b/src/union_room.c index 070c43a09..fd59ded3e 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1,21 +1,49 @@ #include "global.h" #include "gflib.h" #include "event_data.h" +#include "link.h" #include "link_rfu.h" +#include "list_menu.h" +#include "new_menu_helpers.h" +#include "script.h" #include "task.h" #include "union_room.h" EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; +EWRAM_DATA u8 gUnknown_203B058 = 0; +EWRAM_DATA u8 gUnknown_203B059 = 0; IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024; void sub_8115A68(u8 taskId); +void sub_81161E4(struct UnkStruct_Leader * leader); +bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); +u8 sub_81165E8(struct UnkStruct_Main0 * a0); +void sub_8117990(void); u16 sub_8118658(const u8 *data); +u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1); +bool8 sub_811A0F8(u8 *textState, const u8 *str); +s8 sub_811A14C(u8 *dest, bool32 arg1); void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); +void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count); +void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count); -extern const u8 *const gUnknown_845742C[][5]; +extern const u8 *const gUnknown_8456C74[]; +extern const struct WindowTemplate gUnknown_8456CD0; +extern const u32 gUnknown_8456CD8[]; +extern const struct WindowTemplate gUnknown_8456CFC; +extern const struct WindowTemplate gUnknown_8456D04; +extern const struct ListMenuTemplate gUnknown_8456D34; extern const u8 gUnknown_84571B4[]; extern const u8 gUnknown_8457234[]; +extern const u8 gUnknown_8457264[]; +extern const u8 gUnknown_845747C[]; +extern const u8 gUnknown_8457514[]; +extern const u8 gUnknown_8457530[]; +extern const u8 gUnknown_8457554[]; +extern const u8 gUnknown_8457610[]; +extern const u8 *const gUnknown_845767C[]; +extern const u8 *const gUnknown_845742C[][5]; void sub_811586C(u8 windowId, u8 arg1, u8 stringId) { @@ -77,3 +105,303 @@ void TryBecomeLinkLeader(void) dataPtr->textState = 0; gSpecialVar_Result = 0; } + +void sub_8115A68(u8 taskId) +{ + u32 id, val; + struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + + switch (data->state) + { + case 0: + gUnknown_203B058 = gUnknown_8456CD8[gSpecialVar_0x8004]; + gUnknown_203B059 = gUnknown_8456CD8[gSpecialVar_0x8004] >> 8; + sub_80FAF58(gUnknown_203B058, 0, 0); + sub_800B1F4(); + OpenLink(); + sub_80FBB8C(gUnknown_203B059 & 0xF); + data->state = 3; + break; + case 3: + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0xA0); + data->field_8 = AllocZeroed(0xA0); + sub_811A650(data->field_4, 4); + sub_811A5E4(data->field_0->arr, 5); + LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.field_0, 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 (sub_811A0F8(&data->textState, gStringVar4)) + data->state = 6; + break; + case 6: + sub_8116444(data, 7, 10); + if (gMain.newKeys & 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() + && gMain.newKeys & 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 (sub_811A0F8(&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 (sub_811A0F8(&data->textState, gUnknown_845767C[id])) + { + data->state = 21; + } + break; + case 7: + if (sub_811A0F8(&data->textState, gStringVar4)) + { + data->state = 11; + } + break; + case 11: + switch (sub_811A14C(&data->textState, sub_80FA634(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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 + { + StringCopy7(gStringVar1, data->field_0->arr[data->field_13 - 1].unk.playerName); + ConvertInternationalString(gStringVar1, data->field_0->arr[data->field_13 - 1].unk.field_0.unk_00.unk_00_0); + 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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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 (sub_811A0F8(&data->textState, gStringVar4)) + data->state = 14; + break; + case 14: + if (++data->field_E > 120) + data->state = 17; + break; + case 15: + if (sub_811A0F8(&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 (sub_811A0F8(&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 (sub_811A0F8(&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; + } +} -- cgit v1.2.3 From 8a5386899adf1c70049a039b041529b0d287b96a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 09:33:46 -0500 Subject: through sub_81163B0 --- asm/union_room.s | 254 ------------------------------------------------------- src/graphics.c | 0 src/union_room.c | 106 ++++++++++++++++++++++- 3 files changed, 105 insertions(+), 255 deletions(-) delete mode 100644 src/graphics.c diff --git a/asm/union_room.s b/asm/union_room.s index d35ca5190..0e8c06beb 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,260 +5,6 @@ .text - 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} diff --git a/src/graphics.c b/src/graphics.c deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/union_room.c b/src/union_room.c index fd59ded3e..389b13132 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -37,13 +37,22 @@ extern const struct ListMenuTemplate gUnknown_8456D34; extern const u8 gUnknown_84571B4[]; 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 gUnknown_8457610[]; extern const u8 *const gUnknown_845767C[]; -extern const u8 *const gUnknown_845742C[][5]; +extern const u8 gUnknown_84576AC[]; +extern const u8 gUnknown_84576C4[]; +extern const u8 gUnknown_8457E28[]; +extern const u8 gUnknown_8457E44[]; +extern const u8 gUnknown_8459238[]; +extern const u8 gUnknown_8459250[]; void sub_811586C(u8 windowId, u8 arg1, u8 stringId) { @@ -405,3 +414,98 @@ void sub_8115A68(u8 taskId) break; } } + +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); +} + +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; + } +} + +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; + } +} + +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; + } +} + +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; + } +} -- cgit v1.2.3 From bc0fbb5d6ec21a7aaeab5f0392038844d0d23b25 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 10:00:19 -0500 Subject: through sub_81165E8 --- asm/union_room.s | 366 ------------------------------------------------------- src/union_room.c | 139 ++++++++++++++++++++- 2 files changed, 137 insertions(+), 368 deletions(-) diff --git a/asm/union_room.s b/asm/union_room.s index 0e8c06beb..1cd5db1e2 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,372 +5,6 @@ .text - 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} diff --git a/src/union_room.c b/src/union_room.c index 389b13132..8874ea816 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -8,6 +8,12 @@ #include "script.h" #include "task.h" #include "union_room.h" +#include "constants/songs.h" + +#define sub_8018404(dest, arg1) ({ \ + StringCopy7(dest, (arg1).unk.playerName); \ + ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ +}) EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; EWRAM_DATA u8 gUnknown_203B058 = 0; @@ -18,6 +24,7 @@ IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024; void sub_8115A68(u8 taskId); void sub_81161E4(struct UnkStruct_Leader * leader); bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); +u8 sub_8116524(struct UnkStruct_Main0 * a0); u8 sub_81165E8(struct UnkStruct_Main0 * a0); void sub_8117990(void); u16 sub_8118658(const u8 *data); @@ -27,6 +34,9 @@ s8 sub_811A14C(u8 *dest, bool32 arg1); void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count); void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count); +u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); +u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2); +void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); extern const u8 *const gUnknown_8456C74[]; extern const struct WindowTemplate gUnknown_8456CD0; @@ -34,6 +44,7 @@ extern const u32 gUnknown_8456CD8[]; extern const struct WindowTemplate gUnknown_8456CFC; extern const struct WindowTemplate gUnknown_8456D04; extern const struct ListMenuTemplate gUnknown_8456D34; +extern const struct UnkStruct_Shared gUnknown_8457034; extern const u8 gUnknown_84571B4[]; extern const u8 gUnknown_8457234[]; extern const u8 gUnknown_8457264[]; @@ -278,8 +289,7 @@ void sub_8115A68(u8 taskId) } else { - StringCopy7(gStringVar1, data->field_0->arr[data->field_13 - 1].unk.playerName); - ConvertInternationalString(gStringVar1, data->field_0->arr[data->field_13 - 1].unk.field_0.unk_00.unk_00_0); + sub_8018404(gStringVar1, data->field_0->arr[data->field_13 - 1]); StringExpandPlaceholders(gStringVar4, gUnknown_8457554); data->state = 13; } @@ -509,3 +519,128 @@ void sub_81163B0(u8 *dst, u8 caseId) break; } } + +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); + sub_8018404(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; +} + +void sub_81164C8(u8 arg0, s32 id, u8 arg2) +{ + struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + u8 var = 0; + + switch (data->field_0->arr[id].field_1A_0) + { + case 1: + if (data->field_0->arr[id].field_1B != 0) + var = 2; + break; + case 2: + var = 1; + break; + } + + sub_811A910(arg0, 0, arg2, &data->field_0->arr[id], var, id); +} + +u8 sub_8116524(struct UnkStruct_Main0 *arg0) +{ + struct UnkStruct_Leader *data = gUnknown_203B05C.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; +} + +u8 sub_81165E8(struct UnkStruct_Main0 *arg0) +{ + struct UnkStruct_Leader *data = gUnknown_203B05C.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; +} -- cgit v1.2.3 From 8d5af5332934f47f022907d2acb2e71d96b04449 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 12:14:55 -0500 Subject: through sub_8116738 --- asm/union_room.s | 677 ----------------------------------------------------- include/link_rfu.h | 2 + src/union_room.c | 273 +++++++++++++++++++++ 3 files changed, 275 insertions(+), 677 deletions(-) diff --git a/asm/union_room.s b/asm/union_room.s index 1cd5db1e2..6e32c7afd 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,683 +5,6 @@ .text - 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} diff --git a/include/link_rfu.h b/include/link_rfu.h index fd77688f2..a0db0a425 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -307,6 +307,8 @@ void sub_80FAF58(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); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/src/union_room.c b/src/union_room.c index 8874ea816..37c3e7c0a 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -20,17 +20,23 @@ EWRAM_DATA u8 gUnknown_203B058 = 0; EWRAM_DATA u8 gUnknown_203B059 = 0; IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024; +IWRAM_DATA struct UnkStruct_Group *gUnknown_3002028; void sub_8115A68(u8 taskId); void sub_81161E4(struct UnkStruct_Leader * leader); bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); u8 sub_8116524(struct UnkStruct_Main0 * a0); u8 sub_81165E8(struct UnkStruct_Main0 * a0); +void sub_8116738(u8 taskId); +u32 sub_8116D10(struct UnkStruct_Group * group, s32 id); +void sub_8116D60(struct UnkStruct_Group * group, s32 id); +u8 sub_8116FE4(void); void sub_8117990(void); u16 sub_8118658(const u8 *data); u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1); bool8 sub_811A0F8(u8 *textState, const u8 *str); s8 sub_811A14C(u8 *dest, bool32 arg1); +void sub_811A41C(void); void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count); void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count); @@ -44,7 +50,11 @@ extern const u32 gUnknown_8456CD8[]; extern const struct WindowTemplate gUnknown_8456CFC; extern const struct WindowTemplate gUnknown_8456D04; extern const struct ListMenuTemplate gUnknown_8456D34; +extern const struct WindowTemplate gUnknown_8456D4C; +extern const struct WindowTemplate gUnknown_8456D54; +extern const struct ListMenuTemplate gUnknown_8456DDC; extern const struct UnkStruct_Shared gUnknown_8457034; +extern const u8 gUnknown_84570C8[]; extern const u8 gUnknown_84571B4[]; extern const u8 gUnknown_8457234[]; extern const u8 gUnknown_8457264[]; @@ -56,12 +66,18 @@ 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_8457E28[]; extern const u8 gUnknown_8457E44[]; +extern const u8 gUnknown_8458FC8[]; +extern const u8 *const gUnknown_84591B8[]; extern const u8 gUnknown_8459238[]; extern const u8 gUnknown_8459250[]; @@ -644,3 +660,260 @@ u8 sub_81165E8(struct UnkStruct_Main0 *arg0) return ret; } + +void TryJoinLinkGroup(void) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_8116738, 0); + gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_3002028 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + gSpecialVar_Result = 0; +} + +void sub_8116738(u8 taskId) +{ + s32 id; + struct UnkStruct_Group *data = gUnknown_203B05C.group; + + switch (data->state) + { + case 0: + sub_80FAF58(gUnknown_84570C8[gSpecialVar_0x8004], 0, 0); + gUnknown_203B058 = gUnknown_84570C8[gSpecialVar_0x8004]; + sub_800B1F4(); + OpenLink(); + sub_80FBBD8(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + if (sub_811A0F8(&data->textState, gUnknown_84591B8[gSpecialVar_0x8004])) + data->state = 2; + break; + case 2: + sub_811A650(data->field_4, 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 (gMain.newKeys & A_BUTTON && id != -1) + { + // this unused variable along with the assignment is needed to match + u32 unusedVar; + unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; + + if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.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 (gMain.newKeys & B_BUTTON) + { + data->state = 10; + } + break; + default: + RedrawListMenu(data->listTaskId); + break; + } + break; + case 5: + sub_811631C(gStringVar4, gUnknown_203B058); + if (sub_811A0F8(&data->textState, gStringVar4)) + { + sub_8018404(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.field_0.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 (sub_811A0F8(&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 (sub_811A0F8(&data->textState, gStringVar4)) + { + sub_80FB9E4(12, 0); + data->field_15 = 0; + } + } + else + { + data->field_15++; + } + break; + } + + if (!sub_80FB9F4() && gMain.newKeys & B_BUTTON) + data->state = 7; + break; + case 7: + if (sub_811A0F8(&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 (sub_811A0F8(&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 (sub_811A0F8(&data->textState, gUnknown_8457754[sub_80FB9F4()])) + { + gSpecialVar_Result = 8; + data->state = 23; + } + break; + case 19: + if (sub_811A0F8(&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; + } +} -- cgit v1.2.3 From ac5bfcf1ce9c0f1dfe240dca3aeb0f3fcaa83280 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 14:46:01 -0500 Subject: through sub_8117A0C --- asm/cable_club.s | 28 +- asm/field_weather.s | 6 +- asm/overworld.s | 46 +- asm/pokemon_storage_system.s | 2 +- asm/union_room.s | 2066 ------------------------------------ include/berry_crush.h | 6 + include/cable_club.h | 1 + include/dodrio_berry_picking.h | 6 + include/field_control_avatar.h | 1 + include/field_weather.h | 2 +- include/link.h | 1 + include/link_rfu.h | 8 +- include/mevent.h | 3 + include/mystery_gift_menu.h | 3 + include/overworld.h | 3 +- include/pokemon_jump.h | 1 + include/save_location.h | 1 + include/union_room.h | 2 +- include/union_room_chat.h | 1 + include/union_room_player_avatar.h | 6 + src/credits.c | 4 +- src/field_fadetransition.c | 22 +- src/item_use.c | 10 +- src/mevent.c | 4 +- src/player_pc.c | 8 +- src/quest_log.c | 4 +- src/scrcmd.c | 4 +- src/shop.c | 4 +- src/start_menu.c | 4 +- src/union_room.c | 767 ++++++++++++- sym_common.txt | 4 +- 31 files changed, 878 insertions(+), 2150 deletions(-) create mode 100644 include/berry_crush.h create mode 100644 include/dodrio_berry_picking.h create mode 100644 include/union_room_player_avatar.h 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/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/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 fc7fc398d..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 diff --git a/asm/union_room.s b/asm/union_room.s index 6e32c7afd..5f1ff772a 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,2072 +5,6 @@ .text - 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 LinkRfu3_SetGnameUnameFromStaticBuffers - 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} 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/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/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_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/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 a0db0a425..6f7e01678 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -235,7 +235,7 @@ bool8 IsLinkRfuTaskFinished(void); void DestroyWirelessStatusIndicatorSprite(void); void MEvent_CreateTask_CardOrNewsWithFriend(u8); void MEvent_CreateTask_CardOrNewsOverWireless(u8); -void MEvent_CreateTask_Leader(u8); +void MEvent_CreateTask_Leader(u32 arg0); void sub_80F9E2C(void * data); u8 sub_8116DE0(void); void sub_80FBB4C(void); @@ -309,6 +309,12 @@ 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); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/include/mevent.h b/include/mevent.h index 81caeb42f..eb7cf77f3 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/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/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/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/union_room.h b/include/union_room.h index d57683a8a..9221b6bf5 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -134,7 +134,7 @@ union UnkUnion_Main struct UnkStruct_URoom *uRoom; }; -struct TradeUnkStruct +struct UnionRoomTrade { u16 field_0; u16 type; 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_player_avatar.h b/include/union_room_player_avatar.h new file mode 100644 index 000000000..12b7773e7 --- /dev/null +++ b/include/union_room_player_avatar.h @@ -0,0 +1,6 @@ +#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H +#define GUARD_UNION_ROOM_PLAYER_AVATAR_H + +void sub_811C1C8(void); + +#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H 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/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/item_use.c b/src/item_use.c index fc5703a75..57771754a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -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; } } @@ -532,7 +532,7 @@ void FieldUseFunc_TeachyTv(u8 taskId) else { StopPokemonLeagueLightingEffectTask(); - fade_screen(1, 0); + FadeScreen(1, 0); gTasks[taskId].func = Task_InitTeachyTvFromField; } } @@ -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; } } diff --git a/src/mevent.c b/src/mevent.c index b22d02cbc..c8ce39e23 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/player_pc.c b/src/player_pc.c index 63870c86a..928676844 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -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/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/scrcmd.c b/src/scrcmd.c index 51e7d2c35..c083546eb 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; } diff --git a/src/shop.c b/src/shop.c index 865688928..97061f8c0 100644 --- a/src/shop.c +++ b/src/shop.c @@ -294,14 +294,14 @@ 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; } 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/union_room.c b/src/union_room.c index 37c3e7c0a..6b6ef5b98 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1,23 +1,41 @@ #include "global.h" #include "gflib.h" +#include "battle.h" +#include "berry_crush.h" +#include "cable_club.h" +#include "dodrio_berry_picking.h" #include "event_data.h" +#include "field_control_avatar.h" +#include "field_weather.h" #include "link.h" #include "link_rfu.h" #include "list_menu.h" +#include "load_save.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 "save_location.h" #include "script.h" +#include "script_pokemon_util.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 "union_room_player_avatar.h" #include "constants/songs.h" - -#define sub_8018404(dest, arg1) ({ \ - StringCopy7(dest, (arg1).unk.playerName); \ - ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ -}) +#include "constants/maps.h" +#include "constants/cable_club.h" +#include "constants/field_weather.h" EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; EWRAM_DATA u8 gUnknown_203B058 = 0; EWRAM_DATA u8 gUnknown_203B059 = 0; +EWRAM_DATA struct UnionRoomTrade gUnknown_203B06C = {}; IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024; IWRAM_DATA struct UnkStruct_Group *gUnknown_3002028; @@ -30,8 +48,11 @@ u8 sub_81165E8(struct UnkStruct_Main0 * a0); void sub_8116738(u8 taskId); u32 sub_8116D10(struct UnkStruct_Group * group, s32 id); void sub_8116D60(struct UnkStruct_Group * group, s32 id); +void sub_8116E1C(u8 taskId); u8 sub_8116FE4(void); void sub_8117990(void); +void sub_81179A4(void); +void sub_8117A0C(u8 taskId); u16 sub_8118658(const u8 *data); u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1); bool8 sub_811A0F8(u8 *textState, const u8 *str); @@ -40,9 +61,13 @@ void sub_811A41C(void); void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count); void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count); +bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1); u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2); +void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); +void sub_811B148(struct UnionRoomTrade *trade); +u32 sub_811B1EC(struct UnionRoomTrade *trade, u8 mpId); extern const u8 *const gUnknown_8456C74[]; extern const struct WindowTemplate gUnknown_8456CD0; @@ -54,8 +79,10 @@ extern const struct WindowTemplate gUnknown_8456D4C; extern const struct WindowTemplate gUnknown_8456D54; extern const struct ListMenuTemplate gUnknown_8456DDC; extern const struct UnkStruct_Shared gUnknown_8457034; +extern const u8 *const gUnknown_8457094[13]; extern const u8 gUnknown_84570C8[]; extern const u8 gUnknown_84571B4[]; +extern const u8 gUnknown_84571B8[]; extern const u8 gUnknown_8457234[]; extern const u8 gUnknown_8457264[]; extern const u8 *const gUnknown_845742C[][5]; @@ -74,6 +101,7 @@ 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_84577F8[]; extern const u8 gUnknown_8457E28[]; extern const u8 gUnknown_8457E44[]; extern const u8 gUnknown_8458FC8[]; @@ -81,6 +109,18 @@ extern const u8 *const gUnknown_84591B8[]; extern const u8 gUnknown_8459238[]; extern const u8 gUnknown_8459250[]; +// These are functions in Emmerald but inlined in FireRed + +#define sub_8018404(dest, arg1) ({ \ + StringCopy7(dest, (arg1).unk.playerName); \ + ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ +}) + +#define CopyTrainerCardData(dest, src, _version) ({ \ + (dest) = *((struct TrainerCard *)(src)); \ + (dest).version = _version; \ +}) + void sub_811586C(u8 windowId, u8 arg1, u8 stringId) { FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); @@ -917,3 +957,720 @@ void sub_8116738(u8 taskId) break; } } + +u32 sub_8116D10(struct UnkStruct_Group *arg0, s32 id) +{ + struct UnkStruct_x20 *structPtr = &arg0->field_0->arr[id]; + + if (gUnknown_203B058 == 4 && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_FIRE_RED && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_LEAF_GREEN) + { + if (!(gSaveBlock2Ptr->specialSaveWarpFlags & CHAMPION_SAVEWARP)) + return 1; + else if (structPtr->unk.field_0.unk_00.isChampion) + return 0; + } + else + { + return 0; + } + + return 2; +} + +void sub_8116D60(struct UnkStruct_Group *data, s32 id) +{ + data->field_F = id; + LoadWirelessStatusIndicatorSpriteGfx(); + CreateWirelessStatusIndicatorSprite(0, 0); + RedrawListMenu(data->listTaskId); + sub_8018404(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, sub_8118658(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); +} + +u8 sub_8116DE0(void) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_8116E1C, 0); + gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); + + dataPtr->state = 0; + dataPtr->textState = 0; + + gUnknown_3002028 = dataPtr; + + return taskId; +} + +void sub_8116E1C(u8 taskId) +{ + struct UnkStruct_Group *data = gUnknown_203B05C.group; + + switch (data->state) + { + case 0: + sub_80FAF58(0, 0, 0); + sub_800B1F4(); + OpenLink(); + sub_80FBBD8(); + sub_80FB128(TRUE); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 2; + break; + case 2: + sub_811A650(data->field_4, 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; + } +} + +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; +} + +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.field_0.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; +} + +void sub_8116F94(u8 arg0, s32 id, u8 arg2) +{ + struct UnkStruct_Group *data = gUnknown_203B05C.group; + u8 var = sub_8116F5C(data, id); + + sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id); +} + +u8 sub_8116FE4(void) +{ + struct UnkStruct_Group *data = gUnknown_203B05C.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; +} + +void sub_8117100(u8 taskId) +{ + CB2_ReturnFromLinkTrade(); + DestroyTask(taskId); +} + +u8 sub_8117118(void) +{ + u8 taskId = CreateTask(sub_8117100, 0); + + return taskId; +} + +void sub_8117130(u8 taskId) +{ + u32 monId = sub_811B1EC(&gUnknown_203B06C, 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); + sub_811B148(&gUnknown_203B06C); + DestroyTask(taskId); + } + break; + } +} + +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; + } +} + +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(); +} + +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(); +} + +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(); +} + +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(); +} + +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; +} + +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(); + sub_80FAF58(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(); +} + +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; + } +} + +void sub_8117990(void) +{ + CreateTask(sub_8117900, 0); +} + +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); + gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_18 = arg0; + gSpecialVar_Result = 0; +} + +void sub_8117A0C(u8 taskId) +{ + struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + struct WindowTemplate winTemplate; + s32 val; + + switch (data->state) + { + case 0: + gUnknown_203B058 = data->field_18; + gUnknown_203B059 = 2; + sub_80FAF58(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(0x70); + data->field_0 = AllocZeroed(0xA0); + data->field_8 = AllocZeroed(0xA0); + sub_811A650(data->field_4, 4); + sub_811A5E4(data->field_0->arr, 5); + LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.field_0, 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 (gMain.newKeys & 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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 8; + break; + } + break; + case 8: + val = sub_80FA6FC(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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++; + sub_8018404(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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.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; + } +} 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 -- cgit v1.2.3 From 2908c9fa954b2e4b6afa70f3686853ea69cf8569 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 20 Jan 2020 15:17:34 -0500 Subject: Document some misc small scripts --- asm/field_control_avatar.s | 12 +- data/event_scripts.s | 13 +- data/maps/DiglettsCave_NorthEntrance/map.json | 2 +- data/maps/DiglettsCave_NorthEntrance/scripts.inc | 4 +- data/maps/DiglettsCave_NorthEntrance/text.inc | 2 +- data/maps/DiglettsCave_SouthEntrance/map.json | 2 +- data/maps/DiglettsCave_SouthEntrance/scripts.inc | 4 +- data/maps/DiglettsCave_SouthEntrance/text.inc | 2 +- data/maps/FourIsland/map.json | 2 +- data/maps/FourIsland/scripts.inc | 50 ++--- data/maps/FourIsland_PokemonDayCare/map.json | 2 +- data/maps/FourIsland_PokemonDayCare/scripts.inc | 174 +++++++-------- data/maps/Route22_NorthEntrance/map.json | 4 +- data/maps/Route22_NorthEntrance/scripts.inc | 12 +- data/maps/Route23/map.json | 100 ++++----- data/maps/Route23/scripts.inc | 88 ++++---- data/maps/Route23/text.inc | 2 +- data/maps/Route5_PokemonDayCare/map.json | 2 +- data/maps/Route5_PokemonDayCare/scripts.inc | 2 + data/maps/Route5_PokemonDayCare/text.inc | 60 ++++++ data/maps/Route5_SouthEntrance/text.inc | 61 ------ data/maps/UndergroundPath_EastEntrance/map.json | 2 +- data/maps/UndergroundPath_EastEntrance/scripts.inc | 4 +- data/maps/UndergroundPath_EastEntrance/text.inc | 2 +- data/maps/UndergroundPath_NorthEntrance/map.json | 2 +- .../maps/UndergroundPath_NorthEntrance/scripts.inc | 16 +- data/maps/UndergroundPath_SouthEntrance/map.json | 2 +- .../maps/UndergroundPath_SouthEntrance/scripts.inc | 4 +- data/maps/UndergroundPath_SouthEntrance/text.inc | 2 +- data/maps/UndergroundPath_WestEntrance/map.json | 2 +- data/maps/UndergroundPath_WestEntrance/scripts.inc | 4 +- data/maps/UndergroundPath_WestEntrance/text.inc | 2 +- data/maps/UnionRoom/map.json | 34 +-- data/maps/UnionRoom/scripts.inc | 36 ++-- data/scripts/day_care.inc | 233 +++++--------------- data/scripts/obtain_item.inc | 16 +- data/scripts/route23.inc | 181 ++++++++-------- data/scripts/test.inc | 20 +- data/scripts/trainer_tower.inc | 2 +- data/specials.inc | 2 +- data/text/day_care.inc | 130 ++++++++++++ include/constants/daycare.h | 27 +++ include/constants/flags.h | 16 +- include/constants/global.h | 1 + include/constants/menu.h | 31 +++ include/constants/pokemon.h | 2 + include/constants/region_map.h | 4 +- include/daycare.h | 2 - include/event_scripts.h | 2 +- src/battle_setup.c | 4 +- src/daycare.c | 235 ++++++++++----------- src/script_menu.c | 59 +++--- src/trade_scene.c | 2 +- 53 files changed, 871 insertions(+), 810 deletions(-) create mode 100644 data/maps/Route5_PokemonDayCare/text.inc create mode 100644 data/text/day_care.inc create mode 100644 include/constants/daycare.h 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/data/event_scripts.s b/data/event_scripts.s index f1d28077f..404eeb4b0 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -28,6 +28,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 @@ -739,6 +740,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" @@ -1847,23 +1849,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,6 +2322,7 @@ 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" 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/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/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/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/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/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/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/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/flags.h b/include/constants/flags.h index 982c90fcc..cc65cffa2 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 diff --git a/include/constants/global.h b/include/constants/global.h index 420a9da71..24a61a1e6 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 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/pokemon.h b/include/constants/pokemon.h index c6fc55003..dfbba41d9 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -40,6 +40,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 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/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/event_scripts.h b/include/event_scripts.h index b5e355484..c826fabae 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -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[]; diff --git a/src/battle_setup.c b/src/battle_setup.c index a46191509..06f65dae2 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/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/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/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); -- cgit v1.2.3 From a083f0f57f684eba3bb0f9ae3aeb09edb41f2fc2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 15:24:36 -0500 Subject: through sub_81186C8 --- asm/union_room.s | 946 +-------------------------------------------------- include/link_rfu.h | 5 +- include/union_room.h | 2 +- src/union_room.c | 463 +++++++++++++++++++++++-- 4 files changed, 450 insertions(+), 966 deletions(-) diff --git a/asm/union_room.s b/asm/union_room.s index 5f1ff772a..ba13397da 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,946 +5,6 @@ .text - 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} @@ -3229,7 +2289,7 @@ _08119ACA: ldr r0, [r5] adds r0, r4 adds r0, 0x2 - bl sub_8118658 + bl ReadAsU16 lsls r0, 16 lsrs r0, 16 mov r1, sp @@ -5264,7 +4324,7 @@ sub_811AA24: @ 811AA24 bl ConvertInternationalString adds r4, 0x2 adds r0, r4, 0 - bl sub_8118658 + bl ReadAsU16 lsls r0, 16 lsrs r0, 16 mov r1, sp @@ -5302,7 +4362,7 @@ sub_811AA5C: @ 811AA5C adds r0, r4, 0 bl ConvertInternationalString adds r0, r5, 0x2 - bl sub_8118658 + bl ReadAsU16 lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 diff --git a/include/link_rfu.h b/include/link_rfu.h index 6f7e01678..35e5d46ff 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -233,8 +233,8 @@ 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_CardOrNewsWithFriend(u32 arg0); +void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0); void MEvent_CreateTask_Leader(u32 arg0); void sub_80F9E2C(void * data); u8 sub_8116DE0(void); @@ -315,6 +315,7 @@ void RecordMixTrainerNames(void); void sub_80F8CFC(); void sub_80F8D14(); void sub_80FAF74(bool32 a0, bool32 a1); +void ClearAndInitHostRFUtgtGname(void); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/include/union_room.h b/include/union_room.h index 9221b6bf5..b485d2035 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -124,7 +124,7 @@ struct UnkStruct_URoom struct UnkStruct_8019BA8 field_A0[8]; u8 field_C0[12][15]; u8 field_174[48]; - u8 field_1A4[200]; + u8 field_1A4[180]; }; union UnkUnion_Main diff --git a/src/union_room.c b/src/union_room.c index 6b6ef5b98..ac1f081fb 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -3,6 +3,7 @@ #include "battle.h" #include "berry_crush.h" #include "cable_club.h" +#include "decompress.h" #include "dodrio_berry_picking.h" #include "event_data.h" #include "field_control_avatar.h" @@ -11,6 +12,7 @@ #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" @@ -37,8 +39,9 @@ EWRAM_DATA u8 gUnknown_203B058 = 0; EWRAM_DATA u8 gUnknown_203B059 = 0; EWRAM_DATA struct UnionRoomTrade gUnknown_203B06C = {}; -IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024; -IWRAM_DATA struct UnkStruct_Group *gUnknown_3002028; +IWRAM_DATA struct UnkStruct_Leader * gUnknown_3002024; +IWRAM_DATA struct UnkStruct_Group * gUnknown_3002028; +IWRAM_DATA struct UnkStruct_URoom * gUnknown_300202C; void sub_8115A68(u8 taskId); void sub_81161E4(struct UnkStruct_Leader * leader); @@ -53,8 +56,13 @@ u8 sub_8116FE4(void); void sub_8117990(void); void sub_81179A4(void); void sub_8117A0C(u8 taskId); -u16 sub_8118658(const u8 *data); +void sub_8117F20(u8 taskId); +void sub_81182DC(u8 taskId); +void sub_81186E0(u8 taskId); +u16 ReadAsU16(const u8 *data); +bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1); u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1); +u8 sub_811A084(struct UnkStruct_Main4 *arg0, u32 arg1); bool8 sub_811A0F8(u8 *textState, const u8 *str); s8 sub_811A14C(u8 *dest, bool32 arg1); void sub_811A41C(void); @@ -83,6 +91,7 @@ extern const u8 *const gUnknown_8457094[13]; extern const u8 gUnknown_84570C8[]; 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]; @@ -101,13 +110,20 @@ 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_8457E28[]; extern const u8 gUnknown_8457E44[]; 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[]; // These are functions in Emmerald but inlined in FireRed @@ -116,6 +132,11 @@ extern const u8 gUnknown_8459250[]; ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ }) +#define sub_8018404_2(dest, arg1) ({ \ + StringCopy(dest, (arg1).unk.playerName); \ + ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ +}) + #define CopyTrainerCardData(dest, src, _version) ({ \ (dest) = *((struct TrainerCard *)(src)); \ (dest).version = _version; \ @@ -150,7 +171,7 @@ void sub_8115924(u8 windowId) sub_811A444(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, 0); StringCopy(text2, gUnknown_84571B4); - ConvertIntToDecimalStringN(text, sub_8118658(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); + ConvertIntToDecimalStringN(text, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); StringAppend(text2, text); sub_811A444(windowId, 0, text2, 0, 0x10, 0); } @@ -255,7 +276,7 @@ void sub_8115A68(u8 taskId) break; case 6: sub_8116444(data, 7, 10); - if (gMain.newKeys & B_BUTTON) + if (JOY_NEW(B_BUTTON)) { if (data->field_13 == 1) data->state = 23; @@ -268,7 +289,7 @@ void sub_8115A68(u8 taskId) && data->field_13 > (gUnknown_203B059 >> 4) - 1 && (gUnknown_203B059 & 0xF) != 0 && sub_80FC1CC() - && gMain.newKeys & START_BUTTON) + && JOY_NEW(START_BUTTON)) { data->state = 15; sub_80F8F5C(); @@ -308,19 +329,19 @@ void sub_8115A68(u8 taskId) } break; case 11: - switch (sub_811A14C(&data->textState, sub_80FA634(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName))) + switch (sub_811A14C(&data->textState, sub_80FA634(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + sub_80FA670(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + sub_80FA670(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); data->state = 12; break; case -3: @@ -329,7 +350,7 @@ void sub_8115A68(u8 taskId) } break; case 12: - val = sub_80FA6FC(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); if (val == 1) { if (data->field_19 == 5) @@ -360,7 +381,7 @@ void sub_8115A68(u8 taskId) } else { - sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); + sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); data->field_0->arr[data->field_13].field_1A_0 = 0; sub_81165E8(data->field_0); RedrawListMenu(data->listTaskId); @@ -773,7 +794,7 @@ void sub_8116738(u8 taskId) break; case 0: id = ListMenu_ProcessInput(data->listTaskId); - if (gMain.newKeys & A_BUTTON && id != -1) + if (JOY_NEW(A_BUTTON) && id != -1) { // this unused variable along with the assignment is needed to match u32 unusedVar; @@ -800,7 +821,7 @@ void sub_8116738(u8 taskId) PlaySE(SE_WALL_HIT); } } - else if (gMain.newKeys & B_BUTTON) + else if (JOY_NEW(B_BUTTON)) { data->state = 10; } @@ -869,7 +890,7 @@ void sub_8116738(u8 taskId) break; } - if (!sub_80FB9F4() && gMain.newKeys & B_BUTTON) + if (!sub_80FB9F4() && JOY_NEW(B_BUTTON)) data->state = 7; break; case 7: @@ -985,7 +1006,7 @@ void sub_8116D60(struct UnkStruct_Group *data, s32 id) RedrawListMenu(data->listTaskId); sub_8018404(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, sub_8118658(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); + sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); } u8 sub_8116DE0(void) @@ -1536,7 +1557,7 @@ void sub_8117A0C(u8 taskId) break; case 4: sub_8116444(data, 5, 6); - if (gMain.newKeys & B_BUTTON) + if (JOY_NEW(B_BUTTON)) { data->state = 13; DestroyWirelessStatusIndicatorSprite(); @@ -1562,19 +1583,19 @@ void sub_8117A0C(u8 taskId) data->field_0->arr[data->field_13].field_1B = 0; RedrawListMenu(data->listTaskId); data->field_19 = 5; - sub_80FA670(5, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + sub_80FA670(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.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, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + sub_80FA670(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); data->state = 8; break; } break; case 8: - val = sub_80FA6FC(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); if (val == 1) { if (data->field_19 == 5) @@ -1589,7 +1610,7 @@ void sub_8117A0C(u8 taskId) } else { - sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); + sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); data->field_0->arr[data->field_13].field_1A_0 = 0; sub_81165E8(data->field_0); RedrawListMenu(data->listTaskId); @@ -1674,3 +1695,405 @@ void sub_8117A0C(u8 taskId) break; } } + +void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_8117F20, 0); + gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_3002028 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_12 = arg0 - 21; + gSpecialVar_Result = 0; +} + +void sub_8117F20(u8 taskId) +{ + s32 id; + struct WindowTemplate winTemplate1, winTemplate2; + struct UnkStruct_Group *data = gUnknown_203B05C.group; + + switch (data->state) + { + case 0: + sub_80FAF58(data->field_12 + 21, 0, 0); + sub_800B1F4(); + OpenLink(); + sub_80FBBD8(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + AddTextPrinterToWindow1(gUnknown_8458FE4); + data->state = 2; + break; + case 2: + sub_811A650(data->field_4, 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.field_0.unk_0a_0; + + if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7) + { + data->field_F = id; + LoadWirelessStatusIndicatorSpriteGfx(); + CreateWirelessStatusIndicatorSprite(0, 0); + RedrawListMenu(data->listTaskId); + sub_8018404_2(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.field_0.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); + sub_8018404_2(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.field_0.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); + gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_3002028 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_12 = arg0 - 21; + gSpecialVar_Result = 0; +} + +void sub_81182DC(u8 taskId) +{ + s32 id; + struct WindowTemplate winTemplate; + struct UnkStruct_Group *data = gUnknown_203B05C.group; + + switch (data->state) + { + case 0: + sub_80FAF58(0, 0, 0); + sub_800B1F4(); + OpenLink(); + sub_80FBBD8(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + AddTextPrinterToWindow1(gUnknown_84591DC); + data->state = 2; + break; + case 2: + sub_811A650(data->field_4, 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.field_0.unk_0a_7) + { + if (sub_8119FB0(&data->field_0->arr[0].unk.field_0, 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.field_0.unk_00.playerTrainerId)); + PlaySE(SE_PN_ON); + data->state = 4; + } + else + { + PlaySE(SE_BOO); + data->state = 10; + } + } + } + else if (gMain.newKeys & B_BUTTON) + { + data->state = 6; + data->field_14 = 0; + } + data->field_14++; + break; + } + break; + case 4: + AddTextPrinterToWindow1(gUnknown_845928C); + sub_8018404_2(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.field_0.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 + gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom; + + dataPtr = AllocZeroed(sizeof(*gUnknown_203B05C.uRoom)); + gUnknown_203B05C.uRoom = dataPtr; + gUnknown_300202C = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_10 = 0; + dataPtr->field_12 = 0; + + gSpecialVar_Result = 0; + sub_8107D38(0xD0, 1); +} + +u16 ReadAsU16(const u8 *ptr) +{ + return (ptr[1] << 8) | (ptr[0]); +} + +void sub_8118664(u32 nextState, const u8 *src) +{ + struct UnkStruct_URoom *data = gUnknown_203B05C.uRoom; + + data->state = 8; + data->stateAfterPrint = nextState; + if (src != gStringVar4) + StringExpandPlaceholders(gStringVar4, src); +} + +void sub_811868C(const u8 *src) +{ + struct UnkStruct_URoom *data = gUnknown_203B05C.uRoom; + + data->state = 26; + if (src != gStringVar4) + StringExpandPlaceholders(gStringVar4, src); +} + +void sub_81186B0(struct UnkStruct_URoom *data) +{ + memcpy(&gDecompressionBuffer[0x3F00], data->field_0, sizeof(*data->field_0)); +} + +void sub_81186C8(struct UnkStruct_URoom *data) +{ + memcpy(data->field_0, &gDecompressionBuffer[0x3F00], sizeof(*data->field_0)); +} -- cgit v1.2.3 From 1fd20be8e10d9b810095186903acf9a405ce97c4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 17:08:24 -0500 Subject: sub_81186E0 --- asm/union_room.s | 2071 +----------------------------------- include/field_fadetransition.h | 2 + include/link_rfu.h | 7 + include/party_menu.h | 2 +- include/union_room.h | 60 +- include/union_room_player_avatar.h | 7 + src/party_menu.c | 2 +- src/union_room.c | 862 ++++++++++++++- sym_ewram.txt | 2 +- 9 files changed, 911 insertions(+), 2104 deletions(-) diff --git a/asm/union_room.s b/asm/union_room.s index ba13397da..faeafe565 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,2033 +5,6 @@ .text - 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} @@ -3091,8 +1064,8 @@ _0811A0F2: bx r1 thumb_func_end sub_811A0E0 - thumb_func_start sub_811A0F8 -sub_811A0F8: @ 811A0F8 + thumb_func_start PrintOnTextbox +PrintOnTextbox: @ 811A0F8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -3133,7 +1106,7 @@ _0811A144: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_811A0F8 + thumb_func_end PrintOnTextbox thumb_func_start sub_811A14C sub_811A14C: @ 811A14C @@ -5045,7 +3018,7 @@ _0811AFC4: .4byte gUnknown_8457CF8 _0811AFC8: adds r0, r6, 0 adds r0, 0x58 - ldr r4, _0811AFF0 @ =gUnknown_203B06C + ldr r4, _0811AFF0 @ =sUnionRoomTrade ldrh r1, [r4, 0xC] movs r2, 0 movs r3, 0x3 @@ -5061,7 +3034,7 @@ _0811AFC8: movs r4, 0 b _0811AFFA .align 2, 0 -_0811AFF0: .4byte gUnknown_203B06C +_0811AFF0: .4byte sUnionRoomTrade _0811AFF4: .4byte gSpeciesNames _0811AFF8: adds r4, 0x1 @@ -5196,8 +3169,8 @@ _0811B0E4: _0811B0EC: .4byte gSaveBlock1Ptr thumb_func_end InUnionRoom - thumb_func_start sub_811B0F0 -sub_811B0F0: @ 811B0F0 + thumb_func_start HasAtLeastTwoMonsOfLevel30OrLower +HasAtLeastTwoMonsOfLevel30OrLower: @ 811B0F0 push {r4-r6,lr} movs r6, 0 movs r5, 0 @@ -5244,10 +3217,10 @@ _0811B142: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_811B0F0 + thumb_func_end HasAtLeastTwoMonsOfLevel30OrLower - thumb_func_start sub_811B148 -sub_811B148: @ 811B148 + thumb_func_start ResetUnionRoomTrade +ResetUnionRoomTrade: @ 811B148 movs r1, 0 strh r1, [r0] strh r1, [r0, 0x2] @@ -5258,21 +3231,21 @@ sub_811B148: @ 811B148 strh r1, [r0, 0x10] str r1, [r0, 0x14] bx lr - thumb_func_end sub_811B148 + thumb_func_end ResetUnionRoomTrade thumb_func_start Script_ResetUnionRoomTrade Script_ResetUnionRoomTrade: @ 811B15C push {lr} - ldr r0, _0811B168 @ =gUnknown_203B06C - bl sub_811B148 + ldr r0, _0811B168 @ =sUnionRoomTrade + bl ResetUnionRoomTrade pop {r0} bx r0 .align 2, 0 -_0811B168: .4byte gUnknown_203B06C +_0811B168: .4byte sUnionRoomTrade thumb_func_end Script_ResetUnionRoomTrade - thumb_func_start sub_811B16C -sub_811B16C: @ 811B16C + thumb_func_start RegisterTradeMonAndGetIsEgg +RegisterTradeMonAndGetIsEgg: @ 811B16C push {r4,r5,lr} adds r5, r1, 0 movs r1, 0x64 @@ -5307,10 +3280,10 @@ _0811B1AE: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_811B16C + thumb_func_end RegisterTradeMonAndGetIsEgg - thumb_func_start sub_811B1B4 -sub_811B1B4: @ 811B1B4 + thumb_func_start RegisterTradeMon +RegisterTradeMon: @ 811B1B4 push {r4,r5,lr} adds r5, r1, 0 movs r1, 0x64 @@ -5335,7 +3308,7 @@ sub_811B1B4: @ 811B1B4 bx r0 .align 2, 0 _0811B1E8: .4byte gPlayerParty - thumb_func_end sub_811B1B4 + thumb_func_end RegisterTradeMon thumb_func_start sub_811B1EC sub_811B1EC: @ 811B1EC @@ -5410,7 +3383,7 @@ sub_811B258: @ 811B258 strb r0, [r1] cmp r4, 0 beq _0811B288 - ldr r2, _0811B294 @ =gUnknown_203B06C + ldr r2, _0811B294 @ =sUnionRoomTrade ldrh r0, [r2, 0x2] ldrh r1, [r2, 0xA] ldrh r2, [r2, 0xC] @@ -5425,7 +3398,7 @@ _0811B288: bx r0 .align 2, 0 _0811B290: .4byte gUnknown_203B058 -_0811B294: .4byte gUnknown_203B06C +_0811B294: .4byte sUnionRoomTrade thumb_func_end sub_811B258 thumb_func_start sub_811B298 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/link_rfu.h b/include/link_rfu.h index 35e5d46ff..3869ba000 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -316,6 +316,13 @@ 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 sub_80FD338(u16 id, u8 *name); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; 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/union_room.h b/include/union_room.h index b485d2035..fa3ead8dc 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -95,36 +95,36 @@ struct UnkStruct_8019BA8 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[180]; + /* 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[0x84 - 0x58]; + /* 0x084 */ u16 field_98; + /* 0x086 */ u16 field_9A[3]; + /* 0x08C */ struct UnkStruct_8019BA8 field_A0[8]; + /* 0x08C */ u8 field_C0[12][15]; + /* 0x08C */ u8 field_174[48]; + /* 0x08C */ u8 field_1A4[200]; }; union UnkUnion_Main diff --git a/include/union_room_player_avatar.h b/include/union_room_player_avatar.h index 12b7773e7..68d64736d 100644 --- a/include/union_room_player_avatar.h +++ b/include/union_room_player_avatar.h @@ -2,5 +2,12 @@ #define GUARD_UNION_ROOM_PLAYER_AVATAR_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); #endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/src/party_menu.c b/src/party_menu.c index b6ec995ff..df0e70b37 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -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, diff --git a/src/union_room.c b/src/union_room.c index ac1f081fb..babacd299 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -3,10 +3,12 @@ #include "battle.h" #include "berry_crush.h" #include "cable_club.h" +#include "data.h" #include "decompress.h" #include "dodrio_berry_picking.h" #include "event_data.h" #include "field_control_avatar.h" +#include "field_fadetransition.h" #include "field_weather.h" #include "link.h" #include "link_rfu.h" @@ -22,6 +24,7 @@ #include "save_location.h" #include "script.h" #include "script_pokemon_util.h" +#include "start_menu.h" #include "task.h" #include "trade.h" #include "trade_scene.h" @@ -33,11 +36,12 @@ #include "constants/maps.h" #include "constants/cable_club.h" #include "constants/field_weather.h" +#include "constants/species.h" EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; EWRAM_DATA u8 gUnknown_203B058 = 0; EWRAM_DATA u8 gUnknown_203B059 = 0; -EWRAM_DATA struct UnionRoomTrade gUnknown_203B06C = {}; +EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; IWRAM_DATA struct UnkStruct_Leader * gUnknown_3002024; IWRAM_DATA struct UnkStruct_Group * gUnknown_3002028; @@ -60,11 +64,20 @@ void sub_8117F20(u8 taskId); void sub_81182DC(u8 taskId); void sub_81186E0(u8 taskId); u16 ReadAsU16(const u8 *data); +void sub_8119904(struct UnkStruct_URoom * uRoom); +bool32 sub_8119944(struct UnkStruct_URoom * uRoom); +u8 sub_8119B94(void); +u8 sub_8119E84(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1); u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1); u8 sub_811A084(struct UnkStruct_Main4 *arg0, u32 arg1); -bool8 sub_811A0F8(u8 *textState, const u8 *str); +void sub_811A0B4(const u8 * str); +void sub_811A0E0(void); +bool8 PrintOnTextbox(u8 *textState, const u8 *str); s8 sub_811A14C(u8 *dest, bool32 arg1); +s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); +s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); +void sub_811A3F8(void); void sub_811A41C(void); void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count); @@ -74,8 +87,27 @@ u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2); void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); -void sub_811B148(struct UnionRoomTrade *trade); +bool32 sub_811A9B8(void); +u32 sub_811A9FC(u32 a0); +u32 sub_811AA24(struct UnkStruct_x20 * unkX20); +s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender); +u32 sub_811ADC4(s16 a0, struct UnkStruct_Main0 * a1); +s32 sub_811ADD0(u32 type, u32 species); +void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender); +void sub_811AECC(u8 *dst, u8 arg1); +bool32 sub_811B0A4(struct UnkStruct_URoom *arg0); +bool32 HasAtLeastTwoMonsOfLevel30OrLower(void); +void ResetUnionRoomTrade(struct UnionRoomTrade *trade); +bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade); +void RegisterTradeMon(u32 monId, struct UnionRoomTrade *trade); u32 sub_811B1EC(struct UnionRoomTrade *trade, u8 mpId); +void sub_811B258(bool32 a0); +void sub_811B298(void); +u8 sub_811B2A8(s32 a0); +u8 sub_811B2D8(struct UnkStruct_URoom *arg0); +void sub_811B31C(u8 *dest, struct UnkStruct_URoom *uRoom, bool8 gender); +u8 sub_811B754(struct UnkStruct_8019BA8 * ptr); +void sub_811BA78(void); extern const u8 *const gUnknown_8456C74[]; extern const struct WindowTemplate gUnknown_8456CD0; @@ -86,6 +118,14 @@ extern const struct ListMenuTemplate gUnknown_8456D34; extern const struct WindowTemplate gUnknown_8456D4C; extern const struct WindowTemplate gUnknown_8456D54; extern const struct ListMenuTemplate gUnknown_8456DDC; +extern const struct WindowTemplate gUnknown_8456DF4; +extern const struct ListMenuTemplate gUnknown_8456E1C; +extern const struct WindowTemplate gUnknown_8456E34; +extern const struct ListMenuTemplate gUnknown_8456E54; +extern const struct WindowTemplate gUnknown_8456E6C; +extern const struct ListMenuTemplate gUnknown_8456F04; +extern const struct WindowTemplate gUnknown_8456F24; +extern const struct ListMenuTemplate gUnknown_8456F7C; extern const struct UnkStruct_Shared gUnknown_8457034; extern const u8 *const gUnknown_8457094[13]; extern const u8 gUnknown_84570C8[]; @@ -114,8 +154,36 @@ 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_8457E28[]; extern const u8 gUnknown_8457E44[]; +extern const u8 gUnknown_8457E60[]; +extern const u8 gUnknown_8457F90[]; +extern const u8 *const gUnknown_84580F4[][4]; +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 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_8458FC8[]; extern const u8 gUnknown_8458FE4[]; extern const u8 gUnknown_84591DC[]; @@ -271,7 +339,7 @@ void sub_8115A68(u8 taskId) data->state = 5; break; case 5: - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) data->state = 6; break; case 6: @@ -308,7 +376,7 @@ void sub_8115A68(u8 taskId) break; case 10: id = ((gUnknown_203B058 & 0xF) == 2) ? 1 : 0; - if (sub_811A0F8(&data->textState, gUnknown_845767C[id])) + if (PrintOnTextbox(&data->textState, gUnknown_845767C[id])) { data->field_13 = sub_81165E8(data->field_0); RedrawListMenu(data->listTaskId); @@ -317,13 +385,13 @@ void sub_8115A68(u8 taskId) break; case 29: id = ((gUnknown_203B059 & 0xF) == 2) ? 0 : 1; - if (sub_811A0F8(&data->textState, gUnknown_845767C[id])) + if (PrintOnTextbox(&data->textState, gUnknown_845767C[id])) { data->state = 21; } break; case 7: - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) { data->state = 11; } @@ -397,7 +465,7 @@ void sub_8115A68(u8 taskId) } break; case 13: - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) data->state = 14; break; case 14: @@ -405,7 +473,7 @@ void sub_8115A68(u8 taskId) data->state = 17; break; case 15: - if (sub_811A0F8(&data->textState, gUnknown_8457514)) + if (PrintOnTextbox(&data->textState, gUnknown_8457514)) data->state = 16; break; case 16: @@ -424,7 +492,7 @@ void sub_8115A68(u8 taskId) } break; case 19: - if (sub_811A0F8(&data->textState, gUnknown_8457530)) + if (PrintOnTextbox(&data->textState, gUnknown_8457530)) data->state = 20; break; case 20: @@ -463,7 +531,7 @@ void sub_8115A68(u8 taskId) } break; case 30: - if (sub_811A0F8(&data->textState, gUnknown_8457610)) + if (PrintOnTextbox(&data->textState, gUnknown_8457610)) data->state = 23; break; case 21: @@ -754,7 +822,7 @@ void sub_8116738(u8 taskId) data->state = 1; break; case 1: - if (sub_811A0F8(&data->textState, gUnknown_84591B8[gSpecialVar_0x8004])) + if (PrintOnTextbox(&data->textState, gUnknown_84591B8[gSpecialVar_0x8004])) data->state = 2; break; case 2: @@ -833,7 +901,7 @@ void sub_8116738(u8 taskId) break; case 5: sub_811631C(gStringVar4, gUnknown_203B058); - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) { sub_8018404(gStringVar1, data->field_0->arr[data->field_F]); data->state = 6; @@ -867,7 +935,7 @@ void sub_8116738(u8 taskId) break; case 5: sub_81163B0(gStringVar4, gUnknown_203B058); - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) { sub_80FB9E4(7, 0); StringCopy(gStringVar1, gUnknown_8456C74[gUnknown_203B058]); @@ -877,7 +945,7 @@ void sub_8116738(u8 taskId) case 7: if (data->field_15 > 0xF0) { - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) { sub_80FB9E4(12, 0); data->field_15 = 0; @@ -894,7 +962,7 @@ void sub_8116738(u8 taskId) data->state = 7; break; case 7: - if (sub_811A0F8(&data->textState, gUnknown_845771C)) + if (PrintOnTextbox(&data->textState, gUnknown_845771C)) data->state = 8; break; case 8: @@ -941,7 +1009,7 @@ void sub_8116738(u8 taskId) break; case 13: DestroyWirelessStatusIndicatorSprite(); - if (sub_811A0F8(&data->textState, gUnknown_8457754[sub_80FB9F4()])) + if (PrintOnTextbox(&data->textState, gUnknown_8457754[sub_80FB9F4()])) { gSpecialVar_Result = 6; data->state = 23; @@ -954,14 +1022,14 @@ void sub_8116738(u8 taskId) break; case 15: DestroyWirelessStatusIndicatorSprite(); - if (sub_811A0F8(&data->textState, gUnknown_8457754[sub_80FB9F4()])) + if (PrintOnTextbox(&data->textState, gUnknown_8457754[sub_80FB9F4()])) { gSpecialVar_Result = 8; data->state = 23; } break; case 19: - if (sub_811A0F8(&data->textState, gStringVar4)) + if (PrintOnTextbox(&data->textState, gStringVar4)) { gSpecialVar_Result = 8; data->state = 23; @@ -1191,7 +1259,7 @@ u8 sub_8117118(void) void sub_8117130(u8 taskId) { - u32 monId = sub_811B1EC(&gUnknown_203B06C, GetMultiplayerId()); + u32 monId = sub_811B1EC(&sUnionRoomTrade, GetMultiplayerId()); switch (gTasks[taskId].data[0]) { @@ -1222,7 +1290,7 @@ void sub_8117130(u8 taskId) gSelectedTradeMonPositions[TRADE_PARTNER] = PARTY_SIZE; gMain.savedCallback = CB2_ReturnToField; SetMainCallback2(CB2_InitTradeAnim_LinkTrade); - sub_811B148(&gUnknown_203B06C); + ResetUnionRoomTrade(&sUnionRoomTrade); DestroyTask(taskId); } break; @@ -1954,7 +2022,7 @@ void sub_81182DC(u8 taskId) } } } - else if (gMain.newKeys & B_BUTTON) + else if (JOY_NEW(B_BUTTON)) { data->state = 6; data->field_14 = 0; @@ -2097,3 +2165,753 @@ void sub_81186C8(struct UnkStruct_URoom *data) { memcpy(data->field_0, &gDecompressionBuffer[0x3F00], sizeof(*data->field_0)); } + +void sub_81186E0(u8 taskId) +{ + u32 id = 0; + s32 var5 = 0; + s32 playerGender = 0; + struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + s16 *taskData = gTasks[taskId].data; + + switch (data->state) + { + case 0: + data->field_4 = AllocZeroed(0x70); + data->field_C = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x100); + data->field_8 = AllocZeroed(0x20); + sub_811A5E4(data->field_0->arr, 8); + gUnknown_203B058 = 0x40; + data->field_20 = sub_8119E84(data->field_C, data->field_4, 9); + sub_811B754(data->field_A0); + sub_811BB68(); + data->state = 1; + break; + case 1: + sub_811BAAC(data->spriteIds, taskData[0]); + if (++taskData[0] == 8) + data->state = 2; + break; + case 2: + sub_80FAF58(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, 4); + sub_811A650(data->field_C, 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 = sub_811ADC4(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.field_0, 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 = sub_811ADC4(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 = sub_811ADC4(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 = sub_811ADC4(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 = sub_811ADC4(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 = sub_80FD338(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.field_0, gUnknown_203B058); + data->field_12 = taskData[1]; + data->state = 20; + taskData[3] = 0; + break; + case 1: + case -1: + playerGender = sub_811ADC4(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 = sub_811ADC4(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 = sub_811ADC4(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 = sub_80FD338(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(gUnknown_203B05C.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.field_0.type, data->field_0->arr[var5].unk.field_0.species)) + { + case 0: + sub_8018404_2(gStringVar1, data->field_0->arr[var5]); + sub_8118664(49, gUnknown_8458E70); + taskData[1] = var5; + break; + case 1: + sub_8018404_2(gStringVar1, data->field_0->arr[var5]); + StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); + sub_8118664(46, gUnknown_8458ED0); + break; + case 2: + sub_8018404_2(gStringVar1, data->field_0->arr[var5]); + StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.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.field_0.unk_00, sizeof(gUnknown_203B064)); + gUnionRoomRequestedMonType = data->field_0->arr[taskData[1]].unk.field_0.type; + gUnionRoomOfferedSpecies = data->field_0->arr[taskData[1]].unk.field_0.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.field_0, 0x44); + sub_8018404_2(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; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 9ceae4842..ce1609643 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -373,7 +373,7 @@ gUnionRoomOfferedSpecies: @ 203B068 gUnionRoomRequestedMonType: @ 203B06A .space 0x2 -gUnknown_203B06C: @ 203B06C +sUnionRoomTrade: @ 203B06C .space 0x18 gUnknown_203B084: @ 203B084 -- cgit v1.2.3 From 5e0a845fc491590a7bf7d9e9cb99cf1f57733665 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 20:21:58 -0500 Subject: finish union_room.s code decomp --- asm/union_room.s | 3687 ------------------------------------------- include/event_object_lock.h | 1 + include/global.fieldmap.h | 6 +- include/link_rfu.h | 2 + include/union_room.h | 2 +- src/event_object_lock.c | 2 +- src/union_room.c | 1476 ++++++++++++++++- sym_ewram.txt | 2 +- 8 files changed, 1428 insertions(+), 3750 deletions(-) diff --git a/asm/union_room.s b/asm/union_room.s index faeafe565..2428f2984 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -5,3691 +5,4 @@ .text - 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 ReadAsU16 - 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 PrintOnTextbox -PrintOnTextbox: @ 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 PrintOnTextbox - - 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 ReadAsU16 - 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 ReadAsU16 - 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 @ =sUnionRoomTrade - 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 sUnionRoomTrade -_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 HasAtLeastTwoMonsOfLevel30OrLower -HasAtLeastTwoMonsOfLevel30OrLower: @ 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 HasAtLeastTwoMonsOfLevel30OrLower - - thumb_func_start ResetUnionRoomTrade -ResetUnionRoomTrade: @ 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 ResetUnionRoomTrade - - thumb_func_start Script_ResetUnionRoomTrade -Script_ResetUnionRoomTrade: @ 811B15C - push {lr} - ldr r0, _0811B168 @ =sUnionRoomTrade - bl ResetUnionRoomTrade - pop {r0} - bx r0 - .align 2, 0 -_0811B168: .4byte sUnionRoomTrade - thumb_func_end Script_ResetUnionRoomTrade - - thumb_func_start RegisterTradeMonAndGetIsEgg -RegisterTradeMonAndGetIsEgg: @ 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 RegisterTradeMonAndGetIsEgg - - thumb_func_start RegisterTradeMon -RegisterTradeMon: @ 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 RegisterTradeMon - - 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 @ =sUnionRoomTrade - 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 sUnionRoomTrade - 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/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/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/link_rfu.h b/include/link_rfu.h index 3869ba000..874f62511 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -323,6 +323,8 @@ void sub_80FBC00(void); void sub_80FBD6C(u32 a0); void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2); bool32 sub_80FD338(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/union_room.h b/include/union_room.h index fa3ead8dc..fcd970f7d 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -118,7 +118,7 @@ struct UnkStruct_URoom /* 0x049 */ u8 field_49; /* 0x04A */ u8 field_4A; /* 0x04C */ u16 field_4C[6]; - /* 0x058 */ u8 field_58[0x84 - 0x58]; + /* 0x058 */ u8 field_58[4][11]; /* 0x084 */ u16 field_98; /* 0x086 */ u16 field_9A[3]; /* 0x08C */ struct UnkStruct_8019BA8 field_A0[8]; 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/union_room.c b/src/union_room.c index babacd299..dc1c2a3fa 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -6,9 +6,13 @@ #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" @@ -21,6 +25,8 @@ #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" @@ -38,6 +44,7 @@ #include "constants/field_weather.h" #include "constants/species.h" +EWRAM_DATA u8 sUnionRoomPlayerName[12] = {}; EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; EWRAM_DATA u8 gUnknown_203B058 = 0; EWRAM_DATA u8 gUnknown_203B059 = 0; @@ -66,46 +73,50 @@ void sub_81186E0(u8 taskId); u16 ReadAsU16(const u8 *data); void sub_8119904(struct UnkStruct_URoom * uRoom); bool32 sub_8119944(struct UnkStruct_URoom * uRoom); +void sub_81199FC(u8 taskId); u8 sub_8119B94(void); -u8 sub_8119E84(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); -bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1); -u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1); -u8 sub_811A084(struct UnkStruct_Main4 *arg0, u32 arg1); -void sub_811A0B4(const u8 * str); -void sub_811A0E0(void); +u8 sub_8119E84(struct UnkStruct_Main4 * arg0, struct UnkStruct_Main4 * arg1, u32 arg2); +bool32 sub_8119FB0(struct GFtgtGname * arg0, s16 arg1); +u8 sub_811A054(struct UnkStruct_Main4 * arg0, u32 arg1); +u8 sub_811A084(struct UnkStruct_Main4 * arg0, u32 arg1); +bool32 sub_811A0B4(const u8 * str); +bool32 sub_811A0E0(void); bool8 PrintOnTextbox(u8 *textState, const u8 *str); s8 sub_811A14C(u8 *dest, bool32 arg1); -s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); -s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); +s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate); +s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate, struct UnkStruct_Main0 * arg6); void sub_811A3F8(void); void sub_811A41C(void); void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); -void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count); -void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count); -bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1); -u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); -u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2); -void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); -void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); +void sub_811A5E4(struct UnkStruct_x20 * arg0, u8 count); +void sub_811A650(struct UnkStruct_Main4 * arg0, u8 count); +bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared * arg1); +bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1); +u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1); +u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2); +void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); +void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); bool32 sub_811A9B8(void); -u32 sub_811A9FC(u32 a0); +u32 sub_811A9FC(s32 a0); u32 sub_811AA24(struct UnkStruct_x20 * unkX20); s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender); -u32 sub_811ADC4(s16 a0, struct UnkStruct_Main0 * a1); +s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1); +s32 sub_811ADC4(s32 a0, struct UnkStruct_Main0 * a1); s32 sub_811ADD0(u32 type, u32 species); void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender); void sub_811AECC(u8 *dst, u8 arg1); -bool32 sub_811B0A4(struct UnkStruct_URoom *arg0); +s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom * arg3); +bool32 sub_811B0A4(struct UnkStruct_URoom * arg0); bool32 HasAtLeastTwoMonsOfLevel30OrLower(void); -void ResetUnionRoomTrade(struct UnionRoomTrade *trade); -bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade); -void RegisterTradeMon(u32 monId, struct UnionRoomTrade *trade); -u32 sub_811B1EC(struct UnionRoomTrade *trade, u8 mpId); +void ResetUnionRoomTrade(struct UnionRoomTrade * trade); +bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade * trade); +void RegisterTradeMon(u32 monId, struct UnionRoomTrade * trade); +u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 mpId); void sub_811B258(bool32 a0); void sub_811B298(void); u8 sub_811B2A8(s32 a0); -u8 sub_811B2D8(struct UnkStruct_URoom *arg0); -void sub_811B31C(u8 *dest, struct UnkStruct_URoom *uRoom, bool8 gender); +u8 sub_811B2D8(struct UnkStruct_URoom * arg0); +void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender); u8 sub_811B754(struct UnkStruct_8019BA8 * ptr); void sub_811BA78(void); @@ -124,11 +135,13 @@ extern const struct WindowTemplate gUnknown_8456E34; extern const struct ListMenuTemplate gUnknown_8456E54; extern const struct WindowTemplate gUnknown_8456E6C; extern const struct ListMenuTemplate gUnknown_8456F04; +extern const struct WindowTemplate gUnknown_8456F1C; extern const struct WindowTemplate gUnknown_8456F24; extern const struct ListMenuTemplate gUnknown_8456F7C; extern const struct UnkStruct_Shared gUnknown_8457034; extern const u8 *const gUnknown_8457094[13]; extern const u8 gUnknown_84570C8[]; +extern const u8 gUnknown_84571B0[]; extern const u8 gUnknown_84571B4[]; extern const u8 gUnknown_84571B8[]; extern const u8 gUnknown_84571E0[]; @@ -159,17 +172,31 @@ 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[]; @@ -184,6 +211,8 @@ 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[]; @@ -192,6 +221,12 @@ 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_8459378[]; +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[]; // These are functions in Emmerald but inlined in FireRed @@ -206,10 +241,15 @@ extern const u8 *const gUnknown_845933C[]; }) #define CopyTrainerCardData(dest, src, _version) ({ \ - (dest) = *((struct TrainerCard *)(src)); \ + (dest) = *((struct TrainerCard * )(src)); \ (dest).version = _version; \ }) +#define GetStringRightAlignXOffset(_fontId, _string, _maxWidth) ({ \ + u16 strWidth = GetStringWidth(_fontId, _string, 0); \ + _maxWidth - strWidth; \ +}) + void sub_811586C(u8 windowId, u8 arg1, u8 stringId) { FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); @@ -260,7 +300,7 @@ void sub_811599C(u8 *dst, u8 caseId) void TryBecomeLinkLeader(void) { u8 taskId; - struct UnkStruct_Leader *dataPtr; + struct UnkStruct_Leader * dataPtr; taskId = CreateTask(sub_8115A68, 0); gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); @@ -274,7 +314,7 @@ void TryBecomeLinkLeader(void) void sub_8115A68(u8 taskId) { u32 id, val; - struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = gUnknown_203B05C.leader; switch (data->state) { @@ -570,7 +610,7 @@ void sub_8115A68(u8 taskId) } } -void sub_81161E4(struct UnkStruct_Leader *data) +void sub_81161E4(struct UnkStruct_Leader * data) { ClearWindowTilemap(data->field_11); ClearStdWindowAndFrame(data->field_11, FALSE); @@ -665,7 +705,7 @@ void sub_81163B0(u8 *dst, u8 caseId) } } -bool8 sub_8116444(struct UnkStruct_Leader *data, u32 arg1, u32 arg2) +bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) { switch (sub_8116524(data->field_0)) { @@ -688,7 +728,7 @@ bool8 sub_8116444(struct UnkStruct_Leader *data, u32 arg1, u32 arg2) void sub_81164C8(u8 arg0, s32 id, u8 arg2) { - struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = gUnknown_203B05C.leader; u8 var = 0; switch (data->field_0->arr[id].field_1A_0) @@ -705,9 +745,9 @@ void sub_81164C8(u8 arg0, s32 id, u8 arg2) sub_811A910(arg0, 0, arg2, &data->field_0->arr[id], var, id); } -u8 sub_8116524(struct UnkStruct_Main0 *arg0) +u8 sub_8116524(struct UnkStruct_Main0 * arg0) { - struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = gUnknown_203B05C.leader; u8 ret = 0; u8 i; s32 id; @@ -746,9 +786,9 @@ u8 sub_8116524(struct UnkStruct_Main0 *arg0) return ret; } -u8 sub_81165E8(struct UnkStruct_Main0 *arg0) +u8 sub_81165E8(struct UnkStruct_Main0 * arg0) { - struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = gUnknown_203B05C.leader; u8 copiedCount; s32 i; u8 ret; @@ -793,7 +833,7 @@ u8 sub_81165E8(struct UnkStruct_Main0 *arg0) void TryJoinLinkGroup(void) { u8 taskId; - struct UnkStruct_Group *dataPtr; + struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8116738, 0); gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); @@ -807,7 +847,7 @@ void TryJoinLinkGroup(void) void sub_8116738(u8 taskId) { s32 id; - struct UnkStruct_Group *data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = gUnknown_203B05C.group; switch (data->state) { @@ -1047,9 +1087,9 @@ void sub_8116738(u8 taskId) } } -u32 sub_8116D10(struct UnkStruct_Group *arg0, s32 id) +u32 sub_8116D10(struct UnkStruct_Group * arg0, s32 id) { - struct UnkStruct_x20 *structPtr = &arg0->field_0->arr[id]; + struct UnkStruct_x20 * structPtr = &arg0->field_0->arr[id]; if (gUnknown_203B058 == 4 && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_FIRE_RED && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_LEAF_GREEN) { @@ -1066,7 +1106,7 @@ u32 sub_8116D10(struct UnkStruct_Group *arg0, s32 id) return 2; } -void sub_8116D60(struct UnkStruct_Group *data, s32 id) +void sub_8116D60(struct UnkStruct_Group * data, s32 id) { data->field_F = id; LoadWirelessStatusIndicatorSpriteGfx(); @@ -1080,7 +1120,7 @@ void sub_8116D60(struct UnkStruct_Group *data, s32 id) u8 sub_8116DE0(void) { u8 taskId; - struct UnkStruct_Group *dataPtr; + struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8116E1C, 0); gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); @@ -1095,7 +1135,7 @@ u8 sub_8116DE0(void) void sub_8116E1C(u8 taskId) { - struct UnkStruct_Group *data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = gUnknown_203B05C.group; switch (data->state) { @@ -1156,7 +1196,7 @@ bool32 sub_8116F28(u32 arg0, u32 id) return FALSE; } -u8 sub_8116F5C(struct UnkStruct_Group *data, u32 id) +u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) { if (data->field_0->arr[id].field_1A_0 == 1) { @@ -1173,7 +1213,7 @@ u8 sub_8116F5C(struct UnkStruct_Group *data, u32 id) void sub_8116F94(u8 arg0, s32 id, u8 arg2) { - struct UnkStruct_Group *data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = gUnknown_203B05C.group; u8 var = sub_8116F5C(data, id); sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id); @@ -1181,7 +1221,7 @@ void sub_8116F94(u8 arg0, s32 id, u8 arg2) u8 sub_8116FE4(void) { - struct UnkStruct_Group *data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = gUnknown_203B05C.group; u8 ret = 0; u8 i; s32 id; @@ -1259,7 +1299,7 @@ u8 sub_8117118(void) void sub_8117130(u8 taskId) { - u32 monId = sub_811B1EC(&sUnionRoomTrade, GetMultiplayerId()); + u32 monId = GetPartyPositionOfRegisteredMon(&sUnionRoomTrade, GetMultiplayerId()); switch (gTasks[taskId].data[0]) { @@ -1409,7 +1449,7 @@ void sub_8117534(void) void sub_8117594(void *arg0, bool32 arg1) { - TrainerCard_GenerateCardForLinkPlayer((struct TrainerCard *)arg0); + TrainerCard_GenerateCardForLinkPlayer((struct TrainerCard * )arg0); if (arg1) *((u16 *)(arg0 + sizeof(struct TrainerCard))) = GetWonderCardFlagID(); else @@ -1560,7 +1600,7 @@ void sub_81179A4(void) void MEvent_CreateTask_Leader(u32 arg0) { u8 taskId; - struct UnkStruct_Leader *dataPtr; + struct UnkStruct_Leader * dataPtr; taskId = CreateTask(sub_8117A0C, 0); gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); @@ -1573,7 +1613,7 @@ void MEvent_CreateTask_Leader(u32 arg0) void sub_8117A0C(u8 taskId) { - struct UnkStruct_Leader *data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = gUnknown_203B05C.leader; struct WindowTemplate winTemplate; s32 val; @@ -1767,7 +1807,7 @@ void sub_8117A0C(u8 taskId) void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0) { u8 taskId; - struct UnkStruct_Group *dataPtr; + struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8117F20, 0); gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); @@ -1783,7 +1823,7 @@ void sub_8117F20(u8 taskId) { s32 id; struct WindowTemplate winTemplate1, winTemplate2; - struct UnkStruct_Group *data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = gUnknown_203B05C.group; switch (data->state) { @@ -1933,7 +1973,7 @@ void sub_8117F20(u8 taskId) void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0) { u8 taskId; - struct UnkStruct_Group *dataPtr; + struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_81182DC, 0); gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); @@ -1949,7 +1989,7 @@ void sub_81182DC(u8 taskId) { s32 id; struct WindowTemplate winTemplate; - struct UnkStruct_Group *data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = gUnknown_203B05C.group; switch (data->state) { @@ -2111,7 +2151,7 @@ void sub_81182DC(u8 taskId) void UnionRoomSpecial(void) { - struct UnkStruct_URoom *dataPtr; + struct UnkStruct_URoom * dataPtr; ClearAndInitHostRFUtgtGname(); CreateTask(sub_81186E0, 10); @@ -2139,7 +2179,7 @@ u16 ReadAsU16(const u8 *ptr) void sub_8118664(u32 nextState, const u8 *src) { - struct UnkStruct_URoom *data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; data->state = 8; data->stateAfterPrint = nextState; @@ -2149,19 +2189,19 @@ void sub_8118664(u32 nextState, const u8 *src) void sub_811868C(const u8 *src) { - struct UnkStruct_URoom *data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; data->state = 26; if (src != gStringVar4) StringExpandPlaceholders(gStringVar4, src); } -void sub_81186B0(struct UnkStruct_URoom *data) +void sub_81186B0(struct UnkStruct_URoom * data) { memcpy(&gDecompressionBuffer[0x3F00], data->field_0, sizeof(*data->field_0)); } -void sub_81186C8(struct UnkStruct_URoom *data) +void sub_81186C8(struct UnkStruct_URoom * data) { memcpy(data->field_0, &gDecompressionBuffer[0x3F00], sizeof(*data->field_0)); } @@ -2915,3 +2955,1325 @@ void sub_81186E0(u8 taskId) break; } } + +void var_800D_set_xB(void) +{ + if (InUnionRoom() == TRUE) + gSpecialVar_Result = 11; +} + +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]; + } + } +} + +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); + gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom; // Needed to match. + gUnknown_203B05C.uRoom = ptr = AllocZeroed(sizeof(struct UnkStruct_URoom)); + gUnknown_300202C = gUnknown_203B05C.uRoom; + ptr->state = 0; + ptr->textState = 0; + ptr->field_10 = 0; + ptr->field_12 = 0; + sUnionRoomPlayerName[0] = EOS; +} + +void sub_81199FC(u8 taskId) +{ + s32 i; + u8 text[32]; + struct UnkStruct_URoom * structPtr = gUnknown_203B05C.uRoom; + + switch (structPtr->state) + { + case 0: + structPtr->state = 1; + break; + case 1: + sub_80FAF58(0xC, 0, 0); + sub_800B1F4(); + OpenLink(); + sub_80FBC00(); + sub_80FB128(1); + structPtr->state = 2; + break; + case 2: + structPtr->field_4 = AllocZeroed(0x70); + sub_811A650(structPtr->field_4, 4); + structPtr->field_C = AllocZeroed(0x70); + sub_811A650(structPtr->field_C, 4); + structPtr->field_0 = AllocZeroed(0x100); + sub_811A5E4(structPtr->field_0->arr, 8); + structPtr->field_8 = AllocZeroed(0x20); + 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) + { + sub_8018404_2(text, structPtr->field_0->arr[i]); + if (sub_80FD338(ReadAsU16(structPtr->field_0->arr[i].unk.field_0.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(gUnknown_203B05C.uRoom); + sub_80F8DC0(); + DestroyTask(taskId); + break; + } +} + +bool16 BufferUnionRoomPlayerName(void) +{ + if (sUnionRoomPlayerName[0] != EOS) + { + StringCopy(gStringVar1, sUnionRoomPlayerName); + sUnionRoomPlayerName[0] = EOS; + return TRUE; + } + else + { + return FALSE; + } +} + +u8 sub_8119B94(void) +{ + s32 i; + u8 j; + struct UnkStruct_URoom * structPtr = gUnknown_203B05C.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; +} + +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.field_0, sp0.playerName, i); + if (!sub_8116F28(sp0.field_0.unk_0a_0, gTasks[taskId].data[4])) + { + sp0 = gUnknown_8457034; + } + if (sp0.field_0.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); + } + } +} + +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; +} + +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.field_0, ptr[0]->arr[i].unk0.playerName, i); + if (!sub_8116F28(ptr[0]->arr[i].unk0.field_0.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); + } +} + +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; + } +} + +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.field_0, ptr[0]->arr[i].unk0.playerName, i)) + { + sub_8119FB0(&ptr[0]->arr[i].unk0.field_0, gTasks[taskId].data[2]); + } + ptr[0]->arr[i].unk18 = sub_811A694(&ptr[0]->arr[i].unk0, &gUnknown_8457034); + } +} + +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; +} + +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; +} + +bool32 sub_811A0B4(const u8 *src) +{ + LoadStdWindowFrameGfx(); + DrawDialogueFrame(0, 1); + StringExpandPlaceholders(gStringVar4, src); + AddTextPrinterWithCustomSpeedForMessage(FALSE, 1); + return FALSE; +} + +bool32 sub_811A0E0(void) +{ + if (!RunTextPrinters_CheckPrinter0Active()) + { + return TRUE; + } + else + { + return FALSE; + } +} + +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; +} + +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; +} + +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; +} + +void sub_811A1FC(u8 windowId) +{ + ClearStdWindowAndFrame(windowId, TRUE); + RemoveWindow(windowId); +} + +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; +} + +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; +} + +void sub_811A3F8(void) +{ + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); + CopyBgTilemapBufferToVram(0); +} + +void sub_811A41C(void) +{ + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); + CopyBgTilemapBufferToVram(0); + EnableBothScriptContexts(); +} + +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); +} + +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; + } +} + +void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + arg0->arr[i].unk0 = gUnknown_8457034; + arg0->arr[i].unk18 = 0; + } +} + +bool8 sub_811A694(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1) +{ + s32 i; + + for (i = 0; i < 2; i++) + { + if (arg0->field_0.unk_00.playerTrainerId[i] != arg1->field_0.unk_00.playerTrainerId[i]) + { + return TRUE; + } + } + + for (i = 0; i < 8; i++) + { + if (arg0->playerName[i] != arg1->playerName[i]) + { + return TRUE; + } + } + + return FALSE; +} + +bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) +{ + s32 i; + + if (arg0->field_0.unk_0a_0 != arg1->field_0.unk_0a_0) + { + return TRUE; + } + + if (arg0->field_0.unk_0a_7 != arg1->field_0.unk_0a_7) + { + return TRUE; + } + + for (i = 0; i < 4; i++) + { + if (arg0->field_0.unk_04[i] != arg1->field_0.unk_04[i]) + { + return TRUE; + } + } + + if (arg0->field_0.species != arg1->field_0.species) + { + return TRUE; + } + + if (arg0->field_0.type != arg1->field_0.type) + { + return TRUE; + } + + return FALSE; +} + +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; +} + +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; +} + +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.field_0.unk_0a_0; + if (arg3->field_1A_0 == 1 && !(r2 & 0x40)) + { + sub_8018404_2(sp10, *arg3); + sub_811A444(arg0, 2, sp10, arg1, arg2, arg4); + ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.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); + } +} + +void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +{ + u8 sp0[6]; + u8 sp10[30]; + + if (arg3->field_1A_0 == 1) + { + sub_8018404_2(sp10, *arg3); + sub_811A444(arg0, 2, sp10, arg1, arg2, arg4); + ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); + StringCopy(gStringVar4, gUnknown_84571B4); + StringAppend(gStringVar4, sp0); + arg1 += 71; + sub_811A444(arg0, 0, gStringVar4, arg1, arg2, arg4); + } +} + +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; +} + +u32 sub_811A9FC(s32 arg0) +{ + switch (arg0) + { + case 5: + return 1; + case 4: + return 2; + case 8: + return 3; + case 3: + default: + return 0; + } +} + +u32 sub_811AA24(struct UnkStruct_x20 *arg0) +{ + u8 sp0[30]; + sub_8018404_2(sp0, *arg0); + return sub_80FD338(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); +} + +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.field_0.unk_0a_7 && arg1 == 0) + { + sub_8018404_2(gStringVar1, *r5); + r2 = sub_80FD338(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1); + if (r5->unk.field_0.unk_0a_0 == 0x45) + { + StringExpandPlaceholders(gStringVar4, gUnknown_8457F80[r2][playerGender]); + return 2; + } + else + { + sub_811A0B4(gUnknown_8457A34[r2]); + return 1; + } + } + else + { + sub_8018404_2(gStringVar1, *r5); + if (arg1 != 0) + { + playerGender = (r5->unk.field_0.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1; + } + switch (r5->unk.field_0.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; + } +} + +void nullsub_92(u8 windowId, s32 itemId, u8 y) +{ + +} + +void sub_811ABE4(u8 arg0, u8 arg1, struct GFtgtGname * arg2, const u8 * str, u8 arg4) +{ + u8 sp8[4]; + u16 r8 = arg2->species; + u8 r7 = arg2->type; + u8 r9 = arg2->level; + + sub_811A444(arg0, 2, str, 8, arg1, arg4); + if (r8 == SPECIES_EGG) + { + sub_811A444(arg0, 2, gUnknown_8458FBC, 0x44, arg1, arg4); + } + else + { + BlitMoveInfoIcon(arg0, r7 + 1, 0x44, arg1); + sub_811A444(arg0, 2, gSpeciesNames[r8], 0x76, arg1, arg4); + ConvertIntToDecimalStringN(sp8, r9, STR_CONV_MODE_LEFT_ALIGN, 3); + sub_811A444(arg0, 2, sp8, GetStringRightAlignXOffset(2, sp8, 218), arg1, arg4); + } +} + +void sub_811ACA4(u8 windowId, s32 itemId, u8 y) +{ + struct UnkStruct_Leader *leader = gUnknown_203B05C.leader; + struct GFtgtGname *rfu; + s32 i, j; + u8 sp4[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.field_0.species != SPECIES_NONE) + { + j++; + } + if (j == itemId + 1) + { + sub_8018404_2(sp4, leader->field_0->arr[i]); + sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.field_0, sp4, 6); + break; + } + } + } +} + +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.field_0.species != SPECIES_NONE) + { + j++; + } + if (j == arg1 + 1) + { + return i; + } + } + + return -1; +} + +s32 sub_811ADC4(s32 arg1, struct UnkStruct_Main0 *arg0) +{ + return arg0->arr[arg1].unk.field_0.playerGender; +} + +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; + } +} + +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; + } +} + +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; + } +} + +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; +} + +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; +} + +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; +} + +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); +} + +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; +} + +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); +} + +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; +} + +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); + } +} + +void sub_811B298(void) +{ + ScriptContext2_Enable(); + ScriptFreezeObjectEvents(); +} + +u8 sub_811B2A8(s32 linkPlayer) +{ + u8 retval = 0x80; + retval |= gLinkPlayers[linkPlayer].gender << 3; + retval |= gLinkPlayers[linkPlayer].trainerId & 7; + return retval; +} + +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.field_0.playerGender << 3; + retVal |= arg0->field_C->arr[i].unk0.field_0.unk_00.playerTrainerId[0] & 7; + break; + } + } + + return retVal; +} + +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->field_C0[0], gTrainerClassNames[sub_80447F0()]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]); + + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName); + + StringCopy(arg1->field_174, gUnknown_84594B0[trainerCard->stars]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_174); + + ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]); + + ConvertIntToDecimalStringN(arg1->field_C0[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(arg1->field_C0[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, arg1->field_C0[3]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, arg1->field_C0[4]); + + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_84594C4); + StringCopy(gStringVar4, arg1->field_1A4); + + n = trainerCard->linkBattleWins; + if (n > 9999) + { + n = 9999; + } + ConvertIntToDecimalStringN(arg1->field_C0[0], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]); + + n = trainerCard->linkBattleLosses; + if (n > 9999) + { + n = 9999; + } + ConvertIntToDecimalStringN(arg1->field_C0[1], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_C0[1]); + + ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]); + + for (i = 0; i < 4; i++) + { + CopyEasyChatWord(arg1->field_C0[i + 3], trainerCard->var_28[i]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->field_C0[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/sym_ewram.txt b/sym_ewram.txt index ce1609643..176e43bf9 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -352,7 +352,7 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/quest_log.o" .align 2 -gUnknown_203B04C: @ 203B04C +sUnionRoomPlayerName: @ 203B04C .space 0xC gUnknown_203B058: @ 203B058 -- cgit v1.2.3 From d873b1c6aaafb211f1184755b1534d9e9e2891af Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 20 Jan 2020 20:53:50 -0500 Subject: rodata through gUnknown_8456D34 --- asm/union_room.s | 8 -- data/union_room.s | 68 +---------------- ld_script.txt | 2 +- src/union_room.c | 220 +++++++++++++++++++++++++++++++++++++++++------------- sym_bss.txt | 11 +-- sym_ewram.txt | 26 +------ 6 files changed, 175 insertions(+), 160 deletions(-) delete mode 100644 asm/union_room.s diff --git a/asm/union_room.s b/asm/union_room.s deleted file mode 100644 index 2428f2984..000000000 --- a/asm/union_room.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - .align 2, 0 @ Don't pad with nop. diff --git a/data/union_room.s b/data/union_room.s index 9bcc4a193..97a681485 100644 --- a/data/union_room.s +++ b/data/union_room.s @@ -6,70 +6,6 @@ .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 @@ -233,7 +169,7 @@ 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 @@ -1393,7 +1329,7 @@ gUnknown_8459250:: @ 8459250 gUnknown_845928C:: @ 845928C .string "Awaiting a response from the\n" .string "WIRELESS COMMUNICATION SYSTEM.$" - + .align 2 .string "ほかの さんかしゃが そろうまで\n" .string "しょうしょう おまちください$" diff --git a/ld_script.txt b/ld_script.txt index 9d476e13a..ac5fc1ad8 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -242,7 +242,6 @@ SECTIONS { src/menu.o(.text); src/quest_log.o(.text); src/union_room.o(.text); - asm/union_room.o(.text); asm/union_room_player_avatar.o(.text); asm/pokemon_special_anim.o(.text); src/party_menu.o(.text); @@ -528,6 +527,7 @@ SECTIONS { data/decorations.o(.rodata); src/menu.o(.rodata); src/quest_log.o(.rodata); + src/union_room.o(.rodata); data/union_room.o(.rodata); data/pokemon_special_anim.o(.rodata); src/party_menu.o(.rodata); diff --git a/src/union_room.c b/src/union_room.c index dc1c2a3fa..73e146a4d 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -44,19 +44,24 @@ #include "constants/field_weather.h" #include "constants/species.h" -EWRAM_DATA u8 sUnionRoomPlayerName[12] = {}; -EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; -EWRAM_DATA u8 gUnknown_203B058 = 0; -EWRAM_DATA u8 gUnknown_203B059 = 0; -EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; - -IWRAM_DATA struct UnkStruct_Leader * gUnknown_3002024; -IWRAM_DATA struct UnkStruct_Group * gUnknown_3002028; -IWRAM_DATA struct UnkStruct_URoom * gUnknown_300202C; +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; void sub_8115A68(u8 taskId); void sub_81161E4(struct UnkStruct_Leader * leader); bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); +void sub_81164C8(u8 arg0, s32 id, u8 arg2); u8 sub_8116524(struct UnkStruct_Main0 * a0); u8 sub_81165E8(struct UnkStruct_Main0 * a0); void sub_8116738(u8 taskId); @@ -120,12 +125,123 @@ void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender); u8 sub_811B754(struct UnkStruct_8019BA8 * ptr); void sub_811BA78(void); -extern const u8 *const gUnknown_8456C74[]; -extern const struct WindowTemplate gUnknown_8456CD0; -extern const u32 gUnknown_8456CD8[]; -extern const struct WindowTemplate gUnknown_8456CFC; -extern const struct WindowTemplate gUnknown_8456D04; -extern const struct ListMenuTemplate gUnknown_8456D34; +extern const u8 gUnknown_84571AC[]; +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[]; + +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 +}; + +#define _8456CD8(a, b) ((a) | ((b) << 8)) + +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) +}; + +#undef _8456CD8 + +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 +}; + extern const struct WindowTemplate gUnknown_8456D4C; extern const struct WindowTemplate gUnknown_8456D54; extern const struct ListMenuTemplate gUnknown_8456DDC; @@ -303,8 +419,8 @@ void TryBecomeLinkLeader(void) struct UnkStruct_Leader * dataPtr; taskId = CreateTask(sub_8115A68, 0); - gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002024 = dataPtr; + sUnionRoomMain.leader = dataPtr = (void*)(gTasks[taskId].data); + sLeader = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -314,7 +430,7 @@ void TryBecomeLinkLeader(void) void sub_8115A68(u8 taskId) { u32 id, val; - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; switch (data->state) { @@ -728,7 +844,7 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) void sub_81164C8(u8 arg0, s32 id, u8 arg2) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 var = 0; switch (data->field_0->arr[id].field_1A_0) @@ -747,7 +863,7 @@ void sub_81164C8(u8 arg0, s32 id, u8 arg2) u8 sub_8116524(struct UnkStruct_Main0 * arg0) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 ret = 0; u8 i; s32 id; @@ -788,7 +904,7 @@ u8 sub_8116524(struct UnkStruct_Main0 * arg0) u8 sub_81165E8(struct UnkStruct_Main0 * arg0) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 copiedCount; s32 i; u8 ret; @@ -836,8 +952,8 @@ void TryJoinLinkGroup(void) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8116738, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002028 = dataPtr; + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); + sGroup = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -847,7 +963,7 @@ void TryJoinLinkGroup(void) void sub_8116738(u8 taskId) { s32 id; - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -1123,19 +1239,19 @@ u8 sub_8116DE0(void) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8116E1C, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); dataPtr->state = 0; dataPtr->textState = 0; - gUnknown_3002028 = dataPtr; + sGroup = dataPtr; return taskId; } void sub_8116E1C(u8 taskId) { - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -1213,7 +1329,7 @@ u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) void sub_8116F94(u8 arg0, s32 id, u8 arg2) { - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; u8 var = sub_8116F5C(data, id); sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id); @@ -1221,7 +1337,7 @@ void sub_8116F94(u8 arg0, s32 id, u8 arg2) u8 sub_8116FE4(void) { - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; u8 ret = 0; u8 i; s32 id; @@ -1603,7 +1719,7 @@ void MEvent_CreateTask_Leader(u32 arg0) struct UnkStruct_Leader * dataPtr; taskId = CreateTask(sub_8117A0C, 0); - gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); + sUnionRoomMain.leader = dataPtr = (void*)(gTasks[taskId].data); dataPtr->state = 0; dataPtr->textState = 0; @@ -1613,7 +1729,7 @@ void MEvent_CreateTask_Leader(u32 arg0) void sub_8117A0C(u8 taskId) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; struct WindowTemplate winTemplate; s32 val; @@ -1810,8 +1926,8 @@ void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8117F20, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002028 = dataPtr; + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); + sGroup = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -1823,7 +1939,7 @@ void sub_8117F20(u8 taskId) { s32 id; struct WindowTemplate winTemplate1, winTemplate2; - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -1976,8 +2092,8 @@ void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_81182DC, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002028 = dataPtr; + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); + sGroup = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -1989,7 +2105,7 @@ void sub_81182DC(u8 taskId) { s32 id; struct WindowTemplate winTemplate; - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -2157,11 +2273,11 @@ void UnionRoomSpecial(void) CreateTask(sub_81186E0, 10); // dumb line needed to match - gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom; + sUnionRoomMain.uRoom = sUnionRoomMain.uRoom; - dataPtr = AllocZeroed(sizeof(*gUnknown_203B05C.uRoom)); - gUnknown_203B05C.uRoom = dataPtr; - gUnknown_300202C = dataPtr; + dataPtr = AllocZeroed(sizeof(*sUnionRoomMain.uRoom)); + sUnionRoomMain.uRoom = dataPtr; + sURoom = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -2179,7 +2295,7 @@ u16 ReadAsU16(const u8 *ptr) void sub_8118664(u32 nextState, const u8 *src) { - struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; data->state = 8; data->stateAfterPrint = nextState; @@ -2189,7 +2305,7 @@ void sub_8118664(u32 nextState, const u8 *src) void sub_811868C(const u8 *src) { - struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; data->state = 26; if (src != gStringVar4) @@ -2211,7 +2327,7 @@ void sub_81186E0(u8 taskId) u32 id = 0; s32 var5 = 0; s32 playerGender = 0; - struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; s16 *taskData = gTasks[taskId].data; switch (data->state) @@ -2756,7 +2872,7 @@ void sub_81186E0(u8 taskId) { sub_811BA78(); DestroyTask(taskId); - Free(gUnknown_203B05C.uRoom); + Free(sUnionRoomMain.uRoom); sub_81179A4(); } break; @@ -3009,9 +3125,9 @@ void InitUnionRoom(void) if (gQuestLogState == 2 || gQuestLogState == 3) return; CreateTask(sub_81199FC, 0); - gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom; // Needed to match. - gUnknown_203B05C.uRoom = ptr = AllocZeroed(sizeof(struct UnkStruct_URoom)); - gUnknown_300202C = gUnknown_203B05C.uRoom; + 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; @@ -3023,7 +3139,7 @@ void sub_81199FC(u8 taskId) { s32 i; u8 text[32]; - struct UnkStruct_URoom * structPtr = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * structPtr = sUnionRoomMain.uRoom; switch (structPtr->state) { @@ -3081,7 +3197,7 @@ void sub_81199FC(u8 taskId) Free(structPtr->field_C); Free(structPtr->field_4); DestroyTask(structPtr->field_20); - Free(gUnknown_203B05C.uRoom); + Free(sUnionRoomMain.uRoom); sub_80F8DC0(); DestroyTask(taskId); break; @@ -3106,7 +3222,7 @@ u8 sub_8119B94(void) { s32 i; u8 j; - struct UnkStruct_URoom * structPtr = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * structPtr = sUnionRoomMain.uRoom; s32 r7 = 0; for (i = 0; i < 4; i++) @@ -3864,7 +3980,7 @@ void sub_811ABE4(u8 arg0, u8 arg1, struct GFtgtGname * arg2, const u8 * str, u8 void sub_811ACA4(u8 windowId, s32 itemId, u8 y) { - struct UnkStruct_Leader *leader = gUnknown_203B05C.leader; + struct UnkStruct_Leader *leader = sUnionRoomMain.leader; struct GFtgtGname *rfu; s32 i, j; u8 sp4[8]; 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_ewram.txt b/sym_ewram.txt index 176e43bf9..8f3f5ae7f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -350,32 +350,10 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/menu.o" .align 2 .include "src/quest_log.o" - .align 2 -sUnionRoomPlayerName: @ 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 - -sUnionRoomTrade: @ 203B06C - .space 0x18 + .include "src/union_room.o" + .align 2 gUnknown_203B084: @ 203B084 .space 0x4 -- cgit v1.2.3 From 9f9b4dd13dfdbb2367059df09a15ba877ecd84e7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 21 Jan 2020 14:36:13 -0500 Subject: Data through gUnknown_84570C8 --- data/union_room.s | 208 ----------------- include/constants/pokemon.h | 130 +++++++++++ include/pokemon.h | 184 +-------------- src/data/union_room.h | 536 ++++++++++++++++++++++++++++++++++++++++++++ src/union_room.c | 319 +++++--------------------- 5 files changed, 720 insertions(+), 657 deletions(-) create mode 100644 src/data/union_room.h diff --git a/data/union_room.s b/data/union_room.s index 97a681485..afb79e74a 100644 --- a/data/union_room.s +++ b/data/union_room.s @@ -6,215 +6,7 @@ .section .rodata .align 2 -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 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index c6fc55003..2c8eeb3ea 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 @@ -77,6 +168,16 @@ #define STAT_ACC 6 // only in battles #define STAT_EVASION 7 // only in battles +// TODO: Why do we need these as separate defines? +#define STAT_STAGE_HP 0 +#define STAT_STAGE_ATK 1 +#define STAT_STAGE_DEF 2 +#define STAT_STAGE_SPEED 3 +#define STAT_STAGE_SPATK 4 +#define STAT_STAGE_SPDEF 5 +#define STAT_STAGE_ACC 6 +#define STAT_STAGE_EVASION 7 + #define NUM_STATS 6 #define NUM_BATTLE_STATS 8 @@ -91,4 +192,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/pokemon.h b/include/pokemon.h index ae909018c..be0a35877 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -3,167 +3,7 @@ #include "global.h" #include "sprite.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 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 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 - -enum -{ - EGG_GROUP_NONE, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - EGG_GROUP_BUG, - EGG_GROUP_FLYING, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_WATER_3, - EGG_GROUP_MINERAL, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_WATER_2, - EGG_GROUP_DITTO, - EGG_GROUP_DRAGON, - EGG_GROUP_UNDISCOVERED -}; +#include "constants/pokemon.h" struct PokemonSubstruct0 { @@ -357,28 +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 -}; - -enum -{ - STAT_HP, // 0 - STAT_ATK, // 1 - STAT_DEF, // 2 - STAT_SPD, // 3 - STAT_SPATK, // 4 - STAT_SPDEF, // 5 -}; - struct BaseStats { /* 0x00 */ u8 baseHP; diff --git a/src/data/union_room.h b/src/data/union_room.h new file mode 100644 index 000000000..22655721b --- /dev/null +++ b/src/data/union_room.h @@ -0,0 +1,536 @@ +extern const u8 gUnknown_84571AC[]; +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_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[]; + +#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}; + +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_8459378[]; +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[]; + +#undef _8456CD8 diff --git a/src/union_room.c b/src/union_room.c index 73e146a4d..32635debd 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -31,6 +31,7 @@ #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" @@ -61,13 +62,14 @@ static struct UnkStruct_URoom * sURoom; void sub_8115A68(u8 taskId); void sub_81161E4(struct UnkStruct_Leader * leader); bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); -void sub_81164C8(u8 arg0, s32 id, u8 arg2); +void sub_81164C8(u8 windowId, s32 itemId, u8 y); u8 sub_8116524(struct UnkStruct_Main0 * a0); u8 sub_81165E8(struct UnkStruct_Main0 * a0); void sub_8116738(u8 taskId); u32 sub_8116D10(struct UnkStruct_Group * group, s32 id); void sub_8116D60(struct UnkStruct_Group * group, s32 id); void sub_8116E1C(u8 taskId); +void sub_8116F94(u8 windowId, s32 itemId, u8 y); u8 sub_8116FE4(void); void sub_8117990(void); void sub_81179A4(void); @@ -99,12 +101,14 @@ bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1); u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1); u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2); -void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); +void sub_811A81C(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); bool32 sub_811A9B8(void); u32 sub_811A9FC(s32 a0); u32 sub_811AA24(struct UnkStruct_x20 * unkX20); s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender); +void nullsub_92(u8 windowId, s32 itemId, u8 y); +void sub_811ACA4(u8 windowId, s32 itemId, u8 y); s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1); s32 sub_811ADC4(s32 a0, struct UnkStruct_Main0 * a1); s32 sub_811ADD0(u32 type, u32 species); @@ -125,233 +129,16 @@ void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender); u8 sub_811B754(struct UnkStruct_8019BA8 * ptr); void sub_811BA78(void); -extern const u8 gUnknown_84571AC[]; -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[]; - -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 -}; - -#define _8456CD8(a, b) ((a) | ((b) << 8)) - -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) -}; - -#undef _8456CD8 - -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 -}; - -extern const struct WindowTemplate gUnknown_8456D4C; -extern const struct WindowTemplate gUnknown_8456D54; -extern const struct ListMenuTemplate gUnknown_8456DDC; -extern const struct WindowTemplate gUnknown_8456DF4; -extern const struct ListMenuTemplate gUnknown_8456E1C; -extern const struct WindowTemplate gUnknown_8456E34; -extern const struct ListMenuTemplate gUnknown_8456E54; -extern const struct WindowTemplate gUnknown_8456E6C; -extern const struct ListMenuTemplate gUnknown_8456F04; -extern const struct WindowTemplate gUnknown_8456F1C; -extern const struct WindowTemplate gUnknown_8456F24; -extern const struct ListMenuTemplate gUnknown_8456F7C; -extern const struct UnkStruct_Shared gUnknown_8457034; -extern const u8 *const gUnknown_8457094[13]; -extern const u8 gUnknown_84570C8[]; -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_8459378[]; -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[]; +#include "data/union_room.h" // These are functions in Emmerald but inlined in FireRed -#define sub_8018404(dest, arg1) ({ \ +#define IntlConvPartnerUname7(dest, arg1) ({ \ StringCopy7(dest, (arg1).unk.playerName); \ ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ }) -#define sub_8018404_2(dest, arg1) ({ \ +#define IntlConvPartnerUname(dest, arg1) ({ \ StringCopy(dest, (arg1).unk.playerName); \ ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ }) @@ -590,7 +377,7 @@ void sub_8115A68(u8 taskId) } else { - sub_8018404(gStringVar1, data->field_0->arr[data->field_13 - 1]); + IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_13 - 1]); StringExpandPlaceholders(gStringVar4, gUnknown_8457554); data->state = 13; } @@ -828,7 +615,7 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) case 1: PlaySE(SE_PC_LOGIN); RedrawListMenu(data->listTaskId); - sub_8018404(gStringVar2, data->field_0->arr[data->field_13]); + IntlConvPartnerUname7(gStringVar2, data->field_0->arr[data->field_13]); sub_8116244(gStringVar4, gUnknown_203B058); data->state = arg1; break; @@ -842,15 +629,15 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) return FALSE; } -void sub_81164C8(u8 arg0, s32 id, u8 arg2) +void sub_81164C8(u8 windowId, s32 itemId, u8 y) { struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 var = 0; - switch (data->field_0->arr[id].field_1A_0) + switch (data->field_0->arr[itemId].field_1A_0) { case 1: - if (data->field_0->arr[id].field_1B != 0) + if (data->field_0->arr[itemId].field_1B != 0) var = 2; break; case 2: @@ -858,7 +645,7 @@ void sub_81164C8(u8 arg0, s32 id, u8 arg2) break; } - sub_811A910(arg0, 0, arg2, &data->field_0->arr[id], var, id); + sub_811A910(windowId, 0, y, &data->field_0->arr[itemId], var, itemId); } u8 sub_8116524(struct UnkStruct_Main0 * arg0) @@ -1059,7 +846,7 @@ void sub_8116738(u8 taskId) sub_811631C(gStringVar4, gUnknown_203B058); if (PrintOnTextbox(&data->textState, gStringVar4)) { - sub_8018404(gStringVar1, data->field_0->arr[data->field_F]); + IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_F]); data->state = 6; } break; @@ -1228,7 +1015,7 @@ void sub_8116D60(struct UnkStruct_Group * data, s32 id) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); RedrawListMenu(data->listTaskId); - sub_8018404(gStringVar1, data->field_0->arr[data->field_F]); + 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.field_0.unk_00.playerTrainerId)); } @@ -1327,12 +1114,12 @@ u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) return 0; } -void sub_8116F94(u8 arg0, s32 id, u8 arg2) +void sub_8116F94(u8 windowId, s32 itemId, u8 y) { struct UnkStruct_Group * data = sUnionRoomMain.group; - u8 var = sub_8116F5C(data, id); + u8 var = sub_8116F5C(data, itemId); - sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id); + sub_811A81C(windowId, 8, y, &data->field_0->arr[itemId], var, itemId); } u8 sub_8116FE4(void) @@ -1827,7 +1614,7 @@ void sub_8117A0C(u8 taskId) data->field_0->arr[data->field_13].field_1B = 0; RedrawListMenu(data->listTaskId); data->field_13++; - sub_8018404(gStringVar1, data->field_0->arr[data->field_13 - 1]); + IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_13 - 1]); StringExpandPlaceholders(gStringVar4, gUnknown_8457554); data->state = 9; sub_80F8F5C(); @@ -2005,7 +1792,7 @@ void sub_8117F20(u8 taskId) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); RedrawListMenu(data->listTaskId); - sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]); + 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.field_0.unk_00.playerTrainerId)); PlaySE(SE_PN_ON); data->state = 4; @@ -2024,7 +1811,7 @@ void sub_8117F20(u8 taskId) break; case 4: AddTextPrinterToWindow1(gUnknown_8459238); - sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]); + IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]); data->state = 5; break; case 5: @@ -2189,7 +1976,7 @@ void sub_81182DC(u8 taskId) break; case 4: AddTextPrinterToWindow1(gUnknown_845928C); - sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]); + IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]); data->state = 5; break; case 5: @@ -3005,17 +2792,17 @@ void sub_81186E0(u8 taskId) switch (sub_811ADD0(data->field_0->arr[var5].unk.field_0.type, data->field_0->arr[var5].unk.field_0.species)) { case 0: - sub_8018404_2(gStringVar1, data->field_0->arr[var5]); + IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); sub_8118664(49, gUnknown_8458E70); taskData[1] = var5; break; case 1: - sub_8018404_2(gStringVar1, data->field_0->arr[var5]); + IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); sub_8118664(46, gUnknown_8458ED0); break; case 2: - sub_8018404_2(gStringVar1, data->field_0->arr[var5]); + IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); sub_8118664(46, gUnknown_8458F04); break; @@ -3053,7 +2840,7 @@ void sub_81186E0(u8 taskId) case 51: gUnknown_203B058 = 0x44; sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, 0x44); - sub_8018404_2(gStringVar1, data->field_0->arr[taskData[1]]); + IntlConvPartnerUname(gStringVar1, data->field_0->arr[taskData[1]]); sub_811A0B4(gUnknown_8457A34[2]); data->state = 25; break; @@ -3177,7 +2964,7 @@ void sub_81199FC(u8 taskId) { if (structPtr->field_0->arr[i].field_1A_0 == 1) { - sub_8018404_2(text, structPtr->field_0->arr[i]); + IntlConvPartnerUname(text, structPtr->field_0->arr[i]); if (sub_80FD338(ReadAsU16(structPtr->field_0->arr[i].unk.field_0.unk_00.playerTrainerId), text)) { StringCopy(sUnionRoomPlayerName, text); @@ -3832,7 +3619,7 @@ void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, r2 = arg3->unk.field_0.unk_0a_0; if (arg3->field_1A_0 == 1 && !(r2 & 0x40)) { - sub_8018404_2(sp10, *arg3); + IntlConvPartnerUname(sp10, *arg3); sub_811A444(arg0, 2, sp10, arg1, arg2, arg4); ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); StringCopy(gStringVar4, gUnknown_84571B4); @@ -3842,20 +3629,20 @@ void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, } } -void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +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) { - sub_8018404_2(sp10, *arg3); - sub_811A444(arg0, 2, sp10, arg1, arg2, arg4); + IntlConvPartnerUname(sp10, *arg3); + sub_811A444(windowId, 2, sp10, x, y, arg4); ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); StringCopy(gStringVar4, gUnknown_84571B4); StringAppend(gStringVar4, sp0); - arg1 += 71; - sub_811A444(arg0, 0, gStringVar4, arg1, arg2, arg4); + x += 71; + sub_811A444(windowId, 0, gStringVar4, x, y, arg4); } } @@ -3898,7 +3685,7 @@ u32 sub_811A9FC(s32 arg0) u32 sub_811AA24(struct UnkStruct_x20 *arg0) { u8 sp0[30]; - sub_8018404_2(sp0, *arg0); + IntlConvPartnerUname(sp0, *arg0); return sub_80FD338(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); } @@ -3910,7 +3697,7 @@ s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender if (!r5->unk.field_0.unk_0a_7 && arg1 == 0) { - sub_8018404_2(gStringVar1, *r5); + IntlConvPartnerUname(gStringVar1, *r5); r2 = sub_80FD338(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1); if (r5->unk.field_0.unk_0a_0 == 0x45) { @@ -3925,7 +3712,7 @@ s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender } else { - sub_8018404_2(gStringVar1, *r5); + IntlConvPartnerUname(gStringVar1, *r5); if (arg1 != 0) { playerGender = (r5->unk.field_0.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1; @@ -3957,24 +3744,24 @@ void nullsub_92(u8 windowId, s32 itemId, u8 y) } -void sub_811ABE4(u8 arg0, u8 arg1, struct GFtgtGname * arg2, const u8 * str, u8 arg4) +void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx) { - u8 sp8[4]; - u16 r8 = arg2->species; - u8 r7 = arg2->type; - u8 r9 = arg2->level; + u8 level_t[4]; + u16 species = gname->species; + u8 type = gname->type; + u8 level = gname->level; - sub_811A444(arg0, 2, str, 8, arg1, arg4); - if (r8 == SPECIES_EGG) + sub_811A444(windowId, 2, uname, 8, y, colorIdx); + if (species == SPECIES_EGG) { - sub_811A444(arg0, 2, gUnknown_8458FBC, 0x44, arg1, arg4); + sub_811A444(windowId, 2, gUnknown_8458FBC, 0x44, y, colorIdx); } else { - BlitMoveInfoIcon(arg0, r7 + 1, 0x44, arg1); - sub_811A444(arg0, 2, gSpeciesNames[r8], 0x76, arg1, arg4); - ConvertIntToDecimalStringN(sp8, r9, STR_CONV_MODE_LEFT_ALIGN, 3); - sub_811A444(arg0, 2, sp8, GetStringRightAlignXOffset(2, sp8, 218), arg1, arg4); + 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); } } @@ -3983,7 +3770,7 @@ void sub_811ACA4(u8 windowId, s32 itemId, u8 y) struct UnkStruct_Leader *leader = sUnionRoomMain.leader; struct GFtgtGname *rfu; s32 i, j; - u8 sp4[8]; + u8 uname[8]; if (itemId == -3 && y == gUnknown_8456F7C.upText_Y) { @@ -4004,8 +3791,8 @@ void sub_811ACA4(u8 windowId, s32 itemId, u8 y) } if (j == itemId + 1) { - sub_8018404_2(sp4, leader->field_0->arr[i]); - sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.field_0, sp4, 6); + IntlConvPartnerUname(uname, leader->field_0->arr[i]); + sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.field_0, uname, 6); break; } } -- cgit v1.2.3 From 26716a87337370a56e59b206a4e7767384797235 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 10:13:34 -0500 Subject: Split remaining union room data --- data/union_room.s | 1299 --------------------------------------- data/union_room_message.s | 1232 +++++++++++++++++++++++++++++++++++++ data/union_room_player_avatar.s | 73 +++ include/union_room_message.h | 107 ++++ ld_script.txt | 3 +- src/data/union_room.h | 108 ---- src/union_room.c | 13 +- 7 files changed, 1421 insertions(+), 1414 deletions(-) delete mode 100644 data/union_room.s create mode 100644 data/union_room_message.s create mode 100644 data/union_room_player_avatar.s create mode 100644 include/union_room_message.h diff --git a/data/union_room.s b/data/union_room.s deleted file mode 100644 index afb79e74a..000000000 --- a/data/union_room.s +++ /dev/null @@ -1,1299 +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 - - @ starts at gUnknown_082F0474 in pokeemerald, union link groups - -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/data/union_room_message.s b/data/union_room_message.s new file mode 100644 index 000000000..0d72f7c1d --- /dev/null +++ b/data/union_room_message.s @@ -0,0 +1,1232 @@ +#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_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/data/union_room_player_avatar.s b/data/union_room_player_avatar.s new file mode 100644 index 000000000..b0f87c282 --- /dev/null +++ b/data/union_room_player_avatar.s @@ -0,0 +1,73 @@ +#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_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 + + .align 2 +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 diff --git a/include/union_room_message.h b/include/union_room_message.h new file mode 100644 index 000000000..82e0dd955 --- /dev/null +++ b/include/union_room_message.h @@ -0,0 +1,107 @@ +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[]; diff --git a/ld_script.txt b/ld_script.txt index ac5fc1ad8..8cdc43a3b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -528,7 +528,8 @@ SECTIONS { src/menu.o(.rodata); src/quest_log.o(.rodata); src/union_room.o(.rodata); - data/union_room.o(.rodata); + data/union_room_player_avatar.o(.rodata); + data/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/data/union_room.h b/src/data/union_room.h index 22655721b..3d23353c9 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -1,24 +1,3 @@ -extern const u8 gUnknown_84571AC[]; -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_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[]; #define _8456CD8(a, b) ((a) | ((b) << 8)) @@ -446,91 +425,4 @@ static const u8 *const gUnknown_8457094[] = { static const u8 gUnknown_84570C8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0xF7, 0x00, 0xAF, 0xF7, 0x01, 0xFF, 0x00}; -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_8459378[]; -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[]; - #undef _8456CD8 diff --git a/src/union_room.c b/src/union_room.c index 32635debd..02327e265 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -39,6 +39,7 @@ #include "union_room.h" #include "union_room_chat.h" #include "union_room_player_avatar.h" +#include "union_room_message.h" #include "constants/songs.h" #include "constants/maps.h" #include "constants/cable_club.h" @@ -131,20 +132,20 @@ void sub_811BA78(void); #include "data/union_room.h" -// These are functions in Emmerald but inlined in FireRed +// These are functions in Emerald but inlined in FireRed -#define IntlConvPartnerUname7(dest, arg1) ({ \ - StringCopy7(dest, (arg1).unk.playerName); \ +#define IntlConvPartnerUname7(dest, arg1) ({ \ + StringCopy7(dest, (arg1).unk.playerName); \ ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ }) -#define IntlConvPartnerUname(dest, arg1) ({ \ - StringCopy(dest, (arg1).unk.playerName); \ +#define IntlConvPartnerUname(dest, arg1) ({ \ + StringCopy(dest, (arg1).unk.playerName); \ ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ }) #define CopyTrainerCardData(dest, src, _version) ({ \ - (dest) = *((struct TrainerCard * )(src)); \ + (dest) = *((struct TrainerCard * )(src)); \ (dest).version = _version; \ }) -- cgit v1.2.3 From 944f150b5ed0cccf30763f05f669f6210b10e2c1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 10:19:58 -0500 Subject: Static methods in union_room.c; remove src/data/union_room.h --- include/union_room_player_avatar.h | 2 + src/data/union_room.h | 428 --------------------- src/union_room.c | 758 +++++++++++++++++++++++++++++-------- 3 files changed, 593 insertions(+), 595 deletions(-) delete mode 100644 src/data/union_room.h diff --git a/include/union_room_player_avatar.h b/include/union_room_player_avatar.h index 68d64736d..46e448e83 100644 --- a/include/union_room_player_avatar.h +++ b/include/union_room_player_avatar.h @@ -9,5 +9,7 @@ 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 sub_811B754(struct UnkStruct_8019BA8 * ptr); +void sub_811BA78(void); #endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/src/data/union_room.h b/src/data/union_room.h deleted file mode 100644 index 3d23353c9..000000000 --- a/src/data/union_room.h +++ /dev/null @@ -1,428 +0,0 @@ - -#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 diff --git a/src/union_room.c b/src/union_room.c index 02327e265..8626b14d5 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -60,77 +60,501 @@ static struct UnkStruct_Leader * sLeader; static struct UnkStruct_Group * sGroup; static struct UnkStruct_URoom * sURoom; -void sub_8115A68(u8 taskId); -void sub_81161E4(struct UnkStruct_Leader * leader); -bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); -void sub_81164C8(u8 windowId, s32 itemId, u8 y); -u8 sub_8116524(struct UnkStruct_Main0 * a0); -u8 sub_81165E8(struct UnkStruct_Main0 * a0); -void sub_8116738(u8 taskId); -u32 sub_8116D10(struct UnkStruct_Group * group, s32 id); -void sub_8116D60(struct UnkStruct_Group * group, s32 id); -void sub_8116E1C(u8 taskId); -void sub_8116F94(u8 windowId, s32 itemId, u8 y); -u8 sub_8116FE4(void); -void sub_8117990(void); -void sub_81179A4(void); -void sub_8117A0C(u8 taskId); -void sub_8117F20(u8 taskId); -void sub_81182DC(u8 taskId); -void sub_81186E0(u8 taskId); -u16 ReadAsU16(const u8 *data); -void sub_8119904(struct UnkStruct_URoom * uRoom); -bool32 sub_8119944(struct UnkStruct_URoom * uRoom); -void sub_81199FC(u8 taskId); -u8 sub_8119B94(void); -u8 sub_8119E84(struct UnkStruct_Main4 * arg0, struct UnkStruct_Main4 * arg1, u32 arg2); -bool32 sub_8119FB0(struct GFtgtGname * arg0, s16 arg1); -u8 sub_811A054(struct UnkStruct_Main4 * arg0, u32 arg1); -u8 sub_811A084(struct UnkStruct_Main4 * arg0, u32 arg1); -bool32 sub_811A0B4(const u8 * str); -bool32 sub_811A0E0(void); -bool8 PrintOnTextbox(u8 *textState, const u8 *str); -s8 sub_811A14C(u8 *dest, bool32 arg1); -s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate); -s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate, struct UnkStruct_Main0 * arg6); -void sub_811A3F8(void); -void sub_811A41C(void); -void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); -void sub_811A5E4(struct UnkStruct_x20 * arg0, u8 count); -void sub_811A650(struct UnkStruct_Main4 * arg0, u8 count); -bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared * arg1); -bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1); -u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1); -u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2); -void sub_811A81C(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); -void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id); -bool32 sub_811A9B8(void); -u32 sub_811A9FC(s32 a0); -u32 sub_811AA24(struct UnkStruct_x20 * unkX20); -s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender); -void nullsub_92(u8 windowId, s32 itemId, u8 y); -void sub_811ACA4(u8 windowId, s32 itemId, u8 y); -s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1); -s32 sub_811ADC4(s32 a0, struct UnkStruct_Main0 * a1); -s32 sub_811ADD0(u32 type, u32 species); -void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender); -void sub_811AECC(u8 *dst, u8 arg1); -s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom * arg3); -bool32 sub_811B0A4(struct UnkStruct_URoom * arg0); -bool32 HasAtLeastTwoMonsOfLevel30OrLower(void); -void ResetUnionRoomTrade(struct UnionRoomTrade * trade); -bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade * trade); -void RegisterTradeMon(u32 monId, struct UnionRoomTrade * trade); -u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 mpId); -void sub_811B258(bool32 a0); -void sub_811B298(void); -u8 sub_811B2A8(s32 a0); -u8 sub_811B2D8(struct UnkStruct_URoom * arg0); -void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender); -u8 sub_811B754(struct UnkStruct_8019BA8 * ptr); -void sub_811BA78(void); - -#include "data/union_room.h" +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_Main4 * 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 sub_811ADC4(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 @@ -154,7 +578,7 @@ void sub_811BA78(void); _maxWidth - strWidth; \ }) -void sub_811586C(u8 windowId, u8 arg1, u8 stringId) +static void sub_811586C(u8 windowId, u8 arg1, u8 stringId) { FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); switch (arg1 << 8) @@ -176,7 +600,7 @@ void sub_811586C(u8 windowId, u8 arg1, u8 stringId) CopyWindowToVram(windowId, 2); } -void sub_8115924(u8 windowId) +static void sub_8115924(u8 windowId) { u8 text[12]; u8 text2[12]; @@ -188,7 +612,7 @@ void sub_8115924(u8 windowId) sub_811A444(windowId, 0, text2, 0, 0x10, 0); } -void sub_811599C(u8 *dst, u8 caseId) +static void sub_811599C(u8 *dst, u8 caseId) { switch (caseId) { @@ -215,7 +639,7 @@ void TryBecomeLinkLeader(void) gSpecialVar_Result = 0; } -void sub_8115A68(u8 taskId) +static void sub_8115A68(u8 taskId) { u32 id, val; struct UnkStruct_Leader * data = sUnionRoomMain.leader; @@ -514,7 +938,7 @@ void sub_8115A68(u8 taskId) } } -void sub_81161E4(struct UnkStruct_Leader * data) +static void sub_81161E4(struct UnkStruct_Leader * data) { ClearWindowTilemap(data->field_11); ClearStdWindowAndFrame(data->field_11, FALSE); @@ -532,7 +956,7 @@ void sub_81161E4(struct UnkStruct_Leader * data) Free(data->field_4); } -void sub_8116244(u8 *dst, u8 caseId) +static void sub_8116244(u8 *dst, u8 caseId) { switch (caseId) { @@ -554,7 +978,7 @@ void sub_8116244(u8 *dst, u8 caseId) } } -void sub_81162E0(u8 *dst, u8 caseId) +static void sub_81162E0(u8 *dst, u8 caseId) { switch (caseId) { @@ -569,7 +993,7 @@ void sub_81162E0(u8 *dst, u8 caseId) } } -void sub_811631C(u8 *dst, u8 caseId) +static void sub_811631C(u8 *dst, u8 caseId) { switch (caseId) { @@ -589,7 +1013,7 @@ void sub_811631C(u8 *dst, u8 caseId) } } -void sub_81163B0(u8 *dst, u8 caseId) +static void sub_81163B0(u8 *dst, u8 caseId) { switch (caseId) { @@ -609,7 +1033,7 @@ void sub_81163B0(u8 *dst, u8 caseId) } } -bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) +static bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) { switch (sub_8116524(data->field_0)) { @@ -630,7 +1054,7 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) return FALSE; } -void sub_81164C8(u8 windowId, s32 itemId, u8 y) +static void sub_81164C8(u8 windowId, s32 itemId, u8 y) { struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 var = 0; @@ -649,7 +1073,7 @@ void sub_81164C8(u8 windowId, s32 itemId, u8 y) sub_811A910(windowId, 0, y, &data->field_0->arr[itemId], var, itemId); } -u8 sub_8116524(struct UnkStruct_Main0 * arg0) +static u8 sub_8116524(struct UnkStruct_Main0 * arg0) { struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 ret = 0; @@ -690,7 +1114,7 @@ u8 sub_8116524(struct UnkStruct_Main0 * arg0) return ret; } -u8 sub_81165E8(struct UnkStruct_Main0 * arg0) +static u8 sub_81165E8(struct UnkStruct_Main0 * arg0) { struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 copiedCount; @@ -748,7 +1172,7 @@ void TryJoinLinkGroup(void) gSpecialVar_Result = 0; } -void sub_8116738(u8 taskId) +static void sub_8116738(u8 taskId) { s32 id; struct UnkStruct_Group * data = sUnionRoomMain.group; @@ -991,7 +1415,7 @@ void sub_8116738(u8 taskId) } } -u32 sub_8116D10(struct UnkStruct_Group * arg0, s32 id) +static u32 sub_8116D10(struct UnkStruct_Group * arg0, s32 id) { struct UnkStruct_x20 * structPtr = &arg0->field_0->arr[id]; @@ -1010,7 +1434,7 @@ u32 sub_8116D10(struct UnkStruct_Group * arg0, s32 id) return 2; } -void sub_8116D60(struct UnkStruct_Group * data, s32 id) +static void sub_8116D60(struct UnkStruct_Group * data, s32 id) { data->field_F = id; LoadWirelessStatusIndicatorSpriteGfx(); @@ -1037,7 +1461,7 @@ u8 sub_8116DE0(void) return taskId; } -void sub_8116E1C(u8 taskId) +static void sub_8116E1C(u8 taskId) { struct UnkStruct_Group * data = sUnionRoomMain.group; @@ -1080,7 +1504,7 @@ void sub_8116E1C(u8 taskId) } } -bool32 sub_8116F28(u32 arg0, u32 id) +static bool32 sub_8116F28(u32 arg0, u32 id) { if (id == 0xFF) return TRUE; @@ -1100,7 +1524,7 @@ bool32 sub_8116F28(u32 arg0, u32 id) return FALSE; } -u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) +static u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) { if (data->field_0->arr[id].field_1A_0 == 1) { @@ -1115,7 +1539,7 @@ u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) return 0; } -void sub_8116F94(u8 windowId, s32 itemId, u8 y) +static void sub_8116F94(u8 windowId, s32 itemId, u8 y) { struct UnkStruct_Group * data = sUnionRoomMain.group; u8 var = sub_8116F5C(data, itemId); @@ -1123,7 +1547,7 @@ void sub_8116F94(u8 windowId, s32 itemId, u8 y) sub_811A81C(windowId, 8, y, &data->field_0->arr[itemId], var, itemId); } -u8 sub_8116FE4(void) +static u8 sub_8116FE4(void) { struct UnkStruct_Group * data = sUnionRoomMain.group; u8 ret = 0; @@ -1188,7 +1612,7 @@ u8 sub_8116FE4(void) return ret; } -void sub_8117100(u8 taskId) +static void sub_8117100(u8 taskId) { CB2_ReturnFromLinkTrade(); DestroyTask(taskId); @@ -1201,7 +1625,7 @@ u8 sub_8117118(void) return taskId; } -void sub_8117130(u8 taskId) +static void sub_8117130(u8 taskId) { u32 monId = GetPartyPositionOfRegisteredMon(&sUnionRoomTrade, GetMultiplayerId()); @@ -1241,7 +1665,7 @@ void sub_8117130(u8 taskId) } } -void sub_8117280(u8 taskId) +static void sub_8117280(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1279,7 +1703,7 @@ void sub_8117280(u8 taskId) } } -void sub_8117354(void) +static void sub_8117354(void) { switch (gMain.state) { @@ -1312,7 +1736,7 @@ void sub_81173C0(u16 battleFlags) PlayBattleBGM(); } -void sub_8117440(u16 linkService, u16 x, u16 y) +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); @@ -1320,7 +1744,7 @@ void sub_8117440(u16 linkService, u16 x, u16 y) WarpIntoMap(); } -void sub_81174B4(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 linkService) +static void sub_81174B4(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 linkService) { gSpecialVar_0x8004 = linkService; VarSet(VAR_CABLE_CLUB_STATE, linkService); @@ -1331,7 +1755,7 @@ void sub_81174B4(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 linkService) WarpIntoMap(); } -void sub_8117534(void) +static void sub_8117534(void) { switch (gMain.state) { @@ -1351,7 +1775,7 @@ void sub_8117534(void) BuildOamBuffer(); } -void sub_8117594(void *arg0, bool32 arg1) +static void sub_8117594(void *arg0, bool32 arg1) { TrainerCard_GenerateCardForLinkPlayer((struct TrainerCard * )arg0); if (arg1) @@ -1360,7 +1784,7 @@ void sub_8117594(void *arg0, bool32 arg1) *((u16 *)(arg0 + sizeof(struct TrainerCard))) = 0; } -void sub_81175BC(u8 taskId) +static void sub_81175BC(u8 taskId) { sub_81446C4(); switch (gUnknown_203B058) @@ -1454,7 +1878,7 @@ void sub_81175BC(u8 taskId) ScriptContext2_Disable(); } -void sub_8117900(u8 taskId) +static void sub_8117900(u8 taskId) { s16 *data = gTasks[taskId].data; u16 *sendBuff = (u16*)(gBlockSendBuffer); @@ -1490,12 +1914,12 @@ void sub_8117900(u8 taskId) } } -void sub_8117990(void) +static void sub_8117990(void) { CreateTask(sub_8117900, 0); } -void sub_81179A4(void) +static void sub_81179A4(void) { u8 taskId = CreateTask(sub_81175BC, 0); gTasks[taskId].data[0] = 0; @@ -1515,7 +1939,7 @@ void MEvent_CreateTask_Leader(u32 arg0) gSpecialVar_Result = 0; } -void sub_8117A0C(u8 taskId) +static void sub_8117A0C(u8 taskId) { struct UnkStruct_Leader * data = sUnionRoomMain.leader; struct WindowTemplate winTemplate; @@ -1723,7 +2147,7 @@ void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0) gSpecialVar_Result = 0; } -void sub_8117F20(u8 taskId) +static void sub_8117F20(u8 taskId) { s32 id; struct WindowTemplate winTemplate1, winTemplate2; @@ -1889,7 +2313,7 @@ void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0) gSpecialVar_Result = 0; } -void sub_81182DC(u8 taskId) +static void sub_81182DC(u8 taskId) { s32 id; struct WindowTemplate winTemplate; @@ -2076,12 +2500,12 @@ void UnionRoomSpecial(void) sub_8107D38(0xD0, 1); } -u16 ReadAsU16(const u8 *ptr) +static u16 ReadAsU16(const u8 *ptr) { return (ptr[1] << 8) | (ptr[0]); } -void sub_8118664(u32 nextState, const u8 *src) +static void sub_8118664(u32 nextState, const u8 *src) { struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; @@ -2091,7 +2515,7 @@ void sub_8118664(u32 nextState, const u8 *src) StringExpandPlaceholders(gStringVar4, src); } -void sub_811868C(const u8 *src) +static void sub_811868C(const u8 *src) { struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; @@ -2100,17 +2524,17 @@ void sub_811868C(const u8 *src) StringExpandPlaceholders(gStringVar4, src); } -void sub_81186B0(struct UnkStruct_URoom * data) +static void sub_81186B0(struct UnkStruct_URoom * data) { memcpy(&gDecompressionBuffer[0x3F00], data->field_0, sizeof(*data->field_0)); } -void sub_81186C8(struct UnkStruct_URoom * data) +static void sub_81186C8(struct UnkStruct_URoom * data) { memcpy(data->field_0, &gDecompressionBuffer[0x3F00], sizeof(*data->field_0)); } -void sub_81186E0(u8 taskId) +static void sub_81186E0(u8 taskId) { u32 id = 0; s32 var5 = 0; @@ -2866,7 +3290,7 @@ void var_800D_set_xB(void) gSpecialVar_Result = 11; } -void sub_8119904(struct UnkStruct_URoom * arg0) +static void sub_8119904(struct UnkStruct_URoom * arg0) { if (gRecvCmds[1][1] != 0 && (gRecvCmds[1][0] & 0xFF00) == 0x2F00) { @@ -2879,7 +3303,7 @@ void sub_8119904(struct UnkStruct_URoom * arg0) } } -bool32 sub_8119944(struct UnkStruct_URoom * arg0) +static bool32 sub_8119944(struct UnkStruct_URoom * arg0) { if (arg0->field_9A[0] != 0) { @@ -2923,7 +3347,7 @@ void InitUnionRoom(void) sUnionRoomPlayerName[0] = EOS; } -void sub_81199FC(u8 taskId) +static void sub_81199FC(u8 taskId) { s32 i; u8 text[32]; @@ -3006,7 +3430,7 @@ bool16 BufferUnionRoomPlayerName(void) } } -u8 sub_8119B94(void) +static u8 sub_8119B94(void) { s32 i; u8 j; @@ -3082,7 +3506,7 @@ u8 sub_8119B94(void) return r7; } -void sub_8119D34(u8 taskId) +static void sub_8119D34(u8 taskId) { s32 i, j; struct UnkStruct_Shared sp0; @@ -3120,7 +3544,7 @@ void sub_8119D34(u8 taskId) } } -u8 sub_8119E84(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, u32 a2) +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; @@ -3130,7 +3554,7 @@ u8 sub_8119E84(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, u32 a2) return taskId; } -void sub_8119EB8(u8 taskId) +static void sub_8119EB8(u8 taskId) { s32 i, j; struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; @@ -3153,7 +3577,7 @@ void sub_8119EB8(u8 taskId) } } -bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1) +static bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1) { if (arg1 == 7) { @@ -3183,7 +3607,7 @@ bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1) } } -void sub_8119FD8(u8 taskId) +static void sub_8119FD8(u8 taskId) { s32 i; struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; @@ -3198,7 +3622,7 @@ void sub_8119FD8(u8 taskId) } } -u8 sub_811A054(struct UnkStruct_Main4 * a0, u32 a1) +static u8 sub_811A054(struct UnkStruct_Main4 * a0, u32 a1) { u8 taskId = CreateTask(sub_8119EB8, 0); struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; @@ -3207,7 +3631,7 @@ u8 sub_811A054(struct UnkStruct_Main4 * a0, u32 a1) return taskId; } -u8 sub_811A084(struct UnkStruct_Main4 * a0, u32 a1) +static u8 sub_811A084(struct UnkStruct_Main4 * a0, u32 a1) { u8 taskId = CreateTask(sub_8119FD8, 0); struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; @@ -3216,7 +3640,7 @@ u8 sub_811A084(struct UnkStruct_Main4 * a0, u32 a1) return taskId; } -bool32 sub_811A0B4(const u8 *src) +static bool32 sub_811A0B4(const u8 *src) { LoadStdWindowFrameGfx(); DrawDialogueFrame(0, 1); @@ -3225,7 +3649,7 @@ bool32 sub_811A0B4(const u8 *src) return FALSE; } -bool32 sub_811A0E0(void) +static bool32 sub_811A0E0(void) { if (!RunTextPrinters_CheckPrinter0Active()) { @@ -3237,7 +3661,7 @@ bool32 sub_811A0E0(void) } } -bool8 PrintOnTextbox(u8 *textState, const u8 *str) +static bool8 PrintOnTextbox(u8 *textState, const u8 *str) { switch (*textState) { @@ -3259,7 +3683,7 @@ bool8 PrintOnTextbox(u8 *textState, const u8 *str) return FALSE; } -s8 sub_811A14C(u8 *arg0, bool32 arg1) +static s8 sub_811A14C(u8 *arg0, bool32 arg1) { s8 r1; @@ -3291,7 +3715,7 @@ s8 sub_811A14C(u8 *arg0, bool32 arg1) return -2; } -u8 sub_811A1AC(const struct WindowTemplate * template) +static u8 sub_811A1AC(const struct WindowTemplate * template) { u8 windowId = AddWindow(template); DrawStdWindowFrame(windowId, FALSE); @@ -3302,13 +3726,13 @@ u8 sub_811A1AC(const struct WindowTemplate * template) return windowId; } -void sub_811A1FC(u8 windowId) +static void sub_811A1FC(u8 windowId) { ClearStdWindowAndFrame(windowId, TRUE); RemoveWindow(windowId); } -s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate) +static s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate) { s32 r1, r8; @@ -3347,7 +3771,7 @@ s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe return -1; } -s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6) +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; @@ -3401,20 +3825,20 @@ s32 sub_811A2EC(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTempl return -1; } -void sub_811A3F8(void) +static void sub_811A3F8(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); CopyBgTilemapBufferToVram(0); } -void sub_811A41C(void) +static void sub_811A41C(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); CopyBgTilemapBufferToVram(0); EnableBothScriptContexts(); } -void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx) +static void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx) { struct TextPrinterTemplate printerTemplate; @@ -3484,7 +3908,7 @@ void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx) AddTextPrinter(&printerTemplate, 0xFF, NULL); } -void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count) +static void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count) { s32 i; @@ -3498,7 +3922,7 @@ void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count) } } -void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count) +static void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count) { s32 i; @@ -3509,7 +3933,7 @@ void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count) } } -bool8 sub_811A694(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1) +static bool8 sub_811A694(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1) { s32 i; @@ -3532,7 +3956,7 @@ bool8 sub_811A694(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* return FALSE; } -bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) +static bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) { s32 i; @@ -3567,7 +3991,7 @@ bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) return FALSE; } -u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) +static u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) { u8 result = 0xFF; s32 i; @@ -3584,7 +4008,7 @@ u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) return result; } -u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2) +static u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2) { s32 i; @@ -3607,7 +4031,7 @@ u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2) return 0xFF; } -void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +static void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) { u8 r2; u8 sp0[6]; @@ -3630,7 +4054,7 @@ void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, } } -void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +static void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) { u8 sp0[6]; u8 sp10[30]; @@ -3647,7 +4071,7 @@ void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 *arg3, u8 arg4, u } } -bool32 sub_811A9B8(void) +static bool32 sub_811A9B8(void) { s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); @@ -3667,7 +4091,7 @@ bool32 sub_811A9B8(void) return FALSE; } -u32 sub_811A9FC(s32 arg0) +static u32 sub_811A9FC(s32 arg0) { switch (arg0) { @@ -3683,14 +4107,14 @@ u32 sub_811A9FC(s32 arg0) } } -u32 sub_811AA24(struct UnkStruct_x20 *arg0) +static u32 sub_811AA24(struct UnkStruct_x20 *arg0) { u8 sp0[30]; IntlConvPartnerUname(sp0, *arg0); return sub_80FD338(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); } -s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender) +static s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender) { bool32 r2; @@ -3740,12 +4164,12 @@ s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender } } -void nullsub_92(u8 windowId, s32 itemId, u8 y) +static void nullsub_92(u8 windowId, s32 itemId, u8 y) { } -void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx) +static void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx) { u8 level_t[4]; u16 species = gname->species; @@ -3766,7 +4190,7 @@ void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, } } -void sub_811ACA4(u8 windowId, s32 itemId, u8 y) +static void sub_811ACA4(u8 windowId, s32 itemId, u8 y) { struct UnkStruct_Leader *leader = sUnionRoomMain.leader; struct GFtgtGname *rfu; @@ -3800,7 +4224,7 @@ void sub_811ACA4(u8 windowId, s32 itemId, u8 y) } } -s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1) +static s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1) { s32 i; s32 j = 0; @@ -3820,12 +4244,12 @@ s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1) return -1; } -s32 sub_811ADC4(s32 arg1, struct UnkStruct_Main0 *arg0) +static s32 sub_811ADC4(s32 arg1, struct UnkStruct_Main0 *arg0) { return arg0->arr[arg1].unk.field_0.playerGender; } -s32 sub_811ADD0(u32 type, u32 species) +static s32 sub_811ADD0(u32 type, u32 species) { s32 i; @@ -3855,7 +4279,7 @@ s32 sub_811ADD0(u32 type, u32 species) } } -void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender) +static void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender) { switch (arg1) { @@ -3874,7 +4298,7 @@ void sub_811AE68(u8 *dst, s32 arg1, u32 playerGender) } } -void sub_811AECC(u8 *dst, u8 arg1) +static void sub_811AECC(u8 *dst, u8 arg1) { u8 mpId = GetMultiplayerId(); u8 gender = gLinkPlayers[mpId ^ 1].gender; @@ -3893,7 +4317,7 @@ void sub_811AECC(u8 *dst, u8 arg1) } } -s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) +static s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) { s32 result = 0; u16 species = SPECIES_NONE; @@ -3949,7 +4373,7 @@ s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) return result; } -bool32 sub_811B0A4(struct UnkStruct_URoom *arg0) +static bool32 sub_811B0A4(struct UnkStruct_URoom *arg0) { if (gRecvCmds[0][1] != 0) { @@ -3974,7 +4398,7 @@ bool32 InUnionRoom(void) ? TRUE : FALSE; } -bool32 HasAtLeastTwoMonsOfLevel30OrLower(void) +static bool32 HasAtLeastTwoMonsOfLevel30OrLower(void) { s32 i; s32 count = 0; @@ -3994,7 +4418,7 @@ bool32 HasAtLeastTwoMonsOfLevel30OrLower(void) return FALSE; } -void ResetUnionRoomTrade(struct UnionRoomTrade *arg0) +static void ResetUnionRoomTrade(struct UnionRoomTrade *arg0) { arg0->field_0 = 0; arg0->type = 0; @@ -4011,7 +4435,7 @@ void Script_ResetUnionRoomTrade(void) ResetUnionRoomTrade(&sUnionRoomTrade); } -bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade) +static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade) { trade->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); trade->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); @@ -4022,14 +4446,14 @@ bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade) return FALSE; } -void RegisterTradeMon(u32 monId, struct UnionRoomTrade *trade) +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); } -u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *trade, u8 multiplayerId) +static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *trade, u8 multiplayerId) { u16 response = 0; u16 species; @@ -4070,7 +4494,7 @@ u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *trade, u8 multiplayer return response; } -void sub_811B258(bool32 arg0) +static void sub_811B258(bool32 arg0) { sub_811A3F8(); ScriptContext2_Disable(); @@ -4083,13 +4507,13 @@ void sub_811B258(bool32 arg0) } } -void sub_811B298(void) +static void sub_811B298(void) { ScriptContext2_Enable(); ScriptFreezeObjectEvents(); } -u8 sub_811B2A8(s32 linkPlayer) +static u8 sub_811B2A8(s32 linkPlayer) { u8 retval = 0x80; retval |= gLinkPlayers[linkPlayer].gender << 3; @@ -4097,7 +4521,7 @@ u8 sub_811B2A8(s32 linkPlayer) return retval; } -u8 sub_811B2D8(struct UnkStruct_URoom *arg0) +static u8 sub_811B2D8(struct UnkStruct_URoom *arg0) { u8 retVal = 0x80; u8 i; @@ -4115,7 +4539,7 @@ u8 sub_811B2D8(struct UnkStruct_URoom *arg0) return retVal; } -void sub_811B31C(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2) +static void sub_811B31C(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2) { struct TrainerCard *trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1]; s32 i; -- cgit v1.2.3 From 13eaf1b6cc58fc2aa1ce133461f2d076a43a0830 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 10:22:03 -0500 Subject: Fix pointer space style --- src/union_room.c | 60 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/union_room.c b/src/union_room.c index 8626b14d5..a6aeea1c7 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -3510,7 +3510,7 @@ static void sub_8119D34(u8 taskId) { s32 i, j; struct UnkStruct_Shared sp0; - struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data; bool8 r4; for (i = 0; i < 4; i++) @@ -3557,7 +3557,7 @@ static u8 sub_8119E84(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, static void sub_8119EB8(u8 taskId) { s32 i, j; - struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data; for (i = 0; i < 4; i++) { @@ -3577,7 +3577,7 @@ static void sub_8119EB8(u8 taskId) } } -static bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1) +static bool32 sub_8119FB0(struct GFtgtGname * arg0, s16 arg1) { if (arg1 == 7) { @@ -3610,7 +3610,7 @@ static bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1) static void sub_8119FD8(u8 taskId) { s32 i; - struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data; for (i = 0; i < 4; i++) { @@ -3625,7 +3625,7 @@ static void sub_8119FD8(u8 taskId) static u8 sub_811A054(struct UnkStruct_Main4 * a0, u32 a1) { u8 taskId = CreateTask(sub_8119EB8, 0); - struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data; ptr[0] = a0; gTasks[taskId].data[2] = a1; return taskId; @@ -3634,7 +3634,7 @@ static u8 sub_811A054(struct UnkStruct_Main4 * a0, u32 a1) static u8 sub_811A084(struct UnkStruct_Main4 * a0, u32 a1) { u8 taskId = CreateTask(sub_8119FD8, 0); - struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data; ptr[0] = a0; gTasks[taskId].data[2] = a1; return taskId; @@ -3732,7 +3732,7 @@ static void sub_811A1FC(u8 windowId) RemoveWindow(windowId); } -static s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate) +static s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate * winTemplate, const struct ListMenuTemplate * menuTemplate) { s32 r1, r8; @@ -3771,7 +3771,7 @@ static s32 sub_811A218(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate 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) +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; @@ -3908,7 +3908,7 @@ static void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 co AddTextPrinter(&printerTemplate, 0xFF, NULL); } -static void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count) +static void sub_811A5E4(struct UnkStruct_x20 * arg0, u8 count) { s32 i; @@ -3922,7 +3922,7 @@ static void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count) } } -static void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count) +static void sub_811A650(struct UnkStruct_Main4 * arg0, u8 count) { s32 i; @@ -3933,7 +3933,7 @@ static void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count) } } -static bool8 sub_811A694(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1) +static bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared * arg1) { s32 i; @@ -3956,7 +3956,7 @@ static bool8 sub_811A694(struct UnkStruct_Shared* arg0, const struct UnkStruct_S return FALSE; } -static bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) +static bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1) { s32 i; @@ -3991,7 +3991,7 @@ static bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared return FALSE; } -static u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) +static u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1) { u8 result = 0xFF; s32 i; @@ -4008,7 +4008,7 @@ static u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) return result; } -static u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2) +static u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2) { s32 i; @@ -4031,7 +4031,7 @@ static u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 return 0xFF; } -static void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +static void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id) { u8 r2; u8 sp0[6]; @@ -4054,7 +4054,7 @@ static void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u } } -static void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +static void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 arg4, u8 id) { u8 sp0[6]; u8 sp10[30]; @@ -4107,14 +4107,14 @@ static u32 sub_811A9FC(s32 arg0) } } -static u32 sub_811AA24(struct UnkStruct_x20 *arg0) +static u32 sub_811AA24(struct UnkStruct_x20 * arg0) { u8 sp0[30]; IntlConvPartnerUname(sp0, *arg0); return sub_80FD338(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); } -static s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender) +static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender) { bool32 r2; @@ -4192,8 +4192,8 @@ static void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * static void sub_811ACA4(u8 windowId, s32 itemId, u8 y) { - struct UnkStruct_Leader *leader = sUnionRoomMain.leader; - struct GFtgtGname *rfu; + struct UnkStruct_Leader * leader = sUnionRoomMain.leader; + struct GFtgtGname * rfu; s32 i, j; u8 uname[8]; @@ -4244,7 +4244,7 @@ static s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1) return -1; } -static s32 sub_811ADC4(s32 arg1, struct UnkStruct_Main0 *arg0) +static s32 sub_811ADC4(s32 arg1, struct UnkStruct_Main0 * arg0) { return arg0->arr[arg1].unk.field_0.playerGender; } @@ -4317,7 +4317,7 @@ static void sub_811AECC(u8 *dst, u8 arg1) } } -static s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) +static s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom * arg3) { s32 result = 0; u16 species = SPECIES_NONE; @@ -4373,7 +4373,7 @@ static s32 sub_811AF6C(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *a return result; } -static bool32 sub_811B0A4(struct UnkStruct_URoom *arg0) +static bool32 sub_811B0A4(struct UnkStruct_URoom * arg0) { if (gRecvCmds[0][1] != 0) { @@ -4418,7 +4418,7 @@ static bool32 HasAtLeastTwoMonsOfLevel30OrLower(void) return FALSE; } -static void ResetUnionRoomTrade(struct UnionRoomTrade *arg0) +static void ResetUnionRoomTrade(struct UnionRoomTrade * arg0) { arg0->field_0 = 0; arg0->type = 0; @@ -4435,7 +4435,7 @@ void Script_ResetUnionRoomTrade(void) ResetUnionRoomTrade(&sUnionRoomTrade); } -static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade) +static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade * trade) { trade->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); trade->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); @@ -4446,14 +4446,14 @@ static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trad return FALSE; } -static void RegisterTradeMon(u32 monId, struct UnionRoomTrade *trade) +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) +static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 multiplayerId) { u16 response = 0; u16 species; @@ -4521,7 +4521,7 @@ static u8 sub_811B2A8(s32 linkPlayer) return retval; } -static u8 sub_811B2D8(struct UnkStruct_URoom *arg0) +static u8 sub_811B2D8(struct UnkStruct_URoom * arg0) { u8 retVal = 0x80; u8 i; @@ -4539,9 +4539,9 @@ static u8 sub_811B2D8(struct UnkStruct_URoom *arg0) return retVal; } -static void sub_811B31C(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2) +static void sub_811B31C(u8 *unused, struct UnkStruct_URoom * arg1, bool8 arg2) { - struct TrainerCard *trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1]; + struct TrainerCard * trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1]; s32 i; s32 n; -- cgit v1.2.3 From 1e7df548fe6e0957efc8c0a5c1146eae7a203963 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 10:31:14 -0500 Subject: Fix struct offset comments --- include/union_room.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/union_room.h b/include/union_room.h index fcd970f7d..f9abd3d9f 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -122,9 +122,9 @@ struct UnkStruct_URoom /* 0x084 */ u16 field_98; /* 0x086 */ u16 field_9A[3]; /* 0x08C */ struct UnkStruct_8019BA8 field_A0[8]; - /* 0x08C */ u8 field_C0[12][15]; - /* 0x08C */ u8 field_174[48]; - /* 0x08C */ u8 field_1A4[200]; + /* 0x0AC */ u8 field_C0[12][15]; + /* 0x160 */ u8 field_174[48]; + /* 0x190 */ u8 field_1A4[200]; }; union UnkUnion_Main -- cgit v1.2.3 From 70bb1a99e2211f7856f301827f11b7faec334a02 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 10:35:47 -0500 Subject: union_room_player_avatar --> rfu_union_tool (by assert statements) --- asm/rfu_union_tool.s | 2064 ++++++++++++++++++++++++++++++++++++ asm/union_room_player_avatar.s | 2064 ------------------------------------ data/rfu_union_tool.s | 73 ++ data/union_room_player_avatar.s | 73 -- include/rfu_union_tool.h | 15 + include/union_room_player_avatar.h | 15 - ld_script.txt | 4 +- src/union_room.c | 2 +- sym_ewram.txt | 2 +- 9 files changed, 2156 insertions(+), 2156 deletions(-) create mode 100644 asm/rfu_union_tool.s delete mode 100644 asm/union_room_player_avatar.s create mode 100644 data/rfu_union_tool.s delete mode 100644 data/union_room_player_avatar.s create mode 100644 include/rfu_union_tool.h delete mode 100644 include/union_room_player_avatar.h diff --git a/asm/rfu_union_tool.s b/asm/rfu_union_tool.s new file mode 100644 index 000000000..4213c3f56 --- /dev/null +++ b/asm/rfu_union_tool.s @@ -0,0 +1,2064 @@ + .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 @ =UnionObjWork + 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 UnionObjWork +_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 @ =UnionObjWork + 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 UnionObjWork +_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 @ =UnionObjWork + 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 UnionObjWork +_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 @ =UnionObjWork + 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 UnionObjWork +_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 @ =UnionObjWork + movs r0, 0 + str r0, [r1] + bl sub_811BA5C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811BAA8: .4byte UnionObjWork + 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/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/rfu_union_tool.s b/data/rfu_union_tool.s new file mode 100644 index 000000000..b0f87c282 --- /dev/null +++ b/data/rfu_union_tool.s @@ -0,0 +1,73 @@ +#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_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 + + .align 2 +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 diff --git a/data/union_room_player_avatar.s b/data/union_room_player_avatar.s deleted file mode 100644 index b0f87c282..000000000 --- a/data/union_room_player_avatar.s +++ /dev/null @@ -1,73 +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_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 - - .align 2 -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 diff --git a/include/rfu_union_tool.h b/include/rfu_union_tool.h new file mode 100644 index 000000000..46e448e83 --- /dev/null +++ b/include/rfu_union_tool.h @@ -0,0 +1,15 @@ +#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H +#define GUARD_UNION_ROOM_PLAYER_AVATAR_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 sub_811B754(struct UnkStruct_8019BA8 * ptr); +void sub_811BA78(void); + +#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/include/union_room_player_avatar.h b/include/union_room_player_avatar.h deleted file mode 100644 index 46e448e83..000000000 --- a/include/union_room_player_avatar.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H -#define GUARD_UNION_ROOM_PLAYER_AVATAR_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 sub_811B754(struct UnkStruct_8019BA8 * ptr); -void sub_811BA78(void); - -#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/ld_script.txt b/ld_script.txt index 8cdc43a3b..22ac7dd54 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -242,7 +242,7 @@ SECTIONS { src/menu.o(.text); src/quest_log.o(.text); src/union_room.o(.text); - asm/union_room_player_avatar.o(.text); + asm/rfu_union_tool.o(.text); asm/pokemon_special_anim.o(.text); src/party_menu.o(.text); asm/union_room_chat.o(.text); @@ -528,7 +528,7 @@ SECTIONS { src/menu.o(.rodata); src/quest_log.o(.rodata); src/union_room.o(.rodata); - data/union_room_player_avatar.o(.rodata); + data/rfu_union_tool.o(.rodata); data/union_room_message.o(.rodata); data/pokemon_special_anim.o(.rodata); src/party_menu.o(.rodata); diff --git a/src/union_room.c b/src/union_room.c index a6aeea1c7..0441c8276 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -38,7 +38,7 @@ #include "trainer_card.h" #include "union_room.h" #include "union_room_chat.h" -#include "union_room_player_avatar.h" +#include "rfu_union_tool.h" #include "union_room_message.h" #include "constants/songs.h" #include "constants/maps.h" diff --git a/sym_ewram.txt b/sym_ewram.txt index 8f3f5ae7f..86777e885 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -354,7 +354,7 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/union_room.o" .align 2 -gUnknown_203B084: @ 203B084 +UnionObjWork: @ 203B084 .space 0x4 gUnknown_203B088: @ 203B088 -- cgit v1.2.3 From 0495cce90418b84dc53b5d5c9f3b2bfe46f0ed62 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 12:38:17 -0500 Subject: start decomping rfu_union_tool --- asm/rfu_union_tool.s | 133 ++--------------------------------------------- data/rfu_union_tool.s | 30 ----------- include/rfu_union_tool.h | 2 + include/union_room.h | 2 +- ld_script.txt | 2 + src/rfu_union_tool.c | 80 ++++++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 160 deletions(-) create mode 100644 src/rfu_union_tool.c diff --git a/asm/rfu_union_tool.s b/asm/rfu_union_tool.s index 4213c3f56..65bdef3f9 100644 --- a/asm/rfu_union_tool.s +++ b/asm/rfu_union_tool.s @@ -5,133 +5,8 @@ .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 + thumb_func_start IsUnionRoomPlayerHidden +IsUnionRoomPlayerHidden: @ 811B5DC push {lr} adds r0, 0x63 lsls r0, 16 @@ -141,7 +16,7 @@ sub_811B5DC: @ 811B5DC lsrs r0, 24 pop {r1} bx r1 - thumb_func_end sub_811B5DC + thumb_func_end IsUnionRoomPlayerHidden thumb_func_start sub_811B5F0 sub_811B5F0: @ 811B5F0 @@ -757,7 +632,7 @@ sub_811BA78: @ 811BA78 movs r4, 0 _0811BA7C: adds r0, r4, 0 - bl sub_811B5DC + bl IsUnionRoomPlayerHidden cmp r0, 0 bne _0811BA92 adds r0, r4, 0 diff --git a/data/rfu_union_tool.s b/data/rfu_union_tool.s index b0f87c282..0c6460116 100644 --- a/data/rfu_union_tool.s +++ b/data/rfu_union_tool.s @@ -6,36 +6,6 @@ .section .rodata .align 2 -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 diff --git a/include/rfu_union_tool.h b/include/rfu_union_tool.h index 46e448e83..4672d8c61 100644 --- a/include/rfu_union_tool.h +++ b/include/rfu_union_tool.h @@ -1,6 +1,8 @@ #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); diff --git a/include/union_room.h b/include/union_room.h index f9abd3d9f..00ed90a14 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -2,7 +2,7 @@ #define GUARD_UNION_ROOM_H #include "global.h" -#include "librfu.h" +#include "link_rfu.h" struct UnkStruct_Shared { diff --git a/ld_script.txt b/ld_script.txt index 22ac7dd54..e1079704f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -242,6 +242,7 @@ SECTIONS { src/menu.o(.text); src/quest_log.o(.text); src/union_room.o(.text); + src/rfu_union_tool.o(.text); asm/rfu_union_tool.o(.text); asm/pokemon_special_anim.o(.text); src/party_menu.o(.text); @@ -528,6 +529,7 @@ SECTIONS { src/menu.o(.rodata); src/quest_log.o(.rodata); src/union_room.o(.rodata); + src/rfu_union_tool.o(.rodata); data/rfu_union_tool.o(.rodata); data/union_room_message.o(.rodata); data/pokemon_special_anim.o(.rodata); diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c new file mode 100644 index 000000000..d50187b56 --- /dev/null +++ b/src/rfu_union_tool.c @@ -0,0 +1,80 @@ +#include "global.h" +#include "event_data.h" +#include "rfu_union_tool.h" +#include "constants/flags.h" + +const u8 gUnknown_84570D8[][10] = { + {0x29, 0x36, 0x27, 0x12, 0x13, 0x14, 0x19, 0x1A}, + {0x2A, 0x3A, 0x28, 0x16, 0x17, 0x18, 0x1C, 0x1D} +}; + +const s16 gUnknown_84570EC[][2] = { + {0x4, 0x6}, + {0xd, 0x8}, + {0xa, 0x6}, + {0x1, 0x8}, + {0xd, 0x4}, + {0x7, 0x4}, + {0x1, 0x4}, + {0x7, 0x8} +}; + +const s8 gUnknown_845710C[][2] = { + { 0, 0}, + { 1, 0}, + { 0, -1}, + {-1, 0}, + { 0, 1} +}; + +const u8 gUnknown_8457116[] = { + 0x00, 0x02, 0x01, 0x04, 0x03 +}; + +const u8 gUnknown_845711B[] = { + 0x01, 0x03, 0x01, 0x04, 0x02 +}; + +bool32 is_walking_or_running(void) +{ + if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0) + { + return TRUE; + } + else + { + return FALSE; + } +} + +u8 sub_811B524(u32 a0, u32 a1) +{ + return gUnknown_84570D8[a0][a1 % 8]; +} + +void sub_811B53C(u32 a0, u32 a1, s32 * a2, s32 * a3) +{ + *a2 = gUnknown_84570EC[a0][0] + gUnknown_845710C[a1][0] + 7; + *a3 = gUnknown_84570EC[a0][1] + gUnknown_845710C[a1][1] + 7; +} + +bool32 sub_811B58C(u32 a0, u32 a1, s32 a2, s32 a3) +{ + if (gUnknown_84570EC[a0][0] + gUnknown_845710C[a1][0] + 7 != a2) + { + return FALSE; + } + else if (gUnknown_84570EC[a0][1] + gUnknown_845710C[a1][1] + 7 != a3) + { + return FALSE; + } + else + { + return TRUE; + } +} +// +//bool32 IsUnionRoomPlayerHidden(u32 player_idx) +//{ +// return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +//} -- cgit v1.2.3 From 401276242af6e911104742ec6f34b54925b4c4b6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 13:39:36 -0500 Subject: through sub_811BDA8 --- asm/event_object_80688E4.s | 8 +- asm/event_object_movement.s | 8 +- asm/field_player_avatar.s | 6 +- asm/rfu_union_tool.s | 1124 ----------------------------- asm/script_movement.s | 2 +- data/rfu_union_tool.s | 21 - include/constants/event_object_movement.h | 7 +- include/event_object_80688E4.h | 4 + include/event_object_8097404.h | 2 +- include/event_object_movement.h | 4 +- include/field_player_avatar.h | 1 + include/fieldmap.h | 1 + include/rfu_union_tool.h | 2 +- include/union_room.h | 4 +- src/rfu_union_tool.c | 456 +++++++++++- src/scrcmd.c | 4 +- src/vs_seeker.c | 2 +- sym_ewram.txt | 8 +- 18 files changed, 485 insertions(+), 1179 deletions(-) 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_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/rfu_union_tool.s b/asm/rfu_union_tool.s index 65bdef3f9..12e5200bc 100644 --- a/asm/rfu_union_tool.s +++ b/asm/rfu_union_tool.s @@ -5,1130 +5,6 @@ .text - thumb_func_start IsUnionRoomPlayerHidden -IsUnionRoomPlayerHidden: @ 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 IsUnionRoomPlayerHidden - - 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 @ =UnionObjWork - 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 UnionObjWork -_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 @ =UnionObjWork - 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 UnionObjWork -_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 @ =UnionObjWork - 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 UnionObjWork -_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 @ =UnionObjWork - 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 UnionObjWork -_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 IsUnionRoomPlayerHidden - 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 @ =UnionObjWork - movs r0, 0 - str r0, [r1] - bl sub_811BA5C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811BAA8: .4byte UnionObjWork - 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} 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/data/rfu_union_tool.s b/data/rfu_union_tool.s index 0c6460116..f9988661e 100644 --- a/data/rfu_union_tool.s +++ b/data/rfu_union_tool.s @@ -6,27 +6,6 @@ .section .rodata .align 2 -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 - .align 2 gUnknown_8457194:: @ 8457194 .2byte 0x01FC, 0x0000 @ BgTemplate 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/event_object_80688E4.h b/include/event_object_80688E4.h index cee8ff707..611a57e00 100644 --- a/include/event_object_80688E4.h +++ b/include/event_object_80688E4.h @@ -6,5 +6,9 @@ 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); #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_movement.h b/include/event_object_movement.h index b81a61664..1b4c9e365 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, u8, u8); 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/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/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/rfu_union_tool.h b/include/rfu_union_tool.h index 4672d8c61..e7895d25f 100644 --- a/include/rfu_union_tool.h +++ b/include/rfu_union_tool.h @@ -11,7 +11,7 @@ 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 sub_811B754(struct UnkStruct_8019BA8 * ptr); +u8 sub_811B754(struct UnionObj * ptr); void sub_811BA78(void); #endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/include/union_room.h b/include/union_room.h index 00ed90a14..4730dfb18 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -85,7 +85,7 @@ struct UnkStruct_Group u8 field_15; }; -struct UnkStruct_8019BA8 +struct UnionObj { u8 field_0; u8 field_1; @@ -121,7 +121,7 @@ struct UnkStruct_URoom /* 0x058 */ u8 field_58[4][11]; /* 0x084 */ u16 field_98; /* 0x086 */ u16 field_9A[3]; - /* 0x08C */ struct UnkStruct_8019BA8 field_A0[8]; + /* 0x08C */ struct UnionObj field_A0[8]; /* 0x0AC */ u8 field_C0[12][15]; /* 0x160 */ u8 field_174[48]; /* 0x190 */ u8 field_1A4[200]; diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c index d50187b56..74dfaadd1 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -1,7 +1,23 @@ #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" + +EWRAM_DATA struct UnionObj * UnionObjWork = NULL; +EWRAM_DATA u32 gUnknown_203B088 = 0; + +u8 sub_811BA18(void); +u32 sub_811BBC8(u32 playerIdx, u32 arg1); +void sub_811C008(s32 arg0, s32 arg1, u8 arg2); const u8 gUnknown_84570D8[][10] = { {0x29, 0x36, 0x27, 0x12, 0x13, 0x14, 0x19, 0x1A}, @@ -35,6 +51,12 @@ const u8 gUnknown_845711B[] = { 0x01, 0x03, 0x01, 0x04, 0x02 }; +const u8 gUnknown_8457120[] = { + 0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03, + 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, + 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00 +}; + bool32 is_walking_or_running(void) { if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0) @@ -73,8 +95,432 @@ bool32 sub_811B58C(u32 a0, u32 a1, s32 a2, s32 a3) return TRUE; } } -// -//bool32 IsUnionRoomPlayerHidden(u32 player_idx) -//{ -// return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); -//} + +bool32 IsUnionRoomPlayerHidden(u32 player_idx) +{ + return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +} + +void HideUnionRoomPlayer(u32 player_idx) +{ + FlagSet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +} + +void ShowUnionRoomPlayer(u32 player_idx) +{ + FlagClear(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +} + +void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) +{ + VarSet(VAR_OBJ_GFX_ID_0 + playerIdx, gfxId); +} + +void CreateUnionRoomPlayerObjectEvent(u32 playerIdx) +{ + TrySpawnObjectEvent(gUnknown_8457120[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +void RemoveUnionRoomPlayerObjectEvent(u32 playerIdx) +{ + RemoveObjectEventByLocalIdAndMap(gUnknown_8457120[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) +{ + u8 objectId; + struct ObjectEvent * object; + if (TryGetObjectEventIdByLocalIdAndMap(gUnknown_8457120[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; +} +bool32 sub_811B6E8(u32 playerIdx) +{ + u8 objectId; + struct ObjectEvent * object; + if (TryGetObjectEventIdByLocalIdAndMap(gUnknown_8457120[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 sub_811B754(struct UnionObj * ptr) +{ + s32 i; + + gUnknown_203B088 = 0; + UnionObjWork = ptr; + AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 442) + for (i = 0; i < 8; i++) + { + ptr[i].field_0 = 0; + ptr[i].field_1 = 0; + ptr[i].field_2 = 0; + ptr[i].field_3 = 0; + } + return sub_811BA18(); +} + +const u8 gUnknown_845718D[2] = { + MOVEMENT_ACTION_FLY_UP, + MOVEMENT_ACTION_STEP_END +}; + +bool32 sub_811B7A8(s8 * a0, u32 playerIdx, struct UnionObj * ptr) +{ + switch (*a0) + { + case 0: + if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_845718D) == TRUE) + { + HideUnionRoomPlayer(playerIdx); + (*a0)++; + } + break; + case 1: + if (sub_811B6E8(playerIdx)) + { + RemoveUnionRoomPlayerObjectEvent(playerIdx); + HideUnionRoomPlayer(playerIdx); + *a0 = 0; + return TRUE; + } + break; + } + return FALSE; +} + +const u8 gUnknown_845718F[2] = { + MOVEMENT_ACTION_FLY_DOWN, + MOVEMENT_ACTION_STEP_END +}; + +bool32 sub_811B804(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) == 1) + { + break; + } + player_get_pos_including_state_based_drift(&x, &y); + if (sub_811B58C(playerIdx, 0, x, y) == 1) + { + break; + } + SetUnionRoomPlayerGfx(playerIdx, ptr->field_1); + CreateUnionRoomPlayerObjectEvent(playerIdx); + ShowUnionRoomPlayer(playerIdx); + (*a0)++; + // fallthrough + case 3: // incorrect? + if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_845718F) == 1) + { + (*a0)++; + } + break; + case 2: + if (sub_811B6E8(playerIdx)) + { + *a0 = 0; + return TRUE; + } + break; + } + return FALSE; +} + +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->field_3 = 1; + ptr->field_1 = sub_811B524(a1, a2); + if (ptr->field_0 == 0) + { + return TRUE; + } + else + { + return FALSE; + } +} + +bool32 sub_811B90C(u32 playerIdx) +{ + struct UnionObj * ptr = &UnionObjWork[playerIdx]; + AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 577) + ptr->field_3 = 2; + if (ptr->field_0 == 1) + { + return TRUE; + } + else + { + return FALSE; + } +} + +void sub_811B94C(u32 playerIdx, struct UnionObj * ptr) +{ + switch (ptr->field_0) + { + case 0: + if (ptr->field_3 == 1) + { + ptr->field_0 = 2; + ptr->field_2 = 0; + } + else + { + break; + } + // fallthrough + case 2: + if (!sub_811BBC8(playerIdx, 0) && ptr->field_3 == 2) + { + ptr->field_0 = 0; + ptr->field_2 = 0; + RemoveUnionRoomPlayerObjectEvent(playerIdx); + HideUnionRoomPlayer(playerIdx); + } + else if (sub_811B804(&ptr->field_2, playerIdx, ptr) == 1) + { + ptr->field_0 = 1; + } + break; + case 1: + if (ptr->field_3 == 2) + { + ptr->field_0 = 3; + ptr->field_2 = 0; + } + else + { + break; + } + // fallthrough + case 3: + if (sub_811B7A8(&ptr->field_2, playerIdx, ptr) == 1) + { + ptr->field_0 = 0; + } + break; + } + ptr->field_3 = 0; +} + +void sub_811B9D8(u8 taskId) +{ + s32 i; + AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 643) + for (i = 0; i < 8; i++) + { + sub_811B94C(i, &UnionObjWork[i]); + } +} + +u8 sub_811BA18(void) +{ + if (FuncIsActiveTask(sub_811B9D8) == TRUE) + { + AGB_ASSERT_EX(0, ABSPATH("rfu_union_tool.c"), 655) + return NUM_TASKS; + } + else + { + return CreateTask(sub_811B9D8, 5); + } +} + +void sub_811BA5C(void) +{ + u8 taskId = FindTaskIdByFunc(sub_811B9D8); + 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, gUnknown_84570EC[r9][0] + gUnknown_845710C[r7][0], gUnknown_84570EC[r9][1] + gUnknown_845710C[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++) + { + sub_811B53C(i, j, &x, &y); + sub_8059024(x, y, 0); + } + } +} + +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; + } +} + +u32 sub_811BBC8(u32 a0, u32 a1) +{ + return sub_806916C(5 * a0 + a1 - 0x38); +} + +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)); + sub_811B53C(r5, r6, &x, &y); + sub_8059024(x, y, 1); +} + +void sub_811BC68(u32 a0, u32 a1) +{ + s32 x, y; + sub_80691A4(5 * a0 + a1 - 0x38, 2); + sub_811B53C(a0, a1, &x, &y); + sub_8059024(x, y, 0); +} + +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) == 1 || sub_811B58C(r7, 0, x2, y2) == 1) + { + return; + } + sub_811BBE0(r7, 0, sub_811B524(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) == 0 && sub_811B58C(r7, i, x2, y2) == 0) + { + sub_811BBE0(r7, i, sub_811B524((r8->unk_04[i - 1] >> 3) & 1, r8->unk_04[i - 1] & 7), r8); + } + } +} + +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) + } +} diff --git a/src/scrcmd.c b/src/scrcmd.c index c083546eb..c2c422a0a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -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/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/sym_ewram.txt b/sym_ewram.txt index 86777e885..64bfc7e91 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -352,14 +352,10 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/quest_log.o" .align 2 .include "src/union_room.o" - .align 2 -UnionObjWork: @ 203B084 - .space 0x4 - -gUnknown_203B088: @ 203B088 - .space 0x4 + .include "src/rfu_union_tool.o" + .align 2 gUnknown_203B08C: @ 203B08C .space 0x4 -- cgit v1.2.3 From c4626ec2966d8d31140fc3cd26fee505d7f817d2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 13:47:30 -0500 Subject: Finish rfu_union_tool decomp --- asm/rfu_union_tool.s | 815 ----------------------------------------- asm/union_room_battle.s | 555 ++++++++++++++++++++++++++++ data/rfu_union_tool.s | 22 -- data/union_room_battle.s | 22 ++ include/event_object_80688E4.h | 1 + ld_script.txt | 4 +- src/rfu_union_tool.c | 95 +++++ 7 files changed, 675 insertions(+), 839 deletions(-) delete mode 100644 asm/rfu_union_tool.s create mode 100644 asm/union_room_battle.s delete mode 100644 data/rfu_union_tool.s create mode 100644 data/union_room_battle.s diff --git a/asm/rfu_union_tool.s b/asm/rfu_union_tool.s deleted file mode 100644 index 12e5200bc..000000000 --- a/asm/rfu_union_tool.s +++ /dev/null @@ -1,815 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - 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/asm/union_room_battle.s b/asm/union_room_battle.s new file mode 100644 index 000000000..d76f458a9 --- /dev/null +++ b/asm/union_room_battle.s @@ -0,0 +1,555 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + 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/rfu_union_tool.s b/data/rfu_union_tool.s deleted file mode 100644 index f9988661e..000000000 --- a/data/rfu_union_tool.s +++ /dev/null @@ -1,22 +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 - - .align 2 -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 diff --git a/data/union_room_battle.s b/data/union_room_battle.s new file mode 100644 index 000000000..f9988661e --- /dev/null +++ b/data/union_room_battle.s @@ -0,0 +1,22 @@ +#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 + + .align 2 +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 diff --git a/include/event_object_80688E4.h b/include/event_object_80688E4.h index 611a57e00..36040e0a5 100644 --- a/include/event_object_80688E4.h +++ b/include/event_object_80688E4.h @@ -10,5 +10,6 @@ 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/ld_script.txt b/ld_script.txt index e1079704f..88f42388d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -243,7 +243,7 @@ SECTIONS { src/quest_log.o(.text); src/union_room.o(.text); src/rfu_union_tool.o(.text); - asm/rfu_union_tool.o(.text); + asm/union_room_battle.o(.text); asm/pokemon_special_anim.o(.text); src/party_menu.o(.text); asm/union_room_chat.o(.text); @@ -530,7 +530,7 @@ SECTIONS { src/quest_log.o(.rodata); src/union_room.o(.rodata); src/rfu_union_tool.o(.rodata); - data/rfu_union_tool.o(.rodata); + data/union_room_battle.o(.rodata); data/union_room_message.o(.rodata); data/pokemon_special_anim.o(.rodata); src/party_menu.o(.rodata); diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c index 74dfaadd1..3a1b566e6 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -524,3 +524,98 @@ void sub_811BDA8(u32 r5, struct GFtgtGname * r4) AGB_ASSERT_EX(0, ABSPATH("rfu_union_tool.c"), 979) } } + +void sub_811BE6C(u32 r5, struct GFtgtGname * unused) +{ + s32 i; + sub_811B90C(r5); + for (i = 0; i < 5; i++) + { + sub_811BC68(r5, i); + } +} + +void sub_811BE8C(struct UnkStruct_URoom *r0) +{ + s32 i; + struct UnkStruct_x20 * r4; + gUnknown_203B088 = 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.field_0); + } + else if (r4[i].field_1A_0 == 2) + { + sub_811BE6C(i, &r4[i].unk.field_0); + } + } +} + +void sub_811BECC(struct UnkStruct_URoom *unused) +{ + gUnknown_203B088 = 300; +} + +void sub_811BEDC(struct UnkStruct_URoom *r2) +{ + if (++gUnknown_203B088 > 300) + { + sub_811BE8C(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 != gUnknown_84570EC[i][0] + gUnknown_845710C[j][0] + 7) + { + continue; + } + if (y != gUnknown_84570EC[i][1] + gUnknown_845710C[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, gUnknown_8457116[GetPlayerFacingDirection()]); + *arg1 = j; + *arg2 = i; + return TRUE; + } + } + return FALSE; +} + +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.field_0)); +} -- cgit v1.2.3 From 48f7bbe6f6521d2f62dabbc162c46da4848661bb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 14:29:37 -0500 Subject: Some documentation of rfu_union_tool --- data/union_room_battle.s | 7 +- data/union_room_message.s | 297 +++++++++++++++++++++++++++------------- include/event_object_movement.h | 2 +- include/link_rfu.h | 2 +- include/rfu_union_tool.h | 2 +- include/union_room.h | 18 +-- src/link_rfu_2.c | 4 +- src/rfu_union_tool.c | 292 ++++++++++++++++++++++----------------- src/union_room.c | 52 +++---- 9 files changed, 412 insertions(+), 264 deletions(-) diff --git a/data/union_room_battle.s b/data/union_room_battle.s index f9988661e..d7fff5e96 100644 --- a/data/union_room_battle.s +++ b/data/union_room_battle.s @@ -10,13 +10,14 @@ gUnknown_8457194:: @ 8457194 .2byte 0x01FC, 0x0000 @ BgTemplate + .align 2 gUnknown_8457198:: @ 8457198 .byte 0x00, 0x02, 0x0F, 0x1A, 0x04, 0x0E @ window template .2byte 0x0014 - @ ??? - .byte -1, 0, 0, 0 - .byte 0, 0, 0, 0 + .byte 0xFF, 0, 0, 0, 0, 0 + .2byte 0x0000 + .align 2 gUnknown_84571A8:: @ 84571A8 .byte 0x01, 0x02, 0x03, 0x00 diff --git a/data/union_room_message.s b/data/union_room_message.s index 0d72f7c1d..02ad4f5f4 100644 --- a/data/union_room_message.s +++ b/data/union_room_message.s @@ -27,6 +27,7 @@ gUnknown_84571E0:: @ 84571E0 .string "SYSTEM search has been canceled.$" .align 2 +gUnref_845721C:: @ 845721C .string "ともだちからの れんらくを\n" @ something about waiting for a friend to connect? .string "まっています$" @@ -167,43 +168,56 @@ gUnknown_845747C:: @ 845747C .align 2 unref_text_union_room_2:: - .string "ため\nさんかしゃ ぼしゅうちゅう です!$" + .string "ため\n" + .string "さんかしゃ ぼしゅうちゅう です!$" .align 2 gUnknown_84574A0:: @ 84574A0 - .string "{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?$" + .string "{STR_VAR_2} contacted you for\n" + .string "{STR_VAR_1}. Accept?$" .align 2 gUnknown_84574C4:: @ 84574C4 - .string "{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?$" + .string "{STR_VAR_2} contacted you.\n" + .string "Will you share {STR_VAR_1}?$" .align 2 gUnknown_84574EC:: @ 84574EC - .string "{STR_VAR_2} contacted you.\nAdd to the members?$" + .string "{STR_VAR_2} contacted you.\n" + .string "Add to the members?$" .align 2 gUnknown_8457514:: @ 8457514 - .string "{STR_VAR_1}!\nAre these members OK?$" + .string "{STR_VAR_1}!\n" + .string "Are these members OK?$" .align 2 gUnknown_8457530:: @ 8457530 - .string "Cancel {STR_VAR_1} MODE\nwith these members?$" + .string "Cancel {STR_VAR_1} MODE\n" + .string "with these members?$" .align 2 gUnknown_8457554:: @ 8457554 - .string "An “OK” was sent\nto {STR_VAR_1}.$" + .string "An “OK” was sent\n" + .string "to {STR_VAR_1}.$" .align 2 gUnknown_845756C:: @ 845756C - .string "The other TRAINER doesn't appear\nto be available now…\p$" + .string "The other TRAINER doesn't appear\n" + .string "to be available now…\p" + .string "$" .align 2 gUnknown_84575A4:: @ 84575A4 - .string "You can't transmit with a TRAINER\nwho is too far away.\p$" + .string "You can't transmit with a TRAINER\n" + .string "who is too far away.\p" + .string "$" .align 2 gUnknown_84575DC:: @ 84575DC - .string "The other TRAINER(S) is/are not\nready yet.\p$" + .string "The other TRAINER(S) is/are not\n" + .string "ready yet.\p" + .string "$" .align 2 gUnknown_8457608:: @ 8457608 @@ -212,11 +226,14 @@ gUnknown_8457608:: @ 8457608 .align 2 gUnknown_8457610:: @ 8457610 - .string "The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}$" + .string "The {STR_VAR_1} MODE with\n" + .string "these members will be canceled.{PAUSE 90}$" .align 2 gUnknown_8457644:: @ 8457644 - .string "There is a member who can no\nlonger remain available.\p$" + .string "There is a member who can no\n" + .string "longer remain available.\p" + .string "$" .align 2 gUnknown_845767C:: @ 845767C @@ -225,7 +242,9 @@ gUnknown_845767C:: @ 845767C .align 2 gUnknown_8457684:: @ 8457684 - .string "The other TRAINER appears\nunavailable…\p$" + .string "The other TRAINER appears\n" + .string "unavailable…\p" + .string "$" .align 2 gUnknown_84576AC:: @ 84576AC @@ -233,15 +252,18 @@ gUnknown_84576AC:: @ 84576AC .align 2 gUnknown_84576C4:: @ 84576C4 - .string "{STR_VAR_1} OK'd your registration as\na member.$" + .string "{STR_VAR_1} OK'd your registration as\n" + .string "a member.$" .align 2 gUnknown_84576EC:: @ 84576EC - .string "{STR_VAR_1} replied, “No…”\p$" + .string "{STR_VAR_1} replied, “No…”\p" + .string "$" .align 2 gUnknown_8457700:: @ 8457700 - .string "{STR_VAR_1}!\nAwaiting other members!$" + .string "{STR_VAR_1}!\n" + .string "Awaiting other members!$" .align 2 gUnknown_845771C:: @ 845771C @@ -249,7 +271,8 @@ gUnknown_845771C:: @ 845771C .align 2 gUnknown_8457734:: @ 8457734 - .string "You stopped being a member.\p$" + .string "You stopped being a member.\p" + .string "$" .align 2 gUnknown_8457754:: @ 8457754 @@ -266,15 +289,18 @@ gUnknown_8457754:: @ 8457754 .align 2 gUnknown_845777C:: @ 845777C - .string "The WIRELESS COMMUNICATION\nSYSTEM link has been established.$" + .string "The WIRELESS COMMUNICATION\n" + .string "SYSTEM link has been established.$" .align 2 gUnknown_84577BC:: @ 84577BC - .string "The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…$" + .string "The WIRELESS COMMUNICATION\n" + .string "SYSTEM link has been dropped…$" .align 2 gUnknown_84577F8:: @ 84577F8 - .string "The link with your friend has been\ndropped…$" + .string "The link with your friend has been\n" + .string "dropped…$" .align 2 gUnknown_8457824:: @ 8457824 @@ -295,11 +321,13 @@ gUnknown_8457838:: @ 8457838 .align 2 gUnknown_8457860:: @ 8457860 - .string "Do you want the {STR_VAR_2}\nMODE?$" + .string "Do you want the {STR_VAR_2}\n" + .string "MODE?$" .align 2 gUnknown_845787C:: @ 845787C - .string "Do you want the {STR_VAR_2}\nMODE?$" + .string "Do you want the {STR_VAR_2}\n" + .string "MODE?$" .align 2 gUnknown_8457898:: @ 8457898 @@ -313,19 +341,23 @@ gUnknown_84578A0:: @ 84578A0 .align 2 gUnknown_84578BC:: @ 84578BC - .string "Awaiting {STR_VAR_1}'s response about\nthe trade…$" + .string "Awaiting {STR_VAR_1}'s response about\n" + .string "the 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}.$" + .string "Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n" + .string "{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}.$" + .string "Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n" + .string "{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}.$" + .string "Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n" + .string "{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 @@ -335,19 +367,23 @@ gUnknown_8457A34:: @ 8457A34 .align 2 gUnknown_8457A40:: @ 8457A40 - .string "Hiya! Is there something that you\nwanted to do?$" + .string "Hiya! Is there something that you\n" + .string "wanted to do?$" .align 2 gUnknown_8457A70:: @ 8457A70 - .string "Hello!\nWould you like to do something?$" + .string "Hello!\n" + .string "Would 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?$" + .string "{STR_VAR_1}: Hiya, we meet again!\n" + .string "What are you up for this time?$" .align 2 gUnknown_8457AD0:: @ 8457AD0 - .string "{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?$" + .string "{STR_VAR_1}: Oh! {PLAYER}, hello!\n" + .string "Would you like to do something?$" .align 2 gUnknown_8457B04:: @ 8457B04 @@ -366,7 +402,8 @@ gUnknown_8457B2C:: @ 8457B2C .align 2 gUnknown_8457B4C:: @ 8457B4C - .string "{STR_VAR_1}: What would you like to\ndo now?$" + .string "{STR_VAR_1}: What would you like to\n" + .string "do now?$" .align 2 gUnknown_8457B70:: @ 8457B70 @@ -394,11 +431,13 @@ gUnknown_8457BCC:: @ 8457BCC .align 2 gUnknown_8457BD4:: @ 8457BD4 - .string "Awaiting a response from\nthe other TRAINER…$" + .string "Awaiting a response from\n" + .string "the other TRAINER…$" .align 2 gUnknown_8457C00:: @ 8457C00 - .string "Awaiting a response from\n{STR_VAR_1}…$" + .string "Awaiting a response from\n" + .string "{STR_VAR_1}…$" .align 2 gUnknown_8457C20:: @ 8457C20 @@ -448,18 +487,22 @@ gUnknown_8457DB8:: @ 8457DB8 .align 2 gUnknown_8457E0C:: @ 8457E0C - .string "The chat has been dropped.\p$" + .string "The chat has been dropped.\p" + .string "$" gUnknown_8457E28:: @ 8457E28 - .string "You declined the offer.\p$" + .string "You declined the offer.\p" + .string "$" .align 2 gUnknown_8457E44:: @ 8457E44 - .string "You declined the offer.\p$" + .string "You declined the offer.\p" + .string "$" .align 2 gUnknown_8457E60:: @ 8457E60 - .string "The chat was ended.\p$" + .string "The chat was ended.\p" + .string "$" .align 2 gUnknown_8457E78:: @@ -499,7 +542,8 @@ gUnknown_8457F80:: @ 8457F80 gUnknown_8457F90:: @ 8457F90 .string "……\n" - .string "The TRAINER appears to be busy…\p$" + .string "The TRAINER appears to be busy…\p" + .string "$" .align 2 gUnknown_8457FB4:: @@ -596,12 +640,14 @@ gUnknown_8458230:: @ 8458230 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$" + .string "Let me battle you another time.\p" + .string "$" 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$" + .string "Let's battle another time.\p" + .string "$" gUnknown_8458314:: @ 8458314 .4byte gUnknown_8458260 @@ -611,13 +657,15 @@ gUnknown_8458314:: @ 8458314 gUnknown_845831C:: .string "Huh? My TRAINER CARD…\n" .string "Where'd it go now?\l" - .string "Sorry! I'll show you another time!\p$" + .string "Sorry! I'll show you another time!\p" + .string "$" .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$" + .string "Sorry! I'll show you later!\p" + .string "$" .align 2 gUnknown_84583B4:: @ 84583B4 @@ -627,11 +675,13 @@ gUnknown_84583B4:: @ 84583B4 .align 2 gUnknown_84583BC:: .string "If you want to do something with\n" - .string "me, just give me a shout!\p$" + .string "me, just give me a shout!\p" + .string "$" .align 2 gUnknown_84583F8:: .string "If you want to do something with\n" - .string "me, don't be shy.\p$" + .string "me, don't be shy.\p" + .string "$" .align 2 gUnknown_845842C:: @ 845842C @@ -641,27 +691,32 @@ gUnknown_845842C:: @ 845842C gUnknown_8458434:: @ 8458434 .string "Whoops! Sorry, but I have to do\n" .string "something else.\l" - .string "Another time, okay?\p$" + .string "Another time, okay?\p" + .string "$" .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$" + .string "Lv. 30.\p" + .string "$" gUnknown_84584C0:: @ 84584C0 .string "For a battle, you need two\n" - .string "POKéMON that are below Lv. 30.\p$" + .string "POKéMON that are below Lv. 30.\p" + .string "$" .align 2 gUnknown_84584FC:: .string "Oh, all right.\n" - .string "Come see me anytime, okay?\p$" + .string "Come see me anytime, okay?\p" + .string "$" .align 2 gUnknown_8458528:: .string "Oh…\n" - .string "Please come by anytime.\p$" + .string "Please come by anytime.\p" + .string "$" .align 2 gUnknown_8458548:: @ 8458548 @@ -672,13 +727,15 @@ gUnknown_8458548:: @ 8458548 gUnknown_8458550:: .string "Oh, sorry!\n" .string "I just can't right this instant.\l" - .string "Let's chat another time.\p$" + .string "Let's chat another time.\p" + .string "$" .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$" + .string "Let's chat some other time.\p" + .string "$" .align 2 gUnknown_84585E8:: @ 84585E8 @@ -688,42 +745,50 @@ gUnknown_84585E8:: @ 84585E8 .align 2 gUnknown_84585F0:: .string "Whoa!\n" - .string "I can tell you're pretty tough!\p$" + .string "I can tell you're pretty tough!\p" + .string "$" .align 2 gUnknown_8458618:: .string "You used that move?\n" - .string "That's good strategy!\p$" + .string "That's good strategy!\p" + .string "$" .align 2 gUnknown_8458644:: .string "Way to go!\n" - .string "That was an eye-opener!\p$" + .string "That was an eye-opener!\p" + .string "$" .align 2 gUnknown_8458668:: .string "Oh! How could you use that\n" - .string "POKéMON in that situation?\p$" + .string "POKéMON in that situation?\p" + .string "$" .align 2 gUnknown_84586A0:: .string "That POKéMON…\n" - .string "It's been raised really well!\p$" + .string "It's been raised really well!\p" + .string "$" .align 2 gUnknown_84586D0:: .string "That's it!\n" - .string "This is the right move now!\p$" + .string "This is the right move now!\p" + .string "$" .align 2 gUnknown_84586F8:: .string "That's awesome!\n" - .string "You can battle that way?\p$" + .string "You can battle that way?\p" + .string "$" .align 2 gUnknown_8458724:: .string "You have exquisite timing for\n" - .string "switching POKéMON!\p$" + .string "switching POKéMON!\p" + .string "$" .align 2 gUnknown_8458758:: @ 8458758 @@ -739,42 +804,50 @@ gUnknown_8458758:: @ 8458758 .align 2 gUnknown_8458778:: .string "Oh, I see!\n" - .string "This is educational!\p$" + .string "This is educational!\p" + .string "$" .align 2 gUnknown_845879C:: .string "Don't say anything funny anymore!\n" - .string "I'm sore from laughing!\p$" + .string "I'm sore from laughing!\p" + .string "$" .align 2 gUnknown_84587D8:: .string "Oh?\n" - .string "Something like that happened.\p$" + .string "Something like that happened.\p" + .string "$" .align 2 gUnknown_84587FC:: .string "Hmhm… What?\n" - .string "So is this what you're saying?\p$" + .string "So is this what you're saying?\p" + .string "$" .align 2 gUnknown_8458828:: .string "Is that right?\n" - .string "I didn't know that.\p$" + .string "I didn't know that.\p" + .string "$" .align 2 gUnknown_845884C:: .string "Ahaha!\n" - .string "What is that about?\p$" + .string "What is that about?\p" + .string "$" .align 2 gUnknown_8458868:: .string "Yes, that's exactly it!\n" - .string "That's what I meant.\p$" + .string "That's what I meant.\p" + .string "$" .align 2 gUnknown_8458898:: .string "In other words…\n" - .string "Yes! That's right!\p$" + .string "Yes! That's right!\p" + .string "$" .align 2 gUnknown_84588BC:: @ 84588BC @@ -790,21 +863,25 @@ gUnknown_84588BC:: @ 84588BC .align 2 gUnknown_84588DC:: .string "I'm just showing my TRAINER CARD\n" - .string "as my way of greeting.\p$" + .string "as my way of greeting.\p" + .string "$" .align 2 gUnknown_8458918:: - .string "I hope I get to know you better!\p$" + .string "I hope I get to know you better!\p" + .string "$" .align 2 gUnknown_845893C:: .string "We're showing each other our\n" - .string "TRAINER CARDS to get acquainted.\p$" + .string "TRAINER CARDS to get acquainted.\p" + .string "$" .align 2 gUnknown_845897C:: .string "Glad to meet you.\n" - .string "Please don't be a stranger!\p$" + .string "Please don't be a stranger!\p" + .string "$" .align 2 gUnknown_84589AC:: @ 84589AC @@ -816,21 +893,25 @@ gUnknown_84589AC:: @ 84589AC .align 2 gUnknown_84589BC:: .string "Yeahah!\n" - .string "I really wanted this POKéMON!\p$" + .string "I really wanted this POKéMON!\p" + .string "$" .align 2 gUnknown_84589E4:: .string "Finally, a trade got me that\n" - .string "POKéMON I'd wanted a long time.\p$" + .string "POKéMON I'd wanted a long time.\p" + .string "$" .align 2 gUnknown_8458A24:: - .string "I'm trading POKéMON right now.\p$" + .string "I'm trading POKéMON right now.\p" + .string "$" .align 2 gUnknown_8458A44:: .string "I finally got that POKéMON I\n" - .string "wanted in a trade!\p$" + .string "wanted in a trade!\p" + .string "$" .align 2 gUnknown_8458A78:: @ 8458A78 @@ -845,7 +926,8 @@ gUnknown_8458A78:: @ 8458A78 gUnknown_8458A98:: @ 8458A98 .string "{STR_VAR_1} checked the\n" - .string "TRADING BOARD.\p$" + .string "TRADING BOARD.\p" + .string "$" .align 2 gUnknown_8458AB8:: @ 8458AB8 @@ -873,33 +955,40 @@ gUnknown_8458B44:: @ 8458B44 .string "こうかんけいじばん の とうろくが\n" .string "かんりょう しました\p" .string "ごりよう ありがとう\n" - .string "ございました!\p$" + .string "ございました!\p" + .string "$" .align 2 .string "けいじばんに だれも ポケモンを\n" - .string "とうろく していません\p\n$" + .string "とうろく していません\p" + .string "\n$" .align 2 gUnknown_8458CD4:: @ 8458CD4 .string "Please choose the type of POKéMON\n" - .string "that you would like in the trade.\n$" + .string "that you would like in the trade.\n" + .string "$" .align 2 gUnknown_8458D1C:: @ 8458D1C .string "Which of your party POKéMON will\n" - .string "you offer in trade?\p$" + .string "you offer in trade?\p" + .string "$" .align 2 gUnknown_8458D54:: @ 8458D54 - .string "Registration has been canceled.\p$" + .string "Registration has been canceled.\p" + .string "$" .align 2 gUnknown_8458D78:: @ 8458D78 - .string "Registration has been completed.\p$" + .string "Registration has been completed.\p" + .string "$" .align 2 gUnknown_8458D9C:: @ 8458D9C - .string "The trade has been canceled.\p$" + .string "The trade has been canceled.\p" + .string "$" .align 2 gUnknown_8458DBC:: @ 8458DBC @@ -913,7 +1002,8 @@ gUnknown_8458DE8:: @ 8458DE8 .align 2 gUnknown_8458E10:: @ 8458E10 - .string "The registration has been canceled.\p$" + .string "The registration has been canceled.\p" + .string "$" .align 2 .string "こうかんを きぼうしているひとを\n" @@ -934,27 +1024,32 @@ gUnknown_8458E70:: @ 8458E70 .align 2 .string "あなたが こうかんにだす\n" - .string "ポケモンが とうろくされていません\p$" + .string "ポケモンが とうろくされていません\p" + .string "$" .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$" + .string "POKéMON that {STR_VAR_1} wants.\p" + .string "$" .align 2 gUnknown_8458F04:: @ 8458F04 .string "You don't have an EGG that\n" - .string "{STR_VAR_1} wants.\p$" + .string "{STR_VAR_1} wants.\p" + .string "$" .align 2 gUnknown_8458F2C:: @ 8458F2C .string "{STR_VAR_1} can't make a trade for\n" - .string "your POKéMON right now.\p$" + .string "your POKéMON right now.\p" + .string "$" .align 2 gUnknown_8458F60:: @ 8458F60 .string "You can't make a trade for\n" - .string "{STR_VAR_1}'s POKéMON right now.\p$" + .string "{STR_VAR_1}'s POKéMON right now.\p" + .string "$" .align 2 gUnknown_8458F94:: @ 8458F94 @@ -962,7 +1057,8 @@ gUnknown_8458F94:: @ 8458F94 .word gUnknown_8458F60 gUnknown_8458F9C:: @ 8458F9C - .string "Your trade offer was rejected.\p$" + .string "Your trade offer was rejected.\p" + .string "$" gUnknown_8458FBC:: @ 8458FBC .string "EGG TRADE$" @@ -1039,7 +1135,8 @@ gUnknown_84591DC:: @ 84591DC .align 2 .string "ダブルバトルでは 2ひき いじょうの\n" - .string "ポケモンが ひつようです\p$" + .string "ポケモンが ひつようです\p" + .string "$" .align 2 gUnknown_8459238:: @ 8459238 @@ -1187,11 +1284,20 @@ gUnknown_84594B0:: @ 84594B0 .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$" + .string "This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\n" + .string "TRAINER CARD…\l" + .string "{SPECIAL_F7 0x02}\p" + .string "POKéDEX: {SPECIAL_F7 0x03}\n" + .string "TIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p" + .string "$" .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$" + .string "BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\n" + .string "TRADES: {SPECIAL_F7 0x03} TIMES\p" + .string "“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n" + .string "{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p" + .string "$" .align 2 gUnknown_8459544:: @ 8459544 @@ -1208,9 +1314,8 @@ gUnknown_8459580:: @ 8459580 .align 2 gUnknown_8459588:: @ 8459588 - .string "Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}$" - - @ why is this data here of all places? + .string "Finished checking {SPECIAL_F7 0x01}'s\n" + .string "TRAINER CARD.{PAUSE 60}$" .align 2 gUnknown_84595B0:: diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 1b4c9e365..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 TrySpawnObjectEvent(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 *); diff --git a/include/link_rfu.h b/include/link_rfu.h index 874f62511..985c260ef 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -303,7 +303,7 @@ 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 sub_80FAF58(u8 a0, u32 a1, u32 a2); +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); diff --git a/include/rfu_union_tool.h b/include/rfu_union_tool.h index e7895d25f..b8b5cd664 100644 --- a/include/rfu_union_tool.h +++ b/include/rfu_union_tool.h @@ -11,7 +11,7 @@ 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 sub_811B754(struct UnionObj * ptr); +u8 ZeroUnionObjWork(struct UnionObj * ptr); void sub_811BA78(void); #endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/include/union_room.h b/include/union_room.h index 4730dfb18..0ad5e920e 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -87,10 +87,10 @@ struct UnkStruct_Group 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 @@ -121,17 +121,17 @@ struct UnkStruct_URoom /* 0x058 */ u8 field_58[4][11]; /* 0x084 */ u16 field_98; /* 0x086 */ u16 field_9A[3]; - /* 0x08C */ struct UnionObj field_A0[8]; - /* 0x0AC */ u8 field_C0[12][15]; + /* 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 UnionRoomTrade 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/rfu_union_tool.c b/src/rfu_union_tool.c index 3a1b566e6..c3f6de9c1 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -12,52 +12,94 @@ #include "constants/event_object_movement.h" #include "constants/object_events.h" -EWRAM_DATA struct UnionObj * UnionObjWork = NULL; -EWRAM_DATA u32 gUnknown_203B088 = 0; - -u8 sub_811BA18(void); -u32 sub_811BBC8(u32 playerIdx, u32 arg1); -void sub_811C008(s32 arg0, s32 arg1, u8 arg2); +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 + } +}; -const u8 gUnknown_84570D8[][10] = { - {0x29, 0x36, 0x27, 0x12, 0x13, 0x14, 0x19, 0x1A}, - {0x2A, 0x3A, 0x28, 0x16, 0x17, 0x18, 0x1C, 0x1D} +static const s16 sUnionPartnerCoords[][2] = { + { 4, 6}, + {13, 8}, + {10, 6}, + { 1, 8}, + {13, 4}, + { 7, 4}, + { 1, 4}, + { 7, 8} }; -const s16 gUnknown_84570EC[][2] = { - {0x4, 0x6}, - {0xd, 0x8}, - {0xa, 0x6}, - {0x1, 0x8}, - {0xd, 0x4}, - {0x7, 0x4}, - {0x1, 0x4}, - {0x7, 0x8} +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} }; -const s8 gUnknown_845710C[][2] = { - { 0, 0}, - { 1, 0}, - { 0, -1}, - {-1, 0}, - { 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 }; -const u8 gUnknown_8457116[] = { - 0x00, 0x02, 0x01, 0x04, 0x03 +static const u8 gUnknown_845711B[] = { + 1, + 3, + 1, + 4, + 2 }; -const u8 gUnknown_845711B[] = { - 0x01, 0x03, 0x01, 0x04, 0x02 +static const u8 sUnionRoomLocalIds[] = { + 9, + 8, + 7, + 2, + 6, + 5, + 4, + 3 }; -const u8 gUnknown_8457120[] = { - 0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03, - 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, - 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00 +static const u16 sUnref_8457128[] = { + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6A }; -bool32 is_walking_or_running(void) +static bool32 is_walking_or_running(void) { if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0) { @@ -69,24 +111,24 @@ bool32 is_walking_or_running(void) } } -u8 sub_811B524(u32 a0, u32 a1) +static u8 GetUnionRoomPlayerGraphicsId(u32 gender, u32 id) { - return gUnknown_84570D8[a0][a1 % 8]; + return sUnionObjectEventGfxIds[gender][id % 8]; } -void sub_811B53C(u32 a0, u32 a1, s32 * a2, s32 * a3) +static void GetUnionRoomPlayerFacingCoords(u32 id, u32 dirn, s32 * xp, s32 * yp) { - *a2 = gUnknown_84570EC[a0][0] + gUnknown_845710C[a1][0] + 7; - *a3 = gUnknown_84570EC[a0][1] + gUnknown_845710C[a1][1] + 7; + *xp = sUnionPartnerCoords[id][0] + sFacingDirectionOffsets[dirn][0] + 7; + *yp = sUnionPartnerCoords[id][1] + sFacingDirectionOffsets[dirn][1] + 7; } -bool32 sub_811B58C(u32 a0, u32 a1, s32 a2, s32 a3) +static bool32 sub_811B58C(u32 id, u32 dirn, s32 x, s32 y) { - if (gUnknown_84570EC[a0][0] + gUnknown_845710C[a1][0] + 7 != a2) + if (sUnionPartnerCoords[id][0] + sFacingDirectionOffsets[dirn][0] + 7 != x) { return FALSE; } - else if (gUnknown_84570EC[a0][1] + gUnknown_845710C[a1][1] + 7 != a3) + else if (sUnionPartnerCoords[id][1] + sFacingDirectionOffsets[dirn][1] + 7 != y) { return FALSE; } @@ -96,41 +138,41 @@ bool32 sub_811B58C(u32 a0, u32 a1, s32 a2, s32 a3) } } -bool32 IsUnionRoomPlayerHidden(u32 player_idx) +static bool32 IsUnionRoomPlayerHidden(u32 player_idx) { return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); } -void HideUnionRoomPlayer(u32 player_idx) +static void HideUnionRoomPlayer(u32 player_idx) { FlagSet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); } -void ShowUnionRoomPlayer(u32 player_idx) +static void ShowUnionRoomPlayer(u32 player_idx) { FlagClear(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); } -void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) +static void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) { VarSet(VAR_OBJ_GFX_ID_0 + playerIdx, gfxId); } -void CreateUnionRoomPlayerObjectEvent(u32 playerIdx) +static void CreateUnionRoomPlayerObjectEvent(u32 playerIdx) { - TrySpawnObjectEvent(gUnknown_8457120[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TrySpawnObjectEvent(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } -void RemoveUnionRoomPlayerObjectEvent(u32 playerIdx) +static void RemoveUnionRoomPlayerObjectEvent(u32 playerIdx) { - RemoveObjectEventByLocalIdAndMap(gUnknown_8457120[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + RemoveObjectEventByLocalIdAndMap(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } -bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) +static bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) { u8 objectId; struct ObjectEvent * object; - if (TryGetObjectEventIdByLocalIdAndMap(gUnknown_8457120[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId)) + if (TryGetObjectEventIdByLocalIdAndMap(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId)) { return FALSE; } @@ -146,11 +188,11 @@ bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) } return TRUE; } -bool32 sub_811B6E8(u32 playerIdx) +static bool32 TryReleaseUnionRoomPlayerObjectEvent(u32 playerIdx) { u8 objectId; struct ObjectEvent * object; - if (TryGetObjectEventIdByLocalIdAndMap(gUnknown_8457120[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId)) + if (TryGetObjectEventIdByLocalIdAndMap(sUnionRoomLocalIds[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId)) { return TRUE; } @@ -170,41 +212,41 @@ bool32 sub_811B6E8(u32 playerIdx) return TRUE; } -u8 sub_811B754(struct UnionObj * ptr) +u8 ZeroUnionObjWork(struct UnionObj * ptr) { s32 i; - gUnknown_203B088 = 0; + sUnionObjRefreshTimer = 0; UnionObjWork = ptr; AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 442) for (i = 0; i < 8; i++) { - ptr[i].field_0 = 0; - ptr[i].field_1 = 0; - ptr[i].field_2 = 0; - ptr[i].field_3 = 0; + ptr[i].state = 0; + ptr[i].gfxId = 0; + ptr[i].animState = 0; + ptr[i].schedAnim = 0; } - return sub_811BA18(); + return StartUnionObjAnimTask(); } -const u8 gUnknown_845718D[2] = { +static const u8 sMovement_UnionPlayerExit[2] = { MOVEMENT_ACTION_FLY_UP, MOVEMENT_ACTION_STEP_END }; -bool32 sub_811B7A8(s8 * a0, u32 playerIdx, struct UnionObj * ptr) +static bool32 AnimateUnionRoomPlayerDespawn(s8 * a0, u32 playerIdx, struct UnionObj * ptr) { switch (*a0) { case 0: - if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_845718D) == TRUE) + if (SetUnionRoomPlayerEnterExitMovement(playerIdx, sMovement_UnionPlayerExit) == TRUE) { HideUnionRoomPlayer(playerIdx); (*a0)++; } break; case 1: - if (sub_811B6E8(playerIdx)) + if (TryReleaseUnionRoomPlayerObjectEvent(playerIdx)) { RemoveUnionRoomPlayerObjectEvent(playerIdx); HideUnionRoomPlayer(playerIdx); @@ -216,12 +258,12 @@ bool32 sub_811B7A8(s8 * a0, u32 playerIdx, struct UnionObj * ptr) return FALSE; } -const u8 gUnknown_845718F[2] = { +static const u8 sMovement_UnionPlayerEnter[2] = { MOVEMENT_ACTION_FLY_DOWN, MOVEMENT_ACTION_STEP_END }; -bool32 sub_811B804(s8 * a0, u32 playerIdx, struct UnionObj * ptr) +static bool32 AnimateUnionRoomPlayerSpawn(s8 * a0, u32 playerIdx, struct UnionObj * ptr) { s16 x, y; @@ -233,28 +275,28 @@ bool32 sub_811B804(s8 * a0, u32 playerIdx, struct UnionObj * ptr) break; } PlayerGetDestCoords(&x, &y); - if (sub_811B58C(playerIdx, 0, x, y) == 1) + 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) == 1) + if (sub_811B58C(playerIdx, 0, x, y) == TRUE) { break; } - SetUnionRoomPlayerGfx(playerIdx, ptr->field_1); + SetUnionRoomPlayerGfx(playerIdx, ptr->gfxId); CreateUnionRoomPlayerObjectEvent(playerIdx); ShowUnionRoomPlayer(playerIdx); (*a0)++; // fallthrough case 3: // incorrect? - if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_845718F) == 1) + if (SetUnionRoomPlayerEnterExitMovement(playerIdx, sMovement_UnionPlayerEnter) == 1) { (*a0)++; } break; case 2: - if (sub_811B6E8(playerIdx)) + if (TryReleaseUnionRoomPlayerObjectEvent(playerIdx)) { *a0 = 0; return TRUE; @@ -264,13 +306,13 @@ bool32 sub_811B804(s8 * a0, u32 playerIdx, struct UnionObj * ptr) return FALSE; } -bool32 sub_811B8BC(u32 playerIdx, u32 a1, u32 a2) +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->field_3 = 1; - ptr->field_1 = sub_811B524(a1, a2); - if (ptr->field_0 == 0) + ptr->schedAnim = 1; + ptr->gfxId = GetUnionRoomPlayerGraphicsId(a1, a2); + if (ptr->state == 0) { return TRUE; } @@ -280,12 +322,12 @@ bool32 sub_811B8BC(u32 playerIdx, u32 a1, u32 a2) } } -bool32 sub_811B90C(u32 playerIdx) +static bool32 sub_811B90C(u32 playerIdx) { struct UnionObj * ptr = &UnionObjWork[playerIdx]; AGB_ASSERT_EX(UnionObjWork != NULL, ABSPATH("rfu_union_tool.c"), 577) - ptr->field_3 = 2; - if (ptr->field_0 == 1) + ptr->schedAnim = 2; + if (ptr->state == 1) { return TRUE; } @@ -295,15 +337,15 @@ bool32 sub_811B90C(u32 playerIdx) } } -void sub_811B94C(u32 playerIdx, struct UnionObj * ptr) +static void AnimateUnionObj(u32 playerIdx, struct UnionObj * ptr) { - switch (ptr->field_0) + switch (ptr->state) { case 0: - if (ptr->field_3 == 1) + if (ptr->schedAnim == 1) { - ptr->field_0 = 2; - ptr->field_2 = 0; + ptr->state = 2; + ptr->animState = 0; } else { @@ -311,23 +353,23 @@ void sub_811B94C(u32 playerIdx, struct UnionObj * ptr) } // fallthrough case 2: - if (!sub_811BBC8(playerIdx, 0) && ptr->field_3 == 2) + if (!sub_811BBC8(playerIdx, 0) && ptr->schedAnim == 2) { - ptr->field_0 = 0; - ptr->field_2 = 0; + ptr->state = 0; + ptr->animState = 0; RemoveUnionRoomPlayerObjectEvent(playerIdx); HideUnionRoomPlayer(playerIdx); } - else if (sub_811B804(&ptr->field_2, playerIdx, ptr) == 1) + else if (AnimateUnionRoomPlayerSpawn(&ptr->animState, playerIdx, ptr) == TRUE) { - ptr->field_0 = 1; + ptr->state = 1; } break; case 1: - if (ptr->field_3 == 2) + if (ptr->schedAnim == 2) { - ptr->field_0 = 3; - ptr->field_2 = 0; + ptr->state = 3; + ptr->animState = 0; } else { @@ -335,41 +377,41 @@ void sub_811B94C(u32 playerIdx, struct UnionObj * ptr) } // fallthrough case 3: - if (sub_811B7A8(&ptr->field_2, playerIdx, ptr) == 1) + if (AnimateUnionRoomPlayerDespawn(&ptr->animState, playerIdx, ptr) == TRUE) { - ptr->field_0 = 0; + ptr->state = 0; } break; } - ptr->field_3 = 0; + ptr->schedAnim = 0; } -void sub_811B9D8(u8 taskId) +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++) { - sub_811B94C(i, &UnionObjWork[i]); + AnimateUnionObj(i, &UnionObjWork[i]); } } -u8 sub_811BA18(void) +static u8 StartUnionObjAnimTask(void) { - if (FuncIsActiveTask(sub_811B9D8) == TRUE) + if (FuncIsActiveTask(Task_AnimateUnionObjs) == TRUE) { AGB_ASSERT_EX(0, ABSPATH("rfu_union_tool.c"), 655) return NUM_TASKS; } else { - return CreateTask(sub_811B9D8, 5); + return CreateTask(Task_AnimateUnionObjs, 5); } } -void sub_811BA5C(void) +static void sub_811BA5C(void) { - u8 taskId = FindTaskIdByFunc(sub_811B9D8); + u8 taskId = FindTaskIdByFunc(Task_AnimateUnionObjs); if (taskId < NUM_TASKS) { DestroyTask(taskId); @@ -398,7 +440,7 @@ void sub_811BAAC(u8 * sp8, s32 r9) for (r7 = 0; r7 < 5; r7++) { s32 r5 = 5 * r9 + r7; - sp8[r5] = sprite_new(OBJECT_EVENT_GFX_MAN, r5 - 0x38, gUnknown_84570EC[r9][0] + gUnknown_845710C[r7][0], gUnknown_84570EC[r9][1] + gUnknown_845710C[r7][1], 3, 1); + 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); } } @@ -419,13 +461,13 @@ void sub_811BB68(void) { for (j = 0; j < 5; j++) { - sub_811B53C(i, j, &x, &y); + GetUnionRoomPlayerFacingCoords(i, j, &x, &y); sub_8059024(x, y, 0); } } } -u8 sub_811BBA0(u32 r1, u32 unused, struct GFtgtGname * r2) +static u8 sub_811BBA0(u32 r1, u32 unused, struct GFtgtGname * r2) { if (r1 != 0) { @@ -441,12 +483,12 @@ u8 sub_811BBA0(u32 r1, u32 unused, struct GFtgtGname * r2) } } -u32 sub_811BBC8(u32 a0, u32 a1) +static u32 sub_811BBC8(u32 a0, u32 a1) { return sub_806916C(5 * a0 + a1 - 0x38); } -void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9) +static void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9) { s32 x, y; s32 r7 = 5 * r5 + r6; @@ -457,19 +499,19 @@ void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9) } sub_8069094(r7 - 0x38, r8); sub_811C008(r6, r5, sub_811BBA0(r6, r5, r9)); - sub_811B53C(r5, r6, &x, &y); + GetUnionRoomPlayerFacingCoords(r5, r6, &x, &y); sub_8059024(x, y, 1); } -void sub_811BC68(u32 a0, u32 a1) +static void sub_811BC68(u32 a0, u32 a1) { s32 x, y; sub_80691A4(5 * a0 + a1 - 0x38, 2); - sub_811B53C(a0, a1, &x, &y); + GetUnionRoomPlayerFacingCoords(a0, a1, &x, &y); sub_8059024(x, y, 0); } -void sub_811BCA0(u32 r7, struct GFtgtGname * r8) +static void sub_811BCA0(u32 r7, struct GFtgtGname * r8) { s16 x, y, x2, y2; s32 i; @@ -478,11 +520,11 @@ void sub_811BCA0(u32 r7, struct GFtgtGname * r8) player_get_pos_including_state_based_drift(&x2, &y2); if (sub_806916C(5 * r7 - 0x38) == 1) { - if (sub_811B58C(r7, 0, x, y) == 1 || sub_811B58C(r7, 0, x2, y2) == 1) + if (sub_811B58C(r7, 0, x, y) == TRUE || sub_811B58C(r7, 0, x2, y2) == TRUE) { return; } - sub_811BBE0(r7, 0, sub_811B524(r8->playerGender, r8->unk_00.playerTrainerId[0]), r8); + sub_811BBE0(r7, 0, GetUnionRoomPlayerGraphicsId(r8->playerGender, r8->unk_00.playerTrainerId[0]), r8); } for (i = 1; i < 5; i++) { @@ -490,14 +532,14 @@ void sub_811BCA0(u32 r7, struct GFtgtGname * r8) { sub_811BC68(r7, i); } - else if (sub_811B58C(r7, i, x, y) == 0 && sub_811B58C(r7, i, x2, y2) == 0) + else if (sub_811B58C(r7, i, x, y) == FALSE && sub_811B58C(r7, i, x2, y2) == FALSE) { - sub_811BBE0(r7, i, sub_811B524((r8->unk_04[i - 1] >> 3) & 1, r8->unk_04[i - 1] & 7), r8); + sub_811BBE0(r7, i, GetUnionRoomPlayerGraphicsId((r8->unk_04[i - 1] >> 3) & 1, r8->unk_04[i - 1] & 7), r8); } } } -void sub_811BDA8(u32 r5, struct GFtgtGname * r4) +static void sub_811BDA8(u32 r5, struct GFtgtGname * r4) { u32 i; switch (r4->unk_0a_0) @@ -525,7 +567,7 @@ void sub_811BDA8(u32 r5, struct GFtgtGname * r4) } } -void sub_811BE6C(u32 r5, struct GFtgtGname * unused) +static void sub_811BE6C(u32 r5, struct GFtgtGname * unused) { s32 i; sub_811B90C(r5); @@ -535,11 +577,11 @@ void sub_811BE6C(u32 r5, struct GFtgtGname * unused) } } -void sub_811BE8C(struct UnkStruct_URoom *r0) +static void UpdateUnionRoomPlayerSprites(struct UnkStruct_URoom *r0) { s32 i; struct UnkStruct_x20 * r4; - gUnknown_203B088 = 0; + sUnionObjRefreshTimer = 0; for (i = 0, r4 = r0->field_0->arr; i < 8; i++) { if (r4[i].field_1A_0 == 1) @@ -555,14 +597,14 @@ void sub_811BE8C(struct UnkStruct_URoom *r0) void sub_811BECC(struct UnkStruct_URoom *unused) { - gUnknown_203B088 = 300; + sUnionObjRefreshTimer = 300; } void sub_811BEDC(struct UnkStruct_URoom *r2) { - if (++gUnknown_203B088 > 300) + if (++sUnionObjRefreshTimer > 300) { - sub_811BE8C(r2); + UpdateUnionRoomPlayerSprites(r2); } } @@ -581,11 +623,11 @@ bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3) for (j = 0; j < 5; j++) { s32 r3 = 5 * i + j; - if (x != gUnknown_84570EC[i][0] + gUnknown_845710C[j][0] + 7) + if (x != sUnionPartnerCoords[i][0] + sFacingDirectionOffsets[j][0] + 7) { continue; } - if (y != gUnknown_84570EC[i][1] + gUnknown_845710C[j][1] + 7) + if (y != sUnionPartnerCoords[i][1] + sFacingDirectionOffsets[j][1] + 7) { continue; } @@ -601,7 +643,7 @@ bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3) { continue; } - sub_811C008(j, i, gUnknown_8457116[GetPlayerFacingDirection()]); + sub_811C008(j, i, sOppositeFacingDirection[GetPlayerFacingDirection()]); *arg1 = j; *arg2 = i; return TRUE; @@ -610,7 +652,7 @@ bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3) return FALSE; } -void sub_811C008(s32 arg0, s32 arg1, u8 arg2) +static void sub_811C008(s32 arg0, s32 arg1, u8 arg2) { sub_8069058(5 * arg1 - 0x38 + arg0, arg2); } diff --git a/src/union_room.c b/src/union_room.c index 0441c8276..46797f2fa 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -649,7 +649,7 @@ static void sub_8115A68(u8 taskId) case 0: gUnknown_203B058 = gUnknown_8456CD8[gSpecialVar_0x8004]; gUnknown_203B059 = gUnknown_8456CD8[gSpecialVar_0x8004] >> 8; - sub_80FAF58(gUnknown_203B058, 0, 0); + SetHostRFUtgtGname(gUnknown_203B058, 0, 0); sub_800B1F4(); OpenLink(); sub_80FBB8C(gUnknown_203B059 & 0xF); @@ -1180,7 +1180,7 @@ static void sub_8116738(u8 taskId) switch (data->state) { case 0: - sub_80FAF58(gUnknown_84570C8[gSpecialVar_0x8004], 0, 0); + SetHostRFUtgtGname(gUnknown_84570C8[gSpecialVar_0x8004], 0, 0); gUnknown_203B058 = gUnknown_84570C8[gSpecialVar_0x8004]; sub_800B1F4(); OpenLink(); @@ -1468,7 +1468,7 @@ static void sub_8116E1C(u8 taskId) switch (data->state) { case 0: - sub_80FAF58(0, 0, 0); + SetHostRFUtgtGname(0, 0, 0); sub_800B1F4(); OpenLink(); sub_80FBBD8(); @@ -1850,7 +1850,7 @@ static void sub_81175BC(u8 taskId) else { sub_80F8D14(); - sub_80FAF58(69, 0, 1); + SetHostRFUtgtGname(69, 0, 1); } sub_8128420(); break; @@ -1950,7 +1950,7 @@ static void sub_8117A0C(u8 taskId) case 0: gUnknown_203B058 = data->field_18; gUnknown_203B059 = 2; - sub_80FAF58(data->field_18, 0, 0); + SetHostRFUtgtGname(data->field_18, 0, 0); sub_80FAF74(FALSE, FALSE); sub_800B1F4(); OpenLink(); @@ -2156,7 +2156,7 @@ static void sub_8117F20(u8 taskId) switch (data->state) { case 0: - sub_80FAF58(data->field_12 + 21, 0, 0); + SetHostRFUtgtGname(data->field_12 + 21, 0, 0); sub_800B1F4(); OpenLink(); sub_80FBBD8(); @@ -2322,7 +2322,7 @@ static void sub_81182DC(u8 taskId) switch (data->state) { case 0: - sub_80FAF58(0, 0, 0); + SetHostRFUtgtGname(0, 0, 0); sub_800B1F4(); OpenLink(); sub_80FBBD8(); @@ -2552,7 +2552,7 @@ static void sub_81186E0(u8 taskId) sub_811A5E4(data->field_0->arr, 8); gUnknown_203B058 = 0x40; data->field_20 = sub_8119E84(data->field_C, data->field_4, 9); - sub_811B754(data->field_A0); + ZeroUnionObjWork(data->unionObjs); sub_811BB68(); data->state = 1; break; @@ -2562,7 +2562,7 @@ static void sub_81186E0(u8 taskId) data->state = 2; break; case 2: - sub_80FAF58(0x40, 0, 0); + SetHostRFUtgtGname(0x40, 0, 0); sub_80FAFA0(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel); sub_800B1F4(); OpenLink(); @@ -3359,7 +3359,7 @@ static void sub_81199FC(u8 taskId) structPtr->state = 1; break; case 1: - sub_80FAF58(0xC, 0, 0); + SetHostRFUtgtGname(0xC, 0, 0); sub_800B1F4(); OpenLink(); sub_80FBC00(); @@ -4547,21 +4547,21 @@ static void sub_811B31C(u8 *unused, struct UnkStruct_URoom * arg1, bool8 arg2) DynamicPlaceholderTextUtil_Reset(); - StringCopy(arg1->field_C0[0], gTrainerClassNames[sub_80447F0()]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]); + 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->field_C0[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]); + ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->trainerCardStrbufs[2]); - ConvertIntToDecimalStringN(arg1->field_C0[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3); - ConvertIntToDecimalStringN(arg1->field_C0[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, arg1->field_C0[3]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, arg1->field_C0[4]); + 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); @@ -4571,24 +4571,24 @@ static void sub_811B31C(u8 *unused, struct UnkStruct_URoom * arg1, bool8 arg2) { n = 9999; } - ConvertIntToDecimalStringN(arg1->field_C0[0], n, STR_CONV_MODE_LEFT_ALIGN, 4); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]); + 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->field_C0[1], n, STR_CONV_MODE_LEFT_ALIGN, 4); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_C0[1]); + ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[1], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->trainerCardStrbufs[1]); - ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]); + 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->field_C0[i + 3], trainerCard->var_28[i]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->field_C0[i + 3]); + CopyEasyChatWord(arg1->trainerCardStrbufs[i + 3], trainerCard->var_28[i]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->trainerCardStrbufs[i + 3]); } DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459504); -- cgit v1.2.3 From 2037045ab0dadd4566b4ba123672ab533ee50197 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 14:42:18 -0500 Subject: UnkStruct_Shared.gname --- include/link_rfu.h | 4 +- include/union_room.h | 2 +- src/link_rfu_3.c | 6 +- src/rfu_union_tool.c | 6 +- src/union_room.c | 156 ++++++++++++++--------------- src/wireless_communication_status_screen.c | 4 +- 6 files changed, 89 insertions(+), 89 deletions(-) diff --git a/include/link_rfu.h b/include/link_rfu.h index 985c260ef..790429870 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -288,7 +288,7 @@ 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); @@ -322,7 +322,7 @@ 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 sub_80FD338(u16 id, u8 *name); +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); diff --git a/include/union_room.h b/include/union_room.h index 0ad5e920e..8441a6707 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -6,7 +6,7 @@ struct UnkStruct_Shared { - struct GFtgtGname field_0; + struct GFtgtGname gname; u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH]; }; diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 2e09dc0a0..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; @@ -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/rfu_union_tool.c b/src/rfu_union_tool.c index c3f6de9c1..20b29de9b 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -586,11 +586,11 @@ static void UpdateUnionRoomPlayerSprites(struct UnkStruct_URoom *r0) { if (r4[i].field_1A_0 == 1) { - sub_811BDA8(i, &r4[i].unk.field_0); + sub_811BDA8(i, &r4[i].unk.gname); } else if (r4[i].field_1A_0 == 2) { - sub_811BE6C(i, &r4[i].unk.field_0); + sub_811BE6C(i, &r4[i].unk.gname); } } } @@ -659,5 +659,5 @@ static void sub_811C008(s32 arg0, s32 arg1, u8 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.field_0)); + return sub_811C008(arg0, arg1, sub_811BBA0(arg0, arg1, &arg2->arr[arg1].unk.gname)); } diff --git a/src/union_room.c b/src/union_room.c index 46797f2fa..9b1e4028c 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -111,7 +111,7 @@ static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 play 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 sub_811ADC4(s32 a0, struct UnkStruct_Main0 * a1); +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); @@ -560,12 +560,12 @@ static const u8 gUnknown_84570C8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, #define IntlConvPartnerUname7(dest, arg1) ({ \ StringCopy7(dest, (arg1).unk.playerName); \ - ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ + ConvertInternationalString(dest, (arg1).unk.gname.unk_00.unk_00_0); \ }) #define IntlConvPartnerUname(dest, arg1) ({ \ StringCopy(dest, (arg1).unk.playerName); \ - ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \ + ConvertInternationalString(dest, (arg1).unk.gname.unk_00.unk_00_0); \ }) #define CopyTrainerCardData(dest, src, _version) ({ \ @@ -661,7 +661,7 @@ static void sub_8115A68(u8 taskId) data->field_8 = AllocZeroed(0xA0); sub_811A650(data->field_4, 4); sub_811A5E4(data->field_0->arr, 5); - LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); + 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; @@ -765,19 +765,19 @@ static void sub_8115A68(u8 taskId) } break; case 11: - switch (sub_811A14C(&data->textState, sub_80FA634(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName))) + 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.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + 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.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + 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: @@ -786,7 +786,7 @@ static void sub_8115A68(u8 taskId) } break; case 12: - val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + 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) @@ -817,7 +817,7 @@ static void sub_8115A68(u8 taskId) } else { - sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); + 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); @@ -1234,9 +1234,9 @@ static void sub_8116738(u8 taskId) { // this unused variable along with the assignment is needed to match u32 unusedVar; - unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; + 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.field_0.unk_0a_7) + 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) @@ -1278,7 +1278,7 @@ static void sub_8116738(u8 taskId) case 6: if (gReceivedRemoteLinkPlayers != 0) { - gUnknown_203B058 = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + gUnknown_203B058 = data->field_0->arr[data->field_F].unk.gname.unk_0a_0; sub_80FB9E4(0, 0); switch (gUnknown_203B058) { @@ -1419,11 +1419,11 @@ 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.field_0.unk_00.unk_01_2 != VERSION_FIRE_RED && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_LEAF_GREEN) + 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.field_0.unk_00.isChampion) + else if (structPtr->unk.gname.unk_00.isChampion) return 0; } else @@ -1442,7 +1442,7 @@ static void sub_8116D60(struct UnkStruct_Group * data, s32 id) 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.field_0.unk_00.playerTrainerId)); + 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) @@ -1528,7 +1528,7 @@ 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.field_0.unk_0a_7) + 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; @@ -1963,7 +1963,7 @@ static void sub_8117A0C(u8 taskId) data->field_8 = AllocZeroed(0xA0); sub_811A650(data->field_4, 4); sub_811A5E4(data->field_0->arr, 5); - LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); + 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; @@ -2019,19 +2019,19 @@ static void sub_8117A0C(u8 taskId) 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.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + 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.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + 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.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + 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) @@ -2046,7 +2046,7 @@ static void sub_8117A0C(u8 taskId) } else { - sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); + 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); @@ -2209,16 +2209,16 @@ static void sub_8117F20(u8 taskId) { // this unused variable along with the assignment is needed to match u32 unusedVar; - unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; + 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.field_0.unk_0a_7) + 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.field_0.unk_00.playerTrainerId)); + 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; } @@ -2242,7 +2242,7 @@ static void sub_8117F20(u8 taskId) case 5: if (gReceivedRemoteLinkPlayers != 0) { - gUnknown_203B058 = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + gUnknown_203B058 = data->field_0->arr[data->field_F].unk.gname.unk_0a_0; data->state = 10; } @@ -2371,15 +2371,15 @@ static void sub_81182DC(u8 taskId) 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.field_0.unk_0a_7) + 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.field_0, data->field_12 + 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.field_0.unk_00.playerTrainerId)); + 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; } @@ -2407,7 +2407,7 @@ static void sub_81182DC(u8 taskId) case 5: if (gReceivedRemoteLinkPlayers != 0) { - gUnknown_203B058 = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + gUnknown_203B058 = data->field_0->arr[data->field_F].unk.gname.unk_0a_0; data->state = 12; } @@ -2694,7 +2694,7 @@ static void sub_81186E0(u8 taskId) break; case 24: sub_811A0E0(); - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); sub_80FB008(0x54, 0, 1); switch (sub_811AA5C(data->field_0, taskData[0], taskData[1], playerGender)) { @@ -2702,7 +2702,7 @@ static void sub_81186E0(u8 taskId) data->state = 26; break; case 1: - sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_203B058); + 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; @@ -2756,7 +2756,7 @@ static void sub_81186E0(u8 taskId) break; case 5: id = sub_811AA24(&data->field_0->arr[taskData[1]]); - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); sub_8118664(6, gUnknown_8457B04[id][playerGender]); break; case 6: @@ -2770,7 +2770,7 @@ static void sub_81186E0(u8 taskId) else { data->field_98 = 0; - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); if (var5 == -2 || var5 == 0x40) { data->field_4C[0] = 0x40; @@ -2802,7 +2802,7 @@ static void sub_81186E0(u8 taskId) break; case 27: sub_811B0A4(data); - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); id = sub_811A9FC(data->field_4C[0] & 0x3F); if (PrintOnTextbox(&data->textState, gUnknown_84580F4[playerGender][id])) { @@ -2853,7 +2853,7 @@ static void sub_81186E0(u8 taskId) case 7: id = sub_811AA24(&data->field_0->arr[taskData[1]]); - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); sub_8118664(6, gUnknown_8457B04[id][playerGender]); break; case 40: @@ -2871,7 +2871,7 @@ static void sub_81186E0(u8 taskId) if (GetMultiplayerId() == 0) { StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name); - id = sub_80FD338(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); + id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); StringExpandPlaceholders(gStringVar4, gUnknown_8457C20[id]); data->state = 33; } @@ -2888,14 +2888,14 @@ static void sub_81186E0(u8 taskId) 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.field_0, gUnknown_203B058); + 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 = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); sub_811868C(gUnknown_8458548[playerGender]); break; } @@ -2916,7 +2916,7 @@ static void sub_81186E0(u8 taskId) break; case 1: case 2: - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); sub_80FB008(0x54, 0, 1); if (sub_80FBB0C() == TRUE) sub_811868C(gUnknown_84585E8[playerGender]); @@ -2932,7 +2932,7 @@ static void sub_81186E0(u8 taskId) case 22: if (sub_80FBA00()) { - playerGender = sub_811ADC4(taskData[1], data->field_0); + playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); sub_80FB008(0x54, 0, 1); if (sub_80FBB0C() == TRUE) sub_811868C(gUnknown_84585E8[playerGender]); @@ -2967,7 +2967,7 @@ static void sub_81186E0(u8 taskId) { data->state = 33; StringCopy(gStringVar1, gLinkPlayers[1].name); - id = sub_80FD338(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); + id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); StringExpandPlaceholders(gStringVar4, gUnknown_8457BCC[id]); } break; @@ -3214,7 +3214,7 @@ static void sub_81186E0(u8 taskId) data->state = 4; break; default: - switch (sub_811ADD0(data->field_0->arr[var5].unk.field_0.type, data->field_0->arr[var5].unk.field_0.species)) + 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]); @@ -3223,12 +3223,12 @@ static void sub_81186E0(u8 taskId) break; case 1: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); - StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); + 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.field_0.type]); + StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.gname.type]); sub_8118664(46, gUnknown_8458F04); break; } @@ -3253,9 +3253,9 @@ static void sub_81186E0(u8 taskId) if (PrintOnTextbox(&data->textState, gUnknown_8458D1C)) { sUnionRoomTrade.field_0 = 2; - memcpy(&gUnknown_203B064, &data->field_0->arr[taskData[1]].unk.field_0.unk_00, sizeof(gUnknown_203B064)); - gUnionRoomRequestedMonType = data->field_0->arr[taskData[1]].unk.field_0.type; - gUnionRoomOfferedSpecies = data->field_0->arr[taskData[1]].unk.field_0.species; + 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); @@ -3264,7 +3264,7 @@ static void sub_81186E0(u8 taskId) break; case 51: gUnknown_203B058 = 0x44; - sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, 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; @@ -3390,7 +3390,7 @@ static void sub_81199FC(u8 taskId) if (structPtr->field_0->arr[i].field_1A_0 == 1) { IntlConvPartnerUname(text, structPtr->field_0->arr[i]); - if (sub_80FD338(ReadAsU16(structPtr->field_0->arr[i].unk.field_0.unk_00.playerTrainerId), text)) + if (PlayerHasMetTrainerBefore(ReadAsU16(structPtr->field_0->arr[i].unk.gname.unk_00.playerTrainerId), text)) { StringCopy(sUnionRoomPlayerName, text); break; @@ -3515,12 +3515,12 @@ static void sub_8119D34(u8 taskId) for (i = 0; i < 4; i++) { - r4 = sub_80FCC3C(&sp0.field_0, sp0.playerName, i); - if (!sub_8116F28(sp0.field_0.unk_0a_0, gTasks[taskId].data[4])) + 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.field_0.unk_00.unk_00_0 == 1) + if (sp0.gname.unk_00.unk_00_0 == 1) { sp0 = gUnknown_8457034; } @@ -3561,8 +3561,8 @@ static void sub_8119EB8(u8 taskId) for (i = 0; i < 4; i++) { - sub_80FCC3C(&ptr[0]->arr[i].unk0.field_0, ptr[0]->arr[i].unk0.playerName, i); - if (!sub_8116F28(ptr[0]->arr[i].unk0.field_0.unk_0a_0, gTasks[taskId].data[2])) + 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; } @@ -3614,9 +3614,9 @@ static void sub_8119FD8(u8 taskId) for (i = 0; i < 4; i++) { - if (sub_80FCCF4(&ptr[0]->arr[i].unk0.field_0, ptr[0]->arr[i].unk0.playerName, i)) + if (sub_80FCCF4(&ptr[0]->arr[i].unk0.gname, ptr[0]->arr[i].unk0.playerName, i)) { - sub_8119FB0(&ptr[0]->arr[i].unk0.field_0, gTasks[taskId].data[2]); + 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); } @@ -3939,7 +3939,7 @@ static bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_ for (i = 0; i < 2; i++) { - if (arg0->field_0.unk_00.playerTrainerId[i] != arg1->field_0.unk_00.playerTrainerId[i]) + if (arg0->gname.unk_00.playerTrainerId[i] != arg1->gname.unk_00.playerTrainerId[i]) { return TRUE; } @@ -3960,30 +3960,30 @@ static bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Share { s32 i; - if (arg0->field_0.unk_0a_0 != arg1->field_0.unk_0a_0) + if (arg0->gname.unk_0a_0 != arg1->gname.unk_0a_0) { return TRUE; } - if (arg0->field_0.unk_0a_7 != arg1->field_0.unk_0a_7) + if (arg0->gname.unk_0a_7 != arg1->gname.unk_0a_7) { return TRUE; } for (i = 0; i < 4; i++) { - if (arg0->field_0.unk_04[i] != arg1->field_0.unk_04[i]) + if (arg0->gname.unk_04[i] != arg1->gname.unk_04[i]) { return TRUE; } } - if (arg0->field_0.species != arg1->field_0.species) + if (arg0->gname.species != arg1->gname.species) { return TRUE; } - if (arg0->field_0.type != arg1->field_0.type) + if (arg0->gname.type != arg1->gname.type) { return TRUE; } @@ -4041,12 +4041,12 @@ static void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, StringAppend(gStringVar4, gUnknown_84571B0); sub_811A444(arg0, 0, gStringVar4, arg1, arg2, 0); arg1 += 18; - r2 = arg3->unk.field_0.unk_0a_0; + 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.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); + 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; @@ -4063,7 +4063,7 @@ static void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 { IntlConvPartnerUname(sp10, *arg3); sub_811A444(windowId, 2, sp10, x, y, arg4); - ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); + 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; @@ -4111,7 +4111,7 @@ static u32 sub_811AA24(struct UnkStruct_x20 * arg0) { u8 sp0[30]; IntlConvPartnerUname(sp0, *arg0); - return sub_80FD338(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); + return PlayerHasMetTrainerBefore(ReadAsU16(arg0->unk.gname.unk_00.playerTrainerId), sp0); } static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender) @@ -4120,11 +4120,11 @@ static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 play struct UnkStruct_x20 * r5 = &arg0->arr[arg2]; - if (!r5->unk.field_0.unk_0a_7 && arg1 == 0) + if (!r5->unk.gname.unk_0a_7 && arg1 == 0) { IntlConvPartnerUname(gStringVar1, *r5); - r2 = sub_80FD338(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1); - if (r5->unk.field_0.unk_0a_0 == 0x45) + 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; @@ -4140,9 +4140,9 @@ static s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 play IntlConvPartnerUname(gStringVar1, *r5); if (arg1 != 0) { - playerGender = (r5->unk.field_0.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1; + playerGender = (r5->unk.gname.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1; } - switch (r5->unk.field_0.unk_0a_0 & 0x3F) + switch (r5->unk.gname.unk_0a_0 & 0x3F) { case 1: StringExpandPlaceholders(gStringVar4, gUnknown_8458758[playerGender][Random() % 4]); @@ -4210,14 +4210,14 @@ static void sub_811ACA4(u8 windowId, s32 itemId, u8 y) j = 0; for (i = 0; i < 8; i++) { - if (leader->field_0->arr[i].field_1A_0 == 1 && leader->field_0->arr[i].unk.field_0.species != SPECIES_NONE) + 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.field_0, uname, 6); + sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.gname, uname, 6); break; } } @@ -4231,7 +4231,7 @@ static s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1) for (i = 0; i < 8; i++) { - if (arg[i].field_1A_0 == 1 && arg[i].unk.field_0.species != SPECIES_NONE) + if (arg[i].field_1A_0 == 1 && arg[i].unk.gname.species != SPECIES_NONE) { j++; } @@ -4244,9 +4244,9 @@ static s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1) return -1; } -static s32 sub_811ADC4(s32 arg1, struct UnkStruct_Main0 * arg0) +static s32 GetUnionRoomPlayerGender(s32 arg1, struct UnkStruct_Main0 * arg0) { - return arg0->arr[arg1].unk.field_0.playerGender; + return arg0->arr[arg1].unk.gname.playerGender; } static s32 sub_811ADD0(u32 type, u32 species) @@ -4530,8 +4530,8 @@ static u8 sub_811B2D8(struct UnkStruct_URoom * arg0) { if (arg0->field_C->arr[i].unk18) { - retVal |= arg0->field_C->arr[i].unk0.field_0.playerGender << 3; - retVal |= arg0->field_C->arr[i].unk0.field_0.unk_00.playerTrainerId[0] & 7; + retVal |= arg0->field_C->arr[i].unk0.gname.playerGender << 3; + retVal |= arg0->field_C->arr[i].unk0.gname.unk_00.playerTrainerId[0] & 7; break; } } 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; -- cgit v1.2.3 From 12d12e70a170896844f3280d6968e1e2d6cf1cba Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 15:46:48 -0500 Subject: union_room_battle --- asm/union_room_battle.s | 555 ----------------------------------------------- data/strings.s | 6 +- data/union_room_battle.s | 23 -- include/strings.h | 5 + include/union_room.h | 2 + ld_script.txt | 4 +- src/union_room_battle.c | 225 +++++++++++++++++++ sym_ewram.txt | 5 +- 8 files changed, 239 insertions(+), 586 deletions(-) delete mode 100644 asm/union_room_battle.s delete mode 100644 data/union_room_battle.s create mode 100644 src/union_room_battle.c diff --git a/asm/union_room_battle.s b/asm/union_room_battle.s deleted file mode 100644 index d76f458a9..000000000 --- a/asm/union_room_battle.s +++ /dev/null @@ -1,555 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - 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/strings.s b/data/strings.s index d25e28e94..e77730429 100644 --- a/data/strings.s +++ b/data/strings.s @@ -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/union_room_battle.s b/data/union_room_battle.s deleted file mode 100644 index d7fff5e96..000000000 --- a/data/union_room_battle.s +++ /dev/null @@ -1,23 +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 - - .align 2 -gUnknown_8457194:: @ 8457194 - .2byte 0x01FC, 0x0000 @ BgTemplate - - .align 2 -gUnknown_8457198:: @ 8457198 - .byte 0x00, 0x02, 0x0F, 0x1A, 0x04, 0x0E @ window template - .2byte 0x0014 - - .byte 0xFF, 0, 0, 0, 0, 0 - .2byte 0x0000 - - .align 2 -gUnknown_84571A8:: @ 84571A8 - .byte 0x01, 0x02, 0x03, 0x00 diff --git a/include/strings.h b/include/strings.h index 7e8a4fbb4..a57493a9b 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1056,4 +1056,9 @@ 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/union_room.h b/include/union_room.h index 8441a6707..60103dad7 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -153,4 +153,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/ld_script.txt b/ld_script.txt index 88f42388d..ac6d5839c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -243,7 +243,7 @@ SECTIONS { src/quest_log.o(.text); src/union_room.o(.text); src/rfu_union_tool.o(.text); - asm/union_room_battle.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); @@ -530,7 +530,7 @@ SECTIONS { src/quest_log.o(.rodata); src/union_room.o(.rodata); src/rfu_union_tool.o(.rodata); - data/union_room_battle.o(.rodata); + src/union_room_battle.o(.rodata); data/union_room_message.o(.rodata); data/pokemon_special_anim.o(.rodata); src/party_menu.o(.rodata); diff --git a/src/union_room_battle.c b/src/union_room_battle.c new file mode 100644 index 000000000..449aa8d57 --- /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 < 6; 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, 0x00); + FillWindowPixelBuffer(0, 0x11); + 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, 0); + 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, 0); + 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/sym_ewram.txt b/sym_ewram.txt index 64bfc7e91..3ab110c7b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -354,11 +354,10 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/union_room.o" .align 2 .include "src/rfu_union_tool.o" - .align 2 -gUnknown_203B08C: @ 203B08C - .space 0x4 + .include "src/union_room_battle.o" + .align 2 gUnknown_203B090: @ 203B090 .space 0x4 -- cgit v1.2.3 From 390d7975b3e68251dad231365338556ff2ffe5bb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 15:59:08 -0500 Subject: Resolve review comments, 1 --- include/mevent.h | 2 +- include/union_room_message.h | 7 +++++ src/mevent.c | 4 +-- src/union_room.c | 74 ++++++++++++++++++++++---------------------- 4 files changed, 47 insertions(+), 40 deletions(-) diff --git a/include/mevent.h b/include/mevent.h index eb7cf77f3..85782f20a 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -72,6 +72,6 @@ void sub_8144714(u32 a0, u32 a1); u16 *GetMEventProfileECWordsMaybe(void); void sub_81446C4(void); bool32 sub_81446D0(u16 a0); -u16 GetWonderCardFlagID(void); +u16 GetWonderCardFlagId(void); #endif //GUARD_MEVENT_H diff --git a/include/union_room_message.h b/include/union_room_message.h index 82e0dd955..b7de673ba 100644 --- a/include/union_room_message.h +++ b/include/union_room_message.h @@ -1,3 +1,8 @@ +#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[]; @@ -105,3 +110,5 @@ 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/src/mevent.c b/src/mevent.c index c8ce39e23..afad326b5 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -652,7 +652,7 @@ void BlankMEventBuffer2(void) gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.crc = 0; } -u16 GetWonderCardFlagID(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 = GetWonderCardFlagID(); + u16 value = GetWonderCardFlagId(); if (!sub_8144124(value)) return FALSE; if (FlagGet(gUnknown_8466F00[value - 1000]) == TRUE) diff --git a/src/union_room.c b/src/union_room.c index 9b1e4028c..40da25d2f 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -97,7 +97,7 @@ 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_Main4 * 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); @@ -656,10 +656,10 @@ static void sub_8115A68(u8 taskId) data->state = 3; break; case 3: - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0xA0); - data->field_8 = AllocZeroed(0xA0); - sub_811A650(data->field_4, 4); + 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; @@ -1185,8 +1185,8 @@ static void sub_8116738(u8 taskId) sub_800B1F4(); OpenLink(); sub_80FBBD8(); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); + data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C)); + data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20)); data->state = 1; break; case 1: @@ -1194,7 +1194,7 @@ static void sub_8116738(u8 taskId) data->state = 2; break; case 2: - sub_811A650(data->field_4, 4); + 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); @@ -1473,12 +1473,12 @@ static void sub_8116E1C(u8 taskId) OpenLink(); sub_80FBBD8(); sub_80FB128(TRUE); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); + 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, 4); + 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; @@ -1779,7 +1779,7 @@ static void sub_8117594(void *arg0, bool32 arg1) { TrainerCard_GenerateCardForLinkPlayer((struct TrainerCard * )arg0); if (arg1) - *((u16 *)(arg0 + sizeof(struct TrainerCard))) = GetWonderCardFlagID(); + *((u16 *)(arg0 + sizeof(struct TrainerCard))) = GetWonderCardFlagId(); else *((u16 *)(arg0 + sizeof(struct TrainerCard))) = 0; } @@ -1958,10 +1958,10 @@ static void sub_8117A0C(u8 taskId) data->state = 1; break; case 1: - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0xA0); - data->field_8 = AllocZeroed(0xA0); - sub_811A650(data->field_4, 4); + 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; @@ -2160,8 +2160,8 @@ static void sub_8117F20(u8 taskId) sub_800B1F4(); OpenLink(); sub_80FBBD8(); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); + data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C)); + data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20)); data->state = 1; break; case 1: @@ -2169,7 +2169,7 @@ static void sub_8117F20(u8 taskId) data->state = 2; break; case 2: - sub_811A650(data->field_4, 4); + 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); @@ -2326,8 +2326,8 @@ static void sub_81182DC(u8 taskId) sub_800B1F4(); OpenLink(); sub_80FBBD8(); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); + data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C)); + data->field_0 = AllocZeroed(16 * sizeof(struct UnkStruct_x20)); data->state = 1; break; case 1: @@ -2335,7 +2335,7 @@ static void sub_81182DC(u8 taskId) data->state = 2; break; case 2: - sub_811A650(data->field_4, 4); + 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); @@ -2545,10 +2545,10 @@ static void sub_81186E0(u8 taskId) switch (data->state) { case 0: - data->field_4 = AllocZeroed(0x70); - data->field_C = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x100); - data->field_8 = AllocZeroed(0x20); + 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); @@ -2568,8 +2568,8 @@ static void sub_81186E0(u8 taskId) OpenLink(); sub_80FBC00(); sub_811A5E4(&data->field_8->arr[0], 1); - sub_811A650(data->field_4, 4); - sub_811A650(data->field_C, 4); + sub_811A650(data->field_4->arr, 4); + sub_811A650(data->field_C->arr, 4); gSpecialVar_Result = 0; data->state = 3; break; @@ -3367,13 +3367,13 @@ static void sub_81199FC(u8 taskId) structPtr->state = 2; break; case 2: - structPtr->field_4 = AllocZeroed(0x70); - sub_811A650(structPtr->field_4, 4); - structPtr->field_C = AllocZeroed(0x70); - sub_811A650(structPtr->field_C, 4); - structPtr->field_0 = AllocZeroed(0x100); + 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(0x20); + 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; @@ -3922,14 +3922,14 @@ static void sub_811A5E4(struct UnkStruct_x20 * arg0, u8 count) } } -static void sub_811A650(struct UnkStruct_Main4 * arg0, u8 count) +static void sub_811A650(struct UnkStruct_x1C * arg0, u8 count) { s32 i; for (i = 0; i < 4; i++) { - arg0->arr[i].unk0 = gUnknown_8457034; - arg0->arr[i].unk18 = 0; + arg0[i].unk0 = gUnknown_8457034; + arg0[i].unk18 = 0; } } -- cgit v1.2.3 From 84a93f8037cc8395155448c34e3cab984537b086 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 16:04:23 -0500 Subject: Resolve review comments, 2 --- src/union_room.c | 2 +- src/union_room_battle.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/union_room.c b/src/union_room.c index 40da25d2f..efb05d7ca 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -2538,7 +2538,7 @@ static void sub_81186E0(u8 taskId) { u32 id = 0; s32 var5 = 0; - s32 playerGender = 0; + s32 playerGender = MALE; struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; s16 *taskData = gTasks[taskId].data; diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 449aa8d57..b75cc086d 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -51,7 +51,7 @@ static void sub_811C04C(void) { gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; } - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { ZeroMonData(&gPlayerParty[i]); } @@ -121,8 +121,8 @@ void sub_811C1C8(void) } DeactivateAllTextPrinters(); ClearWindowTilemap(0); - FillWindowPixelBuffer(0, 0x00); - FillWindowPixelBuffer(0, 0x11); + 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(); @@ -136,7 +136,7 @@ void sub_811C1C8(void) } break; case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); ShowBg(0); gMain.state++; break; @@ -161,7 +161,7 @@ void sub_811C1C8(void) { if (gBlockRecvBuffer[0][0] == 0x51 && gBlockRecvBuffer[1][0] == 0x51) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gMain.state = 50; } else -- cgit v1.2.3 From 90c99d1ce2233b775b26d743bbdb187a2071c42d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Jan 2020 20:10:46 -0500 Subject: union_room_message --- data/union_room_message.s | 1337 --------------------------------------------- include/mevent_server.h | 1 + ld_script.txt | 2 +- src/union_room_message.c | 541 ++++++++++++++++++ 4 files changed, 543 insertions(+), 1338 deletions(-) delete mode 100644 data/union_room_message.s create mode 100644 src/union_room_message.c diff --git a/data/union_room_message.s b/data/union_room_message.s deleted file mode 100644 index 02ad4f5f4..000000000 --- a/data/union_room_message.s +++ /dev/null @@ -1,1337 +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_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 -gUnref_845721C:: @ 845721C - .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" - .string "さんかしゃ ぼしゅうちゅう です!$" - - .align 2 -gUnknown_84574A0:: @ 84574A0 - .string "{STR_VAR_2} contacted you for\n" - .string "{STR_VAR_1}. Accept?$" - - .align 2 -gUnknown_84574C4:: @ 84574C4 - .string "{STR_VAR_2} contacted you.\n" - .string "Will you share {STR_VAR_1}?$" - - .align 2 -gUnknown_84574EC:: @ 84574EC - .string "{STR_VAR_2} contacted you.\n" - .string "Add to the members?$" - - .align 2 -gUnknown_8457514:: @ 8457514 - .string "{STR_VAR_1}!\n" - .string "Are these members OK?$" - - .align 2 -gUnknown_8457530:: @ 8457530 - .string "Cancel {STR_VAR_1} MODE\n" - .string "with these members?$" - - .align 2 -gUnknown_8457554:: @ 8457554 - .string "An “OK” was sent\n" - .string "to {STR_VAR_1}.$" - - .align 2 -gUnknown_845756C:: @ 845756C - .string "The other TRAINER doesn't appear\n" - .string "to be available now…\p" - .string "$" - - .align 2 -gUnknown_84575A4:: @ 84575A4 - .string "You can't transmit with a TRAINER\n" - .string "who is too far away.\p" - .string "$" - - .align 2 -gUnknown_84575DC:: @ 84575DC - .string "The other TRAINER(S) is/are not\n" - .string "ready yet.\p" - .string "$" - - .align 2 -gUnknown_8457608:: @ 8457608 - .word gUnknown_84575A4 - .word gUnknown_84575DC - - .align 2 -gUnknown_8457610:: @ 8457610 - .string "The {STR_VAR_1} MODE with\n" - .string "these members will be canceled.{PAUSE 90}$" - - .align 2 -gUnknown_8457644:: @ 8457644 - .string "There is a member who can no\n" - .string "longer remain available.\p" - .string "$" - - .align 2 -gUnknown_845767C:: @ 845767C - .word gUnknown_845756C - .word gUnknown_8457644 - - .align 2 -gUnknown_8457684:: @ 8457684 - .string "The other TRAINER appears\n" - .string "unavailable…\p" - .string "$" - - .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\n" - .string "a member.$" - - .align 2 -gUnknown_84576EC:: @ 84576EC - .string "{STR_VAR_1} replied, “No…”\p" - .string "$" - - .align 2 -gUnknown_8457700:: @ 8457700 - .string "{STR_VAR_1}!\n" - .string "Awaiting other members!$" - - .align 2 -gUnknown_845771C:: @ 845771C - .string "Quit being a member?$" - - .align 2 -gUnknown_8457734:: @ 8457734 - .string "You stopped being a member.\p" - .string "$" - - .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\n" - .string "SYSTEM link has been established.$" - - .align 2 -gUnknown_84577BC:: @ 84577BC - .string "The WIRELESS COMMUNICATION\n" - .string "SYSTEM link has been dropped…$" - - .align 2 -gUnknown_84577F8:: @ 84577F8 - .string "The link with your friend has been\n" - .string "dropped…$" - - .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}\n" - .string "MODE?$" - - .align 2 -gUnknown_845787C:: @ 845787C - .string "Do you want the {STR_VAR_2}\n" - .string "MODE?$" - - .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\n" - .string "the trade…$" - - .align 2 -gUnknown_84578E4:: @ 84578E4 - .string "Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n" - .string "{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" - .string "{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" - .string "{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\n" - .string "wanted to do?$" - - .align 2 -gUnknown_8457A70:: @ 8457A70 - .string "Hello!\n" - .string "Would you like to do something?$" - - .align 2 -gUnknown_8457A98:: @ 8457A98 - .string "{STR_VAR_1}: Hiya, we meet again!\n" - .string "What are you up for this time?$" - - .align 2 -gUnknown_8457AD0:: @ 8457AD0 - .string "{STR_VAR_1}: Oh! {PLAYER}, hello!\n" - .string "Would 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\n" - .string "do 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\n" - .string "the other TRAINER…$" - - .align 2 -gUnknown_8457C00:: @ 8457C00 - .string "Awaiting a response from\n" - .string "{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" - .string "$" - -gUnknown_8457E28:: @ 8457E28 - .string "You declined the offer.\p" - .string "$" - - .align 2 -gUnknown_8457E44:: @ 8457E44 - .string "You declined the offer.\p" - .string "$" - - .align 2 -gUnknown_8457E60:: @ 8457E60 - .string "The chat was ended.\p" - .string "$" - .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" - .string "$" - - .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" - .string "$" - -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" - .string "$" - -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" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - .align 2 -gUnknown_84583F8:: - .string "If you want to do something with\n" - .string "me, don't be shy.\p" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - -gUnknown_84584C0:: @ 84584C0 - .string "For a battle, you need two\n" - .string "POKéMON that are below Lv. 30.\p" - .string "$" - - .align 2 -gUnknown_84584FC:: - .string "Oh, all right.\n" - .string "Come see me anytime, okay?\p" - .string "$" - - .align 2 -gUnknown_8458528:: - .string "Oh…\n" - .string "Please come by anytime.\p" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - - .align 2 -gUnknown_8458618:: - .string "You used that move?\n" - .string "That's good strategy!\p" - .string "$" - - .align 2 -gUnknown_8458644:: - .string "Way to go!\n" - .string "That was an eye-opener!\p" - .string "$" - - .align 2 -gUnknown_8458668:: - .string "Oh! How could you use that\n" - .string "POKéMON in that situation?\p" - .string "$" - - .align 2 -gUnknown_84586A0:: - .string "That POKéMON…\n" - .string "It's been raised really well!\p" - .string "$" - - .align 2 -gUnknown_84586D0:: - .string "That's it!\n" - .string "This is the right move now!\p" - .string "$" - - .align 2 -gUnknown_84586F8:: - .string "That's awesome!\n" - .string "You can battle that way?\p" - .string "$" - - .align 2 -gUnknown_8458724:: - .string "You have exquisite timing for\n" - .string "switching POKéMON!\p" - .string "$" - - .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" - .string "$" - - .align 2 -gUnknown_845879C:: - .string "Don't say anything funny anymore!\n" - .string "I'm sore from laughing!\p" - .string "$" - - .align 2 -gUnknown_84587D8:: - .string "Oh?\n" - .string "Something like that happened.\p" - .string "$" - - .align 2 -gUnknown_84587FC:: - .string "Hmhm… What?\n" - .string "So is this what you're saying?\p" - .string "$" - - .align 2 -gUnknown_8458828:: - .string "Is that right?\n" - .string "I didn't know that.\p" - .string "$" - - .align 2 -gUnknown_845884C:: - .string "Ahaha!\n" - .string "What is that about?\p" - .string "$" - - .align 2 -gUnknown_8458868:: - .string "Yes, that's exactly it!\n" - .string "That's what I meant.\p" - .string "$" - - .align 2 -gUnknown_8458898:: - .string "In other words…\n" - .string "Yes! That's right!\p" - .string "$" - - .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" - .string "$" - - .align 2 -gUnknown_8458918:: - .string "I hope I get to know you better!\p" - .string "$" - - .align 2 -gUnknown_845893C:: - .string "We're showing each other our\n" - .string "TRAINER CARDS to get acquainted.\p" - .string "$" - - .align 2 -gUnknown_845897C:: - .string "Glad to meet you.\n" - .string "Please don't be a stranger!\p" - .string "$" - - .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" - .string "$" - - .align 2 -gUnknown_84589E4:: - .string "Finally, a trade got me that\n" - .string "POKéMON I'd wanted a long time.\p" - .string "$" - - .align 2 -gUnknown_8458A24:: - .string "I'm trading POKéMON right now.\p" - .string "$" - - .align 2 -gUnknown_8458A44:: - .string "I finally got that POKéMON I\n" - .string "wanted in a trade!\p" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - - .align 2 - .string "けいじばんに だれも ポケモンを\n" - .string "とうろく していません\p" - .string "\n$" - - .align 2 -gUnknown_8458CD4:: @ 8458CD4 - .string "Please choose the type of POKéMON\n" - .string "that you would like in the trade.\n" - .string "$" - - .align 2 -gUnknown_8458D1C:: @ 8458D1C - .string "Which of your party POKéMON will\n" - .string "you offer in trade?\p" - .string "$" - - .align 2 -gUnknown_8458D54:: @ 8458D54 - .string "Registration has been canceled.\p" - .string "$" - - .align 2 -gUnknown_8458D78:: @ 8458D78 - .string "Registration has been completed.\p" - .string "$" - - .align 2 -gUnknown_8458D9C:: @ 8458D9C - .string "The trade has been canceled.\p" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - - .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" - .string "$" - - .align 2 -gUnknown_8458F04:: @ 8458F04 - .string "You don't have an EGG that\n" - .string "{STR_VAR_1} wants.\p" - .string "$" - - .align 2 -gUnknown_8458F2C:: @ 8458F2C - .string "{STR_VAR_1} can't make a trade for\n" - .string "your POKéMON right now.\p" - .string "$" - - .align 2 -gUnknown_8458F60:: @ 8458F60 - .string "You can't make a trade for\n" - .string "{STR_VAR_1}'s POKéMON right now.\p" - .string "$" - - .align 2 -gUnknown_8458F94:: @ 8458F94 - .word gUnknown_8458F2C - .word gUnknown_8458F60 - -gUnknown_8458F9C:: @ 8458F9C - .string "Your trade offer was rejected.\p" - .string "$" - -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" - .string "$" - - .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\n" - .string "TRAINER CARD…\l" - .string "{SPECIAL_F7 0x02}\p" - .string "POKéDEX: {SPECIAL_F7 0x03}\n" - .string "TIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p" - .string "$" - - .align 2 -gUnknown_8459504:: @ 8459504 - .string "BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\n" - .string "TRADES: {SPECIAL_F7 0x03} TIMES\p" - .string "“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n" - .string "{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p" - .string "$" - - .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\n" - .string "TRAINER CARD.{PAUSE 60}$" - - .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/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/ld_script.txt b/ld_script.txt index ac6d5839c..f0792ad9d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -531,7 +531,7 @@ SECTIONS { src/union_room.o(.rodata); src/rfu_union_tool.o(.rodata); src/union_room_battle.o(.rodata); - data/union_room_message.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/union_room_message.c b/src/union_room_message.c new file mode 100644 index 000000000..1005f1102 --- /dev/null +++ b/src/union_room_message.c @@ -0,0 +1,541 @@ +#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) +}; -- cgit v1.2.3 From 7824a413dea43f2c0c99c2b86af17c33378139fa Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 23 Jan 2020 10:10:57 -0500 Subject: Normalize union room UnkStruct arrays; remove STAT_STAGE_ defines --- include/constants/pokemon.h | 10 --------- include/union_room.h | 33 +++++++++++++++--------------- src/pokemon.c | 50 ++++++++++++++++++++++----------------------- src/union_room.c | 4 ++-- src/union_room_message.c | 2 ++ 5 files changed, 46 insertions(+), 53 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 3ab2c0524..a8009f1ff 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -170,16 +170,6 @@ #define STAT_ACC 6 // only in battles #define STAT_EVASION 7 // only in battles -// TODO: Why do we need these as separate defines? -#define STAT_STAGE_HP 0 -#define STAT_STAGE_ATK 1 -#define STAT_STAGE_DEF 2 -#define STAT_STAGE_SPEED 3 -#define STAT_STAGE_SPATK 4 -#define STAT_STAGE_SPDEF 5 -#define STAT_STAGE_ACC 6 -#define STAT_STAGE_EVASION 7 - #define NUM_STATS 6 #define NUM_BATTLE_STATS 8 diff --git a/include/union_room.h b/include/union_room.h index 60103dad7..3cb8eb84a 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -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; @@ -95,10 +96,10 @@ struct UnionObj struct UnkStruct_URoom { - /* 0x000 */ struct UnkStruct_Main0 *field_0; - /* 0x004 */ struct UnkStruct_Main4 *field_4; - /* 0x008 */ struct UnkStruct_Main0 *field_8; - /* 0x00C */ struct UnkStruct_Main4 *field_C; + /* 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; diff --git a/src/pokemon.c b/src/pokemon.c index 5b715133b..d1305861a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -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/union_room.c b/src/union_room.c index efb05d7ca..4e3428cc6 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -2526,12 +2526,12 @@ static void sub_811868C(const u8 *src) static void sub_81186B0(struct UnkStruct_URoom * data) { - memcpy(&gDecompressionBuffer[0x3F00], data->field_0, sizeof(*data->field_0)); + 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], sizeof(*data->field_0)); + memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 8 * sizeof(struct UnkStruct_x20)); } static void sub_81186E0(u8 taskId) diff --git a/src/union_room_message.c b/src/union_room_message.c index 1005f1102..9ca5aa15b 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -10,6 +10,7 @@ ALIGNED(4) const u8 gUnknown_84571E0[] = _("The WIRELESS COMMUNICATION\nSYSTEM s 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[] = _("マルチバトルを かいさいする"); @@ -82,6 +83,7 @@ ALIGNED(4) const u8 gUnknown_84574EC[] = _("{STR_VAR_2} contacted you.\nAdd to t 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"); -- cgit v1.2.3