diff options
Diffstat (limited to 'include/macros/battle_script.inc')
-rw-r--r-- | include/macros/battle_script.inc | 1414 |
1 files changed, 1414 insertions, 0 deletions
diff --git a/include/macros/battle_script.inc b/include/macros/battle_script.inc new file mode 100644 index 000000000..e4fa0c454 --- /dev/null +++ b/include/macros/battle_script.inc @@ -0,0 +1,1414 @@ +@ 0 == +@ 1 != +@ 2 < +@ 3 > +@ 4 &= + + .macro calculatedamage + critical + atk5 + atk6 + atk7 + .endm + + + .macro attackcanceler + .byte 0x00 + .endm + + .macro accuracycheck address, param1 + .byte 0x01 + .4byte \address + .2byte \param1 + .endm + + .macro attackstring + .byte 0x02 + .endm + + .macro ppreduce + .byte 0x03 + .endm + + .macro critcalc + .byte 0x04 + .endm + + .macro damagecalc + .byte 0x05 + .endm + + .macro typecalc + .byte 0x06 + .endm + + .macro adjustnormaldamage + .byte 0x07 + .endm + + .macro adjustnormaldamage2 + .byte 0x08 + .endm + + .macro attackanimation + .byte 0x09 + .endm + + .macro waitanimation + .byte 0x0a + .endm + + .macro healthbarupdate bank + .byte 0x0b + .byte \bank + .endm + + .macro datahpupdate bank + .byte 0x0c + .byte \bank + .endm + + .macro critmessage + .byte 0x0d + .endm + + .macro effectivenesssound + .byte 0x0e + .endm + + .macro resultmessage + .byte 0x0f + .endm + + .macro printstring string + .byte 0x10 + .2byte \string + .endm + + .macro printselectionstring string + .byte 0x11 + .2byte \string + .endm + + .macro waitmessage delay + .byte 0x12 + .2byte \delay + .endm + + .macro printfromtable table + .byte 0x13 + .4byte \table + .endm + + .macro printselectionstringfromtable table + .byte 0x14 + .4byte \table + .endm + + .macro seteffectwithchance + .byte 0x15 + .endm + + .macro seteffectprimary + .byte 0x16 + .endm + + .macro seteffectsecondary + .byte 0x17 + .endm + + .macro clearstatusfromeffect bank + .byte 0x18 + .byte \bank + .endm + + .macro tryfaintmon bank, param2, param3 + .byte 0x19 + .byte \bank + .byte \param2 + .4byte \param3 + .endm + + .macro dofaintanimation param1 + .byte 0x1a + .byte \param1 + .endm + + .macro cleareffectsonfaint bank + .byte 0x1b + .byte \bank + .endm + + .macro jumpifstatus bank, status, address + .byte 0x1c + .byte \bank + .4byte \status + .4byte \address + .endm + + .macro jumpifstatus2 bank, status, address + .byte 0x1d + .byte \bank + .4byte \status + .4byte \address + .endm + + .macro jumpifability bank, ability, address + .byte 0x1e + .byte \bank + .byte \ability + .4byte \address + .endm + + .macro jumpifsideaffecting bank, status, address + .byte 0x1f + .byte \bank + .2byte \status + .4byte \address + .endm + + .macro jumpifstat bank, flag, quantity, statid, address + .byte 0x20 + .byte \bank + .byte \flag + .byte \quantity + .byte \statid + .4byte \address + .endm + + .macro jumpifstatus3condition bank, mask, status, address + .byte 0x21 + .byte \bank + .4byte \mask + .byte \status + .4byte \address + .endm + + .macro jumpiftype bank, type, address + .byte 0x22 + .byte \bank + .byte \type + .4byte \address + .endm + + .macro getexp bank + .byte 0x23 + .byte \bank + .endm + + .macro atk24 address + .byte 0x24 + .4byte \address + .endm + + .macro movevaluescleanup + .byte 0x25 + .endm + + .macro setmultihit param1 + .byte 0x26 + .byte \param1 + .endm + + .macro decrementmultihit address + .byte 0x27 + .4byte \address + .endm + + .macro goto address + .byte 0x28 + .4byte \address + .endm + + .macro jumpifbyte ifflag, checkaddr, compare, address + .byte 0x29 + .byte \ifflag + .4byte \checkaddr + .byte \compare + .4byte \address + .endm + + .macro jumpifhalfword ifflag, checkaddr, compare, address + .byte 0x2a + .byte \ifflag + .4byte \checkaddr + .2byte \compare + .4byte \address + .endm + + .macro jumpifword ifflag, checkaddr, compare, address + .byte 0x2b + .byte \ifflag + .4byte \checkaddr + .4byte \compare + .4byte \address + .endm + + .macro jumpifarrayequal mem1, mem2, size, address + .byte 0x2c + .4byte \mem1 + .4byte \mem2 + .byte \size + .4byte \address + .endm + + .macro jumpifarraynotequal mem1, mem2, size, address + .byte 0x2d + .4byte \mem1 + .4byte \mem2 + .byte \size + .4byte \address + .endm + + .macro setbyte pointer, value + .byte 0x2e + .4byte \pointer + .byte \value + .endm + + .macro addbyte pointer, value + .byte 0x2f + .4byte \pointer + .byte \value + .endm + + .macro subbyte pointer, value + .byte 0x30 + .4byte \pointer + .byte \value + .endm + + .macro copyarray destination, source, size + .byte 0x31 + .4byte \destination + .4byte \source + .byte \size + .endm + + .macro copyarraywithindex param1, param2, param3, byte + .byte 0x32 + .4byte \param1 + .4byte \param2 + .4byte \param3 + .byte \byte + .endm + + .macro orbyte pointer, value + .byte 0x33 + .4byte \pointer + .byte \value + .endm + + .macro orhalfword pointer, value + .byte 0x34 + .4byte \pointer + .2byte \value + .endm + + .macro orword pointer, value + .byte 0x35 + .4byte \pointer + .4byte \value + .endm + + .macro bicbyte pointer, value + .byte 0x36 + .4byte \pointer + .byte \value + .endm + + .macro bichalfword pointer, value + .byte 0x37 + .4byte \pointer + .2byte \value + .endm + + .macro bicword pointer, value + .byte 0x38 + .4byte \pointer + .4byte \value + .endm + + .macro pause pause_duration + .byte 0x39 + .2byte \pause_duration + .endm + + .macro waitstate + .byte 0x3a + .endm + + .macro healthbar_update bank + .byte 0x3b + .byte \bank + .endm + + .macro return + .byte 0x3c + .endm + + .macro end + .byte 0x3d + .endm + + .macro end2 + .byte 0x3e + .endm + + .macro end3 + .byte 0x3f + .endm + + .macro jumpifaffectedbyprotect address + .byte 0x40 + .4byte \address + .endm + + .macro call address + .byte 0x41 + .4byte \address + .endm + + .macro jumpiftype2 bank, type, address + .byte 0x42 + .byte \bank + .byte \type + .4byte \address + .endm + + .macro jumpifabilitypresent ability, address + .byte 0x43 + .byte \ability + .4byte \address + .endm + + .macro endselectionscript + .byte 0x44 + .endm + + .macro playanimation bank, animation, var_address + .byte 0x45 + .byte \bank + .byte \animation + .4byte \var_address + .endm + + .macro playanimation2 bank, address, int + .byte 0x46 + .byte \bank + .4byte \address + .4byte \int + .endm + + .macro setgraphicalstatchangevalues + .byte 0x47 + .endm + + .macro playstatchangeanimation bank, color, byte + .byte 0x48 + .byte \bank + .byte \color + .byte \byte + .endm + + .macro moveend byte1, byte2 + .byte 0x49 + .byte \byte1 + .byte \byte2 + .endm + + .macro typecalc2 + .byte 0x4a + .endm + + .macro returnatktoball + .byte 0x4b + .endm + + .macro getswitchedmondata bank + .byte 0x4c + .byte \bank + .endm + + .macro switchindataupdate bank + .byte 0x4d + .byte \bank + .endm + + .macro switchinanim bank, byte + .byte 0x4e + .byte \bank + .byte \byte + .endm + + .macro jumpifcantswitch bank, address + .byte 0x4f + .byte \bank + .4byte \address + .endm + + .macro openpartyscreen bank, address + .byte 0x50 + .byte \bank + .4byte \address + .endm + + .macro switchhandleorder bank, param2 + .byte 0x51 + .byte \bank + .byte \param2 + .endm + + .macro switchineffects bank + .byte 0x52 + .byte \bank + .endm + + .macro trainerslidein bank + .byte 0x53 + .byte \bank + .endm + + .macro playse word + .byte 0x54 + .2byte \word + .endm + + .macro fanfare int + .byte 0x55 + .2byte \int + .endm + + .macro playfaintcry bank_or_side + .byte 0x56 + .byte \bank_or_side + .endm + + .macro atk57 + .byte 0x57 + .endm + + .macro returntoball bank + .byte 0x58 + .byte \bank + .endm + + .macro handlelearnnewmove param1, param2, bank_maybe + .byte 0x59 + .4byte \param1 + .4byte \param2 + .byte \bank_maybe + .endm + + .macro yesnoboxlearnmove address + .byte 0x5a + .4byte \address + .endm + + .macro yesnoboxstoplearningmove address + .byte 0x5b + .4byte \address + .endm + + .macro hitanimation bank + .byte 0x5c + .byte \bank + .endm + + .macro getmoneyreward + .byte 0x5d + .endm + + .macro atk5e bank + .byte 0x5e + .byte \bank + .endm + + .macro atk5f + .byte 0x5f + .endm + + .macro incrementgamestat byte + .byte 0x60 + .byte \byte + .endm + + .macro drawpartystatussummary bank_or_side + .byte 0x61 + .byte \bank_or_side + .endm + + .macro atk62 bank_or_side + .byte 0x62 + .byte \bank_or_side + .endm + + .macro jumptorandomattack bank + .byte 0x63 + .byte \bank + .endm + + .macro statusanimation bank + .byte 0x64 + .byte \bank + .endm + + .macro status2animation bank_or_side, address + .byte 0x65 + .byte \bank_or_side + .4byte \address + .endm + + .macro chosenstatusanimation bank_or_side, bank_or_side2, address + .byte 0x66 + .byte \bank_or_side + .byte \bank_or_side2 + .4byte \address + .endm + + .macro yesnobox + .byte 0x67 + .endm + + .macro cancelallactions + .byte 0x68 + .endm + + .macro adjustsetdamage + .byte 0x69 + .endm + + .macro removeitem bank + .byte 0x6a + .byte \bank + .endm + + .macro atknameinbuff1 + .byte 0x6b + .endm + + .macro drawlvlupbox + .byte 0x6c + .endm + + .macro resetsentmonsvalue + .byte 0x6d + .endm + + .macro setatktoplayer0 + .byte 0x6e + .endm + + .macro makevisible bank + .byte 0x6f + .byte \bank + .endm + + .macro recordlastability bank + .byte 0x70 + .byte \bank + .endm + + .macro buffermovetolearn + .byte 0x71 + .endm + + .macro jumpifplayerran address + .byte 0x72 + .4byte \address + .endm + + .macro hpthresholds bank + .byte 0x73 + .byte \bank + .endm + + .macro hpthresholds2 bank + .byte 0x74 + .byte \bank + .endm + + .macro useitemonopponent + .byte 0x75 + .endm + + .macro various bank, byte + .byte 0x76 + .byte \bank + .byte \byte + .endm + + .macro setprotectlike + .byte 0x77 + .endm + + .macro faintifabilitynotdamp + .byte 0x78 + .endm + + .macro setatkhptozero + .byte 0x79 + .endm + + .macro jumpifnexttargetvalid address + .byte 0x7a + .4byte \address + .endm + + .macro tryhealhalfhealth address, byte + .byte 0x7b + .4byte \address + .byte \byte + .endm + + .macro trymirrormove + .byte 0x7c + .endm + + .macro setrain + .byte 0x7d + .endm + + .macro setreflect + .byte 0x7e + .endm + + .macro setseeded + .byte 0x7f + .endm + + .macro manipulatedamage id + .byte 0x80 + .byte \id + .endm + + .macro trysetrest address + .byte 0x81 + .4byte \address + .endm + + .macro jumpifnotfirstturn address + .byte 0x82 + .4byte \address + .endm + + .macro nop + .byte 0x83 + .endm + + .macro jumpifcantmakeasleep address + .byte 0x84 + .4byte \address + .endm + + .macro stockpile + .byte 0x85 + .endm + + .macro stockpiletobasedamage address + .byte 0x86 + .4byte \address + .endm + + .macro stockpiletohpheal address + .byte 0x87 + .4byte \address + .endm + + .macro negativedamage + .byte 0x88 + .endm + + .macro statbuffchange target, address + .byte 0x89 + .byte \target + .4byte \address + .endm + + .macro normalisebuffs + .byte 0x8a + .endm + + .macro setbide + .byte 0x8b + .endm + + .macro confuseifrepeatingattackends + .byte 0x8c + .endm + + .macro setmultihitcounter count + .byte 0x8d + .byte \count + .endm + + .macro initmultihitstring + .byte 0x8e + .endm + + .macro forcerandomswitch address + .byte 0x8f + .4byte \address + .endm + + .macro tryconversiontypechange address + .byte 0x90 + .4byte \address + .endm + + .macro givepaydaymoney + .byte 0x91 + .endm + + .macro setlightscreen + .byte 0x92 + .endm + + .macro tryKO address + .byte 0x93 + .4byte \address + .endm + + .macro damagetohalftargethp + .byte 0x94 + .endm + + .macro setsandstorm + .byte 0x95 + .endm + + .macro weatherdamage + .byte 0x96 + .endm + + .macro tryinfatuating address + .byte 0x97 + .4byte \address + .endm + + .macro updatestatusicon byte + .byte 0x98 + .byte \byte + .endm + + .macro setmist + .byte 0x99 + .endm + + .macro setfocusenergy + .byte 0x9a + .endm + + .macro transformdataexecution + .byte 0x9b + .endm + + .macro setsubstitute + .byte 0x9c + .endm + + .macro mimicattackcopy address + .byte 0x9d + .4byte \address + .endm + + .macro metronome + .byte 0x9e + .endm + + .macro dmgtolevel + .byte 0x9f + .endm + + .macro psywavedamageeffect + .byte 0xa0 + .endm + + .macro counterdamagecalculator address + .byte 0xa1 + .4byte \address + .endm + + .macro mirrorcoatdamagecalculator address + .byte 0xa2 + .4byte \address + .endm + + .macro disablelastusedattack address + .byte 0xa3 + .4byte \address + .endm + + .macro trysetencore address + .byte 0xa4 + .4byte \address + .endm + + .macro painsplitdmgcalc address + .byte 0xa5 + .4byte \address + .endm + + .macro settypetorandomresistance address + .byte 0xa6 + .4byte \address + .endm + + .macro setalwayshitflag + .byte 0xa7 + .endm + + .macro copymovepermanently address + .byte 0xa8 + .4byte \address + .endm + + .macro trychoosesleeptalkmove address + .byte 0xa9 + .4byte \address + .endm + + .macro setdestinybond + .byte 0xaa + .endm + + .macro trysetdestinybondtohappen + .byte 0xab + .endm + + .macro remaininghptopower + .byte 0xac + .endm + + .macro tryspiteppreduce address + .byte 0xad + .4byte \address + .endm + + .macro healpartystatus + .byte 0xae + .endm + + .macro cursetarget address + .byte 0xaf + .4byte \address + .endm + + .macro trysetspikes address + .byte 0xb0 + .4byte \address + .endm + + .macro setforesight + .byte 0xb1 + .endm + + .macro trysetperishsong address + .byte 0xb2 + .4byte \address + .endm + + .macro rolloutdamagecalculation + .byte 0xb3 + .endm + + .macro jumpifconfusedandstatmaxed bank, address + .byte 0xb4 + .byte \bank + .4byte \address + .endm + + .macro furycuttercalc + .byte 0xb5 + .endm + + .macro happinesstodamagecalculation + .byte 0xb6 + .endm + + .macro presentdamagecalculation + .byte 0xb7 + .endm + + .macro setsafeguard + .byte 0xb8 + .endm + + .macro magnitudedamagecalculation + .byte 0xb9 + .endm + + .macro jumpifnopursuitswitchdmg address + .byte 0xba + .4byte \address + .endm + + .macro setsunny + .byte 0xbb + .endm + + .macro maxattackhalvehp address + .byte 0xbc + .4byte \address + .endm + + .macro copyfoestats address + .byte 0xbd + .4byte \address + .endm + + .macro rapidspinfree + .byte 0xbe + .endm + + .macro setdefensecurlbit + .byte 0xbf + .endm + + .macro recoverbasedonsunlight address + .byte 0xc0 + .4byte \address + .endm + + .macro hiddenpowercalc + .byte 0xc1 + .endm + + .macro selectfirstvalidtarget + .byte 0xc2 + .endm + + .macro trysetfutureattack address + .byte 0xc3 + .4byte \address + .endm + + .macro trydobeatup address1, address2 + .byte 0xc4 + .4byte \address1 + .4byte \address2 + .endm + + .macro setsemiinvulnerablebit + .byte 0xc5 + .endm + + .macro clearsemiinvulnerablebit + .byte 0xc6 + .endm + + .macro setminimize + .byte 0xc7 + .endm + + .macro sethail + .byte 0xc8 + .endm + + .macro jumpifattackandspecialattackcannotfall address + .byte 0xc9 + .4byte \address + .endm + + .macro setforcedtarget + .byte 0xca + .endm + + .macro setcharge + .byte 0xcb + .endm + + .macro callterrainattack + .byte 0xcc + .endm + + .macro cureifburnedparalysedorpoisoned address + .byte 0xcd + .4byte \address + .endm + + .macro settorment address + .byte 0xce + .4byte \address + .endm + + .macro jumpifnodamage address + .byte 0xcf + .4byte \address + .endm + + .macro settaunt address + .byte 0xd0 + .4byte \address + .endm + + .macro trysethelpinghand address + .byte 0xd1 + .4byte \address + .endm + + .macro tryswapitems address + .byte 0xd2 + .4byte \address + .endm + + .macro trycopyability address + .byte 0xd3 + .4byte \address + .endm + + .macro trywish byte, address + .byte 0xd4 + .byte \byte + .4byte \address + .endm + + .macro trysetroots address + .byte 0xd5 + .4byte \address + .endm + + .macro doubledamagedealtifdamaged + .byte 0xd6 + .endm + + .macro setyawn address + .byte 0xd7 + .4byte \address + .endm + + .macro setdamagetohealthdifference address + .byte 0xd8 + .4byte \address + .endm + + .macro scaledamagebyhealthratio + .byte 0xd9 + .endm + + .macro tryswapabilities address + .byte 0xda + .4byte \address + .endm + + .macro tryimprision address + .byte 0xdb + .4byte \address + .endm + + .macro trysetgrudge address + .byte 0xdc + .4byte \address + .endm + + .macro weightdamagecalculation + .byte 0xdd + .endm + + .macro assistattackselect address + .byte 0xde + .4byte \address + .endm + + .macro trysetmagiccoat address + .byte 0xdf + .4byte \address + .endm + + .macro trysetsnatch address + .byte 0xe0 + .4byte \address + .endm + + .macro trygetintimidatetarget address + .byte 0xe1 + .4byte \address + .endm + + .macro switchoutabilities bank + .byte 0xe2 + .byte \bank + .endm + + .macro jumpifhasnohp bank, address + .byte 0xe3 + .byte \bank + .4byte \address + .endm + + .macro getsecretpowereffect + .byte 0xe4 + .endm + + .macro pickup + .byte 0xe5 + .endm + + .macro docastformchangeanimation + .byte 0xe6 + .endm + + .macro trycastformdatachange + .byte 0xe7 + .endm + + .macro settypebasedhalvers address + .byte 0xe8 + .4byte \address + .endm + + .macro setweatherballtype + .byte 0xe9 + .endm + + .macro tryrecycleitem address + .byte 0xea + .4byte \address + .endm + + .macro settypetoterrain address + .byte 0xeb + .4byte \address + .endm + + .macro pursuitrelated address + .byte 0xec + .4byte \address + .endm + + .macro snatchsetbanks + .byte 0xed + .endm + + .macro removelightscreenreflect + .byte 0xee + .endm + + .macro handleballthrow + .byte 0xef + .endm + + .macro givecaughtmon + .byte 0xf0 + .endm + + .macro trysetcaughtmondexflags address + .byte 0xf1 + .4byte \address + .endm + + .macro displaydexinfo + .byte 0xf2 + .endm + + .macro trygivecaughtmonnick address + .byte 0xf3 + .4byte \address + .endm + + .macro subattackerhpbydmg + .byte 0xf4 + .endm + + .macro removeattackerstatus1 + .byte 0xf5 + .endm + + .macro finishaction + .byte 0xf6 + .endm + + .macro finishturn + .byte 0xf7 + .endm + + .macro trainerslideout bank + .byte 0xf8 + .byte \bank + .endm + +@ various command changed to more readable macros + .macro cancelmultiturnmoves bank + various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES + .endm + + .macro setmagiccoattarget bank + various \bank, VARIOUS_SET_MAGIC_COAT_TARGET + .endm + + .macro getifcantrunfrombattle bank + various \bank, VARIOUS_IS_RUNNING_IMPOSSIBLE + .endm + + .macro getmovetarget bank + various \bank, VARIOUS_GET_MOVE_TARGET + .endm + + .macro various4 bank + various \bank, 4 + .endm + + .macro resetintrimidatetracebits bank + various \bank, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + .endm + + .macro updatechoicemoveonlvlup bank + various \bank, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + .endm + + .macro various7 bank + various \bank, 7 + .endm + + .macro various8 bank + various \bank, 8 + .endm + + .macro various9 bank + various \bank, 9 + .endm + + .macro various10 bank + various \bank, 10 + .endm + + .macro various11 bank + various \bank, 11 + .endm + + .macro various12 bank + various \bank, 12 + .endm + + .macro forfeityesnobox bank + various \bank, VARIOUS_EMIT_YESNOBOX + .endm + + .macro various14 bank + various \bank, 14 + .endm + + .macro various15 bank + various \bank, 15 + .endm + + .macro various16 bank + various \bank, 16 + .endm + + .macro various17 bank + various \bank, 17 + .endm + + .macro waitcry bank + various \bank, VARIOUS_WAIT_CRY + .endm + + .macro returnopponentmon1toball bank + various \bank, VARIOUS_RETURN_OPPONENT_MON1 + .endm + + .macro returnopponentmon2toball bank + various \bank, VARIOUS_RETURN_OPPONENT_MON2 + .endm + + .macro various21 bank + various \bank, 21 + .endm + + .macro various22 bank + various \bank, 22 + .endm + + .macro various23 bank + various \bank, 23 + .endm + + .macro various24 bank + various \bank, 24 + .endm + + .macro setoutcomeonteleport bank + various \bank, VARIOUS_SET_TELEPORT_OUTCOME + .endm + + .macro playtrainerdefeatbgm bank + various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + .endm + +@ helpful macros + .macro setstatchanger stat, stages, down + setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7 + .endm + + .macro setmoveeffect effect + setbyte cEFFECT_CHOOSER \effect + .endm + + .macro chosenstatus1animation bank, status + chosenstatusanimation \bank 0x0 \status + .endm + + .macro chosenstatus2animation bank, status + chosenstatusanimation \bank 0x1 \status + .endm + + .macro sethword dst, value + setbyte \dst, \value & 0xFF + setbyte \dst + 1, (\value >> 8) & 0xFF + .endm + + .macro setword dst, value + 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, src + copyarray \dst, \src, 0x1 + .endm + + .macro copyhword dst, src + copyarray \dst, \src, 0x2 + .endm + + .macro copyword dst, src + copyarray \dst, \src, 0x4 + .endm + + .macro jumpifbytenotequal byte1, byte2, jumpptr + jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifbyteequal byte1, byte2, jumpptr + jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifmove move, jumpptr + jumpifhalfword EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifnotmove move, jumpptr + jumpifhalfword NOT_EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifstatus3 bank, status, jumpptr + jumpifstatus3condition \bank, \status, 0x0, \jumpptr + .endm + + .macro jumpifnostatus3 bank, status, jumpptr + jumpifstatus3condition \bank, \status, 0x1, \jumpptr + .endm + + .macro jumpifmovehadnoeffect jumpptr + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr + .endm + + .macro jumpifbattletype flags, jumpptr + jumpifhalfword COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm + + .macro jumpifnotbattletype flags, jumpptr + jumpifhalfword NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm |