summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-01-07 18:39:27 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2019-01-07 18:39:27 -0500
commitf7eef0735bb70a7fed17b6fabb15f30c092209bc (patch)
tree17f9256f07ff23163cf13af85fdc36847549cbbe
parentf50bc217ae5daeb2c2788f502f604e3684249256 (diff)
parent8f7400809626c0f72dfe751665126f94181fd7c1 (diff)
Merge branch 'master' into trainer_tower
-rw-r--r--asm/battle_controller_oak.s2
-rw-r--r--asm/battle_controller_player.s2
-rw-r--r--asm/battle_message.s6
-rw-r--r--asm/battle_setup.s60
-rw-r--r--asm/battle_tower.s4
-rw-r--r--asm/berry_pouch.s14
-rw-r--r--asm/bike.s4
-rw-r--r--asm/field_camera.s4
-rw-r--r--asm/field_control_avatar.s26
-rw-r--r--asm/field_door.s44
-rw-r--r--asm/field_effect.s2
-rw-r--r--asm/field_effect_helpers.s8
-rw-r--r--asm/field_fadetransition.s46
-rw-r--r--asm/field_map_obj.s22
-rw-r--r--asm/field_player_avatar.s2
-rw-r--r--asm/field_specials.s20
-rw-r--r--asm/field_tasks.s4
-rw-r--r--asm/field_weather.s6
-rw-r--r--asm/fieldmap.s2400
-rw-r--r--asm/fldeff_cut.s2
-rw-r--r--asm/hall_of_fame.s4
-rw-r--r--asm/help_system_812B1E0.s2
-rw-r--r--asm/item.s50
-rw-r--r--asm/item_menu.s42
-rw-r--r--asm/item_pc.s8
-rw-r--r--asm/item_use.s16
-rw-r--r--asm/link_rfu.s2
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/map_obj_lock.s20
-rw-r--r--asm/menu_helpers.s4
-rw-r--r--asm/overworld.s134
-rw-r--r--asm/party_menu.s64
-rw-r--r--asm/player_pc.s4
-rw-r--r--asm/pokemon_storage_system.s6
-rw-r--r--asm/pokemon_summary_screen.s6
-rw-r--r--asm/scrcmd.s5612
-rw-r--r--asm/script_menu.s24
-rw-r--r--asm/script_pokemon_util_80A0058.s6
-rw-r--r--asm/seagallop.s2
-rw-r--r--asm/shop.s34
-rw-r--r--asm/slot_machine.s6
-rw-r--r--asm/start_menu.s6
-rw-r--r--asm/teachy_tv.s4
-rw-r--r--asm/tileset_anims.s120
-rw-r--r--asm/tm_case.s18
-rw-r--r--asm/unk_810C3A4.s2
-rw-r--r--asm/unk_8147AA8.s12
-rw-r--r--asm/unk_814B6F0.s2
-rw-r--r--asm/unk_81507FC.s10
-rw-r--r--common_syms/fieldmap.txt1
-rw-r--r--data/data.s22
-rw-r--r--data/data_835B488.s27
-rw-r--r--data/data_83FECCC.s2
-rw-r--r--data/event_scripts.s2
-rw-r--r--data/fieldmap.s6
-rw-r--r--data/script_cmd_table.inc146
-rw-r--r--data/specials.inc4
-rw-r--r--include/battle_setup.h4
-rw-r--r--include/field_fadetransition.h14
-rw-r--r--include/field_map_obj.h8
-rw-r--r--include/field_map_obj_helpers.h2
-rw-r--r--include/field_player_avatar.h1
-rw-r--r--include/field_screen_effect.h2
-rw-r--r--include/field_specials.h1
-rw-r--r--include/field_weather.h1
-rw-r--r--include/fieldmap.h21
-rw-r--r--include/global.fieldmap.h14
-rw-r--r--include/global.h3
-rw-r--r--include/item.h5
-rw-r--r--include/map_obj_lock.h4
-rw-r--r--include/map_preview_screen.h6
-rw-r--r--include/menu.h1
-rw-r--r--include/new_menu_helpers.h4
-rw-r--r--include/overworld.h13
-rw-r--r--include/palette.h2
-rw-r--r--include/party_menu.h2
-rw-r--r--include/pokemon_storage_system.h1
-rw-r--r--include/quest_log.h6
-rw-r--r--include/scrcmd.h6
-rw-r--r--include/script.h9
-rw-r--r--include/script_menu.h3
-rw-r--r--include/script_movement.h2
-rw-r--r--include/script_pokemon_util_80A0058.h8
-rw-r--r--include/sound.h1
-rw-r--r--ld_script.txt8
-rw-r--r--src/fieldmap.c1025
-rw-r--r--src/quest_log.c4
-rw-r--r--src/save.c4
-rw-r--r--src/scrcmd.c2267
-rw-r--r--src/script.c6
-rw-r--r--src/trainer_tower.c8
-rw-r--r--src/vs_seeker.c4
-rw-r--r--sym_bss.txt12
-rw-r--r--sym_common.txt6
-rw-r--r--sym_ewram.txt36
95 files changed, 3966 insertions, 8670 deletions
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 29ae446f6..91931bb63 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -308,7 +308,7 @@ _080E77AC:
bhi _080E7838
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_080E780A:
movs r0, 0x5
bl PlaySE
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 4db1f94c3..d83245653 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -381,7 +381,7 @@ _0802E5A8:
bhi _0802E634
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_0802E606:
movs r0, 0x5
bl PlaySE
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 029ff9ed0..183306f97 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -1604,7 +1604,7 @@ _080D7F9C:
ldrh r0, [r0]
_080D7FA0:
mov r1, sp
- bl sub_8099E90
+ bl CopyItemName
mov r4, sp
b _080D8382
.align 2, 0
@@ -2495,12 +2495,12 @@ _080D8698: .4byte gUnknown_83FD8A2
_080D869C:
adds r0, r2, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
b _080D86AE
_080D86A6:
adds r0, r2, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
_080D86AE:
adds r5, 0x3
_080D86B0:
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 499d565f0..529787bf6 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -104,7 +104,7 @@ sub_807F6CC: @ 807F6CC
bhi _0807F6FC
ldr r0, _0807F6F8 @ =0x00000167
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0807F6FC
@@ -318,8 +318,8 @@ _0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0807F8C0: .4byte gBattleTypeFlags
thumb_func_end sub_807F888
- thumb_func_start sub_807F8C4
-sub_807F8C4: @ 807F8C4
+ thumb_func_start BattleSetup_StartScriptedWildBattle
+BattleSetup_StartScriptedWildBattle: @ 807F8C4
push {lr}
bl ScriptContext2_Enable
ldr r1, _0807F8F8 @ =gMain
@@ -344,7 +344,7 @@ sub_807F8C4: @ 807F8C4
_0807F8F8: .4byte gMain
_0807F8FC: .4byte sub_807FBA0
_0807F900: .4byte gBattleTypeFlags
- thumb_func_end sub_807F8C4
+ thumb_func_end BattleSetup_StartScriptedWildBattle
thumb_func_start sub_807F904
sub_807F904: @ 807F904
@@ -356,7 +356,7 @@ sub_807F904: @ 807F904
str r0, [r1, 0x8]
ldr r0, _0807F94C @ =0x00000167
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
beq _0807F958
@@ -1512,7 +1512,7 @@ battle_80801F0: @ 80801F0
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
bl GetFieldObjectIdByLocalIdAndMap
- ldr r1, _08080224 @ =gUnknown_3005074
+ ldr r1, _08080224 @ =gSelectedEventObject
strb r0, [r1]
_08080212:
pop {r0}
@@ -1521,11 +1521,11 @@ _08080212:
_08080218: .4byte gUnknown_20386B0
_0808021C: .4byte gSpecialVar_LastTalked
_08080220: .4byte gSaveBlock1Ptr
-_08080224: .4byte gUnknown_3005074
+_08080224: .4byte gSelectedEventObject
thumb_func_end battle_80801F0
- thumb_func_start sub_8080228
-sub_8080228: @ 8080228
+ thumb_func_start BattleSetup_ConfigureTrainerBattle
+BattleSetup_ConfigureTrainerBattle: @ 8080228
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8080110
@@ -1640,14 +1640,14 @@ _08080326:
.align 2, 0
_0808032C: .4byte gUnknown_83C6900
_08080330: .4byte gUnknown_81A4EC1
- thumb_func_end sub_8080228
+ thumb_func_end BattleSetup_ConfigureTrainerBattle
thumb_func_start TrainerWantsBattle
TrainerWantsBattle: @ 8080334
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08080368 @ =gUnknown_3005074
+ ldr r2, _08080368 @ =gSelectedEventObject
strb r0, [r2]
ldr r4, _0808036C @ =gSpecialVar_LastTalked
ldr r3, _08080370 @ =gMapObjects
@@ -1659,7 +1659,7 @@ TrainerWantsBattle: @ 8080334
strh r0, [r4]
adds r1, 0x1
adds r0, r1, 0
- bl sub_8080228
+ bl BattleSetup_ConfigureTrainerBattle
ldr r0, _08080374 @ =gUnknown_81A4EB4
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
@@ -1667,7 +1667,7 @@ TrainerWantsBattle: @ 8080334
pop {r0}
bx r0
.align 2, 0
-_08080368: .4byte gUnknown_3005074
+_08080368: .4byte gSelectedEventObject
_0808036C: .4byte gSpecialVar_LastTalked
_08080370: .4byte gMapObjects
_08080374: .4byte gUnknown_81A4EB4
@@ -1693,7 +1693,7 @@ GetTrainerFlagFromScriptPointer: @ 8080378
thumb_func_start sub_8080398
sub_8080398: @ 8080398
push {r4,lr}
- ldr r0, _080803C4 @ =gUnknown_3005074
+ ldr r0, _080803C4 @ =gSelectedEventObject
ldrb r0, [r0]
lsls r4, r0, 3
adds r4, r0
@@ -1713,7 +1713,7 @@ sub_8080398: @ 8080398
pop {r0}
bx r0
.align 2, 0
-_080803C4: .4byte gUnknown_3005074
+_080803C4: .4byte gSelectedEventObject
_080803C8: .4byte gMapObjects
thumb_func_end sub_8080398
@@ -1785,8 +1785,8 @@ HasTrainerAlreadyBeenFought: @ 8080424
bx r1
thumb_func_end HasTrainerAlreadyBeenFought
- thumb_func_start trainer_flag_set
-trainer_flag_set: @ 808043C
+ thumb_func_start SetTrainerFlag
+SetTrainerFlag: @ 808043C
push {lr}
lsls r0, 16
movs r1, 0xA0
@@ -1796,10 +1796,10 @@ trainer_flag_set: @ 808043C
bl FlagSet
pop {r0}
bx r0
- thumb_func_end trainer_flag_set
+ thumb_func_end SetTrainerFlag
- thumb_func_start trainer_flag_clear
-trainer_flag_clear: @ 8080450
+ thumb_func_start ClearTrainerFlag
+ClearTrainerFlag: @ 8080450
push {lr}
lsls r0, 16
movs r1, 0xA0
@@ -1809,10 +1809,10 @@ trainer_flag_clear: @ 8080450
bl FlagClear
pop {r0}
bx r0
- thumb_func_end trainer_flag_clear
+ thumb_func_end ClearTrainerFlag
- thumb_func_start sub_8080464
-sub_8080464: @ 8080464
+ thumb_func_start BattleSetup_StartTrainerBattle
+BattleSetup_StartTrainerBattle: @ 8080464
push {r4,lr}
ldr r4, _080804A0 @ =gBattleTypeFlags
movs r0, 0x8
@@ -1844,7 +1844,7 @@ _0808048C:
_080804A0: .4byte gBattleTypeFlags
_080804A4: .4byte gMain
_080804A8: .4byte sub_80804AC
- thumb_func_end sub_8080464
+ thumb_func_end BattleSetup_StartTrainerBattle
thumb_func_start sub_80804AC
sub_80804AC: @ 80804AC
@@ -1992,8 +1992,8 @@ sub_80805D8: @ 80805D8
bx r0
thumb_func_end sub_80805D8
- thumb_func_start sub_80805E8
-sub_80805E8: @ 80805E8
+ thumb_func_start BattleSetup_GetScriptAddrAfterBattle
+BattleSetup_GetScriptAddrAfterBattle: @ 80805E8
push {lr}
ldr r0, _080805F8 @ =gUnknown_20386C4
ldr r0, [r0]
@@ -2006,10 +2006,10 @@ _080805F4:
.align 2, 0
_080805F8: .4byte gUnknown_20386C4
_080805FC: .4byte gUnknown_81C555B
- thumb_func_end sub_80805E8
+ thumb_func_end BattleSetup_GetScriptAddrAfterBattle
- thumb_func_start sub_8080600
-sub_8080600: @ 8080600
+ thumb_func_start BattleSetup_GetTrainerPostBattleScript
+BattleSetup_GetTrainerPostBattleScript: @ 8080600
push {lr}
ldr r0, _08080610 @ =gUnknown_20386C8
ldr r0, [r0]
@@ -2022,7 +2022,7 @@ _0808060C:
.align 2, 0
_08080610: .4byte gUnknown_20386C8
_08080614: .4byte gUnknown_81C555B
- thumb_func_end sub_8080600
+ thumb_func_end BattleSetup_GetTrainerPostBattleScript
thumb_func_start sub_8080618
sub_8080618: @ 8080618
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 82922b88f..e4c7f17ba 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -3218,7 +3218,7 @@ sub_80E724C: @ 80E724C
adds r1, r0
ldrh r0, [r1]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
@@ -3229,7 +3229,7 @@ sub_80E724C: @ 80E724C
adds r0, r1
ldrh r0, [r0]
ldr r1, _080E7290 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _080E7294 @ =gSpecialVar_Result
strh r4, [r0]
b _080E72AA
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index b58832931..146a71788 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -733,7 +733,7 @@ sub_813D31C: @ 813D31C
bl StringAppend
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r1, _0813D394 @ =gUnknown_84643B4
adds r0, r4, 0
bl StringAppend
@@ -2497,7 +2497,7 @@ _0813E18A:
ldr r0, _0813E1F4 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r5, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x9
bl sub_813EA98
ldrb r0, [r5]
@@ -2736,7 +2736,7 @@ sub_813E37C: @ 813E37C
bne _0813E3D8
ldr r1, _0813E3C8 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813E3CC @ =gStringVar4
ldr r1, _0813E3D0 @ =gUnknown_8416374
adds r0, r4, 0
@@ -2815,7 +2815,7 @@ sub_813E428: @ 813E428
bne _0813E488
ldrh r0, [r6]
ldr r1, _0813E478 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813E47C @ =gStringVar4
ldr r1, _0813E480 @ =gUnknown_84168F1
adds r0, r4, 0
@@ -2855,7 +2855,7 @@ _0813E4A0:
_0813E4A8:
ldrh r0, [r6]
ldr r1, _0813E4D4 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813E4D8 @ =gStringVar4
ldr r1, _0813E4DC @ =gUnknown_8416911
adds r0, r4, 0
@@ -3188,7 +3188,7 @@ sub_813E768: @ 813E768
ldr r0, _0813E7D8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0813E7DC @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _0813E7E0 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
@@ -3250,7 +3250,7 @@ sub_813E7F0: @ 813E7F0
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r7, _0813E8C4 @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
diff --git a/asm/bike.s b/asm/bike.s
index 915c4bf8f..c85537d3d 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -745,9 +745,9 @@ _080BD5F8:
cmp r0, 0
beq _080BD618
adds r0, r4, 0
- bl sub_8055E78
+ bl Overworld_SetSavedMusic
adds r0, r4, 0
- bl sub_8055F48
+ bl Overworld_ChangeMusicTo
_080BD618:
pop {r4}
pop {r0}
diff --git a/asm/field_camera.s b/asm/field_camera.s
index 3d4ca0025..5541c6472 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -528,7 +528,7 @@ sub_805A948: @ 805A948
mov r8, r1
adds r0, r6, 0
adds r1, r7, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x80
@@ -557,7 +557,7 @@ _0805A98C:
asrs r0, 16
lsls r1, r7, 16
asrs r1, 16
- bl sub_8058F8C
+ bl MapGridGetMetatileLayerTypeAt
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 4
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 9748301f7..d1d1a6812 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -884,7 +884,7 @@ sub_806CF38: @ 806CF38
ldrh r1, [r4, 0x2]
b _0806CF7E
_0806CF60:
- ldr r1, _0806CFA4 @ =gUnknown_826D2D8
+ ldr r1, _0806CFA4 @ =gDirectionToVectors
lsls r2, r6, 3
adds r0, r2, r1
ldr r3, [r0]
@@ -919,7 +919,7 @@ _0806CF9E:
movs r0, 0
b _0806CFDE
.align 2, 0
-_0806CFA4: .4byte gUnknown_826D2D8
+_0806CFA4: .4byte gDirectionToVectors
_0806CFA8: .4byte gMapObjects
_0806CFAC:
movs r4, 0
@@ -936,7 +936,7 @@ _0806CFBC:
adds r4, 0x1
cmp r4, 0x3
ble _0806CFB0
- ldr r0, _0806CFE8 @ =gUnknown_3005074
+ ldr r0, _0806CFE8 @ =gSelectedEventObject
strb r3, [r0]
ldr r1, _0806CFEC @ =gSpecialVar_LastTalked
adds r0, r2, r3
@@ -954,7 +954,7 @@ _0806CFDE:
bx r1
.align 2, 0
_0806CFE4: .4byte gUnknown_2031DEC
-_0806CFE8: .4byte gUnknown_3005074
+_0806CFE8: .4byte gSelectedEventObject
_0806CFEC: .4byte gSpecialVar_LastTalked
_0806CFF0: .4byte gSpecialVar_Facing
thumb_func_end sub_806CF38
@@ -994,7 +994,7 @@ _0806D02A:
lsrs r0, 24
cmp r0, 0x1
bne _0806D092
- ldr r1, _0806D09C @ =gUnknown_826D2D8
+ ldr r1, _0806D09C @ =gDirectionToVectors
mov r0, r8
lsls r2, r0, 3
adds r0, r2, r1
@@ -1042,9 +1042,9 @@ _0806D092:
b _0806D0C8
.align 2, 0
_0806D098: .4byte gMapObjects
-_0806D09C: .4byte gUnknown_826D2D8
+_0806D09C: .4byte gDirectionToVectors
_0806D0A0:
- ldr r0, _0806D0D4 @ =gUnknown_3005074
+ ldr r0, _0806D0D4 @ =gSelectedEventObject
strb r5, [r0]
ldr r4, _0806D0D8 @ =gSpecialVar_LastTalked
ldr r1, _0806D0DC @ =gMapObjects
@@ -1069,7 +1069,7 @@ _0806D0C8:
pop {r1}
bx r1
.align 2, 0
-_0806D0D4: .4byte gUnknown_3005074
+_0806D0D4: .4byte gSelectedEventObject
_0806D0D8: .4byte gSpecialVar_LastTalked
_0806D0DC: .4byte gMapObjects
_0806D0E0: .4byte gSpecialVar_Facing
@@ -2195,7 +2195,7 @@ mapheader_run_first_tag2_script_list_match_conditionally: @ 806D964
adds r1, r5, 0
adds r2, r7, 0
bl sub_806DC54
- bl sub_807E438
+ bl DoWarp
movs r0, 0x1
b _0806DA02
.align 2, 0
@@ -2331,7 +2331,7 @@ _0806DAC4:
lsrs r0, 24
cmp r0, 0x1
bne _0806DAE4
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
ldr r0, _0806DAE0 @ =gUnknown_81C1361
bl ScriptContext1_SetupScript
movs r0, 0x1
@@ -2339,7 +2339,7 @@ _0806DAC4:
.align 2, 0
_0806DAE0: .4byte gUnknown_81C1361
_0806DAE4:
- bl sub_807E438
+ bl DoWarp
movs r0, 0x1
b _0806DAEE
_0806DAEC:
@@ -2638,7 +2638,7 @@ map_warp_consider_2_to_inside: @ 806DCD0
adds r1, r4, 0
adds r2, r6, 0
bl sub_806DC54
- bl sub_807E4DC
+ bl DoDoorWarp
movs r0, 0x1
b _0806DD32
.align 2, 0
@@ -2990,7 +2990,7 @@ _0806DF98:
cmp r0, 0
beq _0806DFB0
bl sub_8055A08
- bl sp13E_warp_to_last_warp
+ bl DoDiveWarp
movs r0, 0xE2
bl PlaySE
movs r0, 0x1
diff --git a/asm/field_door.s b/asm/field_door.s
index 9c7e5eb10..bcb8a6082 100644
--- a/asm/field_door.s
+++ b/asm/field_door.s
@@ -337,7 +337,7 @@ sub_805B158: @ 805B158
adds r6, r2, 0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -392,7 +392,7 @@ sub_805B1B8: @ 805B1B8
adds r6, r2, 0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -439,7 +439,7 @@ sub_805B210: @ 805B210
adds r6, r2, 0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -478,8 +478,8 @@ _0805B25C:
_0805B264: .4byte gUnknown_835B4B0
thumb_func_end sub_805B210
- thumb_func_start sub_805B268
-sub_805B268: @ 805B268
+ thumb_func_start FieldSetDoorOpened
+FieldSetDoorOpened: @ 805B268
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -504,10 +504,10 @@ _0805B292:
bx r0
.align 2, 0
_0805B298: .4byte gUnknown_835B5D8
- thumb_func_end sub_805B268
+ thumb_func_end FieldSetDoorOpened
- thumb_func_start sub_805B29C
-sub_805B29C: @ 805B29C
+ thumb_func_start FieldSetDoorClosed
+FieldSetDoorClosed: @ 805B29C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -532,10 +532,10 @@ _0805B2C6:
bx r0
.align 2, 0
_0805B2CC: .4byte gUnknown_835B5D8
- thumb_func_end sub_805B29C
+ thumb_func_end FieldSetDoorClosed
- thumb_func_start sub_805B2D0
-sub_805B2D0: @ 805B2D0
+ thumb_func_start FieldAnimateDoorClose
+FieldAnimateDoorClose: @ 805B2D0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -566,10 +566,10 @@ _0805B308:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_805B2D0
+ thumb_func_end FieldAnimateDoorClose
- thumb_func_start sub_805B310
-sub_805B310: @ 805B310
+ thumb_func_start FieldAnimateDoorOpen
+FieldAnimateDoorOpen: @ 805B310
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -600,10 +600,10 @@ _0805B348:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_805B310
+ thumb_func_end FieldAnimateDoorOpen
- thumb_func_start sub_805B350
-sub_805B350: @ 805B350
+ thumb_func_start FieldIsDoorAnimationRunning
+FieldIsDoorAnimationRunning: @ 805B350
push {lr}
ldr r0, _0805B360 @ =sub_805B028
bl FuncIsActiveTask
@@ -613,10 +613,10 @@ sub_805B350: @ 805B350
bx r1
.align 2, 0
_0805B360: .4byte sub_805B028
- thumb_func_end sub_805B350
+ thumb_func_end FieldIsDoorAnimationRunning
- thumb_func_start sub_805B364
-sub_805B364: @ 805B364
+ thumb_func_start GetDoorSoundEffect
+GetDoorSoundEffect: @ 805B364
push {lr}
adds r3, r0, 0
adds r2, r1, 0
@@ -635,7 +635,7 @@ _0805B380:
_0805B382:
pop {r1}
bx r1
- thumb_func_end sub_805B364
+ thumb_func_end GetDoorSoundEffect
thumb_func_start sub_805B388
sub_805B388: @ 805B388
@@ -643,7 +643,7 @@ sub_805B388: @ 805B388
adds r4, r0, 0
adds r0, r1, 0
adds r1, r2, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 1cbdc8214..5aa0772dd 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -6955,7 +6955,7 @@ sub_8086944: @ 8086944
cmp r0, 0
beq _08086978
adds r0, r4, 0
- bl sub_8055F48
+ bl Overworld_ChangeMusicTo
_08086978:
movs r0, 0
pop {r4}
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index ed746de25..be79c3b21 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -845,7 +845,7 @@ unc_grass_normal: @ 80DB3EC
lsrs r4, r0, 8
lsls r0, 24
lsrs r7, r0, 24
- ldr r3, _080DB498 @ =gUnknown_2036E18
+ ldr r3, _080DB498 @ =gCamera
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -921,7 +921,7 @@ _080DB48C:
bl FieldEffectStop
b _080DB4E4
.align 2, 0
-_080DB498: .4byte gUnknown_2036E18
+_080DB498: .4byte gCamera
_080DB49C: .4byte gSaveBlock1Ptr
_080DB4A0:
mov r0, sp
@@ -1196,7 +1196,7 @@ unc_grass_tall: @ 80DB69C
lsrs r7, r0, 8
lsls r0, 24
lsrs r6, r0, 24
- ldr r3, _080DB748 @ =gUnknown_2036E18
+ ldr r3, _080DB748 @ =gCamera
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -1272,7 +1272,7 @@ _080DB73C:
bl FieldEffectStop
b _080DB786
.align 2, 0
-_080DB748: .4byte gUnknown_2036E18
+_080DB748: .4byte gCamera
_080DB74C: .4byte gSaveBlock1Ptr
_080DB750:
mov r0, sp
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index 8ccc347e9..494c3e61e 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -661,7 +661,7 @@ _0807E028:
ldrsh r0, [r6, r2]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B268
+ bl FieldSetDoorOpened
movs r0, 0x1
strh r0, [r4, 0x8]
b _0807E206
@@ -691,7 +691,7 @@ _0807E074:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B364
+ bl GetDoorSoundEffect
lsls r0, 16
lsrs r0, 16
bl PlaySE
@@ -699,12 +699,12 @@ _0807E074:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B310
+ bl FieldAnimateDoorOpen
movs r0, 0x7
strh r0, [r4, 0x8]
b _0807E206
_0807E0A2:
- bl sub_805B350
+ bl FieldIsDoorAnimationRunning
lsls r0, 24
cmp r0, 0
beq _0807E0AE
@@ -750,7 +750,7 @@ _0807E0FC:
ldrsh r0, [r4, r1]
movs r2, 0x22
ldrsh r1, [r4, r2]
- bl sub_805B2D0
+ bl FieldAnimateDoorClose
movs r0, 0x9
strh r0, [r4, 0x8]
b _0807E206
@@ -762,7 +762,7 @@ _0807E10E:
lsls r0, 24
cmp r0, 0
beq _0807E206
- bl sub_805B350
+ bl FieldIsDoorAnimationRunning
lsls r0, 24
cmp r0, 0
bne _0807E206
@@ -822,7 +822,7 @@ _0807E198:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B2D0
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0xA]
@@ -1153,8 +1153,8 @@ _0807E434:
bx r1
thumb_func_end sub_807E418
- thumb_func_start sub_807E438
-sub_807E438: @ 807E438
+ thumb_func_start DoWarp
+DoWarp: @ 807E438
push {lr}
bl ScriptContext2_Enable
bl sub_8055F88
@@ -1174,10 +1174,10 @@ sub_807E438: @ 807E438
_0807E464: .4byte gUnknown_3005020
_0807E468: .4byte sub_807DF64
_0807E46C: .4byte sub_807E718
- thumb_func_end sub_807E438
+ thumb_func_end DoWarp
- thumb_func_start sp13E_warp_to_last_warp
-sp13E_warp_to_last_warp: @ 807E470
+ thumb_func_start DoDiveWarp
+DoDiveWarp: @ 807E470
push {lr}
bl ScriptContext2_Enable
bl sub_8055F88
@@ -1195,7 +1195,7 @@ sp13E_warp_to_last_warp: @ 807E470
_0807E494: .4byte gUnknown_3005020
_0807E498: .4byte sub_807DF64
_0807E49C: .4byte sub_807E718
- thumb_func_end sp13E_warp_to_last_warp
+ thumb_func_end DoDiveWarp
thumb_func_start sub_807E4A0
sub_807E4A0: @ 807E4A0
@@ -1228,8 +1228,8 @@ _0807E4D4: .4byte sub_807E980
_0807E4D8: .4byte gTasks
thumb_func_end sub_807E4A0
- thumb_func_start sub_807E4DC
-sub_807E4DC: @ 807E4DC
+ thumb_func_start DoDoorWarp
+DoDoorWarp: @ 807E4DC
push {lr}
bl ScriptContext2_Enable
ldr r0, _0807E4F4 @ =gUnknown_3005020
@@ -1244,7 +1244,7 @@ sub_807E4DC: @ 807E4DC
_0807E4F4: .4byte gUnknown_3005020
_0807E4F8: .4byte sub_807DF64
_0807E4FC: .4byte sub_807E80C
- thumb_func_end sub_807E4DC
+ thumb_func_end DoDoorWarp
thumb_func_start sub_807E500
sub_807E500: @ 807E500
@@ -1282,10 +1282,10 @@ _0807E540: .4byte sub_807DF64
_0807E544: .4byte sub_807E784
thumb_func_end sub_807E524
- thumb_func_start sp13F_fall_to_last_warp
-sp13F_fall_to_last_warp: @ 807E548
+ thumb_func_start DoFallWarp
+DoFallWarp: @ 807E548
push {lr}
- bl sp13E_warp_to_last_warp
+ bl DoDiveWarp
ldr r1, _0807E558 @ =gUnknown_3005020
ldr r0, _0807E55C @ =sub_8084454
str r0, [r1]
@@ -1294,7 +1294,7 @@ sp13F_fall_to_last_warp: @ 807E548
.align 2, 0
_0807E558: .4byte gUnknown_3005020
_0807E55C: .4byte sub_8084454
- thumb_func_end sp13F_fall_to_last_warp
+ thumb_func_end DoFallWarp
thumb_func_start sub_807E560
sub_807E560: @ 807E560
@@ -1690,7 +1690,7 @@ _0807E85C:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805B364
+ bl GetDoorSoundEffect
lsls r0, 16
lsrs r0, 16
bl PlaySE
@@ -1699,7 +1699,7 @@ _0807E85C:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805B310
+ bl FieldAnimateDoorOpen
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -1760,7 +1760,7 @@ _0807E8F4:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805B2D0
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 308421098..ef1c75939 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -673,7 +673,7 @@ sub_805E2E8: @ 805E2E8
lsls r0, 24
cmp r0, 0
beq _0805E37C
- ldr r1, _0805E374 @ =gUnknown_3005040
+ ldr r1, _0805E374 @ =VMap
ldr r0, [r1]
adds r3, r0, 0
subs r3, 0x10
@@ -736,7 +736,7 @@ _0805E36A:
movs r0, 0
b _0805E37E
.align 2, 0
-_0805E374: .4byte gUnknown_3005040
+_0805E374: .4byte VMap
_0805E378: .4byte gSaveBlock1Ptr
_0805E37C:
movs r0, 0x1
@@ -1614,8 +1614,8 @@ _0805E9F0: .4byte 0x0000ffff
_0805E9F4: .4byte gSprites
thumb_func_end AddPseudoFieldObject
- thumb_func_start sub_805E9F8
-sub_805E9F8: @ 805E9F8
+ thumb_func_start sprite_new
+sprite_new: @ 805E9F8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1772,7 +1772,7 @@ _0805EB24:
_0805EB38: .4byte sub_8068FA8
_0805EB3C: .4byte 0x0000ffff
_0805EB40: .4byte gSprites
- thumb_func_end sub_805E9F8
+ thumb_func_end sprite_new
thumb_func_start sub_805EB44
sub_805EB44: @ 805EB44
@@ -3516,7 +3516,7 @@ npc_coords_shift_still: @ 805F818
thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C
push {r4,r5,lr}
- ldr r2, _0805F88C @ =gUnknown_2036E18
+ ldr r2, _0805F88C @ =gCamera
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -3566,7 +3566,7 @@ _0805F884:
pop {r0}
bx r0
.align 2, 0
-_0805F88C: .4byte gUnknown_2036E18
+_0805F88C: .4byte gCamera
_0805F890: .4byte gMapObjects
thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
@@ -12332,13 +12332,13 @@ npc_block_way: @ 80636AC
_080636E2:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _08063724
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8059334
+ bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
@@ -12432,13 +12432,13 @@ sub_8063770: @ 8063770
lsrs r4, r1, 31
adds r0, r6, 0
adds r1, r5, 0
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _080637E8
adds r0, r6, 0
adds r1, r5, 0
- bl sub_8059334
+ bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index aa68c6ef2..df2588587 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -2818,7 +2818,7 @@ PartyHasMonWithSurf: @ 805C83C
_0805C84E:
adds r0, r4, 0
movs r1, 0x39
- bl pokemon_has_move
+ bl MonKnowsMove
lsls r0, 24
cmp r0, 0
beq _0805C860
diff --git a/asm/field_specials.s b/asm/field_specials.s
index a4f3e6dc7..4c0b97151 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -33,9 +33,9 @@ _080CA644:
movs r4, 0x8D
lsls r4, 1
adds r0, r4, 0
- bl sub_8055E78
+ bl Overworld_SetSavedMusic
adds r0, r4, 0
- bl sub_8055F48
+ bl Overworld_ChangeMusicTo
pop {r4}
pop {r0}
bx r0
@@ -3138,7 +3138,7 @@ _080CBDE4: .4byte gSpecialVar_0x8004
thumb_func_start sub_80CBDE8
sub_80CBDE8: @ 80CBDE8
- ldr r1, _080CBDF8 @ =gUnknown_3005074
+ ldr r1, _080CBDF8 @ =gSelectedEventObject
movs r0, 0
strb r0, [r1]
ldr r1, _080CBDFC @ =gUnknown_20370DA
@@ -3146,7 +3146,7 @@ sub_80CBDE8: @ 80CBDE8
strh r0, [r1]
bx lr
.align 2, 0
-_080CBDF8: .4byte gUnknown_3005074
+_080CBDF8: .4byte gSelectedEventObject
_080CBDFC: .4byte gUnknown_20370DA
thumb_func_end sub_80CBDE8
@@ -3157,7 +3157,7 @@ sub_80CBE00: @ 80CBE00
ldrh r0, [r0]
cmp r0, 0xFF
bne _080CBE44
- ldr r1, _080CBE1C @ =gUnknown_3005074
+ ldr r1, _080CBE1C @ =gSelectedEventObject
ldrb r0, [r1]
cmp r0, 0
bne _080CBE20
@@ -3165,7 +3165,7 @@ sub_80CBE00: @ 80CBE00
b _080CBE48
.align 2, 0
_080CBE18: .4byte gUnknown_20370DA
-_080CBE1C: .4byte gUnknown_3005074
+_080CBE1C: .4byte gSelectedEventObject
_080CBE20:
ldr r2, _080CBE4C @ =gMapObjects
ldrb r1, [r1]
@@ -3267,7 +3267,7 @@ TV_PrintIntToStringVar: @ 80CBED4
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
- bl sub_80CBF04
+ bl CountDigits
adds r3, r0, 0
ldr r0, _080CBF00 @ =gUnknown_83F5AF8
lsls r4, 2
@@ -3285,8 +3285,8 @@ TV_PrintIntToStringVar: @ 80CBED4
_080CBF00: .4byte gUnknown_83F5AF8
thumb_func_end TV_PrintIntToStringVar
- thumb_func_start sub_80CBF04
-sub_80CBF04: @ 80CBF04
+ thumb_func_start CountDigits
+CountDigits: @ 80CBF04
push {r4,lr}
adds r4, r0, 0
movs r1, 0xA
@@ -3366,7 +3366,7 @@ _080CBF9A:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80CBF04
+ thumb_func_end CountDigits
thumb_func_start sub_80CBFA0
sub_80CBFA0: @ 80CBFA0
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
index 306b52940..b4106c021 100644
--- a/asm/field_tasks.s
+++ b/asm/field_tasks.s
@@ -490,7 +490,7 @@ _0806EB8E:
ldrsh r0, [r0, r3]
movs r2, 0
ldrsh r1, [r4, r2]
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
ldr r1, _0806EBDC @ =0x0000020a
cmp r0, r1
bne _0806EBE4
@@ -534,7 +534,7 @@ sub_806EC04: @ 806EC04
asrs r4, r1, 16
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
ldr r1, _0806EC38 @ =0x0000022f
ldr r2, _0806EC3C @ =0x00000237
cmp r0, r1
diff --git a/asm/field_weather.s b/asm/field_weather.s
index 77a138ad2..49a1ed95b 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -2804,8 +2804,8 @@ sav1_get_weather_probably: @ 807B130
_0807B13C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_weather_probably
- thumb_func_start sub_807B140
-sub_807B140: @ 807B140
+ thumb_func_start SetSav1WeatherFromCurrMapHeader
+SetSav1WeatherFromCurrMapHeader: @ 807B140
push {r4,r5,lr}
ldr r4, _0807B16C @ =gSaveBlock1Ptr
ldr r0, [r4]
@@ -2828,7 +2828,7 @@ sub_807B140: @ 807B140
.align 2, 0
_0807B16C: .4byte gSaveBlock1Ptr
_0807B170: .4byte gMapHeader
- thumb_func_end sub_807B140
+ thumb_func_end SetSav1WeatherFromCurrMapHeader
thumb_func_start SetWeather
SetWeather: @ 807B174
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
deleted file mode 100644
index a8b2d36ee..000000000
--- a/asm/fieldmap.s
+++ /dev/null
@@ -1,2400 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start mapconnection_get_mapheader
-mapconnection_get_mapheader: @ 80589C4
- push {lr}
- ldrb r2, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- pop {r1}
- bx r1
- thumb_func_end mapconnection_get_mapheader
-
- thumb_func_start not_trainer_hill_battle_pyramid
-not_trainer_hill_battle_pyramid: @ 80589D4
- push {lr}
- ldr r0, _080589E4 @ =gMapHeader
- bl sub_8058A00
- bl mapheader_run_script_with_tag_x1
- pop {r0}
- bx r0
- .align 2, 0
-_080589E4: .4byte gMapHeader
- thumb_func_end not_trainer_hill_battle_pyramid
-
- thumb_func_start sub_80589E8
-sub_80589E8: @ 80589E8
- push {lr}
- ldr r0, _080589FC @ =gMapHeader
- bl sub_8058A00
- bl sub_80591C4
- bl mapheader_run_script_with_tag_x1
- pop {r0}
- bx r0
- .align 2, 0
-_080589FC: .4byte gMapHeader
- thumb_func_end sub_80589E8
-
- thumb_func_start sub_8058A00
-sub_8058A00: @ 8058A00
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r5, [r6]
- ldr r0, _08058A58 @ =0x03ff03ff
- str r0, [sp]
- ldr r4, _08058A5C @ =gUnknown_2031DFC
- ldr r2, _08058A60 @ =0x01001400
- mov r0, sp
- adds r1, r4, 0
- bl CpuFastSet
- ldr r2, _08058A64 @ =gUnknown_3005040
- str r4, [r2, 0x8]
- ldr r1, [r5]
- adds r1, 0xF
- str r1, [r2]
- ldr r0, [r5, 0x4]
- adds r0, 0xE
- str r0, [r2, 0x4]
- muls r1, r0
- movs r0, 0xA0
- lsls r0, 6
- cmp r1, r0
- ble _08058A3E
- ldr r0, _08058A68 @ =gUnknown_8352F18 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c"
- ldr r2, _08058A6C @ =gUnknown_8352F4C "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE"
- movs r1, 0x9E
- movs r3, 0x1
- bl AGBAssert
-_08058A3E:
- ldr r0, [r5, 0xC]
- ldrh r1, [r5]
- ldrh r2, [r5, 0x4]
- bl map_copy_with_padding
- adds r0, r6, 0
- bl mapheader_copy_mapdata_of_adjacent_maps
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08058A58: .4byte 0x03ff03ff
-_08058A5C: .4byte gUnknown_2031DFC
-_08058A60: .4byte 0x01001400
-_08058A64: .4byte gUnknown_3005040
-_08058A68: .4byte gUnknown_8352F18
-_08058A6C: .4byte gUnknown_8352F4C
- thumb_func_end sub_8058A00
-
- thumb_func_start map_copy_with_padding
-map_copy_with_padding: @ 8058A70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _08058AC4 @ =gUnknown_3005040
- ldr r4, [r0, 0x8]
- ldr r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, 0xE
- adds r4, r0
- cmp r2, 0
- beq _08058AB8
- mov r0, r8
- lsls r6, r0, 1
- adds r5, r2, 0
- movs r0, 0x1E
- adds r0, r6
- mov r9, r0
-_08058AA4:
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- add r4, r9
- adds r7, r6
- subs r5, 0x1
- cmp r5, 0
- bne _08058AA4
-_08058AB8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058AC4: .4byte gUnknown_3005040
- thumb_func_end map_copy_with_padding
-
- thumb_func_start mapheader_copy_mapdata_of_adjacent_maps
-mapheader_copy_mapdata_of_adjacent_maps: @ 8058AC8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r2, _08058B00 @ =gUnknown_2036E24
- ldr r0, _08058B04 @ =gUnknown_8352EEC
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r6, 0xC]
- cmp r0, 0
- beq _08058B4C
- ldr r1, [r0]
- ldr r5, [r0, 0x4]
- cmp r1, 0
- ble _08058B4C
- adds r4, r2, 0
- adds r7, r1, 0
-_08058AE6:
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldr r2, [r5, 0x4]
- ldrb r0, [r5]
- cmp r0, 0x2
- beq _08058B1E
- cmp r0, 0x2
- bgt _08058B08
- cmp r0, 0x1
- beq _08058B12
- b _08058B44
- .align 2, 0
-_08058B00: .4byte gUnknown_2036E24
-_08058B04: .4byte gUnknown_8352EEC
-_08058B08:
- cmp r0, 0x3
- beq _08058B2A
- cmp r0, 0x4
- beq _08058B36
- b _08058B44
-_08058B12:
- adds r0, r6, 0
- bl fillSouthConnection
- ldrb r0, [r4]
- movs r1, 0x1
- b _08058B40
-_08058B1E:
- adds r0, r6, 0
- bl fillNorthConnection
- ldrb r0, [r4]
- movs r1, 0x2
- b _08058B40
-_08058B2A:
- adds r0, r6, 0
- bl fillWestConnection
- ldrb r0, [r4]
- movs r1, 0x4
- b _08058B40
-_08058B36:
- adds r0, r6, 0
- bl fillEastConnection
- ldrb r0, [r4]
- movs r1, 0x8
-_08058B40:
- orrs r0, r1
- strb r0, [r4]
-_08058B44:
- subs r7, 0x1
- adds r5, 0xC
- cmp r7, 0
- bne _08058AE6
-_08058B4C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end mapheader_copy_mapdata_of_adjacent_maps
-
- thumb_func_start sub_8058B54
-sub_8058B54: @ 8058B54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [r2]
- ldr r7, [r4]
- adds r2, r7, 0
- muls r2, r5
- adds r2, r3
- lsls r2, 1
- ldr r3, [r4, 0xC]
- adds r6, r3, r2
- ldr r3, _08058BB0 @ =gUnknown_3005040
- ldr r2, [r3]
- muls r1, r2
- adds r1, r0
- lsls r1, 1
- ldr r0, [r3, 0x8]
- adds r5, r0, r1
- ldr r0, [sp, 0x20]
- cmp r0, 0
- ble _08058BA6
- adds r4, r0, 0
- ldr r3, _08058BB4 @ =0x001fffff
- mov r8, r3
-_08058B86:
- adds r0, r6, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- mov r3, r8
- ands r2, r3
- bl CpuSet
- ldr r0, _08058BB0 @ =gUnknown_3005040
- ldr r0, [r0]
- lsls r0, 1
- adds r5, r0
- lsls r0, r7, 1
- adds r6, r0
- subs r4, 0x1
- cmp r4, 0
- bne _08058B86
-_08058BA6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058BB0: .4byte gUnknown_3005040
-_08058BB4: .4byte 0x001fffff
- thumb_func_end sub_8058B54
-
- thumb_func_start fillSouthConnection
-fillSouthConnection: @ 8058BB8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _08058C12
- ldr r0, [r5]
- ldr r4, [r0]
- adds r2, 0x7
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- adds r7, r0, 0x7
- cmp r2, 0
- bge _08058BEC
- negs r6, r2
- adds r2, r4
- ldr r0, _08058BE8 @ =gUnknown_3005040
- ldr r3, [r0]
- cmp r2, r3
- bge _08058BE2
- adds r3, r2, 0
-_08058BE2:
- movs r2, 0
- b _08058BFC
- .align 2, 0
-_08058BE8: .4byte gUnknown_3005040
-_08058BEC:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058C1C @ =gUnknown_3005040
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058BFC
- adds r3, r4, 0
-_08058BFC:
- movs r0, 0
- str r0, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- adds r1, r7, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8058B54
-_08058C12:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058C1C: .4byte gUnknown_3005040
- thumb_func_end fillSouthConnection
-
- thumb_func_start fillNorthConnection
-fillNorthConnection: @ 8058C20
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _08058C74
- ldr r0, [r5]
- ldr r4, [r0]
- ldr r0, [r0, 0x4]
- adds r2, 0x7
- subs r7, r0, 0x7
- cmp r2, 0
- bge _08058C50
- negs r6, r2
- adds r2, r4
- ldr r0, _08058C4C @ =gUnknown_3005040
- ldr r3, [r0]
- cmp r2, r3
- bge _08058C46
- adds r3, r2, 0
-_08058C46:
- movs r2, 0
- b _08058C60
- .align 2, 0
-_08058C4C: .4byte gUnknown_3005040
-_08058C50:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058C7C @ =gUnknown_3005040
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058C60
- adds r3, r4, 0
-_08058C60:
- str r7, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8058B54
-_08058C74:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058C7C: .4byte gUnknown_3005040
- thumb_func_end fillNorthConnection
-
- thumb_func_start fillWestConnection
-fillWestConnection: @ 8058C80
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _08058CD4
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r4, [r0, 0x4]
- adds r2, 0x7
- subs r7, r1, 0x7
- cmp r2, 0
- bge _08058CB0
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _08058CAC @ =gUnknown_3005040
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _08058CA6
- adds r3, r1, 0
-_08058CA6:
- movs r2, 0
- b _08058CC0
- .align 2, 0
-_08058CAC: .4byte gUnknown_3005040
-_08058CB0:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058CDC @ =gUnknown_3005040
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058CC0
- adds r3, r4, 0
-_08058CC0:
- str r6, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r0, 0
- adds r1, r2, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8058B54
-_08058CD4:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058CDC: .4byte gUnknown_3005040
- thumb_func_end fillWestConnection
-
- thumb_func_start fillEastConnection
-fillEastConnection: @ 8058CE0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _08058D38
- ldr r0, [r5]
- ldr r4, [r0, 0x4]
- ldr r0, [r3]
- ldr r0, [r0]
- adds r7, r0, 0x7
- adds r2, 0x7
- cmp r2, 0
- bge _08058D14
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _08058D10 @ =gUnknown_3005040
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _08058D0A
- adds r3, r1, 0
-_08058D0A:
- movs r2, 0
- b _08058D24
- .align 2, 0
-_08058D10: .4byte gUnknown_3005040
-_08058D14:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058D40 @ =gUnknown_3005040
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058D24
- adds r3, r4, 0
-_08058D24:
- str r6, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_8058B54
-_08058D38:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058D40: .4byte gUnknown_3005040
- thumb_func_end fillEastConnection
-
- thumb_func_start MapGridGetZCoordAt
-MapGridGetZCoordAt: @ 8058D44
- push {r4-r7,lr}
- adds r2, r0, 0
- adds r7, r1, 0
- cmp r2, 0
- blt _08058D74
- ldr r1, _08058D70 @ =gUnknown_3005040
- ldr r3, [r1]
- cmp r2, r3
- bge _08058D74
- cmp r7, 0
- blt _08058D74
- ldr r0, [r1, 0x4]
- cmp r7, r0
- bge _08058D74
- adds r0, r3, 0
- muls r0, r7
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08058DA8
- .align 2, 0
-_08058D70: .4byte gUnknown_3005040
-_08058D74:
- ldr r0, _08058DB4 @ =gMapHeader
- ldr r6, [r0]
- subs r0, r2, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- subs r0, r7, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08058DA8:
- ldr r0, _08058DB8 @ =0x000003ff
- cmp r1, r0
- beq _08058DBC
- lsrs r0, r1, 12
- b _08058DBE
- .align 2, 0
-_08058DB4: .4byte gMapHeader
-_08058DB8: .4byte 0x000003ff
-_08058DBC:
- movs r0, 0
-_08058DBE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MapGridGetZCoordAt
-
- thumb_func_start sub_8058DC4
-sub_8058DC4: @ 8058DC4
- push {r4-r7,lr}
- adds r2, r0, 0
- adds r7, r1, 0
- cmp r2, 0
- blt _08058DF4
- ldr r1, _08058DF0 @ =gUnknown_3005040
- ldr r3, [r1]
- cmp r2, r3
- bge _08058DF4
- cmp r7, 0
- blt _08058DF4
- ldr r0, [r1, 0x4]
- cmp r7, r0
- bge _08058DF4
- adds r0, r3, 0
- muls r0, r7
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08058E28
- .align 2, 0
-_08058DF0: .4byte gUnknown_3005040
-_08058DF4:
- ldr r0, _08058E38 @ =gMapHeader
- ldr r6, [r0]
- subs r0, r2, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- subs r0, r7, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08058E28:
- ldr r0, _08058E3C @ =0x000003ff
- cmp r1, r0
- beq _08058E40
- movs r0, 0xC0
- lsls r0, 4
- ands r1, r0
- lsrs r0, r1, 10
- b _08058E42
- .align 2, 0
-_08058E38: .4byte gMapHeader
-_08058E3C: .4byte 0x000003ff
-_08058E40:
- movs r0, 0x1
-_08058E42:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8058DC4
-
- thumb_func_start sub_8058E48
-sub_8058E48: @ 8058E48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- mov r9, r1
- cmp r0, 0
- blt _08058E80
- ldr r1, _08058E7C @ =gUnknown_3005040
- ldr r2, [r1]
- cmp r8, r2
- bge _08058E80
- mov r0, r9
- cmp r0, 0
- blt _08058E80
- ldr r0, [r1, 0x4]
- cmp r9, r0
- bge _08058E80
- mov r0, r9
- muls r0, r2
- add r0, r8
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- b _08058EBA
- .align 2, 0
-_08058E7C: .4byte gUnknown_3005040
-_08058E80:
- ldr r0, _08058EC8 @ =gMapHeader
- ldr r6, [r0]
- mov r0, r8
- subs r0, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- mov r0, r9
- subs r0, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- adds r7, r0, 0
- orrs r7, r1
-_08058EBA:
- ldr r0, _08058ECC @ =0x000003ff
- cmp r7, r0
- beq _08058ED0
- ands r7, r0
- adds r0, r7, 0
- b _08058F0A
- .align 2, 0
-_08058EC8: .4byte gMapHeader
-_08058ECC: .4byte 0x000003ff
-_08058ED0:
- ldr r0, _08058F18 @ =gMapHeader
- ldr r6, [r0]
- mov r0, r8
- subs r0, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- mov r0, r9
- subs r0, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- orrs r0, r1
- ands r0, r7
-_08058F0A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08058F18: .4byte gMapHeader
- thumb_func_end sub_8058E48
-
- thumb_func_start sub_8058F1C
-sub_8058F1C: @ 8058F1C
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r3, 0x7
- bhi _08058F3A
- ldr r1, _08058F40 @ =gUnknown_8352EF0
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- ldr r0, _08058F44 @ =gUnknown_8352F10
- adds r0, r3, r0
- ldrb r0, [r0]
- lsrs r2, r0
-_08058F3A:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08058F40: .4byte gUnknown_8352EF0
-_08058F44: .4byte gUnknown_8352F10
- thumb_func_end sub_8058F1C
-
- thumb_func_start sub_8058F48
-sub_8058F48: @ 8058F48
- push {r4,lr}
- adds r4, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl sub_8058E48
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08058F74 @ =gMapHeader
- ldr r0, [r0]
- adds r2, r4, 0
- bl sub_8059080
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058F74: .4byte gMapHeader
- thumb_func_end sub_8058F48
-
- thumb_func_start MapGridGetMetatileBehaviorAt
-MapGridGetMetatileBehaviorAt: @ 8058F78
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- bl sub_8058F48
- pop {r1}
- bx r1
- thumb_func_end MapGridGetMetatileBehaviorAt
-
- thumb_func_start sub_8058F8C
-sub_8058F8C: @ 8058F8C
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x6
- bl sub_8058F48
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8058F8C
-
- thumb_func_start MapGridSetMetatileIdAt
-MapGridSetMetatileIdAt: @ 8058FA4
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08058FDC
- ldr r2, _08058FE4 @ =gUnknown_3005040
- ldr r4, [r2]
- cmp r3, r4
- bge _08058FDC
- cmp r1, 0
- blt _08058FDC
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08058FDC
- muls r1, r4
- adds r1, r3, r1
- ldr r0, [r2, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- movs r2, 0xF0
- lsls r2, 8
- ands r2, r0
- ldr r0, _08058FE8 @ =0x00000fff
- ands r0, r5
- orrs r2, r0
- strh r2, [r1]
-_08058FDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08058FE4: .4byte gUnknown_3005040
-_08058FE8: .4byte 0x00000fff
- thumb_func_end MapGridSetMetatileIdAt
-
- thumb_func_start MapGridSetMetatileEntryAt
-MapGridSetMetatileEntryAt: @ 8058FEC
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08059018
- ldr r2, _08059020 @ =gUnknown_3005040
- ldr r4, [r2]
- cmp r3, r4
- bge _08059018
- cmp r1, 0
- blt _08059018
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08059018
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3, r0
- ldr r1, [r2, 0x8]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
-_08059018:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059020: .4byte gUnknown_3005040
- thumb_func_end MapGridSetMetatileEntryAt
-
- thumb_func_start sub_8059024
-sub_8059024: @ 8059024
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- adds r5, r2, 0
- cmp r4, 0
- blt _08059076
- ldr r2, _08059060 @ =gUnknown_3005040
- ldr r1, [r2]
- cmp r4, r1
- bge _08059076
- cmp r3, 0
- blt _08059076
- ldr r0, [r2, 0x4]
- cmp r3, r0
- bge _08059076
- cmp r5, 0
- beq _08059064
- adds r0, r1, 0
- muls r0, r3
- adds r0, r4, r0
- ldr r1, [r2, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- b _08059076
- .align 2, 0
-_08059060: .4byte gUnknown_3005040
-_08059064:
- muls r1, r3
- adds r1, r4, r1
- ldr r0, [r2, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r2, [r1]
- ldr r0, _0805907C @ =0x0000f3ff
- ands r0, r2
- strh r0, [r1]
-_08059076:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805907C: .4byte 0x0000f3ff
- thumb_func_end sub_8059024
-
- thumb_func_start sub_8059080
-sub_8059080: @ 8059080
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- adds r5, r3, 0
- lsls r2, 24
- lsrs r2, 24
- adds r6, r2, 0
- ldr r0, _080590A4 @ =0x0000027f
- cmp r3, r0
- bhi _080590A8
- ldr r0, [r4, 0x10]
- ldr r1, [r0, 0x14]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- b _080590C8
- .align 2, 0
-_080590A4: .4byte 0x0000027f
-_080590A8:
- ldr r0, _080590B4 @ =0x000003ff
- cmp r3, r0
- bls _080590B8
- movs r0, 0xFF
- b _080590CC
- .align 2, 0
-_080590B4: .4byte 0x000003ff
-_080590B8:
- ldr r0, [r4, 0x14]
- ldr r1, [r0, 0x14]
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _080590D4 @ =0xfffff600
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0
-_080590C8:
- bl sub_8058F1C
-_080590CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080590D4: .4byte 0xfffff600
- thumb_func_end sub_8059080
-
- thumb_func_start sub_80590D8
-sub_80590D8: @ 80590D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08059144 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _08059148 @ =0x00000898
- adds r4, r0, r1
- ldr r0, _0805914C @ =gUnknown_3005040
- ldr r0, [r0]
- mov r8, r0
- ldr r0, _08059150 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0
- ldrsh r6, [r0, r2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _08059138
- mov r12, r1
- ldr r2, _08059154 @ =gUnknown_2031DFC
- mov r9, r2
- lsls r7, r6, 1
-_0805910A:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r5, r0, 0x1
- cmp r1, r3
- bge _08059132
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_08059124:
- ldrh r0, [r2]
- strh r0, [r4]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _08059124
-_08059132:
- adds r0, r5, 0
- cmp r0, r12
- blt _0805910A
-_08059138:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08059144: .4byte gSaveBlock2Ptr
-_08059148: .4byte 0x00000898
-_0805914C: .4byte gUnknown_3005040
-_08059150: .4byte gSaveBlock1Ptr
-_08059154: .4byte gUnknown_2031DFC
- thumb_func_end sub_80590D8
-
- thumb_func_start sub_8059158
-sub_8059158: @ 8059158
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r0, _08059184 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, _08059188 @ =0x00000898
- adds r3, r0, r4
- ldr r4, _0805918C @ =0x000001ff
-_08059168:
- lsls r0, r1, 1
- adds r0, r3, r0
- ldrh r0, [r0]
- orrs r2, r0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bls _08059168
- cmp r2, 0
- beq _08059190
- movs r0, 0
- b _08059192
- .align 2, 0
-_08059184: .4byte gSaveBlock2Ptr
-_08059188: .4byte 0x00000898
-_0805918C: .4byte 0x000001ff
-_08059190:
- movs r0, 0x1
-_08059192:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8059158
-
- thumb_func_start sub_8059198
-sub_8059198: @ 8059198
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080591B8 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, _080591BC @ =0x00000898
- adds r1, r0
- ldr r2, _080591C0 @ =0x01000100
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080591B8: .4byte gSaveBlock2Ptr
-_080591BC: .4byte 0x00000898
-_080591C0: .4byte 0x01000100
- thumb_func_end sub_8059198
-
- thumb_func_start sub_80591C4
-sub_80591C4: @ 80591C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0805923C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _08059240 @ =0x00000898
- adds r4, r0, r1
- bl sub_8059158
- cmp r0, 0
- bne _08059230
- ldr r0, _08059244 @ =gUnknown_3005040
- ldr r0, [r0]
- mov r8, r0
- ldr r0, _08059248 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0
- ldrsh r6, [r0, r2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _0805922C
- mov r12, r1
- ldr r2, _0805924C @ =gUnknown_2031DFC
- mov r9, r2
- lsls r7, r6, 1
-_080591FE:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r5, r0, 0x1
- cmp r1, r3
- bge _08059226
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_08059218:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _08059218
-_08059226:
- adds r0, r5, 0
- cmp r0, r12
- blt _080591FE
-_0805922C:
- bl sub_8059198
-_08059230:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805923C: .4byte gSaveBlock2Ptr
-_08059240: .4byte 0x00000898
-_08059244: .4byte gUnknown_3005040
-_08059248: .4byte gSaveBlock1Ptr
-_0805924C: .4byte gUnknown_2031DFC
- thumb_func_end sub_80591C4
-
- thumb_func_start sub_8059250
-sub_8059250: @ 8059250
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _0805929C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, _080592A0 @ =0x00000898
- adds r3, r0, r3
- str r3, [sp, 0x4]
- ldr r0, _080592A4 @ =gUnknown_3005040
- ldr r0, [r0]
- str r0, [sp]
- movs r4, 0
- mov r9, r4
- mov r8, r4
- ldr r0, _080592A8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r3, 0
- ldrsh r6, [r0, r3]
- str r6, [sp, 0x8]
- movs r4, 0x2
- ldrsh r5, [r0, r4]
- movs r7, 0xF
- movs r6, 0xE
- mov r12, r6
- cmp r1, 0x2
- beq _080592B6
- cmp r1, 0x2
- bgt _080592AC
- cmp r1, 0x1
- beq _080592BE
- b _080592D6
- .align 2, 0
-_0805929C: .4byte gSaveBlock2Ptr
-_080592A0: .4byte 0x00000898
-_080592A4: .4byte gUnknown_3005040
-_080592A8: .4byte gSaveBlock1Ptr
-_080592AC:
- cmp r2, 0x3
- beq _080592C8
- cmp r2, 0x4
- beq _080592D0
- b _080592D6
-_080592B6:
- adds r5, 0x1
- movs r0, 0xD
- mov r12, r0
- b _080592D6
-_080592BE:
- movs r1, 0x1
- mov r8, r1
- movs r3, 0xD
- mov r12, r3
- b _080592D6
-_080592C8:
- ldr r4, [sp, 0x8]
- adds r4, 0x1
- str r4, [sp, 0x8]
- b _080592D4
-_080592D0:
- movs r6, 0x1
- mov r9, r6
-_080592D4:
- movs r7, 0xE
-_080592D6:
- movs r1, 0
- cmp r1, r12
- bge _0805931A
- ldr r0, _08059330 @ =gUnknown_2031DFC
- mov r10, r0
-_080592E0:
- adds r4, r1, 0x1
- cmp r7, 0
- beq _08059314
- adds r0, r1, r5
- ldr r3, [sp]
- adds r2, r3, 0
- muls r2, r0
- add r1, r8
- lsls r0, r1, 4
- subs r0, r1
- add r0, r9
- ldr r6, [sp, 0x8]
- adds r2, r6, r2
- adds r3, r7, 0
- lsls r2, 1
- add r2, r10
- lsls r0, 1
- ldr r6, [sp, 0x4]
- adds r1, r0, r6
-_08059306:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08059306
-_08059314:
- adds r1, r4, 0
- cmp r1, r12
- blt _080592E0
-_0805931A:
- bl sub_8059198
- 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
-_08059330: .4byte gUnknown_2031DFC
- thumb_func_end sub_8059250
-
- thumb_func_start sub_8059334
-sub_8059334: @ 8059334
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- mov r8, r1
- cmp r7, 0
- blt _08059374
- ldr r1, _0805936C @ =gUnknown_3005040
- ldr r2, [r1]
- cmp r7, r2
- bge _08059374
- mov r0, r8
- cmp r0, 0
- blt _08059374
- ldr r0, [r1, 0x4]
- cmp r8, r0
- bge _08059374
- mov r0, r8
- muls r0, r2
- adds r0, r7, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08059370 @ =0x000003ff
- cmp r1, r0
- beq _08059422
- b _080593B0
- .align 2, 0
-_0805936C: .4byte gUnknown_3005040
-_08059370: .4byte 0x000003ff
-_08059374:
- ldr r0, _080593CC @ =gMapHeader
- ldr r6, [r0]
- subs r0, r7, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- mov r0, r8
- subs r0, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r0, r1
- ldr r1, _080593D0 @ =0x000003ff
- cmp r0, r1
- beq _08059422
-_080593B0:
- ldr r1, _080593D4 @ =gUnknown_3005040
- ldr r0, [r1]
- subs r0, 0x8
- cmp r7, r0
- blt _080593DC
- ldr r0, _080593D8 @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08059422
- movs r0, 0x4
- b _08059432
- .align 2, 0
-_080593CC: .4byte gMapHeader
-_080593D0: .4byte 0x000003ff
-_080593D4: .4byte gUnknown_3005040
-_080593D8: .4byte gUnknown_2036E24
-_080593DC:
- cmp r7, 0x6
- bgt _080593F4
- ldr r0, _080593F0 @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08059422
- movs r0, 0x3
- b _08059432
- .align 2, 0
-_080593F0: .4byte gUnknown_2036E24
-_080593F4:
- ldr r0, [r1, 0x4]
- subs r0, 0x7
- cmp r8, r0
- blt _08059410
- ldr r0, _0805940C @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08059422
- movs r0, 0x1
- b _08059432
- .align 2, 0
-_0805940C: .4byte gUnknown_2036E24
-_08059410:
- mov r0, r8
- cmp r0, 0x6
- bgt _08059430
- ldr r0, _08059428 @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0805942C
-_08059422:
- movs r0, 0x1
- negs r0, r0
- b _08059432
- .align 2, 0
-_08059428: .4byte gUnknown_2036E24
-_0805942C:
- movs r0, 0x2
- b _08059432
-_08059430:
- movs r0, 0
-_08059432:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8059334
-
- thumb_func_start GetPostCameraMoveMapBorderId
-GetPostCameraMoveMapBorderId: @ 805943C
- push {r4,lr}
- adds r3, r1, 0
- ldr r1, _08059460 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- movs r4, 0
- ldrsh r2, [r1, r4]
- adds r0, 0x7
- adds r2, r0
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- adds r3, 0x7
- adds r1, r3
- adds r0, r2, 0
- bl sub_8059334
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08059460: .4byte gSaveBlock1Ptr
- thumb_func_end GetPostCameraMoveMapBorderId
-
- thumb_func_start CanCameraMoveInDirection
-CanCameraMoveInDirection: @ 8059464
- push {r4,r5,lr}
- ldr r1, _0805949C @ =gSaveBlock1Ptr
- ldr r4, [r1]
- movs r1, 0
- ldrsh r3, [r4, r1]
- ldr r2, _080594A0 @ =gUnknown_826D2D8
- lsls r0, 3
- adds r1, r0, r2
- ldr r1, [r1]
- adds r1, 0x7
- adds r3, r1
- movs r5, 0x2
- ldrsh r1, [r4, r5]
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- adds r0, 0x7
- adds r1, r0
- adds r0, r3, 0
- bl sub_8059334
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080594A4
- movs r0, 0x1
- b _080594A6
- .align 2, 0
-_0805949C: .4byte gSaveBlock1Ptr
-_080594A0: .4byte gUnknown_826D2D8
-_080594A4:
- movs r0, 0
-_080594A6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CanCameraMoveInDirection
-
- thumb_func_start sub_80594AC
-sub_80594AC: @ 80594AC
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- cmp r4, 0x2
- beq _08059514
- cmp r4, 0x2
- bgt _080594CA
- cmp r4, 0x1
- beq _08059500
- b _08059526
-_080594CA:
- cmp r4, 0x3
- beq _080594E8
- cmp r4, 0x4
- bne _08059526
- ldr r0, _080594E4 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- negs r0, r6
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08059524
- .align 2, 0
-_080594E4: .4byte gSaveBlock1Ptr
-_080594E8:
- ldr r0, _080594FC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, [r3]
- ldr r0, [r0]
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08059524
- .align 2, 0
-_080594FC: .4byte gSaveBlock1Ptr
-_08059500:
- ldr r0, _08059510 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- negs r0, r7
- b _08059524
- .align 2, 0
-_08059510: .4byte gSaveBlock1Ptr
-_08059514:
- ldr r0, _0805952C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
-_08059524:
- strh r0, [r1, 0x2]
-_08059526:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805952C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80594AC
-
- thumb_func_start CameraMove
-CameraMove: @ 8059530
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r9, r1
- ldr r1, _08059570 @ =gUnknown_2036E18
- ldrb r0, [r1]
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- ldr r2, _08059570 @ =gUnknown_2036E18
- strb r1, [r2]
- mov r0, r10
- mov r1, r9
- bl GetPostCameraMoveMapBorderId
- adds r7, r0, 0
- adds r0, r7, 0x1
- cmp r0, 0x1
- bhi _08059578
- ldr r0, _08059574 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrh r0, [r1]
- add r0, r10
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- add r0, r9
- strh r0, [r1, 0x2]
- b _080595E2
- .align 2, 0
-_08059570: .4byte gUnknown_2036E18
-_08059574: .4byte gSaveBlock1Ptr
-_08059578:
- bl sub_80590D8
- ldr r1, _080595F8 @ =gSaveBlock1Ptr
- ldr r0, [r1]
- movs r2, 0
- ldrsh r5, [r0, r2]
- movs r1, 0x2
- ldrsh r6, [r0, r1]
- lsls r2, r7, 24
- lsrs r2, 24
- mov r8, r2
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8059600
- adds r4, r0, 0
- adds r1, r7, 0
- mov r2, r10
- mov r3, r9
- bl sub_80594AC
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- bl sub_8055864
- ldr r1, _080595FC @ =gUnknown_2036E18
- ldrb r0, [r1]
- movs r1, 0x1
- orrs r0, r1
- ldr r2, _080595FC @ =gUnknown_2036E18
- strb r0, [r2]
- ldr r0, _080595F8 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r2, 0
- ldrsh r0, [r1, r2]
- subs r5, r0
- ldr r0, _080595FC @ =gUnknown_2036E18
- str r5, [r0, 0x4]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- subs r6, r0
- ldr r0, _080595FC @ =gUnknown_2036E18
- str r6, [r0, 0x8]
- ldrh r0, [r1]
- add r0, r10
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- add r0, r9
- strh r0, [r1, 0x2]
- mov r0, r8
- bl sub_8059250
-_080595E2:
- ldr r0, _080595FC @ =gUnknown_2036E18
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080595F8: .4byte gSaveBlock1Ptr
-_080595FC: .4byte gUnknown_2036E18
- thumb_func_end CameraMove
-
- thumb_func_start sub_8059600
-sub_8059600: @ 8059600
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r1
- mov r8, r2
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0805963C @ =gMapHeader
- ldr r0, [r0, 0xC]
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r5, 0
- cmp r5, r7
- bge _08059648
-_0805961E:
- ldrb r0, [r4]
- cmp r0, r6
- bne _08059640
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- adds r3, r4, 0
- bl sub_8059658
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08059640
- adds r0, r4, 0
- b _0805964A
- .align 2, 0
-_0805963C: .4byte gMapHeader
-_08059640:
- adds r5, 0x1
- adds r4, 0xC
- cmp r5, r7
- blt _0805961E
-_08059648:
- movs r0, 0
-_0805964A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8059600
-
- thumb_func_start sub_8059658
-sub_8059658: @ 8059658
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- mov r8, r2
- adds r5, r3, 0
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r2, r0, 0
- cmp r4, 0x1
- blt _080596B0
- cmp r4, 0x2
- bgt _08059690
- ldr r0, _0805968C @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r0, [r2]
- ldr r2, [r0]
- ldr r3, [r5, 0x4]
- adds r0, r7, 0
- b _080596A2
- .align 2, 0
-_0805968C: .4byte gMapHeader
-_08059690:
- cmp r6, 0x4
- bgt _080596B0
- ldr r0, _080596AC @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- ldr r0, [r2]
- ldr r2, [r0, 0x4]
- ldr r3, [r5, 0x4]
- mov r0, r8
-_080596A2:
- bl sub_80596BC
- lsls r0, 24
- lsrs r0, 24
- b _080596B2
- .align 2, 0
-_080596AC: .4byte gMapHeader
-_080596B0:
- movs r0, 0
-_080596B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8059658
-
- thumb_func_start sub_80596BC
-sub_80596BC: @ 80596BC
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r2, 0
- adds r2, r3, 0
- cmp r3, 0
- bge _080596CA
- movs r3, 0
-_080596CA:
- adds r2, r0, r2
- cmp r2, r1
- bge _080596D2
- adds r1, r2, 0
-_080596D2:
- cmp r3, r4
- bgt _080596DE
- cmp r4, r1
- bgt _080596DE
- movs r0, 0x1
- b _080596E0
-_080596DE:
- movs r0, 0
-_080596E0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80596BC
-
- thumb_func_start sub_80596E8
-sub_80596E8: @ 80596E8
- push {lr}
- cmp r0, 0
- blt _080596F6
- cmp r0, r1
- bge _080596F6
- movs r0, 0x1
- b _080596F8
-_080596F6:
- movs r0, 0
-_080596F8:
- pop {r1}
- bx r1
- thumb_func_end sub_80596E8
-
- thumb_func_start sub_80596FC
-sub_80596FC: @ 80596FC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x1
- blt _08059734
- cmp r0, 0x2
- bgt _08059722
- ldr r0, [r4, 0x4]
- subs r0, r5, r0
- ldr r1, [r1]
- ldr r1, [r1]
- bl sub_80596E8
- b _08059736
-_08059722:
- cmp r0, 0x4
- bgt _08059734
- ldr r0, [r4, 0x4]
- subs r0, r6, r0
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- bl sub_80596E8
- b _08059736
-_08059734:
- movs r0, 0
-_08059736:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80596FC
-
- thumb_func_start sub_805973C
-sub_805973C: @ 805973C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0805975C @ =gMapHeader
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bne _08059764
- b _080597DA
- .align 2, 0
-_0805975C: .4byte gMapHeader
-_08059760:
- adds r0, r4, 0
- b _080597DC
-_08059764:
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r6, 0
- cmp r6, r7
- bge _080597DA
- lsls r0, r1, 16
- asrs r5, r0, 16
- mov r9, r2
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r10, r0
-_0805977C:
- ldrb r1, [r4]
- adds r3, r1, 0
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080597D2
- cmp r1, 0x2
- bne _08059792
- cmp r5, 0x6
- bgt _080597D2
-_08059792:
- cmp r1, 0x1
- bne _080597A2
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r0, 0x7
- cmp r5, r0
- blt _080597D2
-_080597A2:
- mov r0, r8
- lsls r2, r0, 16
- cmp r1, 0x3
- bne _080597B0
- mov r1, r10
- cmp r1, 0x6
- bgt _080597D2
-_080597B0:
- cmp r3, 0x4
- bne _080597C2
- asrs r1, r2, 16
- mov r3, r9
- ldr r0, [r3]
- ldr r0, [r0]
- adds r0, 0x7
- cmp r1, r0
- blt _080597D2
-_080597C2:
- asrs r1, r2, 16
- subs r1, 0x7
- adds r0, r4, 0
- subs r2, r5, 0x7
- bl sub_80596FC
- cmp r0, 0x1
- beq _08059760
-_080597D2:
- adds r6, 0x1
- adds r4, 0xC
- cmp r6, r7
- blt _0805977C
-_080597DA:
- movs r0, 0
-_080597DC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805973C
-
- thumb_func_start sub_80597EC
-sub_80597EC: @ 80597EC
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08059804 @ =gSaveBlock1Ptr
- ldr r2, [r2]
- subs r0, 0x7
- strh r0, [r2]
- subs r1, 0x7
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_08059804: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80597EC
-
- thumb_func_start sav1_camera_get_focus_coords
-sav1_camera_get_focus_coords: @ 8059808
- ldr r2, _0805981C @ =gSaveBlock1Ptr
- ldr r3, [r2]
- ldrh r2, [r3]
- adds r2, 0x7
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- adds r0, 0x7
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0805981C: .4byte gSaveBlock1Ptr
- thumb_func_end sav1_camera_get_focus_coords
-
- thumb_func_start SetCameraCoords
-SetCameraCoords: @ 8059820
- ldr r2, _0805982C @ =gSaveBlock1Ptr
- ldr r2, [r2]
- strh r0, [r2]
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_0805982C: .4byte gSaveBlock1Ptr
- thumb_func_end SetCameraCoords
-
- thumb_func_start GetCameraCoords
-GetCameraCoords: @ 8059830
- ldr r2, _08059840 @ =gSaveBlock1Ptr
- ldr r3, [r2]
- ldrh r2, [r3]
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08059840: .4byte gSaveBlock1Ptr
- thumb_func_end GetCameraCoords
-
- thumb_func_start copy_tileset_patterns_to_vram
-copy_tileset_patterns_to_vram: @ 8059844
- push {r4-r7,lr}
- sub sp, 0x4
- adds r3, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- lsls r2, 16
- lsrs r5, r2, 16
- adds r7, r5, 0
- cmp r3, 0
- beq _08059880
- ldrb r0, [r3]
- cmp r0, 0
- bne _08059870
- ldr r1, [r3, 0x4]
- lsls r2, r4, 21
- lsrs r2, 16
- movs r0, 0x2
- adds r3, r5, 0
- bl LoadBgTiles
- b _08059880
-_08059870:
- ldr r1, [r3, 0x4]
- lsls r2, r6, 5
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- adds r3, r7, 0
- bl sub_80F68F0
-_08059880:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end copy_tileset_patterns_to_vram
-
- thumb_func_start copy_tileset_patterns_to_vram2
-copy_tileset_patterns_to_vram2: @ 8059888
- push {r4-r7,lr}
- sub sp, 0x4
- adds r3, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- lsls r2, 16
- lsrs r5, r2, 16
- adds r7, r5, 0
- cmp r3, 0
- beq _080598C4
- ldrb r0, [r3]
- cmp r0, 0
- bne _080598B4
- ldr r1, [r3, 0x4]
- lsls r2, r4, 21
- lsrs r2, 16
- movs r0, 0x2
- adds r3, r5, 0
- bl LoadBgTiles
- b _080598C4
-_080598B4:
- ldr r1, [r3, 0x4]
- lsls r2, r6, 5
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- adds r3, r7, 0
- bl sub_80F69E8
-_080598C4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end copy_tileset_patterns_to_vram2
-
- thumb_func_start sub_80598CC
-sub_80598CC: @ 80598CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _080598EC @ =gUnknown_2036E28
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080598F0
- cmp r0, 0x1
- ble _0805993A
- cmp r0, 0x2
- beq _08059904
- cmp r0, 0x3
- beq _08059918
- b _0805993A
- .align 2, 0
-_080598EC: .4byte gUnknown_2036E28
-_080598F0:
- lsls r4, 1
- ldr r0, _08059900 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_GrayScale
- b _0805992C
- .align 2, 0
-_08059900: .4byte gPlttBufferUnfaded
-_08059904:
- lsls r4, 1
- ldr r0, _08059914 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_SepiaTone
- b _0805992C
- .align 2, 0
-_08059914: .4byte gPlttBufferUnfaded
-_08059918:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8111F38
- lsls r4, 1
- ldr r0, _08059940 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_GrayScale
-_0805992C:
- ldr r0, _08059940 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- ldr r1, _08059944 @ =gPlttBufferFaded
- adds r1, r4, r1
- adds r2, r5, 0
- bl CpuSet
-_0805993A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059940: .4byte gPlttBufferUnfaded
-_08059944: .4byte gPlttBufferFaded
- thumb_func_end sub_80598CC
-
- thumb_func_start sub_8059948
-sub_8059948: @ 8059948
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _08059968 @ =gUnknown_2036E28
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0805996C
- cmp r0, 0x1
- ble _080599B8
- cmp r0, 0x2
- beq _08059980
- cmp r0, 0x3
- beq _08059994
- b _080599B8
- .align 2, 0
-_08059968: .4byte gUnknown_2036E28
-_0805996C:
- lsls r4, 5
- ldr r0, _0805997C @ =gPlttBufferUnfaded
- adds r0, r4, r0
- lsls r1, r6, 4
- bl TintPalette_GrayScale
- b _080599AA
- .align 2, 0
-_0805997C: .4byte gPlttBufferUnfaded
-_08059980:
- lsls r4, 5
- ldr r0, _08059990 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- lsls r1, r6, 4
- bl TintPalette_SepiaTone
- b _080599AA
- .align 2, 0
-_08059990: .4byte gPlttBufferUnfaded
-_08059994:
- lsls r0, r4, 4
- lsls r5, r6, 4
- adds r1, r5, 0
- bl sub_8111F38
- lsls r4, 5
- ldr r0, _080599C0 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_GrayScale
-_080599AA:
- ldr r0, _080599C0 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- ldr r1, _080599C4 @ =gPlttBufferFaded
- adds r1, r4, r1
- lsls r2, r6, 3
- bl CpuFastSet
-_080599B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080599C0: .4byte gPlttBufferUnfaded
-_080599C4: .4byte gPlttBufferFaded
- thumb_func_end sub_8059948
-
- thumb_func_start apply_map_tileset_palette
-apply_map_tileset_palette: @ 80599C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- mov r8, r5
- lsls r6, r2, 16
- lsrs r7, r6, 16
- adds r2, r7, 0
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- cmp r4, 0
- beq _08059A46
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08059A1C
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x2
- bl LoadPalette
- ldr r0, [r4, 0x8]
- adds r0, 0x2
- adds r5, 0x1
- lsls r5, 16
- lsrs r5, 16
- subs r4, r7, 0x2
- lsls r2, r4, 16
- lsrs r2, 16
- adds r1, r5, 0
- bl LoadPalette
- lsls r4, 15
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80598CC
- b _08059A46
-_08059A1C:
- cmp r0, 0x1
- bne _08059A36
- ldr r0, [r4, 0x8]
- adds r0, 0xE0
- adds r1, r5, 0
- adds r2, r7, 0
- bl LoadPalette
- lsrs r1, r6, 17
- adds r0, r5, 0
- bl sub_80598CC
- b _08059A46
-_08059A36:
- ldr r0, [r4, 0x8]
- mov r1, r8
- bl LoadCompressedPalette
- lsrs r1, r6, 17
- mov r0, r8
- bl sub_80598CC
-_08059A46:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset_palette
-
- thumb_func_start sub_8059A54
-sub_8059A54: @ 8059A54
- push {lr}
- ldr r0, [r0, 0x10]
- movs r1, 0xA0
- lsls r1, 2
- movs r2, 0
- bl copy_tileset_patterns_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_8059A54
-
- thumb_func_start sub_8059A68
-sub_8059A68: @ 8059A68
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0xC0
- lsls r1, 1
- movs r2, 0xA0
- lsls r2, 2
- bl copy_tileset_patterns_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_8059A68
-
- thumb_func_start copy_map_tileset2_to_vram_2
-copy_map_tileset2_to_vram_2: @ 8059A7C
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0xC0
- lsls r1, 1
- movs r2, 0xA0
- lsls r2, 2
- bl copy_tileset_patterns_to_vram2
- pop {r0}
- bx r0
- thumb_func_end copy_map_tileset2_to_vram_2
-
- thumb_func_start sub_8059A90
-sub_8059A90: @ 8059A90
- push {lr}
- ldr r0, [r0, 0x10]
- movs r1, 0
- movs r2, 0xE0
- bl apply_map_tileset_palette
- pop {r0}
- bx r0
- thumb_func_end sub_8059A90
-
- thumb_func_start sub_8059AA0
-sub_8059AA0: @ 8059AA0
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0x70
- movs r2, 0xC0
- bl apply_map_tileset_palette
- pop {r0}
- bx r0
- thumb_func_end sub_8059AA0
-
- thumb_func_start copy_map_tileset1_tileset2_to_vram
-copy_map_tileset1_tileset2_to_vram: @ 8059AB0
- push {r4,r5,lr}
- adds r5, r0, 0
- cmp r5, 0
- beq _08059AD2
- ldr r0, [r5, 0x10]
- movs r4, 0xA0
- lsls r4, 2
- adds r1, r4, 0
- movs r2, 0
- bl copy_tileset_patterns_to_vram2
- ldr r0, [r5, 0x14]
- movs r1, 0xC0
- lsls r1, 1
- adds r2, r4, 0
- bl copy_tileset_patterns_to_vram2
-_08059AD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end copy_map_tileset1_tileset2_to_vram
-
- thumb_func_start apply_map_tileset1_tileset2_palette
-apply_map_tileset1_tileset2_palette: @ 8059AD8
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08059AEA
- bl sub_8059A90
- adds r0, r4, 0
- bl sub_8059AA0
-_08059AEA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset1_tileset2_palette
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
index 2497c695d..ac5ab0a72 100644
--- a/asm/fldeff_cut.s
+++ b/asm/fldeff_cut.s
@@ -380,7 +380,7 @@ sub_8097B50: @ 8097B50
asrs r0, 16
lsrs r7, r1, 16
asrs r1, 16
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
lsls r0, 16
lsrs r2, r0, 16
ldr r1, _08097B84 @ =gUnknown_83D4100
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 147bc65c0..43ec5eede 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -1459,8 +1459,8 @@ sub_80F2934: @ 80F2934
movs r1, 0x9
movs r3, 0xB
bl Overworld_SetWarpDestination
- bl sub_807E438
- bl sub_80559E4
+ bl DoWarp
+ bl ResetInitialPlayerAvatarState
add sp, 0x4
pop {r0}
bx r0
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index f9fb50cf7..bca296e67 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -967,7 +967,7 @@ _0812B98C: .4byte 0x00000829
_0812B990:
ldr r0, _0812B99C @ =0x00000169
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
b _0812BAF6
.align 2, 0
_0812B99C: .4byte 0x00000169
diff --git a/asm/item.s b/asm/item.s
index aa64e54fa..800df5f82 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -149,8 +149,8 @@ _08099E88: .4byte gSaveBlock1Ptr
_08099E8C: .4byte 0x0000054c
thumb_func_end sub_8099E44
- thumb_func_start sub_8099E90
-sub_8099E90: @ 8099E90
+ thumb_func_start CopyItemName
+CopyItemName: @ 8099E90
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
@@ -177,7 +177,7 @@ _08099EC4:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8099E90
+ thumb_func_end CopyItemName
thumb_func_start sub_8099ECC
sub_8099ECC: @ 8099ECC
@@ -252,8 +252,8 @@ _08099F3C:
bx r1
thumb_func_end sub_8099F08
- thumb_func_start sub_8099F40
-sub_8099F40: @ 8099F40
+ thumb_func_start CheckBagHasItem
+CheckBagHasItem: @ 8099F40
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -310,14 +310,14 @@ _08099FA6:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8099F40
+ thumb_func_end CheckBagHasItem
thumb_func_start sub_8099FAC
sub_8099FAC: @ 8099FAC
push {r4,lr}
ldr r0, _08099FC0 @ =0x0000016d
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -338,7 +338,7 @@ _08099FD4:
_08099FD6:
adds r0, r4, 0
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -360,8 +360,8 @@ _08099FF6:
_08099FFC: .4byte gSpecialVar_Result
thumb_func_end sub_8099FAC
- thumb_func_start sub_809A000
-sub_809A000: @ 809A000
+ thumb_func_start CheckBagHasSpace
+CheckBagHasSpace: @ 809A000
push {r4-r6,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -428,10 +428,10 @@ _0809A07C:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_809A000
+ thumb_func_end CheckBagHasSpace
- thumb_func_start sub_809A084
-sub_809A084: @ 809A084
+ thumb_func_start AddBagItem
+AddBagItem: @ 809A084
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -494,7 +494,7 @@ _0809A0F4:
lsls r4, 1
adds r0, r4, 0
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0809A132
@@ -522,7 +522,7 @@ _0809A132:
ldr r4, _0809A1B0 @ =0x0000016d
adds r0, r4, 0
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0809A174
@@ -595,10 +595,10 @@ _0809A1CC:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809A084
+ thumb_func_end AddBagItem
- thumb_func_start sub_809A1D8
-sub_809A1D8: @ 809A1D8
+ thumb_func_start RemoveBagItem
+RemoveBagItem: @ 809A1D8
push {r4-r7,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -667,7 +667,7 @@ _0809A25A:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809A1D8
+ thumb_func_end RemoveBagItem
thumb_func_start GetPocketByItemId
GetPocketByItemId: @ 809A260
@@ -832,8 +832,8 @@ _0809A35C:
_0809A370: .4byte gSaveBlock1Ptr
thumb_func_end sub_809A33C
- thumb_func_start sub_809A374
-sub_809A374: @ 809A374
+ thumb_func_start CheckPCHasItem
+CheckPCHasItem: @ 809A374
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
@@ -875,10 +875,10 @@ _0809A3C0:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_809A374
+ thumb_func_end CheckPCHasItem
- thumb_func_start sub_809A3C8
-sub_809A3C8: @ 809A3C8
+ thumb_func_start AddPCItem
+AddPCItem: @ 809A3C8
push {r4-r7,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -955,7 +955,7 @@ _0809A458:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809A3C8
+ thumb_func_end AddPCItem
thumb_func_start sub_809A460
sub_809A460: @ 809A460
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 58b74acf3..d08021d15 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -3237,7 +3237,7 @@ sub_810971C: @ 810971C
lsrs r0, 16
ldr r1, _081097D8 @ =gStringVar1
mov r10, r1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _081097DC @ =gStringVar4
mov r9, r0
adds r1, r6, 0
@@ -3725,7 +3725,7 @@ _08109AD4:
ldr r0, _08109BA8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _08109BAC @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _08109BB0 @ =gStringVar4
ldr r1, _08109BB4 @ =gUnknown_84162FF
adds r0, r6, 0
@@ -4125,7 +4125,7 @@ sub_8109EA8: @ 8109EA8
lsls r0, 16
lsrs r0, 16
ldr r1, _08109F30 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _08109F34 @ =gStringVar2
movs r2, 0x10
ldrsh r1, [r6, r2]
@@ -4200,7 +4200,7 @@ _08109F6E:
ldr r0, _08109FF4 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r7, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x6
bl sub_810BA3C
ldrb r0, [r7]
@@ -4447,7 +4447,7 @@ sub_810A18C: @ 810A18C
ldr r0, _0810A1BC @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0810A1C0 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r5, _0810A1C4 @ =gStringVar4
ldr r1, _0810A1C8 @ =gUnknown_841635E
adds r0, r5, 0
@@ -4969,7 +4969,7 @@ _0810A5B4:
bne _0810A5F8
ldrh r0, [r6]
ldr r1, _0810A5E8 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0810A5EC @ =gStringVar4
ldr r1, _0810A5F0 @ =gUnknown_84168F1
adds r0, r4, 0
@@ -5007,7 +5007,7 @@ _0810A610:
_0810A618:
ldrh r0, [r6]
ldr r1, _0810A644 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0810A648 @ =gStringVar4
ldr r1, _0810A64C @ =gUnknown_8416911
adds r0, r4, 0
@@ -5397,7 +5397,7 @@ sub_810A940: @ 810A940
ldr r0, _0810A9B8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0810A9BC @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _0810A9C0 @ =gStringVar3
ldr r0, _0810A9C4 @ =gUnknown_203ACFC
ldrb r0, [r0, 0x6]
@@ -5464,7 +5464,7 @@ sub_810A9D4: @ 810A9D4
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r3, _0810AAE0 @ =gSaveBlock1Ptr
ldr r4, [r3]
movs r7, 0xA4
@@ -5744,7 +5744,7 @@ sub_810AC40: @ 810AC40
ldr r5, _0810ACD0 @ =gSpecialVar_ItemId
ldrh r0, [r5]
ldrh r1, [r7, 0x10]
- bl sub_809A3C8
+ bl AddPCItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
@@ -5756,7 +5756,7 @@ sub_810AC40: @ 810AC40
bl sub_80A2294
ldrh r0, [r5]
ldr r1, _0810ACD8 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _0810ACDC @ =gStringVar2
movs r2, 0x10
ldrsh r1, [r7, r2]
@@ -5839,7 +5839,7 @@ _0810AD1E:
cmp r0, 0
beq _0810AD98
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
@@ -6120,10 +6120,10 @@ sub_810AF74: @ 810AF74
bl sub_810ADD8
movs r0, 0xD
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x4
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r2, _0810AF98 @ =sub_8030AEC
movs r0, 0x6
movs r1, 0
@@ -6317,27 +6317,27 @@ sub_810B108: @ 810B108
bl sub_810ADD8
movs r0, 0xD
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xE
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xB7
lsls r0, 1
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x4
movs r1, 0x5
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x3
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x8
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
cmp r4, 0x7
beq _0810B160
cmp r4, 0x8
diff --git a/asm/item_pc.s b/asm/item_pc.s
index b222b9ca2..8d36ccc81 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -1886,7 +1886,7 @@ sub_810E274: @ 810E274
lsls r0, 16
lsrs r0, 16
ldr r1, _0810E348 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _0810E34C @ =gStringVar4
ldr r1, _0810E350 @ =gUnknown_84162FF
adds r0, r6, 0
@@ -2036,7 +2036,7 @@ sub_810E418: @ 810E418
lsrs r4, r0, 16
ldrh r1, [r5, 0x10]
adds r0, r4, 0
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2048,7 +2048,7 @@ sub_810E418: @ 810E418
bl sub_80A2294
ldr r1, _0810E4A4 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _0810E4A8 @ =gStringVar2
movs r2, 0x10
ldrsh r1, [r5, r2]
@@ -2241,7 +2241,7 @@ sub_810E5E0: @ 810E5E0
lsrs r0, 16
ldr r6, _0810E660 @ =gStringVar1
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r5, _0810E664 @ =gStringVar4
ldr r1, _0810E668 @ =gUnknown_84177AC
adds r0, r5, 0
diff --git a/asm/item_use.s b/asm/item_use.s
index 558e175f2..fce57bc88 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -544,7 +544,7 @@ _080A13D4:
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r4, r2]
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
beq _080A13D0
@@ -1361,7 +1361,7 @@ sub_80A1A44: @ 80A1A44
ldr r4, _080A1A84 @ =gSpecialVar_ItemId
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldrh r0, [r4]
bl ItemId_GetPocket
lsls r0, 24
@@ -1374,7 +1374,7 @@ sub_80A1A44: @ 80A1A44
bl sub_81089F4
ldrh r0, [r4]
ldr r1, _080A1A88 @ =gStringVar2
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _080A1A8C @ =gStringVar4
ldr r1, _080A1A90 @ =gUnknown_841658C
bl StringExpandPlaceholders
@@ -1409,7 +1409,7 @@ sub_80A1A94: @ 80A1A94
bl FlagClear
ldrh r0, [r5]
ldr r1, _080A1AE4 @ =gStringVar2
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _080A1AE8 @ =gStringVar4
ldr r1, _080A1AEC @ =gUnknown_84165D2
bl StringExpandPlaceholders
@@ -1435,7 +1435,7 @@ _080A1AF4:
bl FlagClear
ldrh r0, [r5]
ldr r1, _080A1B34 @ =gStringVar2
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _080A1B38 @ =gStringVar4
ldr r1, _080A1B3C @ =gUnknown_8416600
bl StringExpandPlaceholders
@@ -1597,7 +1597,7 @@ sub_80A1C44: @ 80A1C44
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
bl sub_8085620
adds r0, r4, 0
bl DestroyTask
@@ -1844,7 +1844,7 @@ sub_80A1E1C: @ 80A1E1C
ldr r0, _080A1E44 @ =gSpecialVar_ItemId
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
bl sub_8108CB4
adds r0, r4, 0
bl sub_8108B50
@@ -1959,7 +1959,7 @@ sub_80A1EF4: @ 80A1EF4
bl PlaySE
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
adds r0, r4, 0
bl sub_8042DA4
adds r2, r0, 0
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index 08f81f729..1fa1aab8f 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -3259,7 +3259,7 @@ sub_80FEC54: @ 80FEC54
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _080FEC70
_080FEC62:
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index c5947ebc0..01e93a41d 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -3366,7 +3366,7 @@ sub_8117440: @ 8117440
str r5, [sp, 0x4]
movs r0, 0
mov r3, r8
- bl saved_warp2_set_2
+ bl SetDynamicWarpWithCoords
bl warp_in
add sp, 0x8
pop {r3}
@@ -11969,7 +11969,7 @@ _0811BADA:
str r0, [sp, 0x4]
movs r0, 0x19
adds r1, r4, 0
- bl sub_805E9F8
+ bl sprite_new
ldr r1, [sp, 0x8]
adds r5, r1, r5
strb r0, [r5]
diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s
index 1b406a74d..52c2b342c 100644
--- a/asm/map_obj_lock.s
+++ b/asm/map_obj_lock.s
@@ -101,7 +101,7 @@ _080695F6:
cmp r0, 0
bne _0806961E
ldr r2, _08069640 @ =gMapObjects
- ldr r0, _08069644 @ =gUnknown_3005074
+ ldr r0, _08069644 @ =gSelectedEventObject
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -133,7 +133,7 @@ _08069634:
.align 2, 0
_0806963C: .4byte gTasks
_08069640: .4byte gMapObjects
-_08069644: .4byte gUnknown_3005074
+_08069644: .4byte gSelectedEventObject
thumb_func_end sub_80695CC
thumb_func_start sub_8069648
@@ -159,7 +159,7 @@ _08069666:
thumb_func_start LockSelectedMapObject
LockSelectedMapObject: @ 806966C
push {r4,r5,lr}
- ldr r4, _080696B0 @ =gUnknown_3005074
+ ldr r4, _080696B0 @ =gSelectedEventObject
ldrb r0, [r4]
bl FreezeMapObjectsExceptOne
ldr r0, _080696B4 @ =sub_80695CC
@@ -191,7 +191,7 @@ _080696AA:
pop {r0}
bx r0
.align 2, 0
-_080696B0: .4byte gUnknown_3005074
+_080696B0: .4byte gSelectedEventObject
_080696B4: .4byte sub_80695CC
_080696B8: .4byte gMapObjects
_080696BC: .4byte gTasks
@@ -225,7 +225,7 @@ _080696EC: .4byte gMapObjects
sub_80696F0: @ 80696F0
push {r4,lr}
ldr r4, _08069738 @ =gMapObjects
- ldr r0, _0806973C @ =gUnknown_3005074
+ ldr r0, _0806973C @ =gSelectedEventObject
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -257,13 +257,13 @@ _0806970E:
bx r0
.align 2, 0
_08069738: .4byte gMapObjects
-_0806973C: .4byte gUnknown_3005074
+_0806973C: .4byte gSelectedEventObject
thumb_func_end sub_80696F0
thumb_func_start sub_8069740
sub_8069740: @ 8069740
push {lr}
- ldr r0, _0806975C @ =gUnknown_3005074
+ ldr r0, _0806975C @ =gSelectedEventObject
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -276,7 +276,7 @@ sub_8069740: @ 8069740
pop {r0}
bx r0
.align 2, 0
-_0806975C: .4byte gUnknown_3005074
+_0806975C: .4byte gSelectedEventObject
_08069760: .4byte gMapObjects
_08069764: .4byte gSpecialVar_Facing
thumb_func_end sub_8069740
@@ -284,7 +284,7 @@ _08069764: .4byte gSpecialVar_Facing
thumb_func_start sub_8069768
sub_8069768: @ 8069768
push {lr}
- ldr r0, _08069780 @ =gUnknown_3005074
+ ldr r0, _08069780 @ =gSelectedEventObject
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -295,7 +295,7 @@ sub_8069768: @ 8069768
pop {r0}
bx r0
.align 2, 0
-_08069780: .4byte gUnknown_3005074
+_08069780: .4byte gSelectedEventObject
_08069784: .4byte gMapObjects
thumb_func_end sub_8069768
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 3a0f709da..612672b93 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -334,7 +334,7 @@ itemid_80BF6D8_mail_related: @ 80BF6D8
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
beq _080BF6EE
bl InUnionRoom
@@ -360,7 +360,7 @@ _080BF702:
thumb_func_start sub_80BF708
sub_80BF708: @ 80BF708
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
beq _080BF71A
ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers
diff --git a/asm/overworld.s b/asm/overworld.s
index 5f1e198ac..679203034 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -72,7 +72,7 @@ sub_8054C48: @ 8054C48
bl sub_8054C04
adds r4, r0, 0
ldr r5, _08054C6C @ =gStringVar1
- bl sub_80CBF04
+ bl CountDigits
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -118,7 +118,7 @@ _08054C9C: .4byte gUnknown_826D29E
thumb_func_start sub_8054CA0
sub_8054CA0: @ 8054CA0
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -157,7 +157,7 @@ _08054D04: .4byte 0x0000404d
thumb_func_start sub_8054D08
sub_8054D08: @ 8054D08
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -196,7 +196,7 @@ _08054D6C: .4byte 0x0000404d
thumb_func_start sub_8054D70
sub_8054D70: @ 8054D70
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -235,7 +235,7 @@ _08054DD4: .4byte 0x0000404d
thumb_func_start sub_8054DD8
sub_8054DD8: @ 8054DD8
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -1084,8 +1084,8 @@ saved_warp2_set: @ 80553E8
_08055418: .4byte gSaveBlock1Ptr
thumb_func_end saved_warp2_set
- thumb_func_start saved_warp2_set_2
-saved_warp2_set_2: @ 805541C
+ thumb_func_start SetDynamicWarpWithCoords
+SetDynamicWarpWithCoords: @ 805541C
push {r4,r5,lr}
sub sp, 0x8
ldr r4, [sp, 0x14]
@@ -1112,7 +1112,7 @@ saved_warp2_set_2: @ 805541C
bx r0
.align 2, 0
_08055450: .4byte gSaveBlock1Ptr
- thumb_func_end saved_warp2_set_2
+ thumb_func_end SetDynamicWarpWithCoords
thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1
copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454
@@ -1185,8 +1185,8 @@ sub_80554BC: @ 80554BC
_080554C8: .4byte gUnknown_2031DBC
thumb_func_end sub_80554BC
- thumb_func_start sub_80554CC
-sub_80554CC: @ 80554CC
+ thumb_func_start SetLastHealLocationWarp
+SetLastHealLocationWarp: @ 80554CC
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
@@ -1218,7 +1218,7 @@ _08055500:
bx r0
.align 2, 0
_08055508: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80554CC
+ thumb_func_end SetLastHealLocationWarp
thumb_func_start sub_805550C
sub_805550C: @ 805550C
@@ -1281,7 +1281,7 @@ sub_805550C: @ 805550C
lsls r4, 24
asrs r4, 24
str r4, [sp]
- bl sub_80555A0
+ bl SetEscapeWarp
_08055590:
add sp, 0x4
pop {r4-r7}
@@ -1292,8 +1292,8 @@ _08055598: .4byte gUnknown_2031DBC
_0805559C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805550C
- thumb_func_start sub_80555A0
-sub_80555A0: @ 80555A0
+ thumb_func_start SetEscapeWarp
+SetEscapeWarp: @ 80555A0
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -1325,7 +1325,7 @@ sub_80555A0: @ 80555A0
bx r0
.align 2, 0
_080555DC: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80555A0
+ thumb_func_end SetEscapeWarp
thumb_func_start sub_80555E0
sub_80555E0: @ 80555E0
@@ -1342,8 +1342,8 @@ _080555F0: .4byte gUnknown_2031DBC
_080555F4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80555E0
- thumb_func_start sub_80555F8
-sub_80555F8: @ 80555F8
+ thumb_func_start SetFixedDiveWarp
+SetFixedDiveWarp: @ 80555F8
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -1373,7 +1373,7 @@ sub_80555F8: @ 80555F8
bx r0
.align 2, 0
_08055630: .4byte gUnknown_2031DC4
- thumb_func_end sub_80555F8
+ thumb_func_end SetFixedDiveWarp
thumb_func_start warp1_set_to_warp2
warp1_set_to_warp2: @ 8055634
@@ -1389,8 +1389,8 @@ _08055644: .4byte gUnknown_2031DBC
_08055648: .4byte gUnknown_2031DC4
thumb_func_end warp1_set_to_warp2
- thumb_func_start sub_805564C
-sub_805564C: @ 805564C
+ thumb_func_start SetFixedHoleWarp
+SetFixedHoleWarp: @ 805564C
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -1420,10 +1420,10 @@ sub_805564C: @ 805564C
bx r0
.align 2, 0
_08055684: .4byte gUnknown_2031DCC
- thumb_func_end sub_805564C
+ thumb_func_end SetFixedHoleWarp
- thumb_func_start sub_8055688
-sub_8055688: @ 8055688
+ thumb_func_start SetWarpDestinationToFixedHoleWarp
+SetWarpDestinationToFixedHoleWarp: @ 8055688
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 16
@@ -1464,7 +1464,7 @@ _080556D6:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8055688
+ thumb_func_end SetWarpDestinationToFixedHoleWarp
thumb_func_start warp1_set_to_sav1w
warp1_set_to_sav1w: @ 80556E0
@@ -1712,7 +1712,7 @@ sub_8055864: @ 8055864
adds r0, r5, 0
adds r1, r4, 0
bl sub_810C578
- bl sub_807B140
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sav1_reset_battle_music_maybe
@@ -1723,7 +1723,7 @@ sub_8055864: @ 8055864
ldr r0, [r4]
bl copy_map_tileset2_to_vram_2
ldr r0, [r4]
- bl sub_8059AA0
+ bl apply_map_tileset2_palette
movs r4, 0x7
_080558D4:
lsls r0, r4, 24
@@ -1784,7 +1784,7 @@ sub_8055920: @ 8055920
lsls r1, 16
lsrs r1, 16
bl sub_810C578
- bl sub_807B140
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
cmp r4, 0
beq _08055974
@@ -1817,7 +1817,7 @@ sub_80559A8: @ 80559A8
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
bl TrySetMapSaveWarpStatus
- bl sub_807B140
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sub_8110920
@@ -1830,8 +1830,8 @@ sub_80559A8: @ 80559A8
_080559E0: .4byte gMapHeader
thumb_func_end sub_80559A8
- thumb_func_start sub_80559E4
-sub_80559E4: @ 80559E4
+ thumb_func_start ResetInitialPlayerAvatarState
+ResetInitialPlayerAvatarState: @ 80559E4
ldr r0, _080559F4 @ =gUnknown_2031DD4
movs r2, 0
movs r1, 0x1
@@ -1841,7 +1841,7 @@ sub_80559E4: @ 80559E4
bx lr
.align 2, 0
_080559F4: .4byte gUnknown_2031DD4
- thumb_func_end sub_80559E4
+ thumb_func_end ResetInitialPlayerAvatarState
thumb_func_start sub_80559F8
sub_80559F8: @ 80559F8
@@ -2295,8 +2295,8 @@ sav1_get_flash_used_on_map: @ 8055D30
_08055D3C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_flash_used_on_map
- thumb_func_start sub_8055D40
-sub_8055D40: @ 8055D40
+ thumb_func_start SetCurrentMapLayout
+SetCurrentMapLayout: @ 8055D40
push {lr}
ldr r1, _08055D54 @ =gSaveBlock1Ptr
ldr r1, [r1]
@@ -2309,7 +2309,7 @@ sub_8055D40: @ 8055D40
.align 2, 0
_08055D54: .4byte gSaveBlock1Ptr
_08055D58: .4byte gMapHeader
- thumb_func_end sub_8055D40
+ thumb_func_end SetCurrentMapLayout
thumb_func_start sub_8055D5C
sub_8055D5C: @ 8055D5C
@@ -2464,15 +2464,15 @@ _08055E6C:
_08055E74: .4byte 0x00000131
thumb_func_end sub_8055DC4
- thumb_func_start sub_8055E78
-sub_8055E78: @ 8055E78
+ thumb_func_start Overworld_SetSavedMusic
+Overworld_SetSavedMusic: @ 8055E78
ldr r1, _08055E80 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x2C]
bx lr
.align 2, 0
_08055E80: .4byte gSaveBlock1Ptr
- thumb_func_end sub_8055E78
+ thumb_func_end Overworld_SetSavedMusic
thumb_func_start sav1_reset_battle_music_maybe
sav1_reset_battle_music_maybe: @ 8055E84
@@ -2573,8 +2573,8 @@ _08055F42:
bx r0
thumb_func_end Overworld_ChangeMusicToDefault
- thumb_func_start sub_8055F48
-sub_8055F48: @ 8055F48
+ thumb_func_start Overworld_ChangeMusicTo
+Overworld_ChangeMusicTo: @ 8055F48
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -2590,7 +2590,7 @@ _08055F62:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8055F48
+ thumb_func_end Overworld_ChangeMusicTo
thumb_func_start GetMapMusicFadeoutSpeed
GetMapMusicFadeoutSpeed: @ 8055F68
@@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420
bx r0
thumb_func_end sub_8056420
- thumb_func_start sub_805642C
-sub_805642C: @ 805642C
+ thumb_func_start is_c1_link_related_active
+is_c1_link_related_active: @ 805642C
push {lr}
ldr r0, _0805643C @ =gMain
ldr r1, [r0]
@@ -3243,7 +3243,7 @@ _08056444:
_08056446:
pop {r1}
bx r1
- thumb_func_end sub_805642C
+ thumb_func_end is_c1_link_related_active
thumb_func_start sub_805644C
sub_805644C: @ 805644C
@@ -3494,7 +3494,7 @@ CB2_NewGame: @ 8056644
bl StopMapMusic
bl sub_8056420
bl sub_8054A60
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
@@ -3662,7 +3662,7 @@ _080567D8: .4byte sub_80565B4
thumb_func_start c2_exit_to_overworld_2_switch
c2_exit_to_overworld_2_switch: @ 80567DC
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _080567F4
ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
@@ -4024,14 +4024,14 @@ _08056AEE:
_08056AF4:
ldr r0, _08056B00 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08056B62
.align 2, 0
_08056B00: .4byte gMapHeader
_08056B04:
ldr r0, _08056B10 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08056B62
.align 2, 0
_08056B10: .4byte gMapHeader
@@ -4166,14 +4166,14 @@ _08056C2A:
_08056C30:
ldr r0, _08056C3C @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08056CCA
.align 2, 0
_08056C3C: .4byte gMapHeader
_08056C40:
ldr r0, _08056C4C @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08056CCA
.align 2, 0
_08056C4C: .4byte gMapHeader
@@ -4355,14 +4355,14 @@ _08056DCA:
_08056DD0:
ldr r0, _08056DDC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08056E3E
.align 2, 0
_08056DDC: .4byte gMapHeader
_08056DE0:
ldr r0, _08056DEC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08056E3E
.align 2, 0
_08056DEC: .4byte gMapHeader
@@ -4690,7 +4690,7 @@ mli4_mapscripts_and_other: @ 805709C
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
- bl sav1_camera_get_focus_coords
+ bl GetCameraFocusCoords
bl sub_8055A6C
adds r5, r0, 0
mov r0, sp
@@ -4705,7 +4705,7 @@ mli4_mapscripts_and_other: @ 805709C
bl InitPlayerAvatar
ldrb r0, [r5]
bl SetPlayerAvatarTransitionFlags
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0
movs r1, 0
bl sub_805EC30
@@ -4792,7 +4792,7 @@ sub_8057178: @ 8057178
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
- bl sav1_camera_get_focus_coords
+ bl GetCameraFocusCoords
mov r2, sp
ldr r0, _080571A4 @ =gUnknown_300502C
ldrb r1, [r0]
@@ -4801,7 +4801,7 @@ sub_8057178: @ 8057178
lsls r0, 16
lsrs r0, 16
ldrh r1, [r4]
- bl sub_80597EC
+ bl SetCameraFocusCoords
add sp, 0x4
pop {r4}
pop {r0}
@@ -4820,7 +4820,7 @@ sub_80571A8: @ 80571A8
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
- bl sav1_camera_get_focus_coords
+ bl GetCameraFocusCoords
mov r3, sp
mov r2, sp
ldr r0, _08057224 @ =gUnknown_300502C
@@ -5066,14 +5066,14 @@ _080573C2:
_080573C8:
ldr r0, _080573D4 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08057412
.align 2, 0
_080573D4: .4byte gMapHeader
_080573D8:
ldr r0, _080573E4 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08057412
.align 2, 0
_080573E4: .4byte gMapHeader
@@ -5415,14 +5415,14 @@ _080576CC:
_080576D2:
ldr r0, _080576DC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _0805772A
.align 2, 0
_080576DC: .4byte gMapHeader
_080576E0:
ldr r0, _080576EC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _0805772A
.align 2, 0
_080576EC: .4byte gMapHeader
@@ -6144,7 +6144,7 @@ _08057C72:
bl sub_805833C
cmp r0, 0x1
bls _08057CA8
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _08057CA8
bl sub_800A00C
@@ -6748,7 +6748,7 @@ _08058074:
ldr r1, [r4, 0x8]
str r0, [sp]
str r1, [sp, 0x4]
- ldr r3, _080580E4 @ =gUnknown_826D2D8
+ ldr r3, _080580E4 @ =gDirectionToVectors
ldrb r0, [r4, 0x3]
lsls r0, 3
adds r0, r3
@@ -6801,7 +6801,7 @@ _080580E0:
ldr r0, _080580F8 @ =gUnknown_81BB9A3
b _08058122
.align 2, 0
-_080580E4: .4byte gUnknown_826D2D8
+_080580E4: .4byte gDirectionToVectors
_080580E8: .4byte 0xffff0000
_080580EC: .4byte 0x0000ffff
_080580F0: .4byte 0xffffff00
@@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0
thumb_func_start sub_8058244
sub_8058244: @ 8058244
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _08058252
movs r0, 0
@@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274
bl sub_800B248
cmp r0, 0x1
bls _080582D8
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _080582D8
bl sub_800A00C
@@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0
bl sub_805833C
cmp r0, 0x1
bls _08058304
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _08058304
bl sub_800A00C
@@ -7829,7 +7829,7 @@ _08058854:
bls _08058810
asrs r0, r3, 16
asrs r1, r5, 16
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
lsrs r0, 24
_0805886A:
diff --git a/asm/party_menu.s b/asm/party_menu.s
index c4980f984..c0e4a79f4 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -3383,7 +3383,7 @@ _08120468:
bl GetMonNickname
ldr r1, _081204A0 @ =gStringVar2
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _081204A4 @ =gStringVar4
ldr r1, _081204A8 @ =gUnknown_8416C2A
adds r0, r4, 0
@@ -3424,7 +3424,7 @@ sub_81204AC: @ 81204AC
bl GetMonNickname
ldr r1, _08120500 @ =gStringVar2
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _08120504 @ =gStringVar4
ldr r1, _08120508 @ =gUnknown_8416CAC
adds r0, r4, 0
@@ -3458,7 +3458,7 @@ sub_812050C: @ 812050C
bl GetMonNickname
ldr r1, _0812054C @ =gStringVar2
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _08120550 @ =gStringVar4
ldr r1, _08120554 @ =gUnknown_8416C49
adds r0, r4, 0
@@ -3502,10 +3502,10 @@ sub_8120558: @ 8120558
bl sub_8124B60
ldr r1, _081205B8 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r1, _081205BC @ =gStringVar2
adds r0, r5, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _081205C0 @ =gStringVar4
ldr r1, _081205C4 @ =gUnknown_8416CEA
adds r0, r4, 0
@@ -3582,7 +3582,7 @@ sub_8120610: @ 8120610
b _0812064E
_0812062C:
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
beq _0812064C
@@ -4298,7 +4298,7 @@ _08120B86:
lsls r0, 16
lsrs r1, r0, 16
adds r0, r5, 0
- bl pokemon_has_move
+ bl MonKnowsMove
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -9943,7 +9943,7 @@ _081237CC:
beq _081237F8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x9
ldrsb r0, [r5, r0]
mov r1, r8
@@ -10016,7 +10016,7 @@ sub_8123824: @ 8123824
bl sub_81205C8
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r1, _0812389C @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -10133,17 +10133,17 @@ _08123956:
ldr r5, _08123998 @ =gSpecialVar_ItemId
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r6, _0812399C @ =gUnknown_203B0D8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081239AC
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldrh r0, [r6]
bl sub_8120658
ldr r0, _081239A0 @ =gStringVar4
@@ -10330,10 +10330,10 @@ sub_8123ACC: @ 8123ACC
bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
mov r0, r8
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldrb r0, [r6, 0x8]
lsls r0, 28
lsrs r0, 28
@@ -10903,7 +10903,7 @@ _08123FAA:
lsrs r4, r0, 16
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12735,7 +12735,7 @@ sub_8124E48: @ 8124E48
bhi _08124EB0
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08124EB0:
mov r1, r8
ldr r0, [r1]
@@ -12828,7 +12828,7 @@ sub_8124EFC: @ 8124EFC
bhi _08124F7C
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08124F7C:
mov r1, r8
ldr r0, [r1]
@@ -13418,7 +13418,7 @@ _0812544C:
beq _0812547E
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
b _0812547E
.align 2, 0
_08125474: .4byte gUnknown_203B0C0
@@ -13963,7 +13963,7 @@ sub_8125898: @ 8125898
bl PlaySE
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r2, 0xE
ldrsh r1, [r5, r2]
adds r1, 0xD
@@ -14065,7 +14065,7 @@ _081259A0:
bl PlaySE
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0
ldrsh r1, [r7, r0]
adds r1, 0xD
@@ -14185,8 +14185,8 @@ _08125ABC:
bx r1
thumb_func_end sub_8125A90
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 8125AC0
+ thumb_func_start MonKnowsMove
+MonKnowsMove: @ 8125AC0
push {r4-r6,lr}
adds r6, r0, 0
lsls r1, 16
@@ -14212,7 +14212,7 @@ _08125AE8:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end pokemon_has_move
+ thumb_func_end MonKnowsMove
thumb_func_start sub_8125AF0
sub_8125AF0: @ 8125AF0
@@ -14406,7 +14406,7 @@ sub_8125C48: @ 8125C48
bhi _08125C84
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08125C84:
ldr r1, _08125CD8 @ =gStringVar1
adds r0, r5, 0
@@ -15276,7 +15276,7 @@ sub_8126350: @ 8126350
bl sub_8126440
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r1, _08126428 @ =gStringVar1
adds r0, r4, 0
bl GetMonNickname
@@ -16117,7 +16117,7 @@ _08126AB4:
ldr r0, _08126ADC @ =gSpecialVar_ItemId
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08126ABE:
ldr r1, _08126AE4 @ =gTasks
lsls r0, r4, 2
@@ -16269,7 +16269,7 @@ sub_8126BD4: @ 8126BD4
bl sub_80A2294
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
pop {r4,r5}
pop {r0}
bx r0
@@ -16971,7 +16971,7 @@ sub_812713C: @ 812713C
bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
adds r0, r7, 0
bl sub_81273AC
ldr r0, [r6]
@@ -17117,7 +17117,7 @@ _0812728E:
ldr r6, _081272C4 @ =gUnknown_203B0D8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081272CC
@@ -17240,7 +17240,7 @@ _0812739C: .4byte gUnknown_203B0A0
_081273A0:
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_081273A8:
pop {r0}
bx r0
@@ -17257,14 +17257,14 @@ sub_81273AC: @ 81273AC
beq _081273C8
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A3C8
+ bl AddPCItem
b _081273D0
.align 2, 0
_081273C4: .4byte gUnknown_203B0A0
_081273C8:
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_081273D0:
lsls r0, 24
lsrs r0, 24
diff --git a/asm/player_pc.s b/asm/player_pc.s
index c4eab0f30..4fea7bea1 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -25,7 +25,7 @@ _080EB672:
ldrh r0, [r0]
adds r1, r6
ldrh r1, [r1]
- bl sub_809A3C8
+ bl AddPCItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1649,7 +1649,7 @@ sub_80EC364: @ 80EC364
adds r5, r1, r0
ldrh r0, [r5, 0x20]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _080EC3B4
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 37f9e9762..c40afefde 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5151,7 +5151,7 @@ _0808E2E8:
adds r0, r1
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _0808E314
@@ -5504,7 +5504,7 @@ _0808E5E0:
adds r0, r1
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6643,7 +6643,7 @@ _0808EF56:
mov r0, sp
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_0808EF60:
add sp, 0x4
pop {r0}
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 8db247b2b..65fc2cb45 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -3587,7 +3587,7 @@ _08136338:
ldr r1, [r6]
ldr r2, _0813634C @ =0x00003074
adds r1, r2
- bl sub_8099E90
+ bl CopyItemName
_08136342:
add sp, 0x14
pop {r4-r7}
@@ -8431,7 +8431,7 @@ _08138B48: .4byte 0x00003208
thumb_func_start sub_8138B4C
sub_8138B4C: @ 8138B4C
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _08138B84
bl sub_811FA20
@@ -13239,7 +13239,7 @@ _0813B16C:
_0813B190: .4byte 0x000032f4
_0813B194: .4byte 0x00003210
_0813B198:
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _0813B1C4
ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
deleted file mode 100644
index e8ffcf3ab..000000000
--- a/asm/scrcmd.s
+++ /dev/null
@@ -1,5612 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8069ED0
-sub_8069ED0: @ 8069ED0
- movs r0, 0
- bx lr
- thumb_func_end sub_8069ED0
-
- thumb_func_start sub_8069ED4
-sub_8069ED4: @ 8069ED4
- movs r0, 0
- bx lr
- thumb_func_end sub_8069ED4
-
- thumb_func_start ScrCmd_end
-ScrCmd_end: @ 8069ED8
- push {lr}
- bl StopScript
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_end
-
- thumb_func_start ScrCmd_gotonative
-ScrCmd_gotonative: @ 8069EE4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_gotonative
-
- thumb_func_start sub_8069EFC
-sub_8069EFC: @ 8069EFC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 14
- ldr r1, _08069F18 @ =gSpecials
- adds r1, r0, r1
- ldr r0, _08069F1C @ =gStdScripts
- cmp r1, r0
- bcs _08069F20
- ldr r0, [r1]
- bl _call_via_r0
- b _08069F2C
- .align 2, 0
-_08069F18: .4byte gSpecials
-_08069F1C: .4byte gStdScripts
-_08069F20:
- ldr r0, _08069F34 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
- ldr r2, _08069F38 @ =gUnknown_83A7290 "0"
- movs r1, 0xF1
- movs r3, 0x1
- bl AGBAssert
-_08069F2C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08069F34: .4byte gUnknown_83A725C
-_08069F38: .4byte gUnknown_83A7290
- thumb_func_end sub_8069EFC
-
- thumb_func_start sub_8069F3C
-sub_8069F3C: @ 8069F3C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 14
- ldr r1, _08069F6C @ =gSpecials
- adds r1, r0, r1
- ldr r0, _08069F70 @ =gStdScripts
- cmp r1, r0
- bcs _08069F74
- ldr r0, [r1]
- bl _call_via_r0
- strh r0, [r5]
- b _08069F80
- .align 2, 0
-_08069F6C: .4byte gSpecials
-_08069F70: .4byte gStdScripts
-_08069F74:
- ldr r0, _08069F88 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
- ldr r1, _08069F8C @ =0x00000107
- ldr r2, _08069F90 @ =gUnknown_83A7290 "0"
- movs r3, 0x1
- bl AGBAssert
-_08069F80:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08069F88: .4byte gUnknown_83A725C
-_08069F8C: .4byte 0x00000107
-_08069F90: .4byte gUnknown_83A7290
- thumb_func_end sub_8069F3C
-
- thumb_func_start ScrCmd_callnative
-ScrCmd_callnative: @ 8069F94
- push {lr}
- bl ScriptReadWord
- bl _call_via_r0
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_callnative
-
- thumb_func_start sub_8069FA4
-sub_8069FA4: @ 8069FA4
- push {lr}
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8069FA4
-
- thumb_func_start ScrCmd_goto
-ScrCmd_goto: @ 8069FB0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- adds r0, r4, 0
- bl ScriptJump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_goto
-
- thumb_func_start ScrCmd_return
-ScrCmd_return: @ 8069FC8
- push {lr}
- bl ScriptReturn
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_return
-
- thumb_func_start ScrCmd_call
-ScrCmd_call: @ 8069FD4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- adds r0, r4, 0
- bl ScriptCall
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_call
-
- thumb_func_start ScrCmd_goto_if
-ScrCmd_goto_if: @ 8069FEC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r1, _0806A024 @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A01A
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptJump
-_0806A01A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A024: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_goto_if
-
- thumb_func_start ScrCmd_call_if
-ScrCmd_call_if: @ 806A028
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r1, _0806A060 @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A056
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptCall
-_0806A056:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A060: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_call_if
-
- thumb_func_start ScrCmd_setvaddress
-ScrCmd_setvaddress: @ 806A064
- push {r4,lr}
- ldr r4, [r0, 0x8]
- subs r4, 0x1
- bl ScriptReadWord
- ldr r1, _0806A07C @ =gUnknown_20370A8
- subs r0, r4
- str r0, [r1]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A07C: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_setvaddress
-
- thumb_func_start ScrCmd_vgoto
-ScrCmd_vgoto: @ 806A080
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806A0A0 @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl ScriptJump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A0A0: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_vgoto
-
- thumb_func_start ScrCmd_vcall
-ScrCmd_vcall: @ 806A0A4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806A0C4 @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl ScriptCall
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A0C4: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_vcall
-
- thumb_func_start ScrCmd_vgoto_if
-ScrCmd_vgoto_if: @ 806A0C8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- ldr r1, _0806A104 @ =gUnknown_20370A8
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, _0806A108 @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A0FA
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptJump
-_0806A0FA:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A104: .4byte gUnknown_20370A8
-_0806A108: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_vgoto_if
-
- thumb_func_start ScrCmd_vcall_if
-ScrCmd_vcall_if: @ 806A10C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- ldr r1, _0806A148 @ =gUnknown_20370A8
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, _0806A14C @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A13E
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptCall
-_0806A13E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A148: .4byte gUnknown_20370A8
-_0806A14C: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_vcall_if
-
- thumb_func_start ScrCmd_gotostd
-ScrCmd_gotostd: @ 806A150
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r2, 0x8]
- lsls r1, 2
- ldr r0, _0806A178 @ =gStdScripts
- adds r1, r0
- ldr r0, _0806A17C @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A170
- ldr r1, [r1]
- adds r0, r2, 0
- bl ScriptJump
-_0806A170:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806A178: .4byte gStdScripts
-_0806A17C: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_gotostd
-
- thumb_func_start ScrCmd_callstd
-ScrCmd_callstd: @ 806A180
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r2, 0x8]
- lsls r1, 2
- ldr r0, _0806A1A8 @ =gStdScripts
- adds r1, r0
- ldr r0, _0806A1AC @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A1A0
- ldr r1, [r1]
- adds r0, r2, 0
- bl ScriptCall
-_0806A1A0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806A1A8: .4byte gStdScripts
-_0806A1AC: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_callstd
-
- thumb_func_start ScrCmd_gotostd_if
-ScrCmd_gotostd_if: @ 806A1B0
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _0806A1F0 @ =gUnknown_83A7248
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A1E8
- lsls r0, r4, 2
- ldr r1, _0806A1F4 @ =gStdScripts
- adds r1, r0, r1
- ldr r0, _0806A1F8 @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A1E8
- ldr r1, [r1]
- adds r0, r3, 0
- bl ScriptJump
-_0806A1E8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A1F0: .4byte gUnknown_83A7248
-_0806A1F4: .4byte gStdScripts
-_0806A1F8: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_gotostd_if
-
- thumb_func_start ScrCmd_callstd_if
-ScrCmd_callstd_if: @ 806A1FC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _0806A23C @ =gUnknown_83A7248
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A234
- lsls r0, r4, 2
- ldr r1, _0806A240 @ =gStdScripts
- adds r1, r0, r1
- ldr r0, _0806A244 @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A234
- ldr r1, [r1]
- adds r0, r3, 0
- bl ScriptCall
-_0806A234:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A23C: .4byte gUnknown_83A7248
-_0806A240: .4byte gStdScripts
-_0806A244: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_callstd_if
-
- thumb_func_start ScrCmd_gotoram
-ScrCmd_gotoram: @ 806A248
- push {lr}
- ldr r1, _0806A258 @ =gUnknown_20370A4
- ldr r1, [r1]
- bl ScriptJump
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806A258: .4byte gUnknown_20370A4
- thumb_func_end ScrCmd_gotoram
-
- thumb_func_start ScrCmd_killscript
-ScrCmd_killscript: @ 806A25C
- push {r4,lr}
- adds r4, r0, 0
- bl ClearRamScript
- adds r0, r4, 0
- bl StopScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_killscript
-
- thumb_func_start ScrCmd_setmysteryeventstatus
-ScrCmd_setmysteryeventstatus: @ 806A274
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl SetMysteryEventScriptStatus
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmysteryeventstatus
-
- thumb_func_start sub_806A28C
-sub_806A28C: @ 806A28C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8069E48
- adds r2, r0, 0
- cmp r2, 0
- beq _0806A2A8
- ldr r1, _0806A2B0 @ =gUnknown_20370A4
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r0, r4, 0
- adds r1, r2, 0
- bl ScriptJump
-_0806A2A8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A2B0: .4byte gUnknown_20370A4
- thumb_func_end sub_806A28C
-
- thumb_func_start ScrCmd_loadword
-ScrCmd_loadword: @ 806A2B4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_loadword
-
- thumb_func_start ScrCmd_loadbytefromaddr
-ScrCmd_loadbytefromaddr: @ 806A2D8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- ldrb r0, [r0]
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_loadbytefromaddr
-
- thumb_func_start ScrCmd_writebytetoaddr
-ScrCmd_writebytetoaddr: @ 806A2FC
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadWord
- strb r4, [r0]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_writebytetoaddr
-
- thumb_func_start ScrCmd_loadbyte
-ScrCmd_loadbyte: @ 806A314
- ldr r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- lsls r3, 2
- adds r2, r0, 0
- adds r2, 0x64
- adds r2, r3
- ldrb r3, [r1]
- str r3, [r2]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end ScrCmd_loadbyte
-
- thumb_func_start ScrCmd_setptrbyte
-ScrCmd_setptrbyte: @ 806A330
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- ldr r1, [r4]
- strb r1, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setptrbyte
-
- thumb_func_start ScrCmd_copylocal
-ScrCmd_copylocal: @ 806A354
- ldr r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- lsls r3, 2
- adds r0, 0x64
- adds r3, r0, r3
- lsls r2, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0
- bx lr
- thumb_func_end ScrCmd_copylocal
-
- thumb_func_start ScrCmd_copybyte
-ScrCmd_copybyte: @ 806A374
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_copybyte
-
- thumb_func_start ScrCmd_setvar
-ScrCmd_setvar: @ 806A390
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl ScriptReadHalfword
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setvar
-
- thumb_func_start ScrCmd_copyvar
-ScrCmd_copyvar: @ 806A3B4
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r0, [r0]
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_copyvar
-
- thumb_func_start ScrCmd_setorcopyvar
-ScrCmd_setorcopyvar: @ 806A3E0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setorcopyvar
-
- thumb_func_start compare_012
-compare_012: @ 806A40C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, r1
- bcs _0806A41E
- movs r0, 0
- b _0806A428
-_0806A41E:
- cmp r0, r1
- beq _0806A426
- movs r0, 0x2
- b _0806A428
-_0806A426:
- movs r0, 0x1
-_0806A428:
- pop {r1}
- bx r1
- thumb_func_end compare_012
-
- thumb_func_start ScrCmd_compare_local_to_local
-ScrCmd_compare_local_to_local: @ 806A42C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, r4, 0
- adds r3, 0x64
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r3, r1
- ldrb r1, [r3]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_local
-
- thumb_func_start ScrCmd_compare_local_to_value
-ScrCmd_compare_local_to_value: @ 806A45C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_value
-
- thumb_func_start ScrCmd_compare_local_to_addr
-ScrCmd_compare_local_to_addr: @ 806A484
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r5, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_addr
-
- thumb_func_start ScrCmd_compare_addr_to_local
-ScrCmd_compare_addr_to_local: @ 806A4B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- lsls r2, 2
- adds r1, r4, 0
- adds r1, 0x64
- adds r1, r2
- ldrb r1, [r1]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_local
-
- thumb_func_start ScrCmd_compare_addr_to_value
-ScrCmd_compare_addr_to_value: @ 806A4DC
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_value
-
- thumb_func_start ScrCmd_compare_addr_to_addr
-ScrCmd_compare_addr_to_addr: @ 806A4FC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r5, [r0]
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_addr
-
- thumb_func_start ScrCmd_compare_var_to_value
-ScrCmd_compare_var_to_value: @ 806A520
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r5, [r0]
- adds r0, r4, 0
- bl ScriptReadHalfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_var_to_value
-
- thumb_func_start ScrCmd_compare_var_to_var
-ScrCmd_compare_var_to_var: @ 806A550
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r2, [r5]
- ldrh r1, [r0]
- adds r0, r2, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_var_to_var
-
- thumb_func_start ScrCmd_addvar
-ScrCmd_addvar: @ 806A584
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl ScriptReadHalfword
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_addvar
-
- thumb_func_start ScrCmd_subvar
-ScrCmd_subvar: @ 806A5AC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_subvar
-
- thumb_func_start ScrCmd_random
-ScrCmd_random: @ 806A5DC
- push {r4,r5,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r5, _0806A60C @ =gSpecialVar_Result
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A60C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_random
-
- thumb_func_start sub_806A610
-sub_806A610: @ 806A610
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A658 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A084
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r4, 0
- bl sub_809A824
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A658: .4byte gSpecialVar_Result
- thumb_func_end sub_806A610
-
- thumb_func_start ScrCmd_takeitem
-ScrCmd_takeitem: @ 806A65C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A69C @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A1D8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A69C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_takeitem
-
- thumb_func_start sub_806A6A0
-sub_806A6A0: @ 806A6A0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A6E0 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A000
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A6E0: .4byte gSpecialVar_Result
- thumb_func_end sub_806A6A0
-
- thumb_func_start sub_806A6E4
-sub_806A6E4: @ 806A6E4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A724 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8099F40
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A724: .4byte gSpecialVar_Result
- thumb_func_end sub_806A6E4
-
- thumb_func_start ScrCmd_checkitemtype
-ScrCmd_checkitemtype: @ 806A728
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806A750 @ =gSpecialVar_Result
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A750: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_checkitemtype
-
- thumb_func_start ScrCmd_givepcitem
-ScrCmd_givepcitem: @ 806A754
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _0806A794 @ =gSpecialVar_Result
- adds r0, r4, 0
- bl sub_809A3C8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A794: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givepcitem
-
- thumb_func_start ScrCmd_checkpcitem
-ScrCmd_checkpcitem: @ 806A798
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _0806A7D8 @ =gSpecialVar_Result
- adds r0, r4, 0
- bl sub_809A374
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A7D8: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_checkpcitem
-
- thumb_func_start sub_806A7DC
-sub_806A7DC: @ 806A7DC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A7DC
-
- thumb_func_start sub_806A7F0
-sub_806A7F0: @ 806A7F0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A7F0
-
- thumb_func_start sub_806A804
-sub_806A804: @ 806A804
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A804
-
- thumb_func_start sub_806A818
-sub_806A818: @ 806A818
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A818
-
- thumb_func_start ScrCmd_setflag
-ScrCmd_setflag: @ 806A82C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setflag
-
- thumb_func_start ScrCmd_clearflag
-ScrCmd_clearflag: @ 806A840
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagClear
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_clearflag
-
- thumb_func_start ScrCmd_checkflag
-ScrCmd_checkflag: @ 806A854
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checkflag
-
- thumb_func_start ScrCmd_incrementgamestat
-ScrCmd_incrementgamestat: @ 806A870
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl IncrementGameStat
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_incrementgamestat
-
- thumb_func_start sub_806A888
-sub_806A888: @ 806A888
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- adds r6, r0, 0
- adds r0, r4, 0
- bl GetGameStat
- cmp r0, r6
- bcs _0806A8AA
- movs r0, 0
- b _0806A8B4
-_0806A8AA:
- cmp r0, r6
- bne _0806A8B2
- movs r0, 0x1
- b _0806A8B4
-_0806A8B2:
- movs r0, 0x2
-_0806A8B4:
- strb r0, [r5, 0x2]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806A888
-
- thumb_func_start sub_806A8C0
-sub_806A8C0: @ 806A8C0
- push {r4,lr}
- bl ScriptReadHalfword
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8115748
- adds r0, r4, 0
- bl sub_80F85BC
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806A8C0
-
- thumb_func_start ScrCmd_animateflash
-ScrCmd_animateflash: @ 806A8E0
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sub_807F028
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_animateflash
-
- thumb_func_start ScrCmd_setflashradius
-ScrCmd_setflashradius: @ 806A8FC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl Overworld_SetFlashLevel
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setflashradius
-
- thumb_func_start sub_806A918
-sub_806A918: @ 806A918
- push {lr}
- ldr r0, _0806A92C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806A930
- movs r0, 0
- b _0806A932
- .align 2, 0
-_0806A92C: .4byte gPaletteFade
-_0806A930:
- movs r0, 0x1
-_0806A932:
- pop {r1}
- bx r1
- thumb_func_end sub_806A918
-
- thumb_func_start ScrCmd_fadescreen
-ScrCmd_fadescreen: @ 806A938
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x8]
- ldrb r0, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- movs r1, 0
- bl fade_screen
- ldr r1, _0806A95C @ =sub_806A918
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A95C: .4byte sub_806A918
- thumb_func_end ScrCmd_fadescreen
-
- thumb_func_start ScrCmd_fadescreenspeed
-ScrCmd_fadescreenspeed: @ 806A960
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- lsls r1, 24
- asrs r1, 24
- bl fade_screen
- ldr r1, _0806A98C @ =sub_806A918
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A98C: .4byte sub_806A918
- thumb_func_end ScrCmd_fadescreenspeed
-
- thumb_func_start RunPauseTimer
-RunPauseTimer: @ 806A990
- push {lr}
- ldr r1, _0806A9A4 @ =gUnknown_20370AE
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0806A9A8
- movs r0, 0
- b _0806A9AA
- .align 2, 0
-_0806A9A4: .4byte gUnknown_20370AE
-_0806A9A8:
- movs r0, 0x1
-_0806A9AA:
- pop {r1}
- bx r1
- thumb_func_end RunPauseTimer
-
- thumb_func_start ScrCmd_delay
-ScrCmd_delay: @ 806A9B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- ldr r1, _0806A9CC @ =gUnknown_20370AE
- strh r0, [r1]
- ldr r1, _0806A9D0 @ =RunPauseTimer
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A9CC: .4byte gUnknown_20370AE
-_0806A9D0: .4byte RunPauseTimer
- thumb_func_end ScrCmd_delay
-
- thumb_func_start sub_806A9D4
-sub_806A9D4: @ 806A9D4
- movs r0, 0
- bx lr
- thumb_func_end sub_806A9D4
-
- thumb_func_start sub_806A9D8
-sub_806A9D8: @ 806A9D8
- movs r0, 0
- bx lr
- thumb_func_end sub_806A9D8
-
- thumb_func_start sub_806A9DC
-sub_806A9DC: @ 806A9DC
- ldr r0, _0806A9F0 @ =gSpecialVar_0x8000
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0806A9F4 @ =gSpecialVar_0x8001
- strh r1, [r0]
- ldr r0, _0806A9F8 @ =gSpecialVar_0x8002
- strh r1, [r0]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806A9F0: .4byte gSpecialVar_0x8000
-_0806A9F4: .4byte gSpecialVar_0x8001
-_0806A9F8: .4byte gSpecialVar_0x8002
- thumb_func_end sub_806A9DC
-
- thumb_func_start ScrCmd_setweather
-ScrCmd_setweather: @ 806A9FC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl SetSav1Weather
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setweather
-
- thumb_func_start ScrCmd_resetweather
-ScrCmd_resetweather: @ 806AA18
- push {lr}
- bl sub_807B140
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_resetweather
-
- thumb_func_start ScrCmd_doweather
-ScrCmd_doweather: @ 806AA24
- push {lr}
- bl DoCurrentWeather
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_doweather
-
- thumb_func_start ScrCmd_setstepcallback
-ScrCmd_setstepcallback: @ 806AA30
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl ActivatePerStepCallback
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setstepcallback
-
- thumb_func_start ScrCmd_setmaplayoutindex
-ScrCmd_setmaplayoutindex: @ 806AA48
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8055D40
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmaplayoutindex
-
- thumb_func_start ScrCmd_warp
-ScrCmd_warp: @ 806AA64
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sub_807E438
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warp
-
- thumb_func_start ScrCmd_warpsilent
-ScrCmd_warpsilent: @ 806AAEC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sp13E_warp_to_last_warp
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warpsilent
-
- thumb_func_start ScrCmd_warpdoor
-ScrCmd_warpdoor: @ 806AB74
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sub_807E4DC
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warpdoor
-
- thumb_func_start ScrCmd_warphole
-ScrCmd_warphole: @ 806ABFC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, [r0, 0x8]
- ldrb r6, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl PlayerGetDestCoords
- cmp r6, 0xFF
- bne _0806AC3A
- cmp r5, 0xFF
- bne _0806AC3A
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8055688
- b _0806AC5E
-_0806AC3A:
- lsls r0, r6, 24
- asrs r0, 24
- lsls r1, r5, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- add r3, sp, 0x4
- ldrb r3, [r3]
- subs r3, 0x7
- lsls r3, 24
- asrs r3, 24
- ldrb r4, [r4]
- subs r4, 0x7
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl Overworld_SetWarpDestination
-_0806AC5E:
- bl sp13F_fall_to_last_warp
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warphole
-
- thumb_func_start sub_806AC70
-sub_806AC70: @ 806AC70
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sub_807E59C
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806AC70
-
- thumb_func_start sub_806ACF8
-sub_806ACF8: @ 806ACF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805DAE4
- bl sub_807E500
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806ACF8
-
- thumb_func_start ScrCmd_setwarp
-ScrCmd_setwarp: @ 806AD8C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setwarp
-
- thumb_func_start ScrCmd_setdynamicwarp
-ScrCmd_setdynamicwarp: @ 806AE0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r1, r9
- mov r2, r8
- adds r3, r6, 0
- bl saved_warp2_set_2
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdynamicwarp
-
- thumb_func_start sub_806AE90
-sub_806AE90: @ 806AE90
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_80555F8
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806AE90
-
- thumb_func_start sub_806AF10
-sub_806AF10: @ 806AF10
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_805564C
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806AF10
-
- thumb_func_start ScrCmd_setescapewarp
-ScrCmd_setescapewarp: @ 806AF90
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_80555A0
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setescapewarp
-
- thumb_func_start ScrCmd_getplayerxy
-ScrCmd_getplayerxy: @ 806B010
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldr r2, _0806B048 @ =gSaveBlock1Ptr
- ldr r1, [r2]
- ldrh r1, [r1]
- strh r1, [r5]
- ldr r1, [r2]
- ldrh r1, [r1, 0x2]
- strh r1, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B048: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_getplayerxy
-
- thumb_func_start ScrCmd_getpartysize
-ScrCmd_getpartysize: @ 806B04C
- push {r4,lr}
- ldr r4, _0806B064 @ =gSpecialVar_Result
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B064: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_getpartysize
-
- thumb_func_start ScrCmd_playse
-ScrCmd_playse: @ 806B068
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_playse
-
- thumb_func_start WaitForSoundEffectFinish
-WaitForSoundEffectFinish: @ 806B07C
- push {lr}
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0806B08C
- movs r0, 0
- b _0806B08E
-_0806B08C:
- movs r0, 0x1
-_0806B08E:
- pop {r1}
- bx r1
- thumb_func_end WaitForSoundEffectFinish
-
- thumb_func_start sub_806B094
-sub_806B094: @ 806B094
- push {lr}
- ldr r1, _0806B0A4 @ =WaitForSoundEffectFinish
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806B0A4: .4byte WaitForSoundEffectFinish
- thumb_func_end sub_806B094
-
- thumb_func_start ScrCmd_playfanfare
-ScrCmd_playfanfare: @ 806B0A8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl PlayFanfare
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_playfanfare
-
- thumb_func_start WaitForFanfareFinish
-WaitForFanfareFinish: @ 806B0BC
- push {lr}
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end WaitForFanfareFinish
-
- thumb_func_start sub_806B0CC
-sub_806B0CC: @ 806B0CC
- push {lr}
- ldr r1, _0806B0DC @ =WaitForFanfareFinish
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806B0DC: .4byte WaitForFanfareFinish
- thumb_func_end sub_806B0CC
-
- thumb_func_start sub_806B0E0
-sub_806B0E0: @ 806B0E0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r1, r0, 16
- adds r5, r1, 0
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _0806B11C @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B114
- cmp r2, 0x1
- bne _0806B10E
- adds r0, r1, 0
- bl sub_8055E78
-_0806B10E:
- adds r0, r5, 0
- bl PlayNewMapMusic
-_0806B114:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B11C: .4byte gUnknown_203ADFA
- thumb_func_end sub_806B0E0
-
- thumb_func_start sub_806B120
-sub_806B120: @ 806B120
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl sub_8055E78
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B120
-
- thumb_func_start sub_806B134
-sub_806B134: @ 806B134
- push {lr}
- ldr r0, _0806B150 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B148
- bl Overworld_ChangeMusicToDefault
-_0806B148:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B150: .4byte gUnknown_203ADFA
- thumb_func_end sub_806B134
-
- thumb_func_start sub_806B154
-sub_806B154: @ 806B154
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0806B178 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B172
- adds r0, r1, 0
- bl sub_8055F48
-_0806B172:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B178: .4byte gUnknown_203ADFA
- thumb_func_end sub_806B154
-
- thumb_func_start sub_806B17C
-sub_806B17C: @ 806B17C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _0806B19C @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806B1A0
- movs r0, 0
- b _0806B1BE
- .align 2, 0
-_0806B19C: .4byte gUnknown_203ADFA
-_0806B1A0:
- cmp r1, 0
- beq _0806B1AE
- lsls r0, r1, 26
- lsrs r0, 24
- bl FadeOutBGMTemporarily
- b _0806B1B4
-_0806B1AE:
- movs r0, 0x4
- bl FadeOutBGMTemporarily
-_0806B1B4:
- ldr r1, _0806B1C4 @ =IsBGMPausedOrStopped
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
-_0806B1BE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B1C4: .4byte IsBGMPausedOrStopped
- thumb_func_end sub_806B17C
-
- thumb_func_start sub_806B1C8
-sub_806B1C8: @ 806B1C8
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _0806B1F0 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B1FA
- cmp r2, 0
- beq _0806B1F4
- lsls r0, r2, 26
- lsrs r0, 24
- bl FadeInBGM
- b _0806B1FA
- .align 2, 0
-_0806B1F0: .4byte gUnknown_203ADFA
-_0806B1F4:
- movs r0, 0x4
- bl FadeInBGM
-_0806B1FA:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B1C8
-
- thumb_func_start ScrCmd_applymovement
-ScrCmd_applymovement: @ 806B200
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadWord
- adds r3, r0, 0
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, _0806B23C @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl ScriptMovement_StartObjectMovementScript
- ldr r0, _0806B240 @ =gUnknown_20370B0
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B23C: .4byte gSaveBlock1Ptr
-_0806B240: .4byte gUnknown_20370B0
- thumb_func_end ScrCmd_applymovement
-
- thumb_func_start ScrCmd_applymovement_at
-ScrCmd_applymovement_at: @ 806B244
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadWord
- adds r3, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- lsls r0, r4, 24
- lsrs r0, 24
- bl ScriptMovement_StartObjectMovementScript
- ldr r0, _0806B284 @ =gUnknown_20370B0
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B284: .4byte gUnknown_20370B0
- thumb_func_end ScrCmd_applymovement_at
-
- thumb_func_start WaitForMovementFinish
-WaitForMovementFinish: @ 806B288
- push {lr}
- ldr r0, _0806B2A4 @ =gUnknown_20370B0
- ldrb r0, [r0]
- ldr r1, _0806B2A8 @ =gUnknown_20370B4
- ldrb r1, [r1]
- ldr r2, _0806B2AC @ =gUnknown_20370B2
- ldrb r2, [r2]
- bl ScriptMovement_IsObjectMovementFinished
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806B2A4: .4byte gUnknown_20370B0
-_0806B2A8: .4byte gUnknown_20370B4
-_0806B2AC: .4byte gUnknown_20370B2
- thumb_func_end WaitForMovementFinish
-
- thumb_func_start ScrCmd_waitmovement
-ScrCmd_waitmovement: @ 806B2B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806B2CC
- ldr r0, _0806B2F0 @ =gUnknown_20370B0
- strh r1, [r0]
-_0806B2CC:
- ldr r1, _0806B2F4 @ =gUnknown_20370B2
- ldr r0, _0806B2F8 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, _0806B2FC @ =gUnknown_20370B4
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, _0806B300 @ =WaitForMovementFinish
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B2F0: .4byte gUnknown_20370B0
-_0806B2F4: .4byte gUnknown_20370B2
-_0806B2F8: .4byte gSaveBlock1Ptr
-_0806B2FC: .4byte gUnknown_20370B4
-_0806B300: .4byte WaitForMovementFinish
- thumb_func_end ScrCmd_waitmovement
-
- thumb_func_start ScrCmd_waitmovement_at
-ScrCmd_waitmovement_at: @ 806B304
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806B320
- ldr r0, _0806B348 @ =gUnknown_20370B0
- strh r1, [r0]
-_0806B320:
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _0806B34C @ =gUnknown_20370B2
- strh r2, [r0]
- ldr r0, _0806B350 @ =gUnknown_20370B4
- strh r1, [r0]
- ldr r1, _0806B354 @ =WaitForMovementFinish
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B348: .4byte gUnknown_20370B0
-_0806B34C: .4byte gUnknown_20370B2
-_0806B350: .4byte gUnknown_20370B4
-_0806B354: .4byte WaitForMovementFinish
- thumb_func_end ScrCmd_waitmovement_at
-
- thumb_func_start ScrCmd_removeobject
-ScrCmd_removeobject: @ 806B358
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B37C @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B37C: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_removeobject
-
- thumb_func_start ScrCmd_removeobject_at
-ScrCmd_removeobject_at: @ 806B380
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_removeobject_at
-
- thumb_func_start ScrCmd_addobject
-ScrCmd_addobject: @ 806B3B0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B3D4 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B3D4: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_addobject
-
- thumb_func_start ScrCmd_addobject_at
-ScrCmd_addobject_at: @ 806B3D8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl show_sprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_addobject_at
-
- thumb_func_start ScrCmd_setobjectxy
-ScrCmd_setobjectxy: @ 806B408
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0806B46C @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- lsls r4, 16
- asrs r4, 16
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- adds r3, r4, 0
- bl sub_805F7C4
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B46C: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_setobjectxy
-
- thumb_func_start ScrCmd_setobjectxyperm
-ScrCmd_setobjectxyperm: @ 806B470
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r2, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl Overworld_SetMapObjTemplateCoords
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setobjectxyperm
-
- thumb_func_start ScrCmd_moveobjectoffscreen
-ScrCmd_moveobjectoffscreen: @ 806B4C8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B4EC @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_805FE94
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B4EC: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_moveobjectoffscreen
-
- thumb_func_start ScrCmd_showobject_at
-ScrCmd_showobject_at: @ 806B4F0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- bl npc_by_local_id_and_map_set_field_1_bit_x20
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_showobject_at
-
- thumb_func_start ScrCmd_hideobject_at
-ScrCmd_hideobject_at: @ 806B520
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- bl npc_by_local_id_and_map_set_field_1_bit_x20
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hideobject_at
-
- thumb_func_start ScrCmd_setobjectpriority
-ScrCmd_setobjectpriority: @ 806B550
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r5, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r5, 0x8]
- ldrb r1, [r3]
- adds r4, r3, 0x1
- str r4, [r5, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r5, 0x8]
- lsls r0, 24
- lsrs r0, 24
- adds r3, 0x53
- lsls r3, 24
- lsrs r3, 24
- bl sub_805F3A8
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setobjectpriority
-
- thumb_func_start ScrCmd_resetobjectpriority
-ScrCmd_resetobjectpriority: @ 806B58C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_805F400
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_resetobjectpriority
-
- thumb_func_start ScrCmd_faceplayer
-ScrCmd_faceplayer: @ 806B5BC
- push {r4,lr}
- ldr r2, _0806B5EC @ =gMapObjects
- ldr r0, _0806B5F0 @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _0806B5E4
- bl player_get_direction_lower_nybble
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectFaceOppositeDirection
-_0806B5E4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B5EC: .4byte gMapObjects
-_0806B5F0: .4byte gUnknown_3005074
- thumb_func_end ScrCmd_faceplayer
-
- thumb_func_start ScrCmd_turnobject
-ScrCmd_turnobject: @ 806B5F4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, [r4, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B624 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl FieldObjectTurnByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B624: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_turnobject
-
- thumb_func_start ScrCmd_setobjectmovementtype
-ScrCmd_setobjectmovementtype: @ 806B628
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl Overworld_SetMapObjTemplateMovementType
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setobjectmovementtype
-
- thumb_func_start ScrCmd_createvobject
-ScrCmd_createvobject: @ 806B650
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r3, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- lsls r4, 16
- asrs r4, 16
- lsls r3, 16
- asrs r3, 16
- str r2, [sp]
- str r1, [sp, 0x4]
- mov r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_805E9F8
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_createvobject
-
- thumb_func_start ScrCmd_turnvobject
-ScrCmd_turnvobject: @ 806B6C0
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl sub_8069058
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_turnvobject
-
- thumb_func_start ScrCmd_lockall
-ScrCmd_lockall: @ 806B6DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805642C
- cmp r0, 0
- bne _0806B6FC
- bl ScriptFreezeMapObjects
- ldr r1, _0806B6F8 @ =sub_8069590
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- b _0806B6FE
- .align 2, 0
-_0806B6F8: .4byte sub_8069590
-_0806B6FC:
- movs r0, 0
-_0806B6FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_lockall
-
- thumb_func_start ScrCmd_lock
-ScrCmd_lock: @ 806B704
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805642C
- cmp r0, 0
- beq _0806B714
- movs r0, 0
- b _0806B752
-_0806B714:
- ldr r2, _0806B738 @ =gMapObjects
- ldr r0, _0806B73C @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0806B744
- bl LockSelectedMapObject
- ldr r1, _0806B740 @ =sub_8069648
- adds r0, r4, 0
- bl SetupNativeScript
- b _0806B750
- .align 2, 0
-_0806B738: .4byte gMapObjects
-_0806B73C: .4byte gUnknown_3005074
-_0806B740: .4byte sub_8069648
-_0806B744:
- bl ScriptFreezeMapObjects
- ldr r1, _0806B758 @ =sub_8069590
- adds r0, r4, 0
- bl SetupNativeScript
-_0806B750:
- movs r0, 0x1
-_0806B752:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B758: .4byte sub_8069590
- thumb_func_end ScrCmd_lock
-
- thumb_func_start ScrCmd_releaseall
-ScrCmd_releaseall: @ 806B75C
- push {lr}
- bl HideFieldMessageBox
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0806B790 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80974D8
- bl UnfreezeMapObjects
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B790: .4byte gMapObjects
- thumb_func_end ScrCmd_releaseall
-
- thumb_func_start ScrCmd_release
-ScrCmd_release: @ 806B794
- push {r4,lr}
- bl HideFieldMessageBox
- ldr r4, _0806B7E4 @ =gMapObjects
- ldr r0, _0806B7E8 @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0806B7B6
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
-_0806B7B6:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80974D8
- bl UnfreezeMapObjects
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B7E4: .4byte gMapObjects
-_0806B7E8: .4byte gUnknown_3005074
- thumb_func_end ScrCmd_release
-
- thumb_func_start sub_806B7EC
-sub_806B7EC: @ 806B7EC
- ldr r2, _0806B804 @ =gUnknown_20370DC
- ldr r3, _0806B808 @ =gUnknown_20370DA
- ldrh r1, [r3]
- strh r1, [r2]
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- strh r2, [r3]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806B804: .4byte gUnknown_20370DC
-_0806B808: .4byte gUnknown_20370DA
- thumb_func_end sub_806B7EC
-
- thumb_func_start sub_806B80C
-sub_806B80C: @ 806B80C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0806B81A
- ldr r0, [r4, 0x64]
-_0806B81A:
- bl ShowFieldMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B80C
-
- thumb_func_start sub_806B828
-sub_806B828: @ 806B828
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0806B836
- ldr r0, [r4, 0x64]
-_0806B836:
- bl sub_80F7974
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B828
-
- thumb_func_start sub_806B850
-sub_806B850: @ 806B850
- push {lr}
- bl sub_80F7998
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B850
-
- thumb_func_start sub_806B85C
-sub_806B85C: @ 806B85C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0806B86A
- ldr r0, [r4, 0x64]
-_0806B86A:
- bl ShowFieldAutoScrollMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B85C
-
- thumb_func_start sub_806B878
-sub_806B878: @ 806B878
- push {lr}
- ldr r1, _0806B888 @ =IsFieldMessageBoxHidden
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806B888: .4byte IsFieldMessageBoxHidden
- thumb_func_end sub_806B878
-
- thumb_func_start sub_806B88C
-sub_806B88C: @ 806B88C
- push {lr}
- bl HideFieldMessageBox
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B88C
-
- thumb_func_start sub_806B898
-sub_806B898: @ 806B898
- push {r4,lr}
- ldr r0, _0806B8F0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806B922
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806B922
- ldr r4, _0806B8F4 @ =gUnknown_3005070
- ldr r0, [r4]
- bl sub_806B93C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B906
- ldr r0, [r4]
- bl sub_806B96C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8069998
- cmp r4, 0
- beq _0806B906
- ldr r0, _0806B8F8 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0806B906
- bl sub_80699F8
- adds r0, r4, 0
- subs r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B8FC
- bl sub_8069964
- b _0806B922
- .align 2, 0
-_0806B8F0: .4byte gMain
-_0806B8F4: .4byte gUnknown_3005070
-_0806B8F8: .4byte gUnknown_203ADFA
-_0806B8FC:
- bl sub_80699A4
- bl sub_8069970
- b _0806B922
-_0806B906:
- bl sub_8112CAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806B91A
- ldr r0, _0806B928 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0806B934
-_0806B91A:
- ldr r1, _0806B92C @ =gUnknown_20370AC
- ldrb r0, [r1]
- cmp r0, 0x78
- bne _0806B930
-_0806B922:
- movs r0, 0x1
- b _0806B936
- .align 2, 0
-_0806B928: .4byte gUnknown_203ADFA
-_0806B92C: .4byte gUnknown_20370AC
-_0806B930:
- adds r0, 0x1
- strb r0, [r1]
-_0806B934:
- movs r0, 0
-_0806B936:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B898
-
- thumb_func_start sub_806B93C
-sub_806B93C: @ 806B93C
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0806B958
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 2
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1
- ldr r0, [r0]
- ldrb r0, [r0]
-_0806B958:
- subs r0, 0x6B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806B966
- movs r0, 0x1
- b _0806B968
-_0806B966:
- movs r0, 0
-_0806B968:
- pop {r1}
- bx r1
- thumb_func_end sub_806B93C
-
- thumb_func_start sub_806B96C
-sub_806B96C: @ 806B96C
- push {lr}
- ldr r2, _0806B988 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0806B990
- ldr r0, _0806B98C @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _0806B990
- movs r0, 0x1
- b _0806BA36
- .align 2, 0
-_0806B988: .4byte gMain
-_0806B98C: .4byte gSpecialVar_Facing
-_0806B990:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806B9AC
- ldr r0, _0806B9A8 @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _0806B9AC
- movs r0, 0x2
- b _0806BA36
- .align 2, 0
-_0806B9A8: .4byte gSpecialVar_Facing
-_0806B9AC:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0806B9C8
- ldr r0, _0806B9C4 @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x3
- beq _0806B9C8
- movs r0, 0x3
- b _0806BA36
- .align 2, 0
-_0806B9C4: .4byte gSpecialVar_Facing
-_0806B9C8:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0806B9E4
- ldr r0, _0806B9E0 @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x4
- beq _0806B9E4
- movs r0, 0x4
- b _0806BA36
- .align 2, 0
-_0806B9E0: .4byte gSpecialVar_Facing
-_0806B9E4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0806B9F4
- movs r0, 0x5
- b _0806BA36
-_0806B9F4:
- ldrh r2, [r2, 0x2C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0806BA04
- movs r0, 0x6
- b _0806BA36
-_0806BA04:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0806BA10
- movs r0, 0x7
- b _0806BA36
-_0806BA10:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _0806BA1C
- movs r0, 0x8
- b _0806BA36
-_0806BA1C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806BA28
- movs r0, 0x9
- b _0806BA36
-_0806BA28:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806BA34
- movs r0, 0
- b _0806BA36
-_0806BA34:
- movs r0, 0xA
-_0806BA36:
- pop {r1}
- bx r1
- thumb_func_end sub_806B96C
-
- thumb_func_start sub_806BA3C
-sub_806BA3C: @ 806BA3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0806BA70 @ =gUnknown_3005070
- str r4, [r0]
- bl sub_8112CAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BA58
- ldr r0, _0806BA74 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0806BA5E
-_0806BA58:
- ldr r1, _0806BA78 @ =gUnknown_20370AC
- movs r0, 0
- strb r0, [r1]
-_0806BA5E:
- ldr r1, _0806BA7C @ =sub_806B898
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BA70: .4byte gUnknown_3005070
-_0806BA74: .4byte gUnknown_203ADFA
-_0806BA78: .4byte gUnknown_20370AC
-_0806BA7C: .4byte sub_806B898
- thumb_func_end sub_806BA3C
-
- thumb_func_start ScrCmd_yesnobox
-ScrCmd_yesnobox: @ 806BA80
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl sub_809CDEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BAA2
- movs r0, 0
- b _0806BAA8
-_0806BAA2:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BAA8:
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_yesnobox
-
- thumb_func_start ScrCmd_multichoice
-ScrCmd_multichoice: @ 806BAAC
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl ScriptMenu_Multichoice
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BADA
- movs r0, 0
- b _0806BAE0
-_0806BADA:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BAE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoice
-
- thumb_func_start ScrCmd_multichoicedefault
-ScrCmd_multichoicedefault: @ 806BAE8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl ScriptMenu_MultichoiceWithDefault
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BB26
- movs r0, 0
- b _0806BB2C
-_0806BB26:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BB2C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoicedefault
-
- thumb_func_start sub_806BB38
-sub_806BB38: @ 806BB38
- movs r0, 0
- bx lr
- thumb_func_end sub_806BB38
-
- thumb_func_start ScrCmd_multichoicegrid
-ScrCmd_multichoicegrid: @ 806BB3C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl sub_809CEC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BB7A
- movs r0, 0
- b _0806BB80
-_0806BB7A:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BB80:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoicegrid
-
- thumb_func_start sub_806BB8C
-sub_806BB8C: @ 806BB8C
- ldr r1, [r0, 0x8]
- adds r1, 0x4
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_806BB8C
-
- thumb_func_start sub_806BB98
-sub_806BB98: @ 806BB98
- movs r0, 0
- bx lr
- thumb_func_end sub_806BB98
-
- thumb_func_start sub_806BB9C
-sub_806BB9C: @ 806BB9C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r4, 0
- bl sub_809D2F0
- adds r0, r4, 0
- movs r1, 0
- bl PlayCry7
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806BB9C
-
- thumb_func_start sub_806BBD8
-sub_806BBD8: @ 806BBD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D3CC
- adds r1, r0, 0
- cmp r1, 0
- beq _0806BBF0
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- b _0806BBF2
-_0806BBF0:
- movs r0, 0
-_0806BBF2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806BBD8
-
- thumb_func_start sub_806BBF8
-sub_806BBF8: @ 806BBF8
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_806BBF8
-
- thumb_func_start sub_806BC04
-sub_806BC04: @ 806BC04
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- bl ScriptReadWord
- adds r4, r0, 0
- cmp r4, 0
- bne _0806BC16
- ldr r4, [r5, 0x64]
-_0806BC16:
- bl sub_80F6E9C
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6EE4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x6
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- movs r0, 0
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806BC04
-
- thumb_func_start sub_806BC40
-sub_806BC40: @ 806BC40
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- cmp r1, 0
- bne _0806BC50
- ldr r1, [r4, 0x64]
-_0806BC50:
- ldr r4, _0806BC68 @ =gSpecialVar_0x8004
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x6
- bl GetStringWidth
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BC68: .4byte gSpecialVar_0x8004
- thumb_func_end sub_806BC40
-
- thumb_func_start ScrCmd_vmessage
-ScrCmd_vmessage: @ 806BC6C
- push {lr}
- bl ScriptReadWord
- ldr r1, _0806BC84 @ =gUnknown_20370A8
- ldr r1, [r1]
- subs r0, r1
- bl ShowFieldMessage
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806BC84: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_vmessage
-
- thumb_func_start ScrCmd_bufferspeciesname
-ScrCmd_bufferspeciesname: @ 806BC88
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806BCC0 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xB
- muls r1, r0
- ldr r0, _0806BCC4 @ =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BCC0: .4byte gUnknown_83A7294
-_0806BCC4: .4byte gSpeciesNames
- thumb_func_end ScrCmd_bufferspeciesname
-
- thumb_func_start ScrCmd_bufferleadmonspeciesname
-ScrCmd_bufferleadmonspeciesname: @ 806BCC8
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _0806BD08 @ =gUnknown_83A7294
- lsls r2, 2
- adds r2, r0
- ldr r4, [r2]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806BD0C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _0806BD10 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD08: .4byte gUnknown_83A7294
-_0806BD0C: .4byte gPlayerParty
-_0806BD10: .4byte gSpeciesNames
- thumb_func_end ScrCmd_bufferleadmonspeciesname
-
- thumb_func_start ScrCmd_bufferpartymonnick
-ScrCmd_bufferpartymonnick: @ 806BD14
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806BD54 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806BD58 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD54: .4byte gPlayerParty
-_0806BD58: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferpartymonnick
-
- thumb_func_start ScrCmd_bufferitemname
-ScrCmd_bufferitemname: @ 806BD5C
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806BD8C @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl sub_8099E90
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD8C: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferitemname
-
- thumb_func_start sub_806BD90
-sub_806BD90: @ 806BD90
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r7, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _0806BDE4 @ =gUnknown_83A7294
- lsls r0, r7, 2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8099E90
- cmp r5, 0x4
- bne _0806BDEC
- cmp r6, 0x1
- bls _0806BDEC
- ldr r1, _0806BDE8 @ =gUnknown_83A72A0
- adds r0, r4, 0
- bl StringAppend
- b _0806BE22
- .align 2, 0
-_0806BDE4: .4byte gUnknown_83A7294
-_0806BDE8: .4byte gUnknown_83A72A0
-_0806BDEC:
- adds r0, r5, 0
- subs r0, 0x85
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x29
- bhi _0806BE22
- cmp r6, 0x1
- bls _0806BE22
- ldr r0, _0806BE2C @ =gUnknown_83A7294
- lsls r1, r7, 2
- adds r1, r0
- ldr r4, [r1]
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _0806BE22
- adds r0, r4, r0
- subs r0, 0x1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _0806BE30 @ =gUnknown_83A72A2
- adds r0, r4, 0
- bl StringAppend
-_0806BE22:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BE2C: .4byte gUnknown_83A7294
-_0806BE30: .4byte gUnknown_83A72A2
- thumb_func_end sub_806BD90
-
- thumb_func_start sub_806BE34
-sub_806BE34: @ 806BE34
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806BE34
-
- thumb_func_start ScrCmd_buffermovename
-ScrCmd_buffermovename: @ 806BE50
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806BE88 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xD
- muls r1, r0
- ldr r0, _0806BE8C @ =gMoveNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BE88: .4byte gUnknown_83A7294
-_0806BE8C: .4byte gMoveNames
- thumb_func_end ScrCmd_buffermovename
-
- thumb_func_start ScrCmd_buffernumberstring
-ScrCmd_buffernumberstring: @ 806BE90
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80CBF04
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0806BED0 @ =gUnknown_83A7294
- lsls r5, 2
- adds r5, r0
- ldr r0, [r5]
- adds r1, r4, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BED0: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_buffernumberstring
-
- thumb_func_start ScrCmd_bufferstdstring
-ScrCmd_bufferstdstring: @ 806BED4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- ldr r1, _0806BF0C @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- ldr r1, _0806BF10 @ =gUnknown_83E06B8
- lsrs r0, 14
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF0C: .4byte gUnknown_83A7294
-_0806BF10: .4byte gUnknown_83E06B8
- thumb_func_end ScrCmd_bufferstdstring
-
- thumb_func_start ScrCmd_bufferstring
-ScrCmd_bufferstring: @ 806BF14
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806BF38 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF38: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferstring
-
- thumb_func_start ScrCmd_vloadword
-ScrCmd_vloadword: @ 806BF3C
- push {lr}
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806BF58 @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _0806BF5C @ =gStringVar4
- bl StringExpandPlaceholders
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF58: .4byte gUnknown_20370A8
-_0806BF5C: .4byte gStringVar4
- thumb_func_end ScrCmd_vloadword
-
- thumb_func_start ScrCmd_vbufferstring
-ScrCmd_vbufferstring: @ 806BF60
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806BF8C @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _0806BF90 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF8C: .4byte gUnknown_20370A8
-_0806BF90: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_vbufferstring
-
- thumb_func_start ScrCmd_bufferboxname
-ScrCmd_bufferboxname: @ 806BF94
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _0806BFCC @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl GetBoxNamePtr
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BFCC: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferboxname
-
- thumb_func_start ScrCmd_givemon
-ScrCmd_givemon: @ 806BFD0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl ScriptReadWord
- mov r8, r0
- adds r0, r4, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- ldr r4, _0806C04C @ =gSpecialVar_Result
- str r0, [sp]
- str r2, [sp, 0x4]
- adds r0, r6, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl ScriptGiveMon
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C04C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givemon
-
- thumb_func_start ScrCmd_giveegg
-ScrCmd_giveegg: @ 806C050
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806C078 @ =gSpecialVar_Result
- bl sub_80A01AC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C078: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_giveegg
-
- thumb_func_start ScrCmd_setmonmove
-ScrCmd_setmonmove: @ 806C07C
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- adds r2, r4, 0
- bl ScriptSetMonMoveSlot
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmonmove
-
- thumb_func_start ScrCmd_checkpartymove
-ScrCmd_checkpartymove: @ 806C0A8
- push {r4-r7,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _0806C0BC @ =gSpecialVar_Result
- movs r0, 0x6
- strh r0, [r1]
- movs r6, 0
- b _0806C0F6
- .align 2, 0
-_0806C0BC: .4byte gSpecialVar_Result
-_0806C0C0:
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806C0F0
- adds r0, r4, 0
- adds r1, r7, 0
- bl pokemon_has_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806C0F0
- ldr r0, _0806C0E8 @ =gSpecialVar_Result
- strh r6, [r0]
- ldr r0, _0806C0EC @ =gSpecialVar_0x8004
- strh r5, [r0]
- b _0806C116
- .align 2, 0
-_0806C0E8: .4byte gSpecialVar_Result
-_0806C0EC: .4byte gSpecialVar_0x8004
-_0806C0F0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0806C0F6:
- cmp r6, 0x5
- bhi _0806C116
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _0806C120 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0806C0C0
-_0806C116:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C120: .4byte gPlayerParty
- thumb_func_end ScrCmd_checkpartymove
-
- thumb_func_start ScrCmd_givemoney
-ScrCmd_givemoney: @ 806C124
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806C14A
- ldr r0, _0806C154 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- bl AddMoney
-_0806C14A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C154: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_givemoney
-
- thumb_func_start ScrCmd_takemoney
-ScrCmd_takemoney: @ 806C158
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806C17E
- ldr r0, _0806C188 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- bl RemoveMoney
-_0806C17E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C188: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_takemoney
-
- thumb_func_start ScrCmd_checkmoney
-ScrCmd_checkmoney: @ 806C18C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806C1BA
- ldr r4, _0806C1C4 @ =gSpecialVar_Result
- ldr r0, _0806C1C8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_0806C1BA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C1C4: .4byte gSpecialVar_Result
-_0806C1C8: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_checkmoney
-
- thumb_func_start sub_806C1CC
-sub_806C1CC: @ 806C1CC
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _0806C20A
- ldr r0, _0806C214 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806C20A
- ldr r0, _0806C218 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r1, r5, 0
- adds r2, r4, 0
- bl DrawMoneyBox
-_0806C20A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C214: .4byte sub_809D6D4
-_0806C218: .4byte gSaveBlock1Ptr
- thumb_func_end sub_806C1CC
-
- thumb_func_start sub_806C21C
-sub_806C21C: @ 806C21C
- push {lr}
- bl HideMoneyBox
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806C21C
-
- thumb_func_start sub_806C228
-sub_806C228: @ 806C228
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _0806C24E
- ldr r0, _0806C254 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- bl ChangeAmountInMoneyBox
-_0806C24E:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C254: .4byte gSaveBlock1Ptr
- thumb_func_end sub_806C228
-
- thumb_func_start sub_806C258
-sub_806C258: @ 806C258
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _0806C290 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806C286
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- adds r2, r4, 0
- bl ShowCoinsWindow
-_0806C286:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C290: .4byte sub_809D6D4
- thumb_func_end sub_806C258
-
- thumb_func_start ScrCmd_hidecoinsbox
-ScrCmd_hidecoinsbox: @ 806C294
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x2
- str r1, [r0, 0x8]
- bl HideCoinsWindow
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hidecoinsbox
-
- thumb_func_start ScrCmd_updatecoinsbox
-ScrCmd_updatecoinsbox: @ 806C2A8
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x2
- str r1, [r0, 0x8]
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- bl PrintCoinsString
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_updatecoinsbox
-
- thumb_func_start ScrCmd_trainerbattle
-ScrCmd_trainerbattle: @ 806C2C4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- bl sub_8080228
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_trainerbattle
-
- thumb_func_start sub_806C2D8
-sub_806C2D8: @ 806C2D8
- push {lr}
- bl sub_8080464
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C2D8
-
- thumb_func_start ScrCmd_ontrainerbattleend
-ScrCmd_ontrainerbattleend: @ 806C2E4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80805E8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_ontrainerbattleend
-
- thumb_func_start ScrCmd_ontrainerbattleendgoto
-ScrCmd_ontrainerbattleendgoto: @ 806C2F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8080600
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_ontrainerbattleendgoto
-
- thumb_func_start ScrCmd_checktrainerflag
-ScrCmd_checktrainerflag: @ 806C30C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl HasTrainerAlreadyBeenFought
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checktrainerflag
-
- thumb_func_start ScrCmd_settrainerflag
-ScrCmd_settrainerflag: @ 806C330
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_set
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_settrainerflag
-
- thumb_func_start ScrCmd_cleartrainerflag
-ScrCmd_cleartrainerflag: @ 806C34C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_clear
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_cleartrainerflag
-
- thumb_func_start ScrCmd_setwildbattle
-ScrCmd_setwildbattle: @ 806C368
- push {r4-r6,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, [r4, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl CreateScriptedWildMon
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setwildbattle
-
- thumb_func_start sub_806C39C
-sub_806C39C: @ 806C39C
- push {lr}
- bl sub_807F8C4
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C39C
-
- thumb_func_start sub_806C3AC
-sub_806C3AC: @ 806C3AC
- push {lr}
- bl ScriptReadWord
- bl sub_809C164
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C3AC
-
- thumb_func_start sub_806C3C0
-sub_806C3C0: @ 806C3C0
- push {lr}
- bl ScriptReadWord
- bl sub_809C1A0
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C3C0
-
- thumb_func_start sub_806C3D4
-sub_806C3D4: @ 806C3D4
- push {lr}
- bl ScriptReadWord
- bl sub_809C1BC
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C3D4
-
- thumb_func_start ScrCmd_playslotmachine
-ScrCmd_playslotmachine: @ 806C3E8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806C40C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl sub_813F804
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806C40C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end ScrCmd_playslotmachine
-
- thumb_func_start sub_806C410
-sub_806C410: @ 806C410
- movs r0, 0
- bx lr
- thumb_func_end sub_806C410
-
- thumb_func_start sub_806C414
-sub_806C414: @ 806C414
- movs r0, 0
- bx lr
- thumb_func_end sub_806C414
-
- thumb_func_start sub_806C418
-sub_806C418: @ 806C418
- push {lr}
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C418
-
- thumb_func_start sub_806C424
-sub_806C424: @ 806C424
- movs r0, 0
- bx lr
- thumb_func_end sub_806C424
-
- thumb_func_start sub_806C428
-sub_806C428: @ 806C428
- movs r0, 0
- bx lr
- thumb_func_end sub_806C428
-
- thumb_func_start sub_806C42C
-sub_806C42C: @ 806C42C
- movs r0, 0
- bx lr
- thumb_func_end sub_806C42C
-
- thumb_func_start ScrCmd_dofieldeffect
-ScrCmd_dofieldeffect: @ 806C430
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806C454 @ =gUnknown_20370B6
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl FieldEffectStart
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C454: .4byte gUnknown_20370B6
- thumb_func_end ScrCmd_dofieldeffect
-
- thumb_func_start ScrCmd_setfieldeffectarg
-ScrCmd_setfieldeffectarg: @ 806C458
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _0806C484 @ =gFieldEffectArguments
- lsls r4, 2
- adds r4, r1
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C484: .4byte gFieldEffectArguments
- thumb_func_end ScrCmd_setfieldeffectarg
-
- thumb_func_start WaitForFieldEffectFinish
-WaitForFieldEffectFinish: @ 806C488
- push {lr}
- ldr r0, _0806C49C @ =gUnknown_20370B6
- ldrb r0, [r0]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _0806C4A0
- movs r0, 0
- b _0806C4A2
- .align 2, 0
-_0806C49C: .4byte gUnknown_20370B6
-_0806C4A0:
- movs r0, 0x1
-_0806C4A2:
- pop {r1}
- bx r1
- thumb_func_end WaitForFieldEffectFinish
-
- thumb_func_start ScrCmd_waitfieldeffect
-ScrCmd_waitfieldeffect: @ 806C4A8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _0806C4CC @ =gUnknown_20370B6
- strh r0, [r1]
- ldr r1, _0806C4D0 @ =WaitForFieldEffectFinish
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C4CC: .4byte gUnknown_20370B6
-_0806C4D0: .4byte WaitForFieldEffectFinish
- thumb_func_end ScrCmd_waitfieldeffect
-
- thumb_func_start ScrCmd_setrespawn
-ScrCmd_setrespawn: @ 806C4D4
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_80554CC
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setrespawn
-
- thumb_func_start ScrCmd_checkplayergender
-ScrCmd_checkplayergender: @ 806C4F0
- ldr r1, _0806C500 @ =gSpecialVar_Result
- ldr r0, _0806C504 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806C500: .4byte gSpecialVar_Result
-_0806C504: .4byte gSaveBlock2Ptr
- thumb_func_end ScrCmd_checkplayergender
-
- thumb_func_start ScrCmd_playmoncry
-ScrCmd_playmoncry: @ 806C508
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl PlayCry7
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_playmoncry
-
- thumb_func_start sub_806C540
-sub_806C540: @ 806C540
- push {lr}
- ldr r1, _0806C550 @ =IsCryFinished
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806C550: .4byte IsCryFinished
- thumb_func_end sub_806C540
-
- thumb_func_start ScrCmd_setmetatile
-ScrCmd_setmetatile: @ 806C554
- push {r4-r7,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- adds r1, r6, 0x7
- lsls r1, 16
- lsrs r6, r1, 16
- adds r1, r5, 0x7
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r0, 0
- bne _0806C5B8
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl MapGridSetMetatileIdAt
- b _0806C5CA
-_0806C5B8:
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r2, r7, 0
- orrs r2, r0
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0806C5CA:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmetatile
-
- thumb_func_start ScrCmd_opendoor
-ScrCmd_opendoor: @ 806C5D4
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- adds r5, 0x7
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r4, r0
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805B364
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805B310
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_opendoor
-
- thumb_func_start ScrCmd_closedoor
-ScrCmd_closedoor: @ 806C62C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805B2D0
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_closedoor
-
- thumb_func_start sub_806C670
-sub_806C670: @ 806C670
- push {lr}
- bl sub_805B350
- lsls r0, 24
- cmp r0, 0
- beq _0806C680
- movs r0, 0
- b _0806C682
-_0806C680:
- movs r0, 0x1
-_0806C682:
- pop {r1}
- bx r1
- thumb_func_end sub_806C670
-
- thumb_func_start sub_806C688
-sub_806C688: @ 806C688
- push {lr}
- ldr r1, _0806C698 @ =sub_806C670
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806C698: .4byte sub_806C670
- thumb_func_end sub_806C688
-
- thumb_func_start ScrCmd_setdooropen
-ScrCmd_setdooropen: @ 806C69C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805B268
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdooropen
-
- thumb_func_start ScrCmd_setdoorclosed
-ScrCmd_setdoorclosed: @ 806C6E0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805B29C
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdoorclosed
-
- thumb_func_start sub_806C724
-sub_806C724: @ 806C724
- movs r0, 0
- bx lr
- thumb_func_end sub_806C724
-
- thumb_func_start sub_806C728
-sub_806C728: @ 806C728
- movs r0, 0
- bx lr
- thumb_func_end sub_806C728
-
- thumb_func_start ScrCmd_checkcoins
-ScrCmd_checkcoins: @ 806C72C
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- bl GetCoins
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checkcoins
-
- thumb_func_start ScrCmd_givecoins
-ScrCmd_givecoins: @ 806C74C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GiveCoins
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806C774
- ldr r1, _0806C770 @ =gSpecialVar_Result
- movs r0, 0
- b _0806C778
- .align 2, 0
-_0806C770: .4byte gSpecialVar_Result
-_0806C774:
- ldr r1, _0806C780 @ =gSpecialVar_Result
- movs r0, 0x1
-_0806C778:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C780: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givecoins
-
- thumb_func_start ScrCmd_takecoins
-ScrCmd_takecoins: @ 806C784
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl TakeCoins
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806C7AC
- ldr r1, _0806C7A8 @ =gSpecialVar_Result
- movs r0, 0
- b _0806C7B0
- .align 2, 0
-_0806C7A8: .4byte gSpecialVar_Result
-_0806C7AC:
- ldr r1, _0806C7B8 @ =gSpecialVar_Result
- movs r0, 0x1
-_0806C7B0:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C7B8: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_takecoins
-
- thumb_func_start sub_806C7BC
-sub_806C7BC: @ 806C7BC
- push {lr}
- bl sub_8069A20
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806C7BC
-
- thumb_func_start sub_806C7C8
-sub_806C7C8: @ 806C7C8
- push {lr}
- bl sub_8069A2C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806C7C8
-
- thumb_func_start ScrCmd_setmonobedient
-ScrCmd_setmonobedient: @ 806C7D4
- push {lr}
- sub sp, 0x4
- movs r2, 0x1
- mov r1, sp
- strb r2, [r1]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806C808 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- mov r2, sp
- bl SetMonData
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_0806C808: .4byte gPlayerParty
- thumb_func_end ScrCmd_setmonobedient
-
- thumb_func_start ScrCmd_checkmonobedience
-ScrCmd_checkmonobedience: @ 806C80C
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806C83C @ =gSpecialVar_Result
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806C840 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C83C: .4byte gSpecialVar_Result
-_0806C840: .4byte gPlayerParty
- thumb_func_end ScrCmd_checkmonobedience
-
- thumb_func_start sub_806C844
-sub_806C844: @ 806C844
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- mov r1, sp
- strb r2, [r1]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r3, 0x5
- bhi _0806C87A
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806C884 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- mov r2, sp
- bl SetMonData
-_0806C87A:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C884: .4byte gPlayerParty
- thumb_func_end sub_806C844
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index f1127591d..438f715fa 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -613,8 +613,8 @@ _0809CDE0:
_0809CDE8: .4byte gUnknown_83E0748
thumb_func_end sub_809CD48
- thumb_func_start sub_809CDEC
-sub_809CDEC: @ 809CDEC
+ thumb_func_start ScriptMenu_YesNo
+ScriptMenu_YesNo: @ 809CDEC
push {r4,lr}
ldr r4, _0809CE04 @ =task_yes_no_maybe
adds r0, r4, 0
@@ -649,7 +649,7 @@ _0809CE28:
.align 2, 0
_0809CE30: .4byte gSpecialVar_Result
_0809CE34: .4byte sub_809D6D4
- thumb_func_end sub_809CDEC
+ thumb_func_end ScriptMenu_YesNo
thumb_func_start sub_809CE38
sub_809CE38: @ 809CE38
@@ -733,8 +733,8 @@ _0809CEBC:
_0809CEC4: .4byte gSpecialVar_Result
thumb_func_end task_yes_no_maybe
- thumb_func_start sub_809CEC8
-sub_809CEC8: @ 809CEC8
+ thumb_func_start ScriptMenu_MultichoiceGrid
+ScriptMenu_MultichoiceGrid: @ 809CEC8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -862,7 +862,7 @@ _0809CFCC: .4byte gSpecialVar_Result
_0809CFD0: .4byte sub_809D6D4
_0809CFD4: .4byte gUnknown_83E04B0
_0809CFD8: .4byte gTasks
- thumb_func_end sub_809CEC8
+ thumb_func_end ScriptMenu_MultichoiceGrid
thumb_func_start sub_809CFDC
sub_809CFDC: @ 809CFDC
@@ -1241,8 +1241,8 @@ _0809D2E8:
bx r0
thumb_func_end sub_809D288
- thumb_func_start sub_809D2F0
-sub_809D2F0: @ 809D2F0
+ thumb_func_start ScriptMenu_ShowPokemonPic
+ScriptMenu_ShowPokemonPic: @ 809D2F0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1344,10 +1344,10 @@ _0809D3C2:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809D2F0
+ thumb_func_end ScriptMenu_ShowPokemonPic
- thumb_func_start sub_809D3CC
-sub_809D3CC: @ 809D3CC
+ thumb_func_start ScriptMenu_GetPicboxWaitFunc
+ScriptMenu_GetPicboxWaitFunc: @ 809D3CC
push {lr}
ldr r0, _0809D3F0 @ =sub_809D288
bl FindTaskIdByFunc
@@ -1374,7 +1374,7 @@ _0809D3FC:
_0809D3FE:
pop {r1}
bx r1
- thumb_func_end sub_809D3CC
+ thumb_func_end ScriptMenu_GetPicboxWaitFunc
thumb_func_start sub_809D404
sub_809D404: @ 809D404
diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s
index 191457abe..60f416b48 100644
--- a/asm/script_pokemon_util_80A0058.s
+++ b/asm/script_pokemon_util_80A0058.s
@@ -170,8 +170,8 @@ _080A0196:
bx r1
thumb_func_end ScriptGiveMon
- thumb_func_start sub_80A01AC
-sub_80A01AC: @ 80A01AC
+ thumb_func_start ScriptGiveEgg
+ScriptGiveEgg: @ 80A01AC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -202,7 +202,7 @@ sub_80A01AC: @ 80A01AC
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80A01AC
+ thumb_func_end ScriptGiveEgg
thumb_func_start CheckForAlivePartyMons
CheckForAlivePartyMons: @ 80A01F4
diff --git a/asm/seagallop.s b/asm/seagallop.s
index 89f8c2867..f54d0d986 100644
--- a/asm/seagallop.s
+++ b/asm/seagallop.s
@@ -371,7 +371,7 @@ _08147150:
bl warp_in
ldr r0, _081471BC @ =sub_805671C
bl SetMainCallback2
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
bl sub_81473A0
ldr r0, _081471C0 @ =gUnknown_203F3D0
ldr r0, [r0]
diff --git a/asm/shop.s b/asm/shop.s
index 60b92410d..aed90ff85 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1023,7 +1023,7 @@ sub_809B300: @ 809B300
lsrs r5, 16
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
str r6, [r4]
str r5, [r4, 0x4]
pop {r4-r6}
@@ -1632,7 +1632,7 @@ _0809B7B2:
movs r3, 0
ldrsh r1, [r2, r3]
adds r1, r7
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
lsls r0, 16
lsrs r5, r0, 16
mov r0, sp
@@ -1645,7 +1645,7 @@ _0809B7B2:
adds r1, r7, r1
lsls r1, 16
asrs r1, 16
- bl sub_8058F8C
+ bl MapGridGetMetatileLayerTypeAt
lsls r0, 24
lsrs r3, r0, 24
ldr r0, _0809B808 @ =0x0000027f
@@ -2232,7 +2232,7 @@ _0809BC78: .4byte sub_809BF98
_0809BC7C:
ldr r1, _0809BC94 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r1, _0809BC98 @ =gUnknown_8416766
ldr r2, _0809BC9C @ =sub_809BCA0
adds r0, r6, 0
@@ -2408,7 +2408,7 @@ _0809BDD4:
bl PutWindowTilemap
ldrh r0, [r4, 0xA]
ldr r1, _0809BE40 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _0809BE44 @ =gStringVar2
movs r2, 0x2
ldrsh r1, [r4, r2]
@@ -2485,7 +2485,7 @@ sub_809BEA4: @ 809BEA4
bl PutWindowTilemap
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x2]
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2826,8 +2826,8 @@ _0809C15A:
_0809C160: .4byte gUnknown_203996C
thumb_func_end sub_809C138
- thumb_func_start sub_809C164
-sub_809C164: @ 809C164
+ thumb_func_start CreatePokemartMenu
+CreatePokemartMenu: @ 809C164
push {r4,lr}
bl sub_809ABD8
movs r0, 0
@@ -2851,10 +2851,10 @@ sub_809C164: @ 809C164
_0809C194: .4byte EnableBothScriptContexts
_0809C198: .4byte gUnknown_203996C
_0809C19C: .4byte gMapHeader
- thumb_func_end sub_809C164
+ thumb_func_end CreatePokemartMenu
- thumb_func_start sub_809C1A0
-sub_809C1A0: @ 809C1A0
+ thumb_func_start CreateDecorationShop1Menu
+CreateDecorationShop1Menu: @ 809C1A0
push {lr}
bl sub_809ABD8
movs r0, 0x2
@@ -2865,10 +2865,10 @@ sub_809C1A0: @ 809C1A0
bx r0
.align 2, 0
_0809C1B8: .4byte EnableBothScriptContexts
- thumb_func_end sub_809C1A0
+ thumb_func_end CreateDecorationShop1Menu
- thumb_func_start sub_809C1BC
-sub_809C1BC: @ 809C1BC
+ thumb_func_start CreateDecorationShop2Menu
+CreateDecorationShop2Menu: @ 809C1BC
push {lr}
bl sub_809ABD8
movs r0, 0x3
@@ -2879,7 +2879,7 @@ sub_809C1BC: @ 809C1BC
bx r0
.align 2, 0
_0809C1D4: .4byte EnableBothScriptContexts
- thumb_func_end sub_809C1BC
+ thumb_func_end CreateDecorationShop2Menu
thumb_func_start sub_809C1D8
sub_809C1D8: @ 809C1D8
@@ -2940,7 +2940,7 @@ _0809C238:
adds r5, r1, r0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
movs r2, 0
ldrsh r1, [r7, r2]
lsls r0, 16
@@ -3006,7 +3006,7 @@ _0809C2B8:
adds r5, r1, r0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
movs r1, 0x2
subs r1, r7
lsls r1, 1
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 2d1be0535..07483bb5e 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_813F804
-sub_813F804: @ 813F804
+ thumb_func_start PlaySlotMachine
+PlaySlotMachine: @ 813F804
push {r4-r6,lr}
adds r6, r1, 0
lsls r0, 16
@@ -39,7 +39,7 @@ _0813F840:
bx r0
.align 2, 0
_0813F848: .4byte sub_813F898
- thumb_func_end sub_813F804
+ thumb_func_end PlaySlotMachine
thumb_func_start sub_813F84C
sub_813F84C: @ 813F84C
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 1d81d0392..cfd970001 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -11,7 +11,7 @@ sub_806ED54: @ 806ED54
ldr r0, _0806ED6C @ =gUnknown_20370F5
movs r1, 0
strb r1, [r0]
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _0806ED70
bl sub_806EE34
@@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0
thumb_func_start ShowStartMenu
ShowStartMenu: @ 806F258
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _0806F26E
bl player_bitmagic
@@ -1109,7 +1109,7 @@ _0806F61E:
thumb_func_start sub_806F624
sub_806F624: @ 806F624
push {lr}
- bl sub_80590D8
+ bl save_serialize_map
ldr r1, _0806F63C @ =gUnknown_3000FA4
ldr r0, _0806F640 @ =sub_806F7A8
str r0, [r1]
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index bdd06dfff..5e2b048e2 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -398,7 +398,7 @@ sub_815AEE8: @ 815AEE8
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0815AF30
@@ -443,7 +443,7 @@ sub_815AF5C: @ 815AF5C
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0815AF84
diff --git a/asm/tileset_anims.s b/asm/tileset_anims.s
index 37280ab70..693962d39 100644
--- a/asm/tileset_anims.s
+++ b/asm/tileset_anims.s
@@ -132,11 +132,11 @@ sub_806FFB0: @ 806FFB0
sub_806FFBC: @ 806FFBC
push {r4,lr}
bl ResetTilesetAnimBuffer
- ldr r2, _08070014 @ =gUnknown_3000FAE
+ ldr r2, _08070014 @ =sPrimaryTilesetCBCounter
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
- ldr r1, _08070018 @ =gUnknown_3000FB0
+ ldr r1, _08070018 @ =sPrimaryTilesetCBBufferSize
lsls r0, 16
lsrs r0, 16
ldrh r1, [r1]
@@ -145,11 +145,11 @@ sub_806FFBC: @ 806FFBC
movs r0, 0
strh r0, [r2]
_0806FFDA:
- ldr r4, _0807001C @ =gUnknown_3000FB2
+ ldr r4, _0807001C @ =sSecondaryTilesetCBCounter
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
- ldr r1, _08070020 @ =gUnknown_3000FB4
+ ldr r1, _08070020 @ =sSecondaryTilesetCBBufferSize
lsls r0, 16
lsrs r0, 16
ldrh r1, [r1]
@@ -158,14 +158,14 @@ _0806FFDA:
movs r0, 0
strh r0, [r4]
_0806FFF2:
- ldr r0, _08070024 @ =gUnknown_3000FB8
+ ldr r0, _08070024 @ =sPrimaryTilesetCB
ldr r1, [r0]
cmp r1, 0
beq _08070000
ldrh r0, [r2]
bl _call_via_r1
_08070000:
- ldr r0, _08070028 @ =gUnknown_3000FBC
+ ldr r0, _08070028 @ =sSecondaryTilesetCB
ldr r1, [r0]
cmp r1, 0
beq _0807000E
@@ -176,23 +176,23 @@ _0807000E:
pop {r0}
bx r0
.align 2, 0
-_08070014: .4byte gUnknown_3000FAE
-_08070018: .4byte gUnknown_3000FB0
-_0807001C: .4byte gUnknown_3000FB2
-_08070020: .4byte gUnknown_3000FB4
-_08070024: .4byte gUnknown_3000FB8
-_08070028: .4byte gUnknown_3000FBC
+_08070014: .4byte sPrimaryTilesetCBCounter
+_08070018: .4byte sPrimaryTilesetCBBufferSize
+_0807001C: .4byte sSecondaryTilesetCBCounter
+_08070020: .4byte sSecondaryTilesetCBBufferSize
+_08070024: .4byte sPrimaryTilesetCB
+_08070028: .4byte sSecondaryTilesetCB
thumb_func_end sub_806FFBC
thumb_func_start cur_mapheader_run_tileset1_func
cur_mapheader_run_tileset1_func: @ 807002C
push {lr}
- ldr r0, _08070058 @ =gUnknown_3000FAE
+ ldr r0, _08070058 @ =sPrimaryTilesetCBCounter
movs r1, 0
strh r1, [r0]
- ldr r0, _0807005C @ =gUnknown_3000FB0
+ ldr r0, _0807005C @ =sPrimaryTilesetCBBufferSize
strh r1, [r0]
- ldr r1, _08070060 @ =gUnknown_3000FB8
+ ldr r1, _08070060 @ =sPrimaryTilesetCB
movs r0, 0
str r0, [r1]
ldr r0, _08070064 @ =gMapHeader
@@ -208,21 +208,21 @@ _08070052:
pop {r0}
bx r0
.align 2, 0
-_08070058: .4byte gUnknown_3000FAE
-_0807005C: .4byte gUnknown_3000FB0
-_08070060: .4byte gUnknown_3000FB8
+_08070058: .4byte sPrimaryTilesetCBCounter
+_0807005C: .4byte sPrimaryTilesetCBBufferSize
+_08070060: .4byte sPrimaryTilesetCB
_08070064: .4byte gMapHeader
thumb_func_end cur_mapheader_run_tileset1_func
thumb_func_start cur_mapheader_run_tileset2_func
cur_mapheader_run_tileset2_func: @ 8070068
push {lr}
- ldr r0, _08070094 @ =gUnknown_3000FB2
+ ldr r0, _08070094 @ =sSecondaryTilesetCBCounter
movs r1, 0
strh r1, [r0]
- ldr r0, _08070098 @ =gUnknown_3000FB4
+ ldr r0, _08070098 @ =sSecondaryTilesetCBBufferSize
strh r1, [r0]
- ldr r1, _0807009C @ =gUnknown_3000FBC
+ ldr r1, _0807009C @ =sSecondaryTilesetCB
movs r0, 0
str r0, [r1]
ldr r0, _080700A0 @ =gMapHeader
@@ -238,9 +238,9 @@ _0807008E:
pop {r0}
bx r0
.align 2, 0
-_08070094: .4byte gUnknown_3000FB2
-_08070098: .4byte gUnknown_3000FB4
-_0807009C: .4byte gUnknown_3000FBC
+_08070094: .4byte sSecondaryTilesetCBCounter
+_08070098: .4byte sSecondaryTilesetCBBufferSize
+_0807009C: .4byte sSecondaryTilesetCB
_080700A0: .4byte gMapHeader
thumb_func_end cur_mapheader_run_tileset2_func
@@ -342,22 +342,22 @@ _0807014C:
thumb_func_start sub_8070154
sub_8070154: @ 8070154
- ldr r1, _0807016C @ =gUnknown_3000FAE
+ ldr r1, _0807016C @ =sPrimaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _08070170 @ =gUnknown_3000FB0
+ ldr r1, _08070170 @ =sPrimaryTilesetCBBufferSize
movs r2, 0xA0
lsls r2, 2
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08070174 @ =gUnknown_3000FB8
+ ldr r1, _08070174 @ =sPrimaryTilesetCB
ldr r0, _08070178 @ =sub_8070120
str r0, [r1]
bx lr
.align 2, 0
-_0807016C: .4byte gUnknown_3000FAE
-_08070170: .4byte gUnknown_3000FB0
-_08070174: .4byte gUnknown_3000FB8
+_0807016C: .4byte sPrimaryTilesetCBCounter
+_08070170: .4byte sPrimaryTilesetCBBufferSize
+_08070174: .4byte sPrimaryTilesetCB
_08070178: .4byte sub_8070120
thumb_func_end sub_8070154
@@ -410,20 +410,20 @@ _080701D0:
thumb_func_start sub_80701D8
sub_80701D8: @ 80701D8
- ldr r1, _080701EC @ =gUnknown_3000FB2
+ ldr r1, _080701EC @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _080701F0 @ =gUnknown_3000FB4
+ ldr r1, _080701F0 @ =sSecondaryTilesetCBBufferSize
movs r0, 0x78
strh r0, [r1]
- ldr r1, _080701F4 @ =gUnknown_3000FBC
+ ldr r1, _080701F4 @ =sSecondaryTilesetCB
ldr r0, _080701F8 @ =sub_80701AC
str r0, [r1]
bx lr
.align 2, 0
-_080701EC: .4byte gUnknown_3000FB2
-_080701F0: .4byte gUnknown_3000FB4
-_080701F4: .4byte gUnknown_3000FBC
+_080701EC: .4byte sSecondaryTilesetCBCounter
+_080701F0: .4byte sSecondaryTilesetCBBufferSize
+_080701F4: .4byte sSecondaryTilesetCB
_080701F8: .4byte sub_80701AC
thumb_func_end sub_80701D8
@@ -474,20 +474,20 @@ _08070248:
thumb_func_start sub_8070250
sub_8070250: @ 8070250
- ldr r1, _08070264 @ =gUnknown_3000FB2
+ ldr r1, _08070264 @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _08070268 @ =gUnknown_3000FB4
+ ldr r1, _08070268 @ =sSecondaryTilesetCBBufferSize
movs r0, 0xA0
strh r0, [r1]
- ldr r1, _0807026C @ =gUnknown_3000FBC
+ ldr r1, _0807026C @ =sSecondaryTilesetCB
ldr r0, _08070270 @ =sub_8070224
str r0, [r1]
bx lr
.align 2, 0
-_08070264: .4byte gUnknown_3000FB2
-_08070268: .4byte gUnknown_3000FB4
-_0807026C: .4byte gUnknown_3000FBC
+_08070264: .4byte sSecondaryTilesetCBCounter
+_08070268: .4byte sSecondaryTilesetCBBufferSize
+_0807026C: .4byte sSecondaryTilesetCB
_08070270: .4byte sub_8070224
thumb_func_end sub_8070250
@@ -531,22 +531,22 @@ _080702B0:
thumb_func_start sub_80702B4
sub_80702B4: @ 80702B4
- ldr r1, _080702CC @ =gUnknown_3000FB2
+ ldr r1, _080702CC @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _080702D0 @ =gUnknown_3000FB4
+ ldr r1, _080702D0 @ =sSecondaryTilesetCBBufferSize
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _080702D4 @ =gUnknown_3000FBC
+ ldr r1, _080702D4 @ =sSecondaryTilesetCB
ldr r0, _080702D8 @ =sub_807029C
str r0, [r1]
bx lr
.align 2, 0
-_080702CC: .4byte gUnknown_3000FB2
-_080702D0: .4byte gUnknown_3000FB4
-_080702D4: .4byte gUnknown_3000FBC
+_080702CC: .4byte sSecondaryTilesetCBCounter
+_080702D0: .4byte sSecondaryTilesetCBBufferSize
+_080702D4: .4byte sSecondaryTilesetCB
_080702D8: .4byte sub_807029C
thumb_func_end sub_80702B4
@@ -589,20 +589,20 @@ _08070318:
thumb_func_start sub_807031C
sub_807031C: @ 807031C
- ldr r1, _08070330 @ =gUnknown_3000FB2
+ ldr r1, _08070330 @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _08070334 @ =gUnknown_3000FB4
+ ldr r1, _08070334 @ =sSecondaryTilesetCBBufferSize
movs r0, 0xF0
strh r0, [r1]
- ldr r1, _08070338 @ =gUnknown_3000FBC
+ ldr r1, _08070338 @ =sSecondaryTilesetCB
ldr r0, _0807033C @ =sub_8070304
str r0, [r1]
bx lr
.align 2, 0
-_08070330: .4byte gUnknown_3000FB2
-_08070334: .4byte gUnknown_3000FB4
-_08070338: .4byte gUnknown_3000FBC
+_08070330: .4byte sSecondaryTilesetCBCounter
+_08070334: .4byte sSecondaryTilesetCBBufferSize
+_08070338: .4byte sSecondaryTilesetCB
_0807033C: .4byte sub_8070304
thumb_func_end sub_807031C
@@ -645,22 +645,22 @@ _0807037C:
thumb_func_start sub_8070380
sub_8070380: @ 8070380
- ldr r1, _08070398 @ =gUnknown_3000FB2
+ ldr r1, _08070398 @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _0807039C @ =gUnknown_3000FB4
+ ldr r1, _0807039C @ =sSecondaryTilesetCBBufferSize
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _080703A0 @ =gUnknown_3000FBC
+ ldr r1, _080703A0 @ =sSecondaryTilesetCB
ldr r0, _080703A4 @ =sub_8070368
str r0, [r1]
bx lr
.align 2, 0
-_08070398: .4byte gUnknown_3000FB2
-_0807039C: .4byte gUnknown_3000FB4
-_080703A0: .4byte gUnknown_3000FBC
+_08070398: .4byte sSecondaryTilesetCBCounter
+_0807039C: .4byte sSecondaryTilesetCBBufferSize
+_080703A0: .4byte sSecondaryTilesetCB
_080703A4: .4byte sub_8070368
thumb_func_end sub_8070380
diff --git a/asm/tm_case.s b/asm/tm_case.s
index 1539343e8..e942bbc32 100644
--- a/asm/tm_case.s
+++ b/asm/tm_case.s
@@ -1855,7 +1855,7 @@ sub_8132714: @ 8132714
ldr r0, _08132744 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _08132748 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r5, _0813274C @ =gStringVar4
ldr r1, _08132750 @ =gUnknown_841635E
adds r0, r5, 0
@@ -2093,7 +2093,7 @@ sub_8132908: @ 8132908
bne _08132968
ldrh r0, [r6]
ldr r1, _08132958 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813295C @ =gStringVar4
ldr r1, _08132960 @ =gUnknown_84168F1
adds r0, r4, 0
@@ -2133,7 +2133,7 @@ _08132980:
_08132988:
ldrh r0, [r6]
ldr r1, _081329B4 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _081329B8 @ =gStringVar4
ldr r1, _081329BC @ =gUnknown_8416911
adds r0, r4, 0
@@ -2506,7 +2506,7 @@ sub_8132CAC: @ 8132CAC
ldr r0, _08132D1C @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _08132D20 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _08132D24 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x4
@@ -2568,7 +2568,7 @@ sub_8132D34: @ 8132D34
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r7, _08132DFC @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
@@ -2729,16 +2729,16 @@ sub_8132E64: @ 8132E64
bl sub_81320AC
ldr r0, _08132F0C @ =0x00000121
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r0, _08132F10 @ =0x00000123
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r0, _08132F14 @ =0x00000129
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r0, _08132F18 @ =0x00000143
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r1, _08132F1C @ =sub_815ABFC
movs r0, 0x4
movs r2, 0
diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s
index e7e825483..cabaac727 100644
--- a/asm/unk_810C3A4.s
+++ b/asm/unk_810C3A4.s
@@ -180,7 +180,7 @@ sub_810C4EC: @ 810C4EC
movs r0, 0xB5
lsls r0, 1
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s
index a7761148d..c495dc281 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/unk_8147AA8.s
@@ -2300,14 +2300,14 @@ _08148BFC:
beq _08148C54
ldrh r0, [r1, 0x3E]
ldrh r1, [r2]
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
beq _08148C54
ldr r0, [r4]
ldrh r0, [r0, 0x3E]
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _08148C4C
@@ -4162,7 +4162,7 @@ _0814998A:
beq _0814999C
adds r0, r5, 0
adds r1, r4, 0
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08149984
@@ -5613,7 +5613,7 @@ sub_814A468: @ 814A468
ldr r1, [r5]
adds r1, 0x26
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r0, [r5]
adds r0, 0x66
adds r1, r6, 0
@@ -5705,7 +5705,7 @@ sub_814A53C: @ 814A53C
ldr r4, _0814A5AC @ =gUnknown_203F3D8
ldr r1, [r4]
adds r1, 0x26
- bl sub_8099E90
+ bl CopyItemName
bl UnkTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
@@ -5760,7 +5760,7 @@ sub_814A5B4: @ 814A5B4
ldr r4, _0814A624 @ =gUnknown_203F3D8
ldr r1, [r4]
adds r1, 0x26
- bl sub_8099E90
+ bl CopyItemName
bl UnkTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
diff --git a/asm/unk_814B6F0.s b/asm/unk_814B6F0.s
index 90882d61c..8cf90cd23 100644
--- a/asm/unk_814B6F0.s
+++ b/asm/unk_814B6F0.s
@@ -204,7 +204,7 @@ _0814B878: .4byte gSpecialVar_ItemId
_0814B87C:
ldrh r0, [r1]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_0814B884:
ldr r4, _0814B8E0 @ =gUnknown_203F3DC
ldr r2, [r4]
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index 0118eff4b..e0448643e 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -6240,7 +6240,7 @@ _08153754: .4byte gUnknown_203F3E0
_08153758:
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _0815376A
@@ -6249,10 +6249,10 @@ _08153758:
_0815376A:
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08153784
@@ -9989,7 +9989,7 @@ _08155480:
lsrs r0, 16
add r5, sp, 0x70
adds r1, r5, 0
- bl sub_8099E90
+ bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
@@ -10021,7 +10021,7 @@ _08155480:
lsls r0, 16
lsrs r0, 16
adds r1, r5, 0
- bl sub_8099E90
+ bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
diff --git a/common_syms/fieldmap.txt b/common_syms/fieldmap.txt
new file mode 100644
index 000000000..b593fc3f2
--- /dev/null
+++ b/common_syms/fieldmap.txt
@@ -0,0 +1 @@
+VMap \ No newline at end of file
diff --git a/data/data.s b/data/data.s
index b02f4b451..dd692cb33 100644
--- a/data/data.s
+++ b/data/data.s
@@ -908,7 +908,7 @@ gUnknown_826D29E:: @ 826D29E
gUnknown_826D2B0:: @ 826D2B0
.incbin "baserom.gba", 0x26D2B0, 0x28
-gUnknown_826D2D8:: @ 826D2D8
+gDirectionToVectors:: @ 826D2D8
.incbin "baserom.gba", 0x26D2D8, 0x48
gUnknown_826D320:: @ 826D320
@@ -933,23 +933,3 @@ gUnknown_834EB8C:: @ 834EB8C
.incbin "baserom.gba", 0x34EB8C, 0x5FC
.include "data/maps/groups.inc"
-
-gUnknown_8352754:: @ 8352754
- .incbin "baserom.gba", 0x352754, 0x798
-
-gUnknown_8352EEC:: @ 8352EEC
- .incbin "baserom.gba", 0x352EEC, 0x4
-
-gUnknown_8352EF0:: @ 8352EF0
- .incbin "baserom.gba", 0x352EF0, 0x20
-
-gUnknown_8352F10:: @ 8352F10
- .incbin "baserom.gba", 0x352F10, 0x8
-
- .align 2
-gUnknown_8352F18:: @ 8352F18
- .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c"
-
- .align 2
-gUnknown_8352F4C:: @ 8352F4C
- .asciz "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE"
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 8d2183672..71e98b2ba 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -657,29 +657,16 @@ gUnknown_83A720C:: @ 83A720C
gUnknown_83A7240:: @ 83A7240
.asciz "0"
- .align 2
-gNullScriptPtr:: @ 83A7244
- .incbin "baserom.gba", 0x3A7244, 0x4
-
-gUnknown_83A7248:: @ 83A7248
- .incbin "baserom.gba", 0x3A7248, 0x14
-
-gUnknown_83A725C:: @ 83A725C
- .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
-
- .align 2
-gUnknown_83A7290:: @ 83A7290
- .asciz "0"
-
- .align 2
-gUnknown_83A7294:: @ 83A7294
- .incbin "baserom.gba", 0x3A7294, 0xC
+ .section .rodata.83A72A0
gUnknown_83A72A0:: @ 83A72A0
- .incbin "baserom.gba", 0x3A72A0, 0x2
+ .string "S$"
gUnknown_83A72A2:: @ 83A72A2
- .incbin "baserom.gba", 0x3A72A2, 0x6
+ .string "IES$"
+
+gUnknown_83A72A6:: @ 83A72A6
+ .string " "
gUnknown_83A72A8:: @ 83A72A8
.incbin "baserom.gba", 0x3A72A8, 0x68
@@ -1560,7 +1547,7 @@ gUnknown_83DFC9C:: @ 83DFC9C
gUnknown_83E04B0:: @ 83E04B0
.incbin "baserom.gba", 0x3E04B0, 0x208
-gUnknown_83E06B8:: @ 83E06B8
+gStdStringPtrs:: @ 83E06B8
.incbin "baserom.gba", 0x3E06B8, 0x74
gUnknown_83E072C:: @ 83E072C
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 9c39a96d2..a96e9ff70 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -785,7 +785,7 @@ gUnknown_84162B9:: @ 84162B9
.incbin "baserom.gba", 0x4162B9, 0x4
gUnknown_84162BD:: @ 84162BD
- .incbin "baserom.gba", 0x4162BD, 0x7
+ .string " BERRY$"
gText_Coins:: @ 84162C4
.incbin "baserom.gba", 0x4162C4, 0x24
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 9baa201e5..23f6ad5a9 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -40,7 +40,7 @@ gStdScripts:: @ 8160450
.4byte gStdScript_81A676C
.4byte gStdScript_81A8E58
.4byte gStdScript_81A4E66
-gStdScripts_End::
+gStdScriptsEnd::
gUnknown_8160478:: @ 8160478
.incbin "baserom.gba", 0x160478, 0x886C
diff --git a/data/fieldmap.s b/data/fieldmap.s
new file mode 100644
index 000000000..3b24a4f86
--- /dev/null
+++ b/data/fieldmap.s
@@ -0,0 +1,6 @@
+ .include "asm/macros.inc"
+
+ .section .rodata
+
+gUnknown_8352754:: @ 8352754
+ .incbin "baserom.gba", 0x352754, 0x798
diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc
index 29850d685..2faa40381 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -1,8 +1,8 @@
.align 2
gScriptCmdTable:: @ 815F9B4
- .4byte sub_8069ED0
- .4byte sub_8069ED4
+ .4byte ScrCmd_nop
+ .4byte ScrCmd_nop1
.4byte ScrCmd_end
.4byte ScrCmd_return
.4byte ScrCmd_call
@@ -38,48 +38,48 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_compare_var_to_var
.4byte ScrCmd_callnative
.4byte ScrCmd_gotonative
- .4byte sub_8069EFC
- .4byte sub_8069F3C
- .4byte sub_8069FA4
+ .4byte ScrCmd_special
+ .4byte ScrCmd_specialvar
+ .4byte ScrCmd_waitstate
.4byte ScrCmd_delay
.4byte ScrCmd_setflag
.4byte ScrCmd_clearflag
.4byte ScrCmd_checkflag
- .4byte sub_806A9D4
- .4byte sub_806A9D8
- .4byte sub_806A9DC
+ .4byte ScrCmd_initclock
+ .4byte ScrCmd_dodailyevents
+ .4byte ScrCmd_gettime
.4byte ScrCmd_playse
- .4byte sub_806B094
+ .4byte ScrCmd_waitse
.4byte ScrCmd_playfanfare
- .4byte sub_806B0CC
- .4byte sub_806B0E0
- .4byte sub_806B120
- .4byte sub_806B134
- .4byte sub_806B154
- .4byte sub_806B17C
- .4byte sub_806B1C8
+ .4byte ScrCmd_waitfanfare
+ .4byte ScrCmd_playbgm
+ .4byte ScrCmd_savebgm
+ .4byte ScrCmd_fadedefaultbgm
+ .4byte ScrCmd_fadenewbgm
+ .4byte ScrCmd_fadeoutbgm
+ .4byte ScrCmd_fadeinbgm
.4byte ScrCmd_warp
.4byte ScrCmd_warpsilent
.4byte ScrCmd_warpdoor
.4byte ScrCmd_warphole
- .4byte sub_806AC70
+ .4byte ScrCmd_warpteleport
.4byte ScrCmd_setwarp
.4byte ScrCmd_setdynamicwarp
- .4byte sub_806AE90
- .4byte sub_806AF10
+ .4byte ScrCmd_setdivewarp
+ .4byte ScrCmd_setholewarp
.4byte ScrCmd_getplayerxy
.4byte ScrCmd_getpartysize
- .4byte sub_806A610
+ .4byte ScrCmd_giveitem
.4byte ScrCmd_takeitem
- .4byte sub_806A6A0
- .4byte sub_806A6E4
+ .4byte ScrCmd_checkitemspace
+ .4byte ScrCmd_checkitem
.4byte ScrCmd_checkitemtype
.4byte ScrCmd_givepcitem
.4byte ScrCmd_checkpcitem
- .4byte sub_806A7DC
- .4byte sub_806A7F0
- .4byte sub_806A818
- .4byte sub_806A804
+ .4byte ScrCmd_givedecoration
+ .4byte ScrCmd_takedecoration
+ .4byte ScrCmd_checkdecor
+ .4byte ScrCmd_checkdecorspace
.4byte ScrCmd_applymovement
.4byte ScrCmd_applymovement_at
.4byte ScrCmd_waitmovement
@@ -94,34 +94,34 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_faceplayer
.4byte ScrCmd_turnobject
.4byte ScrCmd_trainerbattle
- .4byte sub_806C2D8
- .4byte ScrCmd_ontrainerbattleend
- .4byte ScrCmd_ontrainerbattleendgoto
+ .4byte ScrCmd_dotrainerbattle
+ .4byte ScrCmd_gotopostbattlescript
+ .4byte ScrCmd_gotobeatenscript
.4byte ScrCmd_checktrainerflag
.4byte ScrCmd_settrainerflag
.4byte ScrCmd_cleartrainerflag
.4byte ScrCmd_setobjectxyperm
.4byte ScrCmd_moveobjectoffscreen
.4byte ScrCmd_setobjectmovementtype
- .4byte sub_806B878
- .4byte sub_806B80C
- .4byte sub_806B88C
+ .4byte ScrCmd_waitmessage
+ .4byte ScrCmd_message
+ .4byte ScrCmd_closemessage
.4byte ScrCmd_lockall
.4byte ScrCmd_lock
.4byte ScrCmd_releaseall
.4byte ScrCmd_release
- .4byte sub_806BA3C
+ .4byte ScrCmd_waitbuttonpress
.4byte ScrCmd_yesnobox
.4byte ScrCmd_multichoice
.4byte ScrCmd_multichoicedefault
.4byte ScrCmd_multichoicegrid
- .4byte sub_806BB38
- .4byte sub_806BB8C
- .4byte sub_806BB98
- .4byte sub_806BB9C
- .4byte sub_806BBD8
- .4byte sub_806BBF8
- .4byte sub_806BC04
+ .4byte ScrCmd_drawbox
+ .4byte ScrCmd_erasebox
+ .4byte ScrCmd_drawboxtext
+ .4byte ScrCmd_showmonpic
+ .4byte ScrCmd_hidemonpic
+ .4byte ScrCmd_showcontestwinner
+ .4byte ScrCmd_braillemessage
.4byte ScrCmd_givemon
.4byte ScrCmd_giveegg
.4byte ScrCmd_setmonmove
@@ -130,33 +130,33 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_bufferleadmonspeciesname
.4byte ScrCmd_bufferpartymonnick
.4byte ScrCmd_bufferitemname
- .4byte sub_806BE34
+ .4byte ScrCmd_bufferdecorationname
.4byte ScrCmd_buffermovename
.4byte ScrCmd_buffernumberstring
.4byte ScrCmd_bufferstdstring
.4byte ScrCmd_bufferstring
- .4byte sub_806C3AC
- .4byte sub_806C3C0
- .4byte sub_806C3D4
+ .4byte ScrCmd_pokemart
+ .4byte ScrCmd_pokemartdecoration
+ .4byte ScrCmd_pokemartdecoration2
.4byte ScrCmd_playslotmachine
- .4byte sub_806C410
- .4byte sub_806C418
- .4byte sub_806C424
- .4byte sub_806C428
- .4byte sub_806C42C
+ .4byte ScrCmd_setberrytree
+ .4byte ScrCmd_choosecontestmon
+ .4byte ScrCmd_startcontest
+ .4byte ScrCmd_showcontestresults
+ .4byte ScrCmd_contestlinktransfer
.4byte ScrCmd_random
.4byte ScrCmd_givemoney
.4byte ScrCmd_takemoney
.4byte ScrCmd_checkmoney
- .4byte sub_806C1CC
- .4byte sub_806C21C
- .4byte sub_806C228
- .4byte sub_806C414
+ .4byte ScrCmd_showmoneybox
+ .4byte ScrCmd_hidemoneybox
+ .4byte ScrCmd_updatemoneybox
+ .4byte ScrCmd_getpricereduction
.4byte ScrCmd_fadescreen
.4byte ScrCmd_fadescreenspeed
.4byte ScrCmd_setflashradius
.4byte ScrCmd_animateflash
- .4byte sub_806B85C
+ .4byte ScrCmd_messageautoscroll
.4byte ScrCmd_dofieldeffect
.4byte ScrCmd_setfieldeffectarg
.4byte ScrCmd_waitfieldeffect
@@ -175,16 +175,16 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_turnvobject
.4byte ScrCmd_opendoor
.4byte ScrCmd_closedoor
- .4byte sub_806C688
+ .4byte ScrCmd_waitdooranim
.4byte ScrCmd_setdooropen
.4byte ScrCmd_setdoorclosed
- .4byte sub_806C724
- .4byte sub_806C728
+ .4byte ScrCmd_addelevmenuitem
+ .4byte ScrCmd_showelevmenu
.4byte ScrCmd_checkcoins
.4byte ScrCmd_givecoins
.4byte ScrCmd_takecoins
.4byte ScrCmd_setwildbattle
- .4byte sub_806C39C
+ .4byte ScrCmd_dowildbattle
.4byte ScrCmd_setvaddress
.4byte ScrCmd_vgoto
.4byte ScrCmd_vcall
@@ -193,27 +193,27 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_vmessage
.4byte ScrCmd_vloadword
.4byte ScrCmd_vbufferstring
- .4byte sub_806C258
+ .4byte ScrCmd_showcoinsbox
.4byte ScrCmd_hidecoinsbox
.4byte ScrCmd_updatecoinsbox
.4byte ScrCmd_incrementgamestat
.4byte ScrCmd_setescapewarp
- .4byte sub_806C540
+ .4byte ScrCmd_waitmoncry
.4byte ScrCmd_bufferboxname
- .4byte sub_806B7EC
- .4byte sub_806B828
- .4byte sub_806B850
- .4byte sub_806C7BC
- .4byte sub_806C7C8
- .4byte sub_806A888
+ .4byte ScrCmd_cmdC7
+ .4byte ScrCmd_cmdC8
+ .4byte ScrCmd_cmdC9
+ .4byte ScrCmd_cmdCA
+ .4byte ScrCmd_cmdCB
+ .4byte ScrCmd_comparestattoword
.4byte ScrCmd_setmonobedient
.4byte ScrCmd_checkmonobedience
- .4byte sub_806A28C
- .4byte sub_806A8C0
- .4byte sub_806ACF8
- .4byte sub_806C844
- .4byte sub_806BC40
- .4byte sub_806BD90
+ .4byte ScrCmd_cmdCF
+ .4byte ScrCmd_cmdD0
+ .4byte ScrCmd_warpD1
+ .4byte ScrCmd_setmonmetlocation
+ .4byte ScrCmd_getbraillestringwidth
+ .4byte ScrCmd_bufferitemnameplural
gScriptCmdTableEnd:: @ 815FD08
- .4byte sub_8069ED0
+ .4byte ScrCmd_nop
diff --git a/data/specials.inc b/data/specials.inc
index 171a6fd8e..56b666207 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -327,8 +327,8 @@ gSpecials:: @ 815FD60
def_special nullsub_75
def_special nullsub_75
def_special sub_807B6C0
- def_special sp13E_warp_to_last_warp
- def_special sp13F_fall_to_last_warp
+ def_special DoDiveWarp
+ def_special DoFallWarp
def_special nullsub_75
def_special nullsub_75
def_special sub_80E5E70
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 86a84f471..61395811b 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -11,8 +11,8 @@ void BattleSetup_StartWildBattle(void);
void BattleSetup_StartRoamerBattle(void);
u8 HasTrainerAlreadyBeenFought(u16);
-void trainer_flag_set(u16);
-void trainer_flag_clear(u16);
+void SetTrainerFlag(u16);
+void ClearTrainerFlag(u16);
void BattleSetup_StartTrainerBattle(void);
u8 *BattleSetup_GetScriptAddrAfterBattle(void);
u8 *BattleSetup_GetTrainerPostBattleScript(void);
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 051865210..a2a4d3eac 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -3,14 +3,14 @@
#include "global.h"
-void sub_80AF734(void);
-void sp13E_warp_to_last_warp(void);
-void sub_80AF7D0(void);
-void sp13F_fall_to_last_warp(void);
+void sub_807DF7C(void);
+void DoWarp(void);
+void DoDiveWarp(void);
+void DoDoorWarp(void);
-void sub_80AF848(void);
-void sub_80AF87C(void);
+void DoFallWarp(void);
+void sub_807E59C(void);
+void sub_807E500(void);
void sub_807DF64(void);
-void sub_807DF7C(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index d2ec58979..69e3419de 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -35,7 +35,7 @@ u8 sub_808D4F4(void);
void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
void npc_load_two_palettes__no_record(u16, u8);
void npc_load_two_palettes__and_record(u16, u8);
-void sub_808EBA8(u8, u8, u8, s16, s16);
+void sub_805F7C4(u8, u8, u8, s16, s16);
void pal_patch_for_npc(u16, u8);
void sub_808E16C(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
@@ -59,13 +59,13 @@ const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
void gpu_pal_allocator_reset__manage_upper_four(void);
void sub_808E82C(u8, u8, u8, s16, s16);
-void sub_808E7E4(u8, u8, u8);
-void sub_808E78C(u8, u8, u8, u8);
+void sub_805F400(u8, u8, u8);
+void sub_805F3A8(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
void npc_coords_shift(struct MapObject *, s16, s16);
void sub_808EB08(struct MapObject *, s16, s16);
-void sub_808F254(u8, u8, u8);
+void sub_805FE94(u8, u8, u8);
void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *));
u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 GetOppositeDirection(u8);
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
index 2d3f69d95..cd1b19eaf 100644
--- a/include/field_map_obj_helpers.h
+++ b/include/field_map_obj_helpers.h
@@ -4,6 +4,6 @@
#include "global.h"
void UnfreezeMapObjects(void);
-void sub_8097B78(u8, u8);
+void sub_8069058(u8, u8);
#endif
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 297d66441..bb78bd0f3 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -20,5 +20,6 @@ u8 sub_805C808(u8);
void SetPlayerAvatarStateMask(u8 mask);
void sub_805D9C4(struct Sprite *sprite);
void sub_805D154(u8 direction);
+void sub_805DAE4(u8 direction);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
index add61d57c..14d7e5d81 100644
--- a/include/field_screen_effect.h
+++ b/include/field_screen_effect.h
@@ -4,7 +4,7 @@
#include "global.h"
void sub_80AF79C(void);
-void sub_80B009C(u8);
+void sub_807F028(u8);
void sub_80B0244(void);
#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 2b7991b55..2d495fdd5 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -4,6 +4,7 @@
#include "global.h"
u8 GetLeadMonIndex(void);
+u8 CountDigits(u16 number);
void TV_PrintIntToStringVar(u8, int);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index b896259e9..eb80c455a 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -10,6 +10,7 @@ u8 GetSav1Weather(void);
void sub_80AEDBC(void);
void DoCurrentWeather(void);
+void SetSav1WeatherFromCurrMapHeader(void);
void sub_807B0C4(u16 *, u16 *, u32);
#endif // GUARD_WEATHER_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index c5abdb2e1..537626edc 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -3,19 +3,24 @@
#include "global.h"
-extern struct MapCoords {
- int width;
- int height;
-} gUnknown_03005DC0;
+#define NUM_TILES_IN_PRIMARY 640
+#define NUM_TILES_TOTAL 1024
+#define NUM_METATILES_IN_PRIMARY 640
+#define NUM_METATILES_TOTAL 1024
+#define NUM_PALS_IN_PRIMARY 7
+#define NUM_PALS_TOTAL 13
+#define VIRTUAL_MAP_SIZE 0x2800
+
+extern struct BackupMapData VMap;
u32 MapGridGetMetatileIdAt(int, int);
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16);
void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
-bool8 MapGridIsImpassableAt(s16, s16);
-s32 GetMapBorderIdAt(s16, s16);
-bool32 CanCameraMoveInDirection(u8);
-u16 GetBehaviorByMetatileId(u16 metatileId);
+bool8 MapGridIsImpassableAt(s32, s32);
+s32 GetMapBorderIdAt(s32, s32);
+bool32 CanCameraMoveInDirection(s32);
+u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr);
#endif //GUARD_FIELDMAP_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index ed5054b7d..b602741a6 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -51,8 +51,8 @@ struct Tileset
/*0x04*/ void *tiles;
/*0x08*/ void *palettes;
/*0x0c*/ void *metatiles;
- /*0x10*/ void *metatileAttributes;
/*0x14*/ TilesetCB callback;
+ /*0x10*/ void *metatileAttributes;
};
struct MapData
@@ -63,12 +63,14 @@ struct MapData
/*0x0c*/ u16 *map;
/*0x10*/ struct Tileset *primaryTileset;
/*0x14*/ struct Tileset *secondaryTileset;
+ /*0x18*/ u8 unk18;
+ /*0x19*/ u8 unk19;
};
struct BackupMapData
{
- s32 width;
- s32 height;
+ s32 Xsize;
+ s32 Ysize;
u16 *map;
};
@@ -149,9 +151,9 @@ struct MapEvents
struct MapConnection
{
/*0x00*/ u8 direction;
- /*0x01*/ u32 offset;
- /*0x05*/ u8 mapGroup;
- /*0x06*/ u8 mapNum;
+ /*0x04*/ u32 offset;
+ /*0x08*/ u8 mapGroup;
+ /*0x09*/ u8 mapNum;
};
struct MapConnections
diff --git a/include/global.h b/include/global.h
index f418ff757..26ce4a8cc 100644
--- a/include/global.h
+++ b/include/global.h
@@ -328,7 +328,8 @@ struct SaveBlock2
/*0x0AC*/ u8 filler_AC[0x3F4];
/*0x4A0*/ u32 unk_4A0[0x2F];
/*0x55c*/ struct UnkSaveBlock2Substruct_55C unk_55C;
- /*0x574*/ u8 filler_574[0x524];
+ /*0x574*/ u8 filler_574[0x324];
+ /*0x898*/ u16 mapView[0x100];
/*0xA98*/ struct LinkBattleRecords linkBattleRecords;
/*0xAF0*/ struct BerryCrush berryCrush;
/*0xB00*/ u8 filler_B00[0x420];
diff --git a/include/item.h b/include/item.h
index bc1a49766..25177cb6e 100644
--- a/include/item.h
+++ b/include/item.h
@@ -62,7 +62,8 @@ u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
void sub_809A2DC(void);
void sub_809A2A4(void);
-void sub_8099E90(u16, u8 *);
-bool8 sub_809A084(u16 itemId, u16 amount);
+void CopyItemName(u16, u8 *);
+void sub_809A824(u16 itemId);
+bool8 AddBagItem(u16 itemId, u16 amount);
#endif // ITEM_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
index c8e075658..2927ca26d 100644
--- a/include/map_obj_lock.h
+++ b/include/map_obj_lock.h
@@ -3,9 +3,9 @@
#include "global.h"
-bool8 sub_80983C4(void);
+bool8 sub_8069590(void);
void ScriptFreezeMapObjects(void);
-bool8 sub_809847C(void);
+bool8 sub_8069648(void);
void LockSelectedMapObject(void);
void sub_8098630(void);
bool8 sub_8098734(void);
diff --git a/include/map_preview_screen.h b/include/map_preview_screen.h
new file mode 100644
index 000000000..8d9114b82
--- /dev/null
+++ b/include/map_preview_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MAP_PREVIEW_SCREEN_H
+#define GUARD_MAP_PREVIEW_SCREEN_H
+
+void sub_80F85BC(u16 a0);
+
+#endif //GUARD_MAP_PREVIEW_SCREEN_H
diff --git a/include/menu.h b/include/menu.h
index b932693f7..b5078df5e 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -37,5 +37,6 @@ void clear_scheduled_bg_copies_to_vram(void);
void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void sub_810F4D8(u8 windowId, bool32 someBool);
+void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
#endif // GUARD_MENU_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index 2a68a35e6..32b46b552 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -19,5 +19,9 @@ void sub_80F6F54(u8, u8);
u8 sub_80F78A8(void);
void sub_80F6E9C(void);
void sub_80F6EE4(u8 windowId, bool8 transfer);
+void sub_80F7974(const u8 *);
+u8 GetStartMenuWindowId(void);
+void sub_80F7998(void);
+void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
index 5e2e4c11c..b32d9cf48 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -24,6 +24,8 @@ struct UCoords32
u32 x, y;
};
+extern struct UCoords32 gDirectionToVectors[];
+
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
extern MainCallback gFieldCallback;
@@ -35,7 +37,10 @@ void Overworld_SetMapObjTemplateMovementType(u8, u8);
void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
-void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void SetDynamicWarpWithCoords(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void Overworld_SetHealLocationWarp(u8);
void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void sub_8084E2C(s8, s8, s8, s8, s8);
@@ -81,6 +86,10 @@ void sub_8055DC4(void);
u8 sav1_map_get_name(void);
+void SetCurrentMapLayout(u16 mapDataId);
+void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y);
+
+void ResetInitialPlayerAvatarState(void);
void sub_8055D40(u16 mapDataId);
void sub_80563F0(void);
@@ -88,5 +97,7 @@ extern u8 gUnknown_2031DD8;
extern u8 gUnknown_2036E28;
extern bool8 (* gUnknown_3005024)(void);
+void SetLastHealLocationWarp(u8 healLocaionId);
+void sub_8055864(u8 mapGroup, u8 mapNum);
#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
index 3af0d5d7b..31c8ffefe 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -70,6 +70,8 @@ void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
void BlendPalettes(u32, u8, u16);
void BlendPalettesUnfaded(u32, u8, u16);
void sub_80716F8(const u16 *, u16 *, u16, u8);
+void TintPalette_GrayScale(u16 *, u16);
+void TintPalette_SepiaTone(u16 *, u16);
extern struct PaletteFadeControl gPaletteFade;
diff --git a/include/party_menu.h b/include/party_menu.h
index 19e1f7d4e..2e83c1496 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -12,7 +12,7 @@ enum {
AILMENT_BRN
};
-bool8 pokemon_has_move(struct Pokemon *, u16);
+bool8 MonKnowsMove(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
u8 pokemon_ailments_get_primary(u32 status);
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 5b2d2052b..897c5a42e 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -12,5 +12,6 @@ void SetBoxMonNickFromAnyBox(u8 boxId, u8 monPosition, u8 * newNick);
void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
void sub_808BCB4(u8 boxId, u8 monPosition);
+u8 * GetBoxNamePtr(u8 boxId);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/quest_log.h b/include/quest_log.h
index 9f8a0ea21..7f4bafada 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -21,5 +21,11 @@ extern struct UnkStruct_203AE98 * gUnknown_3005E94;
void sub_8112720(u8);
void sub_8113550(u16, const u16 *);
+void sub_8115748(u16);
+u8 sub_8112CAC(void);
+bool8 sub_81119D4(void (*func)(void));
+void sub_8111F38(u16, u16);
+
+extern u8 gUnknown_203ADFA;
#endif //GUARD_QUEST_LOG_H
diff --git a/include/scrcmd.h b/include/scrcmd.h
new file mode 100644
index 000000000..0ef357ece
--- /dev/null
+++ b/include/scrcmd.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SCRCMD_H
+#define GUARD_SCRCMD_H
+
+extern struct ScriptContext * gUnknown_3005070;
+
+#endif //GUARD_SCRCMD_H
diff --git a/include/script.h b/include/script.h
index ebb4caa86..8ffbe1563 100644
--- a/include/script.h
+++ b/include/script.h
@@ -65,5 +65,14 @@ void sub_80992A0(u8 *script, u16 scriptSize);
bool32 sub_8069DFC(void);
void sub_8069EA4(u8 * script, u16 scriptSize);
u8 * sub_8069E48(void);
+void sub_8069998(u8 var);
+void sub_80699F8(void);
+void sub_8069964(void);
+void sub_80699A4(void);
+void sub_8069970(void);
+void sub_8069A20(void);
+void sub_8069A2C(void);
+
+extern const u8 *gRAMScriptPtr;
#endif // GUARD_SCRIPT_H
diff --git a/include/script_menu.h b/include/script_menu.h
index 1e95570b3..f82b061a5 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -3,7 +3,7 @@
#include "global.h"
-extern const u8 *const gUnknown_0858BAF0[9];
+extern const u8 *const gStdStringPtrs[9];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
@@ -11,5 +11,6 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
+void sub_809D6D4(void);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/script_movement.h b/include/script_movement.h
index ae446812e..2a6dbd2a7 100644
--- a/include/script_movement.h
+++ b/include/script_movement.h
@@ -5,6 +5,6 @@
bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
-void sub_80D338C(void);
+void sub_80974D8(void);
#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/script_pokemon_util_80A0058.h b/include/script_pokemon_util_80A0058.h
new file mode 100644
index 000000000..e1d228589
--- /dev/null
+++ b/include/script_pokemon_util_80A0058.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_SCRIPT_POKEMON_UTIL_80A0058_H
+#define GUARD_SCRIPT_POKEMON_UTIL_80A0058_H
+
+bool8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unk1, u32 unk2, u8 unk3);
+bool8 ScriptGiveEgg(u16 species);
+void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot);
+
+#endif //GUARD_SCRIPT_POKEMON_UTIL_80A0058_H
diff --git a/include/sound.h b/include/sound.h
index 34fdfc839..e720fc1a2 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -31,6 +31,7 @@ void PlayCry3(u16 species, s8 pan, u8 mode);
void PlayCry4(u16 species, s8 pan, u8 mode);
void PlayCry5(u16 species, u8 mode);
void PlayCry6(u16 species, s8 pan, u8 mode);
+void PlayCry7(u16 species, u8 mode);
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode);
bool8 IsCryFinished(void);
void StopCryAndClearCrySongs(void);
diff --git a/ld_script.txt b/ld_script.txt
index 8d188156b..7d2adefe7 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -91,7 +91,7 @@ SECTIONS {
asm/play_time.o(.text);
asm/new_game.o(.text);
asm/overworld.o(.text);
- asm/fieldmap.o(.text);
+ src/fieldmap.o(.text);
src/metatile_behavior.o(.text);
asm/field_camera.o(.text);
asm/field_door.o(.text);
@@ -103,7 +103,7 @@ SECTIONS {
asm/map_obj_lock.o(.text);
asm/text_window_graphics.o(.text);
src/script.o(.text);
- asm/scrcmd.o(.text);
+ src/scrcmd.o(.text);
asm/field_control_avatar.o(.text);
asm/event_data.o(.text);
asm/coord_event_weather.o(.text);
@@ -367,9 +367,13 @@ SECTIONS {
src/bg_regs.o(.rodata);
src/string_util.o(.rodata);
data/data.o(.rodata);
+ data/fieldmap.o(.rodata);
+ src/fieldmap.o(.rodata);
src/metatile_behavior.o(.rodata);
data/metatile_behavior.o(.rodata);
data/data_835B488.o(.rodata);
+ src/scrcmd.o(.rodata);
+ data/data_835B488.o(.rodata.83A72A0);
src/battle_ai_script_commands.o(.rodata);
data/data_83F5738.o(.rodata);
src/save.o(.rodata);
diff --git a/src/fieldmap.c b/src/fieldmap.c
new file mode 100644
index 000000000..be5e1d54a
--- /dev/null
+++ b/src/fieldmap.c
@@ -0,0 +1,1025 @@
+#include "global.h"
+#include "bg.h"
+#include "palette.h"
+#include "overworld.h"
+#include "script.h"
+#include "menu.h"
+#include "new_menu_helpers.h"
+#include "quest_log.h"
+#include "fieldmap.h"
+
+struct ConnectionFlags
+{
+ u8 south:1;
+ u8 north:1;
+ u8 west:1;
+ u8 east:1;
+};
+
+void sub_8058A00(struct MapHeader *mapHeader);
+void map_copy_with_padding(u16 *map, u16 width, u16 height);
+void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader);
+void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+void LoadSavedMapView(void);
+struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y);
+bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection);
+bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset);
+
+struct BackupMapData VMap;
+EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
+EWRAM_DATA struct MapHeader gMapHeader = {};
+EWRAM_DATA struct Camera gCamera = {};
+EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {};
+
+const struct ConnectionFlags sDummyConnectionFlags = {};
+
+const u32 gUnknown_8352EF0[] = {
+ 0x1ff,
+ 0x3e00,
+ 0x3c000,
+ 0xfc0000,
+ 0x7000000,
+ 0x18000000,
+ 0x60000000,
+ 0x80000000
+};
+
+const u8 gUnknown_8352F10[] = {
+ 0,
+ 9,
+ 14,
+ 18,
+ 24,
+ 27,
+ 29,
+ 31
+};
+
+const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection)
+{
+ return get_mapheader_by_bank_and_number(connection->mapGroup, connection->mapNum);
+}
+
+void not_trainer_hill_battle_pyramid(void)
+{
+ sub_8058A00(&gMapHeader);
+ mapheader_run_script_with_tag_x1();
+}
+
+void sub_80589E8(void)
+{
+ sub_8058A00(&gMapHeader);
+ LoadSavedMapView();
+ mapheader_run_script_with_tag_x1();
+}
+
+void sub_8058A00(struct MapHeader * mapHeader)
+{
+ const struct MapData * mapData = mapHeader->mapData;
+ CpuFastFill(0x03FF03FF, gBackupMapData, sizeof(gBackupMapData));
+ VMap.map = gBackupMapData;
+ VMap.Xsize = mapData->width + 15;
+ VMap.Ysize = mapData->height + 14;
+ AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c", 158);
+ map_copy_with_padding(mapData->map, mapData->width, mapData->height);
+ mapheader_copy_mapdata_of_adjacent_maps(mapHeader);
+}
+
+void map_copy_with_padding(u16 *map, u16 width, u16 height)
+{
+ s32 y;
+ u16 *dest = VMap.map;
+ dest += VMap.Xsize * 7 + 7;
+
+ for (y = 0; y < height; y++)
+ {
+ CpuCopy16(map, dest, width * sizeof(u16));
+ dest += width + 15;
+ map += width;
+ }
+}
+
+void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader)
+{
+ s32 count;
+ struct MapConnection *connection;
+ s32 i;
+
+ gMapConnectionFlags = sDummyConnectionFlags;
+
+ /*
+ * This null pointer check is new to FireRed. It was kept in
+ * Emerald, with the above struct assignment moved to after
+ * this check.
+ */
+ if (mapHeader->connections)
+ {
+ count = mapHeader->connections->count;
+ connection = mapHeader->connections->connections;
+ // Emerald puts this line here instead:
+ // gMapConnectionFlags = sDummyConnectionFlags;
+ for (i = 0; i < count; i++, connection++)
+ {
+ struct MapHeader const *cMap = mapconnection_get_mapheader(connection);
+ u32 offset = connection->offset;
+ switch (connection->direction)
+ {
+ case CONNECTION_SOUTH:
+ fillSouthConnection(mapHeader, cMap, offset);
+ gMapConnectionFlags.south = 1;
+ break;
+ case CONNECTION_NORTH:
+ fillNorthConnection(mapHeader, cMap, offset);
+ gMapConnectionFlags.north = 1;
+ break;
+ case CONNECTION_WEST:
+ fillWestConnection(mapHeader, cMap, offset);
+ gMapConnectionFlags.west = 1;
+ break;
+ case CONNECTION_EAST:
+ fillEastConnection(mapHeader, cMap, offset);
+ gMapConnectionFlags.east = 1;
+ break;
+ }
+ }
+ }
+}
+
+void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x2, s32 y2, s32 width, s32 height)
+{
+ s32 i;
+ u16 *src;
+ u16 *dest;
+ s32 mapWidth;
+
+ mapWidth = connectedMapHeader->mapData->width;
+ src = &connectedMapHeader->mapData->map[mapWidth * y2 + x2];
+ dest = &VMap.map[VMap.Xsize * y + x];
+
+ for (i = 0; i < height; i++)
+ {
+ CpuCopy16(src, dest, width * 2);
+ dest += VMap.Xsize;
+ src += mapWidth;
+ }
+}
+
+void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+{
+ s32 x, y;
+ s32 x2;
+ s32 width;
+ s32 cWidth;
+
+ if (connectedMapHeader)
+ {
+ cWidth = connectedMapHeader->mapData->width;
+ x = offset + 7;
+ y = mapHeader->mapData->height + 7;
+ if (x < 0)
+ {
+ x2 = -x;
+ x += cWidth;
+ if (x < VMap.Xsize)
+ {
+ width = x;
+ }
+ else
+ {
+ width = VMap.Xsize;
+ }
+ x = 0;
+ }
+ else
+ {
+ x2 = 0;
+ if (x + cWidth < VMap.Xsize)
+ {
+ width = cWidth;
+ }
+ else
+ {
+ width = VMap.Xsize - x;
+ }
+ }
+
+ sub_8058B54(
+ x, y,
+ connectedMapHeader,
+ x2, /*y2*/ 0,
+ width, /*height*/ 7);
+ }
+}
+
+void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+{
+ s32 x;
+ s32 x2, y2;
+ s32 width;
+ s32 cWidth, cHeight;
+
+ if (connectedMapHeader)
+ {
+ cWidth = connectedMapHeader->mapData->width;
+ cHeight = connectedMapHeader->mapData->height;
+ x = offset + 7;
+ y2 = cHeight - 7;
+ if (x < 0)
+ {
+ x2 = -x;
+ x += cWidth;
+ if (x < VMap.Xsize)
+ {
+ width = x;
+ }
+ else
+ {
+ width = VMap.Xsize;
+ }
+ x = 0;
+ }
+ else
+ {
+ x2 = 0;
+ if (x + cWidth < VMap.Xsize)
+ {
+ width = cWidth;
+ }
+ else
+ {
+ width = VMap.Xsize - x;
+ }
+ }
+
+ sub_8058B54(
+ x, /*y*/ 0,
+ connectedMapHeader,
+ x2, y2,
+ width, /*height*/ 7);
+
+ }
+}
+
+void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+{
+ s32 y;
+ s32 x2, y2;
+ s32 height;
+ s32 cWidth, cHeight;
+ if (connectedMapHeader)
+ {
+ cWidth = connectedMapHeader->mapData->width;
+ cHeight = connectedMapHeader->mapData->height;
+ y = offset + 7;
+ x2 = cWidth - 7;
+ if (y < 0)
+ {
+ y2 = -y;
+ if (y + cHeight < VMap.Ysize)
+ {
+ height = y + cHeight;
+ }
+ else
+ {
+ height = VMap.Ysize;
+ }
+ y = 0;
+ }
+ else
+ {
+ y2 = 0;
+ if (y + cHeight < VMap.Ysize)
+ {
+ height = cHeight;
+ }
+ else
+ {
+ height = VMap.Ysize - y;
+ }
+ }
+
+ sub_8058B54(
+ /*x*/ 0, y,
+ connectedMapHeader,
+ x2, y2,
+ /*width*/ 7, height);
+ }
+}
+
+void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+{
+ s32 x, y;
+ s32 y2;
+ s32 height;
+ s32 cHeight;
+ if (connectedMapHeader)
+ {
+ cHeight = connectedMapHeader->mapData->height;
+ x = mapHeader->mapData->width + 7;
+ y = offset + 7;
+ if (y < 0)
+ {
+ y2 = -y;
+ if (y + cHeight < VMap.Ysize)
+ {
+ height = y + cHeight;
+ }
+ else
+ {
+ height = VMap.Ysize;
+ }
+ y = 0;
+ }
+ else
+ {
+ y2 = 0;
+ if (y + cHeight < VMap.Ysize)
+ {
+ height = cHeight;
+ }
+ else
+ {
+ height = VMap.Ysize - y;
+ }
+ }
+
+ sub_8058B54(
+ x, y,
+ connectedMapHeader,
+ /*x2*/ 0, y2,
+ /*width*/ 8, height);
+ }
+}
+
+union Block
+{
+ struct
+ {
+ u16 block:10;
+ u16 collision:2;
+ u16 elevation:4;
+ } block;
+ u16 value;
+};
+
+#define MapGridGetBorderTileAt(x, y) ({ \
+ u16 block; \
+ s32 xprime; \
+ s32 yprime; \
+ \
+ struct MapData *mapData = gMapHeader.mapData; \
+ \
+ xprime = x - 7; \
+ xprime += 8 * mapData->unk18; \
+ xprime %= mapData->unk18; \
+ \
+ yprime = y - 7; \
+ yprime += 8 * mapData->unk19; \
+ yprime %= mapData->unk19; \
+ \
+ block = mapData->border[xprime + yprime * mapData->unk18]; \
+ block |= 0xC00; \
+ block; \
+})
+
+#define MapGridGetBorderTileAt2(x, y) ({ \
+ u16 block; \
+ s32 xprime; \
+ s32 yprime; \
+ \
+ struct MapData *mapData = gMapHeader.mapData; \
+ \
+ xprime = x - 7; \
+ xprime += 8 * mapData->unk18; \
+ xprime %= mapData->unk18; \
+ \
+ yprime = y - 7; \
+ yprime += 8 * mapData->unk19; \
+ yprime %= mapData->unk19; \
+ \
+ block = mapData->border[xprime + yprime * mapData->unk18] | 0xC00; \
+ block; \
+})
+
+#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize)
+
+#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt2(x, y))
+
+u8 MapGridGetZCoordAt(s32 x, s32 y)
+{
+ u16 block = MapGridGetTileAt(x, y);
+
+ if (block == 0x3ff)
+ {
+ return 0;
+ }
+
+ return block >> 12;
+}
+
+u8 MapGridIsImpassableAt(s32 x, s32 y)
+{
+
+ u16 block = MapGridGetTileAt(x, y);
+
+ if (block == 0x3ff)
+ {
+ return 1;
+ }
+
+ return (block & 0xc00) >> 10;
+}
+
+u32 MapGridGetMetatileIdAt(s32 x, s32 y)
+{
+ u16 block = MapGridGetTileAt(x, y);
+
+ if (block == 0x3FF)
+ {
+ return MapGridGetBorderTileAt(x, y) & 0x3FF;
+ }
+ return block & 0x3FF;
+}
+
+u32 sub_8058F1C(u32 original, u8 bit)
+{
+ if (bit >= 8)
+ return original;
+
+ return (original & gUnknown_8352EF0[bit]) >> gUnknown_8352F10[bit];
+}
+
+u32 sub_8058F48(s16 x, s16 y, u8 z)
+{
+ u16 metatileId = MapGridGetMetatileIdAt(x, y);
+ return GetBehaviorByMetatileIdAndMapData(gMapHeader.mapData, metatileId, z);
+}
+
+u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y)
+{
+ return sub_8058F48(x, y, 0);
+}
+
+u8 MapGridGetMetatileLayerTypeAt(s32 x, s32 y)
+{
+ return sub_8058F48(x, y, 6);
+}
+
+void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile)
+{
+ s32 i;
+ if (x >= 0 && x < VMap.Xsize
+ && y >= 0 && y < VMap.Ysize)
+ {
+ i = x + y * VMap.Xsize;
+ VMap.map[i] = (VMap.map[i] & 0xf000) | (metatile & 0xfff);
+ }
+}
+
+void MapGridSetMetatileEntryAt(s32 x, s32 y, u16 metatile)
+{
+ s32 i;
+ if (x >= 0 && x < VMap.Xsize
+ && y >= 0 && y < VMap.Ysize)
+ {
+ i = x + VMap.Xsize * y;
+ VMap.map[i] = metatile;
+ }
+}
+
+void sub_8059024(s32 x, s32 y, bool32 arg2)
+{
+ if (x >= 0 && x < VMap.Xsize
+ && y >= 0 && y < VMap.Ysize)
+ {
+ if (arg2)
+ {
+ VMap.map[x + VMap.Xsize * y] |= 0x0C00;
+ }
+ else
+ {
+ VMap.map[x + VMap.Xsize * y] &= ~0x0C00;
+ }
+ }
+}
+
+u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr)
+{
+ u32 * attributes;
+
+ if (metatile < NUM_METATILES_IN_PRIMARY)
+ {
+ attributes = mapData->primaryTileset->metatileAttributes;
+ return sub_8058F1C(attributes[metatile], attr);
+ }
+ else if (metatile < 0x400)
+ {
+ attributes = mapData->secondaryTileset->metatileAttributes;
+ return sub_8058F1C(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr);
+ }
+ else
+ {
+ return 0xFF;
+ }
+}
+
+void save_serialize_map(void)
+{
+ s32 i, j;
+ s32 x, y;
+ u16 *mapView;
+ s32 width;
+ mapView = gSaveBlock2Ptr->mapView;
+ width = VMap.Xsize;
+ x = gSaveBlock1Ptr->pos.x;
+ y = gSaveBlock1Ptr->pos.y;
+ for (i = y; i < y + 14; i++)
+ {
+ for (j = x; j < x + 15; j++)
+ {
+ *mapView++ = gBackupMapData[width * i + j];
+ }
+ }
+}
+
+bool32 SavedMapViewIsEmpty(void)
+{
+ u16 i;
+ u32 marker = 0;
+
+ // BUG: This loop extends past the bounds of the mapView array. Its size is only 0x100.
+ for (i = 0; i < 0x200; i++)
+ marker |= gSaveBlock2Ptr->mapView[i];
+
+ if (marker == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void ClearSavedMapView(void)
+{
+ CpuFill16(0, gSaveBlock2Ptr->mapView, sizeof(gSaveBlock2Ptr->mapView));
+}
+
+void LoadSavedMapView(void)
+{
+ s32 i, j;
+ s32 x, y;
+ u16 *mapView;
+ s32 width;
+ mapView = gSaveBlock2Ptr->mapView;
+ if (!SavedMapViewIsEmpty())
+ {
+ width = VMap.Xsize;
+ x = gSaveBlock1Ptr->pos.x;
+ y = gSaveBlock1Ptr->pos.y;
+ for (i = y; i < y + 14; i++)
+ {
+ for (j = x; j < x + 15; j++)
+ {
+ gBackupMapData[j + width * i] = *mapView;
+ mapView++;
+ }
+ }
+ ClearSavedMapView();
+ }
+}
+
+void sub_8059250(u8 a1)
+{
+ s32 width;
+ u16 *mapView;
+ s32 x0, y0;
+ s32 x2, y2;
+ u16 *src, *dest;
+ s32 srci, desti;
+ s32 r9, r8;
+ s32 x, y;
+ s32 i, j;
+ mapView = gSaveBlock2Ptr->mapView;
+ width = VMap.Xsize;
+ r9 = 0;
+ r8 = 0;
+ x0 = gSaveBlock1Ptr->pos.x;
+ y0 = gSaveBlock1Ptr->pos.y;
+ x2 = 15;
+ y2 = 14;
+ switch (a1)
+ {
+ case CONNECTION_NORTH:
+ y0 += 1;
+ y2 = 13;
+ break;
+ case CONNECTION_SOUTH:
+ r8 = 1;
+ y2 = 13;
+ break;
+ case CONNECTION_WEST:
+ x0 += 1;
+ x2 = 14;
+ break;
+ case CONNECTION_EAST:
+ r9 = 1;
+ x2 = 14;
+ break;
+ }
+ for (y = 0; y < y2; y++)
+ {
+ i = 0;
+ j = 0;
+ for (x = 0; x < x2; x++)
+ {
+ desti = width * (y + y0);
+ srci = (y + r8) * 15 + r9;
+ src = &mapView[srci + i];
+ dest = &gBackupMapData[x0 + desti + j];
+ *dest = *src;
+ i++;
+ j++;
+ }
+ }
+ ClearSavedMapView();
+}
+
+s32 GetMapBorderIdAt(s32 x, s32 y)
+{
+ if (MapGridGetTileAt(x, y) == 0x3FF)
+ {
+ return -1;
+ }
+
+ if (x >= VMap.Xsize - 8)
+ {
+ if (!gMapConnectionFlags.east)
+ {
+ return -1;
+ }
+ return CONNECTION_EAST;
+ }
+
+ if (x < 7)
+ {
+ if (!gMapConnectionFlags.west)
+ {
+ return -1;
+ }
+ return CONNECTION_WEST;
+ }
+
+ if (y >= VMap.Ysize - 7)
+ {
+ if (!gMapConnectionFlags.south)
+ {
+ return -1;
+ }
+ return CONNECTION_SOUTH;
+ }
+
+ if (y < 7)
+ {
+ if (!gMapConnectionFlags.north)
+ {
+ return -1;
+ }
+ return CONNECTION_NORTH;
+ }
+
+ return 0;
+}
+
+s32 GetPostCameraMoveMapBorderId(s32 x, s32 y)
+{
+ return GetMapBorderIdAt(7 + gSaveBlock1Ptr->pos.x + x, 7 + gSaveBlock1Ptr->pos.y + y);
+}
+
+bool32 CanCameraMoveInDirection(s32 direction)
+{
+ s32 x, y;
+
+ x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x;
+ y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y;
+ if (GetMapBorderIdAt(x, y) == -1)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y)
+{
+ struct MapHeader const *mapHeader;
+ mapHeader = mapconnection_get_mapheader(connection);
+ switch (direction)
+ {
+ case CONNECTION_EAST:
+ gSaveBlock1Ptr->pos.x = -x;
+ gSaveBlock1Ptr->pos.y -= connection->offset;
+ break;
+ case CONNECTION_WEST:
+ gSaveBlock1Ptr->pos.x = mapHeader->mapData->width;
+ gSaveBlock1Ptr->pos.y -= connection->offset;
+ break;
+ case CONNECTION_SOUTH:
+ gSaveBlock1Ptr->pos.x -= connection->offset;
+ gSaveBlock1Ptr->pos.y = -y;
+ break;
+ case CONNECTION_NORTH:
+ gSaveBlock1Ptr->pos.x -= connection->offset;
+ gSaveBlock1Ptr->pos.y = mapHeader->mapData->height;
+ break;
+ }
+}
+
+bool8 CameraMove(s32 x, s32 y)
+{
+ u32 direction;
+ struct MapConnection *connection;
+ s32 old_x, old_y;
+ gCamera.active = FALSE;
+ direction = GetPostCameraMoveMapBorderId(x, y);
+ if (direction + 1 <= 1)
+ {
+ gSaveBlock1Ptr->pos.x += x;
+ gSaveBlock1Ptr->pos.y += y;
+ }
+ else
+ {
+ save_serialize_map();
+ old_x = gSaveBlock1Ptr->pos.x;
+ old_y = gSaveBlock1Ptr->pos.y;
+ connection = sub_8059600(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y);
+ sub_80594AC(connection, direction, x, y);
+ sub_8055864(connection->mapGroup, connection->mapNum);
+ gCamera.active = TRUE;
+ gCamera.x = old_x - gSaveBlock1Ptr->pos.x;
+ gCamera.y = old_y - gSaveBlock1Ptr->pos.y;
+ gSaveBlock1Ptr->pos.x += x;
+ gSaveBlock1Ptr->pos.y += y;
+ sub_8059250(direction);
+ }
+ return gCamera.active;
+}
+
+struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y)
+{
+ s32 count;
+ struct MapConnection *connection;
+ s32 i;
+ count = gMapHeader.connections->count;
+ connection = gMapHeader.connections->connections;
+ for (i = 0; i < count; i++, connection++)
+ {
+ if (connection->direction == direction && sub_8059658(direction, x, y, connection) == TRUE)
+ return connection;
+ }
+ return NULL;
+
+}
+
+bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection)
+{
+ struct MapHeader const *mapHeader;
+ mapHeader = mapconnection_get_mapheader(connection);
+ switch (direction)
+ {
+ case CONNECTION_SOUTH:
+ case CONNECTION_NORTH:
+ return sub_80596BC(x, gMapHeader.mapData->width, mapHeader->mapData->width, connection->offset);
+ case CONNECTION_WEST:
+ case CONNECTION_EAST:
+ return sub_80596BC(y, gMapHeader.mapData->height, mapHeader->mapData->height, connection->offset);
+ }
+ return FALSE;
+}
+
+bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset)
+{
+ s32 offset2 = max(offset, 0);
+
+ if (dest_width + offset < src_width)
+ src_width = dest_width + offset;
+
+ if (offset2 <= x && x <= src_width)
+ return TRUE;
+
+ return FALSE;
+}
+
+bool32 sub_80596E8(s32 x, s32 width)
+{
+ if (x >= 0 && x < width)
+ return TRUE;
+
+ return FALSE;
+}
+
+s32 sub_80596FC(struct MapConnection *connection, s32 x, s32 y)
+{
+ struct MapHeader const *mapHeader;
+ mapHeader = mapconnection_get_mapheader(connection);
+ switch (connection->direction)
+ {
+ case CONNECTION_SOUTH:
+ case CONNECTION_NORTH:
+ return sub_80596E8(x - connection->offset, mapHeader->mapData->width);
+ case CONNECTION_WEST:
+ case CONNECTION_EAST:
+ return sub_80596E8(y - connection->offset, mapHeader->mapData->height);
+ }
+ return FALSE;
+}
+
+struct MapConnection *sub_805973C(s16 x, s16 y)
+{
+ s32 count;
+ struct MapConnection *connection;
+ s32 i;
+ u8 direction;
+ if (!gMapHeader.connections)
+ {
+ return NULL;
+ }
+ else
+ {
+ count = gMapHeader.connections->count;
+ connection = gMapHeader.connections->connections;
+ for (i = 0; i < count; i++, connection++)
+ {
+ direction = connection->direction;
+ if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE)
+ || (direction == CONNECTION_NORTH && y > 6)
+ || (direction == CONNECTION_SOUTH && y < gMapHeader.mapData->height + 7)
+ || (direction == CONNECTION_WEST && x > 6)
+ || (direction == CONNECTION_EAST && x < gMapHeader.mapData->width + 7))
+ {
+ continue;
+ }
+ if (sub_80596FC(connection, x - 7, y - 7) == TRUE)
+ {
+ return connection;
+ }
+ }
+ }
+ return NULL;
+}
+
+void SetCameraFocusCoords(u16 x, u16 y)
+{
+ gSaveBlock1Ptr->pos.x = x - 7;
+ gSaveBlock1Ptr->pos.y = y - 7;
+}
+
+void GetCameraFocusCoords(u16 *x, u16 *y)
+{
+ *x = gSaveBlock1Ptr->pos.x + 7;
+ *y = gSaveBlock1Ptr->pos.y + 7;
+}
+
+void SetCameraCoords(u16 x, u16 y)
+{
+ gSaveBlock1Ptr->pos.x = x;
+ gSaveBlock1Ptr->pos.y = y;
+}
+
+void GetCameraCoords(u16 *x, u16 *y)
+{
+ *x = gSaveBlock1Ptr->pos.x;
+ *y = gSaveBlock1Ptr->pos.y;
+}
+void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset)
+{
+ if (tileset)
+ {
+ if (!tileset->isCompressed)
+ LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
+ else
+ sub_80F68F0(2, tileset->tiles, numTiles * 32, offset, 0);
+ }
+}
+
+void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset)
+{
+ if (tileset)
+ {
+ if (!tileset->isCompressed)
+ LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
+ else
+ sub_80F69E8(2, tileset->tiles, numTiles * 32, offset, 0);
+ }
+}
+
+void sub_80598CC(u16 a0, u16 a1)
+{
+ switch (gUnknown_2036E28)
+ {
+ case 0:
+ return;
+ case 1:
+ TintPalette_GrayScale(gPlttBufferUnfaded + a0, a1);
+ break;
+ case 2:
+ TintPalette_SepiaTone(gPlttBufferUnfaded + a0, a1);
+ break;
+ case 3:
+ sub_8111F38(a0, a1);
+ TintPalette_GrayScale(gPlttBufferUnfaded + a0, a1);
+ break;
+ default:
+ return;
+ }
+ CpuCopy16(gPlttBufferUnfaded + a0, gPlttBufferFaded + a0, a1 * sizeof(u16));
+}
+
+void sub_8059948(u8 a0, u8 a1)
+{
+ switch (gUnknown_2036E28)
+ {
+ case 0:
+ return;
+ case 1:
+ TintPalette_GrayScale(gPlttBufferUnfaded + a0 * 16, a1 * 16);
+ break;
+ case 2:
+ TintPalette_SepiaTone(gPlttBufferUnfaded + a0 * 16, a1 * 16);
+ break;
+ case 3:
+ sub_8111F38(a0 * 16, a1 * 16);
+ TintPalette_GrayScale(gPlttBufferUnfaded + a0 * 16, a1 * 16);
+ break;
+ default:
+ return;
+ }
+ CpuFastCopy(gPlttBufferUnfaded + a0 * 16, gPlttBufferFaded + a0 * 16, a1 * 16 * sizeof(u16));
+}
+
+void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size)
+{
+ u16 black = RGB_BLACK;
+
+ if (tileset)
+ {
+ if (tileset->isSecondary == FALSE)
+ {
+ LoadPalette(&black, destOffset, 2);
+ LoadPalette(((u16*)tileset->palettes) + 1, destOffset + 1, size - 2);
+ sub_80598CC(destOffset + 1, (size - 2) >> 1);
+ }
+ else if (tileset->isSecondary == TRUE)
+ {
+ LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size);
+ sub_80598CC(destOffset, size >> 1);
+ }
+ else
+ {
+ LoadCompressedPalette((u32*)tileset->palettes, destOffset, size);
+ sub_80598CC(destOffset, size >> 1);
+ }
+ }
+}
+
+void copy_map_tileset1_to_vram(const struct MapData *mapData)
+{
+ copy_tileset_patterns_to_vram(mapData->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
+}
+
+void copy_map_tileset2_to_vram(const struct MapData *mapData)
+{
+ copy_tileset_patterns_to_vram(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
+}
+
+void copy_map_tileset2_to_vram_2(const struct MapData *mapData)
+{
+ copy_tileset_patterns_to_vram2(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
+}
+
+void apply_map_tileset1_palette(const struct MapData *mapData)
+{
+ apply_map_tileset_palette(mapData->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2);
+}
+
+void apply_map_tileset2_palette(const struct MapData *mapData)
+{
+ apply_map_tileset_palette(mapData->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2);
+}
+
+void copy_map_tileset1_tileset2_to_vram(struct MapData const *mapData)
+{
+ if (mapData)
+ {
+ copy_tileset_patterns_to_vram2(mapData->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
+ copy_tileset_patterns_to_vram2(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
+ }
+}
+
+void apply_map_tileset1_tileset2_palette(struct MapData const *mapData)
+{
+ if (mapData)
+ {
+ apply_map_tileset1_palette(mapData);
+ apply_map_tileset2_palette(mapData);
+ }
+} \ No newline at end of file
diff --git a/src/quest_log.c b/src/quest_log.c
index 4f462505a..a01cbde2d 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -4312,7 +4312,7 @@ u16 * sub_8114C68(u16 * a0, const u16 * a1)
const u16 * sub_8114C8C(const u16 * a0)
{
const u16 *r4 = sub_8113E88(28, a0);
- sub_8099E90(r4[0], gStringVar1);
+ CopyItemName(r4[0], gStringVar1);
StringExpandPlaceholders(gStringVar4, gUnknown_841A391);
return r4 + 1;
}
@@ -4329,7 +4329,7 @@ u16 * sub_8114CC0(u16 * a0, const u16 * a1)
const u16 * sub_8114CE4(const u16 * a0)
{
const u16 *r4 = sub_8113E88(29, a0);
- sub_8099E90(r4[0], gStringVar1);
+ CopyItemName(r4[0], gStringVar1);
StringExpandPlaceholders(gStringVar4, gUnknown_841A3DA);
return r4 + 1;
}
diff --git a/src/save.c b/src/save.c
index ef38d8b17..761e3c92d 100644
--- a/src/save.c
+++ b/src/save.c
@@ -69,7 +69,7 @@ const struct SaveSectionOffsets gSaveSectionOffsets[] =
extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen
extern void sub_800AB9C(void); // link
extern bool8 sub_800A4BC(void); // link
-extern void sub_80590D8(void); // fieldmap
+extern void save_serialize_map(void); // fieldmap
extern void sub_804C1C0(void); // load_save
extern void sav2_gender2_inplace_and_xFE(void); // load_save
@@ -867,7 +867,7 @@ void sub_80DA634(u8 taskId)
case 2:
if (sub_800A4BC())
{
- sub_80590D8();
+ save_serialize_map();
gTasks[taskId].data[0] = 3;
}
break;
diff --git a/src/scrcmd.c b/src/scrcmd.c
new file mode 100644
index 000000000..12b35daa4
--- /dev/null
+++ b/src/scrcmd.c
@@ -0,0 +1,2267 @@
+#include "global.h"
+#include "gba/isagbprint.h"
+#include "palette.h"
+#include "script.h"
+#include "mystery_event_script.h"
+#include "event_data.h"
+#include "random.h"
+#include "item.h"
+#include "overworld.h"
+#include "field_screen_effect.h"
+#include "quest_log.h"
+#include "map_preview_screen.h"
+#include "field_weather.h"
+#include "field_tasks.h"
+#include "field_fadetransition.h"
+#include "field_player_avatar.h"
+#include "sound.h"
+#include "script_movement.h"
+#include "field_map_obj.h"
+#include "field_map_obj_helpers.h"
+#include "map_obj_lock.h"
+#include "field_message_box.h"
+#include "new_menu_helpers.h"
+#include "window.h"
+#include "start_menu.h"
+#include "script_menu.h"
+#include "string_util.h"
+#include "data2.h"
+#include "field_specials.h"
+#include "constants/items.h"
+#include "script_pokemon_util_80A0058.h"
+#include "pokemon_storage_system.h"
+#include "party_menu.h"
+#include "money.h"
+#include "coins.h"
+#include "battle_setup.h"
+#include "shop.h"
+#include "script_pokemon_80F8.h"
+#include "slot_machine.h"
+#include "field_effect.h"
+#include "fieldmap.h"
+#include "field_door.h"
+#include "scrcmd.h"
+
+extern u16 (*const gSpecials[])(void);
+extern u16 (*const gSpecialsEnd[])(void);
+extern const u8 *const gStdScripts[];
+extern const u8 *const gStdScriptsEnd[];
+
+static bool8 sub_806B93C(struct ScriptContext * ctx);
+static u8 sub_806B96C(struct ScriptContext * ctx);
+
+EWRAM_DATA ptrdiff_t gVScriptOffset = 0;
+EWRAM_DATA u8 gUnknown_20370AC = 0;
+EWRAM_DATA u16 sPauseCounter = 0;
+EWRAM_DATA u16 sMovingNpcId = 0;
+EWRAM_DATA u16 sMovingNpcMapBank = 0;
+EWRAM_DATA u16 sMovingNpcMapId = 0;
+EWRAM_DATA u16 sFieldEffectScriptId = 0;
+
+IWRAM_DATA struct ScriptContext * gUnknown_3005070;
+
+extern u8 gSelectedEventObject;
+
+// This is defined in here so the optimizer can't see its value when compiling
+// script.c.
+void * const gNullScriptPtr = NULL;
+
+static const u8 sScriptConditionTable[6][3] =
+{
+// < = >
+ 1, 0, 0, // <
+ 0, 1, 0, // =
+ 0, 0, 1, // >
+ 1, 1, 0, // <=
+ 0, 1, 1, // >=
+ 1, 0, 1, // !=
+};
+
+bool8 ScrCmd_nop(struct ScriptContext *ctx)
+{
+ return FALSE;
+}
+
+bool8 ScrCmd_nop1(struct ScriptContext *ctx)
+{
+ return FALSE;
+}
+
+bool8 ScrCmd_end(struct ScriptContext *ctx)
+{
+ StopScript(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_gotonative(struct ScriptContext *ctx)
+{
+ bool8 (*func)(void) = (bool8 (*)(void))ScriptReadWord(ctx);
+ SetupNativeScript(ctx, func);
+ return TRUE;
+}
+
+bool8 ScrCmd_special(struct ScriptContext *ctx)
+{
+ u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx);
+ if (specialPtr < gSpecialsEnd)
+ (*specialPtr)();
+ else
+ AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 241);
+ return FALSE;
+}
+
+bool8 ScrCmd_specialvar(struct ScriptContext *ctx)
+{
+ u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx));
+ u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx);
+ if (specialPtr < gSpecialsEnd)
+ *varPtr = (*specialPtr)();
+ else
+ AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 263);
+ return FALSE;
+}
+
+bool8 ScrCmd_callnative(struct ScriptContext *ctx)
+{
+ void (*func )(void) = ((void (*)(void))ScriptReadWord(ctx));
+ func();
+ return FALSE;
+}
+
+bool8 ScrCmd_waitstate(struct ScriptContext *ctx)
+{
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_goto(struct ScriptContext *ctx)
+{
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
+ ScriptJump(ctx, scrptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_return(struct ScriptContext *ctx)
+{
+ ScriptReturn(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_call(struct ScriptContext *ctx)
+{
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
+ ScriptCall(ctx, scrptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_goto_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptJump(ctx, scrptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_call_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptCall(ctx, scrptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_setvaddress(struct ScriptContext *ctx)
+{
+ u32 addr1 = (u32)ctx->scriptPtr - 1;
+ u32 addr2 = ScriptReadWord(ctx);
+
+ gVScriptOffset = addr2 - addr1;
+ return FALSE;
+}
+
+bool8 ScrCmd_vgoto(struct ScriptContext *ctx)
+{
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
+ ScriptJump(ctx, scrptr - gVScriptOffset);
+ return FALSE;
+}
+
+bool8 ScrCmd_vcall(struct ScriptContext *ctx)
+{
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
+ ScriptCall(ctx, scrptr - gVScriptOffset);
+ return FALSE;
+}
+
+bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset;
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptJump(ctx, scrptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_vcall_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset;
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ ScriptCall(ctx, scrptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_gotostd(struct ScriptContext *ctx)
+{
+ u8 stdIdx = ScriptReadByte(ctx);
+ const u8 *const * script = gStdScripts + stdIdx;
+ if (script < gStdScriptsEnd)
+ ScriptJump(ctx, *script);
+ return FALSE;
+}
+
+bool8 ScrCmd_callstd(struct ScriptContext *ctx)
+{
+ u8 stdIdx = ScriptReadByte(ctx);
+ const u8 *const * script = gStdScripts + stdIdx;
+ if (script < gStdScriptsEnd)
+ ScriptCall(ctx, *script);
+ return FALSE;
+}
+
+bool8 ScrCmd_gotostd_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ u8 stdIdx = ScriptReadByte(ctx);
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ {
+ const u8 *const * script = gStdScripts + stdIdx;
+ if (script < gStdScriptsEnd)
+ ScriptJump(ctx, *script);
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_callstd_if(struct ScriptContext *ctx)
+{
+ u8 condition = ScriptReadByte(ctx);
+ u8 stdIdx = ScriptReadByte(ctx);
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ {
+ const u8 *const * script = gStdScripts + stdIdx;
+ if (script < gStdScriptsEnd)
+ ScriptCall(ctx, *script);
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_gotoram(struct ScriptContext *ctx)
+{
+ ScriptJump(ctx, gRAMScriptPtr);
+ return FALSE;
+}
+
+bool8 ScrCmd_killscript(struct ScriptContext *ctx)
+{
+ ClearRamScript();
+ StopScript(ctx);
+ return TRUE;
+}
+
+bool8 ScrCmd_setmysteryeventstatus(struct ScriptContext *ctx)
+{
+ SetMysteryEventScriptStatus(ScriptReadByte(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdCF(struct ScriptContext *ctx)
+{
+ const u8 * script = sub_8069E48();
+ if (script != NULL)
+ {
+ gRAMScriptPtr = ctx->scriptPtr;
+ ScriptJump(ctx, script);
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_loadword(struct ScriptContext *ctx)
+{
+ u8 which = ScriptReadByte(ctx);
+ ctx->data[which] = ScriptReadWord(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx)
+{
+ u8 which = ScriptReadByte(ctx);
+ ctx->data[which] = *(const u8 *)ScriptReadWord(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_writebytetoaddr(struct ScriptContext *ctx)
+{
+ u8 value = ScriptReadByte(ctx);
+ *(u8 *)ScriptReadWord(ctx) = value;
+ return FALSE;
+}
+
+bool8 ScrCmd_loadbyte(struct ScriptContext *ctx)
+{
+ u8 which = ScriptReadByte(ctx);
+ ctx->data[which] = ScriptReadByte(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_setptrbyte(struct ScriptContext *ctx)
+{
+ u8 which = ScriptReadByte(ctx);
+ *(u8 *)ScriptReadWord(ctx) = ctx->data[which];
+ return FALSE;
+}
+
+bool8 ScrCmd_copylocal(struct ScriptContext *ctx)
+{
+ u8 whichDst = ScriptReadByte(ctx);
+ u8 whichSrc = ScriptReadByte(ctx);
+ ctx->data[whichDst] = ctx->data[whichSrc];
+ return FALSE;
+}
+
+bool8 ScrCmd_copybyte(struct ScriptContext *ctx)
+{
+ u8 * dest = (u8 *)ScriptReadWord(ctx);
+ *dest = *(const u8 *)ScriptReadWord(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_setvar(struct ScriptContext *ctx)
+{
+ u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx));
+ *varPtr = ScriptReadHalfword(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_copyvar(struct ScriptContext *ctx)
+{
+ u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx));
+ u16 * srcPtr = GetVarPointer(ScriptReadHalfword(ctx));
+ *destPtr = *srcPtr;
+ return FALSE;
+}
+
+bool8 ScrCmd_setorcopyvar(struct ScriptContext *ctx)
+{
+ u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx));
+ *destPtr = VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+u8 compare_012(u16 left, u16 right)
+{
+ if (left < right)
+ return 0;
+ else if (left == right)
+ return 1;
+ else
+ return 2;
+}
+
+// comparelocaltolocal
+bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+// comparelocaltoimm
+bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = ScriptReadByte(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = ScriptReadByte(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx)
+{
+ const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx));
+ const u16 value2 = ScriptReadHalfword(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx)
+{
+ const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx));
+ const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx));
+
+ ctx->comparisonResult = compare_012(*ptr1, *ptr2);
+ return FALSE;
+}
+
+bool8 ScrCmd_addvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr += ScriptReadHalfword(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_subvar(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr -= VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_random(struct ScriptContext *ctx)
+{
+ u16 max = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = Random() % max;
+ return FALSE;
+}
+
+bool8 ScrCmd_giveitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = AddBagItem(itemId, (u8)quantity);
+ sub_809A824(itemId);
+ return FALSE;
+}
+
+bool8 ScrCmd_takeitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = RemoveBagItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = CheckBagHasSpace(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = CheckBagHasItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = GetPocketByItemId(itemId);
+ return FALSE;
+}
+
+bool8 ScrCmd_givepcitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = AddPCItem(itemId, quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = CheckPCHasItem(itemId, quantity);
+ return FALSE;
+}
+
+bool8 ScrCmd_givedecoration(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = DecorationAdd(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_takedecoration(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = DecorationRemove(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkdecorspace(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = DecorationCheckSpace(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkdecor(struct ScriptContext *ctx)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = CheckHasDecoration(decorId);
+ return FALSE;
+}
+
+bool8 ScrCmd_setflag(struct ScriptContext *ctx)
+{
+ FlagSet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_clearflag(struct ScriptContext *ctx)
+{
+ FlagClear(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_checkflag(struct ScriptContext *ctx)
+{
+ ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_incrementgamestat(struct ScriptContext *ctx)
+{
+ IncrementGameStat(ScriptReadByte(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_comparestattoword(struct ScriptContext *ctx)
+{
+ u8 statIdx = ScriptReadByte(ctx);
+ u32 value = ScriptReadWord(ctx);
+ u32 statValue = GetGameStat(statIdx);
+
+ if (statValue < value)
+ ctx ->comparisonResult = 0;
+ else if (statValue == value)
+ ctx->comparisonResult = 1;
+ else
+ ctx->comparisonResult = 2;
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdD0(struct ScriptContext *ctx)
+{
+ u16 value = ScriptReadHalfword(ctx);
+ sub_8115748(value);
+ sub_80F85BC(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_animateflash(struct ScriptContext *ctx)
+{
+ sub_807F028(ScriptReadByte(ctx));
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_setflashradius(struct ScriptContext *ctx)
+{
+ u16 flashLevel = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetFlashLevel(flashLevel);
+ return FALSE;
+}
+
+static bool8 IsPaletteNotActive(void)
+{
+ if (!gPaletteFade.active)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
+{
+ fade_screen(ScriptReadByte(ctx), 0);
+ SetupNativeScript(ctx, IsPaletteNotActive);
+ return TRUE;
+}
+
+bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
+{
+ u8 mode = ScriptReadByte(ctx);
+ u8 speed = ScriptReadByte(ctx);
+
+ fade_screen(mode, speed);
+ SetupNativeScript(ctx, IsPaletteNotActive);
+ return TRUE;
+}
+
+static bool8 RunPauseTimer(void)
+{
+ sPauseCounter--;
+
+ if (sPauseCounter == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_delay(struct ScriptContext *ctx)
+{
+ sPauseCounter = ScriptReadHalfword(ctx);
+ SetupNativeScript(ctx, RunPauseTimer);
+ return TRUE;
+}
+
+bool8 ScrCmd_initclock(struct ScriptContext *ctx)
+{
+// u8 hour = VarGet(ScriptReadHalfword(ctx));
+// u8 minute = VarGet(ScriptReadHalfword(ctx));
+//
+// RtcInitLocalTimeOffset(hour, minute);
+ return FALSE;
+}
+
+bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx)
+{
+// DoTimeBasedEvents();
+ return FALSE;
+}
+
+bool8 ScrCmd_gettime(struct ScriptContext *ctx)
+{
+// RtcCalcLocalTime();
+// gSpecialVar_0x8000 = gLocalTime.hours;
+// gSpecialVar_0x8001 = gLocalTime.minutes;
+// gSpecialVar_0x8002 = gLocalTime.seconds;
+ gSpecialVar_0x8000 = 0;
+ gSpecialVar_0x8001 = 0;
+ gSpecialVar_0x8002 = 0;
+ return FALSE;
+}
+
+bool8 ScrCmd_setweather(struct ScriptContext *ctx)
+{
+ u16 weather = VarGet(ScriptReadHalfword(ctx));
+
+ SetSav1Weather(weather);
+ return FALSE;
+}
+
+bool8 ScrCmd_resetweather(struct ScriptContext *ctx)
+{
+ SetSav1WeatherFromCurrMapHeader();
+ return FALSE;
+}
+
+bool8 ScrCmd_doweather(struct ScriptContext *ctx)
+{
+ DoCurrentWeather();
+ return FALSE;
+}
+
+bool8 ScrCmd_setstepcallback(struct ScriptContext *ctx)
+{
+ ActivatePerStepCallback(ScriptReadByte(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_setmaplayoutindex(struct ScriptContext *ctx)
+{
+ u16 value = VarGet(ScriptReadHalfword(ctx));
+
+ SetCurrentMapLayout(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_warp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ DoWarp();
+ ResetInitialPlayerAvatarState();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpsilent(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ DoDiveWarp();
+ ResetInitialPlayerAvatarState();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpdoor(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ DoDoorWarp();
+ ResetInitialPlayerAvatarState();
+ return TRUE;
+}
+
+bool8 ScrCmd_warphole(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u16 x;
+ u16 y;
+
+ PlayerGetDestCoords(&x, &y);
+ if (mapGroup == 0xFF && mapNum == 0xFF)
+ SetWarpDestinationToFixedHoleWarp(x - 7, y - 7);
+ else
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7);
+ DoFallWarp();
+ ResetInitialPlayerAvatarState();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpteleport(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ sub_807E59C();
+ ResetInitialPlayerAvatarState();
+ return TRUE;
+}
+
+bool8 ScrCmd_warpD1(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ sub_805DAE4(player_get_direction_lower_nybble());
+ sub_807E500();
+ ResetInitialPlayerAvatarState();
+ return TRUE;
+}
+
+bool8 ScrCmd_setwarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdynamicwarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ SetDynamicWarpWithCoords(0, mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ SetFixedDiveWarp(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setholewarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ SetFixedHoleWarp(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setescapewarp(struct ScriptContext *ctx)
+{
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ SetEscapeWarp(mapGroup, mapNum, warpId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_getplayerxy(struct ScriptContext *ctx)
+{
+ u16 *pX = GetVarPointer(ScriptReadHalfword(ctx));
+ u16 *pY = GetVarPointer(ScriptReadHalfword(ctx));
+
+ *pX = gSaveBlock1Ptr->pos.x;
+ *pY = gSaveBlock1Ptr->pos.y;
+ return FALSE;
+}
+
+bool8 ScrCmd_getpartysize(struct ScriptContext *ctx)
+{
+ gSpecialVar_Result = CalculatePlayerPartyCount();
+ return FALSE;
+}
+
+bool8 ScrCmd_playse(struct ScriptContext *ctx)
+{
+ PlaySE(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForSoundEffectFinish(void)
+{
+ if (!IsSEPlaying())
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_waitse(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, WaitForSoundEffectFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_playfanfare(struct ScriptContext *ctx)
+{
+ PlayFanfare(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForFanfareFinish(void)
+{
+ return IsFanfareTaskInactive();
+}
+
+bool8 ScrCmd_waitfanfare(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, WaitForFanfareFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_playbgm(struct ScriptContext *ctx)
+{
+ u16 songId = ScriptReadHalfword(ctx);
+ bool8 val = ScriptReadByte(ctx);
+
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ if (val == TRUE)
+ Overworld_SetSavedMusic(songId);
+ PlayNewMapMusic(songId);
+ return FALSE;
+}
+
+bool8 ScrCmd_savebgm(struct ScriptContext *ctx)
+{
+ Overworld_SetSavedMusic(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx)
+{
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ Overworld_ChangeMusicToDefault();
+ return FALSE;
+}
+
+bool8 ScrCmd_fadenewbgm(struct ScriptContext *ctx)
+{
+ u16 music = ScriptReadHalfword(ctx);
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ Overworld_ChangeMusicTo(music);
+ return FALSE;
+}
+
+bool8 ScrCmd_fadeoutbgm(struct ScriptContext *ctx)
+{
+ u8 speed = ScriptReadByte(ctx);
+
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ if (speed != 0)
+ FadeOutBGMTemporarily(4 * speed);
+ else
+ FadeOutBGMTemporarily(4);
+ SetupNativeScript(ctx, IsBGMPausedOrStopped);
+ return TRUE;
+}
+
+bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx)
+{
+ u8 speed = ScriptReadByte(ctx);
+
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ if (speed != 0)
+ FadeInBGM(4 * speed);
+ else
+ FadeInBGM(4);
+ return FALSE;
+}
+
+bool8 ScrCmd_applymovement(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ const void *movementScript = (const void *)ScriptReadWord(ctx);
+
+ ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript);
+ sMovingNpcId = localId;
+ return FALSE;
+}
+
+bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ const void *movementScript = (const void *)ScriptReadWord(ctx);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ ScriptMovement_StartObjectMovementScript(localId, mapNum, mapGroup, movementScript);
+ sMovingNpcId = localId;
+ return FALSE;
+}
+
+static bool8 WaitForMovementFinish(void)
+{
+ return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank);
+}
+
+bool8 ScrCmd_waitmovement(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ if (localId != 0)
+ sMovingNpcId = localId;
+ sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup;
+ sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum;
+ SetupNativeScript(ctx, WaitForMovementFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapBank;
+ u8 mapId;
+
+ if (localId != 0)
+ sMovingNpcId = localId;
+ mapBank = ScriptReadByte(ctx);
+ mapId = ScriptReadByte(ctx);
+ sMovingNpcMapBank = mapBank;
+ sMovingNpcMapId = mapId;
+ SetupNativeScript(ctx, WaitForMovementFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_removeobject(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_addobject(struct ScriptContext *ctx)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+
+ show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_addobject_at(struct ScriptContext *ctx)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ show_sprite(objectId, mapNum, mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_805F7C4(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetMapObjTemplateCoords(localId, x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ sub_805FE94(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_showobject_at(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0);
+ return FALSE;
+}
+
+bool8 ScrCmd_hideobject_at(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 priority = ScriptReadByte(ctx);
+
+ sub_805F3A8(localId, mapNum, mapGroup, priority + 83);
+ return FALSE;
+}
+
+bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ sub_805F400(localId, mapNum, mapGroup);
+ return FALSE;
+}
+
+bool8 ScrCmd_faceplayer(struct ScriptContext *ctx)
+{
+ if (gMapObjects[gSelectedEventObject].active)
+ {
+ FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject],
+ player_get_direction_lower_nybble());
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_turnobject(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 direction = ScriptReadByte(ctx);
+
+ FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction);
+ return FALSE;
+}
+
+bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 movementType = ScriptReadByte(ctx);
+
+ Overworld_SetMapObjTemplateMovementType(localId, movementType);
+ return FALSE;
+}
+
+bool8 ScrCmd_createvobject(struct ScriptContext *ctx)
+{
+ u8 graphicsId = ScriptReadByte(ctx);
+ u8 v2 = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u32 y = VarGet(ScriptReadHalfword(ctx));
+ u8 elevation = ScriptReadByte(ctx);
+ u8 direction = ScriptReadByte(ctx);
+
+ sprite_new(graphicsId, v2, x, y, elevation, direction);
+ return FALSE;
+}
+
+bool8 ScrCmd_turnvobject(struct ScriptContext *ctx)
+{
+ u8 v1 = ScriptReadByte(ctx);
+ u8 direction = ScriptReadByte(ctx);
+
+ sub_8069058(v1, direction);
+ return FALSE;
+}
+
+bool8 ScrCmd_lockall(struct ScriptContext *ctx)
+{
+ if (is_c1_link_related_active())
+ {
+ return FALSE;
+ }
+ else
+ {
+ ScriptFreezeMapObjects();
+ SetupNativeScript(ctx, sub_8069590);
+ return TRUE;
+ }
+}
+
+bool8 ScrCmd_lock(struct ScriptContext *ctx)
+{
+ if (is_c1_link_related_active())
+ {
+ return FALSE;
+ }
+ else
+ {
+ if (gMapObjects[gSelectedEventObject].active)
+ {
+ LockSelectedMapObject();
+ SetupNativeScript(ctx, sub_8069648);
+ }
+ else
+ {
+ ScriptFreezeMapObjects();
+ SetupNativeScript(ctx, sub_8069590);
+ }
+ return TRUE;
+ }
+}
+
+bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
+{
+ u8 playerObjectId;
+
+ HideFieldMessageBox();
+ playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
+ sub_80974D8();
+ UnfreezeMapObjects();
+ return FALSE;
+}
+
+bool8 ScrCmd_release(struct ScriptContext *ctx)
+{
+ u8 playerObjectId;
+
+ HideFieldMessageBox();
+ if (gMapObjects[gSelectedEventObject].active)
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]);
+ playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
+ sub_80974D8();
+ UnfreezeMapObjects();
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdC7(struct ScriptContext *ctx)
+{
+ gUnknown_20370DC = gUnknown_20370DA;
+ gUnknown_20370DA = ScriptReadByte(ctx);
+ return FALSE;
+}
+
+bool8 ScrCmd_message(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ ShowFieldMessage(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdC8(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ sub_80F7974(msg);
+ CopyWindowToVram(GetStartMenuWindowId(), 1);
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdC9(struct ScriptContext *ctx)
+{
+ sub_80F7998();
+ return FALSE;
+}
+
+bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx)
+{
+ const u8 *msg = (const u8 *)ScriptReadWord(ctx);
+
+ if (msg == NULL)
+ msg = (const u8 *)ctx->data[0];
+ ShowFieldAutoScrollMessage(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_waitmessage(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, IsFieldMessageBoxHidden);
+ return TRUE;
+}
+
+bool8 ScrCmd_closemessage(struct ScriptContext *ctx)
+{
+ HideFieldMessageBox();
+ return FALSE;
+}
+
+static bool8 WaitForAorBPress(void)
+{
+ if (gMain.newKeys & A_BUTTON)
+ return TRUE;
+ if (gMain.newKeys & B_BUTTON)
+ return TRUE;
+
+ if (sub_806B93C(gUnknown_3005070) == TRUE)
+ {
+ u8 r4 = sub_806B96C(gUnknown_3005070);
+ sub_8069998(r4);
+ if (r4)
+ {
+ if (gUnknown_203ADFA != 2)
+ {
+ sub_80699F8();
+ if (r4 < 9 || r4 > 10)
+ sub_8069964();
+ else
+ {
+ sub_80699A4();
+ sub_8069970();
+ }
+ return TRUE;
+ }
+ }
+ }
+ if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2)
+ {
+ if (gUnknown_20370AC == 120)
+ return TRUE;
+ else
+ gUnknown_20370AC++;
+ }
+
+ return FALSE;
+}
+
+static bool8 sub_806B93C(struct ScriptContext * ctx)
+{
+ const u8 * script = ctx->scriptPtr;
+ u8 nextCmd = *script;
+ if (nextCmd == 3) // return
+ {
+ script = ctx->stack[ctx->stackDepth - 1];
+ nextCmd = *script;
+ }
+ if (nextCmd < 0x6B || nextCmd > 0x6C) // releaseall or release
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static u8 sub_806B96C(struct ScriptContext * ctx)
+{
+ if (gMain.heldKeys & DPAD_UP && gSpecialVar_Facing != 2)
+ return 1;
+
+ if (gMain.heldKeys & DPAD_DOWN && gSpecialVar_Facing != 1)
+ return 2;
+
+ if (gMain.heldKeys & DPAD_LEFT && gSpecialVar_Facing != 3)
+ return 3;
+
+ if (gMain.heldKeys & DPAD_RIGHT && gSpecialVar_Facing != 4)
+ return 4;
+
+ if (gMain.newKeys & L_BUTTON)
+ return 5;
+
+ if (gMain.heldKeys & R_BUTTON)
+ return 6;
+
+ if (gMain.heldKeys & START_BUTTON)
+ return 7;
+
+ if (gMain.heldKeys & SELECT_BUTTON)
+ return 8;
+
+ if (gMain.newKeys & A_BUTTON)
+ return 9;
+
+ if (gMain.newKeys & B_BUTTON)
+ return 10;
+
+ return 0;
+}
+
+bool8 ScrCmd_waitbuttonpress(struct ScriptContext *ctx)
+{
+ gUnknown_3005070 = ctx;
+
+ if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2)
+ gUnknown_20370AC = 0;
+ SetupNativeScript(ctx, WaitForAorBPress);
+ return TRUE;
+}
+
+bool8 ScrCmd_yesnobox(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+
+ if (ScriptMenu_YesNo(left, top) == TRUE)
+ {
+ ScriptContext1_Stop();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_multichoice(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 multichoiceId = ScriptReadByte(ctx);
+ u8 ignoreBPress = ScriptReadByte(ctx);
+
+ if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE)
+ {
+ ScriptContext1_Stop();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 multichoiceId = ScriptReadByte(ctx);
+ u8 defaultChoice = ScriptReadByte(ctx);
+ u8 ignoreBPress = ScriptReadByte(ctx);
+
+ if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE)
+ {
+ ScriptContext1_Stop();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_drawbox(struct ScriptContext *ctx)
+{
+ /*u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 right = ScriptReadByte(ctx);
+ u8 bottom = ScriptReadByte(ctx);
+
+ MenuDrawTextWindow(left, top, right, bottom);*/
+ return FALSE;
+}
+
+bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 multichoiceId = ScriptReadByte(ctx);
+ u8 numColumns = ScriptReadByte(ctx);
+ u8 ignoreBPress = ScriptReadByte(ctx);
+
+ if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE)
+ {
+ ScriptContext1_Stop();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_erasebox(struct ScriptContext *ctx)
+{
+ u8 left = ScriptReadByte(ctx);
+ u8 top = ScriptReadByte(ctx);
+ u8 right = ScriptReadByte(ctx);
+ u8 bottom = ScriptReadByte(ctx);
+
+ // MenuZeroFillWindowRect(left, top, right, bottom);
+ return FALSE;
+}
+
+bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx)
+{
+// u8 left = ScriptReadByte(ctx);
+// u8 top = ScriptReadByte(ctx);
+// u8 multichoiceId = ScriptReadByte(ctx);
+// u8 ignoreBPress = ScriptReadByte(ctx);
+
+ /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE)
+ {
+ ScriptContext1_Stop();
+ return TRUE;
+ }*/
+ return FALSE;
+}
+
+bool8 ScrCmd_showmonpic(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ ScriptMenu_ShowPokemonPic(species, x, y);
+ PlayCry7(species, 0);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidemonpic(struct ScriptContext *ctx)
+{
+ bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc();
+
+ if (func == NULL)
+ return FALSE;
+ SetupNativeScript(ctx, func);
+ return TRUE;
+}
+
+bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx)
+{
+ u8 v1 = ScriptReadByte(ctx);
+
+ /*
+ if (v1)
+ sub_812FDA8(v1);
+ ShowContestWinner();
+ ScriptContext1_Stop();
+ return TRUE;
+ */
+
+ return FALSE;
+}
+
+bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
+{
+ u8 *ptr = (u8 *)ScriptReadWord(ctx);
+ if (ptr == NULL)
+ ptr = (u8 *)ctx->data[0];
+
+ sub_80F6E9C();
+ sub_80F6EE4(0, 1);
+ AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL);
+ return FALSE;
+}
+
+bool8 ScrCmd_getbraillestringwidth(struct ScriptContext *ctx)
+{
+ u8 *ptr = (u8 *)ScriptReadWord(ctx);
+ if (ptr == NULL)
+ ptr = (u8 *)ctx->data[0];
+
+ gSpecialVar_0x8004 = GetStringWidth(6, ptr, -1);
+ return FALSE;
+}
+
+bool8 ScrCmd_vmessage(struct ScriptContext *ctx)
+{
+ u32 v1 = ScriptReadWord(ctx);
+
+ ShowFieldMessage((u8 *)(v1 - gVScriptOffset));
+ return FALSE;
+}
+
+u8 * const sScriptStringVars[] =
+{
+ gStringVar1,
+ gStringVar2,
+ gStringVar3,
+};
+
+bool8 ScrCmd_bufferspeciesname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferleadmonspeciesname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+
+ u8 *dest = sScriptStringVars[stringVarIndex];
+ u8 partyIndex = GetLeadMonIndex();
+ u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
+ StringCopy(dest, gSpeciesNames[species]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]);
+ StringGetEnd10(sScriptStringVars[stringVarIndex]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
+ CopyItemName(itemId, sScriptStringVars[stringVarIndex]);
+ return FALSE;
+}
+
+extern const u8 gUnknown_83A72A0[];
+extern const u8 gUnknown_83A72A2[];
+
+bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ CopyItemName(itemId, sScriptStringVars[stringVarIndex]);
+ if (itemId == ITEM_POKE_BALL && quantity >= 2)
+ StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A0);
+ else if (itemId >= ITEM_CHERI_BERRY && itemId < ITEM_ENIGMA_BERRY && quantity >= 2)
+ {
+ u16 strlength = StringLength(sScriptStringVars[stringVarIndex]);
+ if (strlength != 0)
+ {
+ u8 * endptr = sScriptStringVars[stringVarIndex] + strlength;
+ endptr[-1] = EOS;
+ StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A2);
+ }
+ }
+
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferdecorationname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name);
+ return FALSE;
+}
+
+bool8 ScrCmd_buffermovename(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 moveId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]);
+ return FALSE;
+}
+
+bool8 ScrCmd_buffernumberstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 v1 = VarGet(ScriptReadHalfword(ctx));
+ u8 v2 = CountDigits(v1);
+
+ ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], gStdStringPtrs[index]);
+ return FALSE;
+}
+
+/*
+bool8 ScrCmd_buffercontesttype(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ sub_818E868(sScriptStringVars[stringVarIndex], index);
+ return FALSE;
+}
+*/
+
+bool8 ScrCmd_bufferstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ const u8 *text = (u8 *)ScriptReadWord(ctx);
+
+ StringCopy(sScriptStringVars[stringVarIndex], text);
+ return FALSE;
+}
+
+bool8 ScrCmd_vloadword(struct ScriptContext *ctx)
+{
+ const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gVScriptOffset);
+
+ StringExpandPlaceholders(gStringVar4, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_vbufferstring(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u32 addr = ScriptReadWord(ctx);
+
+ const u8 *src = (u8 *)(addr - gVScriptOffset);
+ u8 *dest = sScriptStringVars[stringVarIndex];
+ StringCopy(dest, src);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferboxname(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = ScriptReadByte(ctx);
+ u16 boxId = VarGet(ScriptReadHalfword(ctx));
+
+ StringCopy(sScriptStringVars[stringVarIndex], GetBoxNamePtr(boxId));
+ return FALSE;
+}
+
+bool8 ScrCmd_givemon(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+ u8 level = ScriptReadByte(ctx);
+ u16 item = VarGet(ScriptReadHalfword(ctx));
+ u32 unkParam1 = ScriptReadWord(ctx);
+ u32 unkParam2 = ScriptReadWord(ctx);
+ u8 unkParam3 = ScriptReadByte(ctx);
+
+ gSpecialVar_Result = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3);
+ return FALSE;
+}
+
+bool8 ScrCmd_giveegg(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = ScriptGiveEgg(species);
+ return FALSE;
+}
+
+bool8 ScrCmd_setmonmove(struct ScriptContext *ctx)
+{
+ u8 partyIndex = ScriptReadByte(ctx);
+ u8 slot = ScriptReadByte(ctx);
+ u16 move = ScriptReadHalfword(ctx);
+
+ ScriptSetMonMoveSlot(partyIndex, move, slot);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx)
+{
+ u8 i;
+ u16 moveId = ScriptReadHalfword(ctx);
+
+ gSpecialVar_Result = PARTY_SIZE;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
+ if (!species)
+ break;
+ if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId) == TRUE)
+ {
+ gSpecialVar_Result = i;
+ gSpecialVar_0x8004 = species;
+ break;
+ }
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_givemoney(struct ScriptContext *ctx)
+{
+ u32 amount = ScriptReadWord(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ AddMoney(&gSaveBlock1Ptr->money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_takemoney(struct ScriptContext *ctx)
+{
+ u32 amount = ScriptReadWord(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ RemoveMoney(&gSaveBlock1Ptr->money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkmoney(struct ScriptContext *ctx)
+{
+ u32 amount = ScriptReadWord(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ gSpecialVar_Result = IsEnoughMoney(&gSaveBlock1Ptr->money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore && sub_81119D4(sub_809D6D4) != TRUE)
+ DrawMoneyBox(GetMoney(&gSaveBlock1Ptr->money), x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx)
+{
+ /*u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);*/
+
+ HideMoneyBox();
+ return FALSE;
+}
+
+bool8 ScrCmd_updatemoneybox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+ u8 ignore = ScriptReadByte(ctx);
+
+ if (!ignore)
+ ChangeAmountInMoneyBox(GetMoney(&gSaveBlock1Ptr->money));
+ return FALSE;
+}
+
+bool8 ScrCmd_showcoinsbox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ if (sub_81119D4(sub_809D6D4) != TRUE)
+ ShowCoinsWindow(GetCoins(), x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidecoinsbox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ HideCoinsWindow();
+ return FALSE;
+}
+
+bool8 ScrCmd_updatecoinsbox(struct ScriptContext *ctx)
+{
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ PrintCoinsString(GetCoins());
+ return FALSE;
+}
+
+bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = BattleSetup_ConfigureTrainerBattle(ctx->scriptPtr);
+ return FALSE;
+}
+
+bool8 ScrCmd_dotrainerbattle(struct ScriptContext *ctx)
+{
+ BattleSetup_StartTrainerBattle();
+ return TRUE;
+}
+
+bool8 ScrCmd_gotopostbattlescript(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle();
+ return FALSE;
+}
+
+bool8 ScrCmd_gotobeatenscript(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript();
+ return FALSE;
+}
+
+bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ ctx->comparisonResult = HasTrainerAlreadyBeenFought(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ SetTrainerFlag(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(ScriptReadHalfword(ctx));
+
+ ClearTrainerFlag(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
+{
+ u16 species = ScriptReadHalfword(ctx);
+ u8 level = ScriptReadByte(ctx);
+ u16 item = ScriptReadHalfword(ctx);
+
+ CreateScriptedWildMon(species, level, item);
+ return FALSE;
+}
+
+bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx)
+{
+ BattleSetup_StartScriptedWildBattle();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
+{
+ const void *ptr = (void *)ScriptReadWord(ctx);
+
+ CreatePokemartMenu(ptr);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemartdecoration(struct ScriptContext *ctx)
+{
+ const void *ptr = (void *)ScriptReadWord(ctx);
+
+ CreateDecorationShop1Menu(ptr);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx)
+{
+ const void *ptr = (void *)ScriptReadWord(ctx);
+
+ CreateDecorationShop2Menu(ptr);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
+{
+ u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx));
+
+ PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music);
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+bool8 ScrCmd_setberrytree(struct ScriptContext *ctx)
+{
+// u8 treeId = ScriptReadByte(ctx);
+// u8 berry = ScriptReadByte(ctx);
+// u8 growthStage = ScriptReadByte(ctx);
+//
+// if (berry == 0)
+// PlantBerryTree(treeId, 0, growthStage, FALSE);
+// else
+// PlantBerryTree(treeId, berry, growthStage, FALSE);
+ return FALSE;
+}
+
+bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx)
+{
+// u16 value = VarGet(ScriptReadHalfword(ctx));
+//
+// gSpecialVar_Result = GetPriceReduction(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_choosecontestmon(struct ScriptContext *ctx)
+{
+// sub_81B9404();
+ ScriptContext1_Stop();
+ return TRUE;
+}
+
+
+bool8 ScrCmd_startcontest(struct ScriptContext *ctx)
+{
+// sub_80F840C();
+// ScriptContext1_Stop();
+// return TRUE;
+ return FALSE;
+}
+
+bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx)
+{
+// sub_80F8484();
+// ScriptContext1_Stop();
+// return TRUE;
+ return FALSE;
+}
+
+bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx)
+{
+// sub_80F84C4(gSpecialVar_ContestCategory);
+// ScriptContext1_Stop();
+// return TRUE;
+ return FALSE;
+}
+
+bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx)
+{
+ u16 effectId = VarGet(ScriptReadHalfword(ctx));
+
+ sFieldEffectScriptId = effectId;
+ FieldEffectStart(sFieldEffectScriptId);
+ return FALSE;
+}
+
+bool8 ScrCmd_setfieldeffectarg(struct ScriptContext *ctx)
+{
+ u8 argNum = ScriptReadByte(ctx);
+
+ gFieldEffectArguments[argNum] = (s16)VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForFieldEffectFinish(void)
+{
+ if (!FieldEffectActiveListContains(sFieldEffectScriptId))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_waitfieldeffect(struct ScriptContext *ctx)
+{
+ sFieldEffectScriptId = VarGet(ScriptReadHalfword(ctx));
+ SetupNativeScript(ctx, WaitForFieldEffectFinish);
+ return TRUE;
+}
+
+bool8 ScrCmd_setrespawn(struct ScriptContext *ctx)
+{
+ u16 healLocationId = VarGet(ScriptReadHalfword(ctx));
+
+ SetLastHealLocationWarp(healLocationId);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx)
+{
+ gSpecialVar_Result = gSaveBlock2Ptr->playerGender;
+ return FALSE;
+}
+
+bool8 ScrCmd_playmoncry(struct ScriptContext *ctx)
+{
+ u16 species = VarGet(ScriptReadHalfword(ctx));
+ u16 mode = VarGet(ScriptReadHalfword(ctx));
+
+ PlayCry7(species, mode);
+ return FALSE;
+}
+
+bool8 ScrCmd_waitmoncry(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, IsCryFinished);
+ return TRUE;
+}
+
+bool8 ScrCmd_setmetatile(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+ u16 tileId = VarGet(ScriptReadHalfword(ctx));
+ u16 v8 = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ if (!v8)
+ MapGridSetMetatileIdAt(x, y, tileId);
+ else
+ MapGridSetMetatileIdAt(x, y, tileId | 0xC00);
+ return FALSE;
+}
+
+bool8 ScrCmd_opendoor(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ PlaySE(GetDoorSoundEffect(x, y));
+ FieldAnimateDoorOpen(x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_closedoor(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ FieldAnimateDoorClose(x, y);
+ return FALSE;
+}
+
+static bool8 IsDoorAnimationStopped(void)
+{
+ if (!FieldIsDoorAnimationRunning())
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_waitdooranim(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, IsDoorAnimationStopped);
+ return TRUE;
+}
+
+bool8 ScrCmd_setdooropen(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ FieldSetDoorOpened(x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
+{
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ x += 7;
+ y += 7;
+ FieldSetDoorClosed(x, y);
+ return FALSE;
+}
+
+bool8 ScrCmd_addelevmenuitem(struct ScriptContext *ctx)
+{
+// u8 v3 = ScriptReadByte(ctx);
+// u16 v5 = VarGet(ScriptReadHalfword(ctx));
+// u16 v7 = VarGet(ScriptReadHalfword(ctx));
+// u16 v9 = VarGet(ScriptReadHalfword(ctx));
+
+ //ScriptAddElevatorMenuItem(v3, v5, v7, v9);
+ return FALSE;
+}
+
+bool8 ScrCmd_showelevmenu(struct ScriptContext *ctx)
+{
+ /*ScriptShowElevatorMenu();
+ ScriptContext1_Stop();
+ return TRUE;*/
+ return FALSE;
+}
+
+bool8 ScrCmd_checkcoins(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr = GetCoins();
+ return FALSE;
+}
+
+bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
+{
+ u16 coins = VarGet(ScriptReadHalfword(ctx));
+
+ if (GiveCoins(coins) == TRUE)
+ gSpecialVar_Result = 0;
+ else
+ gSpecialVar_Result = 1;
+ return FALSE;
+}
+
+bool8 ScrCmd_takecoins(struct ScriptContext *ctx)
+{
+ u16 coins = VarGet(ScriptReadHalfword(ctx));
+
+ if (TakeCoins(coins) == TRUE)
+ gSpecialVar_Result = 0;
+ else
+ gSpecialVar_Result = 1;
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdCA(struct ScriptContext *ctx)
+{
+ sub_8069A20();
+ return FALSE;
+}
+
+bool8 ScrCmd_cmdCB(struct ScriptContext *ctx)
+{
+ sub_8069A2C();
+ return FALSE;
+}
+
+// This command will force the Pokémon to be obedient, you don't get to make it disobedient.
+bool8 ScrCmd_setmonobedient(struct ScriptContext *ctx)
+{
+ bool8 obedient = TRUE;
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
+ SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx)
+{
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL);
+ return FALSE;
+}
+
+bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx)
+{
+ u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+ u8 location = ScriptReadByte(ctx);
+
+ if (partyIndex < PARTY_SIZE)
+ SetMonData(&gPlayerParty[partyIndex], MON_DATA_MET_LOCATION, &location);
+ return FALSE;
+}
diff --git a/src/script.c b/src/script.c
index 59ef4e579..d7246752c 100644
--- a/src/script.c
+++ b/src/script.c
@@ -19,7 +19,7 @@ enum
};
EWRAM_DATA u8 gUnknown_20370A0 = 0;
-EWRAM_DATA u8 *gUnknown_20370A4 = NULL;
+EWRAM_DATA const u8 *gRAMScriptPtr = NULL;
// ewram bss
/*IWRAM_DATA*/ static u8 sScriptContext1Status;
@@ -485,7 +485,7 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec
u8 *GetRamScript(u8 objectId, u8 *script)
{
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
- gUnknown_20370A4 = NULL;
+ gRAMScriptPtr = NULL;
if (scriptData->magic != RAM_SCRIPT_MAGIC)
return script;
if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup)
@@ -501,7 +501,7 @@ u8 *GetRamScript(u8 objectId, u8 *script)
}
else
{
- gUnknown_20370A4 = script;
+ gRAMScriptPtr = script;
return scriptData->script;
}
}
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index b196c49f7..f4e18eee6 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -440,12 +440,12 @@ void sub_815DD44(void)
if (gMapHeader.mapDataId - 0x129 > gUnknown_203F458->unk_0004.unk_0000.unk0)
{
gSpecialVar_Result = 3;
- sub_8055D40(0x132);
+ SetCurrentMapLayout(0x132);
}
else
{
gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002;
- sub_8055D40(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]);
+ SetCurrentMapLayout(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]);
sub_815DDB0();
}
}
@@ -819,9 +819,9 @@ void sub_815E408(void)
u16 itemId = gUnknown_847A2B4[gUnknown_203F458->unk_0004.unk_0008->unk_003];
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0)
gSpecialVar_Result = 2;
- else if (sub_809A084(itemId, 1) == 1)
+ else if (AddBagItem(itemId, 1) == 1)
{
- sub_8099E90(itemId, gStringVar2);
+ CopyItemName(itemId, gStringVar2);
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE;
gSpecialVar_Result = 0;
}
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 4d42f270d..579800576 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -65,7 +65,7 @@ struct VsSeekerStruct
extern u16 gSpecialVar_LastTalked;
extern struct MapObject gMapObjects[MAP_OBJECTS_COUNT];
-extern u8 gUnknown_3005074;
+extern u8 gSelectedEventObject;
// static declarations
static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL;
@@ -1012,7 +1012,7 @@ void sub_810CB90(void)
sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual.
sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->mapobj_unk_18]);
gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0;
- if (gUnknown_3005074 == sp0)
+ if (gSelectedEventObject == sp0)
r4_2->animPattern = gUnknown_8453F67[r4_2->mapobj_unk_18];
else
r4_2->animPattern = 0x08;
diff --git a/sym_bss.txt b/sym_bss.txt
index 20d8d561d..529460f3e 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -111,22 +111,22 @@ gUnknown_3000FA9: @ 3000FA9
gUnknown_3000FAC: @ 3000FAC
.space 0x2
-gUnknown_3000FAE: @ 3000FAE
+sPrimaryTilesetCBCounter: @ 3000FAE
.space 0x2
-gUnknown_3000FB0: @ 3000FB0
+sPrimaryTilesetCBBufferSize: @ 3000FB0
.space 0x2
-gUnknown_3000FB2: @ 3000FB2
+sSecondaryTilesetCBCounter: @ 3000FB2
.space 0x2
-gUnknown_3000FB4: @ 3000FB4
+sSecondaryTilesetCBBufferSize: @ 3000FB4
.space 0x4
-gUnknown_3000FB8: @ 3000FB8
+sPrimaryTilesetCB: @ 3000FB8
.space 0x4
-gUnknown_3000FBC: @ 3000FBC
+sSecondaryTilesetCB: @ 3000FBC
.space 0x4
.include "src/sound.o"
diff --git a/sym_common.txt b/sym_common.txt
index f63c4f277..16c275b01 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -160,9 +160,9 @@ gUnknown_300502C: @ 300502C
gUnknown_3005030: @ 3005030
.space 0x10
-gUnknown_3005040: @ 3005040
- .space 0x10
+ .include "fieldmap.o"
+ .align 4
gUnknown_3005050: @ 3005050
.space 0x18
@@ -175,7 +175,7 @@ gUnknown_300506C: @ 300506C
gUnknown_3005070: @ 3005070
.space 0x4
-gUnknown_3005074: @ 3005074
+gSelectedEventObject: @ 3005074
.space 0x4
gUnknown_3005078: @ 3005078
diff --git a/sym_ewram.txt b/sym_ewram.txt
index f8e0df713..b978e59c4 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -593,17 +593,7 @@ gUnknown_2031DEA: @ 2031DEA
gUnknown_2031DEC: @ 2031DEC
.space 0x10
-gUnknown_2031DFC: @ 2031DFC
- .space 0x5000
-
-gMapHeader: @ 2036DFC
- .space 0x1C
-
-gUnknown_2036E18: @ 2036E18
- .space 0xC
-
-gUnknown_2036E24: @ 2036E24
- .space 0x4
+ .include "src/fieldmap.o"
gUnknown_2036E28: @ 2036E28
.space 0x4
@@ -633,29 +623,9 @@ gUnknown_203709C: @ 203709C
.space 0x4
.include "src/script.o"
+ .include "src/scrcmd.o"
- .align 2
-gUnknown_20370A8: @ 20370A8
- .space 0x4
-
-gUnknown_20370AC: @ 20370AC
- .space 0x2
-
-gUnknown_20370AE: @ 20370AE
- .space 0x2
-
-gUnknown_20370B0: @ 20370B0
- .space 0x2
-
-gUnknown_20370B2: @ 20370B2
- .space 0x2
-
-gUnknown_20370B4: @ 20370B4
- .space 0x2
-
-gUnknown_20370B6: @ 20370B6
- .space 0x2
-
+ .align 2
gSpecialVar_0x8000: @ 20370B8
.space 0x2