ref: fc16533207669886369b57628beebc4e63ea94ff
dir: /engine/scripting.asm/
INCLUDE "includes.asm" ; Event scripting commands. SECTION "Event Scripting", ROMX, BANK[EVENTS] Function96c56:: ; 96c56 push af ld a, 1 ld [ScriptMode], a pop af ret ; 96c5e ScriptEvents:: ; 96c5e call StartScript .loop ld a, [ScriptMode] ld hl, .modes rst JumpTable call CheckScript jr nz, .loop ret ; 96c6e .modes ; 96c6e dw EndScript dw RunScriptCommand dw WaitScriptMovement dw WaitScript EndScript: ; 96c76 call StopScript ret ; 96c7a WaitScript: ; 96c7a call StopScript ld hl, ScriptDelay dec [hl] ret nz callba Function58b9 ld a, SCRIPT_READ ld [ScriptMode], a call StartScript ret ; 96c91 WaitScriptMovement: ; 96c91 call StopScript ld hl, VramState bit 7, [hl] ret nz callba Function58b9 ld a, SCRIPT_READ ld [ScriptMode], a call StartScript ret ; 96ca9 RunScriptCommand: ; 96ca9 call GetScriptByte ld hl, ScriptCommandTable rst JumpTable ret ; 96cb1 ScriptCommandTable: ; 0x96cb1 dw Script_2call dw Script_3call dw Script_2ptcall dw Script_2jump dw Script_3jump dw Script_2ptjump dw Script_if_equal dw Script_if_not_equal dw Script_iffalse dw Script_iftrue dw Script_if_greater_than dw Script_if_less_than dw Script_jumpstd dw Script_callstd dw Script_3callasm dw Script_special dw Script_2ptcallasm dw Script_checkmaptriggers dw Script_domaptrigger dw Script_checktriggers dw Script_dotrigger dw Script_writebyte dw Script_addvar dw Script_random dw Script_checkver dw Script_copybytetovar dw Script_copyvartobyte dw Script_loadvar dw Script_checkcode dw Script_writevarcode dw Script_writecode dw Script_giveitem dw Script_takeitem dw Script_checkitem dw Script_givemoney dw Script_takemoney dw Script_checkmoney dw Script_givecoins dw Script_takecoins dw Script_checkcoins dw Script_addcellnum dw Script_delcellnum dw Script_checkcellnum dw Script_checktime dw Script_checkpoke dw Script_givepoke dw Script_giveegg dw Script_givepokeitem dw Script_checkpokeitem dw Script_checkevent dw Script_clearevent dw Script_setevent dw Script_checkflag dw Script_clearflag dw Script_setflag dw Script_wildon dw Script_wildoff dw Script_xycompare dw Script_warpmod dw Script_blackoutmod dw Script_warp dw Script_readmoney dw Script_readcoins dw Script_RAM2MEM dw Script_pokenamemem dw Script_itemtotext dw Script_mapnametotext dw Script_trainertotext dw Script_stringtotext dw Script_itemnotify dw Script_pocketisfull dw Script_loadfont dw Script_refreshscreen dw Script_loadmovesprites dw Script_loadbytec1ce dw Script_3writetext dw Script_2writetext dw Script_repeattext dw Script_yesorno dw Script_loadmenudata dw Script_writebackup dw Script_jumptextfaceplayer IF _CRYSTAL dw Script_3jumptext ENDC dw Script_jumptext dw Script_closetext dw Script_keeptextopen dw Script_pokepic dw Script_pokepicyesorno dw Script_interpretmenu dw Script_interpretmenu2 dw Script_loadpikachudata dw Script_battlecheck dw Script_loadtrainerdata dw Script_loadpokedata dw Script_loadtrainer dw Script_startbattle dw Script_returnafterbattle dw Script_catchtutorial dw Script_trainertext dw Script_trainerstatus dw Script_winlosstext dw Script_scripttalkafter dw Script_talkaftercancel dw Script_talkaftercheck dw Script_setlasttalked dw Script_applymovement dw Script_applymovement2 dw Script_faceplayer dw Script_faceperson dw Script_variablesprite dw Script_disappear dw Script_appear dw Script_follow dw Script_stopfollow dw Script_moveperson dw Script_writepersonxy dw Script_loademote dw Script_showemote dw Script_spriteface dw Script_follownotexact dw Script_earthquake dw Script_changemap dw Script_changeblock dw Script_reloadmap dw Script_reloadmappart dw Script_writecmdqueue dw Script_delcmdqueue dw Script_playmusic dw Script_playrammusic dw Script_musicfadeout dw Script_playmapmusic dw Script_reloadmapmusic dw Script_cry dw Script_playsound dw Script_waitbutton dw Script_warpsound dw Script_specialsound dw Script_passtoengine dw Script_newloadmap dw Script_pause dw Script_deactivatefacing dw Script_priorityjump dw Script_warpcheck dw Script_ptpriorityjump dw Script_return dw Script_end dw Script_reloadandreturn dw Script_resetfuncs dw Script_pokemart dw Script_elevator dw Script_trade dw Script_askforphonenumber dw Script_phonecall dw Script_hangup dw Script_describedecoration dw Script_fruittree dw Script_specialphonecall dw Script_checkphonecall dw Script_verbosegiveitem dw Script_verbosegiveitem2 dw Script_loadwilddata dw Script_halloffame dw Script_credits dw Script_warpfacing dw Script_storetext dw Script_displaylocation dw Script_trainerclassname dw Script_name dw Script_wait dw Script_unknown0xa9 ; 0x96e05 StartScript: ; 0x96e05 ld hl, ScriptFlags set SCRIPT_RUNNING, [hl] ret ; 0x96e0b CheckScript: ; 0x96e0b ld hl, ScriptFlags bit SCRIPT_RUNNING, [hl] ret ; 0x96e11 StopScript: ; 0x96e11 ld hl, ScriptFlags res SCRIPT_RUNNING, [hl] ret ; 0x96e17 Script_3callasm: ; 0x96e17 ; script command 0xe ; parameters: ; asm (AsmPointerParam) call GetScriptByte ld b, a call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, b rst FarCall ret ; 0x96e26 Script_special: ; 0x96e26 ; script command 0xf ; parameters: ; predefined_script (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a callba Functionc01b ret ; 0x96e35 Script_2ptcallasm: ; 0x96e35 ; script command 0x10 ; parameters: ; asm (PointerToAsmPointerParam) call GetScriptByte ld l, a call GetScriptByte ld h, a ld b, [hl] inc hl ld a, [hli] ld h, [hl] ld l, a ld a, b rst FarCall ret ; 0x96e45 Script_jumptextfaceplayer: ; 0x96e45 ; script command 0x51 ; parameters: ; text_pointer (RawTextPointerLabelParam) ld a, [ScriptBank] ld [$d44e], a call GetScriptByte ld [$d44f], a call GetScriptByte ld [$d450], a ld b, BANK(JumpTextFacePlayerScript) ld hl, JumpTextFacePlayerScript jp ScriptJump ; 0x96e5f Script_jumptext: ; 0x96e5f ; script command 0x53 ; parameters: ; text_pointer (RawTextPointerLabelParam) ld a, [ScriptBank] ld [$d44e], a call GetScriptByte ld [$d44f], a call GetScriptByte ld [$d450], a ld b, BANK(JumpTextScript) ld hl, JumpTextScript jp ScriptJump ; 0x96e79 JumpTextFacePlayerScript: ; 0x96e79 faceplayer JumpTextScript: ; 0x96e7a loadfont repeattext $ff, $ff closetext loadmovesprites end ; 0x96e81 IF _CRYSTAL Script_3jumptext: ; 0x96e81 ; script command 0x52 ; parameters: ; text_pointer (PointerLabelBeforeBank) call GetScriptByte ld [$d44e], a call GetScriptByte ld [$d44f], a call GetScriptByte ld [$d450], a ld b, BANK(JumpTextScript) ld hl, JumpTextScript jp ScriptJump ; 0x96e9b ENDC Script_2writetext: ; 0x96e9b ; script command 0x4c ; parameters: ; text_pointer (RawTextPointerLabelParam) call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, [ScriptBank] ld b, a call Function269a ret ; 0x96eab Script_3writetext: ; 0x96eab ; script command 0x4b ; parameters: ; text_pointer (PointerLabelBeforeBank) call GetScriptByte ld b, a call GetScriptByte ld l, a call GetScriptByte ld h, a call Function269a ret ; 0x96ebb Script_repeattext: ; 0x96ebb ; script command 0x4d ; parameters: ; byte (SingleByteParam) ; byte (SingleByteParam) call GetScriptByte ld l, a call GetScriptByte ld h, a cp $ff jr nz, .asm_96ed8 ; 0x96ec5 $11 ld a, l cp $ff jr nz, .asm_96ed8 ; 0x96eca $c ld hl, $d44e ld a, [hli] ld b, a ld a, [hli] ld h, [hl] ld l, a call Function269a ret .asm_96ed8 ret ; 0x96ed9 Script_closetext: ; 0x96ed9 ; script command 0x54 jp Functiona46 ; 0x96edc Script_keeptextopen: ; 0x96edc ; script command 0x55 ld a, [$ffd8] push af ld a, $1 ld [$ffd8], a call WaitBGMap call Functionaaf pop af ld [$ffd8], a ret ; 0x96eed Script_yesorno: ; 0x96eed ; script command 0x4e call YesNoBox ld a, 0 jr c, .asm_96ef6 ; 0x96ef2 $2 ld a, 1 .asm_96ef6 ld [ScriptVar], a ret ; 0x96efa Script_loadmenudata: ; 0x96efa ; script command 0x4f ; parameters: ; data (MenuDataPointerParam) call GetScriptByte ld l, a call GetScriptByte ld h, a ld de, $1d35 ld a, [ScriptBank] call Function26b7 call Function1ad2 ret ; 0x96f0f Script_writebackup: ; 0x96f0f ; script command 0x50 call Function1c17 call Function1ad2 ret ; 0x96f16 Script_pokepic: ; 0x96f16 ; script command 0x56 ; parameters: ; pokemon (PokemonParam) call GetScriptByte and a jr nz, .ok ld a, [ScriptVar] .ok ld [CurPartySpecies], a callba Function244e3 ret ; 0x96f29 Script_pokepicyesorno: ; 0x96f29 ; script command 0x57 callba Function24528 ret ; 0x96f30 Script_interpretmenu2: ; 0x96f30 ; script command 0x59 ld a, [ScriptBank] ld hl, Function1d81 rst FarCall ld a, [$cfa9] jr nc, .ok xor a .ok ld [ScriptVar], a ret ; 0x96f41 Script_interpretmenu: ; 0x96f41 ; script command 0x58 ld a, [ScriptBank] ld hl, Function202a rst FarCall ld a, [$cf88] jr nc, .ok xor a .ok ld [ScriptVar], a ret ; 0x96f52 Script_storetext: ; 0x96f52 ; script command 0xa4 ; parameters: ; pointer (PointerLabelBeforeBank) ; memory (SingleByteParam) call Function106c call GetScriptByte ld c, a callba Function11c000 ret ; 0x96f60 Script_verbosegiveitem: ; 0x96f60 ; script command 0x9e ; parameters: ; item (ItemLabelByte) ; quantity (DecimalParam) call Script_giveitem call CurItemName ld de, StringBuffer1 ld a, $1 call Function976c8 ld b, BANK(GiveItemScript) ld de, GiveItemScript jp ScriptCall ; 0x96f76 Function96f76: ; 96f76 ret ; 96f77 GiveItemScript: ; 96f77 3callasm Function96f76 2writetext ReceivedItemText iffalse .Full waitbutton specialsound closetext itemnotify end .Full keeptextopen pocketisfull end ; 96f89 ReceivedItemText: ; 96f89 text_jump UnknownText_0x1c4719 db "@" ; 96f8e Script_verbosegiveitem2: ; 0x96f8e ; script command 0x9f ; parameters: ; item (ItemLabelByte) ; var (SingleByteParam) call GetScriptByte cp $ff jr nz, .ok ld a, [ScriptVar] .ok ld [CurItem], a call GetScriptByte call Function9769e ld a, [de] ld [$d10c], a ld hl, NumItems call ReceiveItem ld a, $1 jr c, .ok2 xor a .ok2 ld [ScriptVar], a call CurItemName ld de, StringBuffer1 ld a, $1 call Function976c8 ld b, BANK(GiveItemScript) ld de, GiveItemScript jp ScriptCall ; 0x96fc6 Script_itemnotify: ; 0x96fc6 ; script command 0x45 call GetPocketName call CurItemName ld b, BANK(PutItemInPocketText) ld hl, PutItemInPocketText call Function269a ret ; 0x96fd5 Script_pocketisfull: ; 0x96fd5 ; script command 0x46 call GetPocketName call CurItemName ld b, BANK(PocketIsFullText) ld hl, PocketIsFullText call Function269a ret ; 0x96fe4 Script_specialsound: ; 0x96fe4 ; script command 0x88 callba CheckItemPocket ld a, [$d142] cp TM_HM ld de, SFX_GET_TM jr z, .play ld de, SFX_ITEM .play call PlaySFX call WaitSFX ret ; 0x96ffe GetPocketName: ; 96ffe callba CheckItemPocket ld a, [$d142] dec a ld hl, .Pockets and 3 add a ld e, a ld d, 0 add hl, de ld a, [hli] ld d, [hl] ld e, a ld hl, StringBuffer3 call CopyName2 ret .Pockets dw .Item dw .Key dw .Ball dw .TM .Item db "ITEM POCKET@" .Key db "KEY POCKET@" .Ball db "BALL POCKET@" .TM db "TM POCKET@" ; 97051 CurItemName: ; 97051 ld a, [CurItem] ld [$d265], a call GetItemName ret ; 9705b PutItemInPocketText: ; 9705b text_jump UnknownText_0x1c472c db "@" ; 97060 PocketIsFullText: ; 97060 text_jump UnknownText_0x1c474b db "@" ; 97065 Script_pokemart: ; 0x97065 ; script command 0x94 ; parameters: ; dialog_id (SingleByteParam) ; mart_id (MultiByteParam) call GetScriptByte ld c, a call GetScriptByte ld e, a call GetScriptByte ld d, a ld a, [ScriptBank] ld b, a callba OpenMartDialog ret ; 0x9707c Script_elevator: ; 0x9707c ; script command 0x95 ; parameters: ; floor_list_pointer (PointerLabelParam) xor a ld [ScriptVar], a call GetScriptByte ld e, a call GetScriptByte ld d, a ld a, [ScriptBank] ld b, a callba Function1342d ret c ld a, $1 ld [ScriptVar], a ret ; 0x97099 Script_trade: ; 0x97099 ; script command 0x96 ; parameters: ; trade_id (SingleByteParam) call GetScriptByte ld e, a callba NPCTrade ret ; 0x970a4 Script_phonecall: ; 0x970a4 ; script command 0x98 ; parameters: ; caller_name (RawTextPointerLabelParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld a, [ScriptBank] ld b, a callba Function9029a ret ; 0x970b7 Script_hangup: ; 0x970b7 ; script command 0x99 callba Function902eb ret ; 0x970be Script_askforphonenumber: ; 0x970be ; script command 0x97 ; parameters: ; number (SingleByteParam) call YesNoBox jr c, .asm_970d6 ; 0x970c1 $13 call GetScriptByte ld c, a callba Function90000 jr c, .asm_970d2 ; 0x970cd $3 xor a jr .asm_970db ; 0x970d0 $9 .asm_970d2 ld a, $1 jr .asm_970db ; 0x970d4 $5 .asm_970d6 call GetScriptByte ld a, $2 .asm_970db ld [ScriptVar], a ret ; 0x970df Script_describedecoration: ; 0x970df ; script command 0x9a ; parameters: ; byte (SingleByteParam) call GetScriptByte ld b, a callba Function26f59 ld h, d ld l, e jp ScriptJump ; 0x970ee Script_fruittree: ; 0x970ee ; script command 0x9b ; parameters: ; tree_id (SingleByteParam) call GetScriptByte ld [CurFruitTree], a ld b, BANK(FruitTreeScript) ld hl, FruitTreeScript jp ScriptJump ; 0x970fc Script_loadwilddata: ; 0x970fc ; script command 0xa0 ; parameters: ; map_group (MapGroupParam) ; map_id (MapIdParam) call GetScriptByte ld c, a call GetScriptByte ld d, a call GetScriptByte ld e, a callba Functionc403 ret ; 0x9710f Script_trainertext: ; 0x9710f ; script command 0x62 ; parameters: ; which_text (SingleByteParam) call GetScriptByte ld c, a ld b, $0 ld hl, $d045 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [$d03e] ld b, a call Function269a ret ; 0x97125 Script_scripttalkafter: ; 0x97125 ; script command 0x65 ld hl, $d04b ld a, [hli] ld h, [hl] ld l, a ld a, [$d03e] ld b, a jp ScriptJump ; 0x97132 Script_trainerstatus: ; 0x97132 ; script command 0x63 ; parameters: ; action (SingleByteParam) xor a ld [ScriptVar], a ld hl, $d041 ld e, [hl] inc hl ld d, [hl] call GetScriptByte ld b, a call EventFlagAction ld a, c and a ret z ld a, $1 ld [ScriptVar], a ret ; 0x9714c Script_winlosstext: ; 0x9714c ; script command 0x64 ; parameters: ; win_text_pointer (TextPointerLabelParam) ; loss_text_pointer (TextPointerLabelParam) ld hl, $d047 call GetScriptByte ld [hli], a call GetScriptByte ld [hli], a ld hl, $d049 call GetScriptByte ld [hli], a call GetScriptByte ld [hli], a ret ; 0x97163 Script_talkaftercancel: ; 0x97163 ; script command 0x66 ld a, [$d04d] and a ret z jp Script_end ; 0x9716b Script_talkaftercheck: ; 0x9716b ; script command 0x67 ld a, $1 ld [ScriptVar], a ld a, [$d04d] and a ret nz xor a ld [ScriptVar], a ret ; 0x9717a Script_playrammusic: ; 0x9717a ; script command 0x80 ld a, [$d22f] ld e, a callba PlayTrainerEncounterMusic ret ; 0x97185 Script_playmapmusic: ; 0x97185 ; script command 0x82 call PlayMapMusic ret ; 0x97189 Script_playmusic: ; 0x97189 ; script command 0x7f ; parameters: ; music_pointer (MultiByteParam) ld de, MUSIC_NONE call PlayMusic xor a ld [$c2a7], a call MaxVolume call GetScriptByte ld e, a call GetScriptByte ld d, a call PlayMusic ret ; 0x971a2 Script_musicfadeout: ; 0x971a2 ; script command 0x81 ; parameters: ; music (MultiByteParam) ; fadetime (SingleByteParam) call GetScriptByte ld [MusicFadeID], a call GetScriptByte ld [MusicFadeID + 1], a call GetScriptByte and $7f ld [$c2a7], a ret ; 0x971b7 Script_playsound: ; 0x971b7 ; script command 0x85 ; parameters: ; sound_pointer (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a call PlaySFX ret ; 0x971c3 Script_waitbutton: ; 0x971c3 ; script command 0x86 call WaitSFX ret ; 0x971c7 Script_warpsound: ; 0x971c7 ; script command 0x87 callba Function14a07 call PlaySFX ret ; 0x971d1 Script_cry: ; 0x971d1 ; script command 0x84 ; parameters: ; cry_id (MultiByteParam) call GetScriptByte push af call GetScriptByte pop af and a jr nz, .asm_971df ; 0x971da $3 ld a, [ScriptVar] .asm_971df call Function37ce ret ; 0x971e3 Function971e3: ; 0x971e3 and a ret z cp $fe ret z dec a ret ; 0x971ea Script_setlasttalked: ; 0x971ea ; script command 0x68 ; parameters: ; person (SingleByteParam) call GetScriptByte call Function971e3 ld [$ffe0], a ret ; 0x971f3 Script_applymovement: ; 0x971f3 ; script command 0x69 ; parameters: ; person (SingleByteParam) ; data (MovementPointerLabelParam) call GetScriptByte call Function971e3 ld c, a ; 971fa Function971fa: ; 971fa push bc ld a, c callba Function585c pop bc push bc call Function97221 pop bc call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, [ScriptBank] ld b, a call Function26c7 ret c ld a, SCRIPT_WAIT_MOVEMENT ld [ScriptMode], a call StopScript ret ; 0x97221 Function97221: ; 0x97221 callba Function5897 ret ; 0x97228 Script_applymovement2: ; 0x97228 ; script command 0x6a ; parameters: ; data (MovementPointerLabelParam) ld a, [$ffe0] ld c, a jp Function971fa ; 0x9722e Script_faceplayer: ; 0x9722e ; script command 0x6b ld a, [$ffe0] and a ret z ld d, $0 ld a, [$ffe0] ld e, a callba Function8417 ld a, d add a add a ld e, a ld a, [$ffe0] ld d, a call Function9728b ret ; 0x97248 Script_faceperson: ; 0x97248 ; script command 0x6c ; parameters: ; person1 (SingleByteParam) ; person2 (SingleByteParam) call GetScriptByte call Function971e3 cp $fe jr c, .asm_97254 ; 0x97250 $2 ld a, [$ffe0] .asm_97254 ld e, a call GetScriptByte call Function971e3 cp $fe jr nz, .asm_97261 ; 0x9725d $2 ld a, [$ffe0] .asm_97261 ld d, a push de callba Function8417 pop bc ret c ld a, d add a add a ld e, a ld d, c call Function9728b ret ; 0x97274 Script_spriteface: ; 0x97274 ; script command 0x76 ; parameters: ; person (SingleByteParam) ; facing (SingleByteParam) call GetScriptByte call Function971e3 cp $fe jr nz, .asm_97280 ; 0x9727c $2 ld a, [$ffe0] .asm_97280 ld d, a call GetScriptByte add a add a ld e, a call Function9728b ret ; 0x9728b Function9728b: ; 0x9728b ld a, d push de call Function18de jr c, .asm_972b9 ; 0x97290 $27 ld hl, $0000 add hl, bc ld a, [hl] push bc call Function1836 pop bc jr c, .asm_972b9 ; 0x9729c $1b ld hl, $0004 add hl, bc bit 2, [hl] jr nz, .asm_972b9 ; 0x972a4 $13 pop de ld a, e call Function1af8 ld hl, $d0ed bit 6, [hl] jr nz, .asm_972b5 ; 0x972b0 $3 call Function972bc .asm_972b5 call Function1ad2 ret .asm_972b9 pop de scf ret ; 0x972bc Function972bc: ; 0x972bc call Function217a ld hl, TileMap ld bc, $0168 .asm_972c5 res 7, [hl] inc hl dec bc ld a, b or c jr nz, .asm_972c5 ; 0x972cb $f8 ret ; 0x972ce Script_variablesprite: ; 0x972ce ; script command 0x6d ; parameters: ; byte (SingleByteParam) ; sprite (SingleByteParam) call GetScriptByte ld e, a ld d, $0 ld hl, $d82e add hl, de call GetScriptByte ld [hl], a ret ; 0x972dd Script_appear: ; 0x972dd ; script command 0x6f ; parameters: ; person (SingleByteParam) call GetScriptByte call Function971e3 call Function1956 ld a, [$ffaf] ld b, $0 call Function9730b ret ; 0x972ee Script_disappear: ; 0x972ee ; script command 0x6e ; parameters: ; person (SingleByteParam) call GetScriptByte call Function971e3 cp $fe jr nz, .asm_972fa ; 0x972f6 $2 ld a, [$ffe0] .asm_972fa call Function199f ld a, [$ffaf] ld b, $1 call Function9730b callba Function5920 ret ; 0x9730b Function9730b: ; 0x9730b push bc call GetMapObject ld hl, $000c add hl, bc pop bc ld e, [hl] inc hl ld d, [hl] ld a, $ff cp e jr nz, .asm_97321 ; 0x9731a $5 cp d jr nz, .asm_97321 ; 0x9731d $2 xor a ret .asm_97321 call EventFlagAction ret ; 0x97325 Script_follow: ; 0x97325 ; script command 0x70 ; parameters: ; person2 (SingleByteParam) ; person1 (SingleByteParam) call GetScriptByte call Function971e3 ld b, a call GetScriptByte call Function971e3 ld c, a callba Function5803 ret ; 0x9733a Script_stopfollow: ; 0x9733a ; script command 0x71 callba Function581f ret ; 0x97341 Script_moveperson: ; 0x97341 ; script command 0x72 ; parameters: ; person (SingleByteParam) ; x (SingleByteParam) ; y (SingleByteParam) call GetScriptByte call Function971e3 ld b, a call GetScriptByte add $4 ld d, a call GetScriptByte add $4 ld e, a callba Function807e ret ; 0x9735b Script_writepersonxy: ; 0x9735b ; script command 0x73 ; parameters: ; person (SingleByteParam) call GetScriptByte call Function971e3 cp $fe jr nz, .asm_97367 ; 0x97363 $2 ld a, [$ffe0] .asm_97367 ld b, a callba Function80a1 ret ; 0x9736f Script_follownotexact: ; 0x9736f ; script command 0x77 ; parameters: ; person2 (SingleByteParam) ; person1 (SingleByteParam) call GetScriptByte call Function971e3 ld b, a call GetScriptByte call Function971e3 ld c, a callba Function839e ret ; 0x97384 Script_loademote: ; 0x97384 ; script command 0x74 ; parameters: ; bubble (SingleByteParam) call GetScriptByte cp $ff jr nz, .asm_9738e ; 0x97389 $3 ld a, [ScriptVar] .asm_9738e ld c, a callba Function1442f ret ; 0x97396 Script_showemote: ; 0x97396 ; script command 0x75 ; parameters: ; bubble (SingleByteParam) ; person (SingleByteParam) ; time (DecimalParam) call GetScriptByte ld [ScriptVar], a call GetScriptByte call Function971e3 cp $fe jr z, .asm_973a8 ; 0x973a4 $2 ld [$ffe0], a .asm_973a8 call GetScriptByte ld [ScriptDelay], a ld b, BANK(ShowEmoteScript) ld de, ShowEmoteScript jp ScriptCall ; 0x973b6 ShowEmoteScript: ; 973b6 loademote $ff applymovement2 .Show pause 0 applymovement2 .Hide end .Show show_emote show_person step_end .Hide hide_emote show_person step_end ; 973c7 Script_earthquake: ; 0x973c7 ; script command 0x78 ; parameters: ; param (DecimalParam) ld hl, EarthquakeMovement ld de, $d002 ld bc, EarthquakeMovementEnd - EarthquakeMovement call CopyBytes call GetScriptByte ld [$d003], a and $3f ld [$d005], a ld b, BANK(UnknownScript_0x973e6) ld de, UnknownScript_0x973e6 jp ScriptCall ; 0x973e6 UnknownScript_0x973e6: ; 973e6 applymovement $0, $d002 end ; 973eb EarthquakeMovement: ; 973eb step_shake 16 step_sleep 16 step_end EarthquakeMovementEnd ; 973f0 Script_loadpikachudata: ; 0x973f0 ; script command 0x5a ld a, $19 ld [$d22e], a ld a, $5 ld [CurPartyLevel], a ret ; 0x973fb Script_battlecheck: ; 0x973fb ; script command 0x5b xor a ld [$d459], a ret ; 0x97400 Script_loadtrainerdata: ; 0x97400 ; script command 0x5c ld a, $81 ld [$d459], a ld a, [$d043] ld [$d22f], a ld a, [$d044] ld [$d231], a ret ; 0x97412 Script_loadpokedata: ; 0x97412 ; script command 0x5d ; parameters: ; pokemon (PokemonParam) ; level (DecimalParam) ld a, $80 ld [$d459], a call GetScriptByte ld [$d22e], a call GetScriptByte ld [CurPartyLevel], a ret ; 0x97424 Script_loadtrainer: ; 0x97424 ; script command 0x5e ; parameters: ; trainer_group (TrainerGroupParam) ; trainer_id (TrainerIdParam) ld a, $81 ld [$d459], a call GetScriptByte ld [$d22f], a call GetScriptByte ld [$d231], a ret ; 0x97436 Script_startbattle: ; 0x97436 ; script command 0x5f call Function2879 ld a, PREDEF_START_BATTLE call Predef ld a, [$d0ee] and $3f ld [ScriptVar], a ret ; 0x97447 Script_catchtutorial: ; 0x97447 ; script command 0x61 ; parameters: ; byte (SingleByteParam) call GetScriptByte ld [$d230], a call Function2879 callba Function4e554 jp Script_reloadmap ; 0x97459 Script_returnafterbattle: ; 0x97459 ; script command 0x60 ld hl, $d459 ld d, [hl] ld [hl], $0 ld a, [$d0ee] and $3f cp $1 jr nz, .asm_97470 ; 0x97466 $8 ld b, BANK(UnknownScript_0x124c1) ld hl, UnknownScript_0x124c1 jp ScriptJump .asm_97470 bit 0, d jr z, .asm_9747c ; 0x97472 $8 callba Functionfcfec jr .asm_9748e ; 0x9747a $12 .asm_9747c ld a, [$d0ee] bit 7, a jr z, .asm_9748e ; 0x97481 $b ld b, $24 ld de, $4255 callba Function97c4f .asm_9748e jp Script_reloadmap ; 0x97491 Script_reloadmap: ; 0x97491 ; script command 0x7b xor a ld [$d459], a ld a, $f3 ld [$ff9f], a ld a, $1 call Function261b call StopScript ret ; 0x974a2 Script_2call: ; 0x974a2 ; script command 0x0 ; parameters: ; pointer (ScriptPointerLabelParam) ld a, [ScriptBank] ld b, a call GetScriptByte ld e, a call GetScriptByte ld d, a jr ScriptCall ; 0x974b0 Script_3call: ; 0x974b0 ; script command 0x1 ; parameters: ; pointer (ScriptPointerLabelBeforeBank) call GetScriptByte ld b, a call GetScriptByte ld e, a call GetScriptByte ld d, a jr ScriptCall ; 0x974be Script_2ptcall: ; 0x974be ; script command 0x2 ; parameters: ; pointer (PointerLabelToScriptPointer) call GetScriptByte ld l, a call GetScriptByte ld h, a ld b, [hl] inc hl ld e, [hl] inc hl ld d, [hl] ; fallthrough ScriptCall: ; 0x974cb push de ld hl, $d43c ld e, [hl] inc [hl] ld d, $0 ld hl, $d43d add hl, de add hl, de add hl, de pop de ld a, [ScriptBank] ld [hli], a ld a, [ScriptPos] ld [hli], a ld a, [ScriptPos + 1] ld [hl], a ld a, b ld [ScriptBank], a ld a, e ld [ScriptPos], a ld a, d ld [ScriptPos + 1], a ret ; 0x974f3 Function974f3:: ; 0x974f3 ld a, [ScriptBank] or $80 ld [ScriptBank], a jp ScriptCall ; 0x974fe Script_2jump: ; 0x974fe ; script command 0x3 ; parameters: ; pointer (ScriptPointerLabelParam) call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, [ScriptBank] ld b, a jp ScriptJump ; 0x9750d Script_3jump: ; 0x9750d ; script command 0x4 ; parameters: ; pointer (ScriptPointerLabelBeforeBank) call GetScriptByte ld b, a call GetScriptByte ld l, a call GetScriptByte ld h, a jp ScriptJump ; 0x9751c Script_2ptjump: ; 0x9751c ; script command 0x5 ; parameters: ; pointer (PointerLabelToScriptPointer) call GetScriptByte ld l, a call GetScriptByte ld h, a ld b, [hl] inc hl ld a, [hli] ld h, [hl] ld l, a jp ScriptJump ; 0x9752c Script_iffalse: ; 0x9752c ; script command 0x8 ; parameters: ; pointer (ScriptPointerLabelParam) ld a, [ScriptVar] and a jp nz, SkipTwoScriptBytes jp Script_2jump ; 0x97536 Script_iftrue: ; 0x97536 ; script command 0x9 ; parameters: ; pointer (ScriptPointerLabelParam) ld a, [ScriptVar] and a jp nz, Script_2jump jp SkipTwoScriptBytes ; 0x97540 Script_if_equal: ; 0x97540 ; script command 0x6 ; parameters: ; byte (SingleByteParam) ; pointer (ScriptPointerLabelParam) call GetScriptByte ld hl, ScriptVar cp [hl] jr z, Script_2jump ; 0x97547 $b5 jr SkipTwoScriptBytes ; 0x97549 $4b ; 0x9754b Script_if_not_equal: ; 0x9754b ; script command 0x7 ; parameters: ; byte (SingleByteParam) ; pointer (ScriptPointerLabelParam) call GetScriptByte ld hl, ScriptVar cp [hl] jr nz, Script_2jump ; 0x97552 $aa jr SkipTwoScriptBytes ; 0x97554 $40 ; 0x97556 Script_if_greater_than: ; 0x97556 ; script command 0xa ; parameters: ; byte (SingleByteParam) ; pointer (ScriptPointerLabelParam) ld a, [ScriptVar] ld b, a call GetScriptByte cp b jr c, Script_2jump ; 0x9755e $9e jr SkipTwoScriptBytes ; 0x97560 $34 ; 0x97562 Script_if_less_than: ; 0x97562 ; script command 0xb ; parameters: ; byte (SingleByteParam) ; pointer (ScriptPointerLabelParam) call GetScriptByte ld b, a ld a, [ScriptVar] cp b jr c, Script_2jump ; 0x9756a $92 jr SkipTwoScriptBytes ; 0x9756c $28 ; 0x9756e Script_jumpstd: ; 0x9756e ; script command 0xc ; parameters: ; predefined_script (MultiByteParam) call StdScript jr ScriptJump ; 0x97571 $2a ; 0x97573 Script_callstd: ; 0x97573 ; script command 0xd ; parameters: ; predefined_script (MultiByteParam) call StdScript ld d, h ld e, l jp ScriptCall ; 0x9757b StdScript: ; 0x9757b call GetScriptByte ld e, a call GetScriptByte ld d, a ld hl, StdScripts add hl, de add hl, de add hl, de ld a, BANK(StdScripts) call GetFarByte ld b, a inc hl ld a, BANK(StdScripts) call GetFarHalfword ret ; 0x97596 SkipTwoScriptBytes: ; 0x97596 call GetScriptByte call GetScriptByte ret ; 0x9759d ScriptJump: ; 0x9759d ld a, b ld [ScriptBank], a ld a, l ld [ScriptPos], a ld a, h ld [ScriptPos + 1], a ret ; 0x975aa Script_priorityjump: ; 0x975aa ; script command 0x8d ; parameters: ; pointer (ScriptPointerLabelParam) ld a, [ScriptBank] ld [$d44e], a call GetScriptByte ld [$d44f], a call GetScriptByte ld [$d450], a ld hl, ScriptFlags set 3, [hl] ret ; 0x975c2 Script_checktriggers: ; 0x975c2 ; script command 0x13 call Function211b jr z, .asm_975cb ; 0x975c5 $4 ld [ScriptVar], a ret .asm_975cb ld a, $ff ld [ScriptVar], a ret ; 0x975d1 Script_checkmaptriggers: ; 0x975d1 ; script command 0x11 ; parameters: ; map_group (SingleByteParam) ; map_id (SingleByteParam) call GetScriptByte ld b, a call GetScriptByte ld c, a call GetMapTrigger ld a, d or e jr z, .asm_975e5 ; 0x975de $5 ld a, [de] ld [ScriptVar], a ret .asm_975e5 ld a, $ff ld [ScriptVar], a ret ; 0x975eb Script_dotrigger: ; 0x975eb ; script command 0x14 ; parameters: ; trigger_id (SingleByteParam) ld a, [$dcb5] ld b, a ld a, [$dcb6] ld c, a jr Unknown_975fd ; 0x975f3 $8 ; 0x975f5 Script_domaptrigger: ; 0x975f5 ; script command 0x12 ; parameters: ; map_group (MapGroupParam) ; map_id (MapIdParam) ; trigger_id (SingleByteParam) call GetScriptByte ld b, a call GetScriptByte ld c, a ; fallthrough Unknown_975fd: ; 0x975fd call GetMapTrigger ld a, d or e jr z, .asm_97608 ; 0x97602 $4 call GetScriptByte ld [de], a .asm_97608 ret ; 0x97609 Script_copybytetovar: ; 0x97609 ; script command 0x19 ; parameters: ; address (RAMAddressParam) call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, [hl] ld [ScriptVar], a ret ; 0x97616 Script_copyvartobyte: ; 0x97616 ; script command 0x1a ; parameters: ; address (RAMAddressParam) call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, [ScriptVar] ld [hl], a ret ; 0x97623 Script_loadvar: ; 0x97623 ; script command 0x1b ; parameters: ; address (RAMAddressParam) ; value (SingleByteParam) call GetScriptByte ld l, a call GetScriptByte ld h, a call GetScriptByte ld [hl], a ret ; 0x97630 Script_writebyte: ; 0x97630 ; script command 0x15 ; parameters: ; value (SingleByteParam) call GetScriptByte ld [ScriptVar], a ret ; 0x97637 Script_addvar: ; 0x97637 ; script command 0x16 ; parameters: ; value (SingleByteParam) call GetScriptByte ld hl, ScriptVar add [hl] ld [hl], a ret ; 0x97640 Script_random: ; 0x97640 ; script command 0x17 ; parameters: ; input (SingleByteParam) call GetScriptByte ld [ScriptVar], a and a ret z ld c, a call Function97673 and a jr z, .asm_9765f ; 0x9764d $10 ld b, a xor a sub b ld b, a .asm_97653 push bc call Random pop bc ld a, [$ffe1] cp b jr nc, .asm_97653 ; 0x9765b $f6 jr .asm_97666 ; 0x9765d $7 .asm_9765f push bc call Random pop bc ld a, [$ffe1] .asm_97666 push af ld a, [ScriptVar] ld c, a pop af call SimpleDivide ld [ScriptVar], a ret ; 0x97673 Function97673: ; 0x97673 xor a ld b, a sub c .asm_97676 inc b sub c jr nc, .asm_97676 ; 0x97678 $fc dec b add c ret ; 0x9767d Script_checkcode: ; 0x9767d ; script command 0x1c ; parameters: ; variable_id (SingleByteParam) call GetScriptByte call Function9769e ld a, [de] ld [ScriptVar], a ret ; 0x97688 Script_writevarcode: ; 0x97688 ; script command 0x1d ; parameters: ; variable_id (SingleByteParam) call GetScriptByte call Function9769e ld a, [ScriptVar] ld [de], a ret ; 0x97693 Script_writecode: ; 0x97693 ; script command 0x1e ; parameters: ; variable_id (SingleByteParam) ; value (SingleByteParam) call GetScriptByte call Function9769e call GetScriptByte ld [de], a ret ; 0x9769e Function9769e: ; 0x9769e ld c, a callba Function80648 ret ; 0x976a6 Script_checkver: ; 0x976a6 ; script command 0x18 ld a, [Version] ld [ScriptVar], a ret ; 0x976ad Version: ; 976ad db VERSION ; 976ae Script_pokenamemem: ; 0x976ae ; script command 0x40 ; parameters: ; pokemon (PokemonParam) ; memory (SingleByteParam) call GetScriptByte and a jr nz, .asm_976b7 ; 0x976b2 $3 ld a, [ScriptVar] .asm_976b7 ld [$d265], a call GetPokemonName ld de, StringBuffer1 Unknown_976c0: ; 0x976c0 call GetScriptByte cp $3 jr c, .asm_976c8 xor a .asm_976c8 ; 976c8 Function976c8: ; 976c8 ld hl, StringBuffer3 ld bc, 19 call AddNTimes call CopyName2 ret ; 0x976d5 Script_itemtotext: ; 0x976d5 ; script command 0x41 ; parameters: ; item (ItemLabelByte) ; memory (SingleByteParam) call GetScriptByte and a jr nz, .asm_976de ; 0x976d9 $3 ld a, [ScriptVar] .asm_976de ld [$d265], a call GetItemName ld de, StringBuffer1 jr Unknown_976c0 ; 0x976e7 $d7 ; 0x976e9 Script_mapnametotext: ; 0x976e9 ; script command 0x42 ; parameters: ; memory (SingleByteParam) ld a, [$dcb5] ld b, a ld a, [$dcb6] ld c, a call GetWorldMapLocation Unknown_976f4: ; 0x976f4 ld e, a callba GetLandmarkName ld de, StringBuffer1 jp Unknown_976c0 ; 0x97701 Script_displaylocation: ; 0x97701 ; script command 0xa5 ; parameters: ; id (SingleByteParam) ; memory (SingleByteParam) call GetScriptByte jr Unknown_976f4 ; 0x97704 $ee ; 0x97706 Script_trainertotext: ; 0x97706 ; script command 0x43 ; parameters: ; trainer_id (TrainerGroupParam) ; trainer_group (TrainerIdParam) ; memory (SingleByteParam) call GetScriptByte ld c, a call GetScriptByte ld b, a callba Function3994c jr Unknown_976c0 ; 0x97714 $aa ; 0x97716 Script_name: ; 0x97716 ; script command 0xa7 ; parameters: ; type (SingleByteParam) ; id (SingleByteParam) call GetScriptByte ld [$cf61], a Unknown_9771c: ; 0x9771c call GetScriptByte ld [$cf60], a call GetName ld de, StringBuffer1 jp Unknown_976c0 ; 0x9772b Script_trainerclassname: ; 0x9772b ; script command 0xa6 ld a, $7 ld [$cf61], a jr Unknown_9771c ; 0x97730 $ea ; 0x97732 Script_readmoney: ; 0x97732 ; script command 0x3d ; parameters: ; account (SingleByteParam) ; memory (SingleByteParam) call Function97771 call Function97861 ld hl, StringBuffer1 ld bc, $4306 call PrintNum ld de, StringBuffer1 jp Unknown_976c0 ; 0x97747 Script_readcoins: ; 0x97747 ; script command 0x3e ; parameters: ; memory (SingleByteParam) call Function97771 ld hl, StringBuffer1 ld de, Coins ld bc, $4206 call PrintNum ld de, StringBuffer1 jp Unknown_976c0 ; 0x9775c Script_RAM2MEM: ; 0x9775c ; script command 0x3f ; parameters: ; memory (SingleByteParam) call Function97771 ld de, ScriptVar ld hl, StringBuffer1 ld bc, $4103 call PrintNum ld de, StringBuffer1 jp Unknown_976c0 ; 0x97771 Function97771: ; 0x97771 ld hl, StringBuffer1 ld bc, $000b ld a, "@" call ByteFill ret ; 0x9777d Script_stringtotext: ; 0x9777d ; script command 0x44 ; parameters: ; text_pointer (EncodedTextLabelParam) ; memory (SingleByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld a, [ScriptBank] ld hl, CopyName1 rst FarCall ld de, StringBuffer2 jp Unknown_976c0 ; 0x97792 Script_givepokeitem: ; 0x97792 ; script command 0x2f ; parameters: ; pointer (PointerParamToItemAndLetter) call GetScriptByte ld l, a call GetScriptByte ld h, a ld a, [ScriptBank] call GetFarByte ld b, a push bc inc hl ld bc, $0020 ld de, $d002 ld a, [ScriptBank] call FarCopyBytes pop bc callba Function446cc ret ; 0x977b7 Script_checkpokeitem: ; 0x977b7 ; script command 0x30 ; parameters: ; pointer (PointerParamToItemAndLetter) call GetScriptByte ld e, a call GetScriptByte ld d, a ld a, [ScriptBank] ld b, a callba Function44654 ret ; 0x977ca Script_giveitem: ; 0x977ca ; script command 0x1f ; parameters: ; item (ItemLabelByte) ; quantity (SingleByteParam) call GetScriptByte cp $ff jr nz, .asm_977d4 ; 0x977cf $3 ld a, [ScriptVar] .asm_977d4 ld [CurItem], a call GetScriptByte ld [$d10c], a ld hl, NumItems call ReceiveItem jr nc, .asm_977eb ; 0x977e3 $6 ld a, $1 ld [ScriptVar], a ret .asm_977eb xor a ld [ScriptVar], a ret ; 0x977f0 Script_takeitem: ; 0x977f0 ; script command 0x20 ; parameters: ; item (ItemLabelByte) ; quantity (DecimalParam) xor a ld [ScriptVar], a call GetScriptByte ld [CurItem], a call GetScriptByte ld [$d10c], a ld a, $ff ld [$d107], a ld hl, NumItems call TossItem ret nc ld a, $1 ld [ScriptVar], a ret ; 0x97812 Script_checkitem: ; 0x97812 ; script command 0x21 ; parameters: ; item (ItemLabelByte) xor a ld [ScriptVar], a call GetScriptByte ld [CurItem], a ld hl, NumItems call CheckItem ret nc ld a, 1 ld [ScriptVar], a ret ; 0x97829 Script_givemoney: ; 0x97829 ; script command 0x22 ; parameters: ; account (SingleByteParam) ; money (MoneyByteParam) call Function97861 call Function9786d callba Function15fd7 ret ; 0x97836 Script_takemoney: ; 0x97836 ; script command 0x23 ; parameters: ; account (SingleByteParam) ; money (MoneyByteParam) call Function97861 call Function9786d callba Function15ffa ret ; 0x97843 Script_checkmoney: ; 0x97843 ; script command 0x24 ; parameters: ; account (SingleByteParam) ; money (MoneyByteParam) call Function97861 call Function9786d callba Function1600b ; 0x9784f Unknown_9784f: ; 0x9784f jr c, .two jr z, .one ld a, 0 jr .done .one ld a, 1 jr .done .two ld a, 2 .done ld [ScriptVar], a ret ; 0x97861 Function97861: ; 0x97861 call GetScriptByte and a ld de, $d84e ret z ld de, $d851 ret ; 0x9786d Function9786d: ; 0x9786d ld bc, $ffc3 push bc call GetScriptByte ld [bc], a inc bc call GetScriptByte ld [bc], a inc bc call GetScriptByte ld [bc], a pop bc ret ; 0x97881 Script_givecoins: ; 0x97881 ; script command 0x25 ; parameters: ; coins (CoinByteParam) call Function978a0 callba Function1606f ret ; 0x9788b Script_takecoins: ; 0x9788b ; script command 0x26 ; parameters: ; coins (CoinByteParam) call Function978a0 callba Function1608f ret ; 0x97895 Script_checkcoins: ; 0x97895 ; script command 0x27 ; parameters: ; coins (CoinByteParam) call Function978a0 callba Function160a1 jr Unknown_9784f ; 978a0 Function978a0: ; 978a0 call GetScriptByte ld [$ffc4], a call GetScriptByte ld [$ffc3], a ld bc, $ffc3 ret ; 0x978ae Script_checktime: ; 0x978ae ; script command 0x2b ; parameters: ; time (SingleByteParam) xor a ld [ScriptVar], a callba Functionc000 call GetScriptByte and c ret z ld a, $1 ld [ScriptVar], a ret ; 0x978c3 Script_checkpoke: ; 0x978c3 ; script command 0x2c ; parameters: ; pkmn (PokemonParam) xor a ld [ScriptVar], a call GetScriptByte ld hl, PartySpecies ld de, 1 call IsInArray ret nc ld a, 1 ld [ScriptVar], a ret ; 0x978da Script_addcellnum: ; 0x978da ; script command 0x28 ; parameters: ; person (SingleByteParam) xor a ld [ScriptVar], a call GetScriptByte ld c, a callba Function90000 ret nc ld a, $1 ld [ScriptVar], a ret ; 0x978ef Script_delcellnum: ; 0x978ef ; script command 0x29 ; parameters: ; person (SingleByteParam) xor a ld [ScriptVar], a call GetScriptByte ld c, a callba Function9000f ret nc ld a, $1 ld [ScriptVar], a ret ; 0x97904 Script_checkcellnum: ; 0x97904 ; script command 0x2a ; parameters: ; person (SingleByteParam) xor a ld [ScriptVar], a call GetScriptByte ld c, a callba Function90019 ret nc ld a, $1 ld [ScriptVar], a ret ; 0x97919 Script_specialphonecall: ; 0x97919 ; script command 0x9c ; parameters: ; call_id (MultiByteParam) call GetScriptByte ld [$dc31], a call GetScriptByte ld [$dc32], a ret ; 0x97926 Script_checkphonecall: ; 0x97926 ; script command 0x9d ld a, [$dc31] and a jr z, .ok ld a, 1 .ok ld [ScriptVar], a ret ; 0x97932 Script_givepoke: ; 0x97932 ; script command 0x2d ; parameters: ; pokemon (PokemonParam) ; level (DecimalParam) ; item (ItemLabelByte) ; trainer (DecimalParam) ; trainer_name_pointer (MultiByteParam) ; pkmn_nickname (MultiByteParam) call GetScriptByte ld [CurPartySpecies], a call GetScriptByte ld [CurPartyLevel], a call GetScriptByte ld [CurItem], a call GetScriptByte and a ld b, a jr z, .ok ld hl, ScriptPos ld e, [hl] inc hl ld d, [hl] call GetScriptByte call GetScriptByte call GetScriptByte call GetScriptByte .ok callba Functione277 ld a, b ld [ScriptVar], a ret ; 0x97968 Script_giveegg: ; 0x97968 ; script command 0x2e ; parameters: ; pkmn (PokemonParam) ; level (DecimalParam) xor a ld [ScriptVar], a ld [$cf5f], a call GetScriptByte ld [CurPartySpecies], a call GetScriptByte ld [CurPartyLevel], a callba Functiondf8c ret nc ld a, $2 ld [ScriptVar], a ret ; 0x97988 Script_setevent: ; 0x97988 ; script command 0x33 ; parameters: ; bit_number (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld b, $1 call EventFlagAction ret ; 0x97996 Script_clearevent: ; 0x97996 ; script command 0x32 ; parameters: ; bit_number (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld b, $0 call EventFlagAction ret ; 0x979a4 Script_checkevent: ; 0x979a4 ; script command 0x31 ; parameters: ; bit_number (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld b, $2 call EventFlagAction ld a, c and a jr z, .asm_979b7 ; 0x979b3 $2 ld a, $1 .asm_979b7 ld [ScriptVar], a ret ; 0x979bb Script_setflag: ; 0x979bb ; script command 0x36 ; parameters: ; bit_number (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld b, $1 call Function979ee ret ; 0x979c9 Script_clearflag: ; 0x979c9 ; script command 0x35 ; parameters: ; bit_number (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld b, $0 call Function979ee ret ; 0x979d7 Script_checkflag: ; 0x979d7 ; script command 0x34 ; parameters: ; bit_number (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld b, $2 call Function979ee ld a, c and a jr z, .asm_979ea ; 0x979e6 $2 ld a, $1 .asm_979ea ld [ScriptVar], a ret ; 0x979ee Function979ee: ; 0x979ee callba EngineFlagAction ret ; 0x979f5 Script_wildoff: ; 0x979f5 ; script command 0x38 ld hl, StatusFlags set 5, [hl] ret ; 0x979fb Script_wildon: ; 0x979fb ; script command 0x37 ld hl, StatusFlags res 5, [hl] ret ; 0x97a01 Script_xycompare: ; 0x97a01 ; script command 0x39 ; parameters: ; pointer (MultiByteParam) call GetScriptByte ld [$d453], a call GetScriptByte ld [$d454], a ret ; 0x97a0e Script_warpfacing: ; 0x97a0e ; script command 0xa3 ; parameters: ; facing (SingleByteParam) ; map_group (MapGroupParam) ; map_id (MapIdParam) ; x (SingleByteParam) ; y (SingleByteParam) call GetScriptByte and $3 ld c, a ld a, [$d45b] set 5, a or c ld [$d45b], a ; 0x97a1d Script_warp: ; 0x97a1d ; script command 0x3c ; parameters: ; map_group (MapGroupParam) ; map_id (MapIdParam) ; x (SingleByteParam) ; y (SingleByteParam) call GetScriptByte and a jr z, .asm_97a4a ; 0x97a21 $27 ld [$dcb5], a call GetScriptByte ld [$dcb6], a call GetScriptByte ld [$dcb8], a call GetScriptByte ld [$dcb7], a ld a, $ff ld [$d001], a ld a, $f1 ld [$ff9f], a ld a, $1 call Function261b call StopScript ret .asm_97a4a call GetScriptByte call GetScriptByte call GetScriptByte ld a, $ff ld [$d001], a ld a, $fb ld [$ff9f], a ld a, $1 call Function261b call StopScript ret ; 0x97a65 Script_warpmod: ; 0x97a65 ; script command 0x3a ; parameters: ; warp_id (SingleByteParam) ; map_group (MapGroupParam) ; map_id (MapIdParam) call GetScriptByte ld [$dcac], a call GetScriptByte ld [$dcad], a call GetScriptByte ld [$dcae], a ret ; 0x97a78 Script_blackoutmod: ; 0x97a78 ; script command 0x3b ; parameters: ; map_group (MapGroupParam) ; map_id (MapIdParam) call GetScriptByte ld [$dcb2], a call GetScriptByte ld [$dcb3], a ret ; 0x97a85 Script_reloadmapmusic: ; 0x97a85 ; script command 0x83 ld a, $1 ld [$c2c1], a ret ; 0x97a8b Script_writecmdqueue: ; 0x97a8b ; script command 0x7d ; parameters: ; queue_pointer (MultiByteParam) call GetScriptByte ld e, a call GetScriptByte ld d, a ld a, [ScriptBank] ld b, a callba Function97e31 ret ; 0x97a9e Script_delcmdqueue: ; 0x97a9e ; script command 0x7e ; parameters: ; byte (SingleByteParam) xor a ld [ScriptVar], a call GetScriptByte ld b, a callba Function97e5c ret c ld a, $1 ld [ScriptVar], a ret ; 0x97ab3 Script_changemap: ; 0x97ab3 ; script command 0x79 ; parameters: ; map_data_pointer (MapDataPointerParam) call GetScriptByte ld [$d1a0], a call GetScriptByte ld [$d1a1], a call GetScriptByte ld [$d1a2], a call Function24e4 call Function2879 ret ; 0x97acc Script_changeblock: ; 0x97acc ; script command 0x7a ; parameters: ; x (SingleByteParam) ; y (SingleByteParam) ; block (SingleByteParam) call GetScriptByte add $4 ld d, a call GetScriptByte add $4 ld e, a call Function2a66 call GetScriptByte ld [hl], a call Function2879 ret ; 0x97ae3 Script_reloadmappart:: ; 0x97ae3 ; script command 0x7c xor a ld [$ffd4], a call Function2173 call Function2914 callba Function104061 call Function1ad2 ret ; 0x97af6 Script_warpcheck: ; 0x97af6 ; script command 0x8e call Function224a ret nc callba Function966d0 ret ; 0x97b01 Function97b01: ; 0x97b01 callba Function966d0 ret ; 0x97b08 Script_newloadmap: ; 0x97b08 ; script command 0x8a ; parameters: ; which_method (SingleByteParam) call GetScriptByte ld [$ff9f], a ld a, $1 call Function261b call StopScript ret ; 0x97b16 Script_reloadandreturn: ; 0x97b16 ; script command 0x92 call Script_newloadmap jp Script_end ; 0x97b1c Script_loadfont: ; 0x97b1c ; script command 0x47 call Function2e08 ret ; 0x97b20 Script_refreshscreen: ; 0x97b20 ; script command 0x48 ; parameters: ; dummy (SingleByteParam) call ResetWindow call GetScriptByte ret ; 0x97b27 Script_loadbytec1ce: ; 0x97b27 ; script command 0x4a ; parameters: ; byte (SingleByteParam) call GetScriptByte ld [$c2cf], a ret ; 0x97b2e LoadMoveSpritesScript: ; 97b2e loadmovesprites ; 97b2f Script_loadmovesprites: ; 0x97b2f ; script command 0x49 call Function2e20 call Function2dcf ret ; 0x97b36 Script_passtoengine: ; 0x97b36 ; script command 0x89 ; parameters: ; data_pointer (PointerLabelBeforeBank) call GetScriptByte push af call GetScriptByte ld l, a call GetScriptByte ld h, a pop af call StartAutoInput ret ; 0x97b47 Script_pause: ; 0x97b47 ; script command 0x8b ; parameters: ; length (DecimalParam) call GetScriptByte and a jr z, .asm_97b50 ; 0x97b4b $3 ld [ScriptDelay], a .asm_97b50 ld c, 2 call DelayFrames ld hl, ScriptDelay dec [hl] jr nz, .asm_97b50 ; 0x97b59 $f5 ret ; 0x97b5c Script_deactivatefacing: ; 0x97b5c ; script command 0x8c ; parameters: ; time (SingleByteParam) call GetScriptByte and a jr z, .asm_97b65 ; 0x97b60 $3 ld [ScriptDelay], a .asm_97b65 ld a, SCRIPT_WAIT ld [ScriptMode], a call StopScript ret ; 0x97b6e Script_ptpriorityjump: ; 0x97b6e ; script command 0x8f ; parameters: ; pointer (ScriptPointerLabelParam) call StopScript jp Script_2jump ; 0x97b74 Script_end: ; 0x97b74 ; script command 0x91 call ExitScriptSubroutine jr c, .asm_97b7a ret .asm_97b7a xor a ld [ScriptRunning], a ld a, SCRIPT_OFF ld [ScriptMode], a ld hl, ScriptFlags res 0, [hl] call StopScript ret ; 0x97b8c Script_return: ; 0x97b8c ; script command 0x90 call ExitScriptSubroutine jr c, .asm_97b91 .asm_97b91 ld hl, ScriptFlags res 0, [hl] call StopScript ret ; 0x97b9a ExitScriptSubroutine: ; 0x97b9a ; Return carry if there's no parent to return to. ld hl, $d43c ld a, [hl] and a jr z, .asm_97bbe ; 0x97b9f $1d dec [hl] ld e, [hl] ld d, $0 ld hl, $d43d add hl, de add hl, de add hl, de ld a, [hli] ld b, a and $7f ld [ScriptBank], a ld a, [hli] ld e, a ld [ScriptPos], a ld a, [hl] ld d, a ld [ScriptPos + 1], a and a ret .asm_97bbe scf ret ; 0x97bc0 Script_resetfuncs: ; 0x97bc0 ; script command 0x93 xor a ld [$d43c], a ld [ScriptRunning], a ld a, SCRIPT_OFF ld [ScriptMode], a ld hl, ScriptFlags res 0, [hl] call StopScript ret ; 0x97bd5 Script_halloffame: ; 0x97bd5 ; script command 0xa1 ld hl, $cfbc res 0, [hl] callba Mobile_HallOfFame callba Mobile_HallOfFame2 callba HallOfFame ld hl, $cfbc set 0, [hl] jr DisplayCredits ; 0x97bf3 Script_credits: ; 0x97bf3 ; script command 0xa2 callba Function86455 ; fallthrough DisplayCredits: call Script_resetfuncs ld a, $3 call Function261b call StopScript ret ; 0x97c051 Script_wait: ; 0x97c05 ; script command 0xa8 ; parameters: ; unknown (SingleByteParam) push bc call GetScriptByte .asm_97c09 push af ld c, 6 call DelayFrames pop af dec a jr nz, .asm_97c09 ; 0x97c11 $f6 pop bc ret ; 0x97c15 Script_unknown0xa9: ; 0x97c15 ; script command 0xa9 callba Function4cffe ld a, c ld [ScriptVar], a ret ; 0x97c20 Function97c20: ; 97c20 ld a, [.byte] ld [ScriptVar], a ret .byte db 0 ; 97c28