1
0
mirror of https://github.com/Ninjdai1/pokeemerald.git synced 2025-03-22 21:48:33 +01:00
pokeemerald/asm/macros/battle_script.inc

2160 lines
37 KiB
PHP
Raw Normal View History

@ commands
.macro attackcanceler
.byte 0x0
.endm
2021-10-13 16:39:21 -04:00
.macro accuracycheck failPtr:req, move:req
.byte 0x1
2021-10-13 16:39:21 -04:00
.4byte \failPtr
.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
2018-07-14 22:56:03 +02:00
.macro adjustdamage
.byte 0x7
.endm
2018-07-21 15:11:13 +02:00
.macro multihitresultmessage
.byte 0x8
.endm
.macro attackanimation
.byte 0x9
.endm
.macro waitanimation
.byte 0xa
.endm
2018-12-02 19:24:06 +01:00
.macro healthbarupdate battler:req
.byte 0xb
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro datahpupdate battler:req
.byte 0xc
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro critmessage
.byte 0xd
.endm
.macro effectivenesssound
.byte 0xe
.endm
.macro resultmessage
.byte 0xf
.endm
2018-12-02 19:24:06 +01:00
.macro printstring id:req
.byte 0x10
2018-12-02 19:24:06 +01:00
.2byte \id
.endm
2018-12-02 19:24:06 +01:00
.macro printselectionstring id:req
.byte 0x11
2018-12-02 19:24:06 +01:00
.2byte \id
.endm
2021-10-13 16:39:21 -04:00
.macro waitmessage time:req
.byte 0x12
2021-10-13 16:39:21 -04:00
.2byte \time
.endm
2018-12-02 19:24:06 +01:00
.macro printfromtable ptr:req
.byte 0x13
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro printselectionstringfromtable ptr:req
.byte 0x14
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro seteffectwithchance
.byte 0x15
.endm
.macro seteffectprimary
.byte 0x16
.endm
.macro seteffectsecondary
.byte 0x17
.endm
2018-12-02 19:24:06 +01:00
.macro clearstatusfromeffect battler:req
.byte 0x18
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2021-10-13 16:39:21 -04:00
.macro tryfaintmon battler:req
.byte 0x19
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.byte FALSE
.4byte NULL
.endm
.macro tryfaintmon_spikes battler:req, ptr:req
.byte 0x19
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.byte TRUE
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro dofaintanimation battler:req
.byte 0x1a
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro cleareffectsonfaint battler:req
.byte 0x1b
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifstatus battler:req, status1:req, ptr:req
.byte 0x1c
2018-08-25 21:04:12 +02:00
.byte \battler
.4byte \status1
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifstatus2 battler:req, status2:req, ptr:req
.byte 0x1d
2018-08-25 21:04:12 +02:00
.byte \battler
.4byte \status2
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifability battler:req, ability:req, ptr:req
.byte 0x1e
2021-10-13 16:39:21 -04:00
.byte \battler
.2byte \ability
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifsideaffecting battler:req, sidestatus:req, ptr:req
.byte 0x1f
2018-09-24 20:29:06 +02:00
.byte \battler
2018-07-24 20:13:02 +02:00
.4byte \sidestatus
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifstat battler:req, ifflag:req, stat:req, value:req, ptr
.byte 0x20
2018-08-25 21:04:12 +02:00
.byte \battler
.byte \ifflag
.byte \stat
2018-12-02 19:24:06 +01:00
.byte \value
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifstatus3condition battler:req, status3:req, condition:req, ptr:req
.byte 0x21
2018-08-25 21:04:12 +02:00
.byte \battler
.4byte \status3
2021-10-13 16:39:21 -04:00
.byte \condition
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro jumpbasedontype battler:req, type:req, case:req, ptr:req
.byte 0x22
2018-08-25 21:04:12 +02:00
.byte \battler
.byte \type
.byte \case
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro jumpiftype battler:req, type:req, ptr:req
jumpbasedontype \battler, \type, 1, \ptr
.endm
.macro jumpifnottype battler:req, type:req, ptr:req
jumpbasedontype \battler, \type, 0, \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro getexp battler:req
.byte 0x23
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro checkteamslost ptr:req
.byte 0x24
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro movevaluescleanup
.byte 0x25
.endm
2018-12-02 19:24:06 +01:00
.macro setmultihit value:req
.byte 0x26
2018-12-02 19:24:06 +01:00
.byte \value
.endm
2018-12-02 19:24:06 +01:00
.macro decrementmultihit value:req
.byte 0x27
2018-12-02 19:24:06 +01:00
.4byte \value
.endm
2018-12-02 19:24:06 +01:00
.macro goto ptr:req
.byte 0x28
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifbyte ifflag:req, val:req, byte:req, ptr:req
.byte 0x29
.byte \ifflag
2021-10-13 16:39:21 -04:00
.4byte \val
.byte \byte
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifhalfword ifflag:req, val:req, hword:req, ptr:req
.byte 0x2a
.byte \ifflag
2021-10-13 16:39:21 -04:00
.4byte \val
.2byte \hword
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifword ifflag:req, val:req, word:req, ptr:req
.byte 0x2b
.byte \ifflag
2021-10-13 16:39:21 -04:00
.4byte \val
.4byte \word
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifarrayequal val1:req, val2:req, size:req, ptr:req
.byte 0x2c
2021-10-13 16:39:21 -04:00
.4byte \val1
.4byte \val2
.byte \size
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifarraynotequal val1:req, val2:req, size:req, ptr:req
.byte 0x2d
2021-10-13 16:39:21 -04:00
.4byte \val1
.4byte \val2
.byte \size
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro setbyte ptr:req, byte:req
.byte 0x2e
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.byte \byte
.endm
2021-10-13 16:39:21 -04:00
.macro addbyte ptr:req, byte:req
.byte 0x2f
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.byte \byte
.endm
2021-10-13 16:39:21 -04:00
.macro subbyte ptr:req, byte:req
.byte 0x30
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.byte \byte
.endm
2021-10-13 16:39:21 -04:00
.macro copyarray dest:req, src:req, size:req
.byte 0x31
2021-10-13 16:39:21 -04:00
.4byte \dest
.4byte \src
.byte \size
.endm
2021-10-13 16:39:21 -04:00
.macro copyarraywithindex dest:req, src:req, index:req, size:req
.byte 0x32
2021-10-13 16:39:21 -04:00
.4byte \dest
.4byte \src
.4byte \index
.byte \size
.endm
2021-10-13 16:39:21 -04:00
.macro orbyte ptr:req, byte:req
.byte 0x33
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.byte \byte
.endm
2021-10-13 16:39:21 -04:00
.macro orhalfword ptr:req, hword:req
.byte 0x34
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.2byte \hword
.endm
2021-10-13 16:39:21 -04:00
.macro orword ptr:req, word:req
.byte 0x35
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.4byte \word
.endm
2021-10-13 16:39:21 -04:00
.macro bicbyte ptr:req, byte:req
.byte 0x36
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.byte \byte
.endm
2021-10-13 16:39:21 -04:00
.macro bichalfword ptr:req, hword:req
.byte 0x37
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.2byte \hword
.endm
2021-10-13 16:39:21 -04:00
.macro bicword ptr:req, word:req
.byte 0x38
2018-12-02 19:24:06 +01:00
.4byte \ptr
2021-10-13 16:39:21 -04:00
.4byte \word
.endm
2021-10-13 16:39:21 -04:00
.macro pause time:req
.byte 0x39
2021-10-13 16:39:21 -04:00
.2byte \time
.endm
.macro waitstate
.byte 0x3a
.endm
2018-12-02 19:24:06 +01:00
.macro healthbar_update battler:req
.byte 0x3b
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro return
.byte 0x3c
.endm
.macro end
.byte 0x3d
.endm
.macro end2
.byte 0x3e
.endm
.macro end3
.byte 0x3f
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifaffectedbyprotect ptr:req
.byte 0x40
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro call ptr:req
.byte 0x41
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro setroost
.byte 0x42
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifabilitypresent ability:req, ptr:req
.byte 0x43
.2byte \ability
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro endselectionscript
.byte 0x44
.endm
2021-10-13 16:39:21 -04:00
.macro playanimation battler:req, animType:req, arg=NULL
.byte 0x45
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.byte \animType
.4byte \arg
.endm
2021-10-13 16:39:21 -04:00
.macro playanimation_var battler:req, animType:req, arg=NULL
.byte 0x46
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.4byte \animType
.4byte \arg
.endm
.macro setgraphicalstatchangevalues
.byte 0x47
.endm
2019-09-27 02:46:33 -04:00
.macro playstatchangeanimation battler:req, stats:req, statchange:req
.byte 0x48
2018-08-25 21:04:12 +02:00
.byte \battler
2019-09-27 02:46:33 -04:00
.byte \stats
.byte \statchange
.endm
2021-10-13 16:39:21 -04:00
.macro moveend endMode:req, endState:req
.byte 0x49
2021-10-13 16:39:21 -04:00
.byte \endMode
.byte \endState
.endm
2019-03-30 12:37:18 +01:00
@ Help macros for 5 uses of moveend command
2019-03-30 12:37:18 +01:00
@ All cases
.macro moveendall
setbyte sMOVEEND_STATE, 0
moveend 0, 0
.endm
2019-03-30 12:37:18 +01:00
@ Chosen case
.macro moveendcase case:req
setbyte sMOVEEND_STATE, \case
moveend 1, 0
.endm
2019-03-30 12:37:18 +01:00
@ All cases from (inclusive)
.macro moveendfrom from:req
setbyte sMOVEEND_STATE, \from
moveend 0, 0
.endm
2019-03-30 12:37:18 +01:00
@ All cases from 0 to (not inclusive)
.macro moveendto to:req
setbyte sMOVEEND_STATE, 0
moveend 2, \to
.endm
2019-03-30 12:37:18 +01:00
@ Cases from (inclusive) to (not inclusive)
.macro moveendfromto from:req, to:req
setbyte sMOVEEND_STATE, \from
moveend 2, \to
.endm
.macro sethealblock ptr:req
.byte 0x4a
.4byte \ptr
.endm
.macro returnatktoball
.byte 0x4b
.endm
2018-12-02 19:24:06 +01:00
.macro getswitchedmondata battler:req
.byte 0x4c
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro switchindataupdate battler:req
.byte 0x4d
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro switchinanim battler:req, dontclearsubstitutebit:req
.byte 0x4e
2018-08-25 21:04:12 +02:00
.byte \battler
2017-12-02 00:03:46 +01:00
.byte \dontclearsubstitutebit
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifcantswitch battler:req, ptr:req
.byte 0x4f
2018-08-25 21:04:12 +02:00
.byte \battler
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro openpartyscreen battler:req, ptr:req
.byte 0x50
2021-10-13 16:39:21 -04:00
.byte \battler
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro switchhandleorder battler:req, state:req
.byte 0x51
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.byte \state
.endm
2018-12-02 19:24:06 +01:00
.macro switchineffects battler:req
.byte 0x52
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro trainerslidein battler:req
.byte 0x53
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2021-10-13 16:39:21 -04:00
.macro playse song:req
.byte 0x54
2021-10-13 16:39:21 -04:00
.2byte \song
.endm
2021-10-13 16:39:21 -04:00
.macro fanfare song:req
.byte 0x55
2021-10-13 16:39:21 -04:00
.2byte \song
.endm
2018-12-02 19:24:06 +01:00
.macro playfaintcry battler:req
.byte 0x56
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro endlinkbattle
.byte 0x57
.endm
2018-12-02 19:24:06 +01:00
.macro returntoball battler:req
.byte 0x58
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2021-10-13 16:39:21 -04:00
.macro handlelearnnewmove learnedMovePtr:req, nothingToLearnPtr:req, isFirstMove:req
.byte 0x59
2021-10-13 16:39:21 -04:00
.4byte \learnedMovePtr
.4byte \nothingToLearnPtr
.byte \isFirstMove
.endm
2021-10-13 16:39:21 -04:00
.macro yesnoboxlearnmove forgotMovePtr:req
.byte 0x5a
2021-10-13 16:39:21 -04:00
.4byte \forgotMovePtr
.endm
2021-10-13 16:39:21 -04:00
.macro yesnoboxstoplearningmove noPtr:req
.byte 0x5b
2021-10-13 16:39:21 -04:00
.4byte \noPtr
.endm
2018-12-02 19:24:06 +01:00
.macro hitanimation battler:req
.byte 0x5c
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro getmoneyreward
.byte 0x5d
.endm
.macro updatebattlermoves battler:req
.byte 0x5e
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-06-30 14:12:17 +02:00
.macro swapattackerwithtarget
.byte 0x5f
.endm
2021-10-13 16:39:21 -04:00
.macro incrementgamestat stat:req
.byte 0x60
2021-10-13 16:39:21 -04:00
.byte \stat
.endm
2018-12-02 19:24:06 +01:00
.macro drawpartystatussummary battler:req
.byte 0x61
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro hidepartystatussummary battler:req
.byte 0x62
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2021-10-13 16:39:21 -04:00
.macro jumptocalledmove notChosenMove:req
.byte 0x63
2021-10-13 16:39:21 -04:00
.byte \notChosenMove
.endm
2018-12-02 19:24:06 +01:00
.macro statusanimation battler:req
.byte 0x64
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro status2animation battler:req, status2:req
.byte 0x65
2018-08-25 21:04:12 +02:00
.byte \battler
.4byte \status2
.endm
2021-10-13 16:39:21 -04:00
.macro chosenstatusanimation battler:req, isStatus2:req, status:req
.byte 0x66
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.byte \isStatus2
.4byte \status
.endm
.macro yesnobox
.byte 0x67
.endm
.macro cancelallactions
.byte 0x68
.endm
.macro setgravity ptr:req
.byte 0x69
2018-07-21 21:58:07 +02:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro removeitem battler:req
.byte 0x6a
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro atknameinbuff1
.byte 0x6b
.endm
.macro drawlvlupbox
.byte 0x6c
.endm
.macro resetsentmonsvalue
.byte 0x6d
.endm
.macro setatktoplayer0
.byte 0x6e
.endm
2018-12-02 19:24:06 +01:00
.macro makevisible battler:req
.byte 0x6f
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 22:05:23 +01:00
.macro recordability battler:req
.byte 0x70
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro buffermovetolearn
.byte 0x71
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifplayerran ptr:req
.byte 0x72
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro hpthresholds battler:req
.byte 0x73
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2018-12-02 19:24:06 +01:00
.macro hpthresholds2 battler:req
.byte 0x74
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro useitemonopponent
.byte 0x75
.endm
2021-10-13 16:39:21 -04:00
.macro various battler:req, id:req
.byte 0x76
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.byte \id
.endm
.macro setprotectlike
.byte 0x77
.endm
.macro tryexplosion
.byte 0x78
.endm
.macro setatkhptozero
.byte 0x79
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifnexttargetvalid ptr:req
.byte 0x7a
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro tryhealhalfhealth ptr:req, battler:req
.byte 0x7b
2021-10-13 16:39:21 -04:00
.4byte \ptr
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro trymirrormove
.byte 0x7c
.endm
.macro setrain
.byte 0x7d
.endm
.macro setreflect
.byte 0x7e
.endm
.macro setseeded
.byte 0x7f
.endm
2021-10-13 16:39:21 -04:00
.macro manipulatedamage mode:req
.byte 0x80
2021-10-13 16:39:21 -04:00
.byte \mode
.endm
2021-10-13 16:39:21 -04:00
.macro trysetrest ptr:req
.byte 0x81
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifnotfirstturn ptr:req
.byte 0x82
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro setmiracleeye ptr:req
.byte 0x83
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifcantmakeasleep ptr:req
.byte 0x84
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro stockpile id:req
.byte 0x85
.byte \id
.endm
2021-10-13 16:39:21 -04:00
.macro stockpiletobasedamage ptr:req
.byte 0x86
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro stockpiletohpheal ptr:req
.byte 0x87
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro setdrainedhp
.byte 0x88
.endm
2019-09-27 02:46:33 -04:00
.macro statbuffchange flags:req, jumpptr:req
.byte 0x89
2019-11-10 12:09:14 +01:00
.2byte \flags
2019-09-27 02:46:33 -04:00
.4byte \jumpptr
.endm
.macro normalisebuffs
.byte 0x8a
.endm
.macro setbide
.byte 0x8b
.endm
.macro confuseifrepeatingattackends
.byte 0x8c
.endm
2021-10-13 16:39:21 -04:00
.macro setmultihitcounter val:req
.byte 0x8d
2021-10-13 16:39:21 -04:00
.byte \val
.endm
.macro initmultihitstring
.byte 0x8e
.endm
2021-10-13 16:39:21 -04:00
.macro forcerandomswitch ptr:req
.byte 0x8f
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro tryconversiontypechange ptr:req
.byte 0x90
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro givepaydaymoney
.byte 0x91
.endm
.macro setlightscreen
.byte 0x92
.endm
2021-10-13 16:39:21 -04:00
.macro tryKO ptr:req
.byte 0x93
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro damagetohalftargethp
.byte 0x94
.endm
.macro setsandstorm
.byte 0x95
.endm
.macro weatherdamage
.byte 0x96
.endm
2021-10-13 16:39:21 -04:00
.macro tryinfatuating ptr:req
.byte 0x97
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro updatestatusicon battler:req
.byte 0x98
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
.macro setmist
.byte 0x99
.endm
.macro setfocusenergy
.byte 0x9a
.endm
.macro transformdataexecution
.byte 0x9b
.endm
.macro setsubstitute
.byte 0x9c
.endm
2021-10-13 16:39:21 -04:00
.macro mimicattackcopy ptr:req
.byte 0x9d
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro metronome
.byte 0x9e
.endm
.macro dmgtolevel
.byte 0x9f
.endm
.macro psywavedamageeffect
.byte 0xa0
.endm
2021-10-13 16:39:21 -04:00
.macro counterdamagecalculator ptr:req
.byte 0xa1
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro mirrorcoatdamagecalculator ptr:req
.byte 0xa2
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro disablelastusedattack ptr:req
.byte 0xa3
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trysetencore ptr:req
.byte 0xa4
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro painsplitdmgcalc ptr:req
.byte 0xa5
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro settypetorandomresistance ptr:req
.byte 0xa6
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro setalwayshitflag
.byte 0xa7
.endm
2021-10-13 16:39:21 -04:00
.macro copymovepermanently ptr:req
.byte 0xa8
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trychoosesleeptalkmove ptr:req
.byte 0xa9
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro setdestinybond
.byte 0xaa
.endm
.macro trysetdestinybondtohappen
.byte 0xab
.endm
2018-12-02 22:05:23 +01:00
.macro settailwind ptr:req
.byte 0xac
2018-07-21 21:58:07 +02:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro tryspiteppreduce ptr:req
.byte 0xad
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro healpartystatus
.byte 0xae
.endm
2021-10-13 16:39:21 -04:00
.macro cursetarget ptr:req
.byte 0xaf
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trysetspikes ptr:req
.byte 0xb0
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro setforesight
.byte 0xb1
.endm
2021-10-13 16:39:21 -04:00
.macro trysetperishsong ptr:req
.byte 0xb2
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro handlerollout
.byte 0xb3
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifconfusedandstatmaxed stat:req, ptr:req
.byte 0xb4
.byte \stat
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro handlefurycutter
.byte 0xb5
.endm
.macro setembargo ptr:req
.byte 0xb6
2018-07-21 21:58:07 +02:00
.4byte \ptr
.endm
.macro presentdamagecalculation
.byte 0xb7
.endm
.macro setsafeguard
.byte 0xb8
.endm
.macro magnitudedamagecalculation
.byte 0xb9
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifnopursuitswitchdmg ptr:req
.byte 0xba
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro setsunny
.byte 0xbb
.endm
2021-10-13 16:39:21 -04:00
.macro maxattackhalvehp ptr:req
.byte 0xbc
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro copyfoestats ptr:req
.byte 0xbd
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro rapidspinfree
.byte 0xbe
.endm
.macro setdefensecurlbit
.byte 0xbf
.endm
2021-10-13 16:39:21 -04:00
.macro recoverbasedonsunlight ptr:req
.byte 0xc0
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro setstickyweb ptr:req
.byte 0xc1
.4byte \ptr
.endm
.macro selectfirstvalidtarget
.byte 0xc2
.endm
2021-10-13 16:39:21 -04:00
.macro trysetfutureattack ptr:req
.byte 0xc3
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trydobeatup endPtr:req, failPtr:req
.byte 0xc4
2021-10-13 16:39:21 -04:00
.4byte \endPtr
.4byte \failPtr
.endm
.macro setsemiinvulnerablebit
.byte 0xc5
.endm
.macro clearsemiinvulnerablebit
.byte 0xc6
.endm
.macro setminimize
.byte 0xc7
.endm
.macro sethail
.byte 0xc8
.endm
.macro trymemento ptr:req
.byte 0xc9
2018-12-02 19:24:06 +01:00
.4byte \ptr
.endm
.macro setforcedtarget
.byte 0xca
.endm
.macro setcharge
.byte 0xcb
.endm
.macro callterrainattack
.byte 0xcc
.endm
2021-10-13 16:39:21 -04:00
.macro cureifburnedparalysedorpoisoned ptr:req
.byte 0xcd
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro settorment ptr:req
.byte 0xce
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifnodamage ptr:req
.byte 0xcf
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro settaunt ptr:req
.byte 0xd0
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trysethelpinghand ptr:req
.byte 0xd1
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro tryswapitems ptr:req
.byte 0xd2
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trycopyability ptr:req
.byte 0xd3
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trywish turnNumber:req, ptr:req
.byte 0xd4
2021-10-13 16:39:21 -04:00
.byte \turnNumber
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro settoxicspikes ptr:req
.byte 0xd5
2018-07-21 21:58:07 +02:00
.4byte \ptr
.endm
.macro setgastroacid ptr:req
.byte 0xd6
2018-07-21 21:58:07 +02:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro setyawn ptr:req
.byte 0xd7
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro setdamagetohealthdifference ptr:req
.byte 0xd8
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2018-07-21 21:58:07 +02:00
.macro setroom
.byte 0xd9
.endm
2021-10-13 16:39:21 -04:00
.macro tryswapabilities ptr:req
.byte 0xda
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro tryimprison ptr:req
.byte 0xdb
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro setstealthrock ptr:req
.byte 0xdc
2018-12-02 22:05:23 +01:00
.4byte \ptr
.endm
.macro setuserstatus3 flags:req, ptr:req
.byte 0xdd
2018-07-21 21:58:07 +02:00
.4byte \flags
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro assistattackselect ptr:req
.byte 0xde
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trysetmagiccoat ptr:req
.byte 0xdf
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trysetsnatch ptr:req
.byte 0xe0
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro trygetintimidatetarget ptr:req
.byte 0xe1
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro switchoutabilities battler:req
.byte 0xe2
2018-08-25 21:04:12 +02:00
.byte \battler
.endm
2021-10-13 16:39:21 -04:00
.macro jumpifhasnohp battler:req, ptr:req
.byte 0xe3
2018-08-25 21:04:12 +02:00
.byte \battler
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro getsecretpowereffect
.byte 0xe4
.endm
.macro pickup
.byte 0xe5
.endm
2022-05-22 01:44:51 +03:00
.macro doweatherformchangeanimation
.byte 0xe6
.endm
2022-05-22 01:44:51 +03:00
.macro tryweatherformdatachange
.byte 0xe7
.endm
2021-10-13 16:39:21 -04:00
.macro settypebasedhalvers ptr:req
.byte 0xe8
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro jumpifsubstituteblocks ptr:req
.byte 0xe9
2018-08-02 20:24:18 +02:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro tryrecycleitem ptr:req
.byte 0xea
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro settypetoterrain ptr:req
.byte 0xeb
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2021-10-13 16:39:21 -04:00
.macro pursuitdoubles ptr:req
.byte 0xec
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
2018-06-30 14:12:17 +02:00
.macro snatchsetbattlers
.byte 0xed
.endm
.macro removelightscreenreflect
.byte 0xee
.endm
2017-11-26 01:19:57 +01:00
.macro handleballthrow
.byte 0xef
.endm
.macro givecaughtmon
.byte 0xf0
.endm
2021-10-13 16:39:21 -04:00
.macro trysetcaughtmondexflags ptr:req
.byte 0xf1
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro displaydexinfo
.byte 0xf2
.endm
2021-10-13 16:39:21 -04:00
.macro trygivecaughtmonnick ptr:req
.byte 0xf3
2021-10-13 16:39:21 -04:00
.4byte \ptr
.endm
.macro subattackerhpbydmg
.byte 0xf4
.endm
.macro removeattackerstatus1
.byte 0xf5
.endm
.macro finishaction
.byte 0xf6
.endm
.macro finishturn
.byte 0xf7
.endm
2021-10-13 16:39:21 -04:00
.macro trainerslideout position:req
.byte 0xf8
2021-10-13 16:39:21 -04:00
.byte \position
.endm
2018-12-02 22:05:23 +01:00
.macro settelekinesis ptr:req
2018-07-21 21:58:07 +02:00
.byte 0xf9
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro swapstatstages stat:req
.byte 0xfa
.byte \stat
.endm
2018-12-02 22:05:23 +01:00
.macro averagestats stat:req
.byte 0xfb
.byte \stat
.endm
2018-12-02 22:05:23 +01:00
.macro jumpifoppositegenders ptr:req
2018-07-22 15:08:32 +02:00
.byte 0xfc
.4byte \ptr
.endm
.macro unused ptr:req
2018-07-22 21:05:12 +02:00
.byte 0xfd
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryworryseed ptr:req
2018-07-23 22:18:56 +02:00
.byte 0xfe
.4byte \ptr
.endm
.macro callnative func:req
.byte 0xff
.4byte \func
.endm
@ callnative macros
2018-12-02 22:05:23 +01:00
.macro metalburstdamagecalculator ptr:req
callnative BS_CalcMetalBurstDmg
.4byte \ptr
.endm
@ various command changed to more readable macros
2018-12-02 19:24:06 +01:00
.macro cancelmultiturnmoves battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro setmagiccoattarget battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_SET_MAGIC_COAT_TARGET
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro getifcantrunfrombattle battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro getmovetarget battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_GET_MOVE_TARGET
2017-11-26 21:04:00 +01:00
.endm
2020-07-16 20:12:12 -04:00
.macro getbattlerfainted battler:req
various \battler, VARIOUS_GET_BATTLER_FAINTED
2017-11-26 21:04:00 +01:00
.endm
2019-10-22 16:02:01 -04:00
.macro resetintimidatetracebits battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro updatechoicemoveonlvlup battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
2017-11-26 21:04:00 +01:00
.endm
2021-09-24 14:30:15 -04:00
.macro resetplayerfainted
various BS_ATTACKER, VARIOUS_RESET_PLAYER_FAINTED
2017-11-26 21:04:00 +01:00
.endm
2020-07-16 20:12:12 -04:00
.macro palaceflavortext battler:req
various \battler, VARIOUS_PALACE_FLAVOR_TEXT
2017-11-26 21:04:00 +01:00
.endm
2018-11-11 18:33:16 +01:00
.macro arenajudgmentwindow
various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW
2017-11-26 21:04:00 +01:00
.endm
2018-11-11 18:33:16 +01:00
.macro arenaopponentmonlost
various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST
2017-11-26 21:04:00 +01:00
.endm
2018-11-11 18:33:16 +01:00
.macro arenaplayermonlost
various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST
2017-11-26 21:04:00 +01:00
.endm
2018-11-11 18:33:16 +01:00
.macro arenabothmonlost
various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro forfeityesnobox battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_EMIT_YESNOBOX
2017-11-26 21:04:00 +01:00
.endm
2021-09-24 14:30:15 -04:00
.macro arenadrawreftextbox
various BS_ATTACKER, VARIOUS_DRAW_ARENA_REF_TEXT_BOX
2017-11-26 21:04:00 +01:00
.endm
2021-09-24 14:30:15 -04:00
.macro arenaerasereftextbox
various BS_ATTACKER, VARIOUS_ERASE_ARENA_REF_TEXT_BOX
2017-11-26 21:04:00 +01:00
.endm
2021-04-03 12:38:07 -04:00
.macro arenajudgmentstring id:req
2018-11-11 18:33:16 +01:00
various \id, VARIOUS_ARENA_JUDGMENT_STRING
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro arenawaitmessage id:req
2018-11-11 18:33:16 +01:00
various \id, VARIOUS_ARENA_WAIT_STRING
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro waitcry battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_WAIT_CRY
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro returnopponentmon1toball battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_RETURN_OPPONENT_MON1
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro returnopponentmon2toball battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_RETURN_OPPONENT_MON2
2017-11-26 21:04:00 +01:00
.endm
2018-08-25 21:04:12 +02:00
.macro volumedown
various BS_ATTACKER, VARIOUS_VOLUME_DOWN
2017-11-26 21:04:00 +01:00
.endm
2018-08-25 21:04:12 +02:00
.macro volumeup
various BS_ATTACKER, VARIOUS_VOLUME_UP
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro setalreadystatusedmoveattempt battler:req
2021-09-24 14:30:15 -04:00
various \battler, VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT
2017-11-26 21:04:00 +01:00
.endm
2021-09-24 14:30:15 -04:00
.macro palacetryescapestatus battler:req
various \battler, VARIOUS_PALACE_TRY_ESCAPE_STATUS
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro setoutcomeonteleport battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_SET_TELEPORT_OUTCOME
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro playtrainerdefeatbgm battler:req
2018-08-25 21:04:12 +02:00
various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
2017-11-26 21:04:00 +01:00
.endm
2018-12-02 22:05:23 +01:00
.macro stattextbuffer battler:req
2018-07-22 18:40:18 +02:00
various \battler, VARIOUS_STAT_TEXT_BUFFER
.endm
2018-12-02 22:05:23 +01:00
.macro switchinabilities battler:req
2018-07-22 18:40:18 +02:00
various \battler, VARIOUS_SWITCHIN_ABILITIES
.endm
2018-07-24 22:09:55 +02:00
.macro savetarget
various BS_TARGET, VARIOUS_SAVE_TARGET
.endm
2018-07-24 22:09:55 +02:00
.macro restoretarget
various BS_TARGET, VARIOUS_RESTORE_TARGET
.endm
2018-12-02 22:05:23 +01:00
.macro instanthpdrop battler:req
2018-07-26 20:36:16 +02:00
various \battler, VARIOUS_INSTANT_HP_DROP
.endm
2018-12-02 22:05:23 +01:00
.macro clearstatus battler:req
2018-07-26 20:36:16 +02:00
various \battler, VARIOUS_CLEAR_STATUS
.endm
2018-12-02 22:05:23 +01:00
.macro restorepp battler:req
2018-07-26 20:36:16 +02:00
various \battler, VARIOUS_RESTORE_PP
.endm
2018-12-02 22:05:23 +01:00
.macro tryactivatemoxie battler:req
2018-07-26 22:52:13 +02:00
various \battler, VARIOUS_TRY_ACTIVATE_MOXIE
.endm
2020-04-19 12:07:56 +02:00
.macro tryactivatebeastboost battler:req
various \battler, VARIOUS_TRY_ACTIVATE_BEAST_BOOST
.endm
2020-04-19 12:07:56 +02:00
.macro tryactivatereceiver battler:req
various \battler, VARIOUS_TRY_ACTIVATE_RECEIVER
.endm
2020-04-18 19:59:09 +02:00
.macro tryactivatesoulheart
various BS_ATTACKER, VARIOUS_TRY_ACTIVATE_SOULHEART
.endm
2018-12-02 22:05:23 +01:00
.macro tryactivatefellstinger battler:req
2018-07-26 23:40:55 +02:00
various \battler, VARIOUS_TRY_ACTIVATE_FELL_STINGER
.endm
2018-12-02 22:05:23 +01:00
.macro playmoveanimation battler:req, move:req
2018-07-29 12:21:28 +02:00
various \battler, VARIOUS_PLAY_MOVE_ANIMATION
.2byte \move
.endm
2018-12-02 22:05:23 +01:00
.macro setluckychant battler:req, ptr:req
various \battler VARIOUS_SET_LUCKY_CHANT
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro suckerpunchcheck ptr:req
various BS_ATTACKER, VARIOUS_SUCKER_PUNCH_CHECK
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro setabilitysimple battler:req, ptr:req
various \battler VARIOUS_SET_SIMPLE_BEAM
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryentrainment ptr:req
various BS_ATTACKER, VARIOUS_TRY_ENTRAINMENT
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro setlastusedability battler:req
various \battler, VARIOUS_SET_LAST_USED_ABILITY
.endm
2018-12-02 22:05:23 +01:00
.macro tryhealpulse battler:req, ptr:req
various \battler, VARIOUS_TRY_HEAL_PULSE
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryquash ptr:req
various BS_ATTACKER, VARIOUS_TRY_QUASH
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryafteryou ptr:req
2018-09-29 19:37:39 +02:00
various BS_ATTACKER, VARIOUS_AFTER_YOU
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro trybestow ptr:req
2018-09-30 12:27:51 +02:00
various BS_ATTACKER, VARIOUS_BESTOW
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro invertstatstages battler:req
2018-08-04 23:34:29 +02:00
various \battler, VARIOUS_INVERT_STAT_STAGES
.endm
2018-12-02 22:05:23 +01:00
.macro setterrain ptr:req
2018-08-05 12:43:57 +02:00
various BS_ATTACKER, VARIOUS_SET_TERRAIN
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro trymefirst ptr:req
2018-08-05 16:43:07 +02:00
various BS_ATTACKER, VARIOUS_TRY_ME_FIRST
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro jumpifbattleend ptr:req
2018-08-11 12:16:00 +02:00
various BS_ATTACKER, VARIOUS_JUMP_IF_BATTLE_END
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryelectrify ptr:req
2018-08-11 13:30:34 +02:00
various BS_ATTACKER, VARIOUS_TRY_ELECTRIFY
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryreflecttype ptr:req
2018-08-11 13:30:34 +02:00
various BS_ATTACKER, VARIOUS_TRY_REFLECT_TYPE
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro trysoak ptr:req
2018-08-11 13:30:34 +02:00
various BS_ATTACKER, VARIOUS_TRY_SOAK
.4byte \ptr
.endm
2019-05-02 23:10:01 +02:00
.macro handlemegaevo battler:req, case:req
2018-09-16 18:55:32 +02:00
various \battler, VARIOUS_HANDLE_MEGA_EVO
2019-05-02 23:10:01 +02:00
.byte \case
2018-09-16 18:55:32 +02:00
.endm
2021-08-25 03:35:21 -03:00
.macro handleprimalreversion battler:req, case:req
various \battler, VARIOUS_HANDLE_PRIMAL_REVERSION
.byte \case
.endm
.macro handleformchange battler:req, case:req
various \battler, VARIOUS_HANDLE_FORM_CHANGE
.byte \case
.endm
2018-12-02 22:05:23 +01:00
.macro jumpifcantuselastresort battler:req, ptr:req
various \battler, VARIOUS_TRY_LAST_RESORT
.4byte \ptr
.endm
.macro argumentstatuseffect
various BS_ATTACKER, VARIOUS_ARGUMENT_STATUS_EFFECT
.endm
2018-12-02 22:05:23 +01:00
.macro tryhitswitchtarget ptr:req
2018-09-22 16:15:00 +02:00
various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET
.4byte \ptr
.endm
.macro tryautotomize battler:req, ptr:req
various \battler, VARIOUS_TRY_AUTOTOMIZE
2018-09-22 17:27:51 +02:00
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro jumpifcantusesynchronoise ptr:req
2018-09-29 15:43:56 +02:00
various BS_ATTACKER, VARIOUS_TRY_SYNCHRONOISE
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro trycopycat ptr:req
2018-09-22 18:37:03 +02:00
various BS_ATTACKER, VARIOUS_TRY_COPYCAT
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro showabilitypopup battler:req
various \battler, VARIOUS_ABILITY_POPUP
.endm
2021-10-12 10:32:51 -04:00
.macro updateabilitypopup battler:req
various \battler, VARIOUS_UPDATE_ABILITY_POPUP
.endm
2018-12-02 22:05:23 +01:00
.macro defogclear battler:req, clear:req, ptr:req
2018-09-23 19:03:53 +02:00
various \battler, VARIOUS_DEFOG
.byte \clear
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro jumpiftargetally ptr:req
2018-09-29 14:10:53 +02:00
various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro trypsychoshift ptr:req
2018-09-29 18:40:14 +02:00
various BS_ATTACKER, VARIOUS_PSYCHO_SHIFT
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro curestatus battler:req
2018-09-29 18:40:14 +02:00
various \battler, VARIOUS_CURE_STATUS
.endm
2018-12-02 22:05:23 +01:00
.macro powertrick battler:req
2018-09-29 18:40:14 +02:00
various \battler, VARIOUS_POWER_TRICK
.endm
2018-09-30 14:04:46 +02:00
.macro argumenttomoveeffect
various BS_ATTACKER, VARIOUS_ARGUMENT_TO_MOVE_EFFECT
.endm
2018-12-02 22:05:23 +01:00
.macro jumpifnotgrounded battler:req, ptr:req
2018-09-30 14:04:46 +02:00
various \battler, VARIOUS_JUMP_IF_NOT_GROUNDED
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro handletrainerslidemsg battler:req, field:req
2018-11-03 01:17:16 +01:00
various \battler, VARIOUS_HANDLE_TRAINER_SLIDE_MSG
.byte \field
.endm
2018-12-02 22:05:23 +01:00
.macro trytrainerslidefirstdownmsg battler:req
2018-11-03 01:17:16 +01:00
various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF
.endm
2018-12-02 22:05:23 +01:00
.macro trytrainerslidelastonmsg battler:req
2018-11-03 01:17:16 +01:00
various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON
.endm
2018-12-02 22:05:23 +01:00
.macro setauroraveil battler:req
various \battler, VARIOUS_SET_AURORA_VEIL
.endm
2018-12-02 22:05:23 +01:00
.macro trysetthirdtype battler:req, ptr:req
2018-11-17 12:10:24 +01:00
various \battler, VARIOUS_TRY_THIRD_TYPE
.4byte \ptr
.endm
2018-12-02 22:05:23 +01:00
.macro tryaccupressure battler:req, ptr:req
2018-11-24 21:06:53 +01:00
various \battler, VARIOUS_ACUPRESSURE
.4byte \ptr
.endm
2018-12-03 12:50:32 +01:00
.macro setpowder battler:req
various \battler, VARIOUS_SET_POWDER
.endm
2019-02-14 12:15:53 +01:00
.macro spectralthiefprintstats
various BS_ATTACKER, VARIOUS_SPECTRAL_THIEF
.endm
.macro bringdownairbornebattler battler:req
various \battler, VARIOUS_GRAVITY_ON_AIRBORNE_MONS
.endm
.macro checkgrassyterrainheal battler:req, ptr:req
various \battler, VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS
.4byte \ptr
.endm
2019-05-20 12:03:00 +02:00
.macro jumpifnotberry battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NOT_BERRY
.4byte \ptr
.endm
2019-03-06 12:09:34 +01:00
.macro jumpifroarfails ptr:req
various BS_ATTACKER, VARIOUS_JUMP_IF_ROAR_FAILS
.4byte \ptr
.endm
2018-09-29 18:40:14 +02:00
.macro tryinstruct ptr:req
various BS_ATTACKER, VARIOUS_TRY_INSTRUCT
.4byte \ptr
.endm
2019-08-05 11:24:49 +02:00
.macro settracedability battler:req
various \battler, VARIOUS_TRACE_ABILITY
.endm
2019-08-08 13:06:55 +02:00
.macro updatenick battler:req
various \battler, VARIOUS_UPDATE_NICK
.endm
2019-08-08 13:06:55 +02:00
.macro tryillusionoff battler:req
various \battler, VARIOUS_TRY_ILLUSION_OFF
.endm
2019-08-08 13:06:55 +02:00
.macro spriteignore0hp val:req
various BS_ATTACKER, VARIOUS_SET_SPRITEIGNORE0HP
.byte \val
.endm
2020-04-13 15:00:17 +02:00
.macro getstatvalue battler:req, statId:req
various \battler, VARIOUS_GET_STAT_VALUE
.byte \statId
.endm
2020-04-13 15:00:17 +02:00
.macro jumpiffullhp battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_FULL_HP
.4byte \ptr
.endm
2020-04-17 21:14:26 +02:00
.macro losetype battler:req, type:req
various \battler, VARIOUS_LOSE_TYPE
.byte \type
.endm
.macro tryfriskmsg battler:req
various \battler, VARIOUS_TRY_FRISK
.endm
2020-04-19 21:18:39 +02:00
.macro jumpifshieldsdown battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED
.4byte \ptr
.endm
.macro trypoisontype attacker:req, target:req, ptr:req
various \attacker, VARIOUS_POISON_TYPE_IMMUNITY
.byte \target
.4byte \ptr
.endm
.macro tryparalyzetype attacker:req, target:req, ptr:req
various \attacker, VARIOUS_PARALYZE_TYPE_IMMUNITY
.byte \target
.4byte \ptr
.endm
2020-04-20 19:41:07 +02:00
.macro trysetfairylock ptr:req
various BS_ATTACKER, VARIOUS_TRY_FAIRY_LOCK
.4byte \ptr
.endm
2020-04-20 20:05:04 +02:00
.macro jumpifnoally battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NO_ALLY
.4byte \ptr
.endm
2020-04-22 10:44:19 +02:00
.macro jumpifnoholdeffect battler:req, holdEffet:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NO_HOLD_EFFECT
.byte \holdEffet
.4byte \ptr
.endm
2020-04-22 14:40:44 +02:00
.macro infatuatewithbattler battler1:req, battler2:req
various \battler1, VARIOUS_INFATUATE_WITH_BATTLER
.byte \battler2
.endm
2020-04-22 15:12:25 +02:00
.macro setlastuseditem battler:req
various \battler, VARIOUS_SET_LAST_USED_ITEM
.endm
2020-06-25 16:15:11 +02:00
.macro jumpifabsent battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_ABSENT
.4byte \ptr
.endm
.macro destroyabilitypopup
various BS_ABILITY_BATTLER, VARIOUS_DESTROY_ABILITY_POPUP
.endm
2020-12-14 08:50:41 -07:00
2020-11-19 10:37:15 -07:00
.macro gettotemboost ptr:req
various BS_ATTACKER, VARIOUS_TOTEM_BOOST
.4byte \ptr
.endm
2021-01-05 19:37:23 -07:00
.macro tryactivategrimneigh, battler:req
various \battler, VARIOUS_TRY_ACTIVATE_GRIM_NEIGH
.endm
.macro setzeffect
various BS_ATTACKER, VARIOUS_SET_Z_EFFECT
.endm
.macro consumeberry battler:req, frombattler:req
2021-07-25 14:55:52 -06:00
various \battler, VARIOUS_CONSUME_BERRY
.byte \frombattler
2021-07-25 14:55:52 -06:00
.endm
2021-03-01 11:28:51 -07:00
.macro activateitemeffects battler:req
various \battler, VARIOUS_MOVEEND_ITEM_EFFECTS
.endm
.macro pickpocketsteal
various 0, VARIOUS_PICKPOCKET
.endm
2021-01-06 20:22:05 -07:00
.macro doterrainseed battler:req, ptr:req
various \battler, VARIOUS_TERRAIN_SEED
.4byte \ptr
.endm
.macro makeinvisible battler:req
various \battler, VARIOUS_MAKE_INVISIBLE
.endm
.macro tryroomservice battler:req, ptr:req
various \battler, VARIOUS_ROOM_SERVICE
.4byte \ptr
.endm
.macro jumpifterrainaffected battler:req, terrainFlags:req, ptr:req
various \battler, VARIOUS_JUMP_IF_TERRAIN_AFFECTED
.4byte \terrainFlags
.4byte \ptr
.endm
2021-09-23 12:26:36 -07:00
.macro jumpifpranksterblocked battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_PRANKSTER_BLOCKED
.4byte \ptr
.endm
.macro eeriespellppreduce ptr:req
various BS_TARGET, VARIOUS_EERIE_SPELL_PP_REDUCE
.4byte \ptr
.endm
.macro jumpifteamhealthy battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_TEAM_HEALTHY
.4byte \ptr
.endm
.macro tryhealquarterhealth battler:req, ptr:req
various \battler, VARIOUS_TRY_HEAL_QUARTER_HP
.4byte \ptr
.endm
.macro removeterrain
various BS_ATTACKER, VARIOUS_REMOVE_TERRAIN
.endm
.macro trytoclearprimalweather
various BS_ATTACKER, VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER
.endm
.macro setattackertostickywebuser
various BS_TARGET, VARIOUS_SET_ATTACKER_STICKY_WEB_USER
2021-10-12 18:04:34 -04:00
.endm
2021-09-16 10:24:32 -04:00
.macro getrototillertargets ptr:req
various BS_ATTACKER, VARIOUS_GET_ROTOTILLER_TARGETS
.4byte \ptr
.endm
2021-09-16 10:24:32 -04:00
.macro jumpifnotrototilleraffected battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED
.4byte \ptr
.endm
2021-10-10 19:56:33 -04:00
.macro tryactivatebattlebond battler:req
various \battler, VARIOUS_TRY_ACTIVATE_BATTLE_BOND
.endm
2021-08-25 03:35:21 -03:00
.macro jumpifcantreverttoprimal ptr:req
various BS_ATTACKER, VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL
.4byte \ptr
.endm
2021-10-17 12:27:17 -03:00
.macro applyplasmafists
various BS_ATTACKER, VARIOUS_APPLY_PLASMA_FISTS
.endm
2021-10-27 16:48:38 -04:00
.macro jumpifweatheraffected battler:req, weather:req, ptr:req
various \battler, VARIOUS_JUMP_IF_WEATHER_AFFECTED
.4byte \weather
.4byte \ptr
.endm
2021-03-01 11:28:51 -07:00
.macro jumpifspecies battler:req, species:req, ptr:req
various \battler, VARIOUS_JUMP_IF_SPECIES
2021-10-17 10:51:22 -03:00
.2byte \species
.4byte \ptr
.endm
2021-11-01 13:50:57 -04:00
.macro tryendneutralizinggas battler:req
various \battler, VARIOUS_TRY_END_NEUTRALIZING_GAS
.endm
.macro trytoapplymimicry battler:req, ptr:req
various \battler, VARIOUS_TRY_TO_APPLY_MIMICRY
.4byte \ptr
.endm
.macro trynoretreat battler:req, ptr:req
various \battler, VARIOUS_TRY_NO_RETREAT
.4byte \ptr
.endm
.macro trytarshot battler:req, ptr:req
various \battler, VARIOUS_TRY_TAR_SHOT
.4byte \ptr
.endm
.macro cantarshotwork battler:req, ptr:req
various \battler, VARIOUS_CAN_TAR_SHOT_WORK
.4byte \ptr
.endm
.macro checkpoltergeist battler:req, ptr:req
various \battler, VARIOUS_CHECK_POLTERGEIST
.4byte \ptr
.endm
.macro setoctolock battler:req, ptr:req
various \battler, VARIOUS_SET_OCTOLOCK
.4byte \ptr
.endm
.macro cutonethirdhpraisestats ptr:req
various BS_ATTACKER, VARIOUS_CUT_1_3_HP_RAISE_STATS
.4byte \ptr
.endm
.macro photongeysercheck battler:req
various \battler, VARIOUS_PHOTON_GEYSER_CHECK
2021-10-27 11:19:39 -03:00
.endm
.macro shellsidearmcheck
various BS_ATTACKER, VARIOUS_SHELL_SIDE_ARM_CHECK
.endm
2021-03-01 11:28:51 -07:00
.macro jumpifcantfling battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_CANT_FLING
2021-11-13 09:46:34 -03:00
.4byte \ptr
.endm
.macro curecertainstatuses battler:req
various \battler, VARIOUS_CURE_CERTAIN_STATUSES
.endm
.macro tryresetnegativestatstages battler:req
various \battler, VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES
.endm
.macro jumpiflastuseditemberry ptr:req
various BS_ATTACKER, VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY
.4byte \ptr
.endm
.macro jumpiflastuseditemholdeffect battler:req, holdEffect:req, ptr:req
various \battler, VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT
.byte \holdEffect
.4byte \ptr
.endm
.macro savebattleritem battler:req
various \battler, VARIOUS_SAVE_BATTLER_ITEM
.endm
.macro restorebattleritem battler:req
various \battler, VARIOUS_RESTORE_BATTLER_ITEM
.endm
.macro battleritemtolastuseditem battler:req
various \battler, VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM
.endm
2021-06-15 19:57:21 +02:00
.macro setbeakblast battler:req
various \battler, VARIOUS_SET_BEAK_BLAST
.endm
2021-06-15 20:14:10 +02:00
.macro swapsidestatuses
various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES
.endm
2021-12-09 20:11:35 -03:00
.macro canteleport battler:req
various \battler, VARIOUS_CAN_TELEPORT
.endm
.macro getbattlerside battler:req
various \battler, VARIOUS_GET_BATTLER_SIDE
.endm
.macro checkparentalbondcounter counter:req, ptr:req
various BS_ATTACKER, VARIOUS_CHECK_PARENTAL_BOND_COUNTER
.byte \counter
.4byte \ptr
.endm
@ helpful macros
2018-12-02 19:24:06 +01:00
.macro setstatchanger stat:req, stages:req, down:req
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
.endm
2018-12-02 19:24:06 +01:00
.macro setmoveeffect effect:req
sethword sMOVE_EFFECT, \effect
sethword sSAVED_MOVE_EFFECT, \effect
.endm
2018-12-02 19:24:06 +01:00
.macro chosenstatus1animation battler:req, status:req
2020-07-16 20:12:12 -04:00
chosenstatusanimation \battler, 0x0, \status
.endm
2018-12-02 19:24:06 +01:00
.macro chosenstatus2animation battler:req, status:req
2020-07-16 20:12:12 -04:00
chosenstatusanimation \battler, 0x1, \status
.endm
2018-12-02 19:24:06 +01:00
.macro sethword dst:req, value:req
2019-02-14 13:17:27 +01:00
setbyte \dst, (\value) & 0xFF
setbyte \dst + 1, ((\value) >> 8) & 0xFF
.endm
2018-12-02 19:24:06 +01:00
.macro setword dst:req, value:req
2019-02-14 13:17:27 +01:00
setbyte \dst, (\value) & 0xFF
setbyte \dst + 1, ((\value) >> 8) & 0xFF
setbyte \dst + 2, ((\value) >> 16) & 0xFF
setbyte \dst + 3, ((\value) >> 24) & 0xFF
2017-11-25 21:11:20 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro copybyte dst:req, src:req
2017-11-25 21:32:17 +01:00
copyarray \dst, \src, 0x1
.endm
2018-12-02 19:24:06 +01:00
.macro copyhword dst:req, src:req
copyarray \dst, \src, 0x2
.endm
2018-12-02 19:24:06 +01:00
.macro copyword dst:req, src:req
2017-11-25 21:32:17 +01:00
copyarray \dst, \src, 0x4
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req
2017-11-25 21:32:17 +01:00
jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req
2017-11-25 21:32:17 +01:00
jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifmove move:req, jumpptr:req
2018-02-08 11:17:41 +01:00
jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr
2017-11-26 11:55:17 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifnotmove move:req, jumpptr:req
2018-02-08 11:17:41 +01:00
jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr
2017-11-26 11:55:17 +01:00
.endm
2018-09-01 12:38:38 +02:00
2018-12-02 22:05:23 +01:00
.macro jumpifnotchosenmove move:req, jumpptr:req
2018-07-26 20:36:16 +02:00
jumpifhalfword CMP_NOT_EQUAL, gChosenMove, \move, \jumpptr
.endm
2018-09-01 12:38:38 +02:00
.macro jumpifstatus3 battler:req, status:req, jumpptr:req
2021-10-13 16:39:21 -04:00
jumpifstatus3condition \battler, \status, FALSE, \jumpptr
2017-11-26 11:55:17 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifnostatus3 battler:req, status:req, jumpptr:req
2021-10-13 16:39:21 -04:00
jumpifstatus3condition \battler, \status, TRUE, \jumpptr
2017-11-26 11:55:17 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifmovehadnoeffect jumpptr:req
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr
2017-12-02 00:03:46 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifbattletype flags:req, jumpptr:req
2018-02-08 11:17:41 +01:00
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
2017-12-02 14:08:55 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifnotbattletype flags:req, jumpptr:req
2018-02-08 11:17:41 +01:00
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
2017-12-02 14:08:55 +01:00
.endm
2018-07-22 21:05:12 +02:00
.macro dmg_1_8_targethp
2019-11-10 12:09:14 +01:00
manipulatedamage DMG_1_8_TARGET_HP
2018-07-22 21:05:12 +02:00
.endm
2018-07-26 20:36:16 +02:00
.macro dmgtomaxattackerhp
2019-11-10 12:09:14 +01:00
manipulatedamage DMG_FULL_ATTACKER_HP
2018-07-26 20:36:16 +02:00
.endm
2018-09-22 16:15:00 +02:00
.macro dmgtocurrattackerhp
2019-11-10 12:09:14 +01:00
manipulatedamage DMG_CURR_ATTACKER_HP
2018-09-22 16:15:00 +02:00
.endm
.macro dmg_1_2_attackerhp
manipulatedamage DMG_1_2_ATTACKER_HP
.endm
.macro jumpifflowerveil jumpptr:req
jumpifnottype BS_TARGET, TYPE_GRASS, 1f
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr
1:
.endm
2021-10-01 02:14:46 -03:00
.macro jumpifflowerveilattacker jumpptr:req
jumpifnottype BS_ATTACKER, TYPE_GRASS, 1f
jumpifability BS_ATTACKER_SIDE, ABILITY_FLOWER_VEIL, \jumpptr
1:
.endm
.macro setallytonexttarget jumpptr:req
jumpifbyte CMP_GREATER_THAN, gBattlerTarget, 0x1, 1f
addbyte gBattlerTarget, 0x2
goto \jumpptr
1:
subbyte gBattlerTarget, 0x2
goto \jumpptr
.endm
.macro jumpifleafguardprotected battler:req, jumpptr:req
various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED
.4byte \jumpptr
2019-12-16 00:29:20 -08:00
.endm
2020-04-23 11:29:19 +02:00
.macro jumpifsafeguard jumpptr:req
jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpptr
1:
.endm
2019-12-16 00:29:20 -08:00
2021-11-20 11:44:48 -08:00
@ Will jump to script pointer if the target weighs less than 200 kg, or 441 lbs.
.macro jumpifunder200 battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_UNDER_200
.4byte \ptr
.endm
@ Sets the sky drop status and does all other necessary operations
.macro setskydrop
various 0, VARIOUS_SET_SKY_DROP
.endm
@ Clears the sky drop status and does all other necessary operations.
@ If the target fainted in before this script is called, it goes to the given script.
.macro clearskydrop ptr:req
various 0, VARIOUS_CLEAR_SKY_DROP
.4byte \ptr
.endm
@ Accounts for if the target of Sky Drop was in confuse_lock when the attacker falls asleep due to Yawn.
.macro skydropyawn
various 0, VARIOUS_SKY_DROP_YAWN
.endm
2022-05-06 22:07:25 -07:00
@ Used by effects that may proc Symbiosis but do not call removeitem.
.macro trysymbiosis
various BS_ATTACKER, VARIOUS_TRY_SYMBIOSIS
.endm