diff options
author | scnorton <scnorton@biociphers.org> | 2019-01-06 15:28:10 -0500 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2019-01-06 15:28:10 -0500 |
commit | 2822d29c0bd7e579388f9d0772a7b5d1af430b31 (patch) | |
tree | 92f3aa48e7de16d0d9c9788294dea0a60a6593db | |
parent | 6a064a4fa4bedaa1e46470645e175ba7d11a2e41 (diff) |
through ScrCmd_bufferstring
-rw-r--r-- | asm/battle_message.s | 6 | ||||
-rw-r--r-- | asm/battle_tower.s | 2 | ||||
-rw-r--r-- | asm/berry_pouch.s | 10 | ||||
-rw-r--r-- | asm/field_specials.s | 8 | ||||
-rw-r--r-- | asm/item.s | 6 | ||||
-rw-r--r-- | asm/item_menu.s | 16 | ||||
-rw-r--r-- | asm/item_pc.s | 6 | ||||
-rw-r--r-- | asm/item_use.s | 6 | ||||
-rw-r--r-- | asm/overworld.s | 2 | ||||
-rw-r--r-- | asm/party_menu.s | 10 | ||||
-rw-r--r-- | asm/pokemon_summary_screen.s | 2 | ||||
-rw-r--r-- | asm/scrcmd.s | 355 | ||||
-rw-r--r-- | asm/shop.s | 6 | ||||
-rw-r--r-- | asm/tm_case.s | 8 | ||||
-rw-r--r-- | asm/unk_8147AA8.s | 6 | ||||
-rw-r--r-- | asm/unk_81507FC.s | 4 | ||||
-rw-r--r-- | data/data_835B488.s | 2 | ||||
-rw-r--r-- | data/script_cmd_table.inc | 2 | ||||
-rw-r--r-- | include/field_specials.h | 1 | ||||
-rw-r--r-- | include/item.h | 2 | ||||
-rw-r--r-- | include/script_menu.h | 2 | ||||
-rw-r--r-- | src/quest_log.c | 4 | ||||
-rw-r--r-- | src/scrcmd.c | 148 | ||||
-rw-r--r-- | src/trainer_tower.c | 2 |
24 files changed, 198 insertions, 418 deletions
diff --git a/asm/battle_message.s b/asm/battle_message.s index 029ff9ed0..183306f97 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -1604,7 +1604,7 @@ _080D7F9C: ldrh r0, [r0] _080D7FA0: mov r1, sp - bl sub_8099E90 + bl CopyItemName mov r4, sp b _080D8382 .align 2, 0 @@ -2495,12 +2495,12 @@ _080D8698: .4byte gUnknown_83FD8A2 _080D869C: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName b _080D86AE _080D86A6: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName _080D86AE: adds r5, 0x3 _080D86B0: diff --git a/asm/battle_tower.s b/asm/battle_tower.s index c02c98723..e4c7f17ba 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -3229,7 +3229,7 @@ sub_80E724C: @ 80E724C adds r0, r1 ldrh r0, [r0] ldr r1, _080E7290 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _080E7294 @ =gSpecialVar_Result strh r4, [r0] b _080E72AA diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index 75611547e..146a71788 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -733,7 +733,7 @@ sub_813D31C: @ 813D31C bl StringAppend adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0813D394 @ =gUnknown_84643B4 adds r0, r4, 0 bl StringAppend @@ -2736,7 +2736,7 @@ sub_813E37C: @ 813E37C bne _0813E3D8 ldr r1, _0813E3C8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E3CC @ =gStringVar4 ldr r1, _0813E3D0 @ =gUnknown_8416374 adds r0, r4, 0 @@ -2815,7 +2815,7 @@ sub_813E428: @ 813E428 bne _0813E488 ldrh r0, [r6] ldr r1, _0813E478 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E47C @ =gStringVar4 ldr r1, _0813E480 @ =gUnknown_84168F1 adds r0, r4, 0 @@ -2855,7 +2855,7 @@ _0813E4A0: _0813E4A8: ldrh r0, [r6] ldr r1, _0813E4D4 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E4D8 @ =gStringVar4 ldr r1, _0813E4DC @ =gUnknown_8416911 adds r0, r4, 0 @@ -3188,7 +3188,7 @@ sub_813E768: @ 813E768 ldr r0, _0813E7D8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0813E7DC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0813E7E0 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x5 diff --git a/asm/field_specials.s b/asm/field_specials.s index 0d0b2ba06..4c0b97151 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -3267,7 +3267,7 @@ TV_PrintIntToStringVar: @ 80CBED4 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 ldr r0, _080CBF00 @ =gUnknown_83F5AF8 lsls r4, 2 @@ -3285,8 +3285,8 @@ TV_PrintIntToStringVar: @ 80CBED4 _080CBF00: .4byte gUnknown_83F5AF8 thumb_func_end TV_PrintIntToStringVar - thumb_func_start sub_80CBF04 -sub_80CBF04: @ 80CBF04 + thumb_func_start CountDigits +CountDigits: @ 80CBF04 push {r4,lr} adds r4, r0, 0 movs r1, 0xA @@ -3366,7 +3366,7 @@ _080CBF9A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80CBF04 + thumb_func_end CountDigits thumb_func_start sub_80CBFA0 sub_80CBFA0: @ 80CBFA0 diff --git a/asm/item.s b/asm/item.s index 2bc45d5c4..800df5f82 100644 --- a/asm/item.s +++ b/asm/item.s @@ -149,8 +149,8 @@ _08099E88: .4byte gSaveBlock1Ptr _08099E8C: .4byte 0x0000054c thumb_func_end sub_8099E44 - thumb_func_start sub_8099E90 -sub_8099E90: @ 8099E90 + thumb_func_start CopyItemName +CopyItemName: @ 8099E90 push {r4,lr} adds r4, r1, 0 lsls r0, 16 @@ -177,7 +177,7 @@ _08099EC4: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8099E90 + thumb_func_end CopyItemName thumb_func_start sub_8099ECC sub_8099ECC: @ 8099ECC diff --git a/asm/item_menu.s b/asm/item_menu.s index f8872910f..d08021d15 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -3237,7 +3237,7 @@ sub_810971C: @ 810971C lsrs r0, 16 ldr r1, _081097D8 @ =gStringVar1 mov r10, r1 - bl sub_8099E90 + bl CopyItemName ldr r0, _081097DC @ =gStringVar4 mov r9, r0 adds r1, r6, 0 @@ -3725,7 +3725,7 @@ _08109AD4: ldr r0, _08109BA8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08109BAC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _08109BB0 @ =gStringVar4 ldr r1, _08109BB4 @ =gUnknown_84162FF adds r0, r6, 0 @@ -4125,7 +4125,7 @@ sub_8109EA8: @ 8109EA8 lsls r0, 16 lsrs r0, 16 ldr r1, _08109F30 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _08109F34 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r6, r2] @@ -4447,7 +4447,7 @@ sub_810A18C: @ 810A18C ldr r0, _0810A1BC @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A1C0 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r5, _0810A1C4 @ =gStringVar4 ldr r1, _0810A1C8 @ =gUnknown_841635E adds r0, r5, 0 @@ -4969,7 +4969,7 @@ _0810A5B4: bne _0810A5F8 ldrh r0, [r6] ldr r1, _0810A5E8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A5EC @ =gStringVar4 ldr r1, _0810A5F0 @ =gUnknown_84168F1 adds r0, r4, 0 @@ -5007,7 +5007,7 @@ _0810A610: _0810A618: ldrh r0, [r6] ldr r1, _0810A644 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A648 @ =gStringVar4 ldr r1, _0810A64C @ =gUnknown_8416911 adds r0, r4, 0 @@ -5397,7 +5397,7 @@ sub_810A940: @ 810A940 ldr r0, _0810A9B8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A9BC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0810A9C0 @ =gStringVar3 ldr r0, _0810A9C4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] @@ -5756,7 +5756,7 @@ sub_810AC40: @ 810AC40 bl sub_80A2294 ldrh r0, [r5] ldr r1, _0810ACD8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0810ACDC @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r7, r2] diff --git a/asm/item_pc.s b/asm/item_pc.s index 0f3c5809b..8d36ccc81 100644 --- a/asm/item_pc.s +++ b/asm/item_pc.s @@ -1886,7 +1886,7 @@ sub_810E274: @ 810E274 lsls r0, 16 lsrs r0, 16 ldr r1, _0810E348 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0810E34C @ =gStringVar4 ldr r1, _0810E350 @ =gUnknown_84162FF adds r0, r6, 0 @@ -2048,7 +2048,7 @@ sub_810E418: @ 810E418 bl sub_80A2294 ldr r1, _0810E4A4 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r0, _0810E4A8 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r5, r2] @@ -2241,7 +2241,7 @@ sub_810E5E0: @ 810E5E0 lsrs r0, 16 ldr r6, _0810E660 @ =gStringVar1 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName ldr r5, _0810E664 @ =gStringVar4 ldr r1, _0810E668 @ =gUnknown_84177AC adds r0, r5, 0 diff --git a/asm/item_use.s b/asm/item_use.s index 771adcdfc..0b6dacdd4 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -1374,7 +1374,7 @@ sub_80A1A44: @ 80A1A44 bl sub_81089F4 ldrh r0, [r4] ldr r1, _080A1A88 @ =gStringVar2 - bl sub_8099E90 + bl CopyItemName ldr r0, _080A1A8C @ =gStringVar4 ldr r1, _080A1A90 @ =gUnknown_841658C bl StringExpandPlaceholders @@ -1409,7 +1409,7 @@ sub_80A1A94: @ 80A1A94 bl FlagClear ldrh r0, [r5] ldr r1, _080A1AE4 @ =gStringVar2 - bl sub_8099E90 + bl CopyItemName ldr r0, _080A1AE8 @ =gStringVar4 ldr r1, _080A1AEC @ =gUnknown_84165D2 bl StringExpandPlaceholders @@ -1435,7 +1435,7 @@ _080A1AF4: bl FlagClear ldrh r0, [r5] ldr r1, _080A1B34 @ =gStringVar2 - bl sub_8099E90 + bl CopyItemName ldr r0, _080A1B38 @ =gStringVar4 ldr r1, _080A1B3C @ =gUnknown_8416600 bl StringExpandPlaceholders diff --git a/asm/overworld.s b/asm/overworld.s index b7cb7a989..eabb38228 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -72,7 +72,7 @@ sub_8054C48: @ 8054C48 bl sub_8054C04 adds r4, r0, 0 ldr r5, _08054C6C @ =gStringVar1 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 diff --git a/asm/party_menu.s b/asm/party_menu.s index 86e1c42dc..8d6da0894 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -3383,7 +3383,7 @@ _08120468: bl GetMonNickname ldr r1, _081204A0 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081204A4 @ =gStringVar4 ldr r1, _081204A8 @ =gUnknown_8416C2A adds r0, r4, 0 @@ -3424,7 +3424,7 @@ sub_81204AC: @ 81204AC bl GetMonNickname ldr r1, _08120500 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120504 @ =gStringVar4 ldr r1, _08120508 @ =gUnknown_8416CAC adds r0, r4, 0 @@ -3458,7 +3458,7 @@ sub_812050C: @ 812050C bl GetMonNickname ldr r1, _0812054C @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120550 @ =gStringVar4 ldr r1, _08120554 @ =gUnknown_8416C49 adds r0, r4, 0 @@ -3502,10 +3502,10 @@ sub_8120558: @ 8120558 bl sub_8124B60 ldr r1, _081205B8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _081205BC @ =gStringVar2 adds r0, r5, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081205C0 @ =gStringVar4 ldr r1, _081205C4 @ =gUnknown_8416CEA adds r0, r4, 0 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 5ebf9bc96..65fc2cb45 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -3587,7 +3587,7 @@ _08136338: ldr r1, [r6] ldr r2, _0813634C @ =0x00003074 adds r1, r2 - bl sub_8099E90 + bl CopyItemName _08136342: add sp, 0x14 pop {r4-r7} diff --git a/asm/scrcmd.s b/asm/scrcmd.s index be5123426..45e7bd376 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -5,361 +5,6 @@ .text - thumb_func_start ScrCmd_vmessage -ScrCmd_vmessage: @ 806BC6C - push {lr} - bl ScriptReadWord - ldr r1, _0806BC84 @ =gVScriptOffset - ldr r1, [r1] - subs r0, r1 - bl ShowFieldMessage - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BC84: .4byte gVScriptOffset - thumb_func_end ScrCmd_vmessage - - thumb_func_start ScrCmd_bufferspeciesname -ScrCmd_bufferspeciesname: @ 806BC88 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BCC0 @ =sScriptStringVars - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BCC4 @ =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BCC0: .4byte sScriptStringVars -_0806BCC4: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferspeciesname - - thumb_func_start ScrCmd_bufferleadmonspeciesname -ScrCmd_bufferleadmonspeciesname: @ 806BCC8 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806BD08 @ =sScriptStringVars - lsls r2, 2 - adds r2, r0 - ldr r4, [r2] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD0C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BD10 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD08: .4byte sScriptStringVars -_0806BD0C: .4byte gPlayerParty -_0806BD10: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferleadmonspeciesname - - thumb_func_start ScrCmd_bufferpartymonnick -ScrCmd_bufferpartymonnick: @ 806BD14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD54 @ =gPlayerParty - adds r0, r1 - ldr r1, _0806BD58 @ =sScriptStringVars - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD54: .4byte gPlayerParty -_0806BD58: .4byte sScriptStringVars - thumb_func_end ScrCmd_bufferpartymonnick - - thumb_func_start ScrCmd_bufferitemname -ScrCmd_bufferitemname: @ 806BD5C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BD8C @ =sScriptStringVars - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - bl sub_8099E90 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD8C: .4byte sScriptStringVars - thumb_func_end ScrCmd_bufferitemname - - thumb_func_start ScrCmd_cmdDA -ScrCmd_cmdDA: @ 806BD90 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r7, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _0806BDE4 @ =sScriptStringVars - lsls r0, r7, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099E90 - cmp r5, 0x4 - bne _0806BDEC - cmp r6, 0x1 - bls _0806BDEC - ldr r1, _0806BDE8 @ =gUnknown_83A72A0 - adds r0, r4, 0 - bl StringAppend - b _0806BE22 - .align 2, 0 -_0806BDE4: .4byte sScriptStringVars -_0806BDE8: .4byte gUnknown_83A72A0 -_0806BDEC: - adds r0, r5, 0 - subs r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x29 - bhi _0806BE22 - cmp r6, 0x1 - bls _0806BE22 - ldr r0, _0806BE2C @ =sScriptStringVars - lsls r1, r7, 2 - adds r1, r0 - ldr r4, [r1] - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _0806BE22 - adds r0, r4, r0 - subs r0, 0x1 - movs r1, 0xFF - strb r1, [r0] - ldr r1, _0806BE30 @ =gUnknown_83A72A2 - adds r0, r4, 0 - bl StringAppend -_0806BE22: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806BE2C: .4byte sScriptStringVars -_0806BE30: .4byte gUnknown_83A72A2 - thumb_func_end ScrCmd_cmdDA - - thumb_func_start ScrCmd_bufferdecorationname -ScrCmd_bufferdecorationname: @ 806BE34 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_bufferdecorationname - - thumb_func_start ScrCmd_buffermovename -ScrCmd_buffermovename: @ 806BE50 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BE88 @ =sScriptStringVars - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xD - muls r1, r0 - ldr r0, _0806BE8C @ =gMoveNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BE88: .4byte sScriptStringVars -_0806BE8C: .4byte gMoveNames - thumb_func_end ScrCmd_buffermovename - - thumb_func_start ScrCmd_buffernumberstring -ScrCmd_buffernumberstring: @ 806BE90 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80CBF04 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0806BED0 @ =sScriptStringVars - lsls r5, 2 - adds r5, r0 - ldr r0, [r5] - adds r1, r4, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806BED0: .4byte sScriptStringVars - thumb_func_end ScrCmd_buffernumberstring - - thumb_func_start ScrCmd_bufferstdstring -ScrCmd_bufferstdstring: @ 806BED4 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - ldr r1, _0806BF0C @ =sScriptStringVars - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - ldr r1, _0806BF10 @ =gUnknown_83E06B8 - lsrs r0, 14 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF0C: .4byte sScriptStringVars -_0806BF10: .4byte gUnknown_83E06B8 - thumb_func_end ScrCmd_bufferstdstring - - thumb_func_start ScrCmd_bufferstring -ScrCmd_bufferstring: @ 806BF14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF38 @ =sScriptStringVars - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF38: .4byte sScriptStringVars - thumb_func_end ScrCmd_bufferstring - thumb_func_start ScrCmd_vloadword ScrCmd_vloadword: @ 806BF3C push {lr} diff --git a/asm/shop.s b/asm/shop.s index f710c9a7c..7d2f73d97 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -1023,7 +1023,7 @@ sub_809B300: @ 809B300 lsrs r5, 16 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName str r6, [r4] str r5, [r4, 0x4] pop {r4-r6} @@ -2232,7 +2232,7 @@ _0809BC78: .4byte sub_809BF98 _0809BC7C: ldr r1, _0809BC94 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0809BC98 @ =gUnknown_8416766 ldr r2, _0809BC9C @ =sub_809BCA0 adds r0, r6, 0 @@ -2408,7 +2408,7 @@ _0809BDD4: bl PutWindowTilemap ldrh r0, [r4, 0xA] ldr r1, _0809BE40 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0809BE44 @ =gStringVar2 movs r2, 0x2 ldrsh r1, [r4, r2] diff --git a/asm/tm_case.s b/asm/tm_case.s index e7812abf2..e942bbc32 100644 --- a/asm/tm_case.s +++ b/asm/tm_case.s @@ -1855,7 +1855,7 @@ sub_8132714: @ 8132714 ldr r0, _08132744 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08132748 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r5, _0813274C @ =gStringVar4 ldr r1, _08132750 @ =gUnknown_841635E adds r0, r5, 0 @@ -2093,7 +2093,7 @@ sub_8132908: @ 8132908 bne _08132968 ldrh r0, [r6] ldr r1, _08132958 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813295C @ =gStringVar4 ldr r1, _08132960 @ =gUnknown_84168F1 adds r0, r4, 0 @@ -2133,7 +2133,7 @@ _08132980: _08132988: ldrh r0, [r6] ldr r1, _081329B4 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _081329B8 @ =gStringVar4 ldr r1, _081329BC @ =gUnknown_8416911 adds r0, r4, 0 @@ -2506,7 +2506,7 @@ sub_8132CAC: @ 8132CAC ldr r0, _08132D1C @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08132D20 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _08132D24 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x4 diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s index d27d74f84..c495dc281 100644 --- a/asm/unk_8147AA8.s +++ b/asm/unk_8147AA8.s @@ -5613,7 +5613,7 @@ sub_814A468: @ 814A468 ldr r1, [r5] adds r1, 0x26 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r0, [r5] adds r0, 0x66 adds r1, r6, 0 @@ -5705,7 +5705,7 @@ sub_814A53C: @ 814A53C ldr r4, _0814A5AC @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 @@ -5760,7 +5760,7 @@ sub_814A5B4: @ 814A5B4 ldr r4, _0814A624 @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s index bc9b8c83a..e0448643e 100644 --- a/asm/unk_81507FC.s +++ b/asm/unk_81507FC.s @@ -9989,7 +9989,7 @@ _08155480: lsrs r0, 16 add r5, sp, 0x70 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI @@ -10021,7 +10021,7 @@ _08155480: lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI diff --git a/data/data_835B488.s b/data/data_835B488.s index 523942112..71e98b2ba 100644 --- a/data/data_835B488.s +++ b/data/data_835B488.s @@ -1547,7 +1547,7 @@ gUnknown_83DFC9C:: @ 83DFC9C gUnknown_83E04B0:: @ 83E04B0 .incbin "baserom.gba", 0x3E04B0, 0x208 -gUnknown_83E06B8:: @ 83E06B8 +gStdStringPtrs:: @ 83E06B8 .incbin "baserom.gba", 0x3E06B8, 0x74 gUnknown_83E072C:: @ 83E072C diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index 43f82490d..626930fbd 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -213,7 +213,7 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_warpD1 .4byte ScrCmd_setmonmetlocation .4byte ScrCmd_getbraillestringwidth - .4byte ScrCmd_cmdDA + .4byte ScrCmd_bufferitemnameplural gScriptCmdTableEnd:: @ 815FD08 .4byte ScrCmd_nop diff --git a/include/field_specials.h b/include/field_specials.h index 2b7991b55..2d495fdd5 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -4,6 +4,7 @@ #include "global.h" u8 GetLeadMonIndex(void); +u8 CountDigits(u16 number); void TV_PrintIntToStringVar(u8, int); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/item.h b/include/item.h index 581693735..25177cb6e 100644 --- a/include/item.h +++ b/include/item.h @@ -62,7 +62,7 @@ u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); void sub_809A2DC(void); void sub_809A2A4(void); -void sub_8099E90(u16, u8 *); +void CopyItemName(u16, u8 *); void sub_809A824(u16 itemId); bool8 AddBagItem(u16 itemId, u16 amount); diff --git a/include/script_menu.h b/include/script_menu.h index 1e95570b3..01402d565 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -3,7 +3,7 @@ #include "global.h" -extern const u8 *const gUnknown_0858BAF0[9]; +extern const u8 *const gStdStringPtrs[9]; bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4); bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5); diff --git a/src/quest_log.c b/src/quest_log.c index 4f462505a..a01cbde2d 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -4312,7 +4312,7 @@ u16 * sub_8114C68(u16 * a0, const u16 * a1) const u16 * sub_8114C8C(const u16 * a0) { const u16 *r4 = sub_8113E88(28, a0); - sub_8099E90(r4[0], gStringVar1); + CopyItemName(r4[0], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_841A391); return r4 + 1; } @@ -4329,7 +4329,7 @@ u16 * sub_8114CC0(u16 * a0, const u16 * a1) const u16 * sub_8114CE4(const u16 * a0) { const u16 *r4 = sub_8113E88(29, a0); - sub_8099E90(r4[0], gStringVar1); + CopyItemName(r4[0], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_841A3DA); return r4 + 1; } diff --git a/src/scrcmd.c b/src/scrcmd.c index c77dda666..98a3fa027 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -24,6 +24,10 @@ #include "window.h" #include "start_menu.h" #include "script_menu.h" +#include "string_util.h" +#include "data2.h" +#include "field_specials.h" +#include "constants/items.h" extern u16 (*const gSpecials[])(void); extern u16 (*const gSpecialsEnd[])(void); @@ -341,13 +345,6 @@ SCRCMD_DEF(setorcopyvar) return FALSE; } -u8 * const sScriptStringVars[] = -{ - gStringVar1, - gStringVar2, - gStringVar3, -}; - u8 compare_012(u16 left, u16 right) { if (left < right) @@ -1575,3 +1572,140 @@ SCRCMD_DEF(getbraillestringwidth) gSpecialVar_0x8004 = GetStringWidth(6, ptr, -1); return FALSE; } + +SCRCMD_DEF(vmessage) +{ + u32 v1 = ScriptReadWord(ctx); + + ShowFieldMessage((u8 *)(v1 - gVScriptOffset)); + return FALSE; +} + +u8 * const sScriptStringVars[] = +{ + gStringVar1, + gStringVar2, + gStringVar3, +}; + +bool8 ScrCmd_bufferspeciesname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 species = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]); + return FALSE; +} + +bool8 ScrCmd_bufferleadmonspeciesname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + + u8 *dest = sScriptStringVars[stringVarIndex]; + u8 partyIndex = GetLeadMonIndex(); + u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL); + StringCopy(dest, gSpeciesNames[species]); + return FALSE; +} + +bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); + StringGetEnd10(sScriptStringVars[stringVarIndex]); + return FALSE; +} + +bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + return FALSE; +} + +extern const u8 gUnknown_83A72A0[]; +extern const u8 gUnknown_83A72A2[]; + +bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + if (itemId == ITEM_POKE_BALL && quantity >= 2) + StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A0); + else if (itemId >= ITEM_CHERI_BERRY && itemId < ITEM_ENIGMA_BERRY && quantity >= 2) + { + u16 strlength = StringLength(sScriptStringVars[stringVarIndex]); + if (strlength != 0) + { + u8 * endptr = sScriptStringVars[stringVarIndex] + strlength; + endptr[-1] = EOS; + StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A2); + } + } + + return FALSE; +} + +bool8 ScrCmd_bufferdecorationname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 decorId = VarGet(ScriptReadHalfword(ctx)); + +// StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name); + return FALSE; +} + +bool8 ScrCmd_buffermovename(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 moveId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]); + return FALSE; +} + +bool8 ScrCmd_buffernumberstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 v1 = VarGet(ScriptReadHalfword(ctx)); + u8 v2 = CountDigits(v1); + + ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2); + return FALSE; +} + +bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gStdStringPtrs[index]); + return FALSE; +} + +/* +bool8 ScrCmd_buffercontesttype(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + sub_818E868(sScriptStringVars[stringVarIndex], index); + return FALSE; +} +*/ + +bool8 ScrCmd_bufferstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + const u8 *text = (u8 *)ScriptReadWord(ctx); + + StringCopy(sScriptStringVars[stringVarIndex], text); + return FALSE; +} diff --git a/src/trainer_tower.c b/src/trainer_tower.c index c968f24c3..f4e18eee6 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -821,7 +821,7 @@ void sub_815E408(void) gSpecialVar_Result = 2; else if (AddBagItem(itemId, 1) == 1) { - sub_8099E90(itemId, gStringVar2); + CopyItemName(itemId, gStringVar2); gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE; gSpecialVar_Result = 0; } |