summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-01-06 10:09:03 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2019-01-06 10:09:03 -0500
commit1cb1fd2bf8416821a897fbc6b5a60c60595b4a7b (patch)
tree3919f0fb244bbd9f3620c3bae98409e0468bd20b
parentd2538cffa03a21aca4e116971a7eb8b760f98ce0 (diff)
through ScrCmd_checkdecor
-rw-r--r--asm/battle_controller_oak.s2
-rw-r--r--asm/battle_controller_player.s2
-rw-r--r--asm/battle_setup.s4
-rw-r--r--asm/battle_tower.s2
-rw-r--r--asm/berry_pouch.s4
-rw-r--r--asm/help_system_812B1E0.s2
-rw-r--r--asm/item.s44
-rw-r--r--asm/item_menu.s26
-rw-r--r--asm/item_pc.s2
-rw-r--r--asm/item_use.s6
-rw-r--r--asm/party_menu.s46
-rw-r--r--asm/player_pc.s4
-rw-r--r--asm/pokemon_storage_system.s6
-rw-r--r--asm/scrcmd.s563
-rw-r--r--asm/shop.s2
-rw-r--r--asm/teachy_tv.s4
-rw-r--r--asm/tm_case.s10
-rw-r--r--asm/trainer_tower.s2
-rw-r--r--asm/unk_810C3A4.s2
-rw-r--r--asm/unk_8147AA8.s6
-rw-r--r--asm/unk_814B6F0.s2
-rw-r--r--asm/unk_81507FC.s6
-rw-r--r--data/script_cmd_table.inc14
-rw-r--r--include/item.h1
-rw-r--r--src/scrcmd.c211
25 files changed, 311 insertions, 662 deletions
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 29ae446f6..91931bb63 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -308,7 +308,7 @@ _080E77AC:
bhi _080E7838
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_080E780A:
movs r0, 0x5
bl PlaySE
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 4db1f94c3..d83245653 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -381,7 +381,7 @@ _0802E5A8:
bhi _0802E634
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_0802E606:
movs r0, 0x5
bl PlaySE
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 499d565f0..ca757da07 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -104,7 +104,7 @@ sub_807F6CC: @ 807F6CC
bhi _0807F6FC
ldr r0, _0807F6F8 @ =0x00000167
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0807F6FC
@@ -356,7 +356,7 @@ sub_807F904: @ 807F904
str r0, [r1, 0x8]
ldr r0, _0807F94C @ =0x00000167
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
beq _0807F958
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 82922b88f..c02c98723 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -3218,7 +3218,7 @@ sub_80E724C: @ 80E724C
adds r1, r0
ldrh r0, [r1]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index b58832931..75611547e 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -2497,7 +2497,7 @@ _0813E18A:
ldr r0, _0813E1F4 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r5, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x9
bl sub_813EA98
ldrb r0, [r5]
@@ -3250,7 +3250,7 @@ sub_813E7F0: @ 813E7F0
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r7, _0813E8C4 @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index f9fb50cf7..bca296e67 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -967,7 +967,7 @@ _0812B98C: .4byte 0x00000829
_0812B990:
ldr r0, _0812B99C @ =0x00000169
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
b _0812BAF6
.align 2, 0
_0812B99C: .4byte 0x00000169
diff --git a/asm/item.s b/asm/item.s
index aa64e54fa..2bc45d5c4 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -252,8 +252,8 @@ _08099F3C:
bx r1
thumb_func_end sub_8099F08
- thumb_func_start sub_8099F40
-sub_8099F40: @ 8099F40
+ thumb_func_start CheckBagHasItem
+CheckBagHasItem: @ 8099F40
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -310,14 +310,14 @@ _08099FA6:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8099F40
+ thumb_func_end CheckBagHasItem
thumb_func_start sub_8099FAC
sub_8099FAC: @ 8099FAC
push {r4,lr}
ldr r0, _08099FC0 @ =0x0000016d
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -338,7 +338,7 @@ _08099FD4:
_08099FD6:
adds r0, r4, 0
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -360,8 +360,8 @@ _08099FF6:
_08099FFC: .4byte gSpecialVar_Result
thumb_func_end sub_8099FAC
- thumb_func_start sub_809A000
-sub_809A000: @ 809A000
+ thumb_func_start CheckBagHasSpace
+CheckBagHasSpace: @ 809A000
push {r4-r6,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -428,10 +428,10 @@ _0809A07C:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_809A000
+ thumb_func_end CheckBagHasSpace
- thumb_func_start sub_809A084
-sub_809A084: @ 809A084
+ thumb_func_start AddBagItem
+AddBagItem: @ 809A084
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -494,7 +494,7 @@ _0809A0F4:
lsls r4, 1
adds r0, r4, 0
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0809A132
@@ -522,7 +522,7 @@ _0809A132:
ldr r4, _0809A1B0 @ =0x0000016d
adds r0, r4, 0
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0809A174
@@ -595,10 +595,10 @@ _0809A1CC:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809A084
+ thumb_func_end AddBagItem
- thumb_func_start sub_809A1D8
-sub_809A1D8: @ 809A1D8
+ thumb_func_start RemoveBagItem
+RemoveBagItem: @ 809A1D8
push {r4-r7,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -667,7 +667,7 @@ _0809A25A:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809A1D8
+ thumb_func_end RemoveBagItem
thumb_func_start GetPocketByItemId
GetPocketByItemId: @ 809A260
@@ -832,8 +832,8 @@ _0809A35C:
_0809A370: .4byte gSaveBlock1Ptr
thumb_func_end sub_809A33C
- thumb_func_start sub_809A374
-sub_809A374: @ 809A374
+ thumb_func_start CheckPCHasItem
+CheckPCHasItem: @ 809A374
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
@@ -875,10 +875,10 @@ _0809A3C0:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_809A374
+ thumb_func_end CheckPCHasItem
- thumb_func_start sub_809A3C8
-sub_809A3C8: @ 809A3C8
+ thumb_func_start AddPCItem
+AddPCItem: @ 809A3C8
push {r4-r7,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -955,7 +955,7 @@ _0809A458:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809A3C8
+ thumb_func_end AddPCItem
thumb_func_start sub_809A460
sub_809A460: @ 809A460
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 58b74acf3..f8872910f 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -4200,7 +4200,7 @@ _08109F6E:
ldr r0, _08109FF4 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r7, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x6
bl sub_810BA3C
ldrb r0, [r7]
@@ -5464,7 +5464,7 @@ sub_810A9D4: @ 810A9D4
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r3, _0810AAE0 @ =gSaveBlock1Ptr
ldr r4, [r3]
movs r7, 0xA4
@@ -5744,7 +5744,7 @@ sub_810AC40: @ 810AC40
ldr r5, _0810ACD0 @ =gSpecialVar_ItemId
ldrh r0, [r5]
ldrh r1, [r7, 0x10]
- bl sub_809A3C8
+ bl AddPCItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
@@ -5839,7 +5839,7 @@ _0810AD1E:
cmp r0, 0
beq _0810AD98
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
@@ -6120,10 +6120,10 @@ sub_810AF74: @ 810AF74
bl sub_810ADD8
movs r0, 0xD
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x4
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r2, _0810AF98 @ =sub_8030AEC
movs r0, 0x6
movs r1, 0
@@ -6317,27 +6317,27 @@ sub_810B108: @ 810B108
bl sub_810ADD8
movs r0, 0xD
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xE
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xB7
lsls r0, 1
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x4
movs r1, 0x5
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x3
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x8
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
cmp r4, 0x7
beq _0810B160
cmp r4, 0x8
diff --git a/asm/item_pc.s b/asm/item_pc.s
index b222b9ca2..0f3c5809b 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -2036,7 +2036,7 @@ sub_810E418: @ 810E418
lsrs r4, r0, 16
ldrh r1, [r5, 0x10]
adds r0, r4, 0
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/item_use.s b/asm/item_use.s
index 558e175f2..e34558a86 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1361,7 +1361,7 @@ sub_80A1A44: @ 80A1A44
ldr r4, _080A1A84 @ =gSpecialVar_ItemId
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldrh r0, [r4]
bl ItemId_GetPocket
lsls r0, 24
@@ -1844,7 +1844,7 @@ sub_80A1E1C: @ 80A1E1C
ldr r0, _080A1E44 @ =gSpecialVar_ItemId
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
bl sub_8108CB4
adds r0, r4, 0
bl sub_8108B50
@@ -1959,7 +1959,7 @@ sub_80A1EF4: @ 80A1EF4
bl PlaySE
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
adds r0, r4, 0
bl sub_8042DA4
adds r2, r0, 0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index c4980f984..86e1c42dc 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -3582,7 +3582,7 @@ sub_8120610: @ 8120610
b _0812064E
_0812062C:
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
beq _0812064C
@@ -9943,7 +9943,7 @@ _081237CC:
beq _081237F8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x9
ldrsb r0, [r5, r0]
mov r1, r8
@@ -10016,7 +10016,7 @@ sub_8123824: @ 8123824
bl sub_81205C8
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r1, _0812389C @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -10133,17 +10133,17 @@ _08123956:
ldr r5, _08123998 @ =gSpecialVar_ItemId
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r6, _0812399C @ =gUnknown_203B0D8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081239AC
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldrh r0, [r6]
bl sub_8120658
ldr r0, _081239A0 @ =gStringVar4
@@ -10330,10 +10330,10 @@ sub_8123ACC: @ 8123ACC
bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
mov r0, r8
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldrb r0, [r6, 0x8]
lsls r0, 28
lsrs r0, 28
@@ -10903,7 +10903,7 @@ _08123FAA:
lsrs r4, r0, 16
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12735,7 +12735,7 @@ sub_8124E48: @ 8124E48
bhi _08124EB0
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08124EB0:
mov r1, r8
ldr r0, [r1]
@@ -12828,7 +12828,7 @@ sub_8124EFC: @ 8124EFC
bhi _08124F7C
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08124F7C:
mov r1, r8
ldr r0, [r1]
@@ -13418,7 +13418,7 @@ _0812544C:
beq _0812547E
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
b _0812547E
.align 2, 0
_08125474: .4byte gUnknown_203B0C0
@@ -13963,7 +13963,7 @@ sub_8125898: @ 8125898
bl PlaySE
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r2, 0xE
ldrsh r1, [r5, r2]
adds r1, 0xD
@@ -14065,7 +14065,7 @@ _081259A0:
bl PlaySE
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0
ldrsh r1, [r7, r0]
adds r1, 0xD
@@ -14406,7 +14406,7 @@ sub_8125C48: @ 8125C48
bhi _08125C84
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08125C84:
ldr r1, _08125CD8 @ =gStringVar1
adds r0, r5, 0
@@ -15276,7 +15276,7 @@ sub_8126350: @ 8126350
bl sub_8126440
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r1, _08126428 @ =gStringVar1
adds r0, r4, 0
bl GetMonNickname
@@ -16117,7 +16117,7 @@ _08126AB4:
ldr r0, _08126ADC @ =gSpecialVar_ItemId
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08126ABE:
ldr r1, _08126AE4 @ =gTasks
lsls r0, r4, 2
@@ -16269,7 +16269,7 @@ sub_8126BD4: @ 8126BD4
bl sub_80A2294
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
pop {r4,r5}
pop {r0}
bx r0
@@ -16971,7 +16971,7 @@ sub_812713C: @ 812713C
bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
adds r0, r7, 0
bl sub_81273AC
ldr r0, [r6]
@@ -17117,7 +17117,7 @@ _0812728E:
ldr r6, _081272C4 @ =gUnknown_203B0D8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081272CC
@@ -17240,7 +17240,7 @@ _0812739C: .4byte gUnknown_203B0A0
_081273A0:
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_081273A8:
pop {r0}
bx r0
@@ -17257,14 +17257,14 @@ sub_81273AC: @ 81273AC
beq _081273C8
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A3C8
+ bl AddPCItem
b _081273D0
.align 2, 0
_081273C4: .4byte gUnknown_203B0A0
_081273C8:
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_081273D0:
lsls r0, 24
lsrs r0, 24
diff --git a/asm/player_pc.s b/asm/player_pc.s
index c4eab0f30..4fea7bea1 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -25,7 +25,7 @@ _080EB672:
ldrh r0, [r0]
adds r1, r6
ldrh r1, [r1]
- bl sub_809A3C8
+ bl AddPCItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1649,7 +1649,7 @@ sub_80EC364: @ 80EC364
adds r5, r1, r0
ldrh r0, [r5, 0x20]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _080EC3B4
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 37f9e9762..c40afefde 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5151,7 +5151,7 @@ _0808E2E8:
adds r0, r1
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _0808E314
@@ -5504,7 +5504,7 @@ _0808E5E0:
adds r0, r1
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6643,7 +6643,7 @@ _0808EF56:
mov r0, sp
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_0808EF60:
add sp, 0x4
pop {r0}
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index b1fe31de5..1d957dba0 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -5,569 +5,6 @@
.text
- thumb_func_start ScrCmd_setorcopyvar
-ScrCmd_setorcopyvar: @ 806A3E0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setorcopyvar
-
- thumb_func_start compare_012
-compare_012: @ 806A40C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, r1
- bcs _0806A41E
- movs r0, 0
- b _0806A428
-_0806A41E:
- cmp r0, r1
- beq _0806A426
- movs r0, 0x2
- b _0806A428
-_0806A426:
- movs r0, 0x1
-_0806A428:
- pop {r1}
- bx r1
- thumb_func_end compare_012
-
- thumb_func_start ScrCmd_compare_local_to_local
-ScrCmd_compare_local_to_local: @ 806A42C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, r4, 0
- adds r3, 0x64
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r3, r1
- ldrb r1, [r3]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_local
-
- thumb_func_start ScrCmd_compare_local_to_value
-ScrCmd_compare_local_to_value: @ 806A45C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_value
-
- thumb_func_start ScrCmd_compare_local_to_addr
-ScrCmd_compare_local_to_addr: @ 806A484
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r5, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_addr
-
- thumb_func_start ScrCmd_compare_addr_to_local
-ScrCmd_compare_addr_to_local: @ 806A4B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- lsls r2, 2
- adds r1, r4, 0
- adds r1, 0x64
- adds r1, r2
- ldrb r1, [r1]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_local
-
- thumb_func_start ScrCmd_compare_addr_to_value
-ScrCmd_compare_addr_to_value: @ 806A4DC
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_value
-
- thumb_func_start ScrCmd_compare_addr_to_addr
-ScrCmd_compare_addr_to_addr: @ 806A4FC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r5, [r0]
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_addr
-
- thumb_func_start ScrCmd_compare_var_to_value
-ScrCmd_compare_var_to_value: @ 806A520
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r5, [r0]
- adds r0, r4, 0
- bl ScriptReadHalfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_var_to_value
-
- thumb_func_start ScrCmd_compare_var_to_var
-ScrCmd_compare_var_to_var: @ 806A550
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r2, [r5]
- ldrh r1, [r0]
- adds r0, r2, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_var_to_var
-
- thumb_func_start ScrCmd_addvar
-ScrCmd_addvar: @ 806A584
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl ScriptReadHalfword
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_addvar
-
- thumb_func_start ScrCmd_subvar
-ScrCmd_subvar: @ 806A5AC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_subvar
-
- thumb_func_start ScrCmd_random
-ScrCmd_random: @ 806A5DC
- push {r4,r5,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r5, _0806A60C @ =gSpecialVar_Result
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A60C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_random
-
- thumb_func_start sub_806A610
-sub_806A610: @ 806A610
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A658 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A084
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r4, 0
- bl sub_809A824
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A658: .4byte gSpecialVar_Result
- thumb_func_end sub_806A610
-
- thumb_func_start ScrCmd_takeitem
-ScrCmd_takeitem: @ 806A65C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A69C @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A1D8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A69C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_takeitem
-
- thumb_func_start sub_806A6A0
-sub_806A6A0: @ 806A6A0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A6E0 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A000
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A6E0: .4byte gSpecialVar_Result
- thumb_func_end sub_806A6A0
-
- thumb_func_start sub_806A6E4
-sub_806A6E4: @ 806A6E4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A724 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8099F40
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A724: .4byte gSpecialVar_Result
- thumb_func_end sub_806A6E4
-
- thumb_func_start ScrCmd_checkitemtype
-ScrCmd_checkitemtype: @ 806A728
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806A750 @ =gSpecialVar_Result
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A750: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_checkitemtype
-
- thumb_func_start ScrCmd_givepcitem
-ScrCmd_givepcitem: @ 806A754
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _0806A794 @ =gSpecialVar_Result
- adds r0, r4, 0
- bl sub_809A3C8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A794: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givepcitem
-
- thumb_func_start ScrCmd_checkpcitem
-ScrCmd_checkpcitem: @ 806A798
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _0806A7D8 @ =gSpecialVar_Result
- adds r0, r4, 0
- bl sub_809A374
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A7D8: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_checkpcitem
-
- thumb_func_start sub_806A7DC
-sub_806A7DC: @ 806A7DC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A7DC
-
- thumb_func_start sub_806A7F0
-sub_806A7F0: @ 806A7F0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A7F0
-
- thumb_func_start sub_806A804
-sub_806A804: @ 806A804
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A804
-
- thumb_func_start sub_806A818
-sub_806A818: @ 806A818
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A818
-
thumb_func_start ScrCmd_setflag
ScrCmd_setflag: @ 806A82C
push {lr}
diff --git a/asm/shop.s b/asm/shop.s
index 60b92410d..f710c9a7c 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -2485,7 +2485,7 @@ sub_809BEA4: @ 809BEA4
bl PutWindowTilemap
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x2]
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index bdd06dfff..5e2b048e2 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -398,7 +398,7 @@ sub_815AEE8: @ 815AEE8
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0815AF30
@@ -443,7 +443,7 @@ sub_815AF5C: @ 815AF5C
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0815AF84
diff --git a/asm/tm_case.s b/asm/tm_case.s
index 1539343e8..e7812abf2 100644
--- a/asm/tm_case.s
+++ b/asm/tm_case.s
@@ -2568,7 +2568,7 @@ sub_8132D34: @ 8132D34
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r7, _08132DFC @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
@@ -2729,16 +2729,16 @@ sub_8132E64: @ 8132E64
bl sub_81320AC
ldr r0, _08132F0C @ =0x00000121
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r0, _08132F10 @ =0x00000123
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r0, _08132F14 @ =0x00000129
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r0, _08132F18 @ =0x00000143
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r1, _08132F1C @ =sub_815ABFC
movs r0, 0x4
movs r2, 0
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
index c1da74a98..8eef5eaf5 100644
--- a/asm/trainer_tower.s
+++ b/asm/trainer_tower.s
@@ -518,7 +518,7 @@ _0815E458: .4byte gSpecialVar_Result
_0815E45C:
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s
index e7e825483..cabaac727 100644
--- a/asm/unk_810C3A4.s
+++ b/asm/unk_810C3A4.s
@@ -180,7 +180,7 @@ sub_810C4EC: @ 810C4EC
movs r0, 0xB5
lsls r0, 1
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s
index a7761148d..d27d74f84 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/unk_8147AA8.s
@@ -2300,14 +2300,14 @@ _08148BFC:
beq _08148C54
ldrh r0, [r1, 0x3E]
ldrh r1, [r2]
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
beq _08148C54
ldr r0, [r4]
ldrh r0, [r0, 0x3E]
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _08148C4C
@@ -4162,7 +4162,7 @@ _0814998A:
beq _0814999C
adds r0, r5, 0
adds r1, r4, 0
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08149984
diff --git a/asm/unk_814B6F0.s b/asm/unk_814B6F0.s
index 90882d61c..8cf90cd23 100644
--- a/asm/unk_814B6F0.s
+++ b/asm/unk_814B6F0.s
@@ -204,7 +204,7 @@ _0814B878: .4byte gSpecialVar_ItemId
_0814B87C:
ldrh r0, [r1]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_0814B884:
ldr r4, _0814B8E0 @ =gUnknown_203F3DC
ldr r2, [r4]
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index 0118eff4b..bc9b8c83a 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -6240,7 +6240,7 @@ _08153754: .4byte gUnknown_203F3E0
_08153758:
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _0815376A
@@ -6249,10 +6249,10 @@ _08153758:
_0815376A:
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08153784
diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc
index aee959808..46414b0df 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -69,17 +69,17 @@ gScriptCmdTable:: @ 815F9B4
.4byte sub_806AF10
.4byte ScrCmd_getplayerxy
.4byte ScrCmd_getpartysize
- .4byte sub_806A610
+ .4byte ScrCmd_giveitem
.4byte ScrCmd_takeitem
- .4byte sub_806A6A0
- .4byte sub_806A6E4
+ .4byte ScrCmd_checkitemspace
+ .4byte ScrCmd_checkitem
.4byte ScrCmd_checkitemtype
.4byte ScrCmd_givepcitem
.4byte ScrCmd_checkpcitem
- .4byte sub_806A7DC
- .4byte sub_806A7F0
- .4byte sub_806A818
- .4byte sub_806A804
+ .4byte ScrCmd_givedecoration
+ .4byte ScrCmd_takedecoration
+ .4byte ScrCmd_checkdecor
+ .4byte ScrCmd_checkdecorspace
.4byte ScrCmd_applymovement
.4byte ScrCmd_applymovement_at
.4byte ScrCmd_waitmovement
diff --git a/include/item.h b/include/item.h
index 75c56c94d..2d6bb9370 100644
--- a/include/item.h
+++ b/include/item.h
@@ -63,5 +63,6 @@ u16 itemid_get_market_price(u16 itemId);
void sub_809A2DC(void);
void sub_809A2A4(void);
void sub_8099E90(u16, u8 *);
+void sub_809A824(u16 itemId);
#endif // ITEM_H
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 20f1dbc3b..9802791bf 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -3,6 +3,8 @@
#include "script.h"
#include "mystery_event_script.h"
#include "event_data.h"
+#include "random.h"
+#include "item.h"
extern u16 (*const gSpecials[])(void);
extern u16 (*const gSpecialsEnd[])(void);
@@ -311,9 +313,218 @@ SCRCMD_DEF(ScrCmd_copyvar)
return FALSE;
}
+SCRCMD_DEF(ScrCmd_setorcopyvar)
+{
+ u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx));
+ *destPtr = VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
u8 * const sScriptStringVars[] =
{
gStringVar1,
gStringVar2,
gStringVar3,
};
+
+u8 compare_012(u16 left, u16 right)
+{
+ if (left < right)
+ return 0;
+ else if (left == right)
+ return 1;
+ else
+ return 2;
+}
+
+// comparelocaltolocal
+SCRCMD_DEF(ScrCmd_compare_local_to_local)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+// comparelocaltoimm
+SCRCMD_DEF(ScrCmd_compare_local_to_value)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = ScriptReadByte(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_compare_local_to_addr)
+{
+ const u8 value1 = ctx->data[ScriptReadByte(ctx)];
+ const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_compare_addr_to_local)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_compare_addr_to_value)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = ScriptReadByte(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_compare_addr_to_addr)
+{
+ const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
+ const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_compare_var_to_value)
+{
+ const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx));
+ const u16 value2 = ScriptReadHalfword(ctx);
+
+ ctx->comparisonResult = compare_012(value1, value2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_compare_var_to_var)
+{
+ const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx));
+ const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx));
+
+ ctx->comparisonResult = compare_012(*ptr1, *ptr2);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_addvar)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr += ScriptReadHalfword(ctx);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_subvar)
+{
+ u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
+ *ptr -= VarGet(ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_random)
+{
+ u16 max = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = Random() % max;
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_giveitem)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = AddBagItem(itemId, (u8)quantity);
+ sub_809A824(itemId);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_takeitem)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = RemoveBagItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_checkitemspace)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = CheckBagHasSpace(itemId, (u8)quantity);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_checkitem)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = CheckBagHasItem(itemId, (u8)quantity);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_checkitemtype)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = GetPocketByItemId(itemId);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_givepcitem)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = AddPCItem(itemId, quantity);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_checkpcitem)
+{
+ u16 itemId = VarGet(ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
+ gSpecialVar_Result = CheckPCHasItem(itemId, quantity);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_givedecoration)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = DecorationAdd(decorId);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_takedecoration)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = DecorationRemove(decorId);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_checkdecorspace)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = DecorationCheckSpace(decorId);
+ return FALSE;
+}
+
+SCRCMD_DEF(ScrCmd_checkdecor)
+{
+ u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
+// gSpecialVar_Result = CheckHasDecoration(decorId);
+ return FALSE;
+}
+