summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_setup.s12
-rw-r--r--asm/field_control_avatar.s8
-rw-r--r--asm/field_map_obj.s6
-rw-r--r--asm/field_specials.s8
-rw-r--r--asm/link_rfu.s2
-rw-r--r--asm/link_rfu_3.s2
-rw-r--r--asm/map_obj_lock.s20
-rw-r--r--asm/menu_helpers.s4
-rw-r--r--asm/overworld.s16
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/scrcmd.s994
-rw-r--r--asm/start_menu.s4
-rw-r--r--data/data_835B488.s7
-rw-r--r--data/data_83FECCC.s2
-rw-r--r--data/script_cmd_table.inc88
-rw-r--r--include/field_map_obj.h8
-rw-r--r--include/field_map_obj_helpers.h2
-rw-r--r--include/map_obj_lock.h4
-rw-r--r--include/script_movement.h2
-rw-r--r--src/scrcmd.c293
-rw-r--r--src/vs_seeker.c4
-rw-r--r--sym_common.txt2
22 files changed, 510 insertions, 982 deletions
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index ca757da07..bba968305 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -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,7 +1521,7 @@ _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
@@ -1647,7 +1647,7 @@ 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
@@ -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
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 78f2a0777..39055b8e9 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -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
@@ -1044,7 +1044,7 @@ _0806D092:
_0806D098: .4byte gMapObjects
_0806D09C: .4byte gUnknown_826D2D8
_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
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 308421098..14951c20c 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -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
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 0746df47a..0d0b2ba06 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -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]
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 035c51d3f..01e93a41d 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -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 077c5f4ef..b7cb7a989 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -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
@@ -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
@@ -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
@@ -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
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 8db247b2b..5ebf9bc96 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -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
index 13659b838..36ccf0887 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -5,762 +5,8 @@
.text
- 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
+ thumb_func_start ScrCmd_cmdC7
+ScrCmd_cmdC7: @ 806B7EC
ldr r2, _0806B804 @ =gUnknown_20370DC
ldr r3, _0806B808 @ =gUnknown_20370DA
ldrh r1, [r3]
@@ -775,10 +21,10 @@ sub_806B7EC: @ 806B7EC
.align 2, 0
_0806B804: .4byte gUnknown_20370DC
_0806B808: .4byte gUnknown_20370DA
- thumb_func_end sub_806B7EC
+ thumb_func_end ScrCmd_cmdC7
- thumb_func_start sub_806B80C
-sub_806B80C: @ 806B80C
+ thumb_func_start ScrCmd_message
+ScrCmd_message: @ 806B80C
push {r4,lr}
adds r4, r0, 0
bl ScriptReadWord
@@ -791,10 +37,10 @@ _0806B81A:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_806B80C
+ thumb_func_end ScrCmd_message
- thumb_func_start sub_806B828
-sub_806B828: @ 806B828
+ thumb_func_start ScrCmd_cmdC8
+ScrCmd_cmdC8: @ 806B828
push {r4,lr}
adds r4, r0, 0
bl ScriptReadWord
@@ -812,19 +58,19 @@ _0806B836:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_806B828
+ thumb_func_end ScrCmd_cmdC8
- thumb_func_start sub_806B850
-sub_806B850: @ 806B850
+ thumb_func_start ScrCmd_cmdC9
+ScrCmd_cmdC9: @ 806B850
push {lr}
bl sub_80F7998
movs r0, 0
pop {r1}
bx r1
- thumb_func_end sub_806B850
+ thumb_func_end ScrCmd_cmdC9
- thumb_func_start sub_806B85C
-sub_806B85C: @ 806B85C
+ thumb_func_start ScrCmd_messageautoscroll
+ScrCmd_messageautoscroll: @ 806B85C
push {r4,lr}
adds r4, r0, 0
bl ScriptReadWord
@@ -837,10 +83,10 @@ _0806B86A:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_806B85C
+ thumb_func_end ScrCmd_messageautoscroll
- thumb_func_start sub_806B878
-sub_806B878: @ 806B878
+ thumb_func_start ScrCmd_waitmessage
+ScrCmd_waitmessage: @ 806B878
push {lr}
ldr r1, _0806B888 @ =IsFieldMessageBoxHidden
bl SetupNativeScript
@@ -849,16 +95,16 @@ sub_806B878: @ 806B878
bx r1
.align 2, 0
_0806B888: .4byte IsFieldMessageBoxHidden
- thumb_func_end sub_806B878
+ thumb_func_end ScrCmd_waitmessage
- thumb_func_start sub_806B88C
-sub_806B88C: @ 806B88C
+ thumb_func_start ScrCmd_closemessage
+ScrCmd_closemessage: @ 806B88C
push {lr}
bl HideFieldMessageBox
movs r0, 0
pop {r1}
bx r1
- thumb_func_end sub_806B88C
+ thumb_func_end ScrCmd_closemessage
thumb_func_start sub_806B898
sub_806B898: @ 806B898
@@ -1085,8 +331,8 @@ _0806BA36:
bx r1
thumb_func_end sub_806B96C
- thumb_func_start sub_806BA3C
-sub_806BA3C: @ 806BA3C
+ thumb_func_start ScrCmd_waitbuttonpress
+ScrCmd_waitbuttonpress: @ 806BA3C
push {r4,lr}
adds r4, r0, 0
ldr r0, _0806BA70 @ =gUnknown_3005070
@@ -1117,7 +363,7 @@ _0806BA70: .4byte gUnknown_3005070
_0806BA74: .4byte gUnknown_203ADFA
_0806BA78: .4byte gUnknown_20370AC
_0806BA7C: .4byte sub_806B898
- thumb_func_end sub_806BA3C
+ thumb_func_end ScrCmd_waitbuttonpress
thumb_func_start ScrCmd_yesnobox
ScrCmd_yesnobox: @ 806BA80
@@ -1222,11 +468,11 @@ _0806BB2C:
bx r1
thumb_func_end ScrCmd_multichoicedefault
- thumb_func_start sub_806BB38
-sub_806BB38: @ 806BB38
+ thumb_func_start ScrCmd_drawbox
+ScrCmd_drawbox: @ 806BB38
movs r0, 0
bx lr
- thumb_func_end sub_806BB38
+ thumb_func_end ScrCmd_drawbox
thumb_func_start ScrCmd_multichoicegrid
ScrCmd_multichoicegrid: @ 806BB3C
@@ -1272,23 +518,23 @@ _0806BB80:
bx r1
thumb_func_end ScrCmd_multichoicegrid
- thumb_func_start sub_806BB8C
-sub_806BB8C: @ 806BB8C
+ thumb_func_start ScrCmd_erasebox
+ScrCmd_erasebox: @ 806BB8C
ldr r1, [r0, 0x8]
adds r1, 0x4
str r1, [r0, 0x8]
movs r0, 0
bx lr
- thumb_func_end sub_806BB8C
+ thumb_func_end ScrCmd_erasebox
- thumb_func_start sub_806BB98
-sub_806BB98: @ 806BB98
+ thumb_func_start ScrCmd_drawboxtext
+ScrCmd_drawboxtext: @ 806BB98
movs r0, 0
bx lr
- thumb_func_end sub_806BB98
+ thumb_func_end ScrCmd_drawboxtext
- thumb_func_start sub_806BB9C
-sub_806BB9C: @ 806BB9C
+ thumb_func_start ScrCmd_showmonpic
+ScrCmd_showmonpic: @ 806BB9C
push {r4,r5,lr}
adds r5, r0, 0
bl ScriptReadHalfword
@@ -1314,10 +560,10 @@ sub_806BB9C: @ 806BB9C
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_806BB9C
+ thumb_func_end ScrCmd_showmonpic
- thumb_func_start sub_806BBD8
-sub_806BBD8: @ 806BBD8
+ thumb_func_start ScrCmd_hidemonpic
+ScrCmd_hidemonpic: @ 806BBD8
push {r4,lr}
adds r4, r0, 0
bl sub_809D3CC
@@ -1334,19 +580,19 @@ _0806BBF2:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_806BBD8
+ thumb_func_end ScrCmd_hidemonpic
- thumb_func_start sub_806BBF8
-sub_806BBF8: @ 806BBF8
+ thumb_func_start ScrCmd_showcontestwinner
+ScrCmd_showcontestwinner: @ 806BBF8
ldr r1, [r0, 0x8]
adds r1, 0x1
str r1, [r0, 0x8]
movs r0, 0
bx lr
- thumb_func_end sub_806BBF8
+ thumb_func_end ScrCmd_showcontestwinner
- thumb_func_start sub_806BC04
-sub_806BC04: @ 806BC04
+ thumb_func_start ScrCmd_braillemessage
+ScrCmd_braillemessage: @ 806BC04
push {r4,r5,lr}
sub sp, 0xC
adds r5, r0, 0
@@ -1374,10 +620,10 @@ _0806BC16:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_806BC04
+ thumb_func_end ScrCmd_braillemessage
- thumb_func_start sub_806BC40
-sub_806BC40: @ 806BC40
+ thumb_func_start ScrCmd_getstringwidth
+ScrCmd_getstringwidth: @ 806BC40
push {r4,lr}
adds r4, r0, 0
bl ScriptReadWord
@@ -1398,7 +644,7 @@ _0806BC50:
bx r1
.align 2, 0
_0806BC68: .4byte gSpecialVar_0x8004
- thumb_func_end sub_806BC40
+ thumb_func_end ScrCmd_getstringwidth
thumb_func_start ScrCmd_vmessage
ScrCmd_vmessage: @ 806BC6C
@@ -1545,8 +791,8 @@ ScrCmd_bufferitemname: @ 806BD5C
_0806BD8C: .4byte sScriptStringVars
thumb_func_end ScrCmd_bufferitemname
- thumb_func_start sub_806BD90
-sub_806BD90: @ 806BD90
+ thumb_func_start ScrCmd_cmdDA
+ScrCmd_cmdDA: @ 806BD90
push {r4-r7,lr}
adds r4, r0, 0
ldr r0, [r4, 0x8]
@@ -1619,10 +865,10 @@ _0806BE22:
.align 2, 0
_0806BE2C: .4byte sScriptStringVars
_0806BE30: .4byte gUnknown_83A72A2
- thumb_func_end sub_806BD90
+ thumb_func_end ScrCmd_cmdDA
- thumb_func_start sub_806BE34
-sub_806BE34: @ 806BE34
+ thumb_func_start ScrCmd_bufferdecorationname
+ScrCmd_bufferdecorationname: @ 806BE34
push {lr}
ldr r1, [r0, 0x8]
adds r1, 0x1
@@ -1634,7 +880,7 @@ sub_806BE34: @ 806BE34
movs r0, 0
pop {r1}
bx r1
- thumb_func_end sub_806BE34
+ thumb_func_end ScrCmd_bufferdecorationname
thumb_func_start ScrCmd_buffermovename
ScrCmd_buffermovename: @ 806BE50
@@ -2085,8 +1331,8 @@ _0806C1C4: .4byte gSpecialVar_Result
_0806C1C8: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_checkmoney
- thumb_func_start sub_806C1CC
-sub_806C1CC: @ 806C1CC
+ thumb_func_start ScrCmd_showmoneybox
+ScrCmd_showmoneybox: @ 806C1CC
push {r4,r5,lr}
ldr r1, [r0, 0x8]
ldrb r5, [r1]
@@ -2123,19 +1369,19 @@ _0806C20A:
.align 2, 0
_0806C214: .4byte sub_809D6D4
_0806C218: .4byte gSaveBlock1Ptr
- thumb_func_end sub_806C1CC
+ thumb_func_end ScrCmd_showmoneybox
- thumb_func_start sub_806C21C
-sub_806C21C: @ 806C21C
+ thumb_func_start ScrCmd_hidemoneybox
+ScrCmd_hidemoneybox: @ 806C21C
push {lr}
bl HideMoneyBox
movs r0, 0
pop {r1}
bx r1
- thumb_func_end sub_806C21C
+ thumb_func_end ScrCmd_hidemoneybox
- thumb_func_start sub_806C228
-sub_806C228: @ 806C228
+ thumb_func_start ScrCmd_updatemoneybox
+ScrCmd_updatemoneybox: @ 806C228
push {lr}
ldr r1, [r0, 0x8]
adds r1, 0x1
@@ -2159,10 +1405,10 @@ _0806C24E:
bx r1
.align 2, 0
_0806C254: .4byte gSaveBlock1Ptr
- thumb_func_end sub_806C228
+ thumb_func_end ScrCmd_updatemoneybox
- thumb_func_start sub_806C258
-sub_806C258: @ 806C258
+ thumb_func_start ScrCmd_showcoinsbox
+ScrCmd_showcoinsbox: @ 806C258
push {r4,r5,lr}
ldr r1, [r0, 0x8]
ldrb r5, [r1]
@@ -2190,7 +1436,7 @@ _0806C286:
bx r1
.align 2, 0
_0806C290: .4byte sub_809D6D4
- thumb_func_end sub_806C258
+ thumb_func_end ScrCmd_showcoinsbox
thumb_func_start ScrCmd_hidecoinsbox
ScrCmd_hidecoinsbox: @ 806C294
@@ -2232,14 +1478,14 @@ ScrCmd_trainerbattle: @ 806C2C4
bx r1
thumb_func_end ScrCmd_trainerbattle
- thumb_func_start sub_806C2D8
-sub_806C2D8: @ 806C2D8
+ thumb_func_start ScrCmd_dotrainerbattle
+ScrCmd_dotrainerbattle: @ 806C2D8
push {lr}
bl sub_8080464
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_806C2D8
+ thumb_func_end ScrCmd_dotrainerbattle
thumb_func_start ScrCmd_ontrainerbattleend
ScrCmd_ontrainerbattleend: @ 806C2E4
@@ -2339,18 +1585,18 @@ ScrCmd_setwildbattle: @ 806C368
bx r1
thumb_func_end ScrCmd_setwildbattle
- thumb_func_start sub_806C39C
-sub_806C39C: @ 806C39C
+ thumb_func_start ScrCmd_dowildbattle
+ScrCmd_dowildbattle: @ 806C39C
push {lr}
bl sub_807F8C4
bl ScriptContext1_Stop
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_806C39C
+ thumb_func_end ScrCmd_dowildbattle
- thumb_func_start sub_806C3AC
-sub_806C3AC: @ 806C3AC
+ thumb_func_start ScrCmd_pokemart
+ScrCmd_pokemart: @ 806C3AC
push {lr}
bl ScriptReadWord
bl sub_809C164
@@ -2358,10 +1604,10 @@ sub_806C3AC: @ 806C3AC
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_806C3AC
+ thumb_func_end ScrCmd_pokemart
- thumb_func_start sub_806C3C0
-sub_806C3C0: @ 806C3C0
+ thumb_func_start ScrCmd_pokemartdecoration
+ScrCmd_pokemartdecoration: @ 806C3C0
push {lr}
bl ScriptReadWord
bl sub_809C1A0
@@ -2369,10 +1615,10 @@ sub_806C3C0: @ 806C3C0
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_806C3C0
+ thumb_func_end ScrCmd_pokemartdecoration
- thumb_func_start sub_806C3D4
-sub_806C3D4: @ 806C3D4
+ thumb_func_start ScrCmd_pokemartdecoration2
+ScrCmd_pokemartdecoration2: @ 806C3D4
push {lr}
bl ScriptReadWord
bl sub_809C1BC
@@ -2380,7 +1626,7 @@ sub_806C3D4: @ 806C3D4
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_806C3D4
+ thumb_func_end ScrCmd_pokemartdecoration2
thumb_func_start ScrCmd_playslotmachine
ScrCmd_playslotmachine: @ 806C3E8
@@ -2401,44 +1647,44 @@ ScrCmd_playslotmachine: @ 806C3E8
_0806C40C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end ScrCmd_playslotmachine
- thumb_func_start sub_806C410
-sub_806C410: @ 806C410
+ thumb_func_start ScrCmd_setberrytree
+ScrCmd_setberrytree: @ 806C410
movs r0, 0
bx lr
- thumb_func_end sub_806C410
+ thumb_func_end ScrCmd_setberrytree
- thumb_func_start sub_806C414
-sub_806C414: @ 806C414
+ thumb_func_start ScrCmd_getpricereduction
+ScrCmd_getpricereduction: @ 806C414
movs r0, 0
bx lr
- thumb_func_end sub_806C414
+ thumb_func_end ScrCmd_getpricereduction
- thumb_func_start sub_806C418
-sub_806C418: @ 806C418
+ thumb_func_start ScrCmd_choosecontestmon
+ScrCmd_choosecontestmon: @ 806C418
push {lr}
bl ScriptContext1_Stop
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_806C418
+ thumb_func_end ScrCmd_choosecontestmon
- thumb_func_start sub_806C424
-sub_806C424: @ 806C424
+ thumb_func_start ScrCmd_startcontest
+ScrCmd_startcontest: @ 806C424
movs r0, 0
bx lr
- thumb_func_end sub_806C424
+ thumb_func_end ScrCmd_startcontest
- thumb_func_start sub_806C428
-sub_806C428: @ 806C428
+ thumb_func_start ScrCmd_showcontestresults
+ScrCmd_showcontestresults: @ 806C428
movs r0, 0
bx lr
- thumb_func_end sub_806C428
+ thumb_func_end ScrCmd_showcontestresults
- thumb_func_start sub_806C42C
-sub_806C42C: @ 806C42C
+ thumb_func_start ScrCmd_contestlinktransfer
+ScrCmd_contestlinktransfer: @ 806C42C
movs r0, 0
bx lr
- thumb_func_end sub_806C42C
+ thumb_func_end ScrCmd_contestlinktransfer
thumb_func_start ScrCmd_dofieldeffect
ScrCmd_dofieldeffect: @ 806C430
@@ -2584,8 +1830,8 @@ ScrCmd_playmoncry: @ 806C508
bx r1
thumb_func_end ScrCmd_playmoncry
- thumb_func_start sub_806C540
-sub_806C540: @ 806C540
+ thumb_func_start ScrCmd_waitmoncry
+ScrCmd_waitmoncry: @ 806C540
push {lr}
ldr r1, _0806C550 @ =IsCryFinished
bl SetupNativeScript
@@ -2594,7 +1840,7 @@ sub_806C540: @ 806C540
bx r1
.align 2, 0
_0806C550: .4byte IsCryFinished
- thumb_func_end sub_806C540
+ thumb_func_end ScrCmd_waitmoncry
thumb_func_start ScrCmd_setmetatile
ScrCmd_setmetatile: @ 806C554
@@ -2744,8 +1990,8 @@ _0806C682:
bx r1
thumb_func_end sub_806C670
- thumb_func_start sub_806C688
-sub_806C688: @ 806C688
+ thumb_func_start ScrCmd_waitdoranim
+ScrCmd_waitdoranim: @ 806C688
push {lr}
ldr r1, _0806C698 @ =sub_806C670
bl SetupNativeScript
@@ -2754,7 +2000,7 @@ sub_806C688: @ 806C688
bx r1
.align 2, 0
_0806C698: .4byte sub_806C670
- thumb_func_end sub_806C688
+ thumb_func_end ScrCmd_waitdoranim
thumb_func_start ScrCmd_setdooropen
ScrCmd_setdooropen: @ 806C69C
@@ -2822,17 +2068,17 @@ ScrCmd_setdoorclosed: @ 806C6E0
bx r1
thumb_func_end ScrCmd_setdoorclosed
- thumb_func_start sub_806C724
-sub_806C724: @ 806C724
+ thumb_func_start ScrCmd_addelevmenuitem
+ScrCmd_addelevmenuitem: @ 806C724
movs r0, 0
bx lr
- thumb_func_end sub_806C724
+ thumb_func_end ScrCmd_addelevmenuitem
- thumb_func_start sub_806C728
-sub_806C728: @ 806C728
+ thumb_func_start ScrCmd_showelevmenu
+ScrCmd_showelevmenu: @ 806C728
movs r0, 0
bx lr
- thumb_func_end sub_806C728
+ thumb_func_end ScrCmd_showelevmenu
thumb_func_start ScrCmd_checkcoins
ScrCmd_checkcoins: @ 806C72C
@@ -2912,23 +2158,23 @@ _0806C7B0:
_0806C7B8: .4byte gSpecialVar_Result
thumb_func_end ScrCmd_takecoins
- thumb_func_start sub_806C7BC
-sub_806C7BC: @ 806C7BC
+ thumb_func_start ScrCmd_cmdCA
+ScrCmd_cmdCA: @ 806C7BC
push {lr}
bl sub_8069A20
movs r0, 0
pop {r1}
bx r1
- thumb_func_end sub_806C7BC
+ thumb_func_end ScrCmd_cmdCA
- thumb_func_start sub_806C7C8
-sub_806C7C8: @ 806C7C8
+ thumb_func_start ScrCmd_cmdCB
+ScrCmd_cmdCB: @ 806C7C8
push {lr}
bl sub_8069A2C
movs r0, 0
pop {r1}
bx r1
- thumb_func_end sub_806C7C8
+ thumb_func_end ScrCmd_cmdCB
thumb_func_start ScrCmd_setmonobedient
ScrCmd_setmonobedient: @ 806C7D4
@@ -2985,8 +2231,8 @@ _0806C83C: .4byte gSpecialVar_Result
_0806C840: .4byte gPlayerParty
thumb_func_end ScrCmd_checkmonobedience
- thumb_func_start sub_806C844
-sub_806C844: @ 806C844
+ thumb_func_start ScrCmd_setmonmetlocation
+ScrCmd_setmonmetlocation: @ 806C844
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -3019,6 +2265,6 @@ _0806C87A:
bx r1
.align 2, 0
_0806C884: .4byte gPlayerParty
- thumb_func_end sub_806C844
+ thumb_func_end ScrCmd_setmonmetlocation
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 1d81d0392..4a58b11ad 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
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 6e387a536..523942112 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -660,10 +660,13 @@ gUnknown_83A7240:: @ 83A7240
.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
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/script_cmd_table.inc b/data/script_cmd_table.inc
index 00bff489f..8d92c94f5 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -94,7 +94,7 @@ gScriptCmdTable:: @ 815F9B4
.4byte ScrCmd_faceplayer
.4byte ScrCmd_turnobject
.4byte ScrCmd_trainerbattle
- .4byte sub_806C2D8
+ .4byte ScrCmd_dotrainerbattle
.4byte ScrCmd_ontrainerbattleend
.4byte ScrCmd_ontrainerbattleendgoto
.4byte ScrCmd_checktrainerflag
@@ -103,25 +103,25 @@ gScriptCmdTable:: @ 815F9B4
.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_waitdoranim
.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 ScrCmd_warpD7
- .4byte sub_806C844
- .4byte sub_806BC40
- .4byte sub_806BD90
+ .4byte ScrCmd_cmdCF
+ .4byte ScrCmd_cmdD0
+ .4byte ScrCmd_warpD1
+ .4byte ScrCmd_setmonmetlocation
+ .4byte ScrCmd_getstringwidth
+ .4byte ScrCmd_cmdDA
gScriptCmdTableEnd:: @ 815FD08
.4byte ScrCmd_nop
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/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/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/src/scrcmd.c b/src/scrcmd.c
index 8b9551c64..ce1519b94 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -15,6 +15,11 @@
#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"
extern u16 (*const gSpecials[])(void);
extern u16 (*const gSpecialsEnd[])(void);
@@ -24,11 +29,13 @@ extern const u8 *const gStdScriptsEnd[];
EWRAM_DATA ptrdiff_t gVScriptOffset = 0;
EWRAM_DATA u8 gUnknown_20370AC = 0;
EWRAM_DATA u16 sPauseCounter = 0;
-EWRAM_DATA u16 gUnknown_20370B0 = 0;
-EWRAM_DATA u16 gUnknown_20370B2 = 0;
-EWRAM_DATA u16 gUnknown_20370B4 = 0;
+EWRAM_DATA u16 sMovingNpcId = 0;
+EWRAM_DATA u16 sMovingNpcMapBank = 0;
+EWRAM_DATA u16 sMovingNpcMapId = 0;
EWRAM_DATA u16 gUnknown_20370B6 = 0;
+extern u8 gSelectedEventObject;
+
// This is defined in here so the optimizer can't see its value when compiling
// script.c.
void * const gNullScriptPtr = NULL;
@@ -247,7 +254,7 @@ SCRCMD_DEF(ScrCmd_setmysteryeventstatus)
return FALSE;
}
-SCRCMD_DEF(sub_806A28C)
+SCRCMD_DEF(ScrCmd_cmdCF)
{
const u8 * script = sub_8069E48();
if (script != NULL)
@@ -562,7 +569,7 @@ SCRCMD_DEF(ScrCmd_incrementgamestat)
return FALSE;
}
-SCRCMD_DEF(sub_806A888)
+SCRCMD_DEF(ScrCmd_comparestattoword)
{
u8 statIdx = ScriptReadByte(ctx);
u32 value = ScriptReadWord(ctx);
@@ -577,7 +584,7 @@ SCRCMD_DEF(sub_806A888)
return FALSE;
}
-SCRCMD_DEF(sub_806A8C0)
+SCRCMD_DEF(ScrCmd_cmdD0)
{
u16 value = ScriptReadHalfword(ctx);
sub_8115748(value);
@@ -776,7 +783,7 @@ SCRCMD_DEF(ScrCmd_warpteleport)
return TRUE;
}
-SCRCMD_DEF(ScrCmd_warpD7)
+SCRCMD_DEF(ScrCmd_warpD1)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@@ -966,3 +973,275 @@ SCRCMD_DEF(ScrCmd_fadeinbgm)
FadeInBGM(4);
return FALSE;
}
+
+SCRCMD_DEF(ScrCmd_applymovement)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_applymovement_at)
+{
+ 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);
+}
+
+SCRCMD_DEF(ScrCmd_waitmovement)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ if (localId != 0)
+ sMovingNpcId = localId;
+ sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup;
+ sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum;
+ SetupNativeScript(ctx, WaitForMovementFinish);
+ return TRUE;
+}
+
+SCRCMD_DEF(ScrCmd_waitmovement_at)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_removeobject)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_removeobject_at)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_addobject)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+
+ show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_addobject_at)
+{
+ u16 objectId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ show_sprite(objectId, mapNum, mapGroup);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_setobjectxy)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setobjectxyperm)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetMapObjTemplateCoords(localId, x, y);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_moveobjectoffscreen)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ sub_805FE94(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_showobject_at)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_hideobject_at)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_setobjectpriority)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_resetobjectpriority)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ sub_805F400(localId, mapNum, mapGroup);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_faceplayer)
+{
+ if (gMapObjects[gSelectedEventObject].active)
+ {
+ FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject],
+ player_get_direction_lower_nybble());
+ }
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_turnobject)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 direction = ScriptReadByte(ctx);
+
+ FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_setobjectmovementtype)
+{
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 movementType = ScriptReadByte(ctx);
+
+ Overworld_SetMapObjTemplateMovementType(localId, movementType);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_createvobject)
+{
+ 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;
+}
+
+SCRCMD_DEF(ScrCmd_turnvobject)
+{
+ u8 v1 = ScriptReadByte(ctx);
+ u8 direction = ScriptReadByte(ctx);
+
+ sub_8069058(v1, direction);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_lockall)
+{
+ if (is_c1_link_related_active())
+ {
+ return FALSE;
+ }
+ else
+ {
+ ScriptFreezeMapObjects();
+ SetupNativeScript(ctx, sub_8069590);
+ return TRUE;
+ }
+}
+
+SCRCMD_DEF(ScrCmd_lock)
+{
+ 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;
+ }
+}
+
+SCRCMD_DEF(ScrCmd_releaseall)
+{
+ u8 playerObjectId;
+
+ HideFieldMessageBox();
+ playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
+ sub_80974D8();
+ UnfreezeMapObjects();
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_release)
+{
+ u8 playerObjectId;
+
+ HideFieldMessageBox();
+ if (gMapObjects[gSelectedEventObject].active)
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]);
+ playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
+ sub_80974D8();
+ UnfreezeMapObjects();
+ return FALSE;
+}
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_common.txt b/sym_common.txt
index f63c4f277..333dae222 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -175,7 +175,7 @@ gUnknown_300506C: @ 300506C
gUnknown_3005070: @ 3005070
.space 0x4
-gUnknown_3005074: @ 3005074
+gSelectedEventObject: @ 3005074
.space 0x4
gUnknown_3005078: @ 3005078