diff options
author | YamaArashi <shadow962@live.com> | 2016-09-21 20:43:41 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-09-21 20:43:41 -0700 |
commit | 2ac23e201bddac0793e763c907f7e4ae362236e4 (patch) | |
tree | 9bbfe1011c87e690c9bb2a7c5cf31f84b3cee754 | |
parent | 8805b045034d9dcc687a178881b94bc6d87f035d (diff) |
decompile rest of script commands
-rw-r--r-- | asm/rom_8065394.s | 1956 | ||||
-rw-r--r-- | ewram_syms.txt | 5 | ||||
-rw-r--r-- | include/decoration.h | 16 | ||||
-rw-r--r-- | include/global.h | 6 | ||||
-rw-r--r-- | src/scrcmd.c | 779 |
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; +} |