mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
023cfdbb05
The PartyMon struct is really the box struct with volatile variables like status added. Some other labels have been reworked. Move structs no longer have explicit labels since their location is arbitrary and usually shared.
3244 lines
48 KiB
NASM
3244 lines
48 KiB
NASM
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 GiveEgg
|
|
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
|
|
|