summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/bike.s4
-rw-r--r--asm/field_control_avatar.s10
-rw-r--r--asm/field_effect.s2
-rw-r--r--asm/field_fadetransition.s26
-rw-r--r--asm/field_specials.s4
-rw-r--r--asm/field_weather.s6
-rw-r--r--asm/hall_of_fame.s4
-rw-r--r--asm/item_use.s2
-rw-r--r--asm/link_rfu_3.s2
-rw-r--r--asm/overworld.s74
-rw-r--r--asm/scrcmd.s1107
-rw-r--r--asm/seagallop.s2
-rw-r--r--data/script_cmd_table.inc30
-rw-r--r--data/specials.inc4
-rw-r--r--include/field_fadetransition.h14
-rw-r--r--include/field_player_avatar.h1
-rw-r--r--include/field_weather.h1
-rw-r--r--include/overworld.h10
-rw-r--r--include/quest_log.h2
-rw-r--r--src/scrcmd.c348
-rw-r--r--src/trainer_tower.c4
21 files changed, 453 insertions, 1204 deletions
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_control_avatar.s b/asm/field_control_avatar.s
index 9748301f7..78f2a0777 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -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_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_fadetransition.s b/asm/field_fadetransition.s
index 8ccc347e9..f701e579b 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -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
diff --git a/asm/field_specials.s b/asm/field_specials.s
index a4f3e6dc7..0746df47a 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
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/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/item_use.s b/asm/item_use.s
index e34558a86..771adcdfc 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -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
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index c5947ebc0..035c51d3f 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}
diff --git a/asm/overworld.s b/asm/overworld.s
index 5f1e198ac..077c5f4ef 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index 0f8f111ce..13659b838 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -5,1113 +5,6 @@
.text
- 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}
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/data/script_cmd_table.inc b/data/script_cmd_table.inc
index 46414b0df..00bff489f 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -45,28 +45,28 @@ gScriptCmdTable:: @ 815F9B4
.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 ScrCmd_giveitem
@@ -210,7 +210,7 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_checkmonobedience
.4byte sub_806A28C
.4byte sub_806A8C0
- .4byte sub_806ACF8
+ .4byte ScrCmd_warpD7
.4byte sub_806C844
.4byte sub_806BC40
.4byte sub_806BD90
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/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_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_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/overworld.h b/include/overworld.h
index 50ac09d9e..6aa58baa9 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -35,7 +35,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,7 +84,10 @@ void sub_8055DC4(void);
u8 sav1_map_get_name(void);
-void sub_8055D40(u16 mapDataId);
+void SetCurrentMapLayout(u16 mapDataId);
+void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y);
+
+void ResetInitialPlayerAvatarState(void);
extern u8 gUnknown_2031DD8;
extern u8 gUnknown_2036E28;
diff --git a/include/quest_log.h b/include/quest_log.h
index 00a8b8df3..73c0b5dac 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -23,4 +23,6 @@ void sub_8112720(u8);
void sub_8113550(u16, const u16 *);
void sub_8115748(u16);
+extern u8 gUnknown_203ADFA;
+
#endif //GUARD_QUEST_LOG_H
diff --git a/src/scrcmd.c b/src/scrcmd.c
index c8e7babcc..8b9551c64 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -11,6 +11,10 @@
#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"
extern u16 (*const gSpecials[])(void);
extern u16 (*const gSpecialsEnd[])(void);
@@ -19,7 +23,7 @@ extern const u8 *const gStdScriptsEnd[];
EWRAM_DATA ptrdiff_t gVScriptOffset = 0;
EWRAM_DATA u8 gUnknown_20370AC = 0;
-EWRAM_DATA u16 gUnknown_20370AE = 0;
+EWRAM_DATA u16 sPauseCounter = 0;
EWRAM_DATA u16 gUnknown_20370B0 = 0;
EWRAM_DATA u16 gUnknown_20370B2 = 0;
EWRAM_DATA u16 gUnknown_20370B4 = 0;
@@ -620,3 +624,345 @@ SCRCMD_DEF(ScrCmd_fadescreenspeed)
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
+
+static bool8 RunPauseTimer(void)
+{
+ sPauseCounter--;
+
+ if (sPauseCounter == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_delay)
+{
+ sPauseCounter = ScriptReadHalfword(ctx);
+ SetupNativeScript(ctx, RunPauseTimer);
+ return TRUE;
+}
+
+SCRCMD_DEF(ScrCmd_initclock)
+{
+// u8 hour = VarGet(ScriptReadHalfword(ctx));
+// u8 minute = VarGet(ScriptReadHalfword(ctx));
+//
+// RtcInitLocalTimeOffset(hour, minute);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_dodailyevents)
+{
+// DoTimeBasedEvents();
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_gettime)
+{
+// RtcCalcLocalTime();
+// gSpecialVar_0x8000 = gLocalTime.hours;
+// gSpecialVar_0x8001 = gLocalTime.minutes;
+// gSpecialVar_0x8002 = gLocalTime.seconds;
+ gSpecialVar_0x8000 = 0;
+ gSpecialVar_0x8001 = 0;
+ gSpecialVar_0x8002 = 0;
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_setweather)
+{
+ u16 weather = VarGet(ScriptReadHalfword(ctx));
+
+ SetSav1Weather(weather);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_resetweather)
+{
+ SetSav1WeatherFromCurrMapHeader();
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_doweather)
+{
+ DoCurrentWeather();
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_setstepcallback)
+{
+ ActivatePerStepCallback(ScriptReadByte(ctx));
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_setmaplayoutindex)
+{
+ u16 value = VarGet(ScriptReadHalfword(ctx));
+
+ SetCurrentMapLayout(value);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_warp)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_warpsilent)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_warpdoor)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_warphole)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_warpteleport)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_warpD7)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setwarp)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setdynamicwarp)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setdivewarp)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setholewarp)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setescapewarp)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_getplayerxy)
+{
+ u16 *pX = GetVarPointer(ScriptReadHalfword(ctx));
+ u16 *pY = GetVarPointer(ScriptReadHalfword(ctx));
+
+ *pX = gSaveBlock1Ptr->pos.x;
+ *pY = gSaveBlock1Ptr->pos.y;
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_getpartysize)
+{
+ gSpecialVar_Result = CalculatePlayerPartyCount();
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_playse)
+{
+ PlaySE(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForSoundEffectFinish(void)
+{
+ if (!IsSEPlaying())
+ return TRUE;
+ else
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_waitse)
+{
+ SetupNativeScript(ctx, WaitForSoundEffectFinish);
+ return TRUE;
+}
+
+SCRCMD_DEF(ScrCmd_playfanfare)
+{
+ PlayFanfare(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+static bool8 WaitForFanfareFinish(void)
+{
+ return IsFanfareTaskInactive();
+}
+
+SCRCMD_DEF(ScrCmd_waitfanfare)
+{
+ SetupNativeScript(ctx, WaitForFanfareFinish);
+ return TRUE;
+}
+
+SCRCMD_DEF(ScrCmd_playbgm)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_savebgm)
+{
+ Overworld_SetSavedMusic(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_fadedefaultbgm)
+{
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ Overworld_ChangeMusicToDefault();
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_fadenewbgm)
+{
+ u16 music = ScriptReadHalfword(ctx);
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ Overworld_ChangeMusicTo(music);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_fadeoutbgm)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_fadeinbgm)
+{
+ u8 speed = ScriptReadByte(ctx);
+
+ if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
+ return FALSE;
+ if (speed != 0)
+ FadeInBGM(4 * speed);
+ else
+ FadeInBGM(4);
+ return FALSE;
+}
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 91132c07b..74065445a 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -430,12 +430,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();
}
}