summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/rom_8065394.s1956
-rw-r--r--ewram_syms.txt5
-rw-r--r--include/decoration.h16
-rw-r--r--include/global.h6
-rw-r--r--src/scrcmd.c779
5 files changed, 796 insertions, 1966 deletions
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s
index f833f2b33..8c270b3a5 100644
--- a/asm/rom_8065394.s
+++ b/asm/rom_8065394.s
@@ -5,1962 +5,6 @@
.text
- thumb_func_start ScrCmd_message
-ScrCmd_message: @ 8067068
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- cmp r0, 0
- bne _08067076
- ldr r0, [r4, 0x64]
-_08067076:
- bl box_related_two__2
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_message
-
- thumb_func_start ScrCmd_message2
-ScrCmd_message2: @ 8067084
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- cmp r0, 0
- bne _08067092
- ldr r0, [r4, 0x64]
-_08067092:
- bl box_related_two__3
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_message2
-
- thumb_func_start ScrCmd_waittext
-ScrCmd_waittext: @ 80670A0
- push {lr}
- ldr r1, _080670B0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080670B0: .4byte sub_8064C84
- thumb_func_end ScrCmd_waittext
-
- thumb_func_start ScrCmd_closebutton
-ScrCmd_closebutton: @ 80670B4
- push {lr}
- bl textbox_close
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_closebutton
-
- thumb_func_start sub_80670C0
-sub_80670C0: @ 80670C0
- push {lr}
- ldr r0, _080670DC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080670E0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080670E0
- movs r0, 0
- b _080670E2
- .align 2, 0
-_080670DC: .4byte 0x03001770
-_080670E0:
- movs r0, 0x1
-_080670E2:
- pop {r1}
- bx r1
- thumb_func_end sub_80670C0
-
- thumb_func_start ScrCmd_waitbutton
-ScrCmd_waitbutton: @ 80670E8
- push {lr}
- ldr r1, _080670F8
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080670F8: .4byte sub_80670C0
- thumb_func_end ScrCmd_waitbutton
-
- thumb_func_start ScrCmd_yesnobox
-ScrCmd_yesnobox: @ 80670FC
- 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 yes_no_box
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806711E
- movs r0, 0
- b _08067124
-_0806711E:
- bl sub_80655F0
- movs r0, 0x1
-_08067124:
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_yesnobox
-
- thumb_func_start ScrCmd_multichoice
-ScrCmd_multichoice: @ 8067128
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl sub_80B5054
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08067156
- movs r0, 0
- b _0806715C
-_08067156:
- bl sub_80655F0
- movs r0, 0x1
-_0806715C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoice
-
- thumb_func_start ScrCmd_multichoicedef
-ScrCmd_multichoicedef: @ 8067164
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl sub_80B50B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080671A2
- movs r0, 0
- b _080671A8
-_080671A2:
- bl sub_80655F0
- movs r0, 0x1
-_080671A8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoicedef
-
- thumb_func_start ScrCmd_showbox
-ScrCmd_showbox: @ 80671B4
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl MenuDrawTextWindow
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_showbox
-
- thumb_func_start ScrCmd_multichoicerow
-ScrCmd_multichoicerow: @ 80671E0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl sub_80B5578
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806721E
- movs r0, 0
- b _08067224
-_0806721E:
- bl sub_80655F0
- movs r0, 0x1
-_08067224:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoicerow
-
- thumb_func_start ScrCmd_hidebox
-ScrCmd_hidebox: @ 8067230
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl MenuZeroFillWindowRect
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hidebox
-
- thumb_func_start ScrCmd_clearbox
-ScrCmd_clearbox: @ 806725C
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl Multichoice
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806728A
- movs r0, 0
- b _08067290
-_0806728A:
- bl sub_80655F0
- movs r0, 0x1
-_08067290:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_clearbox
-
- thumb_func_start ScrCmd_showpokepic
-ScrCmd_showpokepic: @ 8067298
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl sub_80B58C4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_showpokepic
-
- thumb_func_start ScrCmd_hidepokepic
-ScrCmd_hidepokepic: @ 80672C8
- push {r4,lr}
- adds r4, r0, 0
- bl picbox_close
- adds r1, r0, 0
- cmp r1, 0
- beq _080672E0
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- b _080672E2
-_080672E0:
- movs r0, 0
-_080672E2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hidepokepic
-
- thumb_func_start ScrCmd_showcontestwinner
-ScrCmd_showcontestwinner: @ 80672E8
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- cmp r2, 0
- beq _080672FC
- adds r0, r2, 0
- bl sub_8106630
-_080672FC:
- bl sub_80C4F10
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_showcontestwinner
-
- thumb_func_start ScrCmd_braillemsg
-ScrCmd_braillemsg: @ 806730C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- bl script_read_word
- adds r1, r0, 0
- ldrb r5, [r1]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- mov r8, r0
- ldrb r0, [r1, 0x3]
- mov r9, r0
- ldrb r0, [r1, 0x4]
- mov r10, r0
- ldrb r7, [r1, 0x5]
- ldr r4, _08067360
- adds r1, 0x6
- adds r0, r4, 0
- bl StringBraille
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl MenuDrawTextWindow
- adds r0, r4, 0
- mov r1, r10
- adds r2, r7, 0
- bl MenuPrint
- movs r0, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08067360: .4byte 0x020234cc
- thumb_func_end ScrCmd_braillemsg
-
- thumb_func_start ScrCmd_vtext
-ScrCmd_vtext: @ 8067364
- push {lr}
- bl script_read_word
- ldr r1, _0806737C
- ldr r1, [r1]
- subs r0, r1
- bl box_related_two__2
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806737C: .4byte 0x0202e8b0
- thumb_func_end ScrCmd_vtext
-
- thumb_func_start ScrCmd_bufferpoke
-ScrCmd_bufferpoke: @ 8067380
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080673B8
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080673BC
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080673B8: .4byte gUnknown_083762F0
-_080673BC: .4byte gSpeciesNames
- thumb_func_end ScrCmd_bufferpoke
-
- thumb_func_start ScrCmd_bufferfirstpoke
-ScrCmd_bufferfirstpoke: @ 80673C0
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _08067400
- lsls r2, 2
- adds r2, r0
- ldr r4, [r2]
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08067404
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _08067408
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067400: .4byte gUnknown_083762F0
-_08067404: .4byte 0x03004360
-_08067408: .4byte gSpeciesNames
- thumb_func_end ScrCmd_bufferfirstpoke
-
- thumb_func_start ScrCmd_bufferpartypoke
-ScrCmd_bufferpartypoke: @ 806740C
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806744C
- adds r0, r1
- ldr r1, _08067450
- 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
-_0806744C: .4byte 0x03004360
-_08067450: .4byte gUnknown_083762F0
- thumb_func_end ScrCmd_bufferpartypoke
-
- thumb_func_start ScrCmd_bufferitem
-ScrCmd_bufferitem: @ 8067454
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08067484
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl itemid_copy_name
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067484: .4byte gUnknown_083762F0
- thumb_func_end ScrCmd_bufferitem
-
- thumb_func_start ScrCmd_bufferdecor
-ScrCmd_bufferdecor: @ 8067488
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, _080674BC
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsrs r1, 11
- ldr r2, _080674C0
- adds r1, r2
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080674BC: .4byte gUnknown_083762F0
-_080674C0: .4byte gDecorations + 0x1
- thumb_func_end ScrCmd_bufferdecor
-
- thumb_func_start ScrCmd_bufferattack
-ScrCmd_bufferattack: @ 80674C4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080674FC
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xD
- muls r1, r0
- ldr r0, _08067500
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080674FC: .4byte gUnknown_083762F0
-_08067500: .4byte gMoveNames
- thumb_func_end ScrCmd_bufferattack
-
- thumb_func_start ScrCmd_buffernum
-ScrCmd_buffernum: @ 8067504
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _08067544
- 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
-_08067544: .4byte gUnknown_083762F0
- thumb_func_end ScrCmd_buffernum
-
- thumb_func_start ScrCmd_bufferstd
-ScrCmd_bufferstd: @ 8067548
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- ldr r1, _08067580
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- ldr r1, _08067584
- 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
-_08067580: .4byte gUnknown_083762F0
-_08067584: .4byte gUnknown_083CE048
- thumb_func_end ScrCmd_bufferstd
-
- thumb_func_start ScrCmd_buffertext
-ScrCmd_buffertext: @ 8067588
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _080675AC
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080675AC: .4byte gUnknown_083762F0
- thumb_func_end ScrCmd_buffertext
-
- thumb_func_start ScrCmd_vloadptr
-ScrCmd_vloadptr: @ 80675B0
- push {lr}
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _080675CC
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _080675D0
- bl StringExpandPlaceholders
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080675CC: .4byte 0x0202e8b0
-_080675D0: .4byte 0x020234cc
- thumb_func_end ScrCmd_vloadptr
-
- thumb_func_start ScrCmd_vbuffer
-ScrCmd_vbuffer: @ 80675D4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _08067600
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _08067604
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067600: .4byte 0x0202e8b0
-_08067604: .4byte gUnknown_083762F0
- thumb_func_end ScrCmd_vbuffer
-
- thumb_func_start ScrCmd_givepokemon
-ScrCmd_givepokemon: @ 8067608
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl script_read_word
- mov r8, r0
- adds r0, r4, 0
- bl script_read_word
- ldr r1, [r4, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- ldr r4, _08067684
- str r0, [sp]
- str r2, [sp, 0x4]
- adds r0, r6, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl sub_80C5374
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08067684: .4byte 0x0202e8dc
- thumb_func_end ScrCmd_givepokemon
-
- thumb_func_start ScrCmd_giveegg
-ScrCmd_giveegg: @ 8067688
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080676B0
- bl sub_80C53F8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080676B0: .4byte 0x0202e8dc
- thumb_func_end ScrCmd_giveegg
-
- thumb_func_start ScrCmd_setpokemove
-ScrCmd_setpokemove: @ 80676B4
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_80C5530
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setpokemove
-
- thumb_func_start ScrCmd_checkattack
-ScrCmd_checkattack: @ 80676E0
- push {r4-r7,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _080676F4
- movs r0, 0x6
- strh r0, [r1]
- movs r6, 0
- b _0806772E
- .align 2, 0
-_080676F4: .4byte 0x0202e8dc
-_080676F8:
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08067728
- adds r0, r4, 0
- adds r1, r7, 0
- bl pokemon_has_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08067728
- ldr r0, _08067720
- strh r6, [r0]
- ldr r0, _08067724
- strh r5, [r0]
- b _0806774E
- .align 2, 0
-_08067720: .4byte 0x0202e8dc
-_08067724: .4byte 0x0202e8cc
-_08067728:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0806772E:
- cmp r6, 0x5
- bhi _0806774E
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08067758
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080676F8
-_0806774E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08067758: .4byte 0x03004360
- thumb_func_end ScrCmd_checkattack
-
- thumb_func_start ScrCmd_givemoney
-ScrCmd_givemoney: @ 806775C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806777A
- ldr r0, _08067784
- adds r1, r2, 0
- bl sub_80B79B8
-_0806777A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067784: .4byte 0x02025bc4
- thumb_func_end ScrCmd_givemoney
-
- thumb_func_start ScrCmd_paymoney
-ScrCmd_paymoney: @ 8067788
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _080677A6
- ldr r0, _080677B0
- adds r1, r2, 0
- bl sub_80B79E0
-_080677A6:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080677B0: .4byte 0x02025bc4
- thumb_func_end ScrCmd_paymoney
-
- thumb_func_start ScrCmd_checkmoney
-ScrCmd_checkmoney: @ 80677B4
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _080677E2
- ldr r4, _080677EC
- ldr r0, _080677F0
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080677E2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080677EC: .4byte 0x0202e8dc
-_080677F0: .4byte 0x02025734
- thumb_func_end ScrCmd_checkmoney
-
- thumb_func_start ScrCmd_showmoney
-ScrCmd_showmoney: @ 80677F4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _08067820
- ldr r0, _08067828
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r3, 0
- bl sub_80B7C14
-_08067820:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067828: .4byte 0x02025734
- thumb_func_end ScrCmd_showmoney
-
- thumb_func_start ScrCmd_hidemoney
-ScrCmd_hidemoney: @ 806782C
- 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 RemoveMoneyLabelObject
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hidemoney
-
- thumb_func_start ScrCmd_updatemoney
-ScrCmd_updatemoney: @ 8067848
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _08067874
- ldr r0, _0806787C
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r3, 0
- bl sub_80B7BEC
-_08067874:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806787C: .4byte 0x02025734
- thumb_func_end ScrCmd_updatemoney
-
- thumb_func_start ScrCmd_showcoins
-ScrCmd_showcoins: @ 8067880
- push {lr}
- ldr r3, [r0, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldr r0, _080678A4
- ldr r3, _080678A8
- adds r0, r3
- ldrh r0, [r0]
- bl sub_811A72C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080678A4: .4byte 0x02025734
-_080678A8: .4byte 0x00000494
- thumb_func_end ScrCmd_showcoins
-
- thumb_func_start ScrCmd_hidecoins
-ScrCmd_hidecoins: @ 80678AC
- 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_811A770
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hidecoins
-
- thumb_func_start ScrCmd_updatecoins
-ScrCmd_updatecoins: @ 80678C8
- push {lr}
- ldr r3, [r0, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldr r0, _080678EC
- ldr r3, _080678F0
- adds r0, r3
- ldrh r0, [r0]
- bl sub_811A704
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080678EC: .4byte 0x02025734
-_080678F0: .4byte 0x00000494
- thumb_func_end ScrCmd_updatecoins
-
- thumb_func_start ScrCmd_trainerbattle
-ScrCmd_trainerbattle: @ 80678F4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- bl sub_80823C8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_trainerbattle
-
- thumb_func_start ScrCmd_reptrainerbattle
-ScrCmd_reptrainerbattle: @ 8067908
- push {lr}
- bl sub_80825E4
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_reptrainerbattle
-
- thumb_func_start ScrCmd_endtrainerbattle
-ScrCmd_endtrainerbattle: @ 8067914
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80826E8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_endtrainerbattle
-
- thumb_func_start ScrCmd_endtrainerbattle2
-ScrCmd_endtrainerbattle2: @ 8067928
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8082700
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_endtrainerbattle2
-
- thumb_func_start ScrCmd_checktrainerflag
-ScrCmd_checktrainerflag: @ 806793C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_check
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checktrainerflag
-
- thumb_func_start ScrCmd_cleartrainerflag
-ScrCmd_cleartrainerflag: @ 8067960
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_set
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_cleartrainerflag
-
- thumb_func_start ScrCmd_settrainerflag
-ScrCmd_settrainerflag: @ 806797C
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_clear
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_settrainerflag
-
- thumb_func_start ScrCmd_setwildbattle
-ScrCmd_setwildbattle: @ 8067998
- push {r4-r6,lr}
- adds r4, r0, 0
- bl script_read_halfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, [r4, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl script_read_halfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80C54D0
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setwildbattle
-
- thumb_func_start ScrCmd_dowildbattle
-ScrCmd_dowildbattle: @ 80679CC
- push {lr}
- bl sub_8081B3C
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_dowildbattle
-
- thumb_func_start ScrCmd_pokemart
-ScrCmd_pokemart: @ 80679DC
- push {lr}
- bl script_read_word
- bl CreatePokemartMenu
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_pokemart
-
- thumb_func_start ScrCmd_pokemartdecor
-ScrCmd_pokemartdecor: @ 80679F0
- push {lr}
- bl script_read_word
- bl CreateDecorationShop1Menu
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_pokemartdecor
-
- thumb_func_start ScrCmd_pokemartbp
-ScrCmd_pokemartbp: @ 8067A04
- push {lr}
- bl script_read_word
- bl CreateDecorationShop2Menu
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_pokemartbp
-
- thumb_func_start ScrCmd_pokecasino
-ScrCmd_pokecasino: @ 8067A18
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08067A3C
- bl sub_81018A0
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067A3C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end ScrCmd_pokecasino
-
- thumb_func_start ScrCmd_event_8a
-ScrCmd_event_8a: @ 8067A40
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r4, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r3, 0
- bne _08067A68
- adds r0, r5, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0
- bl PlantBerryTree
- b _08067A74
-_08067A68:
- adds r0, r5, 0
- adds r1, r3, 0
- adds r2, r4, 0
- movs r3, 0
- bl PlantBerryTree
-_08067A74:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_event_8a
-
- thumb_func_start ScrCmd_event_96
-ScrCmd_event_96: @ 8067A7C
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, _08067AA4
- lsls r0, 24
- lsrs r0, 24
- bl GetPriceReduction
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067AA4: .4byte 0x0202e8dc
- thumb_func_end ScrCmd_event_96
-
- thumb_func_start ScrCmd_choosecontestpkmn
-ScrCmd_choosecontestpkmn: @ 8067AA8
- push {lr}
- bl sub_80F99CC
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_choosecontestpkmn
-
- thumb_func_start ScrCmd_startcontest
-ScrCmd_startcontest: @ 8067AB8
- push {lr}
- bl sub_80C48C8
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_startcontest
-
- thumb_func_start ScrCmd_showcontestresults
-ScrCmd_showcontestresults: @ 8067AC8
- push {lr}
- bl sub_80C4940
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_showcontestresults
-
- thumb_func_start ScrCmd_contestlinktransfer
-ScrCmd_contestlinktransfer: @ 8067AD8
- push {lr}
- ldr r0, _08067AEC
- ldrb r0, [r0]
- bl sub_80C4980
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067AEC: .4byte 0x0203869c
- thumb_func_end ScrCmd_contestlinktransfer
-
- thumb_func_start ScrCmd_doanimation
-ScrCmd_doanimation: @ 8067AF0
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08067B14
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl FieldEffectStart
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08067B14: .4byte 0x0202e8bc
- thumb_func_end ScrCmd_doanimation
-
- thumb_func_start ScrCmd_setanimation
-ScrCmd_setanimation: @ 8067B18
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _08067B44
- lsls r4, 2
- adds r4, r1
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067B44: .4byte 0x0202ff84
- thumb_func_end ScrCmd_setanimation
-
- thumb_func_start sub_8067B48
-sub_8067B48: @ 8067B48
- push {lr}
- ldr r0, _08067B5C
- ldrb r0, [r0]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _08067B60
- movs r0, 0
- b _08067B62
- .align 2, 0
-_08067B5C: .4byte 0x0202e8bc
-_08067B60:
- movs r0, 0x1
-_08067B62:
- pop {r1}
- bx r1
- thumb_func_end sub_8067B48
-
- thumb_func_start ScrCmd_checkanimation
-ScrCmd_checkanimation: @ 8067B68
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _08067B8C
- strh r0, [r1]
- ldr r1, _08067B90
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067B8C: .4byte 0x0202e8bc
-_08067B90: .4byte sub_8067B48
- thumb_func_end ScrCmd_checkanimation
-
- thumb_func_start ScrCmd_sethealplace
-ScrCmd_sethealplace: @ 8067B94
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_8053588
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_sethealplace
-
- thumb_func_start ScrCmd_checkgender
-ScrCmd_checkgender: @ 8067BB0
- ldr r0, _08067BBC
- ldr r1, _08067BC0
- ldrb r1, [r1, 0x8]
- strh r1, [r0]
- movs r0, 0
- bx lr
- .align 2, 0
-_08067BBC: .4byte 0x0202e8dc
-_08067BC0: .4byte gSaveBlock2
- thumb_func_end ScrCmd_checkgender
-
- thumb_func_start ScrCmd_pokecry
-ScrCmd_pokecry: @ 8067BC4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8075178
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_pokecry
-
- thumb_func_start ScrCmd_waitpokecry
-ScrCmd_waitpokecry: @ 8067BFC
- push {lr}
- ldr r1, _08067C0C
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067C0C: .4byte sub_8075374
- thumb_func_end ScrCmd_waitpokecry
-
- thumb_func_start ScrCmd_setmaptile
-ScrCmd_setmaptile: @ 8067C10
- push {r4-r7,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- adds r1, r6, 0x7
- lsls r1, 16
- lsrs r6, r1, 16
- adds r1, r5, 0x7
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r0, 0
- bne _08067C74
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl MapGridSetMetatileIdAt
- b _08067C86
-_08067C74:
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r2, r7, 0
- orrs r2, r0
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08067C86:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmaptile
-
- thumb_func_start ScrCmd_setdooropened
-ScrCmd_setdooropened: @ 8067C90
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- adds r5, 0x7
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r4, r0
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8058790
- lsls r0, 16
- lsrs r0, 16
- bl audio_play
- adds r0, r5, 0
- adds r1, r4, 0
- bl task_overworld_door_add_if_role_69_for_opening_door_at
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdooropened
-
- thumb_func_start ScrCmd_setdoorclosed
-ScrCmd_setdoorclosed: @ 8067CE8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805870C
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdoorclosed
-
- thumb_func_start sub_8067D2C
-sub_8067D2C: @ 8067D2C
- push {lr}
- bl sub_805877C
- lsls r0, 24
- cmp r0, 0
- beq _08067D3C
- movs r0, 0
- b _08067D3E
-_08067D3C:
- movs r0, 0x1
-_08067D3E:
- pop {r1}
- bx r1
- thumb_func_end sub_8067D2C
-
- thumb_func_start ScrCmd_doorchange
-ScrCmd_doorchange: @ 8067D44
- push {lr}
- ldr r1, _08067D54
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067D54: .4byte sub_8067D2C
- thumb_func_end ScrCmd_doorchange
-
- thumb_func_start ScrCmd_setdooropened2
-ScrCmd_setdooropened2: @ 8067D58
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80586B4
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdooropened2
-
- thumb_func_start ScrCmd_setdoorclosed2
-ScrCmd_setdoorclosed2: @ 8067D9C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80586E0
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdoorclosed2
-
- thumb_func_start ScrCmd_event_b1
-ScrCmd_event_b1: @ 8067DE0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- ldr r0, [r6, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r0, 0x1
- str r0, [r6, 0x8]
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r3, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810E7AC
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_event_b1
-
- thumb_func_start ScrCmd_event_b2
-ScrCmd_event_b2: @ 8067E4C
- push {lr}
- bl sub_810E824
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_event_b2
-
- thumb_func_start ScrCmd_checkcoins
-ScrCmd_checkcoins: @ 8067E5C
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- bl GetCoins
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checkcoins
-
- thumb_func_start ScrCmd_givecoins
-ScrCmd_givecoins: @ 8067E7C
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_811A840
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08067EA4
- ldr r1, _08067EA0
- movs r0, 0
- b _08067EA8
- .align 2, 0
-_08067EA0: .4byte 0x0202e8dc
-_08067EA4:
- ldr r1, _08067EB0
- movs r0, 0x1
-_08067EA8:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08067EB0: .4byte 0x0202e8dc
- thumb_func_end ScrCmd_givecoins
-
- thumb_func_start ScrCmd_removecoins
-ScrCmd_removecoins: @ 8067EB4
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_811A898
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08067EDC
- ldr r1, _08067ED8
- movs r0, 0
- b _08067EE0
- .align 2, 0
-_08067ED8: .4byte 0x0202e8dc
-_08067EDC:
- ldr r1, _08067EE8
- movs r0, 0x1
-_08067EE0:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08067EE8: .4byte 0x0202e8dc
- thumb_func_end ScrCmd_removecoins
-
thumb_func_start sub_8067EEC
sub_8067EEC: @ 8067EEC
push {r4,r5,lr}
diff --git a/ewram_syms.txt b/ewram_syms.txt
index 8f28b49ae..695eb594f 100644
--- a/ewram_syms.txt
+++ b/ewram_syms.txt
@@ -43,9 +43,11 @@ gUnknown_0202E8B4 = 0x202E8B4;
gUnknown_0202E8B6 = 0x202E8B6;
gUnknown_0202E8B8 = 0x202E8B8;
gUnknown_0202E8BA = 0x202E8BA;
+gUnknown_0202E8BC = 0x202E8BC;
gUnknown_0202E8C4 = 0x202E8C4;
gUnknown_0202E8C6 = 0x202E8C6;
gUnknown_0202E8C8 = 0x202E8C8;
+gUnknown_0202E8CC = 0x202E8CC;
gScriptResult = 0x202E8DC;
gMenuWindow = 0x202E908;
@@ -65,11 +67,14 @@ gPaletteFade = 0x202F388;
word_202FF5E = 0x202FF5E;
+gUnknown_0202FF84 = 0x202FF84;
+
gPokemonStorage = 0x20300A0;
word_203855E = 0x203855E;
gUnknown_0203869A = 0x203869A;
+gUnknown_0203869C = 0x203869C;
gTileBuffer = 0x2039360;
diff --git a/include/decoration.h b/include/decoration.h
new file mode 100644
index 000000000..4bad93d1f
--- /dev/null
+++ b/include/decoration.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_DECORATION_H
+#define GUARD_DECORATION_H
+
+struct Decoration
+{
+ u8 id;
+ u8 name[16];
+ u8 decor_field_11;
+ u8 decor_field_12;
+ u8 decor_field_13;
+ u16 price;
+ u8 *description;
+ void *tiles;
+};
+
+#endif // GUARD_DECORATION_H
diff --git a/include/global.h b/include/global.h
index 6fb9e2604..3acdd5c62 100644
--- a/include/global.h
+++ b/include/global.h
@@ -18,6 +18,7 @@
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
+extern u8 gStringVar4[];
enum
{
@@ -99,7 +100,10 @@ struct SaveBlock1
{
struct Coords16 pos;
struct WarpData location;
- u8 filler[0x3684];
+ u8 filler_C[0x484];
+ u32 money;
+ u16 coins;
+ u8 filler_496[0x31FA];
struct RamScript ramScript;
};
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 946a2f1c2..c6da1b33e 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -5,6 +5,8 @@
#include "rtc.h"
#include "pokemon.h"
#include "fieldmap.h"
+#include "main.h"
+#include "decoration.h"
extern void killram(void);
extern u16 *GetVarPointer(u16);
@@ -87,11 +89,11 @@ extern bool8 box_related_two__2(u8 *);
extern bool8 box_related_two__3(u8 *);
extern bool8 sub_8064C84(void);
extern bool8 yes_no_box(u8, u8);
-extern bool8 sub_80B5054(u8, u8, u8);
-extern bool8 sub_80B50B0(u8, u8, u8);
+extern bool8 sub_80B5054(u8, u8, u8, u8);
+extern bool8 sub_80B50B0(u8, u8, u8, u8, u8);
extern bool8 sub_80B5578(u8, u8, u8, u8, u8);
-extern bool8 Multichoice(u8, u8, u8);
-extern bool8 sub_80B58C4(u8, u8, u8);
+extern bool8 Multichoice(u8, u8, u8, u8);
+extern bool8 sub_80B58C4(u16, u8, u8);
extern void *picbox_close(void);
extern void sub_8106630(u32);
extern void sub_80C4F10(void);
@@ -103,14 +105,14 @@ extern sub_80B79E0(u32 *, u32);
extern bool8 IsEnoughMoney(u32, u32);
extern void sub_80B7C14(u32, u8, u8);
extern void RemoveMoneyLabelObject(u8, u8);
-extern void sub_80B7BEC(u8, u8, u8);
+extern void sub_80B7BEC(u32, u8, u8);
extern void sub_811A72C(u32, u8, u8);
extern void sub_811A770(u8, u8);
extern void sub_811A704(u32, u8, u8);
extern void *sub_80823C8(u8 *);
extern void sub_80825E4(void);
-extern void *sub_80826E8(void);
-extern void *sub_8082700(void);
+extern u8 *sub_80826E8(void);
+extern u8 *sub_8082700(void);
extern u8 trainer_flag_check(u16);
extern void trainer_flag_set(u16);
extern void trainer_flag_clear(u16);
@@ -119,7 +121,7 @@ extern void sub_8081B3C(void);
extern void CreatePokemartMenu(void *);
extern void CreateDecorationShop1Menu(void *);
extern void CreateDecorationShop2Menu(void *);
-extern void sub_81018A0(u8);
+extern void sub_81018A0(u8, void *);
extern void PlantBerryTree(u8, u8, u8, u8);
extern bool8 GetPriceReduction(u8);
extern void sub_80F99CC(void);
@@ -132,7 +134,7 @@ extern void sub_8053588(u8);
extern void sub_8075178(u16, u8);
extern bool8 sub_8075374(void);
extern void MapGridSetMetatileIdAt(u32, u32, u16);
-extern u8 sub_8058790(u32, u32, u32);
+extern u16 sub_8058790(u32, u32);
extern bool8 task_overworld_door_add_if_role_69_for_opening_door_at(u32, u32);
extern bool8 sub_805870C(u32, u32);
extern bool8 sub_805877C(void);
@@ -142,26 +144,48 @@ extern void sub_810E7AC(u8, u8, u8, u8);
extern void sub_810E824(void);
extern u16 GetCoins(void);
extern bool8 sub_811A840(u16);
+extern bool8 sub_811A898(u16);
+extern u8 sub_80C5374(u16, u8, u16, u32, u32, u8);
+extern u8 sub_80C53F8(u16);
+extern void sub_80C5530(u8, u16, u8);
+extern bool8 pokemon_has_move(struct Pokemon *, u16);
+extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
typedef u16 (*SpecialFunc)(void);
typedef void (*NativeFunc)(void);
+extern struct Pokemon gPlayerParty[6]; // 0x3004360
+extern struct Pokemon gEnemyParty[6]; // 0x30045C0
+
extern u32 gUnknown_0202E8AC;
extern u32 gUnknown_0202E8B0;
extern u16 gUnknown_0202E8B4;
extern u16 gUnknown_0202E8B6;
extern u16 gUnknown_0202E8B8;
extern u16 gUnknown_0202E8BA;
+extern u16 gUnknown_0202E8BC;
extern u16 gUnknown_0202E8C4;
extern u16 gUnknown_0202E8C6;
extern u16 gUnknown_0202E8C8;
+extern u16 gUnknown_0202E8CC;
extern u16 gScriptResult;
+extern u32 gUnknown_0202FF84[];
+
+extern u16 gUnknown_0203869C;
+
extern SpecialFunc gSpecials[];
extern u8 *gStdScripts[];
extern u8 *gStdScripts_End[];
+
+extern u8 gSpeciesNames[][11];
+extern u8 gMoveNames[][13];
+
extern u8 gUnknown_083762DC[6][3];
+extern u8 * const gUnknown_083762F0[];
+extern u8 * const gUnknown_083CE048[];
+extern struct Decoration gDecorations[];
bool8 ScrCmd_snop(struct ScriptContext *ctx)
{
@@ -1224,3 +1248,740 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
sub_806451C();
return FALSE;
}
+
+bool8 ScrCmd_message(struct ScriptContext *ctx)
+{
+ u8 *msg = (u8 *)script_read_word(ctx);
+ if (!msg)
+ msg = (u8 *)ctx->data[0];
+ box_related_two__2(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_message2(struct ScriptContext *ctx)
+{
+ u8 *msg = (u8 *)script_read_word(ctx);
+ if (!msg)
+ msg = (u8 *)ctx->data[0];
+ box_related_two__3(msg);
+ return FALSE;
+}
+
+bool8 ScrCmd_waittext(struct ScriptContext *ctx)
+{
+ script_setup_asm_script(ctx, sub_8064C84);
+ return TRUE;
+}
+
+bool8 ScrCmd_closebutton(struct ScriptContext *ctx)
+{
+ textbox_close();
+ return FALSE;
+}
+
+bool8 sub_80670C0()
+{
+ if (gMain.newKeys & A_BUTTON)
+ return TRUE;
+ if (gMain.newKeys & B_BUTTON)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 ScrCmd_waitbutton(struct ScriptContext *ctx)
+{
+ script_setup_asm_script(ctx, sub_80670C0);
+ return TRUE;
+}
+
+bool8 ScrCmd_yesnobox(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ if (yes_no_box(v1, v2) == 1)
+ {
+ sub_80655F0();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_multichoice(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ if (sub_80B5054(v1, v2, v3, v4) == 1)
+ {
+ sub_80655F0();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_multichoicedef(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ u8 v5 = *(ctx->scriptPtr++);
+ if (sub_80B50B0(v1, v2, v3, v5, v4) == 1)
+ {
+ sub_80655F0();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_showbox(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ MenuDrawTextWindow(v1, v2, v3, v4);
+ return FALSE;
+}
+
+bool8 ScrCmd_multichoicerow(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ u8 v5 = *(ctx->scriptPtr++);
+ if (sub_80B5578(v1, v2, v3, v5, v4) == 1)
+ {
+ sub_80655F0();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_hidebox(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ MenuZeroFillWindowRect(v1, v2, v3, v4);
+ return FALSE;
+}
+
+bool8 ScrCmd_clearbox(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ if (Multichoice(v1, v2, v3, v4) == 1)
+ {
+ sub_80655F0();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 ScrCmd_showpokepic(struct ScriptContext *ctx)
+{
+ u16 v1 = VarGet(script_read_halfword(ctx));
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ sub_80B58C4(v1, v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidepokepic(struct ScriptContext *ctx)
+{
+ void *func = picbox_close();
+ if (!func)
+ return FALSE;
+
+ script_setup_asm_script(ctx, func);
+ return TRUE;
+}
+
+bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx)
+{
+ u8 v1 = *(ctx->scriptPtr++);
+ if (v1)
+ sub_8106630(v1);
+ sub_80C4F10();
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_braillemsg(struct ScriptContext *ctx)
+{
+ u8 *ptr = (u8 *)script_read_word(ctx);
+ u8 v2 = ptr[0];
+ u8 v3 = ptr[1];
+ u8 v4 = ptr[2];
+ u8 v5 = ptr[3];
+ u8 v6 = ptr[4];
+ u8 v7 = ptr[5];
+ StringBraille(gStringVar4, ptr + 6);
+ MenuDrawTextWindow(v2, v3, v4, v5);
+ MenuPrint(gStringVar4, v6, v7);
+ return FALSE;
+}
+
+bool8 ScrCmd_vtext(struct ScriptContext *ctx)
+{
+ u32 v1 = script_read_word(ctx);
+ box_related_two__2((u8 *)(v1 - gUnknown_0202E8B0));
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferpoke(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 species = VarGet(script_read_halfword(ctx));
+ StringCopy(gUnknown_083762F0[stringVarIndex], &gSpeciesNames[species]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferfirstpoke(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u8 *dest = gUnknown_083762F0[stringVarIndex];
+ u8 partyIndex = sub_810F87C();
+ u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
+ StringCopy(dest, &gSpeciesNames[species]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferpartypoke(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 partyIndex = VarGet(script_read_halfword(ctx));
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, gUnknown_083762F0[stringVarIndex]);
+ StringGetEnd10(gUnknown_083762F0[stringVarIndex]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferitem(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 itemId = VarGet(script_read_halfword(ctx));
+ itemid_copy_name(itemId, gUnknown_083762F0[stringVarIndex]);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferdecor(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 decorId = VarGet(script_read_halfword(ctx));
+ StringCopy(gUnknown_083762F0[stringVarIndex], gDecorations[decorId].name);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferattack(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 moveId = VarGet(script_read_halfword(ctx));
+ StringCopy(gUnknown_083762F0[stringVarIndex], &gMoveNames[moveId]);
+ return FALSE;
+}
+
+bool8 ScrCmd_buffernum(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 v1 = VarGet(script_read_halfword(ctx));
+ u8 v2 = sub_80BF0B8(v1);
+ ConvertIntToDecimalStringN(gUnknown_083762F0[stringVarIndex], v1, 0, v2);
+ return FALSE;
+}
+
+bool8 ScrCmd_bufferstd(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u16 index = VarGet(script_read_halfword(ctx));
+ StringCopy(gUnknown_083762F0[stringVarIndex], gUnknown_083CE048[index]);
+ return FALSE;
+}
+
+bool8 ScrCmd_buffertext(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u8 *text = (u8 *)script_read_word(ctx);
+ StringCopy(gUnknown_083762F0[stringVarIndex], text);
+ return FALSE;
+}
+
+bool8 ScrCmd_vloadptr(struct ScriptContext *ctx)
+{
+ u8 *ptr = (u8 *)(script_read_word(ctx) - gUnknown_0202E8B0);
+ StringExpandPlaceholders(gStringVar4, ptr);
+ return FALSE;
+}
+
+bool8 ScrCmd_vbuffer(struct ScriptContext *ctx)
+{
+ u8 stringVarIndex = *(ctx->scriptPtr++);
+ u32 addr = script_read_word(ctx);
+ u8 *src = (u8 *)(addr - gUnknown_0202E8B0);
+ u8 *dest = gUnknown_083762F0[stringVarIndex];
+ StringCopy(dest, src);
+ return FALSE;
+}
+
+bool8 ScrCmd_givepokemon(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u8 v5 = *(ctx->scriptPtr++);
+ u16 v7 = VarGet(script_read_halfword(ctx));
+ u32 v8 = script_read_word(ctx);
+ u32 v9 = script_read_word(ctx);
+ u8 v10 = *(ctx->scriptPtr++);
+ gScriptResult = sub_80C5374(v3, v5, v7, v8, v9, v10);
+ return FALSE;
+}
+
+bool8 ScrCmd_giveegg(struct ScriptContext *ctx)
+{
+ u16 value = VarGet(script_read_halfword(ctx));
+ gScriptResult = sub_80C53F8(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_setpokemove(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u16 v4 = script_read_halfword(ctx);
+ sub_80C5530(v2, v4, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkattack(struct ScriptContext *ctx)
+{
+ u8 i;
+ u16 moveId = script_read_halfword(ctx);
+ gScriptResult = 6;
+ for (i = 0; i < 6; i++)
+ {
+ register u8 *dummy asm("r2");
+ u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
+ if (!species)
+ break;
+ if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG, dummy) && pokemon_has_move(&gPlayerParty[i], moveId) == TRUE)
+ {
+ gScriptResult = i;
+ gUnknown_0202E8CC = species;
+ break;
+ }
+ }
+ return FALSE;
+}
+
+bool8 ScrCmd_givemoney(struct ScriptContext *ctx)
+{
+ u32 amount = script_read_word(ctx);
+ u8 ignore = *(ctx->scriptPtr++);
+ if (!ignore)
+ sub_80B79B8(&gSaveBlock1.money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_paymoney(struct ScriptContext *ctx)
+{
+ u32 amount = script_read_word(ctx);
+ u8 ignore = *(ctx->scriptPtr++);
+ if (!ignore)
+ sub_80B79E0(&gSaveBlock1.money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkmoney(struct ScriptContext *ctx)
+{
+ u32 amount = script_read_word(ctx);
+ u8 ignore = *(ctx->scriptPtr++);
+ if (!ignore)
+ gScriptResult = IsEnoughMoney(gSaveBlock1.money, amount);
+ return FALSE;
+}
+
+bool8 ScrCmd_showmoney(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 ignore = *(ctx->scriptPtr++);
+ if (!ignore)
+ sub_80B7C14(gSaveBlock1.money, v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidemoney(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ RemoveMoneyLabelObject(v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_updatemoney(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 ignore = *(ctx->scriptPtr++);
+ if (!ignore)
+ sub_80B7BEC(gSaveBlock1.money, v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_showcoins(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ sub_811A72C(gSaveBlock1.coins, v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_hidecoins(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ sub_811A770(v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_updatecoins(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ sub_811A704(gSaveBlock1.coins, v2, v3);
+ return FALSE;
+}
+
+bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = sub_80823C8(ctx->scriptPtr);
+ return FALSE;
+}
+
+bool8 ScrCmd_reptrainerbattle(struct ScriptContext *ctx)
+{
+ sub_80825E4();
+ return TRUE;
+}
+
+bool8 ScrCmd_endtrainerbattle(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = sub_80826E8();
+ return FALSE;
+}
+
+bool8 ScrCmd_endtrainerbattle2(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = sub_8082700();
+ return FALSE;
+}
+
+bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(script_read_halfword(ctx));
+ ctx->comparisonResult = trainer_flag_check(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(script_read_halfword(ctx));
+ trainer_flag_set(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx)
+{
+ u16 index = VarGet(script_read_halfword(ctx));
+ trainer_flag_clear(index);
+ return FALSE;
+}
+
+bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
+{
+ u16 v2 = script_read_halfword(ctx);
+ u8 v4 = *(ctx->scriptPtr++);
+ u16 v5 = script_read_halfword(ctx);
+ sub_80C54D0(v2, v4, v5);
+ return FALSE;
+}
+
+bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx)
+{
+ sub_8081B3C();
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
+{
+ void *ptr = (void *)script_read_word(ctx);
+ CreatePokemartMenu(ptr);
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx)
+{
+ void *ptr = (void *)script_read_word(ctx);
+ CreateDecorationShop1Menu(ptr);
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokemartbp(struct ScriptContext *ctx)
+{
+ void *ptr = (void *)script_read_word(ctx);
+ CreateDecorationShop2Menu(ptr);
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_pokecasino(struct ScriptContext *ctx)
+{
+ u8 v2 = VarGet(script_read_halfword(ctx));
+ sub_81018A0(v2, c2_exit_to_overworld_1_continue_scripts_restart_music);
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_event_8a(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ u8 v3 = *(ctx->scriptPtr++);
+ u8 v4 = *(ctx->scriptPtr++);
+ if (!v3)
+ PlantBerryTree(v2, 0, v4, 0);
+ else
+ PlantBerryTree(v2, v3, v4, 0);
+ return FALSE;
+}
+
+bool8 ScrCmd_event_96(struct ScriptContext *ctx)
+{
+ u16 value = VarGet(script_read_halfword(ctx));
+ gScriptResult = GetPriceReduction(value);
+ return FALSE;
+}
+
+bool8 ScrCmd_choosecontestpkmn(struct ScriptContext *ctx)
+{
+ sub_80F99CC();
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_startcontest(struct ScriptContext *ctx)
+{
+ sub_80C48C8();
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx)
+{
+ sub_80C4940();
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx)
+{
+ sub_80C4980(gUnknown_0203869C);
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_doanimation(struct ScriptContext *ctx)
+{
+ u16 effectId = VarGet(script_read_halfword(ctx));
+ gUnknown_0202E8BC = effectId;
+ FieldEffectStart(gUnknown_0202E8BC);
+ return FALSE;
+}
+
+bool8 ScrCmd_setanimation(struct ScriptContext *ctx)
+{
+ u8 v2 = *(ctx->scriptPtr++);
+ gUnknown_0202FF84[v2] = (s16)VarGet(script_read_halfword(ctx));
+ return FALSE;
+}
+
+bool8 sub_8067B48()
+{
+ if (!FieldEffectActiveListContains(gUnknown_0202E8BC))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_checkanimation(struct ScriptContext *ctx)
+{
+ gUnknown_0202E8BC = VarGet(script_read_halfword(ctx));
+ script_setup_asm_script(ctx, sub_8067B48);
+ return TRUE;
+}
+
+bool8 ScrCmd_sethealplace(struct ScriptContext *ctx)
+{
+ u16 v2 = VarGet(script_read_halfword(ctx));
+ sub_8053588(v2);
+ return FALSE;
+}
+
+bool8 ScrCmd_checkgender(struct ScriptContext *ctx)
+{
+ gScriptResult = gSaveBlock2.playerGender;
+ return FALSE;
+}
+
+bool8 ScrCmd_pokecry(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u16 v5 = VarGet(script_read_halfword(ctx));
+ sub_8075178(v3, v5);
+ return FALSE;
+}
+
+bool8 ScrCmd_waitpokecry(struct ScriptContext *ctx)
+{
+ script_setup_asm_script(ctx, sub_8075374);
+ return TRUE;
+}
+
+bool8 ScrCmd_setmaptile(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u16 v5 = VarGet(script_read_halfword(ctx));
+ u16 v7 = VarGet(script_read_halfword(ctx));
+ u16 v8 = VarGet(script_read_halfword(ctx));
+ v3 += 7;
+ v5 += 7;
+ if (!v8)
+ MapGridSetMetatileIdAt(v3, v5, v7);
+ else
+ MapGridSetMetatileIdAt(v3, v5, v7 | 0xC00);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdooropened(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u16 v4 = VarGet(script_read_halfword(ctx));
+ u16 v7;
+ v3 += 7;
+ v4 += 7;
+ v7 = sub_8058790(v3, v4);
+ audio_play(v7);
+ task_overworld_door_add_if_role_69_for_opening_door_at(v3, v4);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u16 v5 = VarGet(script_read_halfword(ctx));
+ v3 += 7;
+ v5 += 7;
+ sub_805870C(v3, v5);
+ return FALSE;
+}
+
+bool8 sub_8067D2C()
+{
+ if (!sub_805877C())
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 ScrCmd_doorchange(struct ScriptContext *ctx)
+{
+ script_setup_asm_script(ctx, sub_8067D2C);
+ return TRUE;
+}
+
+bool8 ScrCmd_setdooropened2(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u16 v5 = VarGet(script_read_halfword(ctx));
+ v3 += 7;
+ v5 += 7;
+ sub_80586B4(v3, v5);
+ return FALSE;
+}
+
+bool8 ScrCmd_setdoorclosed2(struct ScriptContext *ctx)
+{
+ u16 v3 = VarGet(script_read_halfword(ctx));
+ u16 v5 = VarGet(script_read_halfword(ctx));
+ v3 += 7;
+ v5 += 7;
+ sub_80586E0(v3, v5);
+ return FALSE;
+}
+
+bool8 ScrCmd_event_b1(struct ScriptContext *ctx)
+{
+ u8 v3 = *(ctx->scriptPtr++);
+ u16 v5 = VarGet(script_read_halfword(ctx));
+ u16 v7 = VarGet(script_read_halfword(ctx));
+ u16 v9 = VarGet(script_read_halfword(ctx));
+ sub_810E7AC(v3, v5, v7, v9);
+ return FALSE;
+}
+
+bool8 ScrCmd_event_b2(struct ScriptContext *ctx)
+{
+ sub_810E824();
+ sub_80655F0();
+ return TRUE;
+}
+
+bool8 ScrCmd_checkcoins(struct ScriptContext *ctx)
+{
+ u16 *ptr = GetVarPointer(script_read_halfword(ctx));
+ *ptr = GetCoins();
+ return FALSE;
+}
+
+bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
+{
+ u16 v2 = VarGet(script_read_halfword(ctx));
+ if (sub_811A840(v2) == TRUE)
+ gScriptResult = 0;
+ else
+ gScriptResult = 1;
+
+ return FALSE;
+}
+
+bool8 ScrCmd_removecoins(struct ScriptContext *ctx)
+{
+ u16 v2 = VarGet(script_read_halfword(ctx));
+ if (sub_811A898(v2) == TRUE)
+ gScriptResult = 0;
+ else
+ gScriptResult = 1;
+
+ return FALSE;
+}