mirror of
https://github.com/rh-hideout/pokeemerald-expansion
synced 2025-10-06 02:22:55 +02:00
2527 lines
43 KiB
PHP
2527 lines
43 KiB
PHP
@ commands
|
|
.macro attackcanceler
|
|
.byte 0x0
|
|
.endm
|
|
|
|
.macro accuracycheck failInstr:req, move:req
|
|
.byte 0x1
|
|
.4byte \failInstr
|
|
.2byte \move
|
|
.endm
|
|
|
|
.macro attackstring
|
|
.byte 0x2
|
|
.endm
|
|
|
|
.macro ppreduce
|
|
.byte 0x3
|
|
.endm
|
|
|
|
.macro critcalc
|
|
.byte 0x4
|
|
.endm
|
|
|
|
.macro damagecalc
|
|
.byte 0x5
|
|
.endm
|
|
|
|
.macro typecalc
|
|
.byte 0x6
|
|
.endm
|
|
|
|
.macro adjustdamage
|
|
.byte 0x7
|
|
.endm
|
|
|
|
.macro multihitresultmessage
|
|
.byte 0x8
|
|
.endm
|
|
|
|
.macro attackanimation
|
|
.byte 0x9
|
|
.endm
|
|
|
|
.macro waitanimation
|
|
.byte 0xa
|
|
.endm
|
|
|
|
.macro healthbarupdate battler:req
|
|
.byte 0xb
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro datahpupdate battler:req
|
|
.byte 0xc
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro critmessage
|
|
.byte 0xd
|
|
.endm
|
|
|
|
.macro effectivenesssound
|
|
.byte 0xe
|
|
.endm
|
|
|
|
.macro resultmessage
|
|
.byte 0xf
|
|
.endm
|
|
|
|
.macro printstring id:req
|
|
.byte 0x10
|
|
.2byte \id
|
|
.endm
|
|
|
|
.macro printsavedstring
|
|
printstring 0
|
|
.endm
|
|
|
|
.macro printselectionstring id:req
|
|
.byte 0x11
|
|
.2byte \id
|
|
.endm
|
|
|
|
.macro waitmessage time:req
|
|
.byte 0x12
|
|
.2byte \time
|
|
.endm
|
|
|
|
.macro printfromtable ptr:req
|
|
.byte 0x13
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro printselectionstringfromtable ptr:req
|
|
.byte 0x14
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro setadditionaleffects
|
|
1:
|
|
.byte 0x15
|
|
jumpifhalfword CMP_EQUAL, sMOVE_EFFECT, MOVE_EFFECT_CONTINUE, 1b
|
|
.endm
|
|
|
|
.macro seteffectprimary battler:req, effectBattler:req, moveEffect=0
|
|
.if \moveEffect != 0
|
|
setmoveeffect \moveEffect
|
|
.endif
|
|
.byte 0x16
|
|
.byte \battler
|
|
.byte \effectBattler
|
|
.endm
|
|
|
|
.macro seteffectsecondary battler:req, effectBattler:req, moveEffect=0
|
|
.if \moveEffect != 0
|
|
setmoveeffect \moveEffect
|
|
.endif
|
|
.byte 0x17
|
|
.byte \battler
|
|
.byte \effectBattler
|
|
.endm
|
|
|
|
.macro clearvolatile battler:req, volatile:req
|
|
.byte 0x18
|
|
.byte \battler
|
|
.byte \volatile
|
|
.endm
|
|
|
|
.macro tryfaintmon battler:req
|
|
.byte 0x19
|
|
.byte \battler
|
|
.byte FALSE
|
|
.4byte NULL
|
|
.endm
|
|
|
|
.macro tryfaintmon_spikes battler:req, instr:req
|
|
.byte 0x19
|
|
.byte \battler
|
|
.byte TRUE
|
|
.4byte \instr
|
|
.endm
|
|
|
|
.macro dofaintanimation battler:req
|
|
.byte 0x1a
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro cleareffectsonfaint battler:req
|
|
.byte 0x1b
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro jumpifstatus battler:req, flags:req, jumpInstr:req
|
|
.byte 0x1c
|
|
.byte \battler
|
|
.4byte \flags
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifvolatile battler:req, volatile:req, jumpInstr:req
|
|
.byte 0x1d
|
|
.byte \battler
|
|
.byte \volatile
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifability battler:req, ability:req, jumpInstr:req
|
|
.byte 0x1e
|
|
.byte \battler
|
|
.2byte \ability
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifsideaffecting battler:req, flags:req, jumpInstr:req
|
|
.byte 0x1f
|
|
.byte \battler
|
|
.4byte \flags
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifstat battler:req, comparison:req, stat:req, value:req, jumpInstr:req
|
|
.byte 0x20
|
|
.byte \battler
|
|
.byte \comparison
|
|
.byte \stat
|
|
.byte \value
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro unused_0x21
|
|
.byte 0x21
|
|
.endm
|
|
|
|
.macro jumpbasedontype battler:req, type:req, jumpIfType:req, jumpInstr:req
|
|
.byte 0x22
|
|
.byte \battler
|
|
.byte \type
|
|
.byte \jumpIfType
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpiftype battler:req, type:req, jumpInstr:req
|
|
jumpbasedontype \battler, \type, TRUE, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifnottype battler:req, type:req, jumpInstr:req
|
|
jumpbasedontype \battler, \type, FALSE, \jumpInstr
|
|
.endm
|
|
|
|
.macro getexp battler:req
|
|
.byte 0x23
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro checkteamslost jumpInstr:req
|
|
.byte 0x24
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro movevaluescleanup
|
|
.byte 0x25
|
|
.endm
|
|
|
|
.macro setmultihit value:req
|
|
.byte 0x26
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro decrementmultihit loopInstr:req
|
|
.byte 0x27
|
|
.4byte \loopInstr
|
|
.endm
|
|
|
|
.macro goto instr:req
|
|
.byte 0x28
|
|
.4byte \instr
|
|
.endm
|
|
|
|
.macro jumpifbyte comparison:req, bytePtr:req, value:req, jumpInstr:req
|
|
.byte 0x29
|
|
.byte \comparison
|
|
.4byte \bytePtr
|
|
.byte \value
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifhalfword comparison:req, halfwordPtr:req, value:req, jumpInstr:req
|
|
.byte 0x2a
|
|
.byte \comparison
|
|
.4byte \halfwordPtr
|
|
.2byte \value
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifword comparison:req, wordPtr:req, value:req, jumpInstr:req
|
|
.byte 0x2b
|
|
.byte \comparison
|
|
.4byte \wordPtr
|
|
.4byte \value
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifarrayequal array1:req, array2:req, size:req, jumpInstr:req
|
|
.byte 0x2c
|
|
.4byte \array1
|
|
.4byte \array2
|
|
.byte \size
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifarraynotequal array1:req, array2:req, size:req, jumpInstr:req
|
|
.byte 0x2d
|
|
.4byte \array1
|
|
.4byte \array2
|
|
.byte \size
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro setbyte bytePtr:req, value:req
|
|
.byte 0x2e
|
|
.4byte \bytePtr
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro addbyte bytePtr:req, value:req
|
|
.byte 0x2f
|
|
.4byte \bytePtr
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro subbyte bytePtr:req, value:req
|
|
.byte 0x30
|
|
.4byte \bytePtr
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro copyarray dest:req, src:req, size:req
|
|
.byte 0x31
|
|
.4byte \dest
|
|
.4byte \src
|
|
.byte \size
|
|
.endm
|
|
|
|
.macro copyarraywithindex dest:req, src:req, indexPtr:req, size:req
|
|
.byte 0x32
|
|
.4byte \dest
|
|
.4byte \src
|
|
.4byte \indexPtr
|
|
.byte \size
|
|
.endm
|
|
|
|
.macro orbyte bytePtr:req, value:req
|
|
.byte 0x33
|
|
.4byte \bytePtr
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro orhalfword halfwordPtr:req, value:req
|
|
.byte 0x34
|
|
.4byte \halfwordPtr
|
|
.2byte \value
|
|
.endm
|
|
|
|
.macro orword wordPtr:req, value:req
|
|
.byte 0x35
|
|
.4byte \wordPtr
|
|
.4byte \value
|
|
.endm
|
|
|
|
.macro bicbyte bytePtr:req, value:req
|
|
.byte 0x36
|
|
.4byte \bytePtr
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro bichalfword halfwordPtr:req, value:req
|
|
.byte 0x37
|
|
.4byte \halfwordPtr
|
|
.2byte \value
|
|
.endm
|
|
|
|
.macro bicword wordPtr:req, value:req
|
|
.byte 0x38
|
|
.4byte \wordPtr
|
|
.4byte \value
|
|
.endm
|
|
|
|
.macro pause frames:req
|
|
.byte 0x39
|
|
.2byte \frames
|
|
.endm
|
|
|
|
.macro setchargingturn
|
|
.byte 0x40
|
|
.endm
|
|
|
|
.macro waitstate
|
|
.byte 0x3a
|
|
.endm
|
|
|
|
.macro absorbhealthbarupdate battler:req
|
|
.byte 0x3b
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro return
|
|
.byte 0x3c
|
|
.endm
|
|
|
|
.macro end
|
|
.byte 0x3d
|
|
.endm
|
|
|
|
.macro end2
|
|
.byte 0x3e
|
|
.endm
|
|
|
|
.macro end3
|
|
.byte 0x3f
|
|
.endm
|
|
|
|
.macro call instr:req
|
|
.byte 0x41
|
|
.4byte \instr
|
|
.endm
|
|
|
|
.macro setroost
|
|
.byte 0x42
|
|
.endm
|
|
|
|
.macro jumpifabilitypresent ability:req, jumpInstr:req
|
|
.byte 0x43
|
|
.2byte \ability
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro endselectionscript
|
|
.byte 0x44
|
|
.endm
|
|
|
|
.macro playanimation battler:req, animId:req, argPtr=NULL
|
|
.byte 0x45
|
|
.byte \battler
|
|
.byte \animId
|
|
.4byte \argPtr
|
|
.endm
|
|
|
|
.macro playanimation_var battler:req, animIdPtr:req, argPtr=NULL
|
|
.byte 0x46
|
|
.byte \battler
|
|
.4byte \animIdPtr
|
|
.4byte \argPtr
|
|
.endm
|
|
|
|
.macro jumpfifsemiinvulnerable battler:req, state:req, jumpInstr:req
|
|
.byte 0x47
|
|
.byte \battler
|
|
.byte \state
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro unused_0x48
|
|
.byte 0x48
|
|
.endm
|
|
|
|
.macro moveend endMode:req, endState:req
|
|
.byte 0x49
|
|
.byte \endMode
|
|
.byte \endState
|
|
.endm
|
|
|
|
@ Help macros for 5 uses of moveend command
|
|
|
|
@ All cases
|
|
.macro moveendall
|
|
setbyte sMOVEEND_STATE, 0
|
|
moveend 0, 0
|
|
.endm
|
|
|
|
@ Chosen case
|
|
.macro moveendcase case:req
|
|
setbyte sMOVEEND_STATE, \case
|
|
moveend 1, 0
|
|
.endm
|
|
|
|
@ All cases from (inclusive)
|
|
.macro moveendfrom from:req
|
|
setbyte sMOVEEND_STATE, \from
|
|
moveend 0, 0
|
|
.endm
|
|
|
|
@ All cases from 0 to (not inclusive)
|
|
.macro moveendto to:req
|
|
setbyte sMOVEEND_STATE, 0
|
|
moveend 2, \to
|
|
.endm
|
|
|
|
@ Cases from (inclusive) to (not inclusive)
|
|
.macro moveendfromto from:req, to:req
|
|
setbyte sMOVEEND_STATE, \from
|
|
moveend 2, \to
|
|
.endm
|
|
|
|
.macro sethealblock failInstr:req
|
|
.byte 0x4a
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro returnatktoball
|
|
.byte 0x4b
|
|
.endm
|
|
|
|
.macro getswitchedmondata battler:req
|
|
.byte 0x4c
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro switchindataupdate battler:req
|
|
.byte 0x4d
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro switchinanim battler:req, dontClearTransform:req, dontClearSubstitute:req
|
|
.byte 0x4e
|
|
.byte \battler
|
|
.byte \dontClearTransform
|
|
.byte \dontClearSubstitute
|
|
.endm
|
|
|
|
.macro jumpifcantswitch battler:req, jumpInstr:req
|
|
.byte 0x4f
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro openpartyscreen battler:req, failInstr:req
|
|
.byte 0x50
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro switchhandleorder battler:req, state:req
|
|
.byte 0x51
|
|
.byte \battler
|
|
.byte \state
|
|
.endm
|
|
|
|
.macro switchineffects battler:req
|
|
.byte 0x52
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro trainerslidein position:req
|
|
.byte 0x53
|
|
.byte \position
|
|
.endm
|
|
|
|
.macro playse song:req
|
|
.byte 0x54
|
|
.2byte \song
|
|
.endm
|
|
|
|
.macro fanfare song:req
|
|
.byte 0x55
|
|
.2byte \song
|
|
.endm
|
|
|
|
.macro playfaintcry battler:req
|
|
.byte 0x56
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro endlinkbattle
|
|
.byte 0x57
|
|
.endm
|
|
|
|
.macro returntoball battler:req, changingForm:req
|
|
.byte 0x58
|
|
.byte \battler
|
|
.byte \changingForm
|
|
.endm
|
|
|
|
.macro handlelearnnewmove learnedMoveInstr:req, nothingToLearnInstr:req, isFirstMove:req
|
|
.byte 0x59
|
|
.4byte \learnedMoveInstr
|
|
.4byte \nothingToLearnInstr
|
|
.byte \isFirstMove
|
|
.endm
|
|
|
|
.macro yesnoboxlearnmove forgotMoveInstr:req
|
|
.byte 0x5a
|
|
.4byte \forgotMoveInstr
|
|
.endm
|
|
|
|
.macro yesnoboxstoplearningmove noInstr:req
|
|
.byte 0x5b
|
|
.4byte \noInstr
|
|
.endm
|
|
|
|
.macro hitanimation battler:req
|
|
.byte 0x5c
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro getmoneyreward
|
|
.byte 0x5d
|
|
.endm
|
|
|
|
.macro updatebattlermoves battler:req
|
|
.byte 0x5e
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro swapattackerwithtarget
|
|
.byte 0x5f
|
|
.endm
|
|
|
|
.macro incrementgamestat stat:req
|
|
.byte 0x60
|
|
.byte \stat
|
|
.endm
|
|
|
|
.macro drawpartystatussummary battler:req
|
|
.byte 0x61
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro hidepartystatussummary battler:req
|
|
.byte 0x62
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro jumptocalledmove notChosenMove:req
|
|
.byte 0x63
|
|
.byte \notChosenMove
|
|
.endm
|
|
|
|
.macro statusanimation battler:req, status=0, isVolatile=FALSE
|
|
.byte 0x64
|
|
.byte \battler
|
|
.4byte \status
|
|
.byte \isVolatile
|
|
.endm
|
|
|
|
.macro volatileanimation battler:req, volatile:req
|
|
statusanimation \battler, \volatile, TRUE
|
|
.endm
|
|
|
|
.macro yesnobox
|
|
.byte 0x67
|
|
.endm
|
|
|
|
.macro cancelallactions
|
|
.byte 0x68
|
|
.endm
|
|
|
|
.macro setgravity failInstr:req
|
|
.byte 0x69
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro removeitem battler:req
|
|
.byte 0x6a
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro atknameinbuff1
|
|
.byte 0x6b
|
|
.endm
|
|
|
|
.macro drawlvlupbox
|
|
.byte 0x6c
|
|
.endm
|
|
|
|
.macro resetsentmonsvalue
|
|
.byte 0x6d
|
|
.endm
|
|
|
|
.macro setatktoplayer0
|
|
.byte 0x6e
|
|
.endm
|
|
|
|
.macro makevisible battler:req
|
|
.byte 0x6f
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro recordability battler:req
|
|
.byte 0x70
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro buffermovetolearn
|
|
.byte 0x71
|
|
.endm
|
|
|
|
.macro jumpifplayerran jumpInstr:req
|
|
.byte 0x72
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro hpthresholds battler:req
|
|
.byte 0x73
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro hpthresholds2 battler:req
|
|
.byte 0x74
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro useitemonopponent
|
|
.byte 0x75
|
|
.endm
|
|
|
|
.macro various battler:req, id:req
|
|
.byte 0x76
|
|
.byte \battler
|
|
.byte \id
|
|
.endm
|
|
|
|
.macro setprotectlike
|
|
.byte 0x77
|
|
.endm
|
|
|
|
.macro tryexplosion
|
|
.byte 0x78
|
|
.endm
|
|
|
|
.macro setatkhptozero
|
|
.byte 0x79
|
|
.endm
|
|
|
|
.macro jumpifnexttargetvalid jumpInstr:req
|
|
.byte 0x7a
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryhealhalfhealth failInstr:req, battler:req
|
|
.byte 0x7b
|
|
.4byte \failInstr
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro trymirrormove
|
|
.byte 0x7c
|
|
.endm
|
|
|
|
.macro setfieldweather weather:req
|
|
.byte 0x7d
|
|
.byte \weather
|
|
.endm
|
|
|
|
.macro setreflect
|
|
.byte 0x7e
|
|
.endm
|
|
|
|
.macro setseeded
|
|
.byte 0x7f
|
|
.endm
|
|
|
|
.macro manipulatedamage mode:req
|
|
.byte 0x80
|
|
.byte \mode
|
|
.endm
|
|
|
|
.macro trysetrest failInstr:req
|
|
.byte 0x81
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifnotfirstturn jumpInstr:req
|
|
.byte 0x82
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro unused_0x83
|
|
.byte 0x83
|
|
.endm
|
|
|
|
.macro jumpifuproarwakes jumpInstr:req
|
|
.byte 0x84
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro stockpile id:req
|
|
.byte 0x85
|
|
.byte \id
|
|
.endm
|
|
|
|
.macro stockpiletobasedamage failInstr:req
|
|
.byte 0x86
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro stockpiletohpheal failInstr:req
|
|
.byte 0x87
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro removestockpilecounters
|
|
callnative BS_RemoveStockpileCounters
|
|
.endm
|
|
|
|
.macro setdrainedhp
|
|
.byte 0x88
|
|
.endm
|
|
|
|
.macro statbuffchange battler:req, flags:req, failInstr:req, stats=0
|
|
.byte 0x89
|
|
.byte \battler
|
|
.2byte \flags
|
|
.4byte \failInstr
|
|
.byte \stats
|
|
.endm
|
|
|
|
.macro normalisebuffs
|
|
.byte 0x8a
|
|
.endm
|
|
|
|
.macro setbide
|
|
.byte 0x8b
|
|
.endm
|
|
|
|
.macro twoturnmoveschargestringandanimation
|
|
.byte 0x8c
|
|
.4byte 1f @animation then attack string
|
|
@default - attack string then animation
|
|
printsavedstring
|
|
waitmessage B_WAIT_TIME_LONG
|
|
attackanimation
|
|
waitanimation
|
|
goto 2f
|
|
1:
|
|
attackanimation
|
|
waitanimation
|
|
printsavedstring
|
|
waitmessage B_WAIT_TIME_LONG
|
|
2:
|
|
.endm
|
|
|
|
.macro trynonvolatilestatus
|
|
.byte 0x8d
|
|
.endm
|
|
|
|
.macro initmultihitstring
|
|
.byte 0x8e
|
|
.endm
|
|
|
|
.macro forcerandomswitch failInstr:req
|
|
.byte 0x8f
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryconversiontypechange failInstr:req
|
|
.byte 0x90
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro givepaydaymoney
|
|
.byte 0x91
|
|
.endm
|
|
|
|
.macro setlightscreen
|
|
.byte 0x92
|
|
.endm
|
|
|
|
.macro tryKO failInstr:req
|
|
.byte 0x93
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro checknonvolatiletrigger nonVolatile:req, failInstr:req
|
|
.byte 0x94
|
|
.2byte \nonVolatile
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro copybidedmg
|
|
.byte 0x95
|
|
.endm
|
|
|
|
.macro animatewildpokemonafterfailedpokeball battler:req
|
|
.byte 0x96
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro tryinfatuating failInstr:req
|
|
.byte 0x97
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro updatestatusicon battler:req
|
|
.byte 0x98
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro setmist
|
|
.byte 0x99
|
|
.endm
|
|
|
|
.macro setfocusenergy battler:req
|
|
.byte 0x9a
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro transformdataexecution
|
|
.byte 0x9b
|
|
.endm
|
|
|
|
.macro setsubstitute
|
|
.byte 0x9c
|
|
.endm
|
|
|
|
.macro mimicattackcopy failInstr:req
|
|
.byte 0x9d
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro metronome
|
|
.byte 0x9e
|
|
.endm
|
|
|
|
.macro unused_0x9f
|
|
.byte 0x9f
|
|
.endm
|
|
|
|
.macro unused_0xA0
|
|
.byte 0xa0
|
|
.endm
|
|
|
|
.macro counterdamagecalculator failInstr:req
|
|
.byte 0xa1
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro mirrorcoatdamagecalculator failInstr:req
|
|
.byte 0xa2
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro disablelastusedattack failInstr:req
|
|
.byte 0xa3
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetencore failInstr:req
|
|
.byte 0xa4
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro painsplitdmgcalc failInstr:req
|
|
.byte 0xa5
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro settypetorandomresistance failInstr:req
|
|
.byte 0xa6
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setalwayshitflag
|
|
.byte 0xa7
|
|
.endm
|
|
|
|
.macro copymovepermanently failInstr:req
|
|
.byte 0xa8
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trychoosesleeptalkmove failInstr:req
|
|
.byte 0xa9
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetdestinybond failInstr:req
|
|
.byte 0xaa
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetdestinybondtohappen
|
|
.byte 0xab
|
|
.endm
|
|
|
|
.macro settailwind failInstr:req
|
|
.byte 0xac
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryspiteppreduce failInstr:req
|
|
.byte 0xad
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro healpartystatus
|
|
.byte 0xae
|
|
.endm
|
|
|
|
.macro cursetarget failInstr:req
|
|
.byte 0xaf
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetspikes failInstr:req
|
|
.byte 0xb0
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setvolatile battler:req, volatile:req, value=TRUE
|
|
.byte 0xb1
|
|
.byte \battler
|
|
.byte \volatile
|
|
.byte \value
|
|
.endm
|
|
|
|
.macro trysetperishsong failInstr:req
|
|
.byte 0xb2
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro handlerollout
|
|
.byte 0xb3
|
|
.endm
|
|
|
|
.macro jumpifconfusedandstatmaxed stat:req, jumpInstr:req
|
|
.byte 0xb4
|
|
.byte \stat
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro handlefurycutter
|
|
.byte 0xb5
|
|
.endm
|
|
|
|
.macro setembargo failInstr:req
|
|
.byte 0xb6
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro presentdamagecalculation
|
|
.byte 0xb7
|
|
.endm
|
|
|
|
.macro setsafeguard
|
|
.byte 0xb8
|
|
.endm
|
|
|
|
.macro magnitudedamagecalculation
|
|
.byte 0xb9
|
|
.endm
|
|
|
|
.macro jumpifnopursuitswitchdmg jumpInstr:req
|
|
.byte 0xba
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryrestorehpberry
|
|
.byte 0xbb
|
|
.endm
|
|
|
|
.macro halvehp failInstr:req
|
|
.byte 0xbc
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro copyfoestats
|
|
.byte 0xbd
|
|
.endm
|
|
|
|
.macro rapidspinfree
|
|
.byte 0xbe
|
|
.endm
|
|
|
|
.macro recoverbasedonsunlight failInstr:req
|
|
.byte 0xc0
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setstickyweb failInstr:req
|
|
.byte 0xc1
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro selectfirstvalidtarget
|
|
.byte 0xc2
|
|
.endm
|
|
|
|
.macro trysetfutureattack failInstr:req
|
|
.byte 0xc3
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trydobeatup endInstr, failInstr
|
|
.byte 0xc4
|
|
.4byte \endInstr
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setsemiinvulnerablebit clear=FALSE
|
|
.byte 0xc5
|
|
.byte \clear
|
|
.endm
|
|
|
|
.macro clearsemiinvulnerablebit
|
|
setsemiinvulnerablebit TRUE
|
|
.endm
|
|
|
|
.macro tryfiretwoturnmovenowbyeffect battler:req, checkChargeTurnEffects:req, jumpInstr:req
|
|
.byte 0xc6
|
|
.byte \battler
|
|
.byte \checkChargeTurnEffects
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryfiretwoturnmovewithoutcharging battler:req, jumpInstr:req
|
|
tryfiretwoturnmovenowbyeffect \battler, TRUE, \jumpInstr
|
|
.endm
|
|
|
|
.macro tryfiretwoturnmoveaftercharging battler:req, jumpInstr:req
|
|
tryfiretwoturnmovenowbyeffect \battler, FALSE, \jumpInstr
|
|
.endm
|
|
|
|
.macro unused_0xC7
|
|
.byte 0xc7
|
|
.endm
|
|
|
|
.macro unused_c8
|
|
.byte 0xc8
|
|
.endm
|
|
|
|
.macro trymemento failInstr:req
|
|
.byte 0xc9
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setforcedtarget
|
|
.byte 0xca
|
|
.endm
|
|
|
|
.macro setcharge battler:req
|
|
.byte 0xcb
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro callenvironmentattack
|
|
.byte 0xcc
|
|
.endm
|
|
|
|
.macro curestatuswithmove failInstr:req
|
|
.byte 0xcd
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro settorment failInstr:req
|
|
.byte 0xce
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifnodamage jumpInstr:req
|
|
.byte 0xcf
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro settaunt failInstr:req
|
|
.byte 0xd0
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysethelpinghand failInstr:req
|
|
.byte 0xd1
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryswapitems failInstr:req
|
|
.byte 0xd2
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trycopyability battler:req, failInstr:req
|
|
.byte 0xd3
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trywish failInstr:req
|
|
.byte 0xd4
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro settoxicspikes failInstr:req
|
|
.byte 0xd5
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setgastroacid failInstr:req
|
|
.byte 0xd6
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setyawn failInstr:req
|
|
.byte 0xd7
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setdamagetohealthdifference failInstr:req
|
|
.byte 0xd8
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setroom
|
|
.byte 0xd9
|
|
.endm
|
|
|
|
.macro tryswapabilities failInstr:req
|
|
.byte 0xda
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryimprison failInstr:req
|
|
.byte 0xdb
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setstealthrock failInstr:req
|
|
.byte 0xdc
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetvolatile battler:req, _volatile:req, failInstr:req
|
|
.byte 0xdd
|
|
.byte \battler
|
|
.byte \_volatile
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro assistattackselect failInstr:req
|
|
.byte 0xde
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetmagiccoat failInstr:req
|
|
.byte 0xdf
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetsnatch failInstr:req
|
|
.byte 0xe0
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro unused2 ptr:req
|
|
.byte 0xe1
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro switchoutabilities battler:req
|
|
.byte 0xe2
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro jumpifhasnohp battler:req, jumpInstr:req
|
|
.byte 0xe3
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifnotcurrentmoveargtype battler:req, failInstr:req
|
|
.byte 0xe4
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro pickup
|
|
.byte 0xe5
|
|
.endm
|
|
|
|
.macro unused_0xE6
|
|
.byte 0xe6
|
|
.endm
|
|
|
|
.macro unused_0xE7
|
|
.byte 0xe7
|
|
.endm
|
|
|
|
.macro settypebasedhalvers failInstr:req
|
|
.byte 0xe8
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifsubstituteblocks jumpInstr:req
|
|
.byte 0xe9
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryrecycleitem failInstr:req
|
|
.byte 0xea
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro settypetoenvironment failInstr:req
|
|
.byte 0xeb
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro pursuitdoubles failInstr:req
|
|
.byte 0xec
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro snatchsetbattlers
|
|
.byte 0xed
|
|
.endm
|
|
|
|
.macro removescreens
|
|
.byte 0xee
|
|
.endm
|
|
|
|
.macro handleballthrow
|
|
.byte 0xef
|
|
.endm
|
|
|
|
.macro givecaughtmon passInstr:req
|
|
.byte 0xf0
|
|
.4byte \passInstr
|
|
.endm
|
|
|
|
.macro trysetcaughtmondexflags failInstr:req
|
|
.byte 0xf1
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro displaydexinfo
|
|
.byte 0xf2
|
|
.endm
|
|
|
|
.macro trygivecaughtmonnick
|
|
.byte 0xf3
|
|
.endm
|
|
|
|
.macro subattackerhpbydmg
|
|
.byte 0xf4
|
|
.endm
|
|
|
|
.macro removeattackerstatus1
|
|
.byte 0xf5
|
|
.endm
|
|
|
|
.macro finishaction
|
|
.byte 0xf6
|
|
.endm
|
|
|
|
.macro finishturn
|
|
.byte 0xf7
|
|
.endm
|
|
|
|
.macro trainerslideout position:req
|
|
.byte 0xf8
|
|
.byte \position
|
|
.endm
|
|
|
|
.macro settelekinesis failInstr:req
|
|
.byte 0xf9
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro swapstatstages stat:req
|
|
.byte 0xfa
|
|
.byte \stat
|
|
.endm
|
|
|
|
.macro averagestats stat:req
|
|
.byte 0xfb
|
|
.byte \stat
|
|
.endm
|
|
|
|
.macro jumpifcaptivateaffected jumpInstr:req
|
|
.byte 0xfc
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro setnonvolatilestatus trigger:req
|
|
.byte 0xfd
|
|
.byte \trigger
|
|
.endm
|
|
|
|
.macro tryworryseed failInstr:req
|
|
.byte 0xfe
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro callnative func:req
|
|
.byte 0xff
|
|
.4byte \func
|
|
.endm
|
|
|
|
.macro savetarget
|
|
callnative BS_SaveTarget
|
|
.endm
|
|
|
|
.macro restoretarget
|
|
callnative BS_RestoreTarget
|
|
.endm
|
|
|
|
.macro saveattacker
|
|
callnative BS_SaveAttacker
|
|
.endm
|
|
|
|
.macro restoreattacker
|
|
callnative BS_RestoreAttacker
|
|
.endm
|
|
|
|
.macro jumpifintimidateabilityprevented
|
|
callnative BS_JumpIfIntimidateAbilityPrevented
|
|
.endm
|
|
|
|
.macro metalburstdamagecalculator failInstr:req
|
|
callnative BS_CalcMetalBurstDmg
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifcantfling battler:req, jumpInstr:req
|
|
callnative BS_JumpIfCantFling
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro itemstatchangeeffects battler:req
|
|
callnative BS_RunStatChangeItems
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro allyswitchswapbattlers
|
|
callnative BS_AllySwitchSwapBattler
|
|
.endm
|
|
|
|
.macro tryallyswitch jumpInstr:req
|
|
callnative BS_TryAllySwitch
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro dostockpilestatchangeswearoff, battler:req, statChangeInstr:req
|
|
callnative BS_DoStockpileStatChangesWearOff
|
|
.byte \battler
|
|
.4byte \statChangeInstr
|
|
.endm
|
|
|
|
.macro jumpifmorethanhalfHP battler:req, jumpInstr:req
|
|
callnative BS_JumpIfMoreThanHalfHP
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro itemrestorehp jumpInstr:req, restoreBattlerInstr:req
|
|
callnative BS_ItemRestoreHP
|
|
.4byte \jumpInstr
|
|
.4byte \restoreBattlerInstr
|
|
.endm
|
|
|
|
.macro itemcurestatus jumpInstr:req
|
|
callnative BS_ItemCureStatus
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro itemincreasestat
|
|
callnative BS_ItemIncreaseStat
|
|
.endm
|
|
|
|
.macro itemrestorepp
|
|
callnative BS_ItemRestorePP
|
|
.endm
|
|
|
|
.macro tryrevertweatherform
|
|
callnative BS_TryRevertWeatherForm
|
|
.endm
|
|
|
|
.macro trysetoctolock failInstr:req
|
|
callnative BS_TrySetOctolock
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setglaiverush
|
|
callnative BS_SetGlaiveRush
|
|
.endm
|
|
|
|
.macro setpledge jumpInstr:req
|
|
callnative BS_SetPledge
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro setpledgestatus battler:req sidestatus:req
|
|
callnative BS_SetPledgeStatus
|
|
.byte \battler
|
|
.4byte \sidestatus
|
|
.endm
|
|
|
|
.macro trycopycat failInstr:req
|
|
callnative BS_TryCopycat
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setzeffect
|
|
callnative BS_SetZEffect
|
|
.endm
|
|
|
|
@ Used by effects that may proc Symbiosis but do not call removeitem.
|
|
.macro trysymbiosis battler:req
|
|
callnative BS_TrySymbiosis
|
|
.byte \battler
|
|
.endm
|
|
|
|
@ returns B_SIDE_x to gBattleCommunication[0]
|
|
.macro getbattlerside battler:req
|
|
callnative BS_GetBattlerSide
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro checkparentalbondcounter counter:req, ptr:req
|
|
callnative BS_CheckParentalBondCounter
|
|
.byte \counter
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro jumpifcantloseitem battler:req, ptr:req
|
|
callnative BS_JumpIfCantLoseItem
|
|
.byte \battler
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro handlemegaevo battler:req, case:req
|
|
callnative BS_HandleMegaEvolution
|
|
.byte \battler
|
|
.byte \case
|
|
.endm
|
|
|
|
.macro handleprimalreversion battler:req, case:req
|
|
callnative BS_HandlePrimalReversion
|
|
.byte \battler
|
|
.byte \case
|
|
.endm
|
|
|
|
.macro handleultraburst battler:req, case:req
|
|
callnative BS_HandleUltraBurst
|
|
.byte \battler
|
|
.byte \case
|
|
.endm
|
|
|
|
.macro jumpifshelltrap battler:req, jumpInstr:req
|
|
callnative BS_JumpIfShellTrap
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifelectricabilityaffected battler:req, ability:req, jumpInstr:req
|
|
callnative BS_JumpIfElectricAbilityAffected
|
|
.byte \battler
|
|
.2byte \ability
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro setterrain failInstr:req
|
|
callnative BS_SetTerrain
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifterrainaffected battler:req, terrainFlags:req, jumpInstr:req
|
|
callnative BS_JumpIfTerrainAffected
|
|
.byte \battler
|
|
.4byte \terrainFlags
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryreflecttype failInstr:req
|
|
callnative BS_TryReflectType
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
@ Used to active a different Max Move effects.
|
|
.macro setmaxmoveeffect
|
|
callnative BS_SetMaxMoveEffect
|
|
.endm
|
|
|
|
.macro setsteelsurge, failInstr:req
|
|
callnative BS_SetSteelsurge
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysetparalysis, ptr:req
|
|
callnative BS_TrySetParalysis
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro trysetpoison, ptr:req
|
|
callnative BS_TrySetPoison
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro trysetpoisonparalysis, ptr:req
|
|
callnative BS_TrySetPoisonParalyzis
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro tryseteffectspore, ptr:req
|
|
callnative BS_TrySetEffectSpore
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro trysetconfusion, ptr:req
|
|
callnative BS_TrySetConfusion
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro trysetinfatuation, ptr:req
|
|
callnative BS_TrySetInfatuation
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro trysetescapeprevention, ptr:req
|
|
callnative BS_TrySetEscapePrevention
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro trysettorment, ptr:req
|
|
callnative BS_TrySetTorment
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro tryhealsixthhealth, ptr:req
|
|
callnative BS_HealOneSixth
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro tryrecycleberry, ptr:req
|
|
callnative BS_TryRecycleBerry
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro updatedynamax
|
|
callnative BS_UpdateDynamax
|
|
.endm
|
|
|
|
.macro jumpiftargetdynamaxed, ptr:req
|
|
callnative BS_JumpIfDynamaxed
|
|
.4byte \ptr
|
|
.endm
|
|
|
|
.macro undodynamax battler:req
|
|
callnative BS_UndoDynamax
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro trytrainerslidezmovemsg
|
|
callnative BS_TryTrainerSlideZMoveMsg
|
|
.endm
|
|
|
|
.macro trytrainerslidemegaevolutionmsg
|
|
callnative BS_TryTrainerSlideMegaEvolutionMsg
|
|
.endm
|
|
|
|
.macro trytrainerslidedynamaxmsg
|
|
callnative BS_TryTrainerSlideDynamaxMsg
|
|
.endm
|
|
|
|
.macro tryhealpulse failInstr:req
|
|
callnative BS_TryHealPulse
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trydefog clear:req, failInstr:req
|
|
callnative BS_TryDefog
|
|
.byte \clear
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trytriggerstatusform
|
|
callnative BS_TryTriggerStatusForm
|
|
.endm
|
|
|
|
.macro tryupperhand failInstr:req
|
|
callnative BS_TryUpperHand
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryupdaterecoiltracker
|
|
callnative BS_TryUpdateRecoilTracker
|
|
.endm
|
|
|
|
.macro tryupdateleaderscresttracker
|
|
callnative BS_TryUpdateLeadersCrestTracker
|
|
.endm
|
|
|
|
.macro trytidyup clear:req, jumpInstr:req
|
|
callnative BS_TryTidyUp
|
|
.byte \clear
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro trygulpmissile
|
|
callnative BS_TryGulpMissile
|
|
.endm
|
|
|
|
.macro tryactivategulpmissile
|
|
callnative BS_TryActivateGulpMissile
|
|
.endm
|
|
|
|
.macro tryquash failInstr:req
|
|
callnative BS_TryQuash
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro copyfoesstatincrease battler:req, failInstr:req
|
|
callnative BS_CopyFoesStatIncrease
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro removeweather
|
|
callnative BS_RemoveWeather
|
|
.endm
|
|
|
|
.macro applyterastallization
|
|
callnative BS_ApplyTerastallization
|
|
.endm
|
|
|
|
.macro jumpifsleepclause jumpInstr:req
|
|
callnative BS_JumpIfSleepClause
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro ficklebeamdamagecalculation
|
|
callnative BS_FickleBeamDamageCalculation
|
|
.endm
|
|
|
|
.macro trytarshot failInstr:req
|
|
callnative BS_TryTarShot
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifteainvulnerable battler:req, jumpInstr:req
|
|
callnative BS_TeatimeInvul
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifteanoberry failInstr:req
|
|
callnative BS_TeatimeTargets
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trywindriderpower battler:req, failInstr:req
|
|
callnative BS_TryWindRiderPower
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro activateweatherchangeabilities battler:req
|
|
callnative BS_ActivateWeatherChangeAbilities
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro activateterrainchangeabilities battler:req
|
|
callnative BS_ActivateTerrainChangeAbilities
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro resetterrainabilityflags
|
|
callnative BS_ResetTerrainAbilityFlags
|
|
.endm
|
|
|
|
@ Stores Healing Wish effect.
|
|
.macro storehealingwish battler:req
|
|
callnative BS_StoreHealingWish
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro tryrevivalblessing, failInstr:req
|
|
callnative BS_TryRevivalBlessing
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifblockedbysoundproof battler:req, failInstr:req
|
|
callnative BS_JumpIfBlockedBySoundproof
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setmagiccoattarget
|
|
callnative BS_SetMagicCoatTarget
|
|
.endm
|
|
|
|
.macro jumpifcommanderactive jumpInstr:req
|
|
callnative BS_JumpIfCommanderActive
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro checkpokeflute
|
|
callnative BS_CheckPokeFlute
|
|
.endm
|
|
|
|
.macro waitfanfare
|
|
callnative BS_WaitFanfare
|
|
.endm
|
|
|
|
.macro setbeakblast
|
|
callnative BS_SetBeakBlast
|
|
.endm
|
|
|
|
.macro cantarshotwork failInstr:req
|
|
callnative BS_CanTarShotWork
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro removeterrain
|
|
callnative BS_RemoveTerrain
|
|
.endm
|
|
|
|
.macro tryspectralthiefsteal jumpInstr:req
|
|
callnative BS_TrySpectralThiefSteal
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro spectralthiefprintstats
|
|
callnative BS_SpectralThiefPrintStats
|
|
.endm
|
|
|
|
.macro setmoveresultflags flags:req
|
|
callnative BS_SetMoveResultFlags
|
|
.2byte \flags
|
|
.endm
|
|
|
|
.macro clearmoveresultflags flags:req
|
|
callnative BS_ClearMoveResultFlags
|
|
.2byte \flags
|
|
.endm
|
|
|
|
.macro jumpifmoveresultflags flags:req failInstr:req
|
|
callnative BS_JumpIfMoveResultFlags
|
|
.2byte \flags
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifcriticalhit failInstr:req
|
|
callnative BS_JumpIfCriticalHit
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifcangigantamax battler:req, jumpInstr:req
|
|
callnative BS_JumpIfCanGigantamax
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpiflastuseditemholdeffect holdEffect:req, secondaryId:req, jumpInstr:req
|
|
callnative BS_JumpIfLastUsedItemHoldEffect
|
|
.byte \holdEffect
|
|
.2byte \secondaryId
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro swapsidestatuses
|
|
callnative BS_CourtChangeSwapSideStatuses
|
|
.endm
|
|
|
|
.macro swapstats stat:req
|
|
callnative BS_SwapStats
|
|
.byte \stat
|
|
.endm
|
|
|
|
.macro restoresavedmove
|
|
callnative BS_RestoreSavedMove
|
|
.endm
|
|
|
|
@ helpful macros
|
|
.macro setstatchanger stat:req, stages:req, down:req
|
|
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
|
|
.endm
|
|
|
|
.macro setmoveeffect effect:req
|
|
sethword sMOVE_EFFECT, \effect
|
|
sethword sSAVED_MOVE_EFFECT, \effect
|
|
.endm
|
|
|
|
.macro sethword dst:req, value:req
|
|
setbyte \dst, (\value) & 0xFF
|
|
setbyte \dst + 1, ((\value) >> 8) & 0xFF
|
|
.endm
|
|
|
|
.macro setword dst:req, value:req
|
|
setbyte \dst, (\value) & 0xFF
|
|
setbyte \dst + 1, ((\value) >> 8) & 0xFF
|
|
setbyte \dst + 2, ((\value) >> 16) & 0xFF
|
|
setbyte \dst + 3, ((\value) >> 24) & 0xFF
|
|
.endm
|
|
|
|
.macro copybyte dst:req, src:req
|
|
copyarray \dst, \src, 0x1
|
|
.endm
|
|
|
|
.macro copyhword dst:req, src:req
|
|
copyarray \dst, \src, 0x2
|
|
.endm
|
|
|
|
.macro copyword dst:req, src:req
|
|
copyarray \dst, \src, 0x4
|
|
.endm
|
|
|
|
.macro jumpifbytenotequal byte1:req, byte2:req, jumpInstr:req
|
|
jumpifarraynotequal \byte1, \byte2, 0x1, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifbyteequal byte1:req, byte2:req, jumpInstr:req
|
|
jumpifarrayequal \byte1, \byte2, 0x1, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifmove move:req, jumpInstr:req
|
|
jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifnotmove move:req, jumpInstr:req
|
|
jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifnotchosenmove move:req, jumpInstr:req
|
|
jumpifhalfword CMP_NOT_EQUAL, gChosenMove, \move, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifmovehadnoeffect jumpInstr:req
|
|
jumpifmoveresultflags MOVE_RESULT_NO_EFFECT, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifside battler:req, side:req, equalJumpInstr:req
|
|
getbattlerside \battler
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, \side, \equalJumpInstr
|
|
.endm
|
|
|
|
.macro jumpifbattletype flags:req, jumpInstr:req
|
|
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifnotbattletype flags:req, jumpInstr:req
|
|
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpInstr
|
|
.endm
|
|
|
|
.macro dmg_1_8_targethp
|
|
manipulatedamage DMG_1_8_TARGET_HP
|
|
.endm
|
|
|
|
.macro dmgtomaxattackerhp
|
|
manipulatedamage DMG_FULL_ATTACKER_HP
|
|
.endm
|
|
|
|
.macro jumpifflowerveil jumpInstr:req
|
|
jumpifnottype BS_TARGET, TYPE_GRASS, 1f
|
|
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpInstr
|
|
1:
|
|
.endm
|
|
|
|
.macro jumpifflowerveilattacker jumpInstr:req
|
|
jumpifnottype BS_ATTACKER, TYPE_GRASS, 1f
|
|
jumpifability BS_ATTACKER_SIDE, ABILITY_FLOWER_VEIL, \jumpInstr
|
|
1:
|
|
.endm
|
|
|
|
.macro jumpifabilitycantbesuppressed battler:req, jumpInstr:req
|
|
callnative BS_JumpIfAbilityCantBeSuppressed
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryactivateabilityshield battler:req
|
|
callnative BS_TryActivateAbilityShield
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro trysynchronoise jumpInstr:req
|
|
callnative BS_TrySynchronoise
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifroarfails jumpInstr:req
|
|
callnative BS_JumpIfRoarFails
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifabsent battler:req, jumpInstr:req
|
|
callnative BS_JumpIfAbsent
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifnoholdeffect battler:req, holdEffect:req, jumpInstr:req
|
|
jumpifholdeffect \battler, \holdEffect, \jumpInstr, FALSE
|
|
.endm
|
|
|
|
.macro jumpifholdeffect battler:req, holdEffect:req, jumpInstr:req, equal:req
|
|
callnative BS_JumpIfHoldEffect
|
|
.byte \battler
|
|
.byte \holdEffect
|
|
.4byte \jumpInstr
|
|
.byte \equal
|
|
.endm
|
|
|
|
.macro jumpifnoally battler:req, jumpInstr:req
|
|
callnative BS_JumpIfNoAlly
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro infatuatewithbattler battler:req, infatuateWith:req
|
|
callnative BS_InfatuateWithBattler
|
|
.byte \battler
|
|
.byte \infatuateWith
|
|
.endm
|
|
|
|
.macro setlastuseditem battler:req
|
|
callnative BS_SetLastUsedItem
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro trysetfairylock failInstr:req
|
|
callnative BS_TrySetFairyLock
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro getstatvalue stat:req
|
|
callnative BS_GetStatValue
|
|
.byte \stat
|
|
.endm
|
|
|
|
.macro jumpiffullhp battler:req, jumpInstr:req
|
|
callnative BS_JumpIfFullHp
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryfriskmessage
|
|
callnative BS_TryFriskMessage
|
|
.endm
|
|
|
|
.macro settracedability battler:req
|
|
callnative BS_SetTracedAbility
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro tryillusionoff battler:req
|
|
callnative BS_TryIllusionOff
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro setspriteignore0hp ignore0HP:req
|
|
callnative BS_SetSpriteIgnore0Hp
|
|
.byte \ignore0HP
|
|
.endm
|
|
|
|
.macro updatenick
|
|
callnative BS_UpdateNick
|
|
.endm
|
|
|
|
.macro jumpifnotberry battler:req, jumpInstr:req
|
|
callnative BS_JumpIfNotBerry
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro gravityonairbornemons
|
|
callnative BS_GravityOnAirborneMons
|
|
.endm
|
|
|
|
.macro tryacupressure failInstr:req
|
|
callnative BS_TryAcupressure
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro cancelmultiturnmoves
|
|
callnative BS_CancelMultiTurnMoves
|
|
.endm
|
|
|
|
.macro isrunningimpossible
|
|
callnative BS_IsRunningImpossible
|
|
.endm
|
|
|
|
.macro getmovetarget
|
|
callnative BS_GetMoveTarget
|
|
.endm
|
|
|
|
@ Will jump to script pointer if the specified battler has or has not fainted.
|
|
.macro jumpiffainted battler:req, value:req, ptr:req
|
|
getbattlerfainted \battler
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, \value, \ptr
|
|
.endm
|
|
|
|
.macro getbattlerfainted battler:req
|
|
callnative BS_GetBattlerFainted
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro resetswitchinabilitybits
|
|
callnative BS_ResetSwitchInAbilityBits
|
|
.endm
|
|
|
|
.macro updatechoicemoveonlvlup
|
|
callnative BS_UpdateChoiceMoveOnLvlUp
|
|
.endm
|
|
|
|
.macro resetplayerfainted
|
|
callnative BS_ResetPlayerFainted
|
|
.endm
|
|
|
|
.macro palaceflavortext
|
|
callnative BS_PalaceFlavorText
|
|
.endm
|
|
|
|
.macro arenajudgmentwindow
|
|
callnative BS_ArenaJudgmentWindow
|
|
.endm
|
|
|
|
.macro arenaopponentmonlost
|
|
callnative BS_ArenaOpponentMonLost
|
|
.endm
|
|
|
|
.macro arenaplayermonlost
|
|
callnative BS_ArenaPlayerMonLost
|
|
.endm
|
|
|
|
.macro arenabothmonslost
|
|
callnative BS_ArenaBothMonsLost
|
|
.endm
|
|
|
|
.macro forfeityesnobox
|
|
callnative BS_ForfeitYesNoBox
|
|
.endm
|
|
|
|
.macro drawarenareftextbox
|
|
callnative BS_DrawArenaRefTextBox
|
|
.endm
|
|
|
|
.macro erasearenareftextbox
|
|
callnative BS_EraseArenaRefTextBox
|
|
.endm
|
|
|
|
.macro arenajudgmentstring id:req
|
|
callnative BS_ArenaJudgmentString
|
|
.byte \id
|
|
.endm
|
|
|
|
.macro arenawaitmessage id:req
|
|
callnative BS_ArenaWaitMessage
|
|
.byte \id
|
|
.endm
|
|
|
|
.macro waitcry
|
|
callnative BS_WaitCry
|
|
.endm
|
|
|
|
.macro returnopponentmon1toball
|
|
callnative BS_ReturnOpponentMon1ToBall
|
|
.endm
|
|
|
|
.macro returnopponentmon2toball
|
|
callnative BS_ReturnOpponentMon2ToBall
|
|
.endm
|
|
|
|
.macro volumedown
|
|
callnative BS_VolumeDown
|
|
.endm
|
|
|
|
.macro volumeup
|
|
callnative BS_VolumeUp
|
|
.endm
|
|
|
|
.macro setalreadystatusedmoveattempt
|
|
callnative BS_SetAlreadyStatusedMoveAttempt
|
|
.endm
|
|
|
|
.macro palacetryescapestatus
|
|
callnative BS_PalaceTryEscapeStatus
|
|
.endm
|
|
|
|
.macro setteleportoutcome battler:req
|
|
callnative BS_SetTeleportOutcome
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro playtrainerdefeatedmusic
|
|
callnative BS_PlayTrainerDefeatedMusic
|
|
.endm
|
|
|
|
.macro stattextbuffer
|
|
callnative BS_StatTextBuffer
|
|
.endm
|
|
|
|
.macro switchinabilities battler:req
|
|
callnative BS_SwitchinAbilities
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro instanthpdrop
|
|
callnative BS_InstantHpDrop
|
|
.endm
|
|
|
|
.macro clearstatus
|
|
callnative BS_ClearStatus
|
|
.endm
|
|
|
|
.macro restoremovepp
|
|
callnative BS_RestoreMovePp
|
|
.endm
|
|
|
|
.macro tryactivatereceiver battler:req
|
|
callnative BS_TryActivateReceiver
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro tryactivatesoulheart
|
|
callnative BS_TryActivateSoulheart
|
|
.endm
|
|
|
|
.macro playmoveanimation move:req
|
|
callnative BS_PlayMoveAnimation
|
|
.2byte \move
|
|
.endm
|
|
|
|
.macro setluckychant failInstr:req
|
|
callnative BS_SetLuckyChant
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro suckerpunchcheck failInstr:req
|
|
callnative BS_SuckerPunchCheck
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setsimplebeam failInstr:req
|
|
callnative BS_SetSimpleBeam
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryentrainment failInstr:req
|
|
callnative BS_TryEntrainment
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro setlastusedability
|
|
callnative BS_SetLastUsedAbility
|
|
.endm
|
|
|
|
.macro invertstatstages
|
|
callnative BS_InvertStatStages
|
|
.endm
|
|
|
|
.macro trymefirst failInstr:req
|
|
callnative BS_TryMeFirst
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryelectrify failInstr:req
|
|
callnative BS_TryElectrify
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trysoak failInstr:req
|
|
callnative BS_TrySoak
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro handleformchange battler:req, case_:req
|
|
callnative BS_HandleFormChange
|
|
.byte \battler
|
|
.byte \case_
|
|
.endm
|
|
|
|
.macro trylastresort failInstr:req
|
|
callnative BS_TryLastResort
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryautotomize failInstr:req
|
|
callnative BS_TryAutotomize
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryinstruct failInstr:req
|
|
callnative BS_TryInstruct
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro showabilitypopup
|
|
callnative BS_ShowAbilityPopup
|
|
.endm
|
|
|
|
.macro updateabilitypopup
|
|
callnative BS_UpdateAbilityPopup
|
|
.endm
|
|
|
|
.macro jumpiftargetally jumpInstr:req
|
|
callnative BS_JumpIfTargetAlly
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro trypsychoshift failInstr:req sleepClauseFailInstr:req
|
|
callnative BS_TryPsychoShift
|
|
.4byte \failInstr
|
|
.4byte \sleepClauseFailInstr
|
|
.endm
|
|
|
|
.macro curestatus battler:req
|
|
callnative BS_CureStatus
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro powertrick
|
|
callnative BS_PowerTrick
|
|
.endm
|
|
|
|
.macro tryafteryou failInstr:req
|
|
callnative BS_TryAfterYou
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trybestow failInstr:req
|
|
callnative BS_TryBestow
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro handletrainerslidemsg battler:req, case_:req
|
|
callnative BS_HandleTrainerSlideMsg
|
|
.byte \battler
|
|
.byte \case_
|
|
.endm
|
|
|
|
.macro trytrainerslidemsgfirstoff battler:req
|
|
callnative BS_TryTrainerSlideMsgFirstOff
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro trytrainerslidemsglaston battler:req
|
|
callnative BS_TryTrainerSlideMsgLastOn
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro setauroraveil
|
|
callnative BS_SetAuroraVeil
|
|
.endm
|
|
|
|
.macro trythirdtype failInstr:req
|
|
callnative BS_TryThirdType
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro destroyabilitypopup
|
|
callnative BS_DestroyAbilityPopup
|
|
.endm
|
|
|
|
.macro gettotemboost jumpInstr:req
|
|
callnative BS_GetTotemBoost
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro activateitemeffects
|
|
callnative BS_ActivateItemEffects
|
|
.endm
|
|
|
|
.macro tryroomservice battler:req, failInstr:req
|
|
callnative BS_TryRoomService
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro tryterrainseed battler:req, failInstr:req
|
|
callnative BS_TryTerrainSeed
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro makeinvisible battler:req
|
|
callnative BS_MakeInvisible
|
|
.byte \battler
|
|
.endm
|
|
|
|
.macro jumpifteamhealthy jumpInstr:req
|
|
callnative BS_JumpIfTeamHealthy
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryhealquarterhealth battler:req, failInstr:req
|
|
callnative BS_TryHealQuarterHealth
|
|
.byte \battler
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifunder200 jumpInstr:req
|
|
callnative BS_JumpIfUnder200
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro setskydrop
|
|
callnative BS_SetSkyDrop
|
|
.endm
|
|
|
|
.macro clearskydrop failInstr:req
|
|
callnative BS_ClearSkyDrop
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro skydropyawn
|
|
callnative BS_SkyDropYawn
|
|
.endm
|
|
|
|
.macro jumpifpranksterblocked jumpInstr:req
|
|
callnative BS_JumpIfPranksterBlocked
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro trytoclearprimalweather
|
|
callnative BS_TryToClearPrimalWeather
|
|
.endm
|
|
|
|
.macro tryendneutralizinggas
|
|
callnative BS_TryEndNeutralizingGas
|
|
.endm
|
|
|
|
.macro getrototillertargets failInstr:req
|
|
callnative BS_GetRototillerTargets
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro jumpifnotrototilleraffected jumpInstr:req
|
|
callnative BS_JumpIfNotRototillerAffected
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro consumeberry battler:req, fromBattler:req
|
|
callnative BS_ConsumeBerry
|
|
.byte \battler
|
|
.byte \fromBattler
|
|
.endm
|
|
|
|
.macro jumpifweatheraffected flags:req, jumpInstr:req
|
|
callnative BS_JumpIfWeatherAffected
|
|
.2byte \flags
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifspecies species:req, jumpInstr:req
|
|
callnative BS_JumpIfSpecies
|
|
.2byte \species
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifleafguardprotected battler:req, jumpInstr:req
|
|
callnative BS_JumpIfLeafGuardProtected
|
|
.byte \battler
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro setattackertostickywebuser
|
|
callnative BS_SetAttackerToStickyWebUser
|
|
.endm
|
|
|
|
.macro cutonethirdhpandraisestats failInstr:req
|
|
callnative BS_CutOneThirdHpAndRaiseStats
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro checkpoltergeist failInstr:req
|
|
callnative BS_CheckPoltergeist
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro trynoretreat failInstr:req
|
|
callnative BS_TryNoRetreat
|
|
.4byte \failInstr
|
|
.endm
|
|
|
|
.macro curecertainstatuses
|
|
callnative BS_CureCertainStatuses
|
|
.endm
|
|
|
|
.macro tryresetnegativestatstages
|
|
callnative BS_TryResetNegativeStatStages
|
|
.endm
|
|
|
|
.macro jumpiflastuseditemberry jumpInstr:req
|
|
callnative BS_JumpIfLastUsedItemBerry
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro savebattleritem
|
|
callnative BS_SaveBattlerItem
|
|
.endm
|
|
|
|
.macro restorebattleritem
|
|
callnative BS_RestoreBattlerItem
|
|
.endm
|
|
|
|
.macro battleritemtolastuseditem
|
|
callnative BS_BattlerItemToLastUsedItem
|
|
.endm
|
|
|
|
.macro setallytonexttarget jumpInstr:req
|
|
jumpifbyte CMP_GREATER_THAN, gBattlerTarget, 0x1, 1f
|
|
addbyte gBattlerTarget, 0x2
|
|
goto \jumpInstr
|
|
1:
|
|
subbyte gBattlerTarget, 0x2
|
|
goto \jumpInstr
|
|
.endm
|
|
|
|
.macro setallytonextattacker jumpInstr:req
|
|
jumpifbyte CMP_GREATER_THAN, gBattlerAttacker, 0x1, 1f
|
|
addbyte gBattlerAttacker, 0x2
|
|
goto \jumpInstr
|
|
1:
|
|
subbyte gBattlerAttacker, 0x2
|
|
goto \jumpInstr
|
|
.endm
|
|
|
|
.macro jumpifsafeguard jumpInstr:req
|
|
jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpInstr
|
|
1:
|
|
.endm
|
|
|
|
@ Tries to increase or decrease a battler's stat's stat stage by a specified amount. If impossible, jumps to \script.
|
|
.macro modifybattlerstatstage battler:req, stat:req, mode:req, amount:req, script:req, animation:req, customString
|
|
|
|
@ \mode parameters
|
|
INCREASE = FALSE
|
|
DECREASE = TRUE
|
|
|
|
@ \animation parameters
|
|
ANIM_OFF = FALSE
|
|
ANIM_ON = TRUE
|
|
|
|
setstatchanger \stat, \amount, \mode
|
|
.if \animation == FALSE
|
|
setbyte sSTAT_ANIM_PLAYED, TRUE
|
|
.endif
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, \script
|
|
.ifnb \customString
|
|
printstring \customString
|
|
.else
|
|
.if \mode == DECREASE
|
|
printfromtable gStatDownStringIds
|
|
.else
|
|
.if \mode == INCREASE
|
|
printfromtable gStatUpStringIds
|
|
.endif
|
|
.endif
|
|
.endif
|
|
waitmessage B_WAIT_TIME_LONG
|
|
.endm
|
|
|
|
.macro flushtextbox
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
.endm
|
|
|
|
.macro jumpifnowhiteout jumpInstr:req
|
|
callnative BS_JumpIfNoWhiteOut
|
|
.4byte \jumpInstr
|
|
.endm
|
|
|
|
.macro tryboosterenergy onFieldStatus:req
|
|
callnative BS_TryBoosterEnergy
|
|
.byte \onFieldStatus
|
|
.endm
|