From 9151a6d0942c5211f648154bbc675ce4d3a495a7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Nov 2017 18:42:31 +0100 Subject: dump battlescripts, rename battlescripts --- asm/macros/battle_script.inc | 1232 +++++++ constants/battle_constants.inc | 170 + constants/battle_script_constants.inc | 170 + constants/battle_text.inc | 375 +++ data/battle_scripts_1.s | 5184 +++++++++++++++++++++++++---- data/battle_scripts_2.s | 258 +- include/battle.h | 4 +- include/battle_controllers.h | 4 +- include/battle_move_effects.h | 2 +- include/battle_script_commands.h | 6 +- include/battle_scripts.h | 640 ++++ src/battle_2.c | 48 +- src/battle_controller_link_opponent.c | 12 +- src/battle_controller_link_partner.c | 12 +- src/battle_controller_opponent.c | 12 +- src/battle_controller_player.c | 12 +- src/battle_controller_player_partner.c | 12 +- src/battle_controller_recorded_opponent.c | 12 +- src/battle_controller_recorded_player.c | 12 +- src/battle_controller_safari.c | 12 +- src/battle_controller_wally.c | 12 +- src/battle_controllers.c | 6 +- src/battle_script_commands.c | 733 ++-- src/battle_util.c | 198 +- 24 files changed, 7828 insertions(+), 1310 deletions(-) create mode 100644 asm/macros/battle_script.inc create mode 100644 constants/battle_constants.inc create mode 100644 constants/battle_script_constants.inc create mode 100644 constants/battle_text.inc create mode 100644 include/battle_scripts.h diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc new file mode 100644 index 000000000..3a8e99a94 --- /dev/null +++ b/asm/macros/battle_script.inc @@ -0,0 +1,1232 @@ +@ commands + .macro attackcanceler + .byte 0x0 + .endm + + .macro accuracycheck param0, param1 + .byte 0x1 + .4byte \param0 + .2byte \param1 + .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 adjustnormaldamage + .byte 0x7 + .endm + + .macro adjustnormaldamage2 + .byte 0x8 + .endm + + .macro attackanimation + .byte 0x9 + .endm + + .macro waitanimation + .byte 0xa + .endm + + .macro healthbarupdate bank + .byte 0xb + .byte \bank + .endm + + .macro datahpupdate bank + .byte 0xc + .byte \bank + .endm + + .macro critmessage + .byte 0xd + .endm + + .macro effectivenesssound + .byte 0xe + .endm + + .macro resultmessage + .byte 0xf + .endm + + .macro printstring param0 + .byte 0x10 + .2byte \param0 + .endm + + .macro printselectionstring param0 + .byte 0x11 + .2byte \param0 + .endm + + .macro waitmessage param0 + .byte 0x12 + .2byte \param0 + .endm + + .macro printfromtable param0 + .byte 0x13 + .4byte \param0 + .endm + + .macro printselectionstringfromtable param0 + .byte 0x14 + .4byte \param0 + .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, param1, param2 + .byte 0x19 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro dofaintanimation bank + .byte 0x1a + .byte \bank + .endm + + .macro cleareffectsonfaint bank + .byte 0x1b + .byte \bank + .endm + + .macro jumpifstatus bank, status1, param2 + .byte 0x1c + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro jumpifstatus2 bank, status2, param2 + .byte 0x1d + .byte \bank + .4byte \status2 + .4byte \param2 + .endm + + .macro jumpifability param0, ability, param2 + .byte 0x1e + .byte \param0 + .byte \ability + .4byte \param2 + .endm + + .macro jumpifsideaffecting bank, sidestatus, param2 + .byte 0x1f + .byte \bank + .2byte \sidestatus + .4byte \param2 + .endm + + .macro jumpifstat bank, ifflag, stat, param3, param4 + .byte 0x20 + .byte \bank + .byte \ifflag + .byte \stat + .byte \param3 + .4byte \param4 + .endm + + .macro jumpifstatus3 bank, status3, param2, param3 + .byte 0x21 + .byte \bank + .4byte \status3 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpiftype bank, type, param2 + .byte 0x22 + .byte \bank + .byte \type + .4byte \param2 + .endm + + .macro getexp bank + .byte 0x23 + .byte \bank + .endm + + .macro atk24 param0 + .byte 0x24 + .4byte \param0 + .endm + + .macro movevaluescleanup + .byte 0x25 + .endm + + .macro setmultihit param0 + .byte 0x26 + .byte \param0 + .endm + + .macro decrementmultihit param0 + .byte 0x27 + .4byte \param0 + .endm + + .macro goto param0 + .byte 0x28 + .4byte \param0 + .endm + + .macro jumpifbyte ifflag, param1, param2, param3 + .byte 0x29 + .byte \ifflag + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpifhalfword ifflag, param1, param2, param3 + .byte 0x2a + .byte \ifflag + .4byte \param1 + .2byte \param2 + .4byte \param3 + .endm + + .macro jumpifword ifflag, param1, param2, param3 + .byte 0x2b + .byte \ifflag + .4byte \param1 + .4byte \param2 + .4byte \param3 + .endm + + .macro jumpifarrayequal param0, param1, param2, param3 + .byte 0x2c + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpifarraynotequal param0, param1, param2, param3 + .byte 0x2d + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro setbyte param0, param1 + .byte 0x2e + .4byte \param0 + .byte \param1 + .endm + + .macro addbyte param0, param1 + .byte 0x2f + .4byte \param0 + .byte \param1 + .endm + + .macro subbyte param0, param1 + .byte 0x30 + .4byte \param0 + .byte \param1 + .endm + + .macro copyarray param0, param1, param2 + .byte 0x31 + .4byte \param0 + .4byte \param1 + .byte \param2 + .endm + + .macro copyarraywithindex param0, param1, param2, param3 + .byte 0x32 + .4byte \param0 + .4byte \param1 + .4byte \param2 + .byte \param3 + .endm + + .macro orbyte param0, param1 + .byte 0x33 + .4byte \param0 + .byte \param1 + .endm + + .macro orhalfword param0, param1 + .byte 0x34 + .4byte \param0 + .2byte \param1 + .endm + + .macro orword param0, param1 + .byte 0x35 + .4byte \param0 + .4byte \param1 + .endm + + .macro bicbyte param0, param1 + .byte 0x36 + .4byte \param0 + .byte \param1 + .endm + + .macro bichalfword param0, param1 + .byte 0x37 + .4byte \param0 + .2byte \param1 + .endm + + .macro bicword param0, param1 + .byte 0x38 + .4byte \param0 + .4byte \param1 + .endm + + .macro pause param0 + .byte 0x39 + .2byte \param0 + .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 param0 + .byte 0x40 + .4byte \param0 + .endm + + .macro call param0 + .byte 0x41 + .4byte \param0 + .endm + + .macro jumpiftype2 bank, type, param2 + .byte 0x42 + .byte \bank + .byte \type + .4byte \param2 + .endm + + .macro jumpifabilitypresent ability, param1 + .byte 0x43 + .byte \ability + .4byte \param1 + .endm + + .macro endselectionscript + .byte 0x44 + .endm + + .macro playanimation bank, param1, param2 + .byte 0x45 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro playanimation2 bank, param1, param2 + .byte 0x46 + .byte \bank + .4byte \param1 + .4byte \param2 + .endm + + .macro setgraphicalstatchangevalues + .byte 0x47 + .endm + + .macro playstatchangeanimation bank, param1, param2 + .byte 0x48 + .byte \bank + .byte \param1 + .byte \param2 + .endm + + .macro moveend param0, param1 + .byte 0x49 + .byte \param0 + .byte \param1 + .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, param1 + .byte 0x4e + .byte \bank + .byte \param1 + .endm + + .macro jumpifcantswitch bank, param1 + .byte 0x4f + .byte \bank + .4byte \param1 + .endm + + .macro openpartyscreen param0, param1 + .byte 0x50 + .byte \param0 + .4byte \param1 + .endm + + .macro switchhandleorder bank, param1 + .byte 0x51 + .byte \bank + .byte \param1 + .endm + + .macro switchineffects bank + .byte 0x52 + .byte \bank + .endm + + .macro trainerslidein bank + .byte 0x53 + .byte \bank + .endm + + .macro playse param0 + .byte 0x54 + .2byte \param0 + .endm + + .macro fanfare param0 + .byte 0x55 + .2byte \param0 + .endm + + .macro playfaintcry bank + .byte 0x56 + .byte \bank + .endm + + .macro atk57 + .byte 0x57 + .endm + + .macro returntoball bank + .byte 0x58 + .byte \bank + .endm + + .macro handlelearnnewmove param0, param1, param2 + .byte 0x59 + .4byte \param0 + .4byte \param1 + .byte \param2 + .endm + + .macro yesnoboxlearnmove param0 + .byte 0x5a + .4byte \param0 + .endm + + .macro yesnoboxstoplearningmove param0 + .byte 0x5b + .4byte \param0 + .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 param0 + .byte 0x60 + .byte \param0 + .endm + + .macro drawpartystatussummary bank + .byte 0x61 + .byte \bank + .endm + + .macro atk62 bank + .byte 0x62 + .byte \bank + .endm + + .macro jumptorandomattack param0 + .byte 0x63 + .byte \param0 + .endm + + .macro statusanimation bank + .byte 0x64 + .byte \bank + .endm + + .macro status2animation bank, status2 + .byte 0x65 + .byte \bank + .4byte \status2 + .endm + + .macro chosenstatusanimation bank, param1, param2 + .byte 0x66 + .byte \bank + .byte \param1 + .4byte \param2 + .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 param0 + .byte 0x72 + .4byte \param0 + .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, param1 + .byte 0x76 + .byte \bank + .byte \param1 + .endm + + .macro setprotectlike + .byte 0x77 + .endm + + .macro faintifabilitynotdamp + .byte 0x78 + .endm + + .macro setatkhptozero + .byte 0x79 + .endm + + .macro jumpifnexttargetvalid param0 + .byte 0x7a + .4byte \param0 + .endm + + .macro tryhealhalfhealth param0, bank + .byte 0x7b + .4byte \param0 + .byte \bank + .endm + + .macro trymirrormove + .byte 0x7c + .endm + + .macro setrain + .byte 0x7d + .endm + + .macro setreflect + .byte 0x7e + .endm + + .macro setseeded + .byte 0x7f + .endm + + .macro manipulatedamage param0 + .byte 0x80 + .byte \param0 + .endm + + .macro trysetrest param0 + .byte 0x81 + .4byte \param0 + .endm + + .macro jumpifnotfirstturn param0 + .byte 0x82 + .4byte \param0 + .endm + + .macro nop + .byte 0x83 + .endm + + .macro jumpifcantmakeasleep param0 + .byte 0x84 + .4byte \param0 + .endm + + .macro stockpile + .byte 0x85 + .endm + + .macro stockpiletobasedamage param0 + .byte 0x86 + .4byte \param0 + .endm + + .macro stockpiletohpheal param0 + .byte 0x87 + .4byte \param0 + .endm + + .macro negativedamage + .byte 0x88 + .endm + + .macro statbuffchange param0, param1 + .byte 0x89 + .byte \param0 + .4byte \param1 + .endm + + .macro normalisebuffs + .byte 0x8a + .endm + + .macro setbide + .byte 0x8b + .endm + + .macro confuseifrepeatingattackends + .byte 0x8c + .endm + + .macro setmultihitcounter param0 + .byte 0x8d + .byte \param0 + .endm + + .macro initmultihitstring + .byte 0x8e + .endm + + .macro forcerandomswitch param0 + .byte 0x8f + .4byte \param0 + .endm + + .macro tryconversiontypechange param0 + .byte 0x90 + .4byte \param0 + .endm + + .macro givepaydaymoney + .byte 0x91 + .endm + + .macro setlightscreen + .byte 0x92 + .endm + + .macro tryKO param0 + .byte 0x93 + .4byte \param0 + .endm + + .macro damagetohalftargethp + .byte 0x94 + .endm + + .macro setsandstorm + .byte 0x95 + .endm + + .macro weatherdamage + .byte 0x96 + .endm + + .macro tryinfatuating param0 + .byte 0x97 + .4byte \param0 + .endm + + .macro updatestatusicon bank + .byte 0x98 + .byte \bank + .endm + + .macro setmist + .byte 0x99 + .endm + + .macro setfocusenergy + .byte 0x9a + .endm + + .macro transformdataexecution + .byte 0x9b + .endm + + .macro setsubstitute + .byte 0x9c + .endm + + .macro mimicattackcopy param0 + .byte 0x9d + .4byte \param0 + .endm + + .macro metronome + .byte 0x9e + .endm + + .macro dmgtolevel + .byte 0x9f + .endm + + .macro psywavedamageeffect + .byte 0xa0 + .endm + + .macro counterdamagecalculator param0 + .byte 0xa1 + .4byte \param0 + .endm + + .macro mirrorcoatdamagecalculator param0 + .byte 0xa2 + .4byte \param0 + .endm + + .macro disablelastusedattack param0 + .byte 0xa3 + .4byte \param0 + .endm + + .macro trysetencore param0 + .byte 0xa4 + .4byte \param0 + .endm + + .macro painsplitdmgcalc param0 + .byte 0xa5 + .4byte \param0 + .endm + + .macro settypetorandomresistance param0 + .byte 0xa6 + .4byte \param0 + .endm + + .macro setalwayshitflag + .byte 0xa7 + .endm + + .macro copymovepermanently param0 + .byte 0xa8 + .4byte \param0 + .endm + + .macro sleeptalk_choose_move param0 + .byte 0xa9 + .4byte \param0 + .endm + + .macro setdestinybond + .byte 0xaa + .endm + + .macro trysetdestinybondtohappen + .byte 0xab + .endm + + .macro remaininghptopower + .byte 0xac + .endm + + .macro tryspiteppreduce param0 + .byte 0xad + .4byte \param0 + .endm + + .macro healpartystatus + .byte 0xae + .endm + + .macro cursetarget param0 + .byte 0xaf + .4byte \param0 + .endm + + .macro trysetspikes param0 + .byte 0xb0 + .4byte \param0 + .endm + + .macro setforesight + .byte 0xb1 + .endm + + .macro trysetperishsong param0 + .byte 0xb2 + .4byte \param0 + .endm + + .macro rolloutdamagecalculation + .byte 0xb3 + .endm + + .macro jumpifconfusedandstatmaxed stat, param1 + .byte 0xb4 + .byte \stat + .4byte \param1 + .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 param0 + .byte 0xba + .4byte \param0 + .endm + + .macro setsunny + .byte 0xbb + .endm + + .macro maxattackhalvehp param0 + .byte 0xbc + .4byte \param0 + .endm + + .macro copyfoestats param0 + .byte 0xbd + .4byte \param0 + .endm + + .macro rapidspinfree + .byte 0xbe + .endm + + .macro setdefensecurlbit + .byte 0xbf + .endm + + .macro recoverbasedonsunlight param0 + .byte 0xc0 + .4byte \param0 + .endm + + .macro hiddenpowercalc + .byte 0xc1 + .endm + + .macro selectfirstvalidtarget + .byte 0xc2 + .endm + + .macro trysetfutureattack param0 + .byte 0xc3 + .4byte \param0 + .endm + + .macro trydobeatup param0, param1 + .byte 0xc4 + .4byte \param0 + .4byte \param1 + .endm + + .macro setsemiinvulnerablebit + .byte 0xc5 + .endm + + .macro clearsemiinvulnerablebit + .byte 0xc6 + .endm + + .macro setminimize + .byte 0xc7 + .endm + + .macro sethail + .byte 0xc8 + .endm + + .macro jumpifattackandspecialattackcannotfall param0 + .byte 0xc9 + .4byte \param0 + .endm + + .macro setforcedtarget + .byte 0xca + .endm + + .macro setcharge + .byte 0xcb + .endm + + .macro callterrainattack + .byte 0xcc + .endm + + .macro cureifburnedparalysedorpoisoned param0 + .byte 0xcd + .4byte \param0 + .endm + + .macro settorment param0 + .byte 0xce + .4byte \param0 + .endm + + .macro jumpifnodamage param0 + .byte 0xcf + .4byte \param0 + .endm + + .macro settaunt param0 + .byte 0xd0 + .4byte \param0 + .endm + + .macro trysethelpinghand param0 + .byte 0xd1 + .4byte \param0 + .endm + + .macro tryswapitems param0 + .byte 0xd2 + .4byte \param0 + .endm + + .macro trycopyability param0 + .byte 0xd3 + .4byte \param0 + .endm + + .macro trywish param0, param1 + .byte 0xd4 + .byte \param0 + .4byte \param1 + .endm + + .macro trysetroots param0 + .byte 0xd5 + .4byte \param0 + .endm + + .macro doubledamagedealtifdamaged + .byte 0xd6 + .endm + + .macro setyawn param0 + .byte 0xd7 + .4byte \param0 + .endm + + .macro setdamagetohealthdifference param0 + .byte 0xd8 + .4byte \param0 + .endm + + .macro scaledamagebyhealthratio + .byte 0xd9 + .endm + + .macro tryswapabilities param0 + .byte 0xda + .4byte \param0 + .endm + + .macro tryimprision param0 + .byte 0xdb + .4byte \param0 + .endm + + .macro trysetgrudge param0 + .byte 0xdc + .4byte \param0 + .endm + + .macro weightdamagecalculation + .byte 0xdd + .endm + + .macro asistattackselect param0 + .byte 0xde + .4byte \param0 + .endm + + .macro trysetmagiccoat param0 + .byte 0xdf + .4byte \param0 + .endm + + .macro trysetsnatch param0 + .byte 0xe0 + .4byte \param0 + .endm + + .macro trygetintimidatetarget param0 + .byte 0xe1 + .4byte \param0 + .endm + + .macro switchoutabilities bank + .byte 0xe2 + .byte \bank + .endm + + .macro jumpifhasnohp bank, param1 + .byte 0xe3 + .byte \bank + .4byte \param1 + .endm + + .macro getsecretpowereffect + .byte 0xe4 + .endm + + .macro pickup + .byte 0xe5 + .endm + + .macro docastformchangeanimation + .byte 0xe6 + .endm + + .macro trycastformdatachange + .byte 0xe7 + .endm + + .macro settypebasedhalvers param0 + .byte 0xe8 + .4byte \param0 + .endm + + .macro setweatherballtype + .byte 0xe9 + .endm + + .macro tryrecycleitem param0 + .byte 0xea + .4byte \param0 + .endm + + .macro settypetoterrain param0 + .byte 0xeb + .4byte \param0 + .endm + + .macro pursuitrelated param0 + .byte 0xec + .4byte \param0 + .endm + + .macro snatchsetbanks + .byte 0xed + .endm + + .macro removelightscreenreflect + .byte 0xee + .endm + + .macro pokeball_catch_calculation + .byte 0xef + .endm + + .macro givecaughtmon + .byte 0xf0 + .endm + + .macro trysetcaughtmondexflags param0 + .byte 0xf1 + .4byte \param0 + .endm + + .macro displaydexinfo + .byte 0xf2 + .endm + + .macro trygivecaughtmonnick param0 + .byte 0xf3 + .4byte \param0 + .endm + + .macro subattackerhpbydmg + .byte 0xf4 + .endm + + .macro removeattackerstatus1 + .byte 0xf5 + .endm + + .macro finishaction + .byte 0xf6 + .endm + + .macro finishturn + .byte 0xf7 + .endm + + .macro trainerslideout param0 + .byte 0xf8 + .byte \param0 + .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 diff --git a/constants/battle_constants.inc b/constants/battle_constants.inc new file mode 100644 index 000000000..34f16a8c9 --- /dev/null +++ b/constants/battle_constants.inc @@ -0,0 +1,170 @@ +@ battle types + .set BATTLE_TYPE_DOUBLE , 0x0001 + .set BATTLE_TYPE_LINK, 0x0002 + .set BATTLE_TYPE_WILD, 0x0004 + .set BATTLE_TYPE_TRAINER, 0x0008 + .set BATTLE_TYPE_FIRST_BATTLE, 0x0010 + .set BATTLE_TYPE_20, 0x0020 + .set BATTLE_TYPE_MULTI, 0x0040 + .set BATTLE_TYPE_SAFARI, 0x0080 + .set BATTLE_TYPE_BATTLE_TOWER, 0x0100 + .set BATTLE_TYPE_WALLY_TUTORIAL, 0x0200 + .set BATTLE_TYPE_ROAMER, 0x0400 + .set BATTLE_TYPE_EREADER_TRAINER, 0x0800 + .set BATTLE_TYPE_KYOGRE_GROUDON, 0x1000 + .set BATTLE_TYPE_LEGENDARY, 0x2000 + .set BATTLE_TYPE_REGI, 0x4000 + .set BATTLE_TYPE_TWO_OPPONENTS, 0x8000 + .set BATTLE_TYPE_DOME, 0x10000 + .set BATTLE_TYPE_PALACE, 0x20000 + .set BATTLE_TYPE_ARENA, 0x40000 + .set BATTLE_TYPE_FACTORY, 0x80000 + .set BATTLE_TYPE_x100000, 0x100000 + .set BATTLE_TYPE_PYRAMID, 0x200000 + .set BATTLE_TYPE_INGAME_PARTNER, 0x400000 + .set BATTLE_TYPE_x800000, 0x800000 + .set BATTLE_TYPE_RECORDED, 0x1000000 + .set BATTLE_TYPE_x2000000, 0x2000000 + .set BATTLE_TYPE_x4000000, 0x4000000 + .set BATTLE_TYPE_SECRET_BASE, 0x8000000 + .set BATTLE_TYPE_GROUDON, 0x10000000 + .set BATTLE_TYPE_KYORGE, 0x20000000 + .set BATTLE_TYPE_RAYQUAZA, 0x40000000 + .set BATTLE_TYPE_x80000000, 0x80000000 + +@ battle outcomes + .set WON, 0x1 + .set LOST, 0x2 + .set DREW, 0x3 + .set RAN, 0x4 + .set PLAYER_TELEPORTED, 0x5 + .set MON_FLED, 0x6 + .set CAUGHT, 0x7 + .set OUT_OF_BALLS, 0x8 + .set FORFEITED, 0x9 + .set OPPONENT_TELEPORTED, 0xA + +@ identities + .set IDENTITY_PLAYER_MON1, 0 + .set IDENTITY_OPPONENT_MON1, 1 + .set IDENTITY_PLAYER_MON2, 2 + .set IDENTITY_OPPONENT_MON2, 3 + +@ status 1 + .set STATUS_SLEEP, 0x7 + .set STATUS_POISON, 0x8 + .set STATUS_BURN, 0x10 + .set STATUS_FREEZE, 0x20 + .set STATUS_PARALYSIS, 0x40 + .set STATUS_TOXIC_POISON, 0x80 + .set STATUS_TOXIC_COUNTER, 0xF00 + + .set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON + +@ status 2 + .set STATUS2_CONFUSION, 0x00000007 + .set STATUS2_FLINCHED, 0x00000008 + .set STATUS2_UPROAR, 0x00000070 + .set STATUS2_BIDE, 0x00000300 + .set STATUS2_LOCK_CONFUSE, 0x00000C00 + .set STATUS2_MULTIPLETURNS, 0x00001000 + .set STATUS2_WRAPPED, 0x0000E000 + .set STATUS2_INFATUATION, 0x000F0000 + .set STATUS2_FOCUS_ENERGY, 0x00100000 + .set STATUS2_TRANSFORMED, 0x00200000 + .set STATUS2_RECHARGE, 0x00400000 + .set STATUS2_RAGE, 0x00800000 + .set STATUS2_SUBSTITUTE, 0x01000000 + .set STATUS2_DESTINY_BOND, 0x02000000 + .set STATUS2_ESCAPE_PREVENTION, 0x04000000 + .set STATUS2_NIGHTMARE, 0x08000000 + .set STATUS2_CURSED, 0x10000000 + .set STATUS2_FORESIGHT, 0x20000000 + .set STATUS2_DEFENSE_CURL, 0x40000000 + .set STATUS2_TORMENT, 0x80000000 + +@ status 3 + .set STATUS3_LEECHSEED_BANK, 0x3 + .set STATUS3_LEECHSEED, 0x4 + .set STATUS3_ALWAYS_HITS, 0x18 + .set STATUS3_PERISH_SONG, 0x20 + .set STATUS3_ON_AIR, 0x40 + .set STATUS3_UNDERGROUND, 0x80 + .set STATUS3_MINIMIZED, 0x100 + .set STATUS3_ROOTED, 0x400 + .set STATUS3_CHARGED_UP, 0x200 + .set STATUS3_YAWN, 0x1800 + .set STATUS3_IMPRISONED_OTHERS, 0x2000 + .set STATUS3_GRUDGE, 0x4000 + .set STATUS3_CANT_SCORE_A_CRIT, 0x8000 + .set STATUS3_MUDSPORT, 0x10000 + .set STATUS3_WATERSPORT, 0x20000 + .set STATUS3_UNDERWATER, 0x40000 + .set STATUS3_INTIMIDATE_POKES, 0x80000 + .set STATUS3_TRACE, 0x100000 + +@ side status + .set SIDE_STATUS_REFLECT, 0x1 + .set SIDE_STATUS_LIGHTSCREEN, 0x2 + .set SIDE_STATUS_X4, 0x4 + .set SIDE_STATUS_SPIKES, 0x10 + .set SIDE_STATUS_SAFEGUARD, 0x20 + .set SIDE_STATUS_FUTUREATTACK, 0x40 + .set SIDE_STATUS_MIST, 0x100 + .set SIDE_STATUS_SPIKES_DAMAGED, 0x200 + +@ stats + .set HP, 0x0 + .set ATK, 0x1 + .set DEF, 0x2 + .set SPEED, 0x3 + .set SPATK, 0x4 + .set SPDEF, 0x5 + .set ACC, 0x6 + .set EVASION, 0x7 + +@ weather flags + .set WEATHER_RAIN_TEMPORARY, 0x01 + .set WEATHER_RAIN_DOWNPOUR, 0x02 + .set WEATHER_RAIN_PERMANENT, 0x04 + .set WEATHER_SANDSTORM_TEMPORARY, 0x08 + .set WEATHER_SANDSTORM_PERMANENT, 0x10 + .set WEATHER_SUN_TEMPORARY, 0x20 + .set WEATHER_SUN_PERMANENT, 0x40 + .set WEATHER_HAIL, 0x80 + +@ hitmarker + .set HITMARKER_x10, 0x00000010 + .set HITMARKER_x20, 0x00000020 + .set HITMARKER_DESTINYBOND, 0x00000040 + .set HITMARKER_NO_ANIMATIONS, 0x00000080 + .set HITMARKER_IGNORE_SUBSTITUTE, 0x00000100 + .set HITMARKER_NO_ATTACKSTRING, 0x00000200 + .set HITMARKER_ATTACKSTRING_PRINTED, 0x00000400 + .set HITMARKER_NO_PPDEDUCT, 0x00000800 + .set HITMARKER_PURSUIT_TRAP, 0x00001000 + .set HITMARKER_IGNORE_SAFEGUARD, 0x00002000 + .set HITMARKER_SYNCHRONISE_EFFECT, 0x00004000 + .set HITMARKER_RUN, 0x00008000 + .set HITMARKER_IGNORE_ON_AIR, 0x00010000 + .set HITMARKER_IGNORE_UNDERGROUND, 0x00020000 + .set HITMARKER_IGNORE_UNDERWATER, 0x00040000 + .set HITMARKER_UNABLE_TO_USE_MOVE, 0x00080000 + .set HITMARKER_x100000, 0x00100000 + .set HITMARKER_x200000, 0x00200000 + .set HITMARKER_x400000, 0x00400000 + .set HITMARKER_x800000, 0x00800000 + .set HITMARKER_GRUDGE, 0x01000000 + .set HITMARKER_OBEYS, 0x02000000 + .set HITMARKER_x4000000, 0x04000000 + .set HITMARKER_x8000000, 0x08000000 + +@ move flags + .set MOVESTATUS_MISSED, 0x1 + .set MOVESTATUS_SUPEREFFECTIVE, 0x2 + .set MOVESTATUS_NOTVERYEFFECTIVE, 0x4 + .set MOVESTATUS_NOTAFFECTED, 0x8 + .set MOVESTATUS_ONEHITKO, 0x10 + .set MOVESTATUS_FAILED, 0x20 + .set MOVESTATUS_ENDURED, 0x40 + .set MOVESTATUS_HUNGON, 0x80 diff --git a/constants/battle_script_constants.inc b/constants/battle_script_constants.inc new file mode 100644 index 000000000..106bffd03 --- /dev/null +++ b/constants/battle_script_constants.inc @@ -0,0 +1,170 @@ +@ animation ids + .set ANIM_CASTFORM_CHANGE, 0x0 + .set ANIM_STATS_CHANGE, 0x1 + .set ANIM_SUBSTITUTE_FADE, 0x2 + .set ANIM_SUBSTITUTE_APPEAR, 0x3 + .set ANIM_x4, 0x4 + .set ANIM_ITEM_KNOCKOFF, 0x5 + .set ANIM_TURN_TRAP, 0x6 + .set ANIM_ITEM_EFFECT, 0x7 + .set ANIM_SMOKEBALL_ESCAPE, 0x8 + .set ANIM_HANGED_ON, 0x9 + .set ANIM_RAIN_CONTINUES, 0xA + .set ANIM_SUN_CONTINUES, 0xB + .set ANIM_SANDSTORM_CONTINUES, 0xC + .set ANIM_HAIL_CONTINUES, 0xD + .set ANIM_LEECH_SEED_DRAIN, 0xE + .set ANIM_MON_HIT, 0xF + .set ANIM_ITEM_STEAL, 0x10 + .set ANIM_SNATCH_MOVE, 0x11 + .set ANIM_FUTURE_SIGHT_HIT, 0x12 + .set ANIM_x13, 0x13 + .set ANIM_x14, 0x14 + .set ANIM_INGRAIN_HEAL, 0x15 + .set ANIM_WISH_HEAL, 0x16 + +@ atk 80 + .set ATK80_DMG_CHANGE_SIGN, 0x0 + .set ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP, 0x1 + .set ATK80_DMG_DOUBLED, 0x2 + +@ compare operands + .set EQUAL, 0x0 + .set NOT_EQUAL, 0x1 + .set GREATER_THAN, 0x2 + .set LESS_THAN, 0x3 + .set COMMON_BITS, 0x4 + .set NO_COMMON_BITS, 0x5 + +@ move effects + .set EFFECT_SLEEP, 0x1 + .set EFFECT_POISON, 0x2 + .set EFFECT_BURN, 0x3 + .set EFFECT_FREEZE, 0x4 + .set EFFECT_PARALYSIS, 0x5 + .set EFFECT_TOXIC, 0x6 + .set EFFECT_CONFUSION, 0x7 + .set EFFECT_FLINCH, 0x8 + .set EFFECT_TRI_ATTACK, 0x9 + .set EFFECT_UPROAR, 0xA + .set EFFECT_PAYDAY, 0xB + .set EFFECT_CHARGING, 0xC + .set EFFECT_WRAP, 0xD + .set EFFECT_RECOIL_25, 0xE + .set EFFECT_ATK_PLUS_1, 0xF + .set EFFECT_DEF_PLUS_1, 0x10 + .set EFFECT_SPD_PLUS_1, 0x11 + .set EFFECT_SP_ATK_PLUS_1, 0x12 + .set EFFECT_SP_DEF_PLUS_1, 0x13 + .set EFFECT_ACC_PLUS_1, 0x14 + .set EFFECT_EVS_PLUS_1, 0x15 + .set EFFECT_ATK_MINUS_1, 0x16 + .set EFFECT_DEF_MINUS_1, 0x17 + .set EFFECT_SPD_MINUS_1, 0x18 + .set EFFECT_SP_ATK_MINUS_1, 0x19 + .set EFFECT_SP_DEF_MINUS_1, 0x1A + .set EFFECT_ACC_MINUS_1, 0x1B + .set EFFECT_EVS_MINUS_1, 0x1C + .set EFFECT_RECHARGE, 0x1D + .set EFFECT_RAGE, 0x1E + .set EFFECT_STEAL_ITEM, 0x1F + .set EFFECT_PREVENT_ESCAPE, 0x20 + .set EFFECT_NIGHTMARE, 0x21 + .set EFFECT_ALL_STATS_UP, 0x22 + .set EFFECT_RAPIDSPIN, 0x23 + .set EFFECT_REMOVE_PARALYSIS, 0x24 + .set EFFECT_ATK_DEF_DOWN, 0x25 + .set EFFECT_RECOIL_33_PARALYSIS, 0x26 + .set EFFECT_ATK_PLUS_2, 0x27 + .set EFFECT_DEF_PLUS_2, 0x28 + .set EFFECT_SPD_PLUS_2, 0x29 + .set EFFECT_SP_ATK_PLUS_2, 0x2A + .set EFFECT_SP_DEF_PLUS_2, 0x2B + .set EFFECT_ACC_PLUS_2, 0x2C + .set EFFECT_EVS_PLUS_2, 0x2D + .set EFFECT_ATK_MINUS_2, 0x2E + .set EFFECT_DEF_MINUS_2, 0x2F + .set EFFECT_SPD_MINUS_2, 0x30 + .set EFFECT_SP_ATK_MINUS_2, 0x31 + .set EFFECT_SP_DEF_MINUS_2, 0x32 + .set EFFECT_ACC_MINUS_2, 0x33 + .set EFFECT_EVS_MINUS_2, 0x34 + .set EFFECT_THRASH, 0x35 + .set EFFECT_KNOCK_OFF, 0x36 + .set EFFECT_NOTHING_37, 0x37 + .set EFFECT_NOTHING_38, 0x38 + .set EFFECT_NOTHING_39, 0x39 + .set EFFECT_NOTHING_3A, 0x3A + .set EFFECT_SP_ATK_TWO_DOWN, 0x3B + .set EFFECT_NOTHING_3C, 0x3C + .set EFFECT_NOTHING_3D, 0x3D + .set EFFECT_NOTHING_3E, 0x3E + .set EFFECT_NOTHING_3F, 0x3F + + .set AFFECTS_USER, 0x40 + .set CERTAIN, 0x80 + +@ accuracy calc + .set NO_ACC_CALC, 0xFFFE + .set NO_ACC_CALC_CHECK_LOCK_ON, 0xFFFF + .set ACC_CURR_MOVE, 0x0 + +@ bank values + .set TARGET, 0x0 + .set ATTACKER, 0x1 + .set EFFECT_BANK, 0x2 + .set GBANK_1, 0x3 + .set ATTACKER_WITH_PARTNER, 0x4 @ only for cmd98 + .set BANK0, 0x7 + .set SCRIPTING_BANK, 0xA + .set OPPONENT1, 0xC + +@ various + .set VARIOUS_CANCEL_MULTI_TURN_MOVES, 0 + .set VARIOUS_SET_MAGIC_COAT_TARGET, 1 + .set VARIOUS_IS_RUNNING_IMPOSSIBLE, 2 + .set VARIOUS_GET_MOVE_TARGET, 3 + .set VARIOUS_RESET_INTIMIDATE_TRACE_BITS, 5 + .set VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP, 6 + .set VARIOUS_EMIT_YESNOBOX, 13 + .set VARIOUS_WAIT_CRY, 18 + .set VARIOUS_RETURN_OPPONENT_MON1, 19 + .set VARIOUS_RETURN_OPPONENT_MON2, 20 + .set VARIOUS_SET_TELEPORT_OUTCOME, 25 + .set VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC, 26 + +@ jumpifcant switch flag argument + .set ATK4F_DONT_CHECK_STATUSES, 0x80 + +@ battle scripting struct + .equiv sPAINSPLIT_HP, gBattleScripting + .equiv sBIDE_DMG, gBattleScripting + 4 + .equiv sMULTIHIT_STRING, gBattleScripting + 8 + .equiv sDMG_MULTIPLIER, gBattleScripting + 0xE + .equiv sFIELD_F, gBattleScripting + 0xF + .equiv sANIM_ARG1, gBattleScripting + 0x10 + .equiv sANIM_ARG2, gBattleScripting + 0x11 + .equiv sTRIPLE_KICK_POWER, gBattleScripting + 0x12 + .equiv sFIELD_13, gBattleScripting + 0x13 + .equiv sMOVEEND_STATE, gBattleScripting + 0x14 + .equiv sFIELD_15, gBattleScripting + 0x15 + .equiv sFIELD_16, gBattleScripting + 0x16 + .equiv sBANK, gBattleScripting + 0x17 + .equiv sANIM_TURN, gBattleScripting + 0x18 + .equiv sANIM_TARGETS_HIT, gBattleScripting + 0x19 + .equiv sSTATCHANGER, gBattleScripting + 0x1A + .equiv sFIELD_1B, gBattleScripting + 0x1B + .equiv sGIVEEXP_STATE, gBattleScripting + 0x1C + .equiv sBATTLE_STYLE, gBattleScripting + 0x1D + .equiv sLVLBOX_STATE, gBattleScripting + 0x1E + .equiv sLEARNMOVE_STATE, gBattleScripting + 0x1F + .equiv sFIELD_20, gBattleScripting + 0x20 + .equiv sRESHOW_MAIN_STATE, gBattleScripting + 0x21 + .equiv sRESHOW_HELPER_STATE, gBattleScripting + 0x22 + .equiv sFIELD_23, gBattleScripting + 0x23 + .equiv sFIELD_24, gBattleScripting + 0x24 + .equiv sMULTIPLAYER_ID, gBattleScripting + 0x25 + +@ battle communication struct + .equiv cEFFECT_CHOOSER, gBattleCommunication + 3 + .equiv cMULTISTRING_CHOOSER, gBattleCommunication + 5 diff --git a/constants/battle_text.inc b/constants/battle_text.inc new file mode 100644 index 000000000..1d3a5f346 --- /dev/null +++ b/constants/battle_text.inc @@ -0,0 +1,375 @@ + .set STRINGID_INTROMSG, 0 + .set STRINGID_INTROSENDOUT, 1 + .set STRINGID_RETURNMON, 2 + .set STRINGID_SWITCHINMON, 3 + .set STRINGID_USEDMOVE, 4 + .set STRINGID_BATTLEEND, 5 + .set STRINGID_TRAINER1LOSETEXT, 12 + .set STRINGID_PKMNGAINEDEXP, 13 + .set STRINGID_PKMNGREWTOLV, 14 + .set STRINGID_PKMNLEARNEDMOVE, 15 + .set STRINGID_TRYTOLEARNMOVE1, 16 + .set STRINGID_TRYTOLEARNMOVE2, 17 + .set STRINGID_TRYTOLEARNMOVE3, 18 + .set STRINGID_PKMNFORGOTMOVE, 19 + .set STRINGID_STOPLEARNINGMOVE, 20 + .set STRINGID_DIDNOTLEARNMOVE, 21 + .set STRINGID_PKMNLEARNEDMOVE2, 22 + .set STRINGID_ATTACKMISSED, 23 + .set STRINGID_PKMNPROTECTEDITSELF, 24 + .set STRINGID_STATSWONTINCREASE2, 25 + .set STRINGID_AVOIDEDDAMAGE, 26 + .set STRINGID_ITDOESNTAFFECT, 27 + .set STRINGID_ATTACKERFAINTED, 28 + .set STRINGID_TARGETFAINTED, 29 + .set STRINGID_PLAYERGOTMONEY, 30 + .set STRINGID_PLAYERWHITEOUT, 31 + .set STRINGID_PLAYERWHITEOUT2, 32 + .set STRINGID_PREVENTSESCAPE, 33 + .set STRINGID_HITXTIMES, 34 + .set STRINGID_PKMNFELLASLEEP, 35 + .set STRINGID_PKMNMADESLEEP, 36 + .set STRINGID_PKMNALREADYASLEEP, 37 + .set STRINGID_PKMNALREADYASLEEP2, 38 + .set STRINGID_PKMNWASNTAFFECTED, 39 + .set STRINGID_PKMNWASPOISONED, 40 + .set STRINGID_PKMNPOISONEDBY, 41 + .set STRINGID_PKMNHURTBYPOISON, 42 + .set STRINGID_PKMNALREADYPOISONED, 43 + .set STRINGID_PKMNBADLYPOISONED, 44 + .set STRINGID_PKMNENERGYDRAINED, 45 + .set STRINGID_PKMNWASBURNED, 46 + .set STRINGID_PKMNBURNEDBY, 47 + .set STRINGID_PKMNHURTBYBURN, 48 + .set STRINGID_PKMNWASFROZEN, 49 + .set STRINGID_PKMNFROZENBY, 50 + .set STRINGID_PKMNISFROZEN, 51 + .set STRINGID_PKMNWASDEFROSTED, 52 + .set STRINGID_PKMNWASDEFROSTED2, 53 + .set STRINGID_PKMNWASDEFROSTEDBY, 54 + .set STRINGID_PKMNWASPARALYZED, 55 + .set STRINGID_PKMNWASPARALYZEDBY, 56 + .set STRINGID_PKMNISPARALYZED, 57 + .set STRINGID_PKMNISALREADYPARALYZED, 58 + .set STRINGID_PKMNHEALEDPARALYSIS, 59 + .set STRINGID_PKMNDREAMEATEN, 60 + .set STRINGID_STATSWONTINCREASE, 61 + .set STRINGID_STATSWONTDECREASE, 62 + .set STRINGID_TEAMSTOPPEDWORKING, 63 + .set STRINGID_FOESTOPPEDWORKING, 64 + .set STRINGID_PKMNISCONFUSED, 65 + .set STRINGID_PKMNHEALEDCONFUSION, 66 + .set STRINGID_PKMNWASCONFUSED, 67 + .set STRINGID_PKMNALREADYCONFUSED, 68 + .set STRINGID_PKMNFELLINLOVE, 69 + .set STRINGID_PKMNINLOVE, 70 + .set STRINGID_PKMNIMMOBILIZEDBYLOVE, 71 + .set STRINGID_PKMNBLOWNAWAY, 72 + .set STRINGID_PKMNCHANGEDTYPE, 73 + .set STRINGID_PKMNFLINCHED, 74 + .set STRINGID_PKMNREGAINEDHEALTH, 75 + .set STRINGID_PKMNHPFULL, 76 + .set STRINGID_PKMNRAISEDSPDEF, 77 + .set STRINGID_PKMNRAISEDDEF, 78 + .set STRINGID_PKMNCOVEREDBYVEIL, 79 + .set STRINGID_PKMNUSEDSAFEGUARD, 80 + .set STRINGID_PKMNSAFEGUARDEXPIRED, 81 + .set STRINGID_PKMNWENTTOSLEEP, 82 + .set STRINGID_PKMNSLEPTHEALTHY, 83 + .set STRINGID_PKMNWHIPPEDWHIRLWIND, 84 + .set STRINGID_PKMNTOOKSUNLIGHT, 85 + .set STRINGID_PKMNLOWEREDHEAD, 86 + .set STRINGID_PKMNISGLOWING, 87 + .set STRINGID_PKMNFLEWHIGH, 88 + .set STRINGID_PKMNDUGHOLE, 89 + .set STRINGID_PKMNSQUEEZEDBYBIND, 90 + .set STRINGID_PKMNTRAPPEDINVORTEX, 91 + .set STRINGID_PKMNWRAPPEDBY, 92 + .set STRINGID_PKMNCLAMPED, 93 + .set STRINGID_PKMNHURTBY, 94 + .set STRINGID_PKMNFREEDFROM, 95 + .set STRINGID_PKMNCRASHED, 96 + .set STRINGID_PKMNSHROUDEDINMIST, 97 + .set STRINGID_PKMNPROTECTEDBYMIST, 98 + .set STRINGID_PKMNGETTINGPUMPED, 99 + .set STRINGID_PKMNHITWITHRECOIL, 100 + .set STRINGID_PKMNPROTECTEDITSELF2, 101 + .set STRINGID_PKMNBUFFETEDBYSANDSTORM, 102 + .set STRINGID_PKMNPELTEDBYHAIL, 103 + .set STRINGID_PKMNSEEDED, 104 + .set STRINGID_PKMNEVADEDATTACK, 105 + .set STRINGID_PKMNSAPPEDBYLEECHSEED, 106 + .set STRINGID_PKMNFASTASLEEP, 107 + .set STRINGID_PKMNWOKEUP, 108 + .set STRINGID_PKMNUPROARKEPTAWAKE, 109 + .set STRINGID_PKMNWOKEUPINUPROAR, 110 + .set STRINGID_PKMNCAUSEDUPROAR, 111 + .set STRINGID_PKMNMAKINGUPROAR, 112 + .set STRINGID_PKMNCALMEDDOWN, 113 + .set STRINGID_PKMNCANTSLEEPINUPROAR, 114 + .set STRINGID_PKMNSTOCKPILED, 115 + .set STRINGID_PKMNCANTSTOCKPILE, 116 + .set STRINGID_PKMNCANTSLEEPINUPROAR2, 117 + .set STRINGID_UPROARKEPTPKMNAWAKE, 118 + .set STRINGID_PKMNSTAYEDAWAKEUSING, 119 + .set STRINGID_PKMNSTORINGENERGY, 120 + .set STRINGID_PKMNUNLEASHEDENERGY, 121 + .set STRINGID_PKMNFATIGUECONFUSION, 122 + .set STRINGID_PKMNPICKEDUPITEM, 123 + .set STRINGID_PKMNUNAFFECTED, 124 + .set STRINGID_PKMNTRANSFORMEDINTO, 125 + .set STRINGID_PKMNMADESUBSTITUTE, 126 + .set STRINGID_PKMNHASSUBSTITUTE, 127 + .set STRINGID_SUBSTITUTEDAMAGED, 128 + .set STRINGID_PKMNSUBSTITUTEFADED, 129 + .set STRINGID_PKMNMUSTRECHARGE, 130 + .set STRINGID_PKMNRAGEBUILDING, 131 + .set STRINGID_PKMNMOVEWASDISABLED, 132 + .set STRINGID_PKMNMOVEISDISABLED, 133 + .set STRINGID_PKMNMOVEDISABLEDNOMORE, 134 + .set STRINGID_PKMNGOTENCORE, 135 + .set STRINGID_PKMNENCOREENDED, 136 + .set STRINGID_PKMNTOOKAIM, 137 + .set STRINGID_PKMNSKETCHEDMOVE, 138 + .set STRINGID_PKMNTRYINGTOTAKEFOE, 139 + .set STRINGID_PKMNTOOKFOE, 140 + .set STRINGID_PKMNREDUCEDPP, 141 + .set STRINGID_PKMNSTOLEITEM, 142 + .set STRINGID_TARGETCANTESCAPENOW, 143 + .set STRINGID_PKMNFELLINTONIGHTMARE, 144 + .set STRINGID_PKMNLOCKEDINNIGHTMARE, 145 + .set STRINGID_PKMNLAIDCURSE, 146 + .set STRINGID_PKMNAFFLICTEDBYCURSE, 147 + .set STRINGID_SPIKESSCATTERED, 148 + .set STRINGID_PKMNHURTBYSPIKES, 149 + .set STRINGID_PKMNIDENTIFIED, 150 + .set STRINGID_PKMNPERISHCOUNTFELL, 151 + .set STRINGID_PKMNBRACEDITSELF, 152 + .set STRINGID_PKMNENDUREDHIT, 153 + .set STRINGID_MAGNITUDESTRENGTH, 154 + .set STRINGID_PKMNCUTHPMAXEDATTACK, 155 + .set STRINGID_PKMNCOPIEDSTATCHANGES, 156 + .set STRINGID_PKMNGOTFREE, 157 + .set STRINGID_PKMNSHEDLEECHSEED, 158 + .set STRINGID_PKMNBLEWAWAYSPIKES, 159 + .set STRINGID_PKMNFLEDFROMBATTLE, 160 + .set STRINGID_PKMNFORESAWATTACK, 161 + .set STRINGID_PKMNTOOKATTACK, 162 + .set STRINGID_PKMNATTACK, 163 + .set STRINGID_PKMNCENTERATTENTION, 164 + .set STRINGID_PKMNCHARGINGPOWER, 165 + .set STRINGID_NATUREPOWERTURNEDINTO, 166 + .set STRINGID_PKMNSTATUSNORMAL, 167 + .set STRINGID_PKMNHASNOMOVESLEFT, 168 + .set STRINGID_PKMNSUBJECTEDTOTORMENT, 169 + .set STRINGID_PKMNCANTUSEMOVETORMENT, 170 + .set STRINGID_PKMNTIGHTENINGFOCUS, 171 + .set STRINGID_PKMNFELLFORTAUNT, 172 + .set STRINGID_PKMNCANTUSEMOVETAUNT, 173 + .set STRINGID_PKMNREADYTOHELP, 174 + .set STRINGID_PKMNSWITCHEDITEMS, 175 + .set STRINGID_PKMNCOPIEDFOE, 176 + .set STRINGID_PKMNMADEWISH, 177 + .set STRINGID_PKMNWISHCAMETRUE, 178 + .set STRINGID_PKMNPLANTEDROOTS, 179 + .set STRINGID_PKMNABSORBEDNUTRIENTS, 180 + .set STRINGID_PKMNANCHOREDITSELF, 181 + .set STRINGID_PKMNWASMADEDROWSY, 182 + .set STRINGID_PKMNKNOCKEDOFF, 183 + .set STRINGID_PKMNSWAPPEDABILITIES, 184 + .set STRINGID_PKMNSEALEDOPPONENTMOVE, 185 + .set STRINGID_PKMNCANTUSEMOVESEALED, 186 + .set STRINGID_PKMNWANTSGRUDGE, 187 + .set STRINGID_PKMNLOSTPPGRUDGE, 188 + .set STRINGID_PKMNSHROUDEDITSELF, 189 + .set STRINGID_PKMNMOVEBOUNCED, 190 + .set STRINGID_PKMNWAITSFORTARGET, 191 + .set STRINGID_PKMNSNATCHEDMOVE, 192 + .set STRINGID_PKMNMADEITRAIN, 193 + .set STRINGID_PKMNRAISEDSPEED, 194 + .set STRINGID_PKMNPROTECTEDBY, 195 + .set STRINGID_PKMNPREVENTSUSAGE, 196 + .set STRINGID_PKMNRESTOREDHPUSING, 197 + .set STRINGID_PKMNCHANGEDTYPEWITH, 198 + .set STRINGID_PKMNPREVENTSPARALYSISWITH, 199 + .set STRINGID_PKMNPREVENTSROMANCEWITH, 200 + .set STRINGID_PKMNPREVENTSPOISONINGWITH, 201 + .set STRINGID_PKMNPREVENTSCONFUSIONWITH, 202 + .set STRINGID_PKMNRAISEDFIREPOWERWITH, 203 + .set STRINGID_PKMNANCHORSITSELFWITH, 204 + .set STRINGID_PKMNCUTSATTACKWITH, 205 + .set STRINGID_PKMNPREVENTSSTATLOSSWITH, 206 + .set STRINGID_PKMNHURTSWITH, 207 + .set STRINGID_PKMNTRACED, 208 + .set STRINGID_STATSHARPLY, 209 + .set STRINGID_STATROSE, 210 + .set STRINGID_STATHARSHLY, 211 + .set STRINGID_STATFELL, 212 + .set STRINGID_PKMNSSTATCHANGED, 213 + .set STRINGID_PKMNSSTATCHANGED2, 214 + .set STRINGID_PKMNSSTATCHANGED3, 215 + .set STRINGID_PKMNSSTATCHANGED4, 216 + .set STRINGID_CRITICALHIT, 217 + .set STRINGID_ONEHITKO, 218 + .set STRINGID_123POOF, 219 + .set STRINGID_ANDELLIPSIS, 220 + .set STRINGID_NOTVERYEFFECTIVE, 221 + .set STRINGID_SUPEREFFECTIVE, 222 + .set STRINGID_GOTAWAYSAFELY, 223 + .set STRINGID_WILDPKMNFLED, 224 + .set STRINGID_NORUNNINGFROMTRAINERS, 225 + .set STRINGID_CANTESCAPE, 226 + .set STRINGID_DONTLEAVEBIRCH, 227 + .set STRINGID_BUTNOTHINGHAPPENED, 228 + .set STRINGID_BUTITFAILED, 229 + .set STRINGID_ITHURTCONFUSION, 230 + .set STRINGID_MIRRORMOVEFAILED, 231 + .set STRINGID_STARTEDTORAIN, 232 + .set STRINGID_DOWNPOURSTARTED, 233 + .set STRINGID_RAINCONTINUES, 234 + .set STRINGID_DOWNPOURCONTINUES, 235 + .set STRINGID_RAINSTOPPED, 236 + .set STRINGID_SANDSTORMBREWED, 237 + .set STRINGID_SANDSTORMRAGES, 238 + .set STRINGID_SANDSTORMSUBSIDED, 239 + .set STRINGID_SUNLIGHTGOTBRIGHT, 240 + .set STRINGID_SUNLIGHTSTRONG, 241 + .set STRINGID_SUNLIGHTFADED, 242 + .set STRINGID_STARTEDHAIL, 243 + .set STRINGID_HAILCONTINUES, 244 + .set STRINGID_HAILSTOPPED, 245 + .set STRINGID_FAILEDTOSPITUP, 246 + .set STRINGID_FAILEDTOSWALLOW, 247 + .set STRINGID_WINDBECAMEHEATWAVE, 248 + .set STRINGID_STATCHANGESGONE, 249 + .set STRINGID_COINSSCATTERED, 250 + .set STRINGID_TOOWEAKFORSUBSTITUTE, 251 + .set STRINGID_SHAREDPAIN, 252 + .set STRINGID_BELLCHIMED, 253 + .set STRINGID_FAINTINTHREE, 254 + .set STRINGID_NOPPLEFT, 255 + .set STRINGID_BUTNOPPLEFT, 256 + .set STRINGID_PLAYERUSEDITEM, 257 + .set STRINGID_WALLYUSEDITEM, 258 + .set STRINGID_TRAINERBLOCKEDBALL, 259 + .set STRINGID_DONTBEATHIEF, 260 + .set STRINGID_ITDODGEDBALL, 261 + .set STRINGID_YOUMISSEDPKMN, 262 + .set STRINGID_PKMNBROKEFREE, 263 + .set STRINGID_ITAPPEAREDCAUGHT, 264 + .set STRINGID_AARGHALMOSTHADIT, 265 + .set STRINGID_SHOOTSOCLOSE, 266 + .set STRINGID_GOTCHAPKMNCAUGHT, 267 + .set STRINGID_GOTCHAPKMNCAUGHT2, 268 + .set STRINGID_GIVENICKNAMECAPTURED, 269 + .set STRINGID_PKMNSENTTOPC, 270 + .set STRINGID_PKMNDATAADDEDTODEX, 271 + .set STRINGID_ITISRAINING, 272 + .set STRINGID_SANDSTORMISRAGING, 273 + .set STRINGID_CANTESCAPE2, 274 + .set STRINGID_PKMNIGNORESASLEEP, 275 + .set STRINGID_PKMNIGNOREDORDERS, 276 + .set STRINGID_PKMNBEGANTONAP, 277 + .set STRINGID_PKMNLOAFING, 278 + .set STRINGID_PKMNWONTOBEY, 279 + .set STRINGID_PKMNTURNEDAWAY, 280 + .set STRINGID_PKMNPRETENDNOTNOTICE, 281 + .set STRINGID_ENEMYABOUTTOSWITCHPKMN, 282 + .set STRINGID_CREPTCLOSER, 283 + .set STRINGID_CANTGETCLOSER, 284 + .set STRINGID_PKMNWATCHINGCAREFULLY, 285 + .set STRINGID_PKMNCURIOUSABOUTX, 286 + .set STRINGID_PKMNENTHRALLEDBYX, 287 + .set STRINGID_PKMNIGNOREDX, 288 + .set STRINGID_THREWPOKEBLOCKATPKMN, 289 + .set STRINGID_OUTOFSAFARIBALLS, 290 + .set STRINGID_PKMNSITEMCUREDPARALYSIS, 291 + .set STRINGID_PKMNSITEMCUREDPOISON, 292 + .set STRINGID_PKMNSITEMHEALEDBURN, 293 + .set STRINGID_PKMNSITEMDEFROSTEDIT, 294 + .set STRINGID_PKMNSITEMWOKEIT, 295 + .set STRINGID_PKMNSITEMSNAPPEDOUT, 296 + .set STRINGID_PKMNSITEMCUREDPROBLEM, 297 + .set STRINGID_PKMNSITEMRESTOREDHEALTH, 298 + .set STRINGID_PKMNSITEMRESTOREDPP, 299 + .set STRINGID_PKMNSITEMRESTOREDSTATUS, 300 + .set STRINGID_PKMNSITEMRESTOREDHPALITTLE, 301 + .set STRINGID_ITEMALLOWSONLYYMOVE, 302 + .set STRINGID_PKMNHUNGONWITHX, 303 + .set STRINGID_EMPTYSTRING3, 304 + .set STRINGID_PKMNSXPREVENTSBURNS, 305 + .set STRINGID_PKMNSXBLOCKSY, 306 + .set STRINGID_PKMNSXRESTOREDHPALITTLE2, 307 + .set STRINGID_PKMNSXWHIPPEDUPSANDSTORM, 308 + .set STRINGID_PKMNSXPREVENTSYLOSS, 309 + .set STRINGID_PKMNSXINFATUATEDY, 310 + .set STRINGID_PKMNSXMADEYINEFFECTIVE, 311 + .set STRINGID_PKMNSXCUREDYPROBLEM, 312 + .set STRINGID_ITSUCKEDLIQUIDOOZE, 313 + .set STRINGID_PKMNTRANSFORMED, 314 + .set STRINGID_ELECTRICITYWEAKENED, 315 + .set STRINGID_FIREWEAKENED, 316 + .set STRINGID_PKMNHIDUNDERWATER, 317 + .set STRINGID_PKMNSPRANGUP, 318 + .set STRINGID_HMMOVESCANTBEFORGOTTEN, 319 + .set STRINGID_XFOUNDONEY, 320 + .set STRINGID_PLAYERDEFEATEDTRAINER1, 321 + .set STRINGID_SOOTHINGAROMA, 322 + .set STRINGID_ITEMSCANTBEUSEDNOW, 323 + .set STRINGID_FORXCOMMAYZ, 324 + .set STRINGID_USINGXTHEYOFZN, 325 + .set STRINGID_PKMNUSEDXTOGETPUMPED, 326 + .set STRINGID_PKMNSXMADEYUSELESS, 327 + .set STRINGID_PKMNTRAPPEDBYSANDTOMB, 328 + .set STRINGID_EMPTYSTRING4, 329 + .set STRINGID_ABOOSTED, 330 + .set STRINGID_PKMNSXINTENSIFIEDSUN, 331 + .set STRINGID_PKMNMAKESGROUNDMISS, 332 + .set STRINGID_YOUTHROWABALLNOWRIGHT, 333 + .set STRINGID_PKMNSXTOOKATTACK, 334 + .set STRINGID_PKMNCHOSEXASDESTINY, 335 + .set STRINGID_PKMNLOSTFOCUS, 336 + .set STRINGID_USENEXTPKMN, 337 + .set STRINGID_PKMNFLEDUSINGITS, 338 + .set STRINGID_PKMNFLEDUSING, 339 + .set STRINGID_PKMNWASDRAGGEDOUT, 340 + .set STRINGID_PREVENTEDFROMWORKING, 341 + .set STRINGID_PKMNSITEMNORMALIZEDSTATUS, 342 + .set STRINGID_TRAINER1USEDITEM, 343 + .set STRINGID_BOXISFULL, 344 + .set STRINGID_PKMNAVOIDEDATTACK, 345 + .set STRINGID_PKMNSXMADEITINEFFECTIVE, 346 + .set STRINGID_PKMNSXPREVENTSFLINCHING, 347 + .set STRINGID_PKMNALREADYHASBURN, 348 + .set STRINGID_STATSWONTDECREASE2, 349 + .set STRINGID_PKMNSXBLOCKSY2, 350 + .set STRINGID_PKMNSXWOREOFF, 351 + .set STRINGID_PKMNRAISEDDEFALITTLE, 352 + .set STRINGID_PKMNRAISEDSPDEFALITTLE, 353 + .set STRINGID_THEWALLSHATTERED, 354 + .set STRINGID_PKMNSXPREVENTSYSZ, 355 + .set STRINGID_PKMNSXCUREDITSYPROBLEM, 356 + .set STRINGID_ATTACKERCANTESCAPE, 357 + .set STRINGID_PKMNOBTAINEDX, 358 + .set STRINGID_PKMNOBTAINEDX2, 359 + .set STRINGID_PKMNOBTAINEDXYOBTAINEDZ, 360 + .set STRINGID_BUTNOEFFECT, 361 + .set STRINGID_PKMNSXHADNOEFFECTONY, 362 + .set STRINGID_TWOENEMIESDEFEATED, 363 + .set STRINGID_TRAINER2LOSETEXT, 364 + .set STRINGID_PKMNINCAPABLEOFPOWER, 365 + .set STRINGID_GLINTAPPEARSINEYE, 366 + .set STRINGID_PKMNGETTINGINTOPOSITION, 367 + .set STRINGID_PKMNBEGANGROWLINGDEEPLY, 368 + .set STRINGID_PKMNEAGERFORMORE, 369 + .set STRINGID_DEFEATEDOPPONENTBYREFEREE, 370 + .set STRINGID_LOSTTOOPPONENTBYREFEREE, 371 + .set STRINGID_TIEDOPPONENTBYREFEREE, 372 + .set STRINGID_QUESTIONFORFEITMATCH, 373 + .set STRINGID_FORFEITEDMATCH, 374 + .set STRINGID_PKMNTRANSFERREDSOMEONESPC, 375 + .set STRINGID_PKMNTRANSFERREDLANETTESPC, 376 + .set STRINGID_PKMNBOXSOMEONESPCFULL, 377 + .set STRINGID_PKMNBOXLANETTESPCFULL, 378 + .set STRINGID_TRAINER1WINTEXT, 379 + .set STRINGID_TRAINER2WINTEXT, 380 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index b2dfec5d8..1f6be1390 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,586 +1,4610 @@ .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits gBattleScriptsForMoveEffects:: @ 82D86A8 - .incbin "baserom.gba", 0x2d86a8, 0x388 - -BattleScript_PresentDamageTarget:: @ 82D8A30 - .incbin "baserom.gba", 0x2d8a30, 0x1e - -BattleScript_MoveEnd:: @ 82D8A4E - .incbin "baserom.gba", 0x2d8a4e, 0x12 - -BattleScript_PauseEffectivenessSoundResultMsgEndMove:: @ 82D8A60 - .incbin "baserom.gba", 0x2d8a60, 0x274 - -BattleScript_StatUp:: @ 82D8CD4 - .incbin "baserom.gba", 0x2d8cd4, 0x91 - -BattleScript_StatDown:: @ 82D8D65 - .incbin "baserom.gba", 0x2d8d65, 0x6fd - -BattleScript_MoveUsedMustRecharge:: @ 82D9462 - .incbin "baserom.gba", 0x2d9462, 0xa7f - -BattleScript_PresentHealTarget:: @ 82D9EE1 - .incbin "baserom.gba", 0x2d9ee1, 0x1a - -BattleScript_AlreadyAtFullHp:: @ 82D9EFB - .incbin "baserom.gba", 0x2d9efb, 0x21 - -BattleScript_ButItFailed:: @ 82D9F1C - .incbin "baserom.gba", 0x2d9f1c, 0x88e - -BattleScript_FaintAttacker:: @ 82DA7AA - .incbin "baserom.gba", 0x2da7aa, 0xd - -BattleScript_FaintTarget:: @ 82DA7B7 - .incbin "baserom.gba", 0x2da7b7, 0xd - -gUnknown_082DA7C4:: @ 82DA7C4 - .incbin "baserom.gba", 0x2da7c4, 0x9 - -gUnknown_082DA7CD:: @ 82DA7CD - .incbin "baserom.gba", 0x2da7cd, 0x160 - -BattleScript_LocalTrainerBattleWon:: @ 82DA92D - .incbin "baserom.gba", 0x2da92d, 0x3d - -BattleScript_PayDayMoneyAndPickUpItems:: @ 82DA96A - .incbin "baserom.gba", 0x2da96a, 0x3 - -BattleScript_LocalBattleLost:: @ 82DA96D - .incbin "baserom.gba", 0x2da96d, 0x9e - -gUnknown_082DAA0B:: @ 82DAA0B - .incbin "baserom.gba", 0x2daa0b, 0x2a - -BattleScript_LinkBattleWonOrLost:: @ 82DAA35 - .incbin "baserom.gba", 0x2daa35, 0x52 - -BattleScript_FrontierTrainerBattleWon:: @ 82DAA87 - .incbin "baserom.gba", 0x2daa87, 0x54 - -BattleScript_SmokeBallEscape:: @ 82DAADB - .incbin "baserom.gba", 0x2daadb, 0xe - -BattleScript_RanAwayUsingMonAbility:: @ 82DAAE9 - .incbin "baserom.gba", 0x2daae9, 0x7 - -BattleScript_GotAwaySafely:: @ 82DAAF0 - .incbin "baserom.gba", 0x2daaf0, 0x7 - -BattleScript_WildMonFled:: @ 82DAAF7 - .incbin "baserom.gba", 0x2daaf7, 0x7 - -gUnknown_082DAAFE:: @ 82DAAFE - .incbin "baserom.gba", 0x2daafe, 0x4 - -BattleScript_PrintFailedToRunString:: @ 82DAB02 - .incbin "baserom.gba", 0x2dab02, 0x9 - -gUnknown_082DAB0B:: @ 82DAB0B - .incbin "baserom.gba", 0x2dab0b, 0x6 - -gUnknown_082DAB11:: @ 82DAB11 - .incbin "baserom.gba", 0x2dab11, 0x4 - -BattleScript_ActionSwitch:: @ 82DAB15 - .incbin "baserom.gba", 0x2dab15, 0xa4 - -BattleScript_Pausex20:: @ 82DABB9 - .incbin "baserom.gba", 0x2dabb9, 0x4 - -BattleScript_LevelUp:: @ 82DABBD - .incbin "baserom.gba", 0x2dabbd, 0x6f - -gUnknown_082DAC2C:: @ 82DAC2C - .incbin "baserom.gba", 0x2dac2c, 0x1b - -gUnknown_082DAC47:: @ 82DAC47 - .incbin "baserom.gba", 0x2dac47, 0x82 - -gUnknown_082DACC9:: @ 82DACC9 - .incbin "baserom.gba", 0x2dacc9, 0x9 - -gUnknown_082DACD2:: @ 82DACD2 - .incbin "baserom.gba", 0x2dacd2, 0xe - -gUnknown_082DACE0:: @ 82DACE0 - .incbin "baserom.gba", 0x2dace0, 0x7 - -gUnknown_082DACE7:: @ 82DACE7 - .incbin "baserom.gba", 0x2dace7, 0x13 - -gUnknown_082DACFA:: @ 82DACFA - .incbin "baserom.gba", 0x2dacfa, 0x11 - -gUnknown_082DAD0B:: @ 82DAD0B - .incbin "baserom.gba", 0x2dad0b, 0xa - -BattleScript_LeechSeedTurnDrain:: @ 82DAD15 - .incbin "baserom.gba", 0x2dad15, 0x5c - -BattleScript_BideStoringEnergy:: @ 82DAD71 - .incbin "baserom.gba", 0x2dad71, 0xb - -BattleScript_BideAttack:: @ 82DAD7C - .incbin "baserom.gba", 0x2dad7c, 0x48 - -BattleScript_BideNoEnergyToAttack:: @ 82DADC4 - .incbin "baserom.gba", 0x2dadc4, 0x14 - -gUnknown_082DADD8:: @ 82DADD8 - .incbin "baserom.gba", 0x2dadd8, 0x2b - -BattleScript_MistProtected:: @ 82DAE03 - .incbin "baserom.gba", 0x2dae03, 0xa - -BattleScript_RageIsBuilding:: @ 82DAE0D - .incbin "baserom.gba", 0x2dae0d, 0x7 - -BattleScript_MoveUsedIsDisabled:: @ 82DAE14 - .incbin "baserom.gba", 0x2dae14, 0xb - -gUnknown_082DAE1F:: @ 82DAE1F - .incbin "baserom.gba", 0x2dae1f, 0x4 - -BattleScript_DisabledNoMore:: @ 82DAE23 - .incbin "baserom.gba", 0x2dae23, 0x7 - -gUnknown_082DAE2A:: @ 82DAE2A - .incbin "baserom.gba", 0x2dae2a, 0xd - -BattleScript_EncoredNoMore:: @ 82DAE37 - .incbin "baserom.gba", 0x2dae37, 0x7 - -BattleScript_DestinyBondTakesLife:: @ 82DAE3E - .incbin "baserom.gba", 0x2dae3e, 0x1b - -gUnknown_082DAE59:: @ 82DAE59 - .incbin "baserom.gba", 0x2dae59, 0x37 - -gUnknown_082DAE90:: @ 82DAE90 - .incbin "baserom.gba", 0x2dae90, 0x37 - -gUnknown_082DAEC7:: @ 82DAEC7 - .incbin "baserom.gba", 0x2daec7, 0x3e - -gUnknown_082DAF05:: @ 82DAF05 - .incbin "baserom.gba", 0x2daf05, 0x1b - -gUnknown_082DAF20:: @ 82DAF20 - .incbin "baserom.gba", 0x2daf20, 0x7 - -BattleScript_AllStatsUp:: @ 82DAF27 - .incbin "baserom.gba", 0x2daf27, 0x9c - -BattleScript_RapidSpinAway:: @ 82DAFC3 - .incbin "baserom.gba", 0x2dafc3, 0x2 - -BattleScript_WrapFree:: @ 82DAFC5 - .incbin "baserom.gba", 0x2dafc5, 0x11 - -BattleScript_LeechSeedFree:: @ 82DAFD6 - .incbin "baserom.gba", 0x2dafd6, 0x7 - -BattleScript_SpikesFree:: @ 82DAFDD - .incbin "baserom.gba", 0x2dafdd, 0x7 - -gUnknown_082DAFE4:: @ 82DAFE4 - .incbin "baserom.gba", 0x2dafe4, 0x8e - -BattleScript_NoMovesLeft:: @ 82DB072 - .incbin "baserom.gba", 0x2db072, 0x4 - -gUnknown_082DB076:: @ 82DB076 - .incbin "baserom.gba", 0x2db076, 0x4 - -BattleScript_NoPPForMove:: @ 82DB07A - .incbin "baserom.gba", 0x2db07a, 0xf - -gUnknown_082DB089:: @ 82DB089 - .incbin "baserom.gba", 0x2db089, 0xf - -gUnknown_082DB098:: @ 82DB098 - .incbin "baserom.gba", 0x2db098, 0x8 - -gUnknown_082DB0A0:: @ 82DB0A0 - .incbin "baserom.gba", 0x2db0a0, 0x4 - -BattleScript_MoveUsedIsTaunted:: @ 82DB0A4 - .incbin "baserom.gba", 0x2db0a4, 0xb - -gUnknown_082DB0AF:: @ 82DB0AF - .incbin "baserom.gba", 0x2db0af, 0x8 - -BattleScript_WishComesTrue:: @ 82DB0B7 - .incbin "baserom.gba", 0x2db0b7, 0x37 - -BattleScript_IngrainTurnHeal:: @ 82DB0EE - .incbin "baserom.gba", 0x2db0ee, 0x29 - -BattleScript_AtkDefDown:: @ 82DB117 - .incbin "baserom.gba", 0x2db117, 0x51 - -BattleScript_KnockedOff:: @ 82DB168 - .incbin "baserom.gba", 0x2db168, 0xe - -BattleScript_MoveUsedIsImprisoned:: @ 82DB176 - .incbin "baserom.gba", 0x2db176, 0xb - -gUnknown_082DB181:: @ 82DB181 - .incbin "baserom.gba", 0x2db181, 0x4 - -gUnknown_082DB185:: @ 82DB185 - .incbin "baserom.gba", 0x2db185, 0x8 - -BattleScript_GrudgeTakesPp:: @ 82DB18D - .incbin "baserom.gba", 0x2db18d, 0x7 - -BattleScript_MagicCoatBounce:: @ 82DB194 - .incbin "baserom.gba", 0x2db194, 0x18 - -BattleScript_SnatchedMove:: @ 82DB1AC - .incbin "baserom.gba", 0x2db1ac, 0x1b - -BattleScript_EnduredMsg:: @ 82DB1C7 - .incbin "baserom.gba", 0x2db1c7, 0x7 - -BattleScript_OneHitKOMsg:: @ 82DB1CE - .incbin "baserom.gba", 0x2db1ce, 0x7 - -BattleScript_SAtkDown2:: @ 82DB1D5 - .incbin "baserom.gba", 0x2db1d5, 0x2a - -BattleScript_FocusPunchSetUp:: @ 82DB1FF - .incbin "baserom.gba", 0x2db1ff, 0x14 - -BattleScript_MoveUsedIsAsleep:: @ 82DB213 - .incbin "baserom.gba", 0x2db213, 0xd - -BattleScript_MoveUsedWokeUp:: @ 82DB220 - .incbin "baserom.gba", 0x2db220, 0x14 - -gUnknown_082DB234:: @ 82DB234 - .incbin "baserom.gba", 0x2db234, 0x9 - -BattleScript_PoisonTurnDmg:: @ 82DB23D - .incbin "baserom.gba", 0x2db23d, 0x22 - -BattleScript_BurnTurnDmg:: @ 82DB25F - .incbin "baserom.gba", 0x2db25f, 0xb - -BattleScript_MoveUsedIsFrozen:: @ 82DB26A - .incbin "baserom.gba", 0x2db26a, 0xd - -BattleScript_MoveUsedUnfroze:: @ 82DB277 - .incbin "baserom.gba", 0x2db277, 0xb - -BattleScript_DefrostedViaFireMove:: @ 82DB282 - .incbin "baserom.gba", 0x2db282, 0x9 - -BattleScript_MoveUsedIsParalyzed:: @ 82DB28B - .incbin "baserom.gba", 0x2db28b, 0x10 - -BattleScript_MoveUsedFlinched:: @ 82DB29B - .incbin "baserom.gba", 0x2db29b, 0xb - -gUnknown_082DB2A6:: @ 82DB2A6 - .incbin "baserom.gba", 0x2db2a6, 0x9 - -BattleScript_ThrashConfuses:: @ 82DB2AF - .incbin "baserom.gba", 0x2db2af, 0xe - -BattleScript_MoveUsedIsConfused:: @ 82DB2BD - .incbin "baserom.gba", 0x2db2bd, 0x43 - -BattleScript_MoveUsedIsConfusedNoMore:: @ 82DB300 - .incbin "baserom.gba", 0x2db300, 0x7 - -BattleScript_PrintPayDayMoneyString:: @ 82DB307 - .incbin "baserom.gba", 0x2db307, 0x7 - -BattleScript_WrapTurnDmg:: @ 82DB30E - .incbin "baserom.gba", 0x2db30e, 0x12 - -BattleScript_WrapEnds:: @ 82DB320 - .incbin "baserom.gba", 0x2db320, 0x7 - -BattleScript_MoveUsedIsInLove:: @ 82DB327 - .incbin "baserom.gba", 0x2db327, 0xd - -BattleScript_MoveUsedIsParalyzedCantAttack:: @ 82DB334 - .incbin "baserom.gba", 0x2db334, 0xb - -BattleScript_NightmareTurnDmg:: @ 82DB33F - .incbin "baserom.gba", 0x2db33f, 0x11 - -BattleScript_CurseTurnDmg:: @ 82DB350 - .incbin "baserom.gba", 0x2db350, 0x11 - -BattleScript_TargetPRLZHeal:: @ 82DB361 - .incbin "baserom.gba", 0x2db361, 0x9 - -BattleScript_MoveEffectSleep:: @ 82DB36A - .incbin "baserom.gba", 0x2db36A, 0xE - -BattleScript_YawnMakesAsleep:: @ 82DB378 - .incbin "baserom.gba", 0x2db378, 0xE - -BattleScript_MoveEffectPoison:: @ 82DB386 - .incbin "baserom.gba", 0x2db386, 0xF - -BattleScript_MoveEffectBurn:: @ 82DB395 - .incbin "baserom.gba", 0x2db395, 0xF - -BattleScript_MoveEffectFreeze:: @ 82DB3A4 - .incbin "baserom.gba", 0x2db3A4, 0xF - -BattleScript_MoveEffectParalysis:: @ 82DB3B3 - .incbin "baserom.gba", 0x2db3B3, 0xF - -BattleScript_MoveEffectUproar:: @ 82DB3C2 - .incbin "baserom.gba", 0x2db3C2, 0x7 - -BattleScript_MoveEffectToxic:: @ 82DB3C9 - .incbin "baserom.gba", 0x2db3C9, 0xD - -BattleScript_MoveEffectPayDay:: @ 82DB3D6 - .incbin "baserom.gba", 0x2db3D6, 0x7 - -BattleScript_MoveEffectWrap:: @ 82DB3DD - .incbin "baserom.gba", 0x2db3DD, 0x9 - -BattleScript_MoveEffectConfusion:: @ 82DB3E6 - .incbin "baserom.gba", 0x2db3E6, 0xE - -BattleScript_MoveEffectRecoil33:: @ 82DB3F4 - .incbin "baserom.gba", 0x2db3F4, 0x2e - -BattleScript_ItemSteal:: @ 82DB422 - .incbin "baserom.gba", 0x2db422, 0xe - -BattleScript_DrizzleActivates:: @ 82DB430 - .incbin "baserom.gba", 0x2db430, 0x14 - -BattleScript_SpeedBoostActivates:: @ 82DB444 - .incbin "baserom.gba", 0x2db444, 0xe - -BattleScript_TraceActivates:: @ 82DB452 - .incbin "baserom.gba", 0x2db452, 0xa - -BattleScript_RainDishActivates:: @ 82DB45C - .incbin "baserom.gba", 0x2db45c, 0x14 - -BattleScript_SandstreamActivates:: @ 82DB470 - .incbin "baserom.gba", 0x2db470, 0x14 - -BattleScript_ShedSkinActivates:: @ 82DB484 - .incbin "baserom.gba", 0x2db484, 0x25 - -BattleScript_CastformChange:: @ 82DB4A9 - .incbin "baserom.gba", 0x2db4a9, 0xf - -gUnknown_082DB4B8:: @ 82DB4B8 - .incbin "baserom.gba", 0x2db4b8, 0x9 - -gUnknown_082DB4C1:: @ 82DB4C1 - .incbin "baserom.gba", 0x2db4c1, 0x69 - -BattleScript_DroughtActivates:: @ 82DB52A - .incbin "baserom.gba", 0x2db52a, 0x14 - -BattleScript_TookAttack:: @ 82DB53E - .incbin "baserom.gba", 0x2db53e, 0x14 - -BattleScript_SturdyPreventsOHKO:: @ 82DB552 - .incbin "baserom.gba", 0x2db552, 0xe - -BattleScript_DampStopsExplosion:: @ 82DB560 - .incbin "baserom.gba", 0x2db560, 0xe - -BattleScript_MoveHPDrain_PPLoss:: @ 82DB56E - .incbin "baserom.gba", 0x2db56e, 0x1 - -BattleScript_MoveHPDrain:: @ 82DB56F - .incbin "baserom.gba", 0x2db56f, 0x22 - -gUnknown_082DB591:: @ 82DB591 - .incbin "baserom.gba", 0x2db591, 0x1 - -gUnknown_082DB592:: @ 82DB592 - .incbin "baserom.gba", 0x2db592, 0x15 - -BattleScript_FlashFireBoost_PPLoss:: @ 82DB5A7 - .incbin "baserom.gba", 0x2db5a7, 0x1 - -BattleScript_FlashFireBoost:: @ 82DB5A8 - .incbin "baserom.gba", 0x2db5a8, 0x1f - -BattleScript_AbilityNoStatLoss:: @ 82DB5C7 - .incbin "baserom.gba", 0x2db5c7, 0xa - -BattleScript_BRNPrevention:: @ 82DB5D1 - .incbin "baserom.gba", 0x2db5d1, 0xc - -BattleScript_PRLZPrevention:: @ 82DB5DD - .incbin "baserom.gba", 0x2db5dd, 0xc - -BattleScript_PSNPrevention:: @ 82DB5E9 - .incbin "baserom.gba", 0x2db5e9, 0xc - -BattleScript_ObliviousPreventsAttraction:: @ 82DB5F5 - .incbin "baserom.gba", 0x2db5f5, 0xe - -BattleScript_FlinchPrevention:: @ 82DB603 - .incbin "baserom.gba", 0x2db603, 0x1c - -BattleScript_SoundproofProtected:: @ 82DB61F - .incbin "baserom.gba", 0x2db61f, 0x10 - -BattleScript_AbilityNoSpecificStatLoss:: @ 82DB62F - .incbin "baserom.gba", 0x2db62f, 0x10 - -BattleScript_StickyHoldActivates:: @ 82DB63F - .incbin "baserom.gba", 0x2db63f, 0xe - -BattleScript_ColorChangeActivates:: @ 82DB64D - .incbin "baserom.gba", 0x2db64d, 0x7 - -BattleScript_RoughSkinActivates:: @ 82DB654 - .incbin "baserom.gba", 0x2db654, 0x1b - -BattleScript_CuteCharmActivates:: @ 82DB66F - .incbin "baserom.gba", 0x2db66f, 0xd - -BattleScript_ApplySecondaryEffect:: @ 82DB67C - .incbin "baserom.gba", 0x2db67c, 0x3 - -BattleScript_SynchronizeActivates:: @ 82DB67F - .incbin "baserom.gba", 0x2db67f, 0x3 - -BattleScript_NoItemSteal:: @ 82DB682 - .incbin "baserom.gba", 0x2db682, 0xa - -gUnknown_082DB68C:: @ 82DB68C - .incbin "baserom.gba", 0x2db68c, 0x9 - -gUnknown_082DB695:: @ 82DB695 - .incbin "baserom.gba", 0x2db695, 0x10 - -gUnknown_082DB6A5:: @ 82DB6A5 - .incbin "baserom.gba", 0x2db6a5, 0x8 - -BattleScript_MoveUsedLoafingAround:: @ 82DB6AD - .incbin "baserom.gba", 0x2db6ad, 0x2c - -gUnknown_082DB6D9:: @ 82DB6D9 - .incbin "baserom.gba", 0x2db6d9, 0x17 - -gUnknown_082DB6F0:: @ 82DB6F0 - .incbin "baserom.gba", 0x2db6f0, 0xb - -BattleScript_SubstituteFade:: @ 82DB6FB - .incbin "baserom.gba", 0x2db6fb, 0xb - -BattleScript_BerryCurePrlzEnd2:: @ 82DB706 - .incbin "baserom.gba", 0x2db706, 0x6 - -BattleScript_BerryCureParRet:: @ 82DB70C - .incbin "baserom.gba", 0x2db70c, 0x12 - -BattleScript_BerryCurePsnEnd2:: @ 82DB71E - .incbin "baserom.gba", 0x2db71e, 0x6 - -BattleScript_BerryCurePsnRet:: @ 82DB724 - .incbin "baserom.gba", 0x2db724, 0x12 - -BattleScript_BerryCureBrnEnd2:: @ 82DB736 - .incbin "baserom.gba", 0x2db736, 0x6 - -BattleScript_BerryCureBrnRet:: @ 82DB73C - .incbin "baserom.gba", 0x2db73c, 0x12 - -BattleScript_BerryCureFrzEnd2:: @ 82DB74E - .incbin "baserom.gba", 0x2db74e, 0x6 - -BattleScript_BerryCureFrzRet:: @ 82DB754 - .incbin "baserom.gba", 0x2db754, 0x12 - -BattleScript_BerryCureSlpEnd2:: @ 82DB766 - .incbin "baserom.gba", 0x2db766, 0x6 - -BattleScript_BerryCureSlpRet:: @ 82DB76C - .incbin "baserom.gba", 0x2db76c, 0x12 - -BattleScript_BerryCureConfusionEnd2:: @ 82DB77E - .incbin "baserom.gba", 0x2db77e, 0x6 - -BattleScript_BerryCureConfusionRet:: @ 82DB784 - .incbin "baserom.gba", 0x2db784, 0x10 - -BattleScript_BerryCureChosenStatusEnd2:: @ 82DB794 - .incbin "baserom.gba", 0x2db794, 0x6 - -BattleScript_BerryCureChosenStatusRet:: @ 82DB79A - .incbin "baserom.gba", 0x2db79a, 0x14 - -BattleScript_WhiteHerbEnd2:: @ 82DB7AE - .incbin "baserom.gba", 0x2db7ae, 0x6 - -BattleScript_WhiteHerbRet:: @ 82DB7B4 - .incbin "baserom.gba", 0x2db7b4, 0x10 - -BattleScript_ItemHealHP_RemoveItem:: @ 82DB7C4 - .incbin "baserom.gba", 0x2db7c4, 0x1d - -BattleScript_BerryPPHealEnd2:: @ 82DB7E1 - .incbin "baserom.gba", 0x2db7e1, 0x10 - -BattleScript_ItemHealHP_End2:: @ 82DB7F1 - .incbin "baserom.gba", 0x2db7f1, 0x6 - -BattleScript_ItemHealHP_Ret:: @ 82DB7F7 - .incbin "baserom.gba", 0x2db7f7, 0x1b - -gUnknown_082DB812:: @ 82DB812 - .incbin "baserom.gba", 0x2db812, 0x4 - -BattleScript_HangedOnMsg:: @ 82DB816 - .incbin "baserom.gba", 0x2db816, 0xe - -BattleScript_BerryConfuseHealEnd2:: @ 82DB824 - .incbin "baserom.gba", 0x2db824, 0x2a - -BattleScript_BerryStatRaiseEnd2:: @ 82DB84E - .incbin "baserom.gba", 0x2db84e, 0x1b - -BattleScript_BerryFocusEnergyEnd2:: @ 82DB869 - .incbin "baserom.gba", 0x2db869, 0x10 - -BattleScript_ActionSelectionItemsCantBeUsed:: @ 82DB879 - .incbin "baserom.gba", 0x2db879, 0x4 - -gUnknown_082DB87D:: @ 82DB87D - .incbin "baserom.gba", 0x2db87d, 0x4 - -gUnknown_082DB881:: @ 82DB881 - .incbin "baserom.gba", 0x2db881, 0x3d - -gUnknown_082DB8BE:: @ 82DB8BE - .incbin "baserom.gba", 0x2db8be, 0x35 - -gUnknown_082DB8F3:: @ 82DB8F3 - .incbin "baserom.gba", 0x2db8f3, 0xc7 - -gUnknown_082DB9BA:: @ 82DB9BA - .incbin "baserom.gba", 0x2db9ba, 0x7 - -gUnknown_082DB9C1:: @ 82DB9C1 - .incbin "baserom.gba", 0x2db9c1, 0x7 - -gUnknown_082DB9C8:: @ 82DB9C8 - .incbin "baserom.gba", 0x2db9c8, 0xc + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSleep + .4byte BattleScript_EffectPoisonHit + .4byte BattleScript_EffectAbsorb + .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectFreezeHit + .4byte BattleScript_EffectParalyzeHit + .4byte BattleScript_EffectExplosion + .4byte BattleScript_EffectDreamEater + .4byte BattleScript_EffectMirrorMove + .4byte BattleScript_EffectAttackUp + .4byte BattleScript_EffectDefenseUp + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialAttackUp + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectEvasionUp + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAttackDown + .4byte BattleScript_EffectDefenseDown + .4byte BattleScript_EffectSpeedDown + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAccuracyDown + .4byte BattleScript_EffectEvasionDown + .4byte BattleScript_EffectHaze + .4byte BattleScript_EffectBide + .4byte BattleScript_EffectRampage + .4byte BattleScript_EffectRoar + .4byte BattleScript_EffectMultiHit + .4byte BattleScript_EffectConversion + .4byte BattleScript_EffectFlinchHit + .4byte BattleScript_EffectRestoreHp + .4byte BattleScript_EffectToxic + .4byte BattleScript_EffectPayDay + .4byte BattleScript_EffectLightScreen + .4byte BattleScript_EffectTriAttack + .4byte BattleScript_EffectRest + .4byte BattleScript_EffectOhko + .4byte BattleScript_EffectRazorWind + .4byte BattleScript_EffectSuperFang + .4byte BattleScript_EffectDragonRage + .4byte BattleScript_EffectTrap + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectDoubleHit + .4byte BattleScript_EffectRecoilIfMiss + .4byte BattleScript_EffectMist + .4byte BattleScript_EffectFocusEnergy + .4byte BattleScript_EffectRecoil + .4byte BattleScript_EffectConfuse + .4byte BattleScript_EffectAttackUp2 + .4byte BattleScript_EffectDefenseUp2 + .4byte BattleScript_EffectSpeedUp2 + .4byte BattleScript_EffectSpecialAttackUp2 + .4byte BattleScript_EffectSpecialDefenseUp2 + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectTransform + .4byte BattleScript_EffectAttackDown2 + .4byte BattleScript_EffectDefenseDown2 + .4byte BattleScript_EffectSpeedDown2 + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialDefenseDown2 + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectReflect + .4byte BattleScript_EffectPoison + .4byte BattleScript_EffectParalyze + .4byte BattleScript_EffectAttackDownHit + .4byte BattleScript_EffectDefenseDownHit + .4byte BattleScript_EffectSpeedDownHit + .4byte BattleScript_EffectSpecialAttackDownHit + .4byte BattleScript_EffectSpecialDefenseDownHit + .4byte BattleScript_EffectAccuracyDownHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSkyAttack + .4byte BattleScript_EffectConfuseHit + .4byte BattleScript_EffectTwineedle + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSubstitute + .4byte BattleScript_EffectRecharge + .4byte BattleScript_EffectRage + .4byte BattleScript_EffectMimic + .4byte BattleScript_EffectMetronome + .4byte BattleScript_EffectLeechSeed + .4byte BattleScript_EffectSplash + .4byte BattleScript_EffectDisable + .4byte BattleScript_EffectLevelDamage + .4byte BattleScript_EffectPsywave + .4byte BattleScript_EffectCounter + .4byte BattleScript_EffectEncore + .4byte BattleScript_EffectPainSplit + .4byte BattleScript_EffectSnore + .4byte BattleScript_EffectConversion2 + .4byte BattleScript_EffectLockOn + .4byte BattleScript_EffectSketch + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSleepTalk + .4byte BattleScript_EffectDestinyBond + .4byte BattleScript_EffectFlail + .4byte BattleScript_EffectSpite + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHealBell + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectTripleKick + .4byte BattleScript_EffectThief + .4byte BattleScript_EffectMeanLook + .4byte BattleScript_EffectNightmare + .4byte BattleScript_EffectMinimize + .4byte BattleScript_EffectCurse + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectSpikes + .4byte BattleScript_EffectForesight + .4byte BattleScript_EffectPerishSong + .4byte BattleScript_EffectSandstorm + .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectRollout + .4byte BattleScript_EffectSwagger + .4byte BattleScript_EffectFuryCutter + .4byte BattleScript_EffectAttract + .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectPresent + .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectSafeguard + .4byte BattleScript_EffectThawHit + .4byte BattleScript_EffectMagnitude + .4byte BattleScript_EffectBatonPass + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectRapidSpin + .4byte BattleScript_EffectSonicboom + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectHiddenPower + .4byte BattleScript_EffectRainDance + .4byte BattleScript_EffectSunnyDay + .4byte BattleScript_EffectDefenseUpHit + .4byte BattleScript_EffectAttackUpHit + .4byte BattleScript_EffectAllStatsUpHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectBellyDrum + .4byte BattleScript_EffectPsychUp + .4byte BattleScript_EffectMirrorCoat + .4byte BattleScript_EffectSkullBash + .4byte BattleScript_EffectTwister + .4byte BattleScript_EffectEarthquake + .4byte BattleScript_EffectFutureSight + .4byte BattleScript_EffectGust + .4byte BattleScript_EffectStomp + .4byte BattleScript_EffectSolarbeam + .4byte BattleScript_EffectThunder + .4byte BattleScript_EffectTeleport + .4byte BattleScript_EffectBeatUp + .4byte BattleScript_EffectFly + .4byte BattleScript_EffectDefenseCurl + .4byte BattleScript_EffectSoftboiled + .4byte BattleScript_EffectFakeOut + .4byte BattleScript_EffectUproar + .4byte BattleScript_EffectStockpile + .4byte BattleScript_EffectSpitUp + .4byte BattleScript_EffectSwallow + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHail + .4byte BattleScript_EffectTorment + .4byte BattleScript_EffectFlatter + .4byte BattleScript_EffectWillOWisp + .4byte BattleScript_EffectMemento + .4byte BattleScript_EffectFacade + .4byte BattleScript_EffectFocusPunch + .4byte BattleScript_EffectSmellingsalt + .4byte BattleScript_EffectFollowMe + .4byte BattleScript_EffectNaturePower + .4byte BattleScript_EffectCharge + .4byte BattleScript_EffectTaunt + .4byte BattleScript_EffectHelpingHand + .4byte BattleScript_EffectTrick + .4byte BattleScript_EffectRolePlay + .4byte BattleScript_EffectWish + .4byte BattleScript_EffectAssist + .4byte BattleScript_EffectIngrain + .4byte BattleScript_EffectSuperpower + .4byte BattleScript_EffectMagicCoat + .4byte BattleScript_EffectRecycle + .4byte BattleScript_EffectRevenge + .4byte BattleScript_EffectBrickBreak + .4byte BattleScript_EffectYawn + .4byte BattleScript_EffectKnockOff + .4byte BattleScript_EffectEndeavor + .4byte BattleScript_EffectEruption + .4byte BattleScript_EffectSkillSwap + .4byte BattleScript_EffectImprison + .4byte BattleScript_EffectRefresh + .4byte BattleScript_EffectGrudge + .4byte BattleScript_EffectSnatch + .4byte BattleScript_EffectLowKick + .4byte BattleScript_EffectSecretPower + .4byte BattleScript_EffectDoubleEdge + .4byte BattleScript_EffectTeeterDance + .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectPoisonFang + .4byte BattleScript_EffectWeatherBall + .4byte BattleScript_EffectOverheat + .4byte BattleScript_EffectTickle + .4byte BattleScript_EffectCosmicPower + .4byte BattleScript_EffectSkyUppercut + .4byte BattleScript_EffectBulkUp + .4byte BattleScript_EffectPoisonHit + .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectCalmMind + .4byte BattleScript_EffectDragonDance + .4byte BattleScript_EffectCamouflage + +BattleScript_EffectHit:: + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SURF, BattleScript_HitFromAtkCanceler + jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_HitFromAtkCanceler + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_HitFromAtkCanceler:: + attackcanceler +BattleScript_HitFromAccCheck:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE +BattleScript_HitFromAtkString:: + attackstring + ppreduce +BattleScript_HitFromCritCalc:: + critcalc + damagecalc + typecalc + adjustnormaldamage +BattleScript_HitFromAtkAnimation:: + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL +BattleScript_MoveEnd:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + end + +BattleScript_MakeMoveMissed:: + orbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_PrintMoveMissed:: + attackstring + ppreduce +BattleScript_MoveMissedPause:: + pause 0x20 +BattleScript_MoveMissed:: + effectivenesssound + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleep:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8AB0 + jumpifcantmakeasleep BattleScript_82D8ACF + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_SLEEP + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_82D8AB0:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8AC1:: + pause 0x20 + printstring STRINGID_PKMNWASNTAFFECTED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8ACF:: + pause 0x20 + printfromtable 0x85CC896 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonHit:: + setmoveeffect EFFECT_POISON + goto BattleScript_EffectHit + +BattleScript_EffectAbsorb:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_82D8B26 + setbyte cMULTISTRING_CHOOSER, 0x0 + goto BattleScript_82D8B2E + +BattleScript_82D8B26:: + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x1 +BattleScript_82D8B2E:: + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8B45 + printfromtable 0x85CC8FC + waitmessage 0x40 +BattleScript_82D8B45:: + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectBurnHit:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectFreezeHit:: + setmoveeffect EFFECT_FREEZE + goto BattleScript_EffectHit + +BattleScript_EffectParalyzeHit:: + setmoveeffect EFFECT_PARALYSIS + goto BattleScript_EffectHit + +BattleScript_EffectExplosion:: + attackcanceler + attackstring + ppreduce + faintifabilitynotdamp + setatkhptozero + waitstate + jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 + call BattleScript_82D8BEA + goto BattleScript_82D8B96 + +BattleScript_82D8B94:: + attackanimation + waitanimation +BattleScript_82D8B96:: + movevaluescleanup + critcalc + damagecalc + typecalc + adjustnormaldamage + accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end + +BattleScript_82D8BCF:: + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end + +BattleScript_82D8BEA:: + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + attackanimation + waitanimation + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + return + +BattleScript_EffectDreamEater:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 +BattleScript_82D8C0E:: + attackstring + ppreduce + waitmessage 0x40 + goto BattleScript_82D8AC1 + +BattleScript_82D8C18:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8C56 + printstring STRINGID_PKMNDREAMEATEN + waitmessage 0x40 +BattleScript_82D8C56:: + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorMove:: + attackcanceler + attackstring + pause 0x40 + trymirrormove + ppreduce + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_MIRRORMOVEFAILED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp:: + setstatchanger ATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp:: + setstatchanger DEF, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp:: + setstatchanger SPATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectEvasionUp:: + setstatchanger EVASION, 1, FALSE +BattleScript_EffectStatUp:: + attackcanceler +BattleScript_EffectStatUpAfterAtkCanceler:: + attackstring + ppreduce + statbuffchange 0x41, BattleScript_82D8CCF + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CBD + pause 0x20 + goto BattleScript_82D8CC7 + +BattleScript_82D8CBD:: + attackanimation + waitanimation +BattleScript_82D8CBF:: + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_82D8CC7:: + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D8CCF:: + goto BattleScript_MoveEnd + +BattleScript_StatUp:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 + return + +BattleScript_EffectAttackDown:: + setstatchanger ATK, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown:: + setstatchanger DEF, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown:: + setstatchanger SPEED, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectAccuracyDown:: + setstatchanger ACC, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectEvasionDown:: + setstatchanger EVASION, 1, TRUE +BattleScript_EffectStatDown:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + statbuffchange 0x1, BattleScript_82D8D60 + jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8D4E + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_82D8D60 + pause 0x20 + goto BattleScript_82D8D58 + +BattleScript_82D8D4E:: + attackanimation + waitanimation + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_82D8D58:: + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82D8D60:: + goto BattleScript_MoveEnd + +BattleScript_StatDown:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC8A8 + waitmessage 0x40 + return + +BattleScript_EffectHaze:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + normalisebuffs + printstring STRINGID_STATCHANGESGONE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectBide:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setbide + goto BattleScript_MoveEnd + +BattleScript_EffectRampage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE + ppreduce +BattleScript_82D8DAE:: + confuseifrepeatingattackends + goto BattleScript_HitFromCritCalc + +BattleScript_EffectRoar:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_82DB5B9 + jumpifstatus3 TARGET, STATUS3_ROOTED, 0x0, BattleScript_82DB109 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed + forcerandomswitch BattleScript_ButItFailed + +BattleScript_EffectMultiHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x0 + initmultihitstring + setbyte sFIELD_16, 0x0 +BattleScript_82D8DFD:: + jumpifhasnohp ATTACKER, BattleScript_82D8E93 + jumpifhasnohp TARGET, BattleScript_82D8E74 + jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D8E1F + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 +BattleScript_82D8E1F:: + movevaluescleanup + copyarray cEFFECT_CHOOSER, sFIELD_16, 0x1 + critcalc + damagecalc + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E71 + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + addbyte sMULTIHIT_STRING + 4, 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D8E74 + decrementmultihit BattleScript_82D8DFD + goto BattleScript_82D8E74 + +BattleScript_82D8E71:: + pause 0x20 +BattleScript_82D8E74:: + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E93 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_82D8E93:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x2 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0x4 + moveend 0x0, 0x0 + end + +BattleScript_EffectConversion:: + attackcanceler + attackstring + ppreduce + tryconversiontypechange BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlinchHit:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectRestoreHp:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, ATTACKER + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectToxic:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_TOXIC + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyPoisoned:: + various ATTACKER, 0x17 + pause 0x40 + printstring STRINGID_PKMNALREADYPOISONED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8F63:: + copyarray gEffectBank, gBankTarget, 0x1 + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PSNPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectPayDay:: + setmoveeffect EFFECT_PAYDAY + goto BattleScript_EffectHit + +BattleScript_EffectLightScreen:: + attackcanceler + attackstring + ppreduce + setlightscreen + goto BattleScript_82D928C + +BattleScript_EffectTriAttack:: + setmoveeffect EFFECT_TRI_ATTACK + goto BattleScript_EffectHit + +BattleScript_EffectRest:: + attackcanceler + attackstring + ppreduce + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8FD6 + jumpifcantmakeasleep BattleScript_82D8FC6 + trysetrest BattleScript_AlreadyAtFullHp + pause 0x20 + printfromtable 0x85CC882 + waitmessage 0x40 + updatestatusicon ATTACKER + waitstate + goto BattleScript_PresentHealTarget + +BattleScript_82D8FC6:: + pause 0x40 + printfromtable 0x85CC896 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8FD6:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectOhko:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation + tryKO BattleScript_82D9008 + trysetdestinybondtohappen + goto BattleScript_HitFromAtkAnimation + +BattleScript_82D9008:: + pause 0x40 + printfromtable 0x85CC8F4 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRazorWind:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x0 + call BattleScript_82D906F + goto BattleScript_MoveEnd + +BattleScript_82D9040:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromAccCheck + +BattleScript_82D906F:: + attackcanceler + printstring STRINGID_EMPTYSTRING3 + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + copyarray cMULTISTRING_CHOOSER, sFIELD_F, 0x1 + printfromtable 0x85CC8B0 + waitmessage 0x40 + return + +BattleScript_EffectSuperFang:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + damagetohalftargethp + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectDragonRage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setbyte gBattleMoveDamage, 0x28 + setbyte gBattleMoveDamage + 1, 0x0 + setbyte gBattleMoveDamage + 2, 0x0 + setbyte gBattleMoveDamage + 3, 0x0 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectTrap:: + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_WHIRLPOOL, BattleScript_82D9105 + jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_82D9105 + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_82D9105:: + setmoveeffect EFFECT_WRAP + goto BattleScript_EffectHit + +BattleScript_EffectDoubleHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + setbyte sFIELD_16, 0x0 + goto BattleScript_82D8DFD + +BattleScript_EffectRecoilIfMiss:: + attackcanceler + accuracycheck BattleScript_82D9135, ACC_CURR_MOVE + goto BattleScript_HitFromAtkString + +BattleScript_82D9135:: + attackstring + ppreduce + pause 0x40 + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd + printstring STRINGID_PKMNCRASHED + waitmessage 0x40 + damagecalc + typecalc + adjustnormaldamage + manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + goto BattleScript_MoveEnd + +BattleScript_EffectMist:: + attackcanceler + attackstring + ppreduce + setmist + attackanimation + waitanimation + printfromtable 0x85CC8CC + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFocusEnergy:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed + setfocusenergy + attackanimation + waitanimation + printfromtable 0x85CC8D0 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecoil:: + setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_EffectHit + incrementgamestat 0x1B + goto BattleScript_EffectHit + +BattleScript_EffectConfuse:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82D9201 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_CONFUSION + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9201:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp2:: + setstatchanger ATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp2:: + setstatchanger DEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpeedUp2:: + setstatchanger SPEED, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp2:: + setstatchanger SPATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialDefenseUp2:: + setstatchanger SPDEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectTransform:: + attackcanceler + attackstring + ppreduce + transformdataexecution + attackanimation + waitanimation + printfromtable 0x85CC8D4 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDown2:: + setstatchanger ATK, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown2:: + setstatchanger DEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown2:: + setstatchanger SPEED, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpecialDefenseDown2:: + setstatchanger SPDEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectReflect:: + attackcanceler + attackstring + ppreduce + setreflect +BattleScript_82D928C:: + attackanimation + waitanimation + printfromtable 0x85CC86C + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoison:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_POISON + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectParalyze:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_LIMBER, BattleScript_82D9362 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82D9351 + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_PARALYSIS + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9351:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNISALREADYPARALYZED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9362:: + copyarray gEffectBank, gBankTarget, 0x1 + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PRLZPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDownHit:: + setmoveeffect EFFECT_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectDefenseDownHit:: + setmoveeffect EFFECT_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpeedDownHit:: + setmoveeffect EFFECT_SPD_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialAttackDownHit:: + setmoveeffect EFFECT_SP_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialDefenseDownHit:: + setmoveeffect EFFECT_SP_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectAccuracyDownHit:: + setmoveeffect EFFECT_ACC_MINUS_1 + goto BattleScript_EffectHit + + +BattleScript_EffectSkyAttack:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x3 + call BattleScript_82D906F + goto BattleScript_MoveEnd + +BattleScript_EffectConfuseHit:: + setmoveeffect EFFECT_CONFUSION + goto BattleScript_EffectHit + +BattleScript_EffectTwineedle:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setbyte sFIELD_16, 0x2 + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + goto BattleScript_82D8DFD + +BattleScript_EffectSubstitute:: + attackcanceler + ppreduce + attackstring + waitstate + jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_82D943E + setsubstitute + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D942B + pause 0x20 + goto BattleScript_82D9431 + +BattleScript_82D942B:: + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER +BattleScript_82D9431:: + printfromtable 0x85CC8D8 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D943E:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNHASSUBSTITUTE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecharge:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN + goto BattleScript_HitFromAtkString + +BattleScript_MoveUsedMustRecharge:: + printstring STRINGID_PKMNMUSTRECHARGE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRage:: + attackcanceler + accuracycheck BattleScript_82D9487, ACC_CURR_MOVE + setmoveeffect EFFECT_RAGE + seteffectprimary + setmoveeffect 0 + goto BattleScript_HitFromAtkString + +BattleScript_82D9487:: + setmoveeffect EFFECT_RAGE + clearstatusfromeffect ATTACKER + goto BattleScript_PrintMoveMissed + +BattleScript_EffectMimic:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + mimicattackcopy BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNLEARNEDMOVE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMetronome:: + attackcanceler + attackstring + pause 0x20 + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + metronome +BattleScript_EffectLeechSeed:: + attackcanceler + attackstring + pause 0x20 + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_82D94E5, ACC_CURR_MOVE +BattleScript_82D94E5:: + setseeded + attackanimation + waitanimation + printfromtable 0x85CC878 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSplash:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + incrementgamestat 0x1A + printstring STRINGID_BUTNOTHINGHAPPENED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDisable:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + disablelastusedattack BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNMOVEWASDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLevelDamage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + dmgtolevel + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectPsywave:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + psywavedamageeffect + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectCounter:: + attackcanceler + counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEncore:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + trysetencore BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNGOTENCORE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPainSplit:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + painsplitdmgcalc BattleScript_ButItFailed + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyarray gBattleMoveDamage, sPAINSPLIT_HP, 0x4 + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_SHAREDPAIN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSnore:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D95CE + attackstring + ppreduce + goto BattleScript_ButItFailed + +BattleScript_82D95CE:: + jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D95E2 + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER +BattleScript_82D95E2:: + attackstring + ppreduce + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromCritCalc + +BattleScript_EffectConversion2:: + attackcanceler + attackstring + ppreduce + settypetorandomresistance BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLockOn:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + setalwayshitflag + attackanimation + waitanimation + printstring STRINGID_PKMNTOOKAIM + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSketch:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + copymovepermanently BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSKETCHEDMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleepTalk:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D965E + attackstring + ppreduce + goto BattleScript_ButItFailed + +BattleScript_82D965E:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + attackstring + ppreduce + orword gHitMarker, HITMARKER_NO_PPDEDUCT + sleeptalk_choose_move BattleScript_82D967E + pause 0x40 + goto BattleScript_ButItFailed + +BattleScript_82D967E:: + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack 0x1 + +BattleScript_EffectDestinyBond:: + attackcanceler + attackstring + ppreduce + setdestinybond + attackanimation + waitanimation + printstring STRINGID_PKMNTRYINGTOTAKEFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlail:: + remaininghptopower + goto BattleScript_EffectHit + +BattleScript_EffectSpite:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryspiteppreduce BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREDUCEDPP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHealBell:: + attackcanceler + attackstring + ppreduce + healpartystatus + waitstate + attackanimation + waitanimation + printfromtable 0x85CC904 + waitmessage 0x40 + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_HEAL_BELL, BattleScript_82D96FE + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D96ED + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 +BattleScript_82D96ED:: + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D96FE + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 +BattleScript_82D96FE:: + updatestatusicon ATTACKER_WITH_PARTNER + waitstate + goto BattleScript_MoveEnd + +BattleScript_EffectTripleKick:: + attackcanceler + attackstring + ppreduce + setbyte sTRIPLE_KICK_POWER, 0x0 + setbyte sFIELD_13, 0x0 + initmultihitstring + setmultihit 0x3 +BattleScript_82D9718:: + jumpifhasnohp ATTACKER, BattleScript_82D97D7 + jumpifhasnohp TARGET, BattleScript_82D9799 + jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D973A + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D9799 +BattleScript_82D973A:: + accuracycheck BattleScript_82D9799, ACC_CURR_MOVE + movevaluescleanup + addbyte sTRIPLE_KICK_POWER, 0xA + addbyte sMULTIHIT_STRING + 4, 0x1 + copyarray gDynamicBasePower, sTRIPLE_KICK_POWER, 0x2 + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9799 + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D97AD + decrementmultihit BattleScript_82D9718 + goto BattleScript_82D97AD + +BattleScript_82D9799:: + pause 0x20 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97AD + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_82D97AD:: + resultmessage + waitmessage 0x40 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97D7 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_82D97D7 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_82D97D7:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0xE + moveend 0x0, 0x0 + end + +BattleScript_EffectThief:: + setmoveeffect EFFECT_STEAL_ITEM + goto BattleScript_EffectHit + +BattleScript_EffectMeanLook:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC + jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + attackanimation + waitanimation + setmoveeffect EFFECT_PREVENT_ESCAPE + seteffectprimary + printstring STRINGID_TARGETCANTESCAPENOW + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNightmare:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked + goto BattleScript_ButItFailed + +BattleScript_NightmareWorked:: + attackanimation + waitanimation + setmoveeffect EFFECT_NIGHTMARE + seteffectprimary + printstring STRINGID_PKMNFELLINTONIGHTMARE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMinimize:: + attackcanceler + setminimize + setstatchanger EVASION, 1, FALSE + goto BattleScript_EffectStatUpAfterAtkCanceler + +BattleScript_EffectCurse:: + jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_82D98E5 + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_82D9892 + jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_82D9892 + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed +BattleScript_82D9892:: + copyarray gBankTarget, gBankAttacker, 0x1 + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + setstatchanger SPEED, 1, TRUE + statbuffchange 0x41, BattleScript_82D98B8 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82D98B8:: + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82D98CC + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D98CC:: + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82D98E0 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D98E0:: + goto BattleScript_MoveEnd + +BattleScript_82D98E5:: + jumpifarraynotequal gBankAttacker, gBankTarget, 0x1, BattleScript_82D98F6 + various ATTACKER, VARIOUS_GET_MOVE_TARGET +BattleScript_82D98F6:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + cursetarget BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + setbyte sANIM_TURN, 0x0 + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNLAIDCURSE + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectProtect:: + attackcanceler + attackstring + ppreduce + setprotectlike + attackanimation + waitanimation + printfromtable 0x85CC866 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpikes:: + attackcanceler + trysetspikes BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_SPIKESSCATTERED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectForesight:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setforesight + attackanimation + waitanimation + printstring STRINGID_PKMNIDENTIFIED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPerishSong:: + attackcanceler + attackstring + ppreduce + trysetperishsong BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_FAINTINTHREE + waitmessage 0x40 + setbyte sBANK, 0x0 +BattleScript_PerishSongLoop:: + jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected +BattleScript_PerishSongLoopIncrement:: + addbyte sBANK, 0x1 + jumpifarraynotequal sBANK, gNoOfAllBanks, 0x1, BattleScript_PerishSongLoop + goto BattleScript_MoveEnd + +BattleScript_PerishSongNotAffected:: + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 + goto BattleScript_PerishSongLoopIncrement + +BattleScript_EffectSandstorm:: + attackcanceler + attackstring + ppreduce + setsandstorm + goto BattleScript_82D9B41 + +BattleScript_EffectRollout:: + attackcanceler + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D99CD + ppreduce +BattleScript_82D99CD:: + accuracycheck BattleScript_82D99D4, ACC_CURR_MOVE +BattleScript_82D99D4:: + typecalc2 + rolloutdamagecalculation + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSwagger:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed ATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger ATK, 2, FALSE + statbuffchange 0x1, BattleScript_82D9A1E + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9A1E + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D9A1E:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectFuryCutter:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_82D9A43, ACC_CURR_MOVE +BattleScript_82D9A43:: + furycuttercalc + critcalc + damagecalc + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9A43 + adjustnormaldamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectAttract:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryinfatuating BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLINLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectReturn:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + happinesstodamagecalculation + goto BattleScript_HitFromAtkString + +BattleScript_EffectPresent:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + presentdamagecalculation +BattleScript_EffectSafeguard:: + attackcanceler + attackstring + ppreduce + setsafeguard + goto BattleScript_82D928C + +BattleScript_EffectThawHit:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectMagnitude:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget + magnitudedamagecalculation + pause 0x20 + printstring STRINGID_MAGNITUDESTRENGTH + waitmessage 0x40 + goto BattleScript_82D9C44 + +BattleScript_EffectBatonPass:: + attackcanceler + attackstring + ppreduce + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed + jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | ATTACKER, BattleScript_ButItFailed + attackanimation + waitanimation + openpartyscreen 0x1, BattleScript_ButItFailed + switchoutabilities ATTACKER + waitstate + switchhandleorder ATTACKER, 0x2 + returntoball ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + switchinanim ATTACKER, 0x1 + waitstate + switchineffects ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectRapidSpin:: + setmoveeffect EFFECT_RAPIDSPIN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectSonicboom:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setbyte gBattleMoveDamage, 0x14 + setbyte gBattleMoveDamage + 1, 0x0 + setbyte gBattleMoveDamage + 2, 0x0 + setbyte gBattleMoveDamage + 3, 0x0 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectMorningSun:: + attackcanceler + attackstring + ppreduce + recoverbasedonsunlight BattleScript_AlreadyAtFullHp + goto BattleScript_PresentHealTarget + +BattleScript_EffectHiddenPower:: + hiddenpowercalc + goto BattleScript_EffectHit + +BattleScript_EffectRainDance:: + attackcanceler + attackstring + ppreduce + setrain +BattleScript_82D9B41:: + attackanimation + waitanimation + printfromtable 0x85CC848 + waitmessage 0x40 + call BattleScript_82DB48D + goto BattleScript_MoveEnd + +BattleScript_EffectSunnyDay:: + attackcanceler + attackstring + ppreduce + setsunny + goto BattleScript_82D9B41 + +BattleScript_EffectDefenseUpHit:: + setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAttackUpHit:: + setmoveeffect EFFECT_ATK_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAllStatsUpHit:: + setmoveeffect EFFECT_ALL_STATS_UP | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectBellyDrum:: + attackcanceler + attackstring + ppreduce + maxattackhalvehp BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNCUTHPMAXEDATTACK + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPsychUp:: + attackcanceler + attackstring + ppreduce + copyfoestats BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDSTATCHANGES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorCoat:: + attackcanceler + mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectSkullBash:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x2 + call BattleScript_82D906F + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82D9C16 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9C16 + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D9C16:: + goto BattleScript_MoveEnd + +BattleScript_EffectTwister:: + jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_82D9C35 + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_82D9C35:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectEarthquake:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget +BattleScript_82D9C44:: + movevaluescleanup + jumpifstatus3 TARGET, STATUS3_UNDERGROUND, 0x1, BattleScript_82D9C64 + orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_82D9C73 + +BattleScript_82D9C64:: + bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x1 +BattleScript_82D9C73:: + accuracycheck BattleScript_82D9CAC, ACC_CURR_MOVE + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D9C44 + end + +BattleScript_82D9CAC:: + pause 0x20 + typecalc + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D9C44 + end + +BattleScript_EffectFutureSight:: + attackcanceler + attackstring + ppreduce + trysetfutureattack BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable 0x85CC90E + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectGust:: + jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_EffectHit + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectStomp:: + jumpifstatus3 TARGET, STATUS3_MINIMIZED, 0x1, BattleScript_82D9C35 + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_82D9C35 + +BattleScript_EffectSolarbeam:: + jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_82D9D28 + jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_82D9D28 + jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_82D9D50 +BattleScript_82D9D28:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x1 + call BattleScript_82D906F + goto BattleScript_MoveEnd + +BattleScript_82D9D50:: + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + ppreduce + goto BattleScript_82D9040 + +BattleScript_EffectThunder:: + setmoveeffect EFFECT_PARALYSIS + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectTeleport:: + attackcanceler + attackstring + ppreduce + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_ButItFailed + various ATTACKER, VARIOUS_IS_RUNNING_IMPOSSIBLE + jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed + jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_82DA382 + attackanimation + waitanimation + printstring STRINGID_PKMNFLEDFROMBATTLE + waitmessage 0x40 + various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME + goto BattleScript_MoveEnd + +BattleScript_EffectBeatUp:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + pause 0x20 + ppreduce + setbyte gBattleCommunication, 0x0 +BattleScript_BeatUpLoop:: + movevaluescleanup + trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed + printstring STRINGID_PKMNATTACK + critcalc + jumpifbyte NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack + manipulatedamage ATK80_DMG_DOUBLED +BattleScript_BeatUpAttack:: + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + goto BattleScript_BeatUpLoop + +BattleScript_BeatUpEnd:: + end + +BattleScript_EffectFly:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9E79 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9E79 + jumpifhalfword EQUAL, gCurrentMove, MOVE_FLY, BattleScript_82D9E68 + jumpifhalfword EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_82D9E5D + jumpifhalfword EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9E52 + setbyte sFIELD_F, 0x5 + goto BattleScript_82D9E6E + +BattleScript_82D9E52:: + setbyte sFIELD_F, 0x7 + goto BattleScript_82D9E6E + +BattleScript_82D9E5D:: + setbyte sFIELD_F, 0x6 + goto BattleScript_82D9E6E + +BattleScript_82D9E68:: + setbyte sFIELD_F, 0x4 +BattleScript_82D9E6E:: + call BattleScript_82D906F + setsemiinvulnerablebit + goto BattleScript_MoveEnd + +BattleScript_82D9E79:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9EA3 + setmoveeffect EFFECT_PARALYSIS +BattleScript_82D9EA3:: + accuracycheck BattleScript_82D9EB0, ACC_CURR_MOVE + clearsemiinvulnerablebit + goto BattleScript_HitFromAtkString + +BattleScript_82D9EB0:: + clearsemiinvulnerablebit + goto BattleScript_PrintMoveMissed + +BattleScript_EffectDefenseCurl:: + attackcanceler + attackstring + ppreduce + setdefensecurlbit + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82D9ED3 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CC7 + attackanimation + waitanimation +BattleScript_82D9ED3:: + goto BattleScript_82D8CBF + +BattleScript_EffectSoftboiled:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, TARGET +BattleScript_PresentHealTarget:: + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyAtFullHp:: + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFakeOut:: + attackcanceler + jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce + setmoveeffect EFFECT_FLINCH | CERTAIN + goto BattleScript_EffectHit + +BattleScript_ButItFailedAtkStringPpReduce:: + attackstring +BattleScript_ButItFailedPpReduce:: + ppreduce +BattleScript_ButItFailed:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NotAffected:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectUproar:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_UPROAR | AFFECTS_USER + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9F5A + ppreduce +BattleScript_82D9F5A:: + nop + goto BattleScript_HitFromCritCalc + +BattleScript_EffectStockpile:: + attackcanceler + attackstring + ppreduce + stockpile + attackanimation + waitanimation + printfromtable 0x85CC88A + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpitUp:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2 + attackstring + ppreduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + stockpiletobasedamage BattleScript_SpitUpFail + typecalc + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_SpitUpFail:: + pause 0x20 + printstring STRINGID_FAILEDTOSPITUP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9FA2:: + attackstring + ppreduce + pause 0x40 + stockpiletobasedamage BattleScript_SpitUpFail + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSwallow:: + attackcanceler + attackstring + ppreduce + stockpiletohpheal BattleScript_SwallowFail + goto BattleScript_PresentHealTarget + +BattleScript_SwallowFail:: + pause 0x20 + printfromtable 0x85CC892 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHail:: + attackcanceler + attackstring + ppreduce + sethail + goto BattleScript_82D9B41 + +BattleScript_EffectTorment:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settorment BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSUBJECTEDTOTORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlatter:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed SPATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger SPATK, 1, FALSE + statbuffchange 0x1, BattleScript_82DA03A + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA03A + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA03A:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectWillOWisp:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_BURN, BattleScript_82DA0BB + jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected + jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_82DA0A1 + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_BURN + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_82DA0A1:: + copyarray gEffectBank, gBankTarget, 0x1 + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_BRNPrevention + goto BattleScript_MoveEnd + +BattleScript_82DA0BB:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYHASBURN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMemento:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153 + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_ButItFailed + setatkhptozero + attackanimation + waitanimation + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA148 + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x12, 0x7 + playstatchangeanimation TARGET, 0x2, 0x3 + setstatchanger ATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA119 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA119:: + playstatchangeanimation TARGET, 0x10, 0x3 + setstatchanger SPATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA13C + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA13C:: + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_82DA148:: + printstring STRINGID_BUTNOEFFECT + waitmessage 0x40 + goto BattleScript_82DA13C + +BattleScript_82DA153:: + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_82DA15A +BattleScript_82DA15A:: + setatkhptozero + pause 0x40 + effectivenesssound + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectFacade:: + jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg + goto BattleScript_EffectHit + +BattleScript_FacadeDoubleDmg:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFocusPunch:: + attackcanceler + jumpifnodamage BattleScript_HitFromAccCheck + ppreduce + printstring STRINGID_PKMNLOSTFOCUS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSmellingsalt:: + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit + setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82DA1BA + goto BattleScript_EffectHit + +BattleScript_82DA1BA:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFollowMe:: + attackcanceler + attackstring + ppreduce + setforcedtarget + attackanimation + waitanimation + printstring STRINGID_PKMNCENTERATTENTION + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNaturePower:: + attackcanceler + attackstring + pause 0x20 + callterrainattack + printstring STRINGID_NATUREPOWERTURNEDINTO + waitmessage 0x40 + return + +BattleScript_EffectCharge:: + attackcanceler + attackstring + ppreduce + setcharge + attackanimation + waitanimation + printstring STRINGID_PKMNCHARGINGPOWER + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTaunt:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settaunt BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLFORTAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHelpingHand:: + attackcanceler + attackstring + ppreduce + trysethelpinghand BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREADYTOHELP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTrick:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryswapitems BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWITCHEDITEMS + waitmessage 0x40 + printfromtable 0x85CC970 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRolePlay:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + trycopyability BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectWish:: + attackcanceler + attackstring + ppreduce + trywish 0x0, BattleScript_ButItFailed + attackanimation + waitanimation + goto BattleScript_MoveEnd + +BattleScript_EffectAssist:: + attackcanceler + attackstring + asistattackselect BattleScript_ButItFailedPpReduce + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack 0x1 + +BattleScript_EffectIngrain:: + attackcanceler + attackstring + ppreduce + trysetroots BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNPLANTEDROOTS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSuperpower:: + setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectMagicCoat:: + attackcanceler + trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_PKMNSHROUDEDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecycle:: + attackcanceler + attackstring + ppreduce + tryrecycleitem BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_XFOUNDONEY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRevenge:: + doubledamagedealtifdamaged + goto BattleScript_EffectHit + +BattleScript_EffectBrickBreak:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + removelightscreenreflect + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_82DA306 + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED +BattleScript_82DA306:: + attackanimation + waitanimation + jumpifbyte LESS_THAN, sANIM_TURN, 0x2, BattleScript_82DA319 + printstring STRINGID_THEWALLSHATTERED + waitmessage 0x40 +BattleScript_82DA319:: + typecalc2 + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectYawn:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_82DA378 + jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_82DA378 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + jumpifcantmakeasleep BattleScript_ButItFailed + setyawn BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWASMADEDROWSY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DA378:: + copyarray sBANK, sFIELD_15, 0x1 +BattleScript_82DA382:: + pause 0x20 + printstring STRINGID_PKMNSXMADEITINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectKnockOff:: + setmoveeffect EFFECT_KNOCK_OFF + goto BattleScript_EffectHit + +BattleScript_EffectEndeavor:: + attackcanceler + attackstring + ppreduce + setdamagetohealthdifference BattleScript_ButItFailed + copyarray gHpDealt, gBattleMoveDamage, 0x4 + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyarray gBattleMoveDamage, gHpDealt, 0x4 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEruption:: + scaledamagebyhealthratio + goto BattleScript_EffectHit + + + + +BattleScript_EffectSkillSwap:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + tryswapabilities BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWAPPEDABILITIES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectImprison:: + attackcanceler + attackstring + ppreduce + tryimprision BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSEALEDOPPONENTMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRefresh:: + attackcanceler + attackstring + ppreduce + cureifburnedparalysedorpoisoned BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSTATUSNORMAL + waitmessage 0x40 + updatestatusicon ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectGrudge:: + attackcanceler + attackstring + ppreduce + trysetgrudge BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWANTSGRUDGE + waitmessage 0x40 + goto BattleScript_MoveEnd + + +BattleScript_EffectSnatch:: + attackcanceler + trysetsnatch BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + pause 0x20 + printstring STRINGID_PKMNWAITSFORTARGET + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLowKick:: + attackcanceler + attackstring + ppreduce + weightdamagecalculation + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSecretPower:: + getsecretpowereffect + goto BattleScript_EffectHit + +BattleScript_EffectDoubleEdge:: + setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTeeterDance:: + attackcanceler + attackstring + ppreduce + setbyte gBankTarget, 0x0 +BattleScript_82DA47B:: + movevaluescleanup + setmoveeffect EFFECT_CONFUSION + jumpifarrayequal gBankAttacker, gBankTarget, 0x1, BattleScript_82DA4D0 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DA4E5 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA501 + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82DA50F + jumpifhasnohp TARGET, BattleScript_82DA4D0 + accuracycheck BattleScript_82DA520, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DA4F3 + attackanimation + waitanimation + seteffectprimary + resultmessage + waitmessage 0x40 +BattleScript_82DA4C7:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 +BattleScript_82DA4D0:: + addbyte gBankTarget, 0x1 + jumpifarraynotequal gBankTarget, gNoOfAllBanks, 0x1, BattleScript_82DA47B + end + +BattleScript_82DA4E5:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA4F3:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA501:: + pause 0x20 + printstring STRINGID_BUTITFAILED + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA50F:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA520:: + resultmessage + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_EffectMudSport:: + attackcanceler + attackstring + ppreduce + settypebasedhalvers BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable 0x85CC900 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonFang:: + setmoveeffect EFFECT_TOXIC + goto BattleScript_EffectHit + + +BattleScript_EffectWeatherBall:: + setweatherballtype + goto BattleScript_EffectHit + +BattleScript_EffectOverheat:: + setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTickle:: + attackcanceler + attackstring + ppreduce + jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_82DA571 + jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_82DA5CF +BattleScript_82DA571:: + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x6, 0x5 + playstatchangeanimation TARGET, 0x2, 0x1 + setstatchanger ATK, 1, TRUE + statbuffchange 0x1, BattleScript_82DA5A7 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5A7 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA5A7:: + playstatchangeanimation TARGET, 0x4, 0x1 + setstatchanger DEF, 1, TRUE + statbuffchange 0x1, BattleScript_82DA5CA + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5CA + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA5CA:: + goto BattleScript_MoveEnd + + +BattleScript_82DA5CF:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTDECREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectCosmicPower:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DA5F8 + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA5F8:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x24, 0x0 + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA623 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA623 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA623:: + setstatchanger SPDEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA642 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA642 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA642:: + goto BattleScript_MoveEnd + +BattleScript_EffectSkyUppercut:: + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectBulkUp:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA66A + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA66A:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DA695 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA695 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA695:: + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA6B4 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6B4 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA6B4:: + goto BattleScript_MoveEnd + +BattleScript_EffectCalmMind:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DA6CE + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA6CE:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x30, 0x0 + setstatchanger SPATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DA6F9 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6F9 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA6F9:: + setstatchanger SPDEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA718 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA718 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA718:: + goto BattleScript_MoveEnd + +BattleScript_CantRaiseMultipleStats:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTINCREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDragonDance:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA746 + jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA746:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0xA, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DA771 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA771 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA771:: + setstatchanger SPEED, 1, FALSE + statbuffchange 0x41, BattleScript_82DA790 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA790 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA790:: + goto BattleScript_MoveEnd + +BattleScript_EffectCamouflage:: + attackcanceler + attackstring + ppreduce + settypetoterrain BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FaintAttacker:: + playfaintcry ATTACKER + pause 0x40 + dofaintanimation ATTACKER + cleareffectsonfaint ATTACKER + printstring STRINGID_ATTACKERFAINTED + return + +BattleScript_FaintTarget:: + playfaintcry TARGET + pause 0x40 + dofaintanimation TARGET + cleareffectsonfaint TARGET + printstring STRINGID_TARGETFAINTED + return + +BattleScript_82DA7C4:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + end2 + +BattleScript_82DA7CD:: + atk24 BattleScript_82DA8F6 + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DA8F5 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA816 + jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA816 + printstring STRINGID_USENEXTPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x0, BattleScript_82DA816 + jumpifplayerran BattleScript_82DA8F5 + printstring STRINGID_CANTESCAPE2 +BattleScript_82DA816:: + openpartyscreen 0x3, BattleScript_82DA8F5 + switchhandleorder GBANK_1, 0x2 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_LINK, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x2000000, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA8D0 + jumpifbyte EQUAL, sBATTLE_STYLE, 0x1, BattleScript_82DA8D0 + jumpifcantswitch 11, BattleScript_82DA8D0 + printstring STRINGID_ENEMYABOUTTOSWITCHPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x1, BattleScript_82DA8D0 + setatktoplayer0 + openpartyscreen 0x81, BattleScript_82DA8D0 + switchhandleorder ATTACKER, 0x2 + jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_82DA8D0 + atknameinbuff1 + various ATTACKER, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + resetsentmonsvalue +BattleScript_82DA8D0:: + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, 0x0 + waitstate + various ATTACKER, 0x7 + switchineffects GBANK_1 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8F5 + cancelallactions +BattleScript_82DA8F5:: + end2 + +BattleScript_82DA8F6:: + openpartyscreen 0x5, BattleScript_82DA8FC +BattleScript_82DA8FC:: + switchhandleorder GBANK_1, 0x0 + openpartyscreen 0x6, BattleScript_82DA92C + switchhandleorder GBANK_1, 0x0 +BattleScript_82DA908:: + switchhandleorder GBANK_1, 0x3 + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, 0x0 + waitstate + switchineffects 5 + jumpifarraynotequal gBank1, gNoOfAllBanks, 0x1, BattleScript_82DA908 +BattleScript_82DA92C:: + end2 + +BattleScript_LocalTrainerBattleWon:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA943 + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_82DA946 + +BattleScript_82DA943:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_82DA946:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA963 + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_82DA963:: + getmoneyreward + printstring STRINGID_PLAYERGOTMONEY + waitmessage 0x40 +BattleScript_PayDayMoneyAndPickUpItems:: + givepaydaymoney + pickup + end2 + +BattleScript_LocalBattleLost:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOME, BattleScript_82DA9BE + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA9C9 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_82DA9C9 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_82DA9BD + jumpifhalfword EQUAL, 0x2038BCA, 0x400, BattleScript_82DA9BD +BattleScript_82DA9B1:: + printstring STRINGID_PLAYERWHITEOUT + waitmessage 0x40 + printstring STRINGID_PLAYERWHITEOUT2 + waitmessage 0x40 +BattleScript_82DA9BD:: + end2 + +BattleScript_82DA9BE:: + jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_82DAA0A +BattleScript_82DA9C9:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA9B1 + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 + waitstate + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x800000, BattleScript_82DAA01 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAA0A +BattleScript_82DAA01:: + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT +BattleScript_82DAA0A:: + end2 + +BattleScript_82DAA0B:: + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 + waitstate + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA31 + atk57 +BattleScript_82DAA31:: + waitmessage 0x40 + end2 + +BattleScript_LinkBattleWonOrLost:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C + printstring STRINGID_BATTLEEND + waitmessage 0x40 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA58 + atk57 +BattleScript_82DAA58:: + waitmessage 0x40 + end2 + +BattleScript_82DAA5C:: + various ATTACKER, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + printstring STRINGID_BATTLEEND + waitmessage 0x40 + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA83 + atk57 +BattleScript_82DAA83:: + waitmessage 0x40 + end2 + +BattleScript_FrontierTrainerBattleWon:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_82DAAAE + +BattleScript_82DAAAB:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_82DAAAE:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_82DAACB:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_PYRAMID, BattleScript_82DAADA + pickup +BattleScript_82DAADA:: + end2 + +BattleScript_SmokeBallEscape:: + playanimation ATTACKER, ANIM_SMOKEBALL_ESCAPE, NULL + printstring STRINGID_PKMNFLEDUSINGITS + waitmessage 0x40 + end2 + +BattleScript_RanAwayUsingMonAbility:: + printstring STRINGID_PKMNFLEDUSING + waitmessage 0x40 + end2 + +BattleScript_GotAwaySafely:: + printstring STRINGID_GOTAWAYSAFELY + waitmessage 0x40 + end2 + +BattleScript_WildMonFled:: + printstring STRINGID_WILDPKMNFLED + waitmessage 0x40 + end2 + +BattleScript_82DAAFE:: + printstring STRINGID_NORUNNINGFROMTRAINERS + end2 + +BattleScript_PrintFailedToRunString:: + printfromtable 0x85CC83E + waitmessage 0x40 + end2 + +BattleScript_82DAB0B:: + printselectionstringfromtable 0x85CC83E + endselectionscript + +BattleScript_82DAB11:: + printselectionstring STRINGID_BOXISFULL + endselectionscript + +BattleScript_ActionSwitch:: + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + setbyte sDMG_MULTIPLIER, 0x2 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DAB35 + setmultihit 0x1 + goto BattleScript_82DAB37 + +BattleScript_82DAB35:: + setmultihit 0x2 +BattleScript_82DAB37:: + jumpifnopursuitswitchdmg BattleScript_82DAB44 + atk5F + trysetdestinybondtohappen + call BattleScript_82DAB77 + atk5F +BattleScript_82DAB44:: + decrementmultihit BattleScript_82DAB37 + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + switchhandleorder ATTACKER, 0x1 + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + setbyte sMOVEEND_STATE, 0x4 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end2 + +BattleScript_82DAB77:: + pause 0x20 + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x3 + moveend 0x2, 0x6 + various TARGET, 0x4 + jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_82DABB8 + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET +BattleScript_82DABB8:: + return + +BattleScript_Pausex20:: + pause 0x20 + return + +BattleScript_LevelUp:: + fanfare BGM_FANFA1 + printstring STRINGID_PKMNGREWTOLV + setbyte sLVLBOX_STATE, 0x0 + drawlvlupbox + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE + goto BattleScript_AskToLearnMove + +BattleScript_TryLearnMoveLoop:: + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE +BattleScript_AskToLearnMove:: + buffermovetolearn + printstring STRINGID_TRYTOLEARNMOVE1 + printstring STRINGID_TRYTOLEARNMOVE2 + printstring STRINGID_TRYTOLEARNMOVE3 + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove + printstring STRINGID_STOPLEARNINGMOVE + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxstoplearningmove BattleScript_AskToLearnMove + printstring STRINGID_DIDNOTLEARNMOVE + goto BattleScript_TryLearnMoveLoop + +BattleScript_ForgotAndLearnedNewMove:: + printstring STRINGID_123POOF + printstring STRINGID_PKMNFORGOTMOVE + printstring STRINGID_ANDELLIPSIS +BattleScript_LearnedNewMove:: + buffermovetolearn + fanfare BGM_FANFA1 + printstring STRINGID_PKMNLEARNEDMOVE + waitmessage 0x40 + various ATTACKER, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + goto BattleScript_TryLearnMoveLoop + +BattleScript_LearnMoveReturn:: + return + +BattleScript_82DAC2C:: + printfromtable 0x85CC860 + waitmessage 0x40 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DAC46 + playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL +BattleScript_82DAC46:: + end2 + +BattleScript_82DAC47:: + printfromtable 0x85CC854 + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + setbyte gBattleCommunication, 0x0 +BattleScript_82DAC5F:: + copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 + weatherdamage + jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_82DACA0 + printfromtable 0x85CC858 + waitmessage 0x40 + orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + effectivenesssound + hitanimation ATTACKER + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_82DACA0 +BattleScript_82DACA0:: + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DACBF + addbyte gBattleCommunication, 0x1 + jumpifarraynotequal gBattleCommunication, gNoOfAllBanks, 0x1, BattleScript_82DAC5F +BattleScript_82DACBF:: + bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + end2 + +BattleScript_82DACC9:: + printfromtable 0x85CC85C + waitmessage 0x40 + end2 + +BattleScript_82DACD2:: + printstring STRINGID_SUNLIGHTSTRONG + waitmessage 0x40 + playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL + end2 + +BattleScript_82DACE0:: + printstring STRINGID_SUNLIGHTFADED + waitmessage 0x40 + end2 + +BattleScript_82DACE7:: + printfromtable 0x85CC91A + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + end3 + +BattleScript_82DACFA:: + printstring STRINGID_PKMNSXWOREOFF + waitmessage 0x40 + end2 + +BattleScript_82DAD01:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + end2 + +BattleScript_82DAD0B:: + pause 0x20 + printstring STRINGID_PKMNSAFEGUARDEXPIRED + waitmessage 0x40 + end2 + +BattleScript_LeechSeedTurnDrain:: + playanimation ATTACKER, ANIM_LEECH_SEED_DRAIN, sANIM_ARG1 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyarray gBattleMoveDamage, gHpDealt, 0x4 + jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_82DAD47 + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x3 + goto BattleScript_82DAD4D + +BattleScript_82DAD47:: + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DAD4D:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + printfromtable 0x85CC878 + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + end2 + +BattleScript_BideStoringEnergy:: + printstring STRINGID_PKMNSTORINGENERGY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_BideAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyarray gBattleMoveDamage, sBIDE_DMG, 0x4 + adjustsetdamage + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_BideNoEnergyToAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + goto BattleScript_ButItFailed + +BattleScript_82DADD8:: + attackanimation + waitanimation + switchoutabilities TARGET + returntoball TARGET + waitstate + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DADF1 + various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME + finishaction + +BattleScript_82DADF1:: + getswitchedmondata TARGET + switchindataupdate TARGET + switchinanim TARGET, 0x0 + waitstate + printstring STRINGID_PKMNWASDRAGGEDOUT + switchineffects TARGET + goto BattleScript_MoveEnd + +BattleScript_MistProtected:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBYMIST + waitmessage 0x40 + return + +BattleScript_RageIsBuilding:: + printstring STRINGID_PKMNRAGEBUILDING + waitmessage 0x40 + return + +BattleScript_MoveUsedIsDisabled:: + printstring STRINGID_PKMNMOVEISDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DAE1F:: + printselectionstring STRINGID_PKMNMOVEISDISABLED + endselectionscript + +BattleScript_DisabledNoMore:: + printstring STRINGID_PKMNMOVEDISABLEDNOMORE + waitmessage 0x40 + end2 + +BattleScript_82DAE2A:: + printstring STRINGID_PKMNMOVEISDISABLED +BattleScript_82DAE2D:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_EncoredNoMore:: + printstring STRINGID_PKMNENCOREENDED + waitmessage 0x40 + end2 + +BattleScript_DestinyBondTakesLife:: + printstring STRINGID_PKMNTOOKFOE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_SpikesOnAttacker:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + call BattleScript_82DAEFE + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon ATTACKER, TRUE, BattleScript_82DAE7A + return + +BattleScript_82DAE7A:: + setbyte sGIVEEXP_STATE, 0x0 + getexp ATTACKER + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_SpikesOnTarget:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + call BattleScript_82DAEFE + tryfaintmon TARGET, FALSE, NULL + tryfaintmon TARGET, TRUE, BattleScript_82DAEB1 + return + +BattleScript_82DAEB1:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_SpikesOngBank1:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate GBANK_1 + datahpupdate GBANK_1 + call BattleScript_82DAEFE + tryfaintmon GBANK_1, FALSE, NULL + tryfaintmon GBANK_1, TRUE, BattleScript_82DAEE8 + return + +BattleScript_82DAEE8:: + setbyte sGIVEEXP_STATE, 0x0 + getexp GBANK_1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_82DAEFE:: + printstring STRINGID_PKMNHURTBYSPIKES + waitmessage 0x40 + return + +BattleScript_82DAF05:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + end2 + +BattleScript_82DAF20:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + end2 + +BattleScript_AllStatsUp:: + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, SPEED, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_82DAFC2 +BattleScript_82DAF54:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x3E, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DAF72 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAF72:: + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DAF86 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAF86:: + setstatchanger SPEED, 1, FALSE + statbuffchange 0x41, BattleScript_82DAF9A + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAF9A:: + setstatchanger SPATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DAFAE + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAFAE:: + setstatchanger SPDEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DAFC2 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAFC2:: + return + +BattleScript_RapidSpinAway:: + rapidspinfree + return + +BattleScript_WrapFree:: + printstring STRINGID_PKMNGOTFREE + waitmessage 0x40 + copyarray gBankTarget, sBANK, 0x1 + return + +BattleScript_LeechSeedFree:: + printstring STRINGID_PKMNSHEDLEECHSEED + waitmessage 0x40 + return + +BattleScript_SpikesFree:: + printstring STRINGID_PKMNBLEWAWAYSPIKES + waitmessage 0x40 + return + +BattleScript_82DAFE4:: + printstring STRINGID_PKMNTOOKATTACK + waitmessage 0x40 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB001 + accuracycheck BattleScript_82DB058, MOVE_FUTURE_SIGHT + goto BattleScript_82DB008 + +BattleScript_82DB001:: + accuracycheck BattleScript_82DB058, MOVE_DOOM_DESIRE +BattleScript_82DB008:: + adjustnormaldamage2 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB020 + playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL + goto BattleScript_82DB027 + +BattleScript_82DB020:: + playanimation ATTACKER, ANIM_x13, NULL +BattleScript_82DB027:: + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + atk24 BattleScript_82DB03F +BattleScript_82DB03F:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xB + moveend 0x2, 0xE + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_82DB058:: + pause 0x20 + setbyte gBattleMoveFlags, 0 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_NoMovesLeft:: + printselectionstring STRINGID_PKMNHASNOMOVESLEFT + endselectionscript + +BattleScript_82DB076:: + printselectionstring STRINGID_NOPPLEFT + endselectionscript + +BattleScript_NoPPForMove:: + attackstring + pause 0x20 + printstring STRINGID_BUTNOPPLEFT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB089:: + printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT + endselectionscript + +BattleScript_82DB08D:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB098:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + goto BattleScript_82DAE2D + +BattleScript_82DB0A0:: + printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT + endselectionscript + +BattleScript_MoveUsedIsTaunted:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB0AF:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + goto BattleScript_82DAE2D + +BattleScript_WishComesTrue:: + trywish 0x1, BattleScript_82DB0DE + playanimation TARGET, ANIM_WISH_HEAL, NULL + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + end2 + +BattleScript_82DB0DE:: + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + end2 + +BattleScript_IngrainTurnHeal:: + playanimation ATTACKER, ANIM_INGRAIN_HEAL, NULL + printstring STRINGID_PKMNABSORBEDNUTRIENTS + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end2 + +BattleScript_82DB109:: + pause 0x20 + printstring STRINGID_PKMNANCHOREDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AtkDefDown:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0xD + playstatchangeanimation ATTACKER, 0x2, 0x9 + setstatchanger ATK, 1, TRUE + statbuffchange 0xC1, BattleScript_82DB144 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DB144:: + playstatchangeanimation ATTACKER, 0x4, 0x9 + setstatchanger DEF, 1, TRUE + statbuffchange 0xC1, BattleScript_82DB167 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DB167:: + return + +BattleScript_KnockedOff:: + playanimation TARGET, ANIM_ITEM_KNOCKOFF, NULL + printstring STRINGID_PKMNKNOCKEDOFF + waitmessage 0x40 + return + +BattleScript_MoveUsedIsImprisoned:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB181:: + printselectionstring STRINGID_PKMNCANTUSEMOVESEALED + endselectionscript + +BattleScript_82DB185:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + goto BattleScript_82DAE2D + +BattleScript_GrudgeTakesPp:: + printstring STRINGID_PKMNLOSTPPGRUDGE + waitmessage 0x40 + return + +BattleScript_MagicCoatBounce:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNMOVEBOUNCED + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + various ATTACKER, VARIOUS_SET_MAGIC_COAT_TARGET + return + +BattleScript_SnatchedMove:: + attackstring + ppreduce + snatchsetbanks + playanimation TARGET, ANIM_SNATCH_MOVE, NULL + printstring STRINGID_PKMNSNATCHEDMOVE + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + atk5F + return + +BattleScript_EnduredMsg:: + printstring STRINGID_PKMNENDUREDHIT + waitmessage 0x40 + return + +BattleScript_OneHitKOMsg:: + printstring STRINGID_ONEHITKO + waitmessage 0x40 + return + +BattleScript_SAtkDown2:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x10, 0xB + setstatchanger SPATK, 2, TRUE + statbuffchange 0xC1, BattleScript_82DB1FE + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DB1FE:: + return + +BattleScript_FocusPunchSetUp:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + playanimation ATTACKER, ANIM_x14, NULL + printstring STRINGID_PKMNTIGHTENINGFOCUS + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsAsleep:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedWokeUp:: + bicword gHitMarker, HITMARKER_x10 + printfromtable 0x85CC88E + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_82DB234:: + printstring STRINGID_PKMNWOKEUPINUPROAR + waitmessage 0x40 + updatestatusicon ATTACKER + end2 + +BattleScript_PoisonTurnDmg:: + printstring STRINGID_PKMNHURTBYPOISON + waitmessage 0x40 +BattleScript_82DB243:: + statusanimation ATTACKER +BattleScript_82DB245:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_82DB25E +BattleScript_82DB25E:: + end2 + +BattleScript_BurnTurnDmg:: + printstring STRINGID_PKMNHURTBYBURN + waitmessage 0x40 + goto BattleScript_82DB243 + +BattleScript_MoveUsedIsFrozen:: + printstring STRINGID_PKMNISFROZEN + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedUnfroze:: + printfromtable 0x85CC8F0 + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_DefrostedViaFireMove:: + printstring STRINGID_PKMNWASDEFROSTED + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveUsedIsParalyzed:: + printstring STRINGID_PKMNISPARALYZED + waitmessage 0x40 + statusanimation ATTACKER + various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES + goto BattleScript_MoveEnd + +BattleScript_MoveUsedFlinched:: + printstring STRINGID_PKMNFLINCHED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB2A6:: + printfromtable 0x85CC886 + waitmessage 0x40 + end2 + +BattleScript_ThrashConfuses:: + chosenstatus2animation ATTACKER, STATUS2_CONFUSION + printstring STRINGID_PKMNFATIGUECONFUSION + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsConfused:: + printstring STRINGID_PKMNISCONFUSED + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CONFUSION + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB2FF +BattleScript_82DB2D4:: + various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES + adjustnormaldamage2 + printstring STRINGID_ITHURTCONFUSION + waitmessage 0x40 + effectivenesssound + hitanimation ATTACKER + waitstate + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_82DB2FF:: + return + +BattleScript_MoveUsedIsConfusedNoMore:: + printstring STRINGID_PKMNHEALEDCONFUSION + waitmessage 0x40 + return + +BattleScript_PrintPayDayMoneyString:: + printstring STRINGID_PKMNPICKEDUPITEM + waitmessage 0x40 + return + +BattleScript_WrapTurnDmg:: + playanimation ATTACKER, ANIM_TURN_TRAP, sANIM_ARG1 + printstring STRINGID_PKMNHURTBY + waitmessage 0x40 + goto BattleScript_82DB245 + +BattleScript_WrapEnds:: + printstring STRINGID_PKMNFREEDFROM + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsInLove:: + printstring STRINGID_PKMNINLOVE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_INFATUATION + return + +BattleScript_MoveUsedIsParalyzedCantAttack:: + printstring STRINGID_PKMNIMMOBILIZEDBYLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NightmareTurnDmg:: + printstring STRINGID_PKMNLOCKEDINNIGHTMARE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_NIGHTMARE + goto BattleScript_82DB245 + +BattleScript_CurseTurnDmg:: + printstring STRINGID_PKMNAFFLICTEDBYCURSE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CURSED + goto BattleScript_82DB245 + +BattleScript_TargetPRLZHeal:: + printstring STRINGID_PKMNHEALEDPARALYSIS + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveEffectSleep:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8E4 + waitmessage 0x40 +BattleScript_82DB374:: + updatestatusicon EFFECT_BANK + waitstate + return + +BattleScript_YawnMakesAsleep:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNFELLASLEEP + waitmessage 0x40 + updatestatusicon EFFECT_BANK + waitstate + makevisible EFFECT_BANK + end2 + +BattleScript_MoveEffectPoison:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8DC + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectBurn:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8E8 + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectFreeze:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8EC + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectParalysis:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8E0 + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectUproar:: + printstring STRINGID_PKMNCAUSEDUPROAR + waitmessage 0x40 + return + +BattleScript_MoveEffectToxic:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNBADLYPOISONED + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectPayDay:: + printstring STRINGID_COINSSCATTERED + waitmessage 0x40 + return + +BattleScript_MoveEffectWrap:: + printfromtable 0x85CC8C0 + waitmessage 0x40 + return + +BattleScript_MoveEffectConfusion:: + chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION + printstring STRINGID_PKMNWASCONFUSED + waitmessage 0x40 + return + +BattleScript_MoveEffectRecoil33:: + jumpifhalfword EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_82DB407 + jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_82DB421 +BattleScript_82DB407:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHITWITHRECOIL + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL +BattleScript_82DB421:: + return + +BattleScript_ItemSteal:: + playanimation TARGET, ANIM_ITEM_STEAL, NULL + printstring STRINGID_PKMNSTOLEITEM + waitmessage 0x40 + return + +BattleScript_DrizzleActivates:: + pause 0x20 + printstring STRINGID_PKMNMADEITRAIN + waitstate + playanimation BANK0, ANIM_RAIN_CONTINUES, NULL + call BattleScript_82DB48D + end3 + +BattleScript_SpeedBoostActivates:: + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNRAISEDSPEED + waitmessage 0x40 + end3 + +BattleScript_TraceActivates:: + pause 0x20 + printstring STRINGID_PKMNTRACED + waitmessage 0x40 + end3 + +BattleScript_RainDishActivates:: + printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end3 + +BattleScript_SandstreamActivates:: + pause 0x20 + printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM + waitstate + playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL + call BattleScript_82DB48D + end3 + +BattleScript_ShedSkinActivates:: + printstring STRINGID_PKMNSXCUREDYPROBLEM + waitmessage 0x40 + updatestatusicon ATTACKER + end3 + +BattleScript_82DB48D:: + setbyte sBANK, 0x0 +BattleScript_82DB493:: + trycastformdatachange + addbyte sBANK, 0x1 + jumpifarraynotequal sBANK, gNoOfAllBanks, 0x1, BattleScript_82DB493 + return + +BattleScript_CastformChange:: + call BattleScript_82DB4AF + end3 + +BattleScript_82DB4AF:: + docastformchangeanimation + waitstate + printstring STRINGID_PKMNTRANSFORMED + waitmessage 0x40 + return + +BattleScript_82DB4B8:: + call BattleScript_82DB4BE + end3 + +BattleScript_82DB4BE:: + pause 0x20 +BattleScript_82DB4C1:: + setbyte gBankTarget, 0x0 + setstatchanger ATK, 1, TRUE +BattleScript_82DB4CD:: + trygetintimidatetarget BattleScript_82DB51B + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510 + jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C + jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C + jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C + statbuffchange 0x21, BattleScript_82DB510 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510 + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNCUTSATTACKWITH + waitmessage 0x40 +BattleScript_82DB510:: + addbyte gBankTarget, 0x1 + goto BattleScript_82DB4CD +BattleScript_82DB51B:: + return + +BattleScript_82DB51C:: + pause 0x20 + printstring STRINGID_PREVENTEDFROMWORKING + waitmessage 0x40 + goto BattleScript_82DB510 + +BattleScript_DroughtActivates:: + pause 0x20 + printstring STRINGID_PKMNSXINTENSIFIEDSUN + waitstate + playanimation BANK0, ANIM_SUN_CONTINUES, NULL + call BattleScript_82DB48D + end3 + +BattleScript_TookAttack:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXTOOKATTACK + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED + return + +BattleScript_SturdyPreventsOHKO:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBY + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_DampStopsExplosion:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSUSAGE + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_MoveHPDrain_PPLoss:: + ppreduce +BattleScript_MoveHPDrain:: + attackstring + pause 0x20 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNRESTOREDHPUSING + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_82DB591:: + ppreduce +BattleScript_82DB592:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXMADEYUSELESS + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_FlashFireBoost_PPLoss:: + ppreduce +BattleScript_FlashFireBoost:: + attackstring + pause 0x20 + printfromtable 0x85CC976 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB5B9:: + pause 0x20 + printstring STRINGID_PKMNANCHORSITSELFWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoStatLoss:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSSTATLOSSWITH + waitmessage 0x40 + return + +BattleScript_BRNPrevention:: + pause 0x20 + printfromtable 0x85CC95E + waitmessage 0x40 + return + +BattleScript_PRLZPrevention:: + pause 0x20 + printfromtable 0x85CC964 + waitmessage 0x40 + return + +BattleScript_PSNPrevention:: + pause 0x20 + printfromtable 0x85CC96A + waitmessage 0x40 + return + +BattleScript_ObliviousPreventsAttraction:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSROMANCEWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FlinchPrevention:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSFLINCHING + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB611:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SoundproofProtected:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoSpecificStatLoss:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSYLOSS + waitmessage 0x40 + setbyte cMULTISTRING_CHOOSER, 0x3 + return + +BattleScript_StickyHoldActivates:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_ColorChangeActivates:: + printstring STRINGID_PKMNCHANGEDTYPEWITH + waitmessage 0x40 + return + +BattleScript_RoughSkinActivates:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHURTSWITH + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_CuteCharmActivates:: + status2animation ATTACKER, STATUS2_INFATUATION + printstring STRINGID_PKMNSXINFATUATEDY + waitmessage 0x40 + return + +BattleScript_ApplySecondaryEffect:: + waitstate + seteffectsecondary + return + +BattleScript_SynchronizeActivates:: + waitstate + seteffectprimary + return + +BattleScript_NoItemSteal:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + return + +BattleScript_82DB68C:: + printstring STRINGID_PKMNSXCUREDITSYPROBLEM + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + return + +BattleScript_82DB695:: + printstring STRINGID_PKMNIGNORESASLEEP + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6A5:: + printstring STRINGID_PKMNIGNOREDORDERS + waitmessage 0x40 + jumptorandomattack 0x0 + +BattleScript_MoveUsedLoafingAround:: + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 + setbyte gBattleCommunication, 0x0 + various ATTACKER, 0x18 + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DB6C7:: + printfromtable 0x85CC93A + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6D9:: + printstring STRINGID_PKMNBEGANTONAP + waitmessage 0x40 + setmoveeffect EFFECT_SLEEP | AFFECTS_USER + seteffectprimary + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6F0:: + printstring STRINGID_PKMNWONTOBEY + waitmessage 0x40 + goto BattleScript_82DB2D4 + +BattleScript_SubstituteFade:: + playanimation TARGET, ANIM_SUBSTITUTE_FADE, NULL + printstring STRINGID_PKMNSUBSTITUTEFADED + return + +BattleScript_BerryCurePrlzEnd2:: + call BattleScript_BerryCureParRet + end2 + +BattleScript_BerryCureParRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPARALYSIS + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCurePsnEnd2:: + call BattleScript_BerryCurePsnRet + end2 + +BattleScript_BerryCurePsnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPOISON + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureBrnEnd2:: + call BattleScript_BerryCureBrnRet + end2 + +BattleScript_BerryCureBrnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMHEALEDBURN + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureFrzEnd2:: + call BattleScript_BerryCureFrzRet + end2 + +BattleScript_BerryCureFrzRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMDEFROSTEDIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureSlpEnd2:: + call BattleScript_BerryCureSlpRet + end2 + +BattleScript_BerryCureSlpRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMWOKEIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureConfusionEnd2:: + call BattleScript_BerryCureConfusionRet + end2 + +BattleScript_BerryCureConfusionRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMSNAPPEDOUT + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureChosenStatusEnd2:: + call BattleScript_BerryCureChosenStatusRet + end2 + +BattleScript_BerryCureChosenStatusRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printfromtable 0x85CC95A + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_WhiteHerbEnd2:: + call BattleScript_WhiteHerbRet + end2 + +BattleScript_WhiteHerbRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDSTATUS + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_ItemHealHP_RemoveItem:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + removeitem ATTACKER + end2 + +BattleScript_BerryPPHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDPP + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ItemHealHP_End2:: + call BattleScript_ItemHealHP_Ret + end2 + +BattleScript_ItemHealHP_Ret:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + return + +BattleScript_82DB812:: + printselectionstring STRINGID_ITEMALLOWSONLYYMOVE + endselectionscript + +BattleScript_HangedOnMsg:: + playanimation TARGET, ANIM_HANGED_ON, NULL + printstring STRINGID_PKMNHUNGONWITHX + waitmessage 0x40 + return + +BattleScript_BerryConfuseHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_FORXCOMMAYZ + waitmessage 0x40 + setmoveeffect EFFECT_CONFUSION | AFFECTS_USER + seteffectprimary + removeitem ATTACKER + end2 + +BattleScript_BerryStatRaiseEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + statbuffchange 0x41, BattleScript_82DB85B +BattleScript_82DB85B:: + setbyte cMULTISTRING_CHOOSER, 0x4 + call BattleScript_StatUp + removeitem ATTACKER + end2 + +BattleScript_BerryFocusEnergyEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNUSEDXTOGETPUMPED + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ActionSelectionItemsCantBeUsed:: + printselectionstring STRINGID_ITEMSCANTBEUSEDNOW + endselectionscript + +BattleScript_82DB87D:: + printstring STRINGID_EMPTYSTRING3 + return + +BattleScript_82DB881:: + setbyte gBattleCommunication + 1, 0x0 +BattleScript_82DB887:: + various ATTACKER, 0x8 + jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D + printfromtable 0x85CCF0A + waitmessage 0x40 +BattleScript_82DB89D:: + addbyte gBattleCommunication + 1, 0x1 + jumpifarraynotequal gBattleCommunication + 1, gNoOfAllBanks, 0x1, BattleScript_82DB887 + setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication + 1, 0x0 + end2 + +BattleScript_82DB8BE:: + various ATTACKER, VARIOUS_WAIT_CRY + various ATTACKER, 0x15 + playse 0x109 + pause 0x8 + playse 0x109 + various ATTACKER, 0xE + various 8, 0x10 + various 8, 0x11 + pause 0x40 + various ATTACKER, 0xF + various ATTACKER, 0x16 + end2 + +BattleScript_82DB8E0:: + playse SE_PINPON + various ATTACKER, 0xE + various TARGET, 0x10 + various TARGET, 0x11 + pause 0x40 + various ATTACKER, 0xF + end2 + +BattleScript_82DB8F3:: + makevisible 11 + waitstate + makevisible OPPONENT1 + waitstate + various ATTACKER, 0x15 + playse 0x109 + pause 0x8 + playse 0x109 + pause 0x40 + various ATTACKER, 0xE + various ATTACKER, 0x10 + various ATTACKER, 0x11 + pause 0x40 + setbyte gBattleCommunication, 0x0 + various ATTACKER, 0x9 + pause 0x40 + various ATTACKER, 0x9 + various EFFECT_BANK, 0x10 + various EFFECT_BANK, 0x11 + various ATTACKER, 0x9 + various GBANK_1, 0x10 + various GBANK_1, 0x11 + various ATTACKER, 0x9 + various 4, 0x10 + various 4, 0x11 + various ATTACKER, 0x9 + jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973 + jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992 + various 5, 0x10 + various 5, 0x11 + various ATTACKER, 0x9 + various ATTACKER, 0xF + printstring STRINGID_DEFEATEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry OPPONENT1 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various ATTACKER, 0xA + end2 + +BattleScript_82DB973:: + various 6, 0x10 + various 6, 0x11 + various ATTACKER, 0x9 + various ATTACKER, 0xF + printstring STRINGID_LOSTTOOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation 11 + cleareffectsonfaint 11 + various ATTACKER, 0xB + end2 + +BattleScript_82DB992:: + various BANK0, 0x10 + various BANK0, 0x11 + various ATTACKER, 0x9 + various ATTACKER, 0xF + printstring STRINGID_TIEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation 11 + cleareffectsonfaint 11 + playfaintcry OPPONENT1 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various ATTACKER, 0xC + end2 + +BattleScript_82DB9BA:: + printselectionstring STRINGID_QUESTIONFORFEITMATCH + various ATTACKER, VARIOUS_EMIT_YESNOBOX + endselectionscript + +BattleScript_82DB9C1:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + end2 + +BattleScript_82DB9C8:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + atk57 + waitmessage 0x40 + end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 4a4dc4665..6f6ea084b 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -1,32 +1,36 @@ .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD7E - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD7E + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 .align 2 gUnknown_082DBD3C:: @ 82DBD3C - .4byte gUnknown_082DBE12 - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE4B - .4byte gUnknown_082DBE6F - .4byte gUnknown_082DBE91 + .4byte BattleScript_82DBE12 + .4byte BattleScript_82DBE1C + .4byte BattleScript_82DBE1C + .4byte BattleScript_82DBE4B + .4byte BattleScript_82DBE6F + .4byte BattleScript_82DBE91 .align 2 gBattlescriptsForRunningByItem:: @ 82DBD54 @@ -34,55 +38,167 @@ gBattlescriptsForRunningByItem:: @ 82DBD54 .align 2 gBattlescriptsForSafariActions:: @ 82DBD58 - .4byte gUnknown_082DBEBD - .4byte gUnknown_082DBEC4 - .4byte gUnknown_082DBECD - .4byte gUnknown_082DBEE3 - -gUnknown_082DBD68:: @ 82DBD68 - .incbin "baserom.gba", 0x2dbd68, 0x16 - -gUnknown_082DBD7E:: @ 82DBD7E - .incbin "baserom.gba", 0x2dbd7e, 0x6 - -BattleScript_SuccessBallThrow:: @ 82DBD84 - .incbin "baserom.gba", 0x2dbd84, 0x46 - -BattleScript_WallyBallThrow:: @ 82DBDCA - .incbin "baserom.gba", 0x2dbdca, 0xa - -BattleScript_ShakeBallThrow:: @ 82DBDD4 - .incbin "baserom.gba", 0x2dbdd4, 0x2e - -BattleScript_TrainerBallBlock:: @ 82DBE02 - .incbin "baserom.gba", 0x2dbe02, 0x10 - -gUnknown_082DBE12:: @ 82DBE12 - .incbin "baserom.gba", 0x2dbe12, 0xa - -gUnknown_082DBE1C:: @ 82DBE1C - .incbin "baserom.gba", 0x2dbe1c, 0x2f - -gUnknown_082DBE4B:: @ 82DBE4B - .incbin "baserom.gba", 0x2dbe4b, 0x24 - -gUnknown_082DBE6F:: @ 82DBE6F - .incbin "baserom.gba", 0x2dbe6f, 0x22 - -gUnknown_082DBE91:: @ 82DBE91 - .incbin "baserom.gba", 0x2dbe91, 0x22 - -BattleScript_RunByUsingItem:: @ 82DBEB3 - .incbin "baserom.gba", 0x2dbeb3, 0xA - -gUnknown_082DBEBD:: @ 82DBEBD - .incbin "baserom.gba", 0x2dbebd, 0x7 - -gUnknown_082DBEC4:: @ 82DBEC4 - .incbin "baserom.gba", 0x2dbec4, 0x9 - -gUnknown_082DBECD:: @ 82DBECD - .incbin "baserom.gba", 0x2dbecd, 0x16 - -gUnknown_082DBEE3:: @ 82DBEE3 - .incbin "baserom.gba", 0x2dbee3, 0x15 + .4byte BattleScript_82DBEBD + .4byte BattleScript_82DBEC4 + .4byte BattleScript_82DBECD + .4byte BattleScript_82DBEE3 + +BattleScript_82DBD68:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_82DBD7A + printstring STRINGID_PLAYERUSEDITEM + pokeball_catch_calculation + +BattleScript_82DBD7A:: + printstring STRINGID_WALLYUSEDITEM + pokeball_catch_calculation + +BattleScript_82DBD7E:: + printstring STRINGID_PLAYERUSEDITEM + updatestatusicon ATTACKER + pokeball_catch_calculation + +BattleScript_SuccessBallThrow:: + jumpifhalfword EQUAL, gLastUsedItem, 0x5, BattleScript_82DBD92 + incrementgamestat 0xB +BattleScript_82DBD92:: + printstring STRINGID_GOTCHAPKMNCAUGHT + trysetcaughtmondexflags BattleScript_82DBDA5 + printstring STRINGID_PKMNDATAADDEDTODEX + waitstate + setbyte gBattleCommunication, 0x0 + displaydexinfo +BattleScript_82DBDA5:: + printstring STRINGID_GIVENICKNAMECAPTURED + waitstate + setbyte gBattleCommunication, 0x0 + trygivecaughtmonnick BattleScript_82DBDC2 + givecaughtmon + printfromtable 0x85CC97A + waitmessage 0x40 + goto BattleScript_82DBDC3 + +BattleScript_82DBDC2:: + givecaughtmon +BattleScript_82DBDC3:: + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_WallyBallThrow:: + printstring STRINGID_GOTCHAPKMNCAUGHT2 + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_ShakeBallThrow:: + printfromtable 0x85CC912 + waitmessage 0x40 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_82DBE01 + jumpifbyte NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_82DBE01 + printstring STRINGID_OUTOFSAFARIBALLS + waitmessage 0x40 + setbyte gBattleOutcome, OUT_OF_BALLS +BattleScript_82DBE01:: + finishaction + +BattleScript_TrainerBallBlock:: + waitmessage 0x40 + printstring STRINGID_TRAINERBLOCKEDBALL + waitmessage 0x40 + printstring STRINGID_DONTBEATHIEF + waitmessage 0x40 + finishaction + +BattleScript_82DBE12:: + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end + +BattleScript_82DBE1C:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE4B:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable 0x85CC94E + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE6F:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable 0x85CC89C + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE91:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable 0x85CC8CC + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_RunByUsingItem:: + playse 0x11 + setbyte gBattleOutcome, RAN + finishturn + +BattleScript_82DBEBD:: + printstring STRINGID_PKMNWATCHINGCAREFULLY + waitmessage 0x40 + end2 + +BattleScript_82DBEC4:: + printfromtable 0x85CC944 + waitmessage 0x40 + end2 + +BattleScript_82DBECD:: + printstring STRINGID_THREWPOKEBLOCKATPKMN + waitmessage 0x40 + playanimation ATTACKER, ANIM_x4, NULL + printfromtable 0x85CC948 + waitmessage 0x40 + end2 + +BattleScript_82DBEE3:: + printstring STRINGID_RETURNMON + waitmessage 0x40 + returnatktoball + waitstate + trainerslidein TARGET + waitstate + printstring STRINGID_YOUTHROWABALLNOWRIGHT + waitmessage 0x40 + end2 diff --git a/include/battle.h b/include/battle.h index 0939c92b6..ada5282dc 100644 --- a/include/battle.h +++ b/include/battle.h @@ -272,6 +272,8 @@ #define BS_GET_TARGET 0 #define BS_GET_ATTACKER 1 #define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 #define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update #define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability @@ -847,7 +849,7 @@ struct BattleScripting u8 field_F; u8 animArg1; u8 animArg2; - u8 field_12; + u8 tripleKickPower; u8 field_13; u8 atk49_state; u8 field_15; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 973a723e0..c69cb1017 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -198,7 +198,7 @@ void EmitBallThrowAnim(u8 bufferId, u8 caseId); void EmitPause(u8 bufferId, u8 toWait, void *data); // unused void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); void EmitPrintString(u8 bufferId, u16 stringId); -void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); +void EmitPrintSelectionString(u8 bufferId, u16 stringId); void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); void EmitUnknownYesNoBox(u8 bufferId); void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); @@ -224,7 +224,7 @@ void EmitCmd39(u8 bufferId); // unused void EmitCmd40(u8 bufferId); // unused void EmitHitAnimation(u8 bufferId); void EmitCmd42(u8 bufferId); -void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPlaySE(u8 bufferId, u16 songId); void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); void EmitFaintingCry(u8 bufferId); void EmitIntroSlide(u8 bufferId, u8 terrainId); diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h index 4a9415379..003913380 100644 --- a/include/battle_move_effects.h +++ b/include/battle_move_effects.h @@ -153,7 +153,7 @@ enum EFFECT_EARTHQUAKE, EFFECT_FUTURE_SIGHT, EFFECT_GUST, - EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM + EFFECT_STOMP, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM EFFECT_SOLARBEAM, EFFECT_THUNDER, EFFECT_TELEPORT, diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index ebfeabccc..80fabaa64 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -1,6 +1,10 @@ #ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H #define GUARD_BATTLE_SCRIPT_COMMANDS_H +#define NO_ACC_CALC 0xFFFE +#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF +#define ACC_CURR_MOVE 0 + #define CMP_EQUAL 0x0 #define CMP_NOT_EQUAL 0x1 #define CMP_GREATER_THAN 0x2 @@ -21,7 +25,7 @@ #define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 #define VARIOUS_SET_MAGIC_COAT_TARGET 1 -#define VARIOUS_CAN_RUN_FROM_BATTLE 2 +#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 #define VARIOUS_GET_MOVE_TARGET 3 #define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 #define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 diff --git a/include/battle_scripts.h b/include/battle_scripts.h new file mode 100644 index 000000000..b04a82673 --- /dev/null +++ b/include/battle_scripts.h @@ -0,0 +1,640 @@ +#ifndef GUARD_BATTLE_SCRIPTS_H +#define GUARD_BATTLE_SCRIPTS_H + +extern const u8 BattleScript_EffectHit[]; +extern const u8 BattleScript_HitFromAtkCanceler[]; +extern const u8 BattleScript_HitFromAccCheck[]; +extern const u8 BattleScript_HitFromAtkString[]; +extern const u8 BattleScript_HitFromCritCalc[]; +extern const u8 BattleScript_HitFromAtkAnimation[]; +extern const u8 BattleScript_MoveEnd[]; +extern const u8 BattleScript_MakeMoveMissed[]; +extern const u8 BattleScript_PrintMoveMissed[]; +extern const u8 BattleScript_MoveMissedPause[]; +extern const u8 BattleScript_MoveMissed[]; +extern const u8 BattleScript_EffectSleep[]; +extern const u8 BattleScript_82D8AB0[]; +extern const u8 BattleScript_82D8AC1[]; +extern const u8 BattleScript_82D8ACF[]; +extern const u8 BattleScript_EffectPoisonHit[]; +extern const u8 BattleScript_EffectAbsorb[]; +extern const u8 BattleScript_82D8B26[]; +extern const u8 BattleScript_82D8B2E[]; +extern const u8 BattleScript_82D8B45[]; +extern const u8 BattleScript_EffectBurnHit[]; +extern const u8 BattleScript_EffectFreezeHit[]; +extern const u8 BattleScript_EffectParalyzeHit[]; +extern const u8 BattleScript_EffectExplosion[]; +extern const u8 BattleScript_82D8B94[]; +extern const u8 BattleScript_82D8B96[]; +extern const u8 BattleScript_82D8BCF[]; +extern const u8 BattleScript_82D8BEA[]; +extern const u8 BattleScript_EffectDreamEater[]; +extern const u8 BattleScript_82D8C0E[]; +extern const u8 BattleScript_82D8C18[]; +extern const u8 BattleScript_82D8C56[]; +extern const u8 BattleScript_EffectMirrorMove[]; +extern const u8 BattleScript_EffectAttackUp[]; +extern const u8 BattleScript_EffectDefenseUp[]; +extern const u8 BattleScript_EffectSpecialAttackUp[]; +extern const u8 BattleScript_EffectEvasionUp[]; +extern const u8 BattleScript_EffectStatUp[]; +extern const u8 BattleScript_EffectStatUpAfterAtkCanceler[]; +extern const u8 BattleScript_82D8CBD[]; +extern const u8 BattleScript_82D8CBF[]; +extern const u8 BattleScript_82D8CC7[]; +extern const u8 BattleScript_82D8CCF[]; +extern const u8 BattleScript_StatUp[]; +extern const u8 BattleScript_EffectAttackDown[]; +extern const u8 BattleScript_EffectDefenseDown[]; +extern const u8 BattleScript_EffectSpeedDown[]; +extern const u8 BattleScript_EffectAccuracyDown[]; +extern const u8 BattleScript_EffectEvasionDown[]; +extern const u8 BattleScript_EffectStatDown[]; +extern const u8 BattleScript_82D8D4E[]; +extern const u8 BattleScript_82D8D58[]; +extern const u8 BattleScript_82D8D60[]; +extern const u8 BattleScript_StatDown[]; +extern const u8 BattleScript_EffectHaze[]; +extern const u8 BattleScript_EffectBide[]; +extern const u8 BattleScript_EffectRampage[]; +extern const u8 BattleScript_82D8DAE[]; +extern const u8 BattleScript_EffectRoar[]; +extern const u8 BattleScript_EffectMultiHit[]; +extern const u8 BattleScript_82D8DFD[]; +extern const u8 BattleScript_82D8E1F[]; +extern const u8 BattleScript_82D8E71[]; +extern const u8 BattleScript_82D8E74[]; +extern const u8 BattleScript_82D8E93[]; +extern const u8 BattleScript_EffectConversion[]; +extern const u8 BattleScript_EffectFlinchHit[]; +extern const u8 BattleScript_EffectRestoreHp[]; +extern const u8 BattleScript_EffectToxic[]; +extern const u8 BattleScript_AlreadyPoisoned[]; +extern const u8 BattleScript_82D8F63[]; +extern const u8 BattleScript_EffectPayDay[]; +extern const u8 BattleScript_EffectLightScreen[]; +extern const u8 BattleScript_EffectTriAttack[]; +extern const u8 BattleScript_EffectRest[]; +extern const u8 BattleScript_82D8FC6[]; +extern const u8 BattleScript_82D8FD6[]; +extern const u8 BattleScript_EffectOhko[]; +extern const u8 BattleScript_82D9008[]; +extern const u8 BattleScript_EffectRazorWind[]; +extern const u8 BattleScript_82D9040[]; +extern const u8 BattleScript_82D906F[]; +extern const u8 BattleScript_EffectSuperFang[]; +extern const u8 BattleScript_EffectDragonRage[]; +extern const u8 BattleScript_EffectTrap[]; +extern const u8 BattleScript_82D9105[]; +extern const u8 BattleScript_EffectDoubleHit[]; +extern const u8 BattleScript_EffectRecoilIfMiss[]; +extern const u8 BattleScript_82D9135[]; +extern const u8 BattleScript_EffectMist[]; +extern const u8 BattleScript_EffectFocusEnergy[]; +extern const u8 BattleScript_EffectRecoil[]; +extern const u8 BattleScript_EffectConfuse[]; +extern const u8 BattleScript_82D9201[]; +extern const u8 BattleScript_EffectAttackUp2[]; +extern const u8 BattleScript_EffectDefenseUp2[]; +extern const u8 BattleScript_EffectSpeedUp2[]; +extern const u8 BattleScript_EffectSpecialAttackUp2[]; +extern const u8 BattleScript_EffectSpecialDefenseUp2[]; +extern const u8 BattleScript_EffectTransform[]; +extern const u8 BattleScript_EffectAttackDown2[]; +extern const u8 BattleScript_EffectDefenseDown2[]; +extern const u8 BattleScript_EffectSpeedDown2[]; +extern const u8 BattleScript_EffectSpecialDefenseDown2[]; +extern const u8 BattleScript_EffectReflect[]; +extern const u8 BattleScript_82D928C[]; +extern const u8 BattleScript_EffectPoison[]; +extern const u8 BattleScript_EffectParalyze[]; +extern const u8 BattleScript_82D9351[]; +extern const u8 BattleScript_82D9362[]; +extern const u8 BattleScript_EffectAttackDownHit[]; +extern const u8 BattleScript_EffectDefenseDownHit[]; +extern const u8 BattleScript_EffectSpeedDownHit[]; +extern const u8 BattleScript_EffectSpecialAttackDownHit[]; +extern const u8 BattleScript_EffectSpecialDefenseDownHit[]; +extern const u8 BattleScript_EffectAccuracyDownHit[]; +extern const u8 BattleScript_EffectSkyAttack[]; +extern const u8 BattleScript_EffectConfuseHit[]; +extern const u8 BattleScript_EffectTwineedle[]; +extern const u8 BattleScript_EffectSubstitute[]; +extern const u8 BattleScript_82D942B[]; +extern const u8 BattleScript_82D9431[]; +extern const u8 BattleScript_82D943E[]; +extern const u8 BattleScript_EffectRecharge[]; +extern const u8 BattleScript_MoveUsedMustRecharge[]; +extern const u8 BattleScript_EffectRage[]; +extern const u8 BattleScript_82D9487[]; +extern const u8 BattleScript_EffectMimic[]; +extern const u8 BattleScript_EffectMetronome[]; +extern const u8 BattleScript_EffectLeechSeed[]; +extern const u8 BattleScript_82D94E5[]; +extern const u8 BattleScript_EffectSplash[]; +extern const u8 BattleScript_EffectDisable[]; +extern const u8 BattleScript_EffectLevelDamage[]; +extern const u8 BattleScript_EffectPsywave[]; +extern const u8 BattleScript_EffectCounter[]; +extern const u8 BattleScript_EffectEncore[]; +extern const u8 BattleScript_EffectPainSplit[]; +extern const u8 BattleScript_EffectSnore[]; +extern const u8 BattleScript_82D95CE[]; +extern const u8 BattleScript_82D95E2[]; +extern const u8 BattleScript_EffectConversion2[]; +extern const u8 BattleScript_EffectLockOn[]; +extern const u8 BattleScript_EffectSketch[]; +extern const u8 BattleScript_EffectSleepTalk[]; +extern const u8 BattleScript_82D965E[]; +extern const u8 BattleScript_82D967E[]; +extern const u8 BattleScript_EffectDestinyBond[]; +extern const u8 BattleScript_EffectFlail[]; +extern const u8 BattleScript_EffectSpite[]; +extern const u8 BattleScript_EffectHealBell[]; +extern const u8 BattleScript_82D96ED[]; +extern const u8 BattleScript_82D96FE[]; +extern const u8 BattleScript_EffectTripleKick[]; +extern const u8 BattleScript_82D9718[]; +extern const u8 BattleScript_82D973A[]; +extern const u8 BattleScript_82D9799[]; +extern const u8 BattleScript_82D97AD[]; +extern const u8 BattleScript_82D97D7[]; +extern const u8 BattleScript_EffectThief[]; +extern const u8 BattleScript_EffectMeanLook[]; +extern const u8 BattleScript_EffectNightmare[]; +extern const u8 BattleScript_NightmareWorked[]; +extern const u8 BattleScript_EffectMinimize[]; +extern const u8 BattleScript_EffectCurse[]; +extern const u8 BattleScript_82D9892[]; +extern const u8 BattleScript_82D98B8[]; +extern const u8 BattleScript_82D98CC[]; +extern const u8 BattleScript_82D98E0[]; +extern const u8 BattleScript_82D98E5[]; +extern const u8 BattleScript_82D98F6[]; +extern const u8 BattleScript_EffectProtect[]; +extern const u8 BattleScript_EffectSpikes[]; +extern const u8 BattleScript_EffectForesight[]; +extern const u8 BattleScript_EffectPerishSong[]; +extern const u8 BattleScript_PerishSongLoop[]; +extern const u8 BattleScript_PerishSongLoopIncrement[]; +extern const u8 BattleScript_PerishSongNotAffected[]; +extern const u8 BattleScript_EffectSandstorm[]; +extern const u8 BattleScript_EffectRollout[]; +extern const u8 BattleScript_82D99CD[]; +extern const u8 BattleScript_82D99D4[]; +extern const u8 BattleScript_EffectSwagger[]; +extern const u8 BattleScript_82D9A1E[]; +extern const u8 BattleScript_EffectFuryCutter[]; +extern const u8 BattleScript_82D9A43[]; +extern const u8 BattleScript_EffectAttract[]; +extern const u8 BattleScript_EffectReturn[]; +extern const u8 BattleScript_EffectPresent[]; +extern const u8 BattleScript_EffectSafeguard[]; +extern const u8 BattleScript_EffectThawHit[]; +extern const u8 BattleScript_EffectMagnitude[]; +extern const u8 BattleScript_EffectBatonPass[]; +extern const u8 BattleScript_EffectRapidSpin[]; +extern const u8 BattleScript_EffectSonicboom[]; +extern const u8 BattleScript_EffectMorningSun[]; +extern const u8 BattleScript_EffectHiddenPower[]; +extern const u8 BattleScript_EffectRainDance[]; +extern const u8 BattleScript_82D9B41[]; +extern const u8 BattleScript_EffectSunnyDay[]; +extern const u8 BattleScript_EffectDefenseUpHit[]; +extern const u8 BattleScript_EffectAttackUpHit[]; +extern const u8 BattleScript_EffectAllStatsUpHit[]; +extern const u8 BattleScript_EffectBellyDrum[]; +extern const u8 BattleScript_EffectPsychUp[]; +extern const u8 BattleScript_EffectMirrorCoat[]; +extern const u8 BattleScript_EffectSkullBash[]; +extern const u8 BattleScript_82D9C16[]; +extern const u8 BattleScript_EffectTwister[]; +extern const u8 BattleScript_82D9C35[]; +extern const u8 BattleScript_EffectEarthquake[]; +extern const u8 BattleScript_82D9C44[]; +extern const u8 BattleScript_82D9C64[]; +extern const u8 BattleScript_82D9C73[]; +extern const u8 BattleScript_82D9CAC[]; +extern const u8 BattleScript_EffectFutureSight[]; +extern const u8 BattleScript_EffectGust[]; +extern const u8 BattleScript_EffectStomp[]; +extern const u8 BattleScript_EffectSolarbeam[]; +extern const u8 BattleScript_82D9D28[]; +extern const u8 BattleScript_82D9D50[]; +extern const u8 BattleScript_EffectThunder[]; +extern const u8 BattleScript_EffectTeleport[]; +extern const u8 BattleScript_EffectBeatUp[]; +extern const u8 BattleScript_BeatUpLoop[]; +extern const u8 BattleScript_BeatUpAttack[]; +extern const u8 BattleScript_BeatUpEnd[]; +extern const u8 BattleScript_EffectFly[]; +extern const u8 BattleScript_82D9E52[]; +extern const u8 BattleScript_82D9E5D[]; +extern const u8 BattleScript_82D9E68[]; +extern const u8 BattleScript_82D9E6E[]; +extern const u8 BattleScript_82D9E79[]; +extern const u8 BattleScript_82D9EA3[]; +extern const u8 BattleScript_82D9EB0[]; +extern const u8 BattleScript_EffectDefenseCurl[]; +extern const u8 BattleScript_82D9ED3[]; +extern const u8 BattleScript_EffectSoftboiled[]; +extern const u8 BattleScript_PresentHealTarget[]; +extern const u8 BattleScript_AlreadyAtFullHp[]; +extern const u8 BattleScript_EffectFakeOut[]; +extern const u8 BattleScript_ButItFailedAtkStringPpReduce[]; +extern const u8 BattleScript_ButItFailedPpReduce[]; +extern const u8 BattleScript_ButItFailed[]; +extern const u8 BattleScript_NotAffected[]; +extern const u8 BattleScript_EffectUproar[]; +extern const u8 BattleScript_82D9F5A[]; +extern const u8 BattleScript_EffectStockpile[]; +extern const u8 BattleScript_EffectSpitUp[]; +extern const u8 BattleScript_SpitUpFail[]; +extern const u8 BattleScript_82D9FA2[]; +extern const u8 BattleScript_EffectSwallow[]; +extern const u8 BattleScript_SwallowFail[]; +extern const u8 BattleScript_EffectHail[]; +extern const u8 BattleScript_EffectTorment[]; +extern const u8 BattleScript_EffectFlatter[]; +extern const u8 BattleScript_82DA03A[]; +extern const u8 BattleScript_EffectWillOWisp[]; +extern const u8 BattleScript_82DA0A1[]; +extern const u8 BattleScript_82DA0BB[]; +extern const u8 BattleScript_EffectMemento[]; +extern const u8 BattleScript_82DA119[]; +extern const u8 BattleScript_82DA13C[]; +extern const u8 BattleScript_82DA148[]; +extern const u8 BattleScript_82DA153[]; +extern const u8 BattleScript_82DA15A[]; +extern const u8 BattleScript_EffectFacade[]; +extern const u8 BattleScript_FacadeDoubleDmg[]; +extern const u8 BattleScript_EffectFocusPunch[]; +extern const u8 BattleScript_EffectSmellingsalt[]; +extern const u8 BattleScript_82DA1BA[]; +extern const u8 BattleScript_EffectFollowMe[]; +extern const u8 BattleScript_EffectNaturePower[]; +extern const u8 BattleScript_EffectCharge[]; +extern const u8 BattleScript_EffectTaunt[]; +extern const u8 BattleScript_EffectHelpingHand[]; +extern const u8 BattleScript_EffectTrick[]; +extern const u8 BattleScript_EffectRolePlay[]; +extern const u8 BattleScript_EffectWish[]; +extern const u8 BattleScript_EffectAssist[]; +extern const u8 BattleScript_EffectIngrain[]; +extern const u8 BattleScript_EffectSuperpower[]; +extern const u8 BattleScript_EffectMagicCoat[]; +extern const u8 BattleScript_EffectRecycle[]; +extern const u8 BattleScript_EffectRevenge[]; +extern const u8 BattleScript_EffectBrickBreak[]; +extern const u8 BattleScript_82DA306[]; +extern const u8 BattleScript_82DA319[]; +extern const u8 BattleScript_EffectYawn[]; +extern const u8 BattleScript_82DA378[]; +extern const u8 BattleScript_82DA382[]; +extern const u8 BattleScript_EffectKnockOff[]; +extern const u8 BattleScript_EffectEndeavor[]; +extern const u8 BattleScript_EffectEruption[]; +extern const u8 BattleScript_EffectSkillSwap[]; +extern const u8 BattleScript_EffectImprison[]; +extern const u8 BattleScript_EffectRefresh[]; +extern const u8 BattleScript_EffectGrudge[]; +extern const u8 BattleScript_EffectSnatch[]; +extern const u8 BattleScript_EffectLowKick[]; +extern const u8 BattleScript_EffectSecretPower[]; +extern const u8 BattleScript_EffectDoubleEdge[]; +extern const u8 BattleScript_EffectTeeterDance[]; +extern const u8 BattleScript_82DA47B[]; +extern const u8 BattleScript_82DA4C7[]; +extern const u8 BattleScript_82DA4D0[]; +extern const u8 BattleScript_82DA4E5[]; +extern const u8 BattleScript_82DA4F3[]; +extern const u8 BattleScript_82DA501[]; +extern const u8 BattleScript_82DA50F[]; +extern const u8 BattleScript_82DA520[]; +extern const u8 BattleScript_EffectMudSport[]; +extern const u8 BattleScript_EffectPoisonFang[]; +extern const u8 BattleScript_EffectWeatherBall[]; +extern const u8 BattleScript_EffectOverheat[]; +extern const u8 BattleScript_EffectTickle[]; +extern const u8 BattleScript_82DA571[]; +extern const u8 BattleScript_82DA5A7[]; +extern const u8 BattleScript_82DA5CA[]; +extern const u8 BattleScript_82DA5CF[]; +extern const u8 BattleScript_EffectCosmicPower[]; +extern const u8 BattleScript_82DA5F8[]; +extern const u8 BattleScript_82DA623[]; +extern const u8 BattleScript_82DA642[]; +extern const u8 BattleScript_EffectSkyUppercut[]; +extern const u8 BattleScript_EffectBulkUp[]; +extern const u8 BattleScript_82DA66A[]; +extern const u8 BattleScript_82DA695[]; +extern const u8 BattleScript_82DA6B4[]; +extern const u8 BattleScript_EffectCalmMind[]; +extern const u8 BattleScript_82DA6CE[]; +extern const u8 BattleScript_82DA6F9[]; +extern const u8 BattleScript_82DA718[]; +extern const u8 BattleScript_CantRaiseMultipleStats[]; +extern const u8 BattleScript_EffectDragonDance[]; +extern const u8 BattleScript_82DA746[]; +extern const u8 BattleScript_82DA771[]; +extern const u8 BattleScript_82DA790[]; +extern const u8 BattleScript_EffectCamouflage[]; +extern const u8 BattleScript_FaintAttacker[]; +extern const u8 BattleScript_FaintTarget[]; +extern const u8 BattleScript_82DA7C4[]; +extern const u8 BattleScript_82DA7CD[]; +extern const u8 BattleScript_82DA816[]; +extern const u8 BattleScript_82DA8D0[]; +extern const u8 BattleScript_82DA8F5[]; +extern const u8 BattleScript_82DA8F6[]; +extern const u8 BattleScript_82DA8FC[]; +extern const u8 BattleScript_82DA908[]; +extern const u8 BattleScript_82DA92C[]; +extern const u8 BattleScript_LocalTrainerBattleWon[]; +extern const u8 BattleScript_82DA943[]; +extern const u8 BattleScript_82DA946[]; +extern const u8 BattleScript_82DA963[]; +extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; +extern const u8 BattleScript_LocalBattleLost[]; +extern const u8 BattleScript_82DA9B1[]; +extern const u8 BattleScript_82DA9BD[]; +extern const u8 BattleScript_82DA9BE[]; +extern const u8 BattleScript_82DA9C9[]; +extern const u8 BattleScript_82DAA01[]; +extern const u8 BattleScript_82DAA0A[]; +extern const u8 BattleScript_82DAA0B[]; +extern const u8 BattleScript_82DAA31[]; +extern const u8 BattleScript_LinkBattleWonOrLost[]; +extern const u8 BattleScript_82DAA58[]; +extern const u8 BattleScript_82DAA5C[]; +extern const u8 BattleScript_82DAA83[]; +extern const u8 BattleScript_FrontierTrainerBattleWon[]; +extern const u8 BattleScript_82DAAAB[]; +extern const u8 BattleScript_82DAAAE[]; +extern const u8 BattleScript_82DAACB[]; +extern const u8 BattleScript_82DAADA[]; +extern const u8 BattleScript_SmokeBallEscape[]; +extern const u8 BattleScript_RanAwayUsingMonAbility[]; +extern const u8 BattleScript_GotAwaySafely[]; +extern const u8 BattleScript_WildMonFled[]; +extern const u8 BattleScript_82DAAFE[]; +extern const u8 BattleScript_PrintFailedToRunString[]; +extern const u8 BattleScript_82DAB0B[]; +extern const u8 BattleScript_82DAB11[]; +extern const u8 BattleScript_ActionSwitch[]; +extern const u8 BattleScript_82DAB35[]; +extern const u8 BattleScript_82DAB37[]; +extern const u8 BattleScript_82DAB44[]; +extern const u8 BattleScript_82DAB77[]; +extern const u8 BattleScript_82DABB8[]; +extern const u8 BattleScript_Pausex20[]; +extern const u8 BattleScript_LevelUp[]; +extern const u8 BattleScript_TryLearnMoveLoop[]; +extern const u8 BattleScript_AskToLearnMove[]; +extern const u8 BattleScript_ForgotAndLearnedNewMove[]; +extern const u8 BattleScript_LearnedNewMove[]; +extern const u8 BattleScript_LearnMoveReturn[]; +extern const u8 BattleScript_82DAC2C[]; +extern const u8 BattleScript_82DAC46[]; +extern const u8 BattleScript_82DAC47[]; +extern const u8 BattleScript_82DAC5F[]; +extern const u8 BattleScript_82DACA0[]; +extern const u8 BattleScript_82DACBF[]; +extern const u8 BattleScript_82DACC9[]; +extern const u8 BattleScript_82DACD2[]; +extern const u8 BattleScript_82DACE0[]; +extern const u8 BattleScript_82DACE7[]; +extern const u8 BattleScript_82DACFA[]; +extern const u8 BattleScript_82DAD01[]; +extern const u8 BattleScript_82DAD0B[]; +extern const u8 BattleScript_LeechSeedTurnDrain[]; +extern const u8 BattleScript_82DAD47[]; +extern const u8 BattleScript_82DAD4D[]; +extern const u8 BattleScript_BideStoringEnergy[]; +extern const u8 BattleScript_BideAttack[]; +extern const u8 BattleScript_BideNoEnergyToAttack[]; +extern const u8 BattleScript_82DADD8[]; +extern const u8 BattleScript_82DADF1[]; +extern const u8 BattleScript_MistProtected[]; +extern const u8 BattleScript_RageIsBuilding[]; +extern const u8 BattleScript_MoveUsedIsDisabled[]; +extern const u8 BattleScript_82DAE1F[]; +extern const u8 BattleScript_DisabledNoMore[]; +extern const u8 BattleScript_82DAE2A[]; +extern const u8 BattleScript_82DAE2D[]; +extern const u8 BattleScript_EncoredNoMore[]; +extern const u8 BattleScript_DestinyBondTakesLife[]; +extern const u8 BattleScript_SpikesOnAttacker[]; +extern const u8 BattleScript_82DAE7A[]; +extern const u8 BattleScript_SpikesOnTarget[]; +extern const u8 BattleScript_82DAEB1[]; +extern const u8 BattleScript_SpikesOngBank1[]; +extern const u8 BattleScript_82DAEE8[]; +extern const u8 BattleScript_82DAEFE[]; +extern const u8 BattleScript_82DAF05[]; +extern const u8 BattleScript_82DAF20[]; +extern const u8 BattleScript_AllStatsUp[]; +extern const u8 BattleScript_82DAF54[]; +extern const u8 BattleScript_82DAF72[]; +extern const u8 BattleScript_82DAF86[]; +extern const u8 BattleScript_82DAF9A[]; +extern const u8 BattleScript_82DAFAE[]; +extern const u8 BattleScript_82DAFC2[]; +extern const u8 BattleScript_RapidSpinAway[]; +extern const u8 BattleScript_WrapFree[]; +extern const u8 BattleScript_LeechSeedFree[]; +extern const u8 BattleScript_SpikesFree[]; +extern const u8 BattleScript_82DAFE4[]; +extern const u8 BattleScript_82DB001[]; +extern const u8 BattleScript_82DB008[]; +extern const u8 BattleScript_82DB020[]; +extern const u8 BattleScript_82DB027[]; +extern const u8 BattleScript_82DB03F[]; +extern const u8 BattleScript_82DB058[]; +extern const u8 BattleScript_NoMovesLeft[]; +extern const u8 BattleScript_82DB076[]; +extern const u8 BattleScript_NoPPForMove[]; +extern const u8 BattleScript_82DB089[]; +extern const u8 BattleScript_82DB08D[]; +extern const u8 BattleScript_82DB098[]; +extern const u8 BattleScript_82DB0A0[]; +extern const u8 BattleScript_MoveUsedIsTaunted[]; +extern const u8 BattleScript_82DB0AF[]; +extern const u8 BattleScript_WishComesTrue[]; +extern const u8 BattleScript_82DB0DE[]; +extern const u8 BattleScript_IngrainTurnHeal[]; +extern const u8 BattleScript_82DB109[]; +extern const u8 BattleScript_AtkDefDown[]; +extern const u8 BattleScript_82DB144[]; +extern const u8 BattleScript_82DB167[]; +extern const u8 BattleScript_KnockedOff[]; +extern const u8 BattleScript_MoveUsedIsImprisoned[]; +extern const u8 BattleScript_82DB181[]; +extern const u8 BattleScript_82DB185[]; +extern const u8 BattleScript_GrudgeTakesPp[]; +extern const u8 BattleScript_MagicCoatBounce[]; +extern const u8 BattleScript_SnatchedMove[]; +extern const u8 BattleScript_EnduredMsg[]; +extern const u8 BattleScript_OneHitKOMsg[]; +extern const u8 BattleScript_SAtkDown2[]; +extern const u8 BattleScript_82DB1FE[]; +extern const u8 BattleScript_FocusPunchSetUp[]; +extern const u8 BattleScript_MoveUsedIsAsleep[]; +extern const u8 BattleScript_MoveUsedWokeUp[]; +extern const u8 BattleScript_82DB234[]; +extern const u8 BattleScript_PoisonTurnDmg[]; +extern const u8 BattleScript_82DB243[]; +extern const u8 BattleScript_82DB245[]; +extern const u8 BattleScript_82DB25E[]; +extern const u8 BattleScript_BurnTurnDmg[]; +extern const u8 BattleScript_MoveUsedIsFrozen[]; +extern const u8 BattleScript_MoveUsedUnfroze[]; +extern const u8 BattleScript_DefrostedViaFireMove[]; +extern const u8 BattleScript_MoveUsedIsParalyzed[]; +extern const u8 BattleScript_MoveUsedFlinched[]; +extern const u8 BattleScript_82DB2A6[]; +extern const u8 BattleScript_ThrashConfuses[]; +extern const u8 BattleScript_MoveUsedIsConfused[]; +extern const u8 BattleScript_82DB2D4[]; +extern const u8 BattleScript_82DB2FF[]; +extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; +extern const u8 BattleScript_PrintPayDayMoneyString[]; +extern const u8 BattleScript_WrapTurnDmg[]; +extern const u8 BattleScript_WrapEnds[]; +extern const u8 BattleScript_MoveUsedIsInLove[]; +extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; +extern const u8 BattleScript_NightmareTurnDmg[]; +extern const u8 BattleScript_CurseTurnDmg[]; +extern const u8 BattleScript_TargetPRLZHeal[]; +extern const u8 BattleScript_MoveEffectSleep[]; +extern const u8 BattleScript_82DB374[]; +extern const u8 BattleScript_YawnMakesAsleep[]; +extern const u8 BattleScript_MoveEffectPoison[]; +extern const u8 BattleScript_MoveEffectBurn[]; +extern const u8 BattleScript_MoveEffectFreeze[]; +extern const u8 BattleScript_MoveEffectParalysis[]; +extern const u8 BattleScript_MoveEffectUproar[]; +extern const u8 BattleScript_MoveEffectToxic[]; +extern const u8 BattleScript_MoveEffectPayDay[]; +extern const u8 BattleScript_MoveEffectWrap[]; +extern const u8 BattleScript_MoveEffectConfusion[]; +extern const u8 BattleScript_MoveEffectRecoil33[]; +extern const u8 BattleScript_82DB407[]; +extern const u8 BattleScript_82DB421[]; +extern const u8 BattleScript_ItemSteal[]; +extern const u8 BattleScript_DrizzleActivates[]; +extern const u8 BattleScript_SpeedBoostActivates[]; +extern const u8 BattleScript_TraceActivates[]; +extern const u8 BattleScript_RainDishActivates[]; +extern const u8 BattleScript_SandstreamActivates[]; +extern const u8 BattleScript_ShedSkinActivates[]; +extern const u8 BattleScript_82DB48D[]; +extern const u8 BattleScript_82DB493[]; +extern const u8 BattleScript_CastformChange[]; +extern const u8 BattleScript_82DB4AF[]; +extern const u8 BattleScript_82DB4B8[]; +extern const u8 BattleScript_82DB4BE[]; +extern const u8 BattleScript_82DB4C1[]; +extern const u8 BattleScript_82DB4CD[]; +extern const u8 BattleScript_82DB510[]; +extern const u8 BattleScript_82DB51B[]; +extern const u8 BattleScript_82DB51C[]; +extern const u8 BattleScript_DroughtActivates[]; +extern const u8 BattleScript_TookAttack[]; +extern const u8 BattleScript_SturdyPreventsOHKO[]; +extern const u8 BattleScript_DampStopsExplosion[]; +extern const u8 BattleScript_MoveHPDrain_PPLoss[]; +extern const u8 BattleScript_MoveHPDrain[]; +extern const u8 BattleScript_82DB591[]; +extern const u8 BattleScript_82DB592[]; +extern const u8 BattleScript_FlashFireBoost_PPLoss[]; +extern const u8 BattleScript_FlashFireBoost[]; +extern const u8 BattleScript_82DB5B9[]; +extern const u8 BattleScript_AbilityNoStatLoss[]; +extern const u8 BattleScript_BRNPrevention[]; +extern const u8 BattleScript_PRLZPrevention[]; +extern const u8 BattleScript_PSNPrevention[]; +extern const u8 BattleScript_ObliviousPreventsAttraction[]; +extern const u8 BattleScript_FlinchPrevention[]; +extern const u8 BattleScript_82DB611[]; +extern const u8 BattleScript_SoundproofProtected[]; +extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; +extern const u8 BattleScript_StickyHoldActivates[]; +extern const u8 BattleScript_ColorChangeActivates[]; +extern const u8 BattleScript_RoughSkinActivates[]; +extern const u8 BattleScript_CuteCharmActivates[]; +extern const u8 BattleScript_ApplySecondaryEffect[]; +extern const u8 BattleScript_SynchronizeActivates[]; +extern const u8 BattleScript_NoItemSteal[]; +extern const u8 BattleScript_82DB68C[]; +extern const u8 BattleScript_82DB695[]; +extern const u8 BattleScript_82DB6A5[]; +extern const u8 BattleScript_MoveUsedLoafingAround[]; +extern const u8 BattleScript_82DB6C7[]; +extern const u8 BattleScript_82DB6D9[]; +extern const u8 BattleScript_82DB6F0[]; +extern const u8 BattleScript_SubstituteFade[]; +extern const u8 BattleScript_BerryCurePrlzEnd2[]; +extern const u8 BattleScript_BerryCureParRet[]; +extern const u8 BattleScript_BerryCurePsnEnd2[]; +extern const u8 BattleScript_BerryCurePsnRet[]; +extern const u8 BattleScript_BerryCureBrnEnd2[]; +extern const u8 BattleScript_BerryCureBrnRet[]; +extern const u8 BattleScript_BerryCureFrzEnd2[]; +extern const u8 BattleScript_BerryCureFrzRet[]; +extern const u8 BattleScript_BerryCureSlpEnd2[]; +extern const u8 BattleScript_BerryCureSlpRet[]; +extern const u8 BattleScript_BerryCureConfusionEnd2[]; +extern const u8 BattleScript_BerryCureConfusionRet[]; +extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; +extern const u8 BattleScript_BerryCureChosenStatusRet[]; +extern const u8 BattleScript_WhiteHerbEnd2[]; +extern const u8 BattleScript_WhiteHerbRet[]; +extern const u8 BattleScript_ItemHealHP_RemoveItem[]; +extern const u8 BattleScript_BerryPPHealEnd2[]; +extern const u8 BattleScript_ItemHealHP_End2[]; +extern const u8 BattleScript_ItemHealHP_Ret[]; +extern const u8 BattleScript_82DB812[]; +extern const u8 BattleScript_HangedOnMsg[]; +extern const u8 BattleScript_BerryConfuseHealEnd2[]; +extern const u8 BattleScript_BerryStatRaiseEnd2[]; +extern const u8 BattleScript_82DB85B[]; +extern const u8 BattleScript_BerryFocusEnergyEnd2[]; +extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; +extern const u8 BattleScript_82DB87D[]; +extern const u8 BattleScript_82DB881[]; +extern const u8 BattleScript_82DB887[]; +extern const u8 BattleScript_82DB89D[]; +extern const u8 BattleScript_82DB8BE[]; +extern const u8 BattleScript_82DB8E0[]; +extern const u8 BattleScript_82DB8F3[]; +extern const u8 BattleScript_82DB973[]; +extern const u8 BattleScript_82DB992[]; +extern const u8 BattleScript_82DB9BA[]; +extern const u8 BattleScript_82DB9C1[]; +extern const u8 BattleScript_82DB9C8[]; +extern const u8 BattleScript_82DBD68[]; +extern const u8 BattleScript_82DBD7A[]; +extern const u8 BattleScript_82DBD7E[]; +extern const u8 BattleScript_SuccessBallThrow[]; +extern const u8 BattleScript_82DBD92[]; +extern const u8 BattleScript_82DBDA5[]; +extern const u8 BattleScript_82DBDC2[]; +extern const u8 BattleScript_82DBDC3[]; +extern const u8 BattleScript_WallyBallThrow[]; +extern const u8 BattleScript_ShakeBallThrow[]; +extern const u8 BattleScript_82DBE01[]; +extern const u8 BattleScript_TrainerBallBlock[]; +extern const u8 BattleScript_82DBE12[]; +extern const u8 BattleScript_82DBE1C[]; +extern const u8 BattleScript_82DBE4B[]; +extern const u8 BattleScript_82DBE6F[]; +extern const u8 BattleScript_82DBE91[]; +extern const u8 BattleScript_RunByUsingItem[]; +extern const u8 BattleScript_82DBEBD[]; +extern const u8 BattleScript_82DBEC4[]; +extern const u8 BattleScript_82DBECD[]; +extern const u8 BattleScript_82DBEE3[]; + +#endif // GUARD_BATTLE_SCRIPTS_H diff --git a/src/battle_2.c b/src/battle_2.c index 2be6f9d77..d7f051272 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -6,6 +6,7 @@ #include "gpu_regs.h" #include "unknown_task.h" #include "battle_setup.h" +#include "battle_scripts.h" #include "pokemon.h" #include "palette.h" #include "task.h" @@ -178,31 +179,6 @@ extern const u8 gText_Ice[]; extern const u8 gText_Confusion[]; extern const u8 gText_Love[]; -// battlescripts -extern const u8 gUnknown_082DB8BE[]; -extern const u8 gUnknown_082DB881[]; -extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; -extern const u8 gUnknown_082DAB11[]; -extern const u8 gUnknown_082DB9BA[]; -extern const u8 gUnknown_082DAAFE[]; -extern const u8 gUnknown_082DAB0B[]; -extern const u8 BattleScript_FocusPunchSetUp[]; -extern const u8 BattleScript_LinkBattleWonOrLost[]; -extern const u8 BattleScript_FrontierTrainerBattleWon[]; -extern const u8 BattleScript_LocalTrainerBattleWon[]; -extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; -extern const u8 BattleScript_LocalBattleLost[]; -extern const u8 gUnknown_082DB9C8[]; -extern const u8 gUnknown_082DAA0B[]; -extern const u8 gUnknown_082DB9C1[]; -extern const u8 BattleScript_RanAwayUsingMonAbility[]; -extern const u8 BattleScript_SmokeBallEscape[]; -extern const u8 BattleScript_GotAwaySafely[]; -extern const u8 BattleScript_WildMonFled[]; -extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_ActionSwitch[]; -extern const u8 BattleScript_PrintFailedToRunString[]; - // functions extern void dp12_8087EA4(void); extern void sub_80356D0(void); @@ -3704,7 +3680,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { StopCryAndClearCrySongs(); - BattleScriptExecute(gUnknown_082DB8BE); + BattleScriptExecute(BattleScript_82DB8BE); } } @@ -3792,9 +3768,9 @@ void BattleTurnPassed(void) gRandomTurnNumber = Random(); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) - BattleScriptExecute(gUnknown_082DB881); + BattleScriptExecute(BattleScript_82DB881); else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) - BattleScriptExecute(gUnknown_082DB8BE); + BattleScriptExecute(BattleScript_82DB8BE); } u8 IsRunningFromBattleImpossible(void) @@ -4052,7 +4028,7 @@ static void HandleTurnActionSelectionState(void) case ACTION_SAFARI_ZONE_BALL: if (IsPlayerPartyAndPokemonStorageFull()) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB11; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAB11; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4107,7 +4083,7 @@ static void HandleTurnActionSelectionState(void) && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB9BA; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB9BA; gBattleCommunication[gActiveBank] = 8; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4117,13 +4093,13 @@ static void HandleTurnActionSelectionState(void) && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - BattleScriptExecute(gUnknown_082DAAFE); + BattleScriptExecute(BattleScript_82DAAFE); gBattleCommunication[gActiveBank] = 1; } else if (IsRunningFromBattleImpossible() != 0 && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB0B; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAB0B; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4811,13 +4787,13 @@ static void HandleEndTurn_BattleLost(void) { if (gBattleOutcome & BATTLE_OUTCOME_BIT_x80) { - gBattlescriptCurrInstr = gUnknown_082DB9C8; + gBattlescriptCurrInstr = BattleScript_82DB9C8; gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); gSaveBlock2Ptr->field_CA9_b = 1; } else { - gBattlescriptCurrInstr = gUnknown_082DAA0B; + gBattlescriptCurrInstr = BattleScript_82DAA0B; gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); } } @@ -4843,13 +4819,13 @@ static void HandleEndTurn_RanFromBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - gBattlescriptCurrInstr = gUnknown_082DB9C1; + gBattlescriptCurrInstr = BattleScript_82DB9C1; gBattleOutcome = BATTLE_FORFEITED; gSaveBlock2Ptr->field_CA9_b = 1; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) { - gBattlescriptCurrInstr = gUnknown_082DB9C1; + gBattlescriptCurrInstr = BattleScript_82DB9C1; gBattleOutcome = BATTLE_FORFEITED; } else diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 423d34d45..5758aba87 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -82,7 +82,7 @@ static void LinkOpponentHandleBallThrowAnim(void); static void LinkOpponentHandlePause(void); static void LinkOpponentHandleMoveAnimation(void); static void LinkOpponentHandlePrintString(void); -static void LinkOpponentHandlePrintStringPlayerOnly(void); +static void LinkOpponentHandlePrintSelectionString(void); static void LinkOpponentHandleChooseAction(void); static void LinkOpponentHandleUnknownYesNoBox(void); static void LinkOpponentHandleChooseMove(void); @@ -108,7 +108,7 @@ static void LinkOpponentHandleCmd39(void); static void LinkOpponentHandleCmd40(void); static void LinkOpponentHandleHitAnimation(void); static void LinkOpponentHandleCmd42(void); -static void LinkOpponentHandleEffectivenessSound(void); +static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlayFanfareOrBGM(void); static void LinkOpponentHandleFaintingCry(void); static void LinkOpponentHandleIntroSlide(void); @@ -154,7 +154,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandlePause, LinkOpponentHandleMoveAnimation, LinkOpponentHandlePrintString, - LinkOpponentHandlePrintStringPlayerOnly, + LinkOpponentHandlePrintSelectionString, LinkOpponentHandleChooseAction, LinkOpponentHandleUnknownYesNoBox, LinkOpponentHandleChooseMove, @@ -180,7 +180,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandleCmd40, LinkOpponentHandleHitAnimation, LinkOpponentHandleCmd42, - LinkOpponentHandleEffectivenessSound, + LinkOpponentHandlePlaySE, LinkOpponentHandlePlayFanfareOrBGM, LinkOpponentHandleFaintingCry, LinkOpponentHandleIntroSlide, @@ -1505,7 +1505,7 @@ static void LinkOpponentHandlePrintString(void) sub_817C95C(*stringId); } -static void LinkOpponentHandlePrintStringPlayerOnly(void) +static void LinkOpponentHandlePrintSelectionString(void) { LinkOpponentBufferExecCompleted(); } @@ -1681,7 +1681,7 @@ static void LinkOpponentHandleCmd42(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleEffectivenessSound(void) +static void LinkOpponentHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index e3bee98d9..1af6da1cd 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -78,7 +78,7 @@ static void LinkPartnerHandleBallThrowAnim(void); static void LinkPartnerHandlePause(void); static void LinkPartnerHandleMoveAnimation(void); static void LinkPartnerHandlePrintString(void); -static void LinkPartnerHandlePrintStringPlayerOnly(void); +static void LinkPartnerHandlePrintSelectionString(void); static void LinkPartnerHandleChooseAction(void); static void LinkPartnerHandleUnknownYesNoBox(void); static void LinkPartnerHandleChooseMove(void); @@ -104,7 +104,7 @@ static void LinkPartnerHandleCmd39(void); static void LinkPartnerHandleCmd40(void); static void LinkPartnerHandleHitAnimation(void); static void LinkPartnerHandleCmd42(void); -static void LinkPartnerHandleEffectivenessSound(void); +static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlayFanfareOrBGM(void); static void LinkPartnerHandleFaintingCry(void); static void LinkPartnerHandleIntroSlide(void); @@ -149,7 +149,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandlePause, LinkPartnerHandleMoveAnimation, LinkPartnerHandlePrintString, - LinkPartnerHandlePrintStringPlayerOnly, + LinkPartnerHandlePrintSelectionString, LinkPartnerHandleChooseAction, LinkPartnerHandleUnknownYesNoBox, LinkPartnerHandleChooseMove, @@ -175,7 +175,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandleCmd40, LinkPartnerHandleHitAnimation, LinkPartnerHandleCmd42, - LinkPartnerHandleEffectivenessSound, + LinkPartnerHandlePlaySE, LinkPartnerHandlePlayFanfareOrBGM, LinkPartnerHandleFaintingCry, LinkPartnerHandleIntroSlide, @@ -1327,7 +1327,7 @@ static void LinkPartnerHandlePrintString(void) sub_817C95C(*stringId); } -static void LinkPartnerHandlePrintStringPlayerOnly(void) +static void LinkPartnerHandlePrintSelectionString(void) { LinkPartnerBufferExecCompleted(); } @@ -1503,7 +1503,7 @@ static void LinkPartnerHandleCmd42(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleEffectivenessSound(void) +static void LinkPartnerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 0aac4cbe4..d69de8c29 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -83,7 +83,7 @@ static void OpponentHandleBallThrow(void); static void OpponentHandlePause(void); static void OpponentHandleMoveAnimation(void); static void OpponentHandlePrintString(void); -static void OpponentHandlePrintStringPlayerOnly(void); +static void OpponentHandlePrintSelectionString(void); static void OpponentHandleChooseAction(void); static void OpponentHandleUnknownYesNoBox(void); static void OpponentHandleChooseMove(void); @@ -109,7 +109,7 @@ static void OpponentHandleCmd39(void); static void OpponentHandleCmd40(void); static void OpponentHandleHitAnimation(void); static void OpponentHandleCmd42(void); -static void OpponentHandleEffectivenessSound(void); +static void OpponentHandlePlaySE(void); static void OpponentHandlePlayFanfareOrBGM(void); static void OpponentHandleFaintingCry(void); static void OpponentHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandlePause, OpponentHandleMoveAnimation, OpponentHandlePrintString, - OpponentHandlePrintStringPlayerOnly, + OpponentHandlePrintSelectionString, OpponentHandleChooseAction, OpponentHandleUnknownYesNoBox, OpponentHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandleCmd40, OpponentHandleHitAnimation, OpponentHandleCmd42, - OpponentHandleEffectivenessSound, + OpponentHandlePlaySE, OpponentHandlePlayFanfareOrBGM, OpponentHandleFaintingCry, OpponentHandleIntroSlide, @@ -1537,7 +1537,7 @@ static void OpponentHandlePrintString(void) sub_81A57E4(gActiveBank, *stringId); } -static void OpponentHandlePrintStringPlayerOnly(void) +static void OpponentHandlePrintSelectionString(void) { OpponentBufferExecCompleted(); } @@ -1826,7 +1826,7 @@ static void OpponentHandleCmd42(void) OpponentBufferExecCompleted(); } -static void OpponentHandleEffectivenessSound(void) +static void OpponentHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 16c62c53b..7ea2abccf 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -102,7 +102,7 @@ static void PlayerHandleBallThrowAnim(void); static void PlayerHandlePause(void); static void PlayerHandleMoveAnimation(void); static void PlayerHandlePrintString(void); -static void PlayerHandlePrintStringPlayerOnly(void); +static void PlayerHandlePrintSelectionString(void); static void PlayerHandleChooseAction(void); static void PlayerHandleUnknownYesNoBox(void); static void PlayerHandleChooseMove(void); @@ -128,7 +128,7 @@ static void PlayerHandleCmd39(void); static void PlayerHandleCmd40(void); static void PlayerHandleHitAnimation(void); static void PlayerHandleCmd42(void); -static void PlayerHandleEffectivenessSound(void); +static void PlayerHandlePlaySE(void); static void PlayerHandlePlayFanfareOrBGM(void); static void PlayerHandleFaintingCry(void); static void PlayerHandleIntroSlide(void); @@ -189,7 +189,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandlePause, PlayerHandleMoveAnimation, PlayerHandlePrintString, - PlayerHandlePrintStringPlayerOnly, + PlayerHandlePrintSelectionString, PlayerHandleChooseAction, PlayerHandleUnknownYesNoBox, PlayerHandleChooseMove, @@ -215,7 +215,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandleCmd40, PlayerHandleHitAnimation, PlayerHandleCmd42, - PlayerHandleEffectivenessSound, + PlayerHandlePlaySE, PlayerHandlePlayFanfareOrBGM, PlayerHandleFaintingCry, PlayerHandleIntroSlide, @@ -2576,7 +2576,7 @@ static void PlayerHandlePrintString(void) sub_81A57E4(gActiveBank, *stringId); } -static void PlayerHandlePrintStringPlayerOnly(void) +static void PlayerHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) PlayerHandlePrintString(); @@ -2913,7 +2913,7 @@ static void PlayerHandleCmd42(void) PlayerBufferExecCompleted(); } -static void PlayerHandleEffectivenessSound(void) +static void PlayerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 0cd34442a..4cca5c002 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -78,7 +78,7 @@ static void PlayerPartnerHandleBallThrowAnim(void); static void PlayerPartnerHandlePause(void); static void PlayerPartnerHandleMoveAnimation(void); static void PlayerPartnerHandlePrintString(void); -static void PlayerPartnerHandlePrintStringPlayerOnly(void); +static void PlayerPartnerHandlePrintSelectionString(void); static void PlayerPartnerHandleChooseAction(void); static void PlayerPartnerHandleUnknownYesNoBox(void); static void PlayerPartnerHandleChooseMove(void); @@ -104,7 +104,7 @@ static void PlayerPartnerHandleCmd39(void); static void PlayerPartnerHandleCmd40(void); static void PlayerPartnerHandleHitAnimation(void); static void PlayerPartnerHandleCmd42(void); -static void PlayerPartnerHandleEffectivenessSound(void); +static void PlayerPartnerHandlePlaySE(void); static void PlayerPartnerHandlePlayFanfareOrBGM(void); static void PlayerPartnerHandleFaintingCry(void); static void PlayerPartnerHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandlePause, PlayerPartnerHandleMoveAnimation, PlayerPartnerHandlePrintString, - PlayerPartnerHandlePrintStringPlayerOnly, + PlayerPartnerHandlePrintSelectionString, PlayerPartnerHandleChooseAction, PlayerPartnerHandleUnknownYesNoBox, PlayerPartnerHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandleCmd40, PlayerPartnerHandleHitAnimation, PlayerPartnerHandleCmd42, - PlayerPartnerHandleEffectivenessSound, + PlayerPartnerHandlePlaySE, PlayerPartnerHandlePlayFanfareOrBGM, PlayerPartnerHandleFaintingCry, PlayerPartnerHandleIntroSlide, @@ -1519,7 +1519,7 @@ static void PlayerPartnerHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2; } -static void PlayerPartnerHandlePrintStringPlayerOnly(void) +static void PlayerPartnerHandlePrintSelectionString(void) { PlayerPartnerBufferExecCompleted(); } @@ -1756,7 +1756,7 @@ static void PlayerPartnerHandleCmd42(void) PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleEffectivenessSound(void) +static void PlayerPartnerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index b55d644ac..027230be4 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -81,7 +81,7 @@ static void RecordedOpponentHandleBallThrowAnim(void); static void RecordedOpponentHandlePause(void); static void RecordedOpponentHandleMoveAnimation(void); static void RecordedOpponentHandlePrintString(void); -static void RecordedOpponentHandlePrintStringPlayerOnly(void); +static void RecordedOpponentHandlePrintSelectionString(void); static void RecordedOpponentHandleChooseAction(void); static void RecordedOpponentHandleUnknownYesNoBox(void); static void RecordedOpponentHandleChooseMove(void); @@ -107,7 +107,7 @@ static void RecordedOpponentHandleCmd39(void); static void RecordedOpponentHandleCmd40(void); static void RecordedOpponentHandleHitAnimation(void); static void RecordedOpponentHandleCmd42(void); -static void RecordedOpponentHandleEffectivenessSound(void); +static void RecordedOpponentHandlePlaySE(void); static void RecordedOpponentHandlePlayFanfareOrBGM(void); static void RecordedOpponentHandleFaintingCry(void); static void RecordedOpponentHandleIntroSlide(void); @@ -153,7 +153,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandlePause, RecordedOpponentHandleMoveAnimation, RecordedOpponentHandlePrintString, - RecordedOpponentHandlePrintStringPlayerOnly, + RecordedOpponentHandlePrintSelectionString, RecordedOpponentHandleChooseAction, RecordedOpponentHandleUnknownYesNoBox, RecordedOpponentHandleChooseMove, @@ -179,7 +179,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandleCmd40, RecordedOpponentHandleHitAnimation, RecordedOpponentHandleCmd42, - RecordedOpponentHandleEffectivenessSound, + RecordedOpponentHandlePlaySE, RecordedOpponentHandlePlayFanfareOrBGM, RecordedOpponentHandleFaintingCry, RecordedOpponentHandleIntroSlide, @@ -1435,7 +1435,7 @@ static void RecordedOpponentHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void RecordedOpponentHandlePrintStringPlayerOnly(void) +static void RecordedOpponentHandlePrintSelectionString(void) { RecordedOpponentBufferExecCompleted(); } @@ -1625,7 +1625,7 @@ static void RecordedOpponentHandleCmd42(void) RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleEffectivenessSound(void) +static void RecordedOpponentHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 78e7497a5..f5f3ab3c0 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -81,7 +81,7 @@ static void RecordedPlayerHandleBallThrowAnim(void); static void RecordedPlayerHandlePause(void); static void RecordedPlayerHandleMoveAnimation(void); static void RecordedPlayerHandlePrintString(void); -static void RecordedPlayerHandlePrintStringPlayerOnly(void); +static void RecordedPlayerHandlePrintSelectionString(void); static void RecordedPlayerHandleChooseAction(void); static void RecordedPlayerHandleUnknownYesNoBox(void); static void RecordedPlayerHandleChooseMove(void); @@ -107,7 +107,7 @@ static void RecordedPlayerHandleCmd39(void); static void RecordedPlayerHandleCmd40(void); static void RecordedPlayerHandleHitAnimation(void); static void RecordedPlayerHandleCmd42(void); -static void RecordedPlayerHandleEffectivenessSound(void); +static void RecordedPlayerHandlePlaySE(void); static void RecordedPlayerHandlePlayFanfareOrBGM(void); static void RecordedPlayerHandleFaintingCry(void); static void RecordedPlayerHandleIntroSlide(void); @@ -152,7 +152,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandlePause, RecordedPlayerHandleMoveAnimation, RecordedPlayerHandlePrintString, - RecordedPlayerHandlePrintStringPlayerOnly, + RecordedPlayerHandlePrintSelectionString, RecordedPlayerHandleChooseAction, RecordedPlayerHandleUnknownYesNoBox, RecordedPlayerHandleChooseMove, @@ -178,7 +178,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandleCmd40, RecordedPlayerHandleHitAnimation, RecordedPlayerHandleCmd42, - RecordedPlayerHandleEffectivenessSound, + RecordedPlayerHandlePlaySE, RecordedPlayerHandlePlayFanfareOrBGM, RecordedPlayerHandleFaintingCry, RecordedPlayerHandleIntroSlide, @@ -1437,7 +1437,7 @@ static void RecordedPlayerHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void RecordedPlayerHandlePrintStringPlayerOnly(void) +static void RecordedPlayerHandlePrintSelectionString(void) { RecordedPlayerBufferExecCompleted(); } @@ -1644,7 +1644,7 @@ static void RecordedPlayerHandleCmd42(void) RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleEffectivenessSound(void) +static void RecordedPlayerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index a4f35bed1..635f5fef1 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -66,7 +66,7 @@ static void SafariHandleBallThrowAnim(void); static void SafariHandlePause(void); static void SafariHandleMoveAnimation(void); static void SafariHandlePrintString(void); -static void SafariHandlePrintStringPlayerOnly(void); +static void SafariHandlePrintSelectionString(void); static void SafariHandleChooseAction(void); static void SafariHandleUnknownYesNoBox(void); static void SafariHandleChooseMove(void); @@ -92,7 +92,7 @@ static void SafariHandleCmd39(void); static void SafariHandleCmd40(void); static void SafariHandleHitAnimation(void); static void SafariHandleCmd42(void); -static void SafariHandleEffectivenessSound(void); +static void SafariHandlePlaySE(void); static void SafariHandlePlayFanfareOrBGM(void); static void SafariHandleFaintingCry(void); static void SafariHandleIntroSlide(void); @@ -130,7 +130,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandlePause, SafariHandleMoveAnimation, SafariHandlePrintString, - SafariHandlePrintStringPlayerOnly, + SafariHandlePrintSelectionString, SafariHandleChooseAction, SafariHandleUnknownYesNoBox, SafariHandleChooseMove, @@ -156,7 +156,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandleCmd40, SafariHandleHitAnimation, SafariHandleCmd42, - SafariHandleEffectivenessSound, + SafariHandlePlaySE, SafariHandlePlayFanfareOrBGM, SafariHandleFaintingCry, SafariHandleIntroSlide, @@ -449,7 +449,7 @@ static void SafariHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void SafariHandlePrintStringPlayerOnly(void) +static void SafariHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) SafariHandlePrintString(); @@ -607,7 +607,7 @@ static void SafariHandleCmd42(void) SafariBufferExecCompleted(); } -static void SafariHandleEffectivenessSound(void) +static void SafariHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 4dac1d264..442e32cca 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -86,7 +86,7 @@ static void WallyHandleBallThrowAnim(void); static void WallyHandlePause(void); static void WallyHandleMoveAnimation(void); static void WallyHandlePrintString(void); -static void WallyHandlePrintStringPlayerOnly(void); +static void WallyHandlePrintSelectionString(void); static void WallyHandleChooseAction(void); static void WallyHandleUnknownYesNoBox(void); static void WallyHandleChooseMove(void); @@ -112,7 +112,7 @@ static void WallyHandleCmd39(void); static void WallyHandleCmd40(void); static void WallyHandleHitAnimation(void); static void WallyHandleCmd42(void); -static void WallyHandleEffectivenessSound(void); +static void WallyHandlePlaySE(void); static void WallyHandlePlayFanfareOrBGM(void); static void WallyHandleFaintingCry(void); static void WallyHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandlePause, WallyHandleMoveAnimation, WallyHandlePrintString, - WallyHandlePrintStringPlayerOnly, + WallyHandlePrintSelectionString, WallyHandleChooseAction, WallyHandleUnknownYesNoBox, WallyHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandleCmd40, WallyHandleHitAnimation, WallyHandleCmd42, - WallyHandleEffectivenessSound, + WallyHandlePlaySE, WallyHandlePlayFanfareOrBGM, WallyHandleFaintingCry, WallyHandleIntroSlide, @@ -1211,7 +1211,7 @@ static void WallyHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void WallyHandlePrintStringPlayerOnly(void) +static void WallyHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) WallyHandlePrintString(); @@ -1419,7 +1419,7 @@ static void WallyHandleCmd42(void) WallyBufferExecCompleted(); } -static void WallyHandleEffectivenessSound(void) +static void WallyHandlePlaySE(void) { PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); WallyBufferExecCompleted(); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 858540a9f..ed48ec5d9 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1140,10 +1140,10 @@ void EmitPrintString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID) +void EmitPrintSelectionString(u8 bufferId, u16 stringID) { s32 i; - struct StringInfoBattle* stringInfo; + struct StringInfoBattle *stringInfo; gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY; gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; @@ -1427,7 +1427,7 @@ void EmitCmd42(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitEffectivenessSound(u8 bufferId, u16 songId) +void EmitPlaySE(u8 bufferId, u16 songId) { gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; gBattleBuffersTransferData[1] = songId; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6409ff56e..e0a61a612 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3,6 +3,7 @@ #include "battle_move_effects.h" #include "battle_message.h" #include "battle_ai_script_commands.h" +#include "battle_scripts.h" #include "moves.h" #include "abilities.h" #include "item.h" @@ -146,88 +147,6 @@ extern u8 sub_813B21C(void); extern u16 get_unknown_box_id(void); extern void sub_80356D0(void); -// BattleScripts -extern const u8 BattleScript_MoveEnd[]; -extern const u8 BattleScript_NoPPForMove[]; -extern const u8 BattleScript_MagicCoatBounce[]; -extern const u8 BattleScript_TookAttack[]; -extern const u8 BattleScript_SnatchedMove[]; -extern const u8 BattleScript_Pausex20[]; -extern const u8 BattleScript_SubstituteFade[]; -extern const u8 BattleScript_HangedOnMsg[]; -extern const u8 BattleScript_OneHitKOMsg[]; -extern const u8 BattleScript_EnduredMsg[]; -extern const u8 BattleScript_PSNPrevention[]; -extern const u8 BattleScript_BRNPrevention[]; -extern const u8 BattleScript_PRLZPrevention[]; -extern const u8 BattleScript_FlinchPrevention[]; -extern const u8 BattleScript_StatUp[]; -extern const u8 BattleScript_StatDown[]; -extern const u8 BattleScript_NoItemSteal[]; -extern const u8 BattleScript_ItemSteal[]; -extern const u8 BattleScript_RapidSpinAway[]; -extern const u8 BattleScript_TargetPRLZHeal[]; -extern const u8 BattleScript_KnockedOff[]; -extern const u8 BattleScript_StickyHoldActivates[]; -extern const u8 BattleScript_AllStatsUp[]; -extern const u8 BattleScript_AtkDefDown[]; -extern const u8 BattleScript_SAtkDown2[]; -extern const u8 BattleScript_LevelUp[]; -extern const u8 BattleScript_WrapFree[]; -extern const u8 BattleScript_LeechSeedFree[]; -extern const u8 BattleScript_SpikesFree[]; -extern const u8 BattleScript_ButItFailed[]; -extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_MistProtected[]; -extern const u8 BattleScript_AbilityNoStatLoss[]; -extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; -extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_WallyBallThrow[]; -extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_FaintAttacker[]; -extern const u8 BattleScript_FaintTarget[]; -extern const u8 BattleScript_DestinyBondTakesLife[]; -extern const u8 BattleScript_GrudgeTakesPp[]; -extern const u8 BattleScript_RageIsBuilding[]; -extern const u8 BattleScript_DefrostedViaFireMove[]; -extern const u8 gUnknown_082DB87D[]; -extern const u8 gUnknown_082DAE90[]; -extern const u8 gUnknown_082DAE59[]; -extern const u8 gUnknown_082DAEC7[]; -extern const u8 BattleScript_MoveEffectSleep[]; -extern const u8 BattleScript_MoveEffectPoison[]; -extern const u8 BattleScript_MoveEffectBurn[]; -extern const u8 BattleScript_MoveEffectFreeze[]; -extern const u8 BattleScript_MoveEffectParalysis[]; -extern const u8 BattleScript_MoveEffectToxic[]; -extern const u8 BattleScript_MoveEffectConfusion[]; -extern const u8 BattleScript_MoveEffectUproar[]; -extern const u8 BattleScript_MoveEffectPayDay[]; -extern const u8 BattleScript_MoveEffectWrap[]; -extern const u8 BattleScript_MoveEffectRecoil33[]; -extern const u8 BattleScript_DampStopsExplosion[]; -extern const u8 BattleScript_MistProtected[]; -extern const u8 BattleScript_AbilityNoStatLoss[]; -extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; -extern const u8 BattleScript_ButItFailed[]; -extern const u8 gUnknown_082DADD8[]; -extern const u8 BattleScript_PrintPayDayMoneyString[]; -extern const u8 BattleScript_SturdyPreventsOHKO[]; -extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_PauseEffectivenessSoundResultMsgEndMove[]; -extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_WallyBallThrow[]; -extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_PresentDamageTarget[]; -extern const u8 BattleScript_AlreadyAtFullHp[]; -extern const u8 BattleScript_PresentHealTarget[]; -extern const u8 BattleScript_WrapFree[]; -extern const u8 BattleScript_LeechSeedFree[]; -extern const u8 BattleScript_SpikesFree[]; - // strings extern const u8 gText_BattleYesNoChoice[]; @@ -247,7 +166,7 @@ extern const u8 gText_BattleYesNoChoice[]; // this file's functions static bool8 IsTwoTurnsMove(u16 move); -static void DestinyBondFlagUpdate(void); +static void TrySetDestinyBondToHappen(void); static u8 AttacksThisTurn(u8 bank, u16 move); // Note: returns 1 if it's a charging turn, otherwise 2. static void CheckWonderGuardAndLevitate(void); static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8, const u8* BS_ptr); @@ -267,29 +186,29 @@ static void atk01_accuracycheck(void); static void atk02_attackstring(void); static void atk03_ppreduce(void); static void atk04_critcalc(void); -static void atk05_damagecalc1(void); +static void atk05_damagecalc(void); static void atk06_typecalc(void); -static void atk07_dmg_adjustment(void); -static void atk08_dmg_adjustment2(void); +static void atk07_adjustnormaldamage(void); +static void atk08_adjustnormaldamage2(void); static void atk09_attackanimation(void); static void atk0A_waitanimation(void); static void atk0B_healthbarupdate(void); static void atk0C_datahpupdate(void); static void atk0D_critmessage(void); -static void atk0E_effectiveness_sound(void); +static void atk0E_effectivenesssound(void); static void atk0F_resultmessage(void); static void atk10_printstring(void); -static void atk11_printstring_playeronly(void); +static void atk11_printselectionstring(void); static void atk12_waitmessage(void); static void atk13_printfromtable(void); -static void atk14_printfromtable_playeronly(void); +static void atk14_printselectionstringfromtable(void); static void atk15_seteffectwithchance(void); static void atk16_seteffectprimary(void); static void atk17_seteffectsecondary(void); -static void atk18_status_effect_clear(void); -static void atk19_faint_pokemon(void); -static void atk1A_faint_animation(void); -static void atk1B_faint_effects_clear(void); +static void atk18_clearstatusfromeffect(void); +static void atk19_tryfaintmon(void); +static void atk1A_dofaintanimation(void); +static void atk1B_cleareffectsonfaint(void); static void atk1C_jumpifstatus(void); static void atk1D_jumpifstatus2(void); static void atk1E_jumpifability(void); @@ -299,9 +218,9 @@ static void atk21_jumpifstatus3(void); static void atk22_jumpiftype(void); static void atk23_getexp(void); static void atk24(void); -static void atk25_move_values_cleanup(void); -static void atk26_set_multihit(void); -static void atk27_decrement_multihit(void); +static void atk25_movevaluescleanup(void); +static void atk26_setmultihit(void); +static void atk27_decrementmultihit(void); static void atk28_goto(void); static void atk29_jumpifbyte(void); static void atk2A_jumpifhalfword(void); @@ -312,7 +231,7 @@ static void atk2E_setbyte(void); static void atk2F_addbyte(void); static void atk30_subbyte(void); static void atk31_copyarray(void); -static void atk32_copyarray_withindex(void); +static void atk32_copyarraywithindex(void); static void atk33_orbyte(void); static void atk34_orhalfword(void); static void atk35_orword(void); @@ -326,75 +245,75 @@ static void atk3C_return(void); static void atk3D_end(void); static void atk3E_end2(void); static void atk3F_end3(void); -static void atk40_jump_if_move_affected_by_protect(void); +static void atk40_jumpifaffectedbyprotect(void); static void atk41_call(void); static void atk42_jumpiftype2(void); static void atk43_jumpifabilitypresent(void); -static void atk44_end_selection_script(void); +static void atk44_endselectionscript(void); static void atk45_playanimation(void); static void atk46_playanimation2(void); static void atk47_setgraphicalstatchangevalues(void); static void atk48_playstatchangeanimation(void); static void atk49_moveend(void); static void atk4A_typecalc2(void); -static void atk4B_return_atk_to_ball(void); -static void atk4C_get_switched_mon_data(void); -static void atk4D_switch_data_update(void); -static void atk4E_switchin_anim(void); -static void atk4F_jump_if_cannot_switch(void); +static void atk4B_returnatktoball(void); +static void atk4C_getswitchedmondata(void); +static void atk4D_switchindataupdate(void); +static void atk4E_switchinanim(void); +static void atk4F_jumpifcantswitch(void); static void atk50_openpartyscreen(void); -static void atk51_switch_handle_order(void); -static void atk52_switch_in_effects(void); -static void atk53_trainer_slide(void); -static void atk54_effectiveness_sound(void); -static void atk55_play_fanfare(void); -static void atk56_fainting_cry(void); +static void atk51_switchhandleorder(void); +static void atk52_switchineffects(void); +static void atk53_trainerslidein(void); +static void atk54_playse(void); +static void atk55_fanfare(void); +static void atk56_playfaintcry(void); static void atk57(void); -static void atk58_return_to_ball(void); -static void atk59_learnmove_inbattle(void); +static void atk58_returntoball(void); +static void atk59_handlelearnnewmove(void); static void atk5A_yesnoboxlearnmove(void); static void atk5B_yesnoboxstoplearningmove(void); static void atk5C_hitanimation(void); static void atk5D_getmoneyreward(void); -static void atk5E_8025A70(void); -static void atk5F_8025B24(void); -static void atk60_increment_gamestat(void); -static void atk61_draw_party_status_summary(void); -static void atk62_08025C6C(void); +static void atk5E(void); +static void atk5F(void); +static void atk60_incrementgamestat(void); +static void atk61_drawpartystatussummary(void); +static void atk62(void); static void atk63_jumptorandomattack(void); static void atk64_statusanimation(void); static void atk65_status2animation(void); static void atk66_chosenstatusanimation(void); static void atk67_yesnobox(void); -static void atk68_cancel_everyones_actions(void); -static void atk69_dmg_adjustment3(void); +static void atk68_cancelallactions(void); +static void atk69_adjustsetdamage(void); static void atk6A_removeitem(void); static void atk6B_atknameinbuff1(void); -static void atk6C_draw_lvlupbox(void); -static void atk6D_reset_sentpokes_value(void); -static void atk6E_set_atk_to_player0(void); -static void atk6F_set_visible(void); -static void atk70_record_last_used_ability(void); -static void atk71_buffer_move_to_learn(void); -static void atk72_jump_if_run_attempt_success(void); -static void atk73_hp_thresholds(void); -static void atk74_hp_thresholds2(void); -static void atk75_item_effect_on_opponent(void); +static void atk6C_drawlvlupbox(void); +static void atk6D_resetsentmonsvalue(void); +static void atk6E_setatktoplayer0(void); +static void atk6F_makevisible(void); +static void atk70_recordlastability(void); +static void atk71_buffermovetolearn(void); +static void atk72_jumpifplayerran(void); +static void atk73_hpthresholds(void); +static void atk74_hpthresholds2(void); +static void atk75_useitemonopponent(void); static void atk76_various(void); -static void atk77_set_protect_like(void); +static void atk77_setprotectlike(void); static void atk78_faintifabilitynotdamp(void); static void atk79_setatkhptozero(void); -static void atk7A_jumpwhiletargetvalid(void); -static void atk7B_healhalfHP_if_possible(void); +static void atk7A_jumpifnexttargetvalid(void); +static void atk7B_tryhealhalfhealth(void); static void atk7C_trymirrormove(void); -static void atk7D_set_rain(void); +static void atk7D_setrain(void); static void atk7E_setreflect(void); static void atk7F_setseeded(void); static void atk80_manipulatedamage(void); -static void atk81_setrest(void); +static void atk81_trysetrest(void); static void atk82_jumpifnotfirstturn(void); static void atk83_nop(void); -static void atk84_jump_if_cant_sleep(void); +static void atk84_jumpifcantmakeasleep(void); static void atk85_stockpile(void); static void atk86_stockpiletobasedamage(void); static void atk87_stockpiletohpheal(void); @@ -403,22 +322,22 @@ static void atk89_statbuffchange(void); static void atk8A_normalisebuffs(void); static void atk8B_setbide(void); static void atk8C_confuseifrepeatingattackends(void); -static void atk8D_setmultihit_counter(void); -static void atk8E_init_multihit_string(void); +static void atk8D_setmultihitcounter(void); +static void atk8E_initmultihitstring(void); static void atk8F_forcerandomswitch(void); -static void atk90_conversion_type_change(void); +static void atk90_tryconversiontypechange(void); static void atk91_givepaydaymoney(void); static void atk92_setlightscreen(void); -static void atk93_ko_move(void); +static void atk93_tryKO(void); static void atk94_damagetohalftargethp(void); static void atk95_setsandstorm(void); static void atk96_weatherdamage(void); -static void atk97_try_infatuation(void); -static void atk98_status_icon_update(void); +static void atk97_tryinfatuating(void); +static void atk98_updatestatusicon(void); static void atk99_setmist(void); -static void atk9A_set_focusenergy(void); +static void atk9A_setfocusenergy(void); static void atk9B_transformdataexecution(void); -static void atk9C_set_substitute(void); +static void atk9C_setsubstitute(void); static void atk9D_mimicattackcopy(void); static void atk9E_metronome(void); static void atk9F_dmgtolevel(void); @@ -426,39 +345,39 @@ static void atkA0_psywavedamageeffect(void); static void atkA1_counterdamagecalculator(void); static void atkA2_mirrorcoatdamagecalculator(void); static void atkA3_disablelastusedattack(void); -static void atkA4_setencore(void); +static void atkA4_trysetencore(void); static void atkA5_painsplitdmgcalc(void); static void atkA6_settypetorandomresistance(void); static void atkA7_setalwayshitflag(void); static void atkA8_copymovepermanently(void); static void atkA9_sleeptalk_choose_move(void); -static void atkAA_set_destinybond(void); -static void atkAB_DestinyBondFlagUpdate(void); +static void atkAA_setdestinybond(void); +static void atkAB_trysetdestinybondtohappen(void); static void atkAC_remaininghptopower(void); -static void atkAD_spite_ppreduce(void); -static void atkAE_heal_party_status(void); +static void atkAD_tryspiteppreduce(void); +static void atkAE_healpartystatus(void); static void atkAF_cursetarget(void); -static void atkB0_set_spikes(void); -static void atkB1_set_foresight(void); -static void atkB2_setperishsong(void); +static void atkB0_trysetspikes(void); +static void atkB1_setforesight(void); +static void atkB2_trysetperishsong(void); static void atkB3_rolloutdamagecalculation(void); static void atkB4_jumpifconfusedandstatmaxed(void); static void atkB5_furycuttercalc(void); static void atkB6_happinesstodamagecalculation(void); static void atkB7_presentdamagecalculation(void); -static void atkB8_set_safeguard(void); +static void atkB8_setsafeguard(void); static void atkB9_magnitudedamagecalculation(void); static void atkBA_jumpifnopursuitswitchdmg(void); static void atkBB_setsunny(void); static void atkBC_maxattackhalvehp(void); static void atkBD_copyfoestats(void); static void atkBE_rapidspinfree(void); -static void atkBF_set_defense_curl(void); +static void atkBF_setdefensecurlbit(void); static void atkC0_recoverbasedonsunlight(void); -static void atkC1_hidden_power_calc(void); -static void atkC2_selectnexttarget(void); -static void atkC3_setfutureattack(void); -static void atkC4_beat_up(void); +static void atkC1_hiddenpowercalc(void); +static void atkC2_selectfirstvalidtarget(void); +static void atkC3_trysetfutureattack(void); +static void atkC4_trydobeatup(void); static void atkC5_setsemiinvulnerablebit(void); static void atkC6_clearsemiinvulnerablebit(void); static void atkC7_setminimize(void); @@ -471,46 +390,46 @@ static void atkCD_cureifburnedparalysedorpoisoned(void); static void atkCE_settorment(void); static void atkCF_jumpifnodamage(void); static void atkD0_settaunt(void); -static void atkD1_set_helpinghand(void); -static void atkD2_swap_items(void); -static void atkD3_copy_ability(void); -static void atkD4_wish_effect(void); -static void atkD5_setroots(void); +static void atkD1_trysethelpinghand(void); +static void atkD2_tryswapitems(void); +static void atkD3_trycopyability(void); +static void atkD4_trywish(void); +static void atkD5_trysetroots(void); static void atkD6_doubledamagedealtifdamaged(void); static void atkD7_setyawn(void); static void atkD8_setdamagetohealthdifference(void); static void atkD9_scaledamagebyhealthratio(void); -static void atkDA_abilityswap(void); -static void atkDB_imprisoneffect(void); -static void atkDC_setgrudge(void); +static void atkDA_tryswapabilities(void); +static void atkDB_tryimprision(void); +static void atkDC_trysetgrudge(void); static void atkDD_weightdamagecalculation(void); static void atkDE_asistattackselect(void); -static void atkDF_setmagiccoat(void); -static void atkE0_setstealstatchange(void); -static void atkE1_intimidate_string_loader(void); -static void atkE2_switchout_abilities(void); +static void atkDF_trysetmagiccoat(void); +static void atkE0_trysetsnatch(void); +static void atkE1_trygetintimidatetarget(void); +static void atkE2_switchoutabilities(void); static void atkE3_jumpifhasnohp(void); static void atkE4_getsecretpowereffect(void); static void atkE5_pickup(void); -static void atkE6_castform_change_animation(void); -static void atkE7_castform_data_change(void); +static void atkE6_docastformchangeanimation(void); +static void atkE7_trycastformdatachange(void); static void atkE8_settypebasedhalvers(void); static void atkE9_setweatherballtype(void); -static void atkEA_recycleitem(void); +static void atkEA_tryrecycleitem(void); static void atkEB_settypetoterrain(void); -static void atkEC_pursuit_sth(void); -static void atkED_802B4B4(void); +static void atkEC_pursuitrelated(void); +static void atkEF_snatchsetbanks(void); static void atkEE_removelightscreenreflect(void); static void atkEF_pokeball_catch_calculation(void); -static void atkF0_give_caught_mon(void); -static void atkF1_set_caught_mon_dex_flags(void); -static void atkF2_display_dex_info(void); -static void atkF3_nickname_caught_poke(void); +static void atkF0_givecaughtmon(void); +static void atkF1_trysetcaughtmondexflags(void); +static void atkF2_displaydexinfo(void); +static void atkF3_trygivecaughtmonnick(void); static void atkF4_subattackerhpbydmg(void); static void atkF5_removeattackerstatus1(void); -static void atkF6_action_finished(void); -static void atkF7_turn_finished(void); -static void atkF8_trainer_slide_back(void); +static void atkF6_finishaction(void); +static void atkF7_finishturn(void); +static void atkF8_trainerslideout(void); void (* const gBattleScriptingCommandsTable[])(void) = { @@ -519,29 +438,29 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk02_attackstring, atk03_ppreduce, atk04_critcalc, - atk05_damagecalc1, + atk05_damagecalc, atk06_typecalc, - atk07_dmg_adjustment, - atk08_dmg_adjustment2, + atk07_adjustnormaldamage, + atk08_adjustnormaldamage2, atk09_attackanimation, atk0A_waitanimation, atk0B_healthbarupdate, atk0C_datahpupdate, atk0D_critmessage, - atk0E_effectiveness_sound, + atk0E_effectivenesssound, atk0F_resultmessage, atk10_printstring, - atk11_printstring_playeronly, + atk11_printselectionstring, atk12_waitmessage, atk13_printfromtable, - atk14_printfromtable_playeronly, + atk14_printselectionstringfromtable, atk15_seteffectwithchance, atk16_seteffectprimary, atk17_seteffectsecondary, - atk18_status_effect_clear, - atk19_faint_pokemon, - atk1A_faint_animation, - atk1B_faint_effects_clear, + atk18_clearstatusfromeffect, + atk19_tryfaintmon, + atk1A_dofaintanimation, + atk1B_cleareffectsonfaint, atk1C_jumpifstatus, atk1D_jumpifstatus2, atk1E_jumpifability, @@ -551,9 +470,9 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk22_jumpiftype, atk23_getexp, atk24, - atk25_move_values_cleanup, - atk26_set_multihit, - atk27_decrement_multihit, + atk25_movevaluescleanup, + atk26_setmultihit, + atk27_decrementmultihit, atk28_goto, atk29_jumpifbyte, atk2A_jumpifhalfword, @@ -564,7 +483,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk2F_addbyte, atk30_subbyte, atk31_copyarray, - atk32_copyarray_withindex, + atk32_copyarraywithindex, atk33_orbyte, atk34_orhalfword, atk35_orword, @@ -578,75 +497,75 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk3D_end, atk3E_end2, atk3F_end3, - atk40_jump_if_move_affected_by_protect, + atk40_jumpifaffectedbyprotect, atk41_call, atk42_jumpiftype2, atk43_jumpifabilitypresent, - atk44_end_selection_script, + atk44_endselectionscript, atk45_playanimation, atk46_playanimation2, atk47_setgraphicalstatchangevalues, atk48_playstatchangeanimation, atk49_moveend, atk4A_typecalc2, - atk4B_return_atk_to_ball, - atk4C_get_switched_mon_data, - atk4D_switch_data_update, - atk4E_switchin_anim, - atk4F_jump_if_cannot_switch, + atk4B_returnatktoball, + atk4C_getswitchedmondata, + atk4D_switchindataupdate, + atk4E_switchinanim, + atk4F_jumpifcantswitch, atk50_openpartyscreen, - atk51_switch_handle_order, - atk52_switch_in_effects, - atk53_trainer_slide, - atk54_effectiveness_sound, - atk55_play_fanfare, - atk56_fainting_cry, + atk51_switchhandleorder, + atk52_switchineffects, + atk53_trainerslidein, + atk54_playse, + atk55_fanfare, + atk56_playfaintcry, atk57, - atk58_return_to_ball, - atk59_learnmove_inbattle, + atk58_returntoball, + atk59_handlelearnnewmove, atk5A_yesnoboxlearnmove, atk5B_yesnoboxstoplearningmove, atk5C_hitanimation, atk5D_getmoneyreward, - atk5E_8025A70, - atk5F_8025B24, - atk60_increment_gamestat, - atk61_draw_party_status_summary, - atk62_08025C6C, + atk5E, + atk5F, + atk60_incrementgamestat, + atk61_drawpartystatussummary, + atk62, atk63_jumptorandomattack, atk64_statusanimation, atk65_status2animation, atk66_chosenstatusanimation, atk67_yesnobox, - atk68_cancel_everyones_actions, - atk69_dmg_adjustment3, + atk68_cancelallactions, + atk69_adjustsetdamage, atk6A_removeitem, atk6B_atknameinbuff1, - atk6C_draw_lvlupbox, - atk6D_reset_sentpokes_value, - atk6E_set_atk_to_player0, - atk6F_set_visible, - atk70_record_last_used_ability, - atk71_buffer_move_to_learn, - atk72_jump_if_run_attempt_success, - atk73_hp_thresholds, - atk74_hp_thresholds2, - atk75_item_effect_on_opponent, + atk6C_drawlvlupbox, + atk6D_resetsentmonsvalue, + atk6E_setatktoplayer0, + atk6F_makevisible, + atk70_recordlastability, + atk71_buffermovetolearn, + atk72_jumpifplayerran, + atk73_hpthresholds, + atk74_hpthresholds2, + atk75_useitemonopponent, atk76_various, - atk77_set_protect_like, + atk77_setprotectlike, atk78_faintifabilitynotdamp, atk79_setatkhptozero, - atk7A_jumpwhiletargetvalid, - atk7B_healhalfHP_if_possible, + atk7A_jumpifnexttargetvalid, + atk7B_tryhealhalfhealth, atk7C_trymirrormove, - atk7D_set_rain, + atk7D_setrain, atk7E_setreflect, atk7F_setseeded, atk80_manipulatedamage, - atk81_setrest, + atk81_trysetrest, atk82_jumpifnotfirstturn, atk83_nop, - atk84_jump_if_cant_sleep, + atk84_jumpifcantmakeasleep, atk85_stockpile, atk86_stockpiletobasedamage, atk87_stockpiletohpheal, @@ -655,22 +574,22 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk8A_normalisebuffs, atk8B_setbide, atk8C_confuseifrepeatingattackends, - atk8D_setmultihit_counter, - atk8E_init_multihit_string, + atk8D_setmultihitcounter, + atk8E_initmultihitstring, atk8F_forcerandomswitch, - atk90_conversion_type_change, + atk90_tryconversiontypechange, atk91_givepaydaymoney, atk92_setlightscreen, - atk93_ko_move, + atk93_tryKO, atk94_damagetohalftargethp, atk95_setsandstorm, atk96_weatherdamage, - atk97_try_infatuation, - atk98_status_icon_update, + atk97_tryinfatuating, + atk98_updatestatusicon, atk99_setmist, - atk9A_set_focusenergy, + atk9A_setfocusenergy, atk9B_transformdataexecution, - atk9C_set_substitute, + atk9C_setsubstitute, atk9D_mimicattackcopy, atk9E_metronome, atk9F_dmgtolevel, @@ -678,39 +597,39 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkA1_counterdamagecalculator, atkA2_mirrorcoatdamagecalculator, atkA3_disablelastusedattack, - atkA4_setencore, + atkA4_trysetencore, atkA5_painsplitdmgcalc, atkA6_settypetorandomresistance, atkA7_setalwayshitflag, atkA8_copymovepermanently, atkA9_sleeptalk_choose_move, - atkAA_set_destinybond, - atkAB_DestinyBondFlagUpdate, + atkAA_setdestinybond, + atkAB_trysetdestinybondtohappen, atkAC_remaininghptopower, - atkAD_spite_ppreduce, - atkAE_heal_party_status, + atkAD_tryspiteppreduce, + atkAE_healpartystatus, atkAF_cursetarget, - atkB0_set_spikes, - atkB1_set_foresight, - atkB2_setperishsong, + atkB0_trysetspikes, + atkB1_setforesight, + atkB2_trysetperishsong, atkB3_rolloutdamagecalculation, atkB4_jumpifconfusedandstatmaxed, atkB5_furycuttercalc, atkB6_happinesstodamagecalculation, atkB7_presentdamagecalculation, - atkB8_set_safeguard, + atkB8_setsafeguard, atkB9_magnitudedamagecalculation, atkBA_jumpifnopursuitswitchdmg, atkBB_setsunny, atkBC_maxattackhalvehp, atkBD_copyfoestats, atkBE_rapidspinfree, - atkBF_set_defense_curl, + atkBF_setdefensecurlbit, atkC0_recoverbasedonsunlight, - atkC1_hidden_power_calc, - atkC2_selectnexttarget, - atkC3_setfutureattack, - atkC4_beat_up, + atkC1_hiddenpowercalc, + atkC2_selectfirstvalidtarget, + atkC3_trysetfutureattack, + atkC4_trydobeatup, atkC5_setsemiinvulnerablebit, atkC6_clearsemiinvulnerablebit, atkC7_setminimize, @@ -723,46 +642,46 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkCE_settorment, atkCF_jumpifnodamage, atkD0_settaunt, - atkD1_set_helpinghand, - atkD2_swap_items, - atkD3_copy_ability, - atkD4_wish_effect, - atkD5_setroots, + atkD1_trysethelpinghand, + atkD2_tryswapitems, + atkD3_trycopyability, + atkD4_trywish, + atkD5_trysetroots, atkD6_doubledamagedealtifdamaged, atkD7_setyawn, atkD8_setdamagetohealthdifference, atkD9_scaledamagebyhealthratio, - atkDA_abilityswap, - atkDB_imprisoneffect, - atkDC_setgrudge, + atkDA_tryswapabilities, + atkDB_tryimprision, + atkDC_trysetgrudge, atkDD_weightdamagecalculation, atkDE_asistattackselect, - atkDF_setmagiccoat, - atkE0_setstealstatchange, - atkE1_intimidate_string_loader, - atkE2_switchout_abilities, + atkDF_trysetmagiccoat, + atkE0_trysetsnatch, + atkE1_trygetintimidatetarget, + atkE2_switchoutabilities, atkE3_jumpifhasnohp, atkE4_getsecretpowereffect, atkE5_pickup, - atkE6_castform_change_animation, - atkE7_castform_data_change, + atkE6_docastformchangeanimation, + atkE7_trycastformdatachange, atkE8_settypebasedhalvers, atkE9_setweatherballtype, - atkEA_recycleitem, + atkEA_tryrecycleitem, atkEB_settypetoterrain, - atkEC_pursuit_sth, - atkED_802B4B4, + atkEC_pursuitrelated, + atkEF_snatchsetbanks, atkEE_removelightscreenreflect, atkEF_pokeball_catch_calculation, - atkF0_give_caught_mon, - atkF1_set_caught_mon_dex_flags, - atkF2_display_dex_info, - atkF3_nickname_caught_poke, + atkF0_givecaughtmon, + atkF1_trysetcaughtmondexflags, + atkF2_displaydexinfo, + atkF3_trygivecaughtmonnick, atkF4_subattackerhpbydmg, atkF5_removeattackerstatus1, - atkF6_action_finished, - atkF7_turn_finished, - atkF8_trainer_slide_back + atkF6_finishaction, + atkF7_finishturn, + atkF8_trainerslideout }; struct StatFractions @@ -1208,14 +1127,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) } else { - DestinyBondFlagUpdate(); + TrySetDestinyBondToHappen(); if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; } -static void atk40_jump_if_move_affected_by_protect(void) +static void atk40_jumpifaffectedbyprotect(void) { if (TARGET_PROTECT_AFFECTED) { @@ -1476,7 +1395,7 @@ static void atk04_critcalc(void) gBattlescriptCurrInstr++; } -static void atk05_damagecalc1(void) +static void atk05_damagecalc(void) { u16 sideStatus = gSideAffecting[GET_BANK_SIDE(gBankTarget)]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, @@ -1843,7 +1762,7 @@ static void Unused_ApplyRandomDmgMultiplier(void) ApplyRandomDmgMultiplier(); } -static void atk07_dmg_adjustment(void) +static void atk07_adjustnormaldamage(void) { u8 holdEffect, quality; @@ -1891,7 +1810,7 @@ static void atk07_dmg_adjustment(void) gBattlescriptCurrInstr++; } -static void atk08_dmg_adjustment2(void) // The same as 0x7 except it doesn't check for false swipe move effect. +static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't check for false swipe move effect. { u8 holdEffect, quality; @@ -2172,7 +2091,7 @@ static void atk0D_critmessage(void) } } -static void atk0E_effectiveness_sound(void) +static void atk0E_effectivenesssound(void) { if (gBattleExecBuffer) return; @@ -2183,11 +2102,11 @@ static void atk0E_effectiveness_sound(void) switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) { case MOVESTATUS_SUPEREFFECTIVE: - EmitEffectivenessSound(0, SE_KOUKA_H); + EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); break; case MOVESTATUS_NOTVERYEFFECTIVE: - EmitEffectivenessSound(0, SE_KOUKA_L); + EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); break; case MOVESTATUS_NOTAFFECTED: @@ -2200,17 +2119,17 @@ static void atk0E_effectiveness_sound(void) default: if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) { - EmitEffectivenessSound(0, SE_KOUKA_H); + EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); } else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) { - EmitEffectivenessSound(0, SE_KOUKA_L); + EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); } else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) { - EmitEffectivenessSound(0, SE_KOUKA_M); + EmitPlaySE(0, SE_KOUKA_M); MarkBufferBankForExecution(gActiveBank); } break; @@ -2319,11 +2238,11 @@ static void atk10_printstring(void) } } -static void atk11_printstring_playeronly(void) +static void atk11_printselectionstring(void) { gActiveBank = gBankAttacker; - EmitPrintStringPlayerOnly(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; @@ -2365,7 +2284,7 @@ static void atk13_printfromtable(void) } } -static void atk14_printfromtable_playeronly(void) +static void atk14_printselectionstringfromtable(void) { if (gBattleExecBuffer == 0) { @@ -2373,7 +2292,7 @@ static void atk14_printfromtable_playeronly(void) ptr += gBattleCommunication[MULTISTRING_CHOOSER]; gActiveBank = gBankAttacker; - EmitPrintStringPlayerOnly(0, *ptr); + EmitPrintSelectionString(0, *ptr); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 5; @@ -3134,7 +3053,7 @@ static void atk17_seteffectsecondary(void) SetMoveEffect(FALSE, 0); } -static void atk18_status_effect_clear(void) +static void atk18_clearstatusfromeffect(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -3148,7 +3067,7 @@ static void atk18_status_effect_clear(void) gBattleScripting.field_16 = 0; } -static void atk19_faint_pokemon(void) +static void atk19_tryfaintmon(void) { const u8 *BS_ptr; @@ -3235,7 +3154,7 @@ static void atk19_faint_pokemon(void) } } -static void atk1A_faint_animation(void) +static void atk1A_dofaintanimation(void) { if (gBattleExecBuffer == 0) { @@ -3246,7 +3165,7 @@ static void atk1A_faint_animation(void) } } -static void atk1B_faint_effects_clear(void) +static void atk1B_cleareffectsonfaint(void) { if (gBattleExecBuffer == 0) { @@ -4098,19 +4017,19 @@ static void MoveValuesCleanUp(void) gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); } -static void atk25_move_values_cleanup(void) +static void atk25_movevaluescleanup(void) { MoveValuesCleanUp(); gBattlescriptCurrInstr += 1; } -static void atk26_set_multihit(void) +static void atk26_setmultihit(void) { gMultiHitCounter = gBattlescriptCurrInstr[1]; gBattlescriptCurrInstr += 2; } -static void atk27_decrement_multihit(void) +static void atk27_decrementmultihit(void) { if (--gMultiHitCounter == 0) gBattlescriptCurrInstr += 5; @@ -4320,7 +4239,7 @@ static void atk31_copyarray(void) gBattlescriptCurrInstr += 10; } -static void atk32_copyarray_withindex(void) +static void atk32_copyarraywithindex(void) { u8* dest = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); const u8* src = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); @@ -4470,7 +4389,7 @@ static void atk43_jumpifabilitypresent(void) gBattlescriptCurrInstr += 6; } -static void atk44_end_selection_script(void) +static void atk44_endselectionscript(void) { *(gBankAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } @@ -5190,7 +5109,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); - gBattlescriptCurrInstr = gUnknown_082DB87D; + gBattlescriptCurrInstr = BattleScript_82DB87D; return; } else @@ -5310,7 +5229,7 @@ static void atk4A_typecalc2(void) gBattlescriptCurrInstr++; } -static void atk4B_return_atk_to_ball(void) +static void atk4B_returnatktoball(void) { gActiveBank = gBankAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) @@ -5321,7 +5240,7 @@ static void atk4B_return_atk_to_ball(void) gBattlescriptCurrInstr++; } -static void atk4C_get_switched_mon_data(void) +static void atk4C_getswitchedmondata(void) { if (gBattleExecBuffer) return; @@ -5336,7 +5255,7 @@ static void atk4C_get_switched_mon_data(void) gBattlescriptCurrInstr += 2; } -static void atk4D_switch_data_update(void) +static void atk4D_switchindataupdate(void) { struct BattlePokemon oldData; s32 i; @@ -5389,7 +5308,7 @@ static void atk4D_switch_data_update(void) gBattlescriptCurrInstr += 2; } -static void atk4E_switchin_anim(void) +static void atk4E_switchinanim(void) { if (gBattleExecBuffer) return; @@ -5415,7 +5334,7 @@ static void atk4E_switchin_anim(void) sub_81A56B4(); } -static void atk4F_jump_if_cannot_switch(void) +static void atk4F_jumpifcantswitch(void) { s32 val = 0; s32 compareVar = 0; @@ -5869,7 +5788,7 @@ static void atk50_openpartyscreen(void) } } -static void atk51_switch_handle_order(void) +static void atk51_switchhandleorder(void) { s32 i; if (gBattleExecBuffer) @@ -5936,7 +5855,7 @@ static void atk51_switch_handle_order(void) gBattlescriptCurrInstr += 3; } -static void atk52_switch_in_effects(void) +static void atk52_switchineffects(void) { s32 i; @@ -5967,12 +5886,12 @@ static void atk52_switch_in_effects(void) gBattleScripting.bank = gActiveBank; BattleScriptPushCursor(); - if (gBattlescriptCurrInstr[1] == 0) - gBattlescriptCurrInstr = gUnknown_082DAE90; - else if (gBattlescriptCurrInstr[1] == 1) - gBattlescriptCurrInstr = gUnknown_082DAE59; + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + gBattlescriptCurrInstr = BattleScript_SpikesOnTarget; + else if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) + gBattlescriptCurrInstr = BattleScript_SpikesOnAttacker; else - gBattlescriptCurrInstr = gUnknown_082DAEC7; + gBattlescriptCurrInstr = BattleScript_SpikesOngBank1; } else { @@ -6017,7 +5936,7 @@ static void atk52_switch_in_effects(void) } } -static void atk53_trainer_slide(void) +static void atk53_trainerslidein(void) { gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); EmitTrainerSlide(0); @@ -6026,16 +5945,16 @@ static void atk53_trainer_slide(void) gBattlescriptCurrInstr += 2; } -static void atk54_effectiveness_sound(void) +static void atk54_playse(void) { gActiveBank = gBankAttacker; - EmitEffectivenessSound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; } -static void atk55_play_fanfare(void) +static void atk55_fanfare(void) { gActiveBank = gBankAttacker; EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); @@ -6044,7 +5963,7 @@ static void atk55_play_fanfare(void) gBattlescriptCurrInstr += 3; } -static void atk56_fainting_cry(void) +static void atk56_playfaintcry(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitFaintingCry(0); @@ -6055,14 +5974,14 @@ static void atk56_fainting_cry(void) static void atk57(void) { - gActiveBank = GetBankByIdentity(0); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); EmitCmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 1; } -static void atk58_return_to_ball(void) +static void atk58_returntoball(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitReturnMonToBall(0, 1); @@ -6071,7 +5990,7 @@ static void atk58_return_to_ball(void) gBattlescriptCurrInstr += 2; } -static void atk59_learnmove_inbattle(void) +static void atk59_handlelearnnewmove(void) { const u8* jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); const u8* jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); @@ -6367,7 +6286,7 @@ static void atk5D_getmoneyreward(void) gBattlescriptCurrInstr++; } -static void atk5E_8025A70(void) +static void atk5E(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -6394,7 +6313,7 @@ static void atk5E_8025A70(void) } } -static void atk5F_8025B24(void) +static void atk5F(void) { gActiveBank = gBankAttacker; gBankAttacker = gBankTarget; @@ -6408,7 +6327,7 @@ static void atk5F_8025B24(void) gBattlescriptCurrInstr++; } -static void atk60_increment_gamestat(void) +static void atk60_incrementgamestat(void) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) IncrementGameStat(gBattlescriptCurrInstr[1]); @@ -6416,7 +6335,7 @@ static void atk60_increment_gamestat(void) gBattlescriptCurrInstr += 2; } -static void atk61_draw_party_status_summary(void) +static void atk61_drawpartystatussummary(void) { s32 i; struct Pokemon* party; @@ -6453,7 +6372,7 @@ static void atk61_draw_party_status_summary(void) gBattlescriptCurrInstr += 2; } -static void atk62_08025C6C(void) +static void atk62(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitCmd49(0); @@ -6569,7 +6488,7 @@ static void atk67_yesnobox(void) } } -static void atk68_cancel_everyones_actions(void) +static void atk68_cancelallactions(void) { s32 i; @@ -6579,7 +6498,7 @@ static void atk68_cancel_everyones_actions(void) gBattlescriptCurrInstr++; } -static void atk69_dmg_adjustment3(void) // The same as 0x7, except there's no random damage multiplier. +static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no random damage multiplier. { u8 holdEffect, quality; @@ -6648,7 +6567,7 @@ static void atk6B_atknameinbuff1(void) gBattlescriptCurrInstr++; } -static void atk6C_draw_lvlupbox(void) +static void atk6C_drawlvlupbox(void) { if (gBattleScripting.atk6C_state == 0) { @@ -6922,19 +6841,19 @@ static bool32 IsMonGettingExpSentOut(void) return FALSE; } -static void atk6D_reset_sentpokes_value(void) +static void atk6D_resetsentmonsvalue(void) { ResetSentPokesToOpponentValue(); gBattlescriptCurrInstr++; } -static void atk6E_set_atk_to_player0(void) +static void atk6E_setatktoplayer0(void) { gBankAttacker = GetBankByIdentity(0); gBattlescriptCurrInstr++; } -static void atk6F_set_visible(void) +static void atk6F_makevisible(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitSpriteInvisibility(0, FALSE); @@ -6943,7 +6862,7 @@ static void atk6F_set_visible(void) gBattlescriptCurrInstr += 2; } -static void atk70_record_last_used_ability(void) +static void atk70_recordlastability(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); RecordAbilityBattle(gActiveBank, gLastUsedAbility); @@ -6955,13 +6874,13 @@ void BufferMoveToLearnIntoBattleTextBuff2(void) PREPARE_MOVE_BUFFER(gBattleTextBuff2, gMoveToLearn); } -static void atk71_buffer_move_to_learn(void) +static void atk71_buffermovetolearn(void) { BufferMoveToLearnIntoBattleTextBuff2(); gBattlescriptCurrInstr++; } -static void atk72_jump_if_run_attempt_success(void) +static void atk72_jumpifplayerran(void) { if (TryRunFromBattle(gBank1)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -6969,7 +6888,7 @@ static void atk72_jump_if_run_attempt_success(void) gBattlescriptCurrInstr += 5; } -static void atk73_hp_thresholds(void) +static void atk73_hpthresholds(void) { u8 opposingBank; s32 result; @@ -6996,7 +6915,7 @@ static void atk73_hp_thresholds(void) gBattlescriptCurrInstr += 2; } -static void atk74_hp_thresholds2(void) +static void atk74_hpthresholds2(void) { u8 opposingBank; s32 result; @@ -7022,7 +6941,7 @@ static void atk74_hp_thresholds2(void) gBattlescriptCurrInstr += 2; } -static void atk75_item_effect_on_opponent(void) +static void atk75_useitemonopponent(void) { gBankInMenu = gBankAttacker; ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); @@ -7044,13 +6963,13 @@ static void atk76_various(void) break; case VARIOUS_SET_MAGIC_COAT_TARGET: gBankAttacker = gBankTarget; - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) gBankTarget = gSideTimers[side].followmeTarget; else gBankTarget = gActiveBank; break; - case VARIOUS_CAN_RUN_FROM_BATTLE: + case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: @@ -7209,7 +7128,7 @@ static void atk76_various(void) gBattlescriptCurrInstr += 3; } -static void atk77_set_protect_like(void) // protect and endure +static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; u16 lastMove = gUnknown_02024260[gBankAttacker]; @@ -7292,9 +7211,9 @@ static void atk79_setatkhptozero(void) gBattlescriptCurrInstr++; } -static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop through all targets. +static void atk7A_jumpifnexttargetvalid(void) { - const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7312,10 +7231,12 @@ static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop throu gBattlescriptCurrInstr = jumpPtr; } else + { gBattlescriptCurrInstr += 5; + } } -static void atk7B_healhalfHP_if_possible(void) +static void atk7B_tryhealhalfhealth(void) { const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -7383,7 +7304,7 @@ static void atk7C_trymirrormove(void) } } -static void atk7D_set_rain(void) +static void atk7D_setrain(void) { if (gBattleWeather & WEATHER_RAIN_ANY) { @@ -7464,9 +7385,9 @@ static void atk80_manipulatedamage(void) gBattlescriptCurrInstr += 2; } -static void atk81_setrest(void) +static void atk81_trysetrest(void) { - const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); gActiveBank = gBankTarget = gBankAttacker; gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); @@ -7530,9 +7451,9 @@ bool8 UproarWakeUpCheck(u8 bank) return TRUE; } -static void atk84_jump_if_cant_sleep(void) +static void atk84_jumpifcantmakeasleep(void) { - const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (UproarWakeUpCheck(gBankTarget)) { @@ -7844,7 +7765,7 @@ static void atk8C_confuseifrepeatingattackends(void) gBattlescriptCurrInstr++; } -static void atk8D_setmultihit_counter(void) +static void atk8D_setmultihitcounter(void) { if (gBattlescriptCurrInstr[1]) { @@ -7862,7 +7783,7 @@ static void atk8D_setmultihit_counter(void) gBattlescriptCurrInstr += 2; } -static void atk8E_init_multihit_string(void) +static void atk8E_initmultihitstring(void) { PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) @@ -7886,7 +7807,7 @@ static bool8 sub_8051064(void) *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; } - gBattlescriptCurrInstr = gUnknown_082DADD8; + gBattlescriptCurrInstr = BattleScript_82DADD8; return TRUE; } @@ -8051,7 +7972,7 @@ static void atk8F_forcerandomswitch(void) } } -static void atk90_conversion_type_change(void) // randomly changes user's type to one of its moves' type +static void atk90_tryconversiontypechange(void) // randomly changes user's type to one of its moves' type { u8 validMoves = 0; u8 moveChecked; @@ -8155,7 +8076,7 @@ static void atk92_setlightscreen(void) gBattlescriptCurrInstr++; } -static void atk93_ko_move(void) +static void atk93_tryKO(void) { u8 holdEffect, param; @@ -8319,7 +8240,7 @@ static void atk96_weatherdamage(void) gBattlescriptCurrInstr++; } -static void atk97_try_infatuation(void) +static void atk97_tryinfatuating(void) { struct Pokemon *monAttacker, *monTarget; u16 speciesAttacker, speciesTarget; @@ -8364,7 +8285,7 @@ static void atk97_try_infatuation(void) } } -static void atk98_status_icon_update(void) +static void atk98_updatestatusicon(void) { if (gBattleExecBuffer) return; @@ -8414,7 +8335,7 @@ static void atk99_setmist(void) gBattlescriptCurrInstr++; } -static void atk9A_set_focusenergy(void) +static void atk9A_setfocusenergy(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) { @@ -8473,7 +8394,7 @@ static void atk9B_transformdataexecution(void) } } -static void atk9C_set_substitute(void) +static void atk9C_setsubstitute(void) { u32 hp = gBattleMons[gBankAttacker].maxHP / 4; if (gBattleMons[gBankAttacker].maxHP / 4 == 0) @@ -8673,7 +8594,7 @@ static void atkA3_disablelastusedattack(void) } } -static void atkA4_setencore(void) +static void atkA4_trysetencore(void) { s32 i; @@ -8937,13 +8858,13 @@ static void atkA9_sleeptalk_choose_move(void) } } -static void atkAA_set_destinybond(void) +static void atkAA_setdestinybond(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } -static void DestinyBondFlagUpdate(void) +static void TrySetDestinyBondToHappen(void) { u8 sideAttacker = GetBankSide(gBankAttacker); u8 sideTarget = GetBankSide(gBankTarget); @@ -8955,9 +8876,9 @@ static void DestinyBondFlagUpdate(void) } } -static void atkAB_DestinyBondFlagUpdate(void) +static void atkAB_trysetdestinybondtohappen(void) { - DestinyBondFlagUpdate(); + TrySetDestinyBondToHappen(); gBattlescriptCurrInstr++; } @@ -8976,7 +8897,7 @@ static void atkAC_remaininghptopower(void) gBattlescriptCurrInstr++; } -static void atkAD_spite_ppreduce(void) +static void atkAD_tryspiteppreduce(void) { if (gLastUsedMovesByBanks[gBankTarget] != 0 && gLastUsedMovesByBanks[gBankTarget] != 0xFFFF) @@ -9027,7 +8948,7 @@ static void atkAD_spite_ppreduce(void) } } -static void atkAE_heal_party_status(void) +static void atkAE_healpartystatus(void) { u32 zero = 0; u8 toHeal = 0; @@ -9140,7 +9061,7 @@ static void atkAF_cursetarget(void) } } -static void atkB0_set_spikes(void) +static void atkB0_trysetspikes(void) { u8 targetSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; @@ -9157,13 +9078,13 @@ static void atkB0_set_spikes(void) } } -static void atkB1_set_foresight(void) +static void atkB1_setforesight(void) { gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } -static void atkB2_setperishsong(void) +static void atkB2_trysetperishsong(void) { s32 i; s32 notAffectedCount = 0; @@ -9196,7 +9117,7 @@ static void atkB3_rolloutdamagecalculation(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -9240,7 +9161,7 @@ static void atkB5_furycuttercalc(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; - gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -9286,7 +9207,7 @@ static void atkB7_presentdamagecalculation(void) gBattleMoveDamage *= -1; } if (rand < 204) - gBattlescriptCurrInstr = BattleScript_PresentDamageTarget; + gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else @@ -9296,7 +9217,7 @@ static void atkB7_presentdamagecalculation(void) } } -static void atkB8_set_safeguard(void) +static void atkB8_setsafeguard(void) { if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) { @@ -9501,7 +9422,7 @@ static void atkBE_rapidspinfree(void) } } -static void atkBF_set_defense_curl(void) +static void atkBF_setdefensecurlbit(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; @@ -9533,7 +9454,7 @@ static void atkC0_recoverbasedonsunlight(void) } #ifdef NONMATCHING -static void atkC1_hidden_power_calc(void) +static void atkC1_hiddenpowercalc(void) { u32 powerBits = 0; u32 typeBits = 0; @@ -9564,7 +9485,7 @@ static void atkC1_hidden_power_calc(void) #else __attribute__((naked)) -static void atkC1_hidden_power_calc(void) +static void atkC1_hiddenpowercalc(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -9707,7 +9628,7 @@ _080544F0:\n\ } #endif // NONMATCHING -static void atkC2_selectnexttarget(void) +static void atkC2_selectfirstvalidtarget(void) { for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) { @@ -9719,7 +9640,7 @@ static void atkC2_selectnexttarget(void) gBattlescriptCurrInstr++; } -static void atkC3_setfutureattack(void) +static void atkC3_trysetfutureattack(void) { if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) { @@ -9747,9 +9668,9 @@ static void atkC3_setfutureattack(void) } } -static void atkC4_beat_up(void) +static void atkC4_trydobeatup(void) { - struct Pokemon* party; + struct Pokemon *party; if (GetBankSide(gBankAttacker) == SIDE_PLAYER) party = gPlayerParty; @@ -9950,7 +9871,7 @@ static void atkD0_settaunt(void) } } -static void atkD1_set_helpinghand(void) +static void atkD1_trysethelpinghand(void) { gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); @@ -9968,7 +9889,7 @@ static void atkD1_set_helpinghand(void) } } -static void atkD2_swap_items(void) // trick +static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_x4000000 @@ -10055,7 +9976,7 @@ static void atkD2_swap_items(void) // trick } } -static void atkD3_copy_ability(void) // role play +static void atkD3_trycopyability(void) // role play { if (gBattleMons[gBankTarget].ability != 0 && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) @@ -10070,7 +9991,7 @@ static void atkD3_copy_ability(void) // role play } } -static void atkD4_wish_effect(void) +static void atkD4_trywish(void) { switch (gBattlescriptCurrInstr[1]) { @@ -10103,7 +10024,7 @@ static void atkD4_wish_effect(void) } } -static void atkD5_setroots(void) // ingrain +static void atkD5_trysetroots(void) // ingrain { if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) { @@ -10168,7 +10089,7 @@ static void atkD9_scaledamagebyhealthratio(void) gBattlescriptCurrInstr++; } -static void atkDA_abilityswap(void) // skill swap +static void atkDA_tryswapabilities(void) // skill swap { if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0) @@ -10188,7 +10109,7 @@ static void atkDA_abilityswap(void) // skill swap } } -static void atkDB_imprisoneffect(void) +static void atkDB_tryimprision(void) { if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISONED_OTHERS)) { @@ -10230,7 +10151,7 @@ static void atkDB_imprisoneffect(void) } } -static void atkDC_setgrudge(void) +static void atkDC_trysetgrudge(void) { if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) { @@ -10313,7 +10234,7 @@ static void atkDE_asistattackselect(void) } } -static void atkDF_setmagiccoat(void) +static void atkDF_trysetmagiccoat(void) { gBankTarget = gBankAttacker; gSpecialStatuses[gBankAttacker].flag20 = 1; @@ -10328,7 +10249,7 @@ static void atkDF_setmagiccoat(void) } } -static void atkE0_setstealstatchange(void) // snatch +static void atkE0_trysetsnatch(void) // snatch { gSpecialStatuses[gBankAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn @@ -10342,7 +10263,7 @@ static void atkE0_setstealstatchange(void) // snatch } } -static void atkE1_intimidate_string_loader(void) +static void atkE1_trygetintimidatetarget(void) { u8 side; @@ -10365,7 +10286,7 @@ static void atkE1_intimidate_string_loader(void) gBattlescriptCurrInstr += 5; } -static void atkE2_switchout_abilities(void) +static void atkE2_switchoutabilities(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -10502,7 +10423,7 @@ static void atkE5_pickup(void) gBattlescriptCurrInstr++; } -static void atkE6_castform_change_animation(void) +static void atkE6_docastformchangeanimation(void) { gActiveBank = gBattleScripting.bank; @@ -10515,7 +10436,7 @@ static void atkE6_castform_change_animation(void) gBattlescriptCurrInstr++; } -static void atkE7_castform_data_change(void) +static void atkE7_trycastformdatachange(void) { u8 form; @@ -10578,7 +10499,7 @@ static void atkE9_setweatherballtype(void) gBattlescriptCurrInstr++; } -static void atkEA_recycleitem(void) +static void atkEA_tryrecycleitem(void) { u16 *usedHeldItem; @@ -10619,7 +10540,7 @@ static void atkEB_settypetoterrain(void) } } -static void atkEC_pursuit_sth(void) +static void atkEC_pursuitrelated(void) { gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); @@ -10641,7 +10562,7 @@ static void atkEC_pursuit_sth(void) } } -static void atkED_802B4B4(void) +static void atkEF_snatchsetbanks(void) { gEffectBank = gBankAttacker; @@ -10827,7 +10748,7 @@ static void atkEF_pokeball_catch_calculation(void) } } -static void atkF0_give_caught_mon(void) +static void atkF0_givecaughtmon(void) { if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) { @@ -10856,7 +10777,7 @@ static void atkF0_give_caught_mon(void) gBattlescriptCurrInstr++; } -static void atkF1_set_caught_mon_dex_flags(void) +static void atkF1_trysetcaughtmondexflags(void) { u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); u32 personality = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL); @@ -10872,7 +10793,7 @@ static void atkF1_set_caught_mon_dex_flags(void) } } -static void atkF2_display_dex_info(void) +static void atkF2_displaydexinfo(void) { u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); @@ -10991,7 +10912,7 @@ void BattleDestroyYesNoCursorAt(u8 cursorPosition) CopyBgTilemapBufferToVram(0); } -static void atkF3_nickname_caught_poke(void) +static void atkF3_trygivecaughtmonnick(void) { switch (gBattleCommunication[MULTIUSE_STATE]) { @@ -11079,18 +11000,18 @@ static void atkF5_removeattackerstatus1(void) gBattlescriptCurrInstr++; } -static void atkF6_action_finished(void) +static void atkF6_finishaction(void) { gCurrentActionFuncId = ACTION_FINISHED; } -static void atkF7_turn_finished(void) +static void atkF7_finishturn(void) { gCurrentActionFuncId = ACTION_FINISHED; gCurrentTurnActionNumber = gNoOfAllBanks; } -static void atkF8_trainer_slide_back(void) +static void atkF8_trainerslideout(void) { gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); EmitTrainerSlideBack(0); diff --git a/src/battle_util.c b/src/battle_util.c index ed3bdef98..0ec98d125 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -9,6 +9,7 @@ #include "items.h" #include "util.h" #include "battle_move_effects.h" +#include "battle_scripts.h" #include "rng.h" #include "text.h" #include "string_util.h" @@ -60,119 +61,6 @@ extern u8 gSentPokesToOpponent[2]; extern const struct BattleMove gBattleMoves[]; -// scripts -extern const u8 gUnknown_082DAE2A[]; -extern const u8 gUnknown_082DAE1F[]; -extern const u8 gUnknown_082DB089[]; -extern const u8 gUnknown_082DB098[]; -extern const u8 gUnknown_082DB0AF[]; -extern const u8 gUnknown_082DB0A0[]; -extern const u8 gUnknown_082DB185[]; -extern const u8 gUnknown_082DB181[]; -extern const u8 gUnknown_082DB812[]; -extern const u8 gUnknown_082DB076[]; -extern const u8 BattleScript_NoMovesLeft[]; -extern const u8 gUnknown_082DACFA[]; -extern const u8 gUnknown_082DAD0B[]; -extern const u8 gUnknown_082DACC9[]; -extern const u8 gUnknown_082DAC47[]; -extern const u8 gUnknown_082DACE0[]; -extern const u8 gUnknown_082DACD2[]; -extern const u8 BattleScript_WishComesTrue[]; -extern const u8 gUnknown_082DACC9[]; -extern const u8 gUnknown_082DAC2C[]; -extern const u8 BattleScript_IngrainTurnHeal[]; -extern const u8 BattleScript_LeechSeedTurnDrain[]; -extern const u8 BattleScript_PoisonTurnDmg[]; -extern const u8 BattleScript_BurnTurnDmg[]; -extern const u8 BattleScript_NightmareTurnDmg[]; -extern const u8 BattleScript_CurseTurnDmg[]; -extern const u8 BattleScript_WrapTurnDmg[]; -extern const u8 BattleScript_WrapEnds[]; -extern const u8 gUnknown_082DB234[]; -extern const u8 gUnknown_082DB2A6[]; -extern const u8 BattleScript_ThrashConfuses[]; -extern const u8 BattleScript_DisabledNoMore[]; -extern const u8 BattleScript_EncoredNoMore[]; -extern const u8 BattleScript_YawnMakesAsleep[]; -extern const u8 gUnknown_082DAFE4[]; -extern const u8 gUnknown_082DB8F3[]; -extern const u8 gUnknown_082DAF05[]; -extern const u8 gUnknown_082DAF20[]; -extern const u8 gUnknown_082DA7C4[]; -extern const u8 gUnknown_082DA7CD[]; -extern const u8 BattleScript_MoveUsedWokeUp[]; -extern const u8 BattleScript_MoveUsedIsAsleep[]; -extern const u8 BattleScript_MoveUsedIsFrozen[]; -extern const u8 BattleScript_MoveUsedUnfroze[]; -extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_MoveUsedMustRecharge[]; -extern const u8 BattleScript_MoveUsedFlinched[]; -extern const u8 BattleScript_MoveUsedIsDisabled[]; -extern const u8 BattleScript_MoveUsedIsTaunted[]; -extern const u8 BattleScript_MoveUsedIsImprisoned[]; -extern const u8 BattleScript_MoveUsedIsConfused[]; -extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; -extern const u8 BattleScript_MoveUsedIsParalyzed[]; -extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; -extern const u8 BattleScript_MoveUsedIsInLove[]; -extern const u8 BattleScript_BideStoringEnergy[]; -extern const u8 BattleScript_BideAttack[]; -extern const u8 BattleScript_BideNoEnergyToAttack[]; -extern const u8 gUnknown_082DACE7[]; -extern const u8 BattleScript_DrizzleActivates[]; -extern const u8 BattleScript_SandstreamActivates[]; -extern const u8 BattleScript_DroughtActivates[]; -extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_RainDishActivates[]; -extern const u8 BattleScript_ShedSkinActivates[]; -extern const u8 BattleScript_SpeedBoostActivates[]; -extern const u8 BattleScript_SoundproofProtected[]; -extern const u8 BattleScript_MoveHPDrain[]; -extern const u8 BattleScript_MoveHPDrain_PPLoss[]; -extern const u8 BattleScript_FlashFireBoost[]; -extern const u8 BattleScript_FlashFireBoost_PPLoss[]; -extern const u8 gUnknown_082DB592[]; -extern const u8 gUnknown_082DB591[]; -extern const u8 BattleScript_ColorChangeActivates[]; -extern const u8 BattleScript_RoughSkinActivates[]; -extern const u8 BattleScript_ApplySecondaryEffect[]; -extern const u8 BattleScript_CuteCharmActivates[]; -extern const u8 gUnknown_082DB68C[]; -extern const u8 BattleScript_SynchronizeActivates[]; -extern const u8 gUnknown_082DB4B8[]; -extern const u8 gUnknown_082DB4C1[]; -extern const u8 BattleScript_TraceActivates[]; - -extern const u8 BattleScript_WhiteHerbEnd2[]; -extern const u8 BattleScript_WhiteHerbRet[]; -extern const u8 BattleScript_ItemHealHP_RemoveItem[]; -extern const u8 BattleScript_BerryPPHealEnd2[]; -extern const u8 BattleScript_ItemHealHP_End2[]; -extern const u8 BattleScript_BerryConfuseHealEnd2[]; -extern const u8 BattleScript_BerryStatRaiseEnd2[]; -extern const u8 BattleScript_BerryFocusEnergyEnd2[]; -extern const u8 BattleScript_BerryCurePrlzEnd2[]; -extern const u8 BattleScript_BerryCurePsnEnd2[]; -extern const u8 BattleScript_BerryCureBrnEnd2[]; -extern const u8 BattleScript_BerryCureFrzEnd2[]; -extern const u8 BattleScript_BerryCureSlpEnd2[]; -extern const u8 BattleScript_BerryCureConfusionEnd2[]; -extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; -extern const u8 BattleScript_BerryCureParRet[]; -extern const u8 BattleScript_BerryCurePsnRet[]; -extern const u8 BattleScript_BerryCureBrnRet[]; -extern const u8 BattleScript_BerryCureFrzRet[]; -extern const u8 BattleScript_BerryCureSlpRet[]; -extern const u8 BattleScript_BerryCureConfusionRet[]; -extern const u8 BattleScript_BerryCureChosenStatusRet[]; -extern const u8 BattleScript_ItemHealHP_Ret[]; - -extern const u8 gUnknown_082DB695[]; //disobedient while asleep -extern const u8 gUnknown_082DB6A5[]; //disobedient, uses a random move -extern const u8 gUnknown_082DB6D9[]; //disobedient, went to sleep -extern const u8 gUnknown_082DB6F0[]; //disobedient, hits itself - extern u8 weather_get_current(void); // rom const data @@ -196,13 +84,13 @@ u8 GetBattleBank(u8 caseId) case BS_GET_EFFECT_BANK: ret = gEffectBank; break; - case 7: + case BS_GET_BANK_0: ret = 0; break; case BS_GET_SCRIPTING_BANK: ret = gBattleScripting.bank; break; - case 3: + case BS_GET_gBank1: ret = gBank1; break; case 5: @@ -474,12 +362,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DAE2A; + gUnknown_02024230[gActiveBank] = BattleScript_82DAE2A; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAE1F; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAE1F; limitations = 1; } } @@ -489,12 +377,12 @@ u8 TrySetCantSelectMoveBattleScript(void) CancelMultiTurnMoves(gActiveBank); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB098; + gUnknown_02024230[gActiveBank] = BattleScript_82DB098; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB089; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB089; limitations++; } } @@ -504,12 +392,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB0AF; + gUnknown_02024230[gActiveBank] = BattleScript_82DB0AF; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB0A0; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB0A0; limitations++; } } @@ -519,12 +407,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB185; + gUnknown_02024230[gActiveBank] = BattleScript_82DB185; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB181; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB181; limitations++; } } @@ -546,7 +434,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB812; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB812; limitations++; } } @@ -559,7 +447,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB076; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB076; limitations++; } } @@ -694,7 +582,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].reflectTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_82DACFA); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; gBattleTextBuff1[2] = MOVE_REFLECT; @@ -723,7 +611,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].lightscreenTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_82DACFA); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -752,7 +640,7 @@ u8 UpdateTurnCounters(void) && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_82DACFA); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -781,7 +669,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].safeguardTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; - BattleScriptExecute(gUnknown_082DAD0B); + BattleScriptExecute(BattleScript_82DAD0B); effect++; } } @@ -836,7 +724,7 @@ u8 UpdateTurnCounters(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - BattleScriptExecute(gUnknown_082DAC2C); + BattleScriptExecute(BattleScript_82DAC2C); effect++; } gBattleStruct->turncountersTracker++; @@ -847,10 +735,10 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_082DACC9; + gBattlescriptCurrInstr = BattleScript_82DACC9; } else - gBattlescriptCurrInstr = gUnknown_082DAC47; + gBattlescriptCurrInstr = BattleScript_82DAC47; gBattleScripting.animArg1 = 0xC; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -865,10 +753,10 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SUN_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_082DACE0; + gBattlescriptCurrInstr = BattleScript_82DACE0; } else - gBattlescriptCurrInstr = gUnknown_082DACD2; + gBattlescriptCurrInstr = BattleScript_82DACD2; BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -881,10 +769,10 @@ u8 UpdateTurnCounters(void) if (--gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_HAIL; - gBattlescriptCurrInstr = gUnknown_082DACC9; + gBattlescriptCurrInstr = BattleScript_82DACC9; } else - gBattlescriptCurrInstr = gUnknown_082DAC47; + gBattlescriptCurrInstr = BattleScript_82DAC47; gBattleScripting.animArg1 = 0xD; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1075,7 +963,7 @@ u8 TurnBasedEffects(void) gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; - BattleScriptExecute(gUnknown_082DB234); + BattleScriptExecute(BattleScript_82DB234); gActiveBank = gBankAttacker; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); @@ -1106,7 +994,7 @@ u8 TurnBasedEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; CancelMultiTurnMoves(gActiveBank); } - BattleScriptExecute(gUnknown_082DB2A6); + BattleScriptExecute(BattleScript_82DB2A6); effect = 1; } } @@ -1259,7 +1147,7 @@ bool8 sub_8041364(void) gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; - BattleScriptExecute(gUnknown_082DAFE4); + BattleScriptExecute(BattleScript_82DAFE4); if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gWishFutureKnock.futureSightCounter[gActiveBank ^ 2] == 0) @@ -1298,12 +1186,12 @@ bool8 sub_8041364(void) { gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; gBattleMoveDamage = gBattleMons[gActiveBank].hp; - gBattlescriptCurrInstr = gUnknown_082DAF05; + gBattlescriptCurrInstr = BattleScript_82DAF05; } else { gDisableStructs[gActiveBank].perishSongTimer1--; - gBattlescriptCurrInstr = gUnknown_082DAF20; + gBattlescriptCurrInstr = BattleScript_82DAF20; } BattleScriptExecute(gBattlescriptCurrInstr); return 1; @@ -1326,8 +1214,8 @@ bool8 sub_8041364(void) for (i = 0; i < 2; i++) CancelMultiTurnMoves(i); - gBattlescriptCurrInstr = gUnknown_082DB8F3; - BattleScriptExecute(gUnknown_082DB8F3); + gBattlescriptCurrInstr = BattleScript_82DB8F3; + BattleScriptExecute(BattleScript_82DB8F3); gBattleStruct->field_1A0++; return 1; } @@ -1367,7 +1255,7 @@ bool8 sub_8041728(void) && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->field_4E]]) && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) { - BattleScriptExecute(gUnknown_082DA7C4); + BattleScriptExecute(BattleScript_82DA7C4); gBattleStruct->field_4D = 2; return TRUE; } @@ -1392,7 +1280,7 @@ bool8 sub_8041728(void) if (gBattleMons[gBattleStruct->field_4E].hp == 0 && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) { - BattleScriptExecute(gUnknown_082DA7CD); + BattleScriptExecute(BattleScript_82DA7CD); gBattleStruct->field_4D = 5; return TRUE; } @@ -1961,7 +1849,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (effect) { gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); - BattleScriptPushCursorAndCallback(gUnknown_082DACE7); + BattleScriptPushCursorAndCallback(BattleScript_82DACE7); } break; case ABILITY_DRIZZLE: @@ -2167,9 +2055,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) { if ((gProtectStructs[gBankAttacker].notFirstStrike)) - gBattlescriptCurrInstr = gUnknown_082DB592; + gBattlescriptCurrInstr = BattleScript_82DB592; else - gBattlescriptCurrInstr = gUnknown_082DB591; + gBattlescriptCurrInstr = BattleScript_82DB591; } else { @@ -2380,7 +2268,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } BattleScriptPushCursor(); - gBattlescriptCurrInstr = gUnknown_082DB68C; + gBattlescriptCurrInstr = BattleScript_82DB68C; gBattleScripting.bank = bank; gActiveBank = bank; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); @@ -2445,7 +2333,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); - BattleScriptPushCursorAndCallback(gUnknown_082DB4B8); + BattleScriptPushCursorAndCallback(BattleScript_82DB4B8); gBattleStruct->intimidateBank = i; effect++; break; @@ -2517,7 +2405,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); BattleScriptPushCursor(); - gBattlescriptCurrInstr = gUnknown_082DB4C1; + gBattlescriptCurrInstr = BattleScript_82DB4C1; gBattleStruct->intimidateBank = i; effect++; break; @@ -3536,7 +3424,7 @@ u8 IsPokeDisobedient(void) gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { - gBattlescriptCurrInstr = gUnknown_082DB695; + gBattlescriptCurrInstr = BattleScript_82DB695; return 1; } @@ -3559,7 +3447,7 @@ u8 IsPokeDisobedient(void) } while (gBitTable[gCurrMovePos] & calc); gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gBattlescriptCurrInstr = gUnknown_082DB6A5; + gBattlescriptCurrInstr = BattleScript_82DB6A5; gBankTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; @@ -3581,7 +3469,7 @@ u8 IsPokeDisobedient(void) } if (i == gNoOfAllBanks) { - gBattlescriptCurrInstr = gUnknown_082DB6D9; + gBattlescriptCurrInstr = BattleScript_82DB6D9; return 1; } } @@ -3590,7 +3478,7 @@ u8 IsPokeDisobedient(void) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); gBankTarget = gBankAttacker; - gBattlescriptCurrInstr = gUnknown_082DB6F0; + gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; } -- cgit v1.2.3 From fe658cc2fd673db774ca533f8bafde7210774c42 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Nov 2017 21:11:20 +0100 Subject: create setword macro --- asm/macros/battle_script.inc | 7 +++++++ data/battle_scripts_1.s | 10 ++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 3a8e99a94..0bbd1dc0b 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1230,3 +1230,10 @@ .macro chosenstatus2animation bank, status chosenstatusanimation \bank 0x1 \status .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 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 1f6be1390..7d1c4f8ec 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -826,10 +826,7 @@ BattleScript_EffectDragonRage:: ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE - setbyte gBattleMoveDamage, 0x28 - setbyte gBattleMoveDamage + 1, 0x0 - setbyte gBattleMoveDamage + 2, 0x0 - setbyte gBattleMoveDamage + 3, 0x0 + setword gBattleMoveDamage, 40 adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -1740,10 +1737,7 @@ BattleScript_EffectSonicboom:: ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE - setbyte gBattleMoveDamage, 0x14 - setbyte gBattleMoveDamage + 1, 0x0 - setbyte gBattleMoveDamage + 2, 0x0 - setbyte gBattleMoveDamage + 3, 0x0 + setword gBattleMoveDamage, 20 adjustsetdamage goto BattleScript_HitFromAtkAnimation -- cgit v1.2.3 From 847bfa15404fa8f33f3ae4f43dcd7586c3126d2c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Nov 2017 21:32:17 +0100 Subject: add more battlescript macros --- asm/macros/battle_script.inc | 16 ++++++++++++++ data/battle_scripts_1.s | 52 ++++++++++++++++++++------------------------ 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 0bbd1dc0b..55ec0438e 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1237,3 +1237,19 @@ setbyte \dst + 2, (\value >> 16) & 0xFF setbyte \dst + 3, (\value >> 24) & 0xFF .endm + + .macro copybyte dst, src + copyarray \dst, \src, 0x1 + .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 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 7d1c4f8ec..eb598dbb6 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -614,7 +614,7 @@ BattleScript_82D8DFD:: jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 BattleScript_82D8E1F:: movevaluescleanup - copyarray cEFFECT_CHOOSER, sFIELD_16, 0x1 + copybyte cEFFECT_CHOOSER, sFIELD_16 critcalc damagecalc typecalc @@ -714,7 +714,7 @@ BattleScript_AlreadyPoisoned:: goto BattleScript_MoveEnd BattleScript_82D8F63:: - copyarray gEffectBank, gBankTarget, 0x1 + copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention goto BattleScript_MoveEnd @@ -804,7 +804,7 @@ BattleScript_82D906F:: orword gHitMarker, HITMARKER_x8000000 setmoveeffect EFFECT_CHARGING | AFFECTS_USER seteffectprimary - copyarray cMULTISTRING_CHOOSER, sFIELD_F, 0x1 + copybyte cMULTISTRING_CHOOSER, sFIELD_F printfromtable 0x85CC8B0 waitmessage 0x40 return @@ -1036,7 +1036,7 @@ BattleScript_82D9351:: goto BattleScript_MoveEnd BattleScript_82D9362:: - copyarray gEffectBank, gBankTarget, 0x1 + copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention goto BattleScript_MoveEnd @@ -1254,7 +1254,7 @@ BattleScript_EffectPainSplit:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER - copyarray gBattleMoveDamage, sPAINSPLIT_HP, 0x4 + copyword gBattleMoveDamage, sPAINSPLIT_HP healthbarupdate TARGET datahpupdate TARGET printstring STRINGID_SHAREDPAIN @@ -1503,7 +1503,7 @@ BattleScript_EffectCurse:: jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_82D9892 jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed BattleScript_82D9892:: - copyarray gBankTarget, gBankAttacker, 0x1 + copybyte gBankTarget, gBankAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation @@ -1525,7 +1525,7 @@ BattleScript_82D98E0:: goto BattleScript_MoveEnd BattleScript_82D98E5:: - jumpifarraynotequal gBankAttacker, gBankTarget, 0x1, BattleScript_82D98F6 + jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_82D98F6 various ATTACKER, VARIOUS_GET_MOVE_TARGET BattleScript_82D98F6:: attackcanceler @@ -1593,7 +1593,7 @@ BattleScript_PerishSongLoop:: jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected BattleScript_PerishSongLoopIncrement:: addbyte sBANK, 0x1 - jumpifarraynotequal sBANK, gNoOfAllBanks, 0x1, BattleScript_PerishSongLoop + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop goto BattleScript_MoveEnd BattleScript_PerishSongNotAffected:: @@ -1682,6 +1682,7 @@ BattleScript_EffectPresent:: ppreduce typecalc presentdamagecalculation + BattleScript_EffectSafeguard:: attackcanceler attackstring @@ -1984,7 +1985,6 @@ BattleScript_BeatUpAttack:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 goto BattleScript_BeatUpLoop - BattleScript_BeatUpEnd:: end @@ -2208,7 +2208,7 @@ BattleScript_EffectWillOWisp:: goto BattleScript_MoveEnd BattleScript_82DA0A1:: - copyarray gEffectBank, gBankTarget, 0x1 + copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention goto BattleScript_MoveEnd @@ -2485,7 +2485,7 @@ BattleScript_EffectYawn:: goto BattleScript_MoveEnd BattleScript_82DA378:: - copyarray sBANK, sFIELD_15, 0x1 + copybyte sBANK, sFIELD_15 BattleScript_82DA382:: pause 0x20 printstring STRINGID_PKMNSXMADEITINEFFECTIVE @@ -2501,12 +2501,12 @@ BattleScript_EffectEndeavor:: attackstring ppreduce setdamagetohealthdifference BattleScript_ButItFailed - copyarray gHpDealt, gBattleMoveDamage, 0x4 + copyword gHpDealt, gBattleMoveDamage accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE - copyarray gBattleMoveDamage, gHpDealt, 0x4 + copyword gBattleMoveDamage, gHpDealt adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -2514,9 +2514,6 @@ BattleScript_EffectEruption:: scaledamagebyhealthratio goto BattleScript_EffectHit - - - BattleScript_EffectSkillSwap:: attackcanceler attackstring @@ -2563,7 +2560,6 @@ BattleScript_EffectGrudge:: waitmessage 0x40 goto BattleScript_MoveEnd - BattleScript_EffectSnatch:: attackcanceler trysetsnatch BattleScript_ButItFailedAtkStringPpReduce @@ -2600,7 +2596,7 @@ BattleScript_EffectTeeterDance:: BattleScript_82DA47B:: movevaluescleanup setmoveeffect EFFECT_CONFUSION - jumpifarrayequal gBankAttacker, gBankTarget, 0x1, BattleScript_82DA4D0 + jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_82DA4D0 jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DA4E5 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA501 jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82DA50F @@ -2617,7 +2613,7 @@ BattleScript_82DA4C7:: moveend 0x2, 0x10 BattleScript_82DA4D0:: addbyte gBankTarget, 0x1 - jumpifarraynotequal gBankTarget, gNoOfAllBanks, 0x1, BattleScript_82DA47B + jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_82DA47B end BattleScript_82DA4E5:: @@ -2665,7 +2661,6 @@ BattleScript_EffectPoisonFang:: setmoveeffect EFFECT_TOXIC goto BattleScript_EffectHit - BattleScript_EffectWeatherBall:: setweatherballtype goto BattleScript_EffectHit @@ -2702,7 +2697,6 @@ BattleScript_82DA5A7:: BattleScript_82DA5CA:: goto BattleScript_MoveEnd - BattleScript_82DA5CF:: pause 0x20 orbyte gBattleMoveFlags, MOVESTATUS_FAILED @@ -2934,7 +2928,7 @@ BattleScript_82DA908:: switchinanim GBANK_1, 0x0 waitstate switchineffects 5 - jumpifarraynotequal gBank1, gNoOfAllBanks, 0x1, BattleScript_82DA908 + jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908 BattleScript_82DA92C:: end2 @@ -2969,7 +2963,7 @@ BattleScript_LocalBattleLost:: jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA9C9 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_82DA9C9 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_82DA9BD - jumpifhalfword EQUAL, 0x2038BCA, 0x400, BattleScript_82DA9BD + jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_82DA9BD BattleScript_82DA9B1:: printstring STRINGID_PLAYERWHITEOUT waitmessage 0x40 @@ -3249,7 +3243,7 @@ BattleScript_82DAC5F:: BattleScript_82DACA0:: jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DACBF addbyte gBattleCommunication, 0x1 - jumpifarraynotequal gBattleCommunication, gNoOfAllBanks, 0x1, BattleScript_82DAC5F + jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_82DAC5F BattleScript_82DACBF:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE end2 @@ -3298,7 +3292,7 @@ BattleScript_LeechSeedTurnDrain:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER - copyarray gBattleMoveDamage, gHpDealt, 0x4 + copyword gBattleMoveDamage, gHpDealt jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_82DAD47 manipulatedamage ATK80_DMG_CHANGE_SIGN setbyte cMULTISTRING_CHOOSER, 0x3 @@ -3330,7 +3324,7 @@ BattleScript_BideAttack:: accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE - copyarray gBattleMoveDamage, sBIDE_DMG, 0x4 + copyword gBattleMoveDamage, sBIDE_DMG adjustsetdamage setbyte sANIM_TURN, 0x1 attackanimation @@ -3528,7 +3522,7 @@ BattleScript_RapidSpinAway:: BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE waitmessage 0x40 - copyarray gBankTarget, sBANK, 0x1 + copybyte gBankTarget, sBANK return BattleScript_LeechSeedFree:: @@ -4042,7 +4036,7 @@ BattleScript_82DB48D:: BattleScript_82DB493:: trycastformdatachange addbyte sBANK, 0x1 - jumpifarraynotequal sBANK, gNoOfAllBanks, 0x1, BattleScript_82DB493 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_82DB493 return BattleScript_CastformChange:: @@ -4484,7 +4478,7 @@ BattleScript_82DB887:: waitmessage 0x40 BattleScript_82DB89D:: addbyte gBattleCommunication + 1, 0x1 - jumpifarraynotequal gBattleCommunication + 1, gNoOfAllBanks, 0x1, BattleScript_82DB887 + jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887 setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication + 1, 0x0 end2 -- cgit v1.2.3 From 76f4a8b195932b4fbac9945eca8d97ffbbc0f84b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 00:33:40 +0100 Subject: clean up and use names for printfromtable --- constants/battle_script_constants.inc | 2 +- data/battle_scripts_1.s | 320 ++++++++++++++++++---------------- data/battle_scripts_2.s | 27 ++- include/battle.h | 2 +- include/battle_move_effects.h | 2 +- include/battle_scripts.h | 26 +-- src/battle_message.c | 280 +++++++++++++++++++++++------ src/battle_script_commands.c | 4 +- 8 files changed, 432 insertions(+), 231 deletions(-) diff --git a/constants/battle_script_constants.inc b/constants/battle_script_constants.inc index 106bffd03..07b7f24f8 100644 --- a/constants/battle_script_constants.inc +++ b/constants/battle_script_constants.inc @@ -141,7 +141,7 @@ .equiv sBIDE_DMG, gBattleScripting + 4 .equiv sMULTIHIT_STRING, gBattleScripting + 8 .equiv sDMG_MULTIPLIER, gBattleScripting + 0xE - .equiv sFIELD_F, gBattleScripting + 0xF + .equiv sTWOTURN_STRINGID, gBattleScripting + 0xF .equiv sANIM_ARG1, gBattleScripting + 0x10 .equiv sANIM_ARG2, gBattleScripting + 0x11 .equiv sTRIPLE_KICK_POWER, gBattleScripting + 0x12 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index eb598dbb6..bac2f77c5 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -20,17 +20,17 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectMirrorMove .4byte BattleScript_EffectAttackUp .4byte BattleScript_EffectDefenseUp - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpeedUp .4byte BattleScript_EffectSpecialAttackUp - .4byte BattleScript_EffectHit - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialDefenseUp + .4byte BattleScript_EffectAccuracyUp .4byte BattleScript_EffectEvasionUp - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAlwaysHit .4byte BattleScript_EffectAttackDown .4byte BattleScript_EffectDefenseDown .4byte BattleScript_EffectSpeedDown - .4byte BattleScript_EffectHit - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialAttackDown + .4byte BattleScript_EffectSpecialDefenseDown .4byte BattleScript_EffectAccuracyDown .4byte BattleScript_EffectEvasionDown .4byte BattleScript_EffectHaze @@ -46,12 +46,12 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectLightScreen .4byte BattleScript_EffectTriAttack .4byte BattleScript_EffectRest - .4byte BattleScript_EffectOhko + .4byte BattleScript_EffectOHKO .4byte BattleScript_EffectRazorWind .4byte BattleScript_EffectSuperFang .4byte BattleScript_EffectDragonRage .4byte BattleScript_EffectTrap - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHighCritical .4byte BattleScript_EffectDoubleHit .4byte BattleScript_EffectRecoilIfMiss .4byte BattleScript_EffectMist @@ -63,16 +63,16 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectSpeedUp2 .4byte BattleScript_EffectSpecialAttackUp2 .4byte BattleScript_EffectSpecialDefenseUp2 - .4byte BattleScript_EffectHit - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAccuracyUp2 + .4byte BattleScript_EffectEvasionUp2 .4byte BattleScript_EffectTransform .4byte BattleScript_EffectAttackDown2 .4byte BattleScript_EffectDefenseDown2 .4byte BattleScript_EffectSpeedDown2 - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialAttackDown2 .4byte BattleScript_EffectSpecialDefenseDown2 - .4byte BattleScript_EffectHit - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAccuracyDown2 + .4byte BattleScript_EffectEvasionDown2 .4byte BattleScript_EffectReflect .4byte BattleScript_EffectPoison .4byte BattleScript_EffectParalyze @@ -82,11 +82,11 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectSpecialAttackDownHit .4byte BattleScript_EffectSpecialDefenseDownHit .4byte BattleScript_EffectAccuracyDownHit - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectEvasionDownHit .4byte BattleScript_EffectSkyAttack .4byte BattleScript_EffectConfuseHit .4byte BattleScript_EffectTwineedle - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectVitalThrow .4byte BattleScript_EffectSubstitute .4byte BattleScript_EffectRecharge .4byte BattleScript_EffectRage @@ -104,52 +104,52 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectConversion2 .4byte BattleScript_EffectLockOn .4byte BattleScript_EffectSketch - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectUnused60//Thaw .4byte BattleScript_EffectSleepTalk .4byte BattleScript_EffectDestinyBond .4byte BattleScript_EffectFlail .4byte BattleScript_EffectSpite - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectFalseSwipe .4byte BattleScript_EffectHealBell - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectQuickAttack .4byte BattleScript_EffectTripleKick .4byte BattleScript_EffectThief .4byte BattleScript_EffectMeanLook .4byte BattleScript_EffectNightmare .4byte BattleScript_EffectMinimize .4byte BattleScript_EffectCurse - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectUnused6e .4byte BattleScript_EffectProtect .4byte BattleScript_EffectSpikes .4byte BattleScript_EffectForesight .4byte BattleScript_EffectPerishSong .4byte BattleScript_EffectSandstorm - .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectEndure .4byte BattleScript_EffectRollout .4byte BattleScript_EffectSwagger .4byte BattleScript_EffectFuryCutter .4byte BattleScript_EffectAttract .4byte BattleScript_EffectReturn .4byte BattleScript_EffectPresent - .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectFrustration .4byte BattleScript_EffectSafeguard .4byte BattleScript_EffectThawHit .4byte BattleScript_EffectMagnitude .4byte BattleScript_EffectBatonPass - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectPursuit .4byte BattleScript_EffectRapidSpin .4byte BattleScript_EffectSonicboom - .4byte BattleScript_EffectHit - .4byte BattleScript_EffectMorningSun - .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectUnused83 .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectSynthesis + .4byte BattleScript_EffectMoonlight .4byte BattleScript_EffectHiddenPower .4byte BattleScript_EffectRainDance .4byte BattleScript_EffectSunnyDay .4byte BattleScript_EffectDefenseUpHit .4byte BattleScript_EffectAttackUpHit .4byte BattleScript_EffectAllStatsUpHit - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectUnused8d .4byte BattleScript_EffectBellyDrum .4byte BattleScript_EffectPsychUp .4byte BattleScript_EffectMirrorCoat @@ -163,7 +163,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectThunder .4byte BattleScript_EffectTeleport .4byte BattleScript_EffectBeatUp - .4byte BattleScript_EffectFly + .4byte BattleScript_EffectSemiInvulnerable .4byte BattleScript_EffectDefenseCurl .4byte BattleScript_EffectSoftboiled .4byte BattleScript_EffectFakeOut @@ -171,7 +171,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectStockpile .4byte BattleScript_EffectSpitUp .4byte BattleScript_EffectSwallow - .4byte BattleScript_EffectHit + .4byte BattleScript_EffectUnusedA3 .4byte BattleScript_EffectHail .4byte BattleScript_EffectTorment .4byte BattleScript_EffectFlatter @@ -208,7 +208,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectSecretPower .4byte BattleScript_EffectDoubleEdge .4byte BattleScript_EffectTeeterDance - .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectBlazeKick .4byte BattleScript_EffectMudSport .4byte BattleScript_EffectPoisonFang .4byte BattleScript_EffectWeatherBall @@ -217,12 +217,34 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectCosmicPower .4byte BattleScript_EffectSkyUppercut .4byte BattleScript_EffectBulkUp - .4byte BattleScript_EffectPoisonHit - .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectPoisonTail + .4byte BattleScript_EffectWaterSport .4byte BattleScript_EffectCalmMind .4byte BattleScript_EffectDragonDance .4byte BattleScript_EffectCamouflage +BattleScript_EffectSpeedUp:: +BattleScript_EffectSpecialDefenseUp:: +BattleScript_EffectAccuracyUp:: +BattleScript_EffectAlwaysHit:: +BattleScript_EffectSpecialAttackDown:: +BattleScript_EffectSpecialDefenseDown:: +BattleScript_EffectHighCritical:: +BattleScript_EffectAccuracyUp2:: +BattleScript_EffectEvasionUp2:: +BattleScript_EffectSpecialAttackDown2:: +BattleScript_EffectAccuracyDown2:: +BattleScript_EffectEvasionDown2:: +BattleScript_EffectEvasionDownHit:: +BattleScript_EffectVitalThrow:: +BattleScript_EffectUnused60:: +BattleScript_EffectFalseSwipe:: +BattleScript_EffectQuickAttack:: +BattleScript_EffectUnused6e:: +BattleScript_EffectPursuit:: +BattleScript_EffectUnused83:: +BattleScript_EffectUnused8d:: +BattleScript_EffectUnusedA3:: BattleScript_EffectHit:: jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SURF, BattleScript_HitFromAtkCanceler jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_HitFromAtkCanceler @@ -303,11 +325,12 @@ BattleScript_82D8AC1:: BattleScript_82D8ACF:: pause 0x20 - printfromtable 0x85CC896 + printfromtable gUproarAwakeStringIds waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPoisonHit:: +BattleScript_EffectPoisonTail:: setmoveeffect EFFECT_POISON goto BattleScript_EffectHit @@ -336,7 +359,6 @@ BattleScript_EffectAbsorb:: jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_82D8B26 setbyte cMULTISTRING_CHOOSER, 0x0 goto BattleScript_82D8B2E - BattleScript_82D8B26:: manipulatedamage ATK80_DMG_CHANGE_SIGN setbyte cMULTISTRING_CHOOSER, 0x1 @@ -344,7 +366,7 @@ BattleScript_82D8B2E:: healthbarupdate ATTACKER datahpupdate ATTACKER jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8B45 - printfromtable 0x85CC8FC + printfromtable gLeechSeedDrainStringIds waitmessage 0x40 BattleScript_82D8B45:: tryfaintmon ATTACKER, FALSE, NULL @@ -352,6 +374,7 @@ BattleScript_82D8B45:: goto BattleScript_MoveEnd BattleScript_EffectBurnHit:: +BattleScript_EffectBlazeKick:: setmoveeffect EFFECT_BURN goto BattleScript_EffectHit @@ -499,14 +522,14 @@ BattleScript_82D8CBF:: setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 BattleScript_82D8CC7:: - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82D8CCF:: goto BattleScript_MoveEnd BattleScript_StatUp:: playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 return @@ -546,14 +569,14 @@ BattleScript_82D8D4E:: setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 BattleScript_82D8D58:: - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82D8D60:: goto BattleScript_MoveEnd BattleScript_StatDown:: playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 return @@ -742,7 +765,7 @@ BattleScript_EffectRest:: jumpifcantmakeasleep BattleScript_82D8FC6 trysetrest BattleScript_AlreadyAtFullHp pause 0x20 - printfromtable 0x85CC882 + printfromtable gRestUsedStringIds waitmessage 0x40 updatestatusicon ATTACKER waitstate @@ -750,7 +773,7 @@ BattleScript_EffectRest:: BattleScript_82D8FC6:: pause 0x40 - printfromtable 0x85CC896 + printfromtable gUproarAwakeStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -761,28 +784,27 @@ BattleScript_82D8FD6:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_EffectOhko:: +BattleScript_EffectOHKO:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation - tryKO BattleScript_82D9008 + tryKO BattleScript_KOFail trysetdestinybondtohappen goto BattleScript_HitFromAtkAnimation - -BattleScript_82D9008:: +BattleScript_KOFail:: pause 0x40 - printfromtable 0x85CC8F4 + printfromtable gKOFailedStringIds waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRazorWind:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 - setbyte sFIELD_F, 0x0 - call BattleScript_82D906F + setbyte sTWOTURN_STRINGID, 0x0 + call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd BattleScript_82D9040:: @@ -795,7 +817,7 @@ BattleScript_82D9040:: setmoveeffect EFFECT_FLINCH goto BattleScript_HitFromAccCheck -BattleScript_82D906F:: +BattleScriptFirstChargingTurn:: attackcanceler printstring STRINGID_EMPTYSTRING3 ppreduce @@ -804,8 +826,8 @@ BattleScript_82D906F:: orword gHitMarker, HITMARKER_x8000000 setmoveeffect EFFECT_CHARGING | AFFECTS_USER seteffectprimary - copybyte cMULTISTRING_CHOOSER, sFIELD_F - printfromtable 0x85CC8B0 + copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID + printfromtable gFirstTurnOfTwoStringIds waitmessage 0x40 return @@ -882,7 +904,7 @@ BattleScript_EffectMist:: setmist attackanimation waitanimation - printfromtable 0x85CC8CC + printfromtable gMistUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -894,7 +916,7 @@ BattleScript_EffectFocusEnergy:: setfocusenergy attackanimation waitanimation - printfromtable 0x85CC8D0 + printfromtable gFocusEnergyUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -955,7 +977,7 @@ BattleScript_EffectTransform:: transformdataexecution attackanimation waitanimation - printfromtable 0x85CC8D4 + printfromtable gTransformUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -983,7 +1005,7 @@ BattleScript_EffectReflect:: BattleScript_82D928C:: attackanimation waitanimation - printfromtable 0x85CC86C + printfromtable gReflectLightScreenSafeguardStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -1065,12 +1087,11 @@ BattleScript_EffectAccuracyDownHit:: setmoveeffect EFFECT_ACC_MINUS_1 goto BattleScript_EffectHit - BattleScript_EffectSkyAttack:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 - setbyte sFIELD_F, 0x3 - call BattleScript_82D906F + setbyte sTWOTURN_STRINGID, 0x3 + call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd BattleScript_EffectConfuseHit:: @@ -1097,14 +1118,13 @@ BattleScript_EffectSubstitute:: jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D942B pause 0x20 goto BattleScript_82D9431 - BattleScript_82D942B:: attackanimation waitanimation healthbarupdate ATTACKER datahpupdate ATTACKER BattleScript_82D9431:: - printfromtable 0x85CC8D8 + printfromtable gSubsituteUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -1172,7 +1192,7 @@ BattleScript_82D94E5:: setseeded attackanimation waitanimation - printfromtable 0x85CC878 + printfromtable gLeechSeedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -1376,7 +1396,7 @@ BattleScript_EffectHealBell:: waitstate attackanimation waitanimation - printfromtable 0x85CC904 + printfromtable gPartyStatusHealStringIds waitmessage 0x40 jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_HEAL_BELL, BattleScript_82D96FE jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D96ED @@ -1509,17 +1529,17 @@ BattleScript_82D9892:: waitanimation setstatchanger SPEED, 1, TRUE statbuffchange 0x41, BattleScript_82D98B8 - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82D98B8:: setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82D98CC - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82D98CC:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82D98E0 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82D98E0:: goto BattleScript_MoveEnd @@ -1546,13 +1566,14 @@ BattleScript_82D98F6:: goto BattleScript_MoveEnd BattleScript_EffectProtect:: +BattleScript_EffectEndure:: attackcanceler attackstring ppreduce setprotectlike attackanimation waitanimation - printfromtable 0x85CC866 + printfromtable gProtectLikeUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -1634,7 +1655,7 @@ BattleScript_EffectSwagger:: jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9A1E setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82D9A1E:: jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 @@ -1670,6 +1691,7 @@ BattleScript_EffectAttract:: goto BattleScript_MoveEnd BattleScript_EffectReturn:: +BattleScript_EffectFrustration:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE happinesstodamagecalculation @@ -1743,6 +1765,8 @@ BattleScript_EffectSonicboom:: goto BattleScript_HitFromAtkAnimation BattleScript_EffectMorningSun:: +BattleScript_EffectSynthesis:: +BattleScript_EffectMoonlight:: attackcanceler attackstring ppreduce @@ -1761,7 +1785,7 @@ BattleScript_EffectRainDance:: BattleScript_82D9B41:: attackanimation waitanimation - printfromtable 0x85CC848 + printfromtable gMoveWeatherChangeStringIds waitmessage 0x40 call BattleScript_82DB48D goto BattleScript_MoveEnd @@ -1823,14 +1847,14 @@ BattleScript_EffectMirrorCoat:: BattleScript_EffectSkullBash:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 - setbyte sFIELD_F, 0x2 - call BattleScript_82D906F + setbyte sTWOTURN_STRINGID, 0x2 + call BattleScriptFirstChargingTurn setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82D9C16 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9C16 setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82D9C16:: goto BattleScript_MoveEnd @@ -1901,7 +1925,7 @@ BattleScript_EffectFutureSight:: trysetfutureattack BattleScript_ButItFailed attackanimation waitanimation - printfromtable 0x85CC90E + printfromtable gFutureMoveUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -1923,8 +1947,8 @@ BattleScript_EffectSolarbeam:: BattleScript_82D9D28:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 - setbyte sFIELD_F, 0x1 - call BattleScript_82D906F + setbyte sTWOTURN_STRINGID, 0x1 + call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd BattleScript_82D9D50:: @@ -1988,31 +2012,31 @@ BattleScript_BeatUpAttack:: BattleScript_BeatUpEnd:: end -BattleScript_EffectFly:: - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9E79 - jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9E79 - jumpifhalfword EQUAL, gCurrentMove, MOVE_FLY, BattleScript_82D9E68 - jumpifhalfword EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_82D9E5D - jumpifhalfword EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9E52 - setbyte sFIELD_F, 0x5 - goto BattleScript_82D9E6E - -BattleScript_82D9E52:: - setbyte sFIELD_F, 0x7 - goto BattleScript_82D9E6E - -BattleScript_82D9E5D:: - setbyte sFIELD_F, 0x6 - goto BattleScript_82D9E6E - -BattleScript_82D9E68:: - setbyte sFIELD_F, 0x4 -BattleScript_82D9E6E:: - call BattleScript_82D906F +BattleScript_EffectSemiInvulnerable:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable + jumpifhalfword EQUAL, gCurrentMove, MOVE_FLY, BattleScript_FirstTurnFly + jumpifhalfword EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_FirstTurnDive + jumpifhalfword EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_FirstTurnBounce + setbyte sTWOTURN_STRINGID, 0x5 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnBounce:: + setbyte sTWOTURN_STRINGID, 0x7 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnDive:: + setbyte sTWOTURN_STRINGID, 0x6 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnFly:: + setbyte sTWOTURN_STRINGID, 0x4 +BattleScript_FirstTurnSemiInvulnerable:: + call BattleScriptFirstChargingTurn setsemiinvulnerablebit goto BattleScript_MoveEnd -BattleScript_82D9E79:: +BattleScript_SecondTurnSemiInvulnerable:: attackcanceler setmoveeffect EFFECT_CHARGING setbyte sANIM_TURN, 0x1 @@ -2021,11 +2045,11 @@ BattleScript_82D9E79:: jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9EA3 setmoveeffect EFFECT_PARALYSIS BattleScript_82D9EA3:: - accuracycheck BattleScript_82D9EB0, ACC_CURR_MOVE + accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE clearsemiinvulnerablebit goto BattleScript_HitFromAtkString -BattleScript_82D9EB0:: +BattleScript_SemiInvulnerableMiss:: clearsemiinvulnerablebit goto BattleScript_PrintMoveMissed @@ -2105,7 +2129,7 @@ BattleScript_EffectStockpile:: stockpile attackanimation waitanimation - printfromtable 0x85CC88A + printfromtable gStockpileUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -2144,7 +2168,7 @@ BattleScript_EffectSwallow:: BattleScript_SwallowFail:: pause 0x20 - printfromtable 0x85CC892 + printfromtable gSwallowFailStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -2181,7 +2205,7 @@ BattleScript_EffectFlatter:: jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA03A setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA03A:: jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 @@ -2236,14 +2260,14 @@ BattleScript_EffectMemento:: setstatchanger ATK, 2, TRUE statbuffchange 0x1, BattleScript_82DA119 jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119 - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DA119:: playstatchangeanimation TARGET, 0x10, 0x3 setstatchanger SPATK, 2, TRUE statbuffchange 0x1, BattleScript_82DA13C jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DA13C:: tryfaintmon ATTACKER, FALSE, NULL @@ -2358,7 +2382,7 @@ BattleScript_EffectTrick:: waitanimation printstring STRINGID_PKMNSWITCHEDITEMS waitmessage 0x40 - printfromtable 0x85CC970 + printfromtable gItemSwapStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -2647,13 +2671,14 @@ BattleScript_82DA520:: goto BattleScript_82DA4C7 BattleScript_EffectMudSport:: +BattleScript_EffectWaterSport:: attackcanceler attackstring ppreduce settypebasedhalvers BattleScript_ButItFailed attackanimation waitanimation - printfromtable 0x85CC900 + printfromtable gSportsUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -2685,14 +2710,14 @@ BattleScript_82DA571:: setstatchanger ATK, 1, TRUE statbuffchange 0x1, BattleScript_82DA5A7 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5A7 - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DA5A7:: playstatchangeanimation TARGET, 0x4, 0x1 setstatchanger DEF, 1, TRUE statbuffchange 0x1, BattleScript_82DA5CA jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5CA - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DA5CA:: goto BattleScript_MoveEnd @@ -2718,13 +2743,13 @@ BattleScript_82DA5F8:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA623 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA623 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA623:: setstatchanger SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA642 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA642 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA642:: goto BattleScript_MoveEnd @@ -2747,13 +2772,13 @@ BattleScript_82DA66A:: setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82DA695 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA695 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA695:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA6B4 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6B4 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA6B4:: goto BattleScript_MoveEnd @@ -2772,13 +2797,13 @@ BattleScript_82DA6CE:: setstatchanger SPATK, 1, FALSE statbuffchange 0x41, BattleScript_82DA6F9 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6F9 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA6F9:: setstatchanger SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA718 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA718 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA718:: goto BattleScript_MoveEnd @@ -2804,13 +2829,13 @@ BattleScript_82DA746:: setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82DA771 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA771 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA771:: setstatchanger SPEED, 1, FALSE statbuffchange 0x41, BattleScript_82DA790 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA790 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA790:: goto BattleScript_MoveEnd @@ -3091,12 +3116,12 @@ BattleScript_82DAAFE:: end2 BattleScript_PrintFailedToRunString:: - printfromtable 0x85CC83E + printfromtable gNoEscapeStringIds waitmessage 0x40 end2 BattleScript_82DAB0B:: - printselectionstringfromtable 0x85CC83E + printselectionstringfromtable gNoEscapeStringIds endselectionscript BattleScript_82DAB11:: @@ -3181,7 +3206,6 @@ BattleScript_LevelUp:: drawlvlupbox handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE goto BattleScript_AskToLearnMove - BattleScript_TryLearnMoveLoop:: handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE BattleScript_AskToLearnMove:: @@ -3198,7 +3222,6 @@ BattleScript_AskToLearnMove:: yesnoboxstoplearningmove BattleScript_AskToLearnMove printstring STRINGID_DIDNOTLEARNMOVE goto BattleScript_TryLearnMoveLoop - BattleScript_ForgotAndLearnedNewMove:: printstring STRINGID_123POOF printstring STRINGID_PKMNFORGOTMOVE @@ -3210,12 +3233,11 @@ BattleScript_LearnedNewMove:: waitmessage 0x40 various ATTACKER, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP goto BattleScript_TryLearnMoveLoop - BattleScript_LearnMoveReturn:: return BattleScript_82DAC2C:: - printfromtable 0x85CC860 + printfromtable gRainContinuesStringIds waitmessage 0x40 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DAC46 playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL @@ -3223,7 +3245,7 @@ BattleScript_82DAC46:: end2 BattleScript_82DAC47:: - printfromtable 0x85CC854 + printfromtable gSandStormHailContinuesStringIds waitmessage 0x40 playanimation2 ATTACKER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 @@ -3231,7 +3253,7 @@ BattleScript_82DAC5F:: copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 weatherdamage jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_82DACA0 - printfromtable 0x85CC858 + printfromtable gSandStormHailDmgStringIds waitmessage 0x40 orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE effectivenesssound @@ -3249,7 +3271,7 @@ BattleScript_82DACBF:: end2 BattleScript_82DACC9:: - printfromtable 0x85CC85C + printfromtable gSandStormHailEndStringIds waitmessage 0x40 end2 @@ -3265,7 +3287,7 @@ BattleScript_82DACE0:: end2 BattleScript_82DACE7:: - printfromtable 0x85CC91A + printfromtable gWeatherContinuesStringIds waitmessage 0x40 playanimation2 ATTACKER, sANIM_ARG1, NULL end3 @@ -3304,7 +3326,7 @@ BattleScript_82DAD4D:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate TARGET datahpupdate TARGET - printfromtable 0x85CC878 + printfromtable gLeechSeedStringIds waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL tryfaintmon TARGET, FALSE, NULL @@ -3490,27 +3512,27 @@ BattleScript_82DAF54:: playstatchangeanimation ATTACKER, 0x3E, 0x0 setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82DAF72 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAF72:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82DAF86 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAF86:: setstatchanger SPEED, 1, FALSE statbuffchange 0x41, BattleScript_82DAF9A - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAF9A:: setstatchanger SPATK, 1, FALSE statbuffchange 0x41, BattleScript_82DAFAE - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAFAE:: setstatchanger SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_82DAFC2 - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAFC2:: return @@ -3662,14 +3684,14 @@ BattleScript_AtkDefDown:: setstatchanger ATK, 1, TRUE statbuffchange 0xC1, BattleScript_82DB144 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DB144:: playstatchangeanimation ATTACKER, 0x4, 0x9 setstatchanger DEF, 1, TRUE statbuffchange 0xC1, BattleScript_82DB167 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DB167:: return @@ -3735,7 +3757,7 @@ BattleScript_SAtkDown2:: setstatchanger SPATK, 2, TRUE statbuffchange 0xC1, BattleScript_82DB1FE jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE - printfromtable 0x85CC8A8 + printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DB1FE:: return @@ -3756,7 +3778,7 @@ BattleScript_MoveUsedIsAsleep:: BattleScript_MoveUsedWokeUp:: bicword gHitMarker, HITMARKER_x10 - printfromtable 0x85CC88E + printfromtable gWokeUpStringIds waitmessage 0x40 updatestatusicon ATTACKER return @@ -3793,7 +3815,7 @@ BattleScript_MoveUsedIsFrozen:: goto BattleScript_MoveEnd BattleScript_MoveUsedUnfroze:: - printfromtable 0x85CC8F0 + printfromtable gGotDefrostedStringIds waitmessage 0x40 updatestatusicon ATTACKER return @@ -3817,7 +3839,7 @@ BattleScript_MoveUsedFlinched:: goto BattleScript_MoveEnd BattleScript_82DB2A6:: - printfromtable 0x85CC886 + printfromtable gUproarOvetTurnStringIds waitmessage 0x40 end2 @@ -3903,7 +3925,7 @@ BattleScript_TargetPRLZHeal:: BattleScript_MoveEffectSleep:: statusanimation EFFECT_BANK - printfromtable 0x85CC8E4 + printfromtable gFellAsleepStringIds waitmessage 0x40 BattleScript_82DB374:: updatestatusicon EFFECT_BANK @@ -3921,25 +3943,25 @@ BattleScript_YawnMakesAsleep:: BattleScript_MoveEffectPoison:: statusanimation EFFECT_BANK - printfromtable 0x85CC8DC + printfromtable gGotPoisonedStringIds waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectBurn:: statusanimation EFFECT_BANK - printfromtable 0x85CC8E8 + printfromtable gGotBurnedStringIds waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectFreeze:: statusanimation EFFECT_BANK - printfromtable 0x85CC8EC + printfromtable gGotFrozenStringIds waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectParalysis:: statusanimation EFFECT_BANK - printfromtable 0x85CC8E0 + printfromtable gGotParalyzedStringIds waitmessage 0x40 goto BattleScript_82DB374 @@ -3960,7 +3982,7 @@ BattleScript_MoveEffectPayDay:: return BattleScript_MoveEffectWrap:: - printfromtable 0x85CC8C0 + printfromtable gWrappedStringIds waitmessage 0x40 return @@ -4139,7 +4161,7 @@ BattleScript_FlashFireBoost_PPLoss:: BattleScript_FlashFireBoost:: attackstring pause 0x20 - printfromtable 0x85CC976 + printfromtable gFlashFireStringIds waitmessage 0x40 goto BattleScript_MoveEnd @@ -4157,19 +4179,19 @@ BattleScript_AbilityNoStatLoss:: BattleScript_BRNPrevention:: pause 0x20 - printfromtable 0x85CC95E + printfromtable gBRNPreventionStringIds waitmessage 0x40 return BattleScript_PRLZPrevention:: pause 0x20 - printfromtable 0x85CC964 + printfromtable gPRLZPreventionStringIds waitmessage 0x40 return BattleScript_PSNPrevention:: pause 0x20 - printfromtable 0x85CC96A + printfromtable gPSNPreventionStringIds waitmessage 0x40 return @@ -4272,7 +4294,7 @@ BattleScript_MoveUsedLoafingAround:: various ATTACKER, 0x18 setbyte cMULTISTRING_CHOOSER, 0x4 BattleScript_82DB6C7:: - printfromtable 0x85CC93A + printfromtable gInobedientStringIds waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 @@ -4374,7 +4396,7 @@ BattleScript_BerryCureChosenStatusEnd2:: BattleScript_BerryCureChosenStatusRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL - printfromtable 0x85CC95A + printfromtable gBerryEffectStringIds waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK @@ -4474,7 +4496,7 @@ BattleScript_82DB881:: BattleScript_82DB887:: various ATTACKER, 0x8 jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D - printfromtable 0x85CCF0A + printfromtable gStringIds_85CCF0A waitmessage 0x40 BattleScript_82DB89D:: addbyte gBattleCommunication + 1, 0x1 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 6f6ea084b..8b2af14aa 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -38,9 +38,9 @@ gBattlescriptsForRunningByItem:: @ 82DBD54 .align 2 gBattlescriptsForSafariActions:: @ 82DBD58 - .4byte BattleScript_82DBEBD - .4byte BattleScript_82DBEC4 - .4byte BattleScript_82DBECD + .4byte BattleScript_ActionWatchesCarefully + .4byte BattleScript_ActionGetNear + .4byte BattleScript_ActionThrowPokeblock .4byte BattleScript_82DBEE3 BattleScript_82DBD68:: @@ -73,10 +73,9 @@ BattleScript_82DBDA5:: setbyte gBattleCommunication, 0x0 trygivecaughtmonnick BattleScript_82DBDC2 givecaughtmon - printfromtable 0x85CC97A + printfromtable gCaughtMonStringIds waitmessage 0x40 goto BattleScript_82DBDC3 - BattleScript_82DBDC2:: givecaughtmon BattleScript_82DBDC3:: @@ -89,7 +88,7 @@ BattleScript_WallyBallThrow:: finishturn BattleScript_ShakeBallThrow:: - printfromtable 0x85CC912 + printfromtable gBallEscapeStringIds waitmessage 0x40 jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_82DBE01 jumpifbyte NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_82DBE01 @@ -136,7 +135,7 @@ BattleScript_82DBE4B:: printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent - printfromtable 0x85CC94E + printfromtable gTrainerItemCuredStatusStringIds waitmessage 0x40 updatestatusicon ATTACKER setbyte sMOVEEND_STATE, 0xF @@ -150,7 +149,7 @@ BattleScript_82DBE6F:: printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent - printfromtable 0x85CC89C + printfromtable gStatUpStringIds waitmessage 0x40 setbyte sMOVEEND_STATE, 0xF moveend 0x1, 0x0 @@ -163,7 +162,7 @@ BattleScript_82DBE91:: printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent - printfromtable 0x85CC8CC + printfromtable gMistUsedStringIds waitmessage 0x40 setbyte sMOVEEND_STATE, 0xF moveend 0x1, 0x0 @@ -174,21 +173,21 @@ BattleScript_RunByUsingItem:: setbyte gBattleOutcome, RAN finishturn -BattleScript_82DBEBD:: +BattleScript_ActionWatchesCarefully:: printstring STRINGID_PKMNWATCHINGCAREFULLY waitmessage 0x40 end2 -BattleScript_82DBEC4:: - printfromtable 0x85CC944 +BattleScript_ActionGetNear:: + printfromtable gSafariGetNearStringIds waitmessage 0x40 end2 -BattleScript_82DBECD:: +BattleScript_ActionThrowPokeblock:: printstring STRINGID_THREWPOKEBLOCKATPKMN waitmessage 0x40 playanimation ATTACKER, ANIM_x4, NULL - printfromtable 0x85CC948 + printfromtable gSafariPokeblockResultStringIds waitmessage 0x40 end2 diff --git a/include/battle.h b/include/battle.h index ada5282dc..5e37ef77c 100644 --- a/include/battle.h +++ b/include/battle.h @@ -846,7 +846,7 @@ struct BattleScripting s32 bideDmg; u8 multihitString[6]; u8 dmgMultiplier; - u8 field_F; + u8 twoTurnsMoveStringId; u8 animArg1; u8 animArg2; u8 tripleKickPower; diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h index 003913380..23c19ded7 100644 --- a/include/battle_move_effects.h +++ b/include/battle_move_effects.h @@ -158,7 +158,7 @@ enum EFFECT_THUNDER, EFFECT_TELEPORT, EFFECT_BEAT_UP, - EFFECT_FLY, + EFFECT_SEMI_INVULNERABLE, EFFECT_DEFENSE_CURL, EFFECT_SOFTBOILED, EFFECT_FAKE_OUT, diff --git a/include/battle_scripts.h b/include/battle_scripts.h index b04a82673..85e1488d7 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -78,11 +78,11 @@ extern const u8 BattleScript_EffectTriAttack[]; extern const u8 BattleScript_EffectRest[]; extern const u8 BattleScript_82D8FC6[]; extern const u8 BattleScript_82D8FD6[]; -extern const u8 BattleScript_EffectOhko[]; -extern const u8 BattleScript_82D9008[]; +extern const u8 BattleScript_EffectOHKO[]; +extern const u8 BattleScript_KOFail[]; extern const u8 BattleScript_EffectRazorWind[]; extern const u8 BattleScript_82D9040[]; -extern const u8 BattleScript_82D906F[]; +extern const u8 BattleScriptFirstChargingTurn[]; extern const u8 BattleScript_EffectSuperFang[]; extern const u8 BattleScript_EffectDragonRage[]; extern const u8 BattleScript_EffectTrap[]; @@ -228,14 +228,14 @@ extern const u8 BattleScript_EffectBeatUp[]; extern const u8 BattleScript_BeatUpLoop[]; extern const u8 BattleScript_BeatUpAttack[]; extern const u8 BattleScript_BeatUpEnd[]; -extern const u8 BattleScript_EffectFly[]; -extern const u8 BattleScript_82D9E52[]; -extern const u8 BattleScript_82D9E5D[]; -extern const u8 BattleScript_82D9E68[]; -extern const u8 BattleScript_82D9E6E[]; -extern const u8 BattleScript_82D9E79[]; +extern const u8 BattleScript_EffectSemiInvulnerable[]; +extern const u8 BattleScript_FirstTurnBounce[]; +extern const u8 BattleScript_FirstTurnDive[]; +extern const u8 BattleScript_FirstTurnFly[]; +extern const u8 BattleScript_FirstTurnSemiInvulnerable[]; +extern const u8 BattleScript_SecondTurnSemiInvulnerable[]; extern const u8 BattleScript_82D9EA3[]; -extern const u8 BattleScript_82D9EB0[]; +extern const u8 BattleScript_SemiInvulnerableMiss[]; extern const u8 BattleScript_EffectDefenseCurl[]; extern const u8 BattleScript_82D9ED3[]; extern const u8 BattleScript_EffectSoftboiled[]; @@ -632,9 +632,9 @@ extern const u8 BattleScript_82DBE4B[]; extern const u8 BattleScript_82DBE6F[]; extern const u8 BattleScript_82DBE91[]; extern const u8 BattleScript_RunByUsingItem[]; -extern const u8 BattleScript_82DBEBD[]; -extern const u8 BattleScript_82DBEC4[]; -extern const u8 BattleScript_82DBECD[]; +extern const u8 BattleScript_ActionWatchesCarefully[]; +extern const u8 BattleScript_ActionGetNear[]; +extern const u8 BattleScript_ActionThrowPokeblock[]; extern const u8 BattleScript_82DBEE3[]; #endif // GUARD_BATTLE_SCRIPTS_H diff --git a/src/battle_message.c b/src/battle_message.c index 9c37cf646..04eb5f655 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -932,58 +932,237 @@ const u16 gSandStormHailDmgStringIds[] = STRINGID_PKMNBUFFETEDBYSANDSTORM, STRINGID_PKMNPELTEDBYHAIL }; -// todo once battlescripts are dumped -const u16 gTooLazyToSplitThemStringIds[] = -{ - STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED, STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, - STRINGID_RAINSTOPPED, STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, - STRINGID_BUTITFAILED, STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, - STRINGID_PKMNRAISEDDEFALITTLE, STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, - STRINGID_PKMNCOVEREDBYVEIL, STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, +const u16 gSandStormHailEndStringIds[] = +{ + STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED +}; + +const u16 gRainContinuesStringIds[] = +{ + STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, STRINGID_RAINSTOPPED +}; + +const u16 gProtectLikeUsedStringIds[] = +{ + STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, STRINGID_BUTITFAILED +}; + +const u16 gReflectLightScreenSafeguardStringIds[] = +{ + STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, STRINGID_PKMNRAISEDDEFALITTLE, + STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, STRINGID_PKMNCOVEREDBYVEIL +}; + +const u16 gLeechSeedStringIds[] = +{ + STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE, - STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY, STRINGID_PKMNMAKINGUPROAR, - STRINGID_PKMNCALMEDDOWN, STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE, - STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR, STRINGID_FAILEDTOSWALLOW, - STRINGID_PKMNHPFULL, STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, - STRINGID_PKMNSTAYEDAWAKEUSING, STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, - STRINGID_STATSWONTINCREASE, STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, - STRINGID_PKMNUSEDXTOGETPUMPED, STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, - STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3, STRINGID_PKMNWHIPPEDWHIRLWIND, - STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING, - STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, - STRINGID_PKMNSPRANGUP, STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, - STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNTRAPPEDBYSANDTOMB, STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED, - STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED, STRINGID_PKMNTRANSFORMEDINTO, - STRINGID_BUTITFAILED, STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE, - STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY, STRINGID_PKMNWASPARALYZED, - STRINGID_PKMNWASPARALYZEDBY, STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP, - STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY, STRINGID_PKMNWASFROZEN, - STRINGID_PKMNFROZENBY, STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY, - STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED, STRINGID_PKMNFELLINLOVE, - STRINGID_PKMNSXINFATUATEDY, STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE, - STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED, STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, - STRINGID_SOOTHINGAROMA, STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY, - STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, - STRINGID_SHOOTSOCLOSE, STRINGID_ITISRAINING, STRINGID_ITISRAINING, +}; + +const u16 gRestUsedStringIds[] = +{ + STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY +}; + +const u16 gUproarOvetTurnStringIds[] = +{ + STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN +}; + +const u16 gStockpileUsedStringIds[] = +{ + STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE, +}; + +const u16 gWokeUpStringIds[] = +{ + STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR +}; + +const u16 gSwallowFailStringIds[] = +{ + STRINGID_FAILEDTOSWALLOW, STRINGID_PKMNHPFULL +}; + +const u16 gUproarAwakeStringIds[] = +{ + STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, STRINGID_PKMNSTAYEDAWAKEUSING +}; + +const u16 gStatUpStringIds[] = +{ + STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, STRINGID_STATSWONTINCREASE, + STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, STRINGID_PKMNUSEDXTOGETPUMPED +}; + +const u16 gStatDownStringIds[] = +{ + STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3 +}; + +const u16 gFirstTurnOfTwoStringIds[] = +{ + STRINGID_PKMNWHIPPEDWHIRLWIND, STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING, + STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, STRINGID_PKMNSPRANGUP +}; + +const u16 gWrappedStringIds[] = +{ + STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, STRINGID_PKMNTRAPPEDINVORTEX, + STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNTRAPPEDBYSANDTOMB +}; + +const u16 gMistUsedStringIds[] = +{ + STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED +}; + +const u16 gFocusEnergyUsedStringIds[] = +{ + STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED +}; + +const u16 gTransformUsedStringIds[] = +{ + STRINGID_PKMNTRANSFORMEDINTO, STRINGID_BUTITFAILED +}; + +const u16 gSubsituteUsedStringIds[] = +{ + STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE +}; + +const u16 gGotPoisonedStringIds[] = +{ + STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY +}; + +const u16 gGotParalyzedStringIds[] = +{ + STRINGID_PKMNWASPARALYZED, STRINGID_PKMNWASPARALYZEDBY +}; + +const u16 gFellAsleepStringIds[] = +{ + STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP, +}; + +const u16 gGotBurnedStringIds[] = +{ + STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY +}; + +const u16 gGotFrozenStringIds[] = +{ + STRINGID_PKMNWASFROZEN, STRINGID_PKMNFROZENBY +}; + +const u16 gGotDefrostedStringIds[] = +{ + STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY +}; + +const u16 gKOFailedStringIds[] = +{ + STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED +}; + +const u16 gAttractUsedStringIds[] = +{ + STRINGID_PKMNFELLINLOVE, STRINGID_PKMNSXINFATUATEDY +}; + +const u16 gLeechSeedDrainStringIds[] = +{ + STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE +}; + +const u16 gSportsUsedStringIds[] = +{ + STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED +}; + +const u16 gPartyStatusHealStringIds[] = +{ + STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, + // interesting how there are four instances of the same string + STRINGID_SOOTHINGAROMA +}; + +const u16 gFutureMoveUsedStringIds[] = +{ + STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY +}; + +const u16 gBallEscapeStringIds[] = +{ + STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE +}; + +const u16 gWeatherContinuesStringIds[] = +{ STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_SANDSTORMISRAGING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_PKMNLOAFING, - STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, STRINGID_PKMNPRETENDNOTNOTICE, - STRINGID_PKMNINCAPABLEOFPOWER, STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER, - STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX, + STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_SANDSTORMISRAGING, + STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, + STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING +}; + +const u16 gInobedientStringIds[] = +{ + STRINGID_PKMNLOAFING, STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, + STRINGID_PKMNPRETENDNOTNOTICE, STRINGID_PKMNINCAPABLEOFPOWER +}; + +const u16 gSafariGetNearStringIds[] = +{ + STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER +}; + +const u16 gSafariPokeblockResultStringIds[] = +{ + STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX +}; + +const u16 gTrainerItemCuredStatusStringIds[] = +{ STRINGID_PKMNSITEMSNAPPEDOUT, STRINGID_PKMNSITEMCUREDPARALYSIS, STRINGID_PKMNSITEMDEFROSTEDIT, - STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT, - STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS, STRINGID_PKMNSXPREVENTSBURNS, - STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNPREVENTSPARALYSISWITH, - STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNPREVENTSPOISONINGWITH, - STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNOBTAINEDX, - STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ, STRINGID_PKMNRAISEDFIREPOWERWITH, - STRINGID_PKMNSXMADEYINEFFECTIVE, STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, - STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL, + STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT +}; + +const u16 gBerryEffectStringIds[] = +{ + STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS +}; + +const u16 gBRNPreventionStringIds[] = +{ + STRINGID_PKMNSXPREVENTSBURNS, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY +}; + +const u16 gPRLZPreventionStringIds[] = +{ + STRINGID_PKMNPREVENTSPARALYSISWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY +}; + +const u16 gPSNPreventionStringIds[] = +{ + STRINGID_PKMNPREVENTSPOISONINGWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY +}; + +const u16 gItemSwapStringIds[] = +{ + STRINGID_PKMNOBTAINEDX, STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ +}; + +const u16 gFlashFireStringIds[] = +{ + STRINGID_PKMNRAISEDFIREPOWERWITH, STRINGID_PKMNSXMADEYINEFFECTIVE +}; + +const u16 gCaughtMonStringIds[] = +{ + STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL, }; const u16 gTrappingMoves[] = @@ -1102,9 +1281,10 @@ const u8 gText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is const u8 gText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); const u8 gText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); -const u16 gUnknown_085CCF0A[] = +const u16 gStringIds_85CCF0A[] = { - 0x016E, 0x016F, 0x0170, 0x0171 + STRINGID_GLINTAPPEARSINEYE, STRINGID_PKMNGETTINGINTOPOSITION, + STRINGID_PKMNBEGANGROWLINGDEEPLY, STRINGID_PKMNEAGERFORMORE }; const u8 gText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index e0a61a612..ded0629f2 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -8783,7 +8783,7 @@ static bool8 IsTwoTurnsMove(u16 move) || gBattleMoves[move].effect == EFFECT_RAZOR_WIND || gBattleMoves[move].effect == EFFECT_SKY_ATTACK || gBattleMoves[move].effect == EFFECT_SOLARBEAM - || gBattleMoves[move].effect == EFFECT_FLY + || gBattleMoves[move].effect == EFFECT_SEMI_INVULNERABLE || gBattleMoves[move].effect == EFFECT_BIDE) return TRUE; else @@ -8810,7 +8810,7 @@ static u8 AttacksThisTurn(u8 bank, u16 move) // Note: returns 1 if it's a chargi || gBattleMoves[move].effect == EFFECT_RAZOR_WIND || gBattleMoves[move].effect == EFFECT_SKY_ATTACK || gBattleMoves[move].effect == EFFECT_SOLARBEAM - || gBattleMoves[move].effect == EFFECT_FLY + || gBattleMoves[move].effect == EFFECT_SEMI_INVULNERABLE || gBattleMoves[move].effect == EFFECT_BIDE) { if ((gHitMarker & HITMARKER_x8000000)) -- cgit v1.2.3 From 938d346b6d905709deed5336086c888c98a24247 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 01:19:57 +0100 Subject: fixes and labels --- asm/macros/battle_script.inc | 4 +- data/battle_scripts_1.s | 171 +++++++++++++++++++------------------------ data/battle_scripts_2.s | 50 ++++++------- include/battle_scripts.h | 62 ++++++++-------- src/battle_script_commands.c | 12 +-- 5 files changed, 140 insertions(+), 159 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 55ec0438e..0d88f545d 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -850,7 +850,7 @@ .4byte \param0 .endm - .macro sleeptalk_choose_move param0 + .macro trychoosesleeptalkmove param0 .byte 0xa9 .4byte \param0 .endm @@ -1171,7 +1171,7 @@ .byte 0xee .endm - .macro pokeball_catch_calculation + .macro handleballthrow .byte 0xef .endm diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index bac2f77c5..991e8fde6 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -303,7 +303,7 @@ BattleScript_EffectSleep:: jumpifcantmakeasleep BattleScript_82D8ACF jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation setmoveeffect EFFECT_SLEEP @@ -396,7 +396,6 @@ BattleScript_EffectExplosion:: jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 call BattleScript_82D8BEA goto BattleScript_82D8B96 - BattleScript_82D8B94:: attackanimation waitanimation @@ -422,7 +421,6 @@ BattleScript_82D8B96:: jumpifnexttargetvalid BattleScript_82D8B96 tryfaintmon ATTACKER, FALSE, NULL end - BattleScript_82D8BCF:: effectivenesssound resultmessage @@ -449,7 +447,6 @@ BattleScript_82D8C0E:: ppreduce waitmessage 0x40 goto BattleScript_82D8AC1 - BattleScript_82D8C18:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring @@ -510,21 +507,20 @@ BattleScript_EffectStatUp:: BattleScript_EffectStatUpAfterAtkCanceler:: attackstring ppreduce - statbuffchange 0x41, BattleScript_82D8CCF - jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CBD + statbuffchange 0x41, BattleScript_StatUpEnd + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim pause 0x20 - goto BattleScript_82D8CC7 - -BattleScript_82D8CBD:: + goto BattleScript_StatUpPrintString +BattleScript_StatUpAttackAnim:: attackanimation waitanimation -BattleScript_82D8CBF:: +BattleScript_StatUpDoAnim:: setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 -BattleScript_82D8CC7:: +BattleScript_StatUpPrintString:: printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82D8CCF:: +BattleScript_StatUpEnd:: goto BattleScript_MoveEnd BattleScript_StatUp:: @@ -557,21 +553,20 @@ BattleScript_EffectStatDown:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - statbuffchange 0x1, BattleScript_82D8D60 - jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8D4E - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_82D8D60 + statbuffchange 0x1, BattleScript_StatDownEnd + jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd pause 0x20 - goto BattleScript_82D8D58 - -BattleScript_82D8D4E:: + goto BattleScript_StatDownPrintString +BattleScript_StatDownDoAnim:: attackanimation waitanimation setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 -BattleScript_82D8D58:: +BattleScript_StatDownPrintString:: printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82D8D60:: +BattleScript_StatDownEnd:: goto BattleScript_MoveEnd BattleScript_StatDown:: @@ -712,7 +707,7 @@ BattleScript_EffectToxic:: attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned @@ -720,7 +715,7 @@ BattleScript_EffectToxic:: jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation setmoveeffect EFFECT_TOXIC @@ -736,7 +731,7 @@ BattleScript_AlreadyPoisoned:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D8F63:: +BattleScript_ImmunityProtected:: copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention @@ -930,11 +925,11 @@ BattleScript_EffectConfuse:: attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82D9201 accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation setmoveeffect EFFECT_CONFUSION @@ -1013,7 +1008,7 @@ BattleScript_EffectPoison:: attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned @@ -1021,7 +1016,7 @@ BattleScript_EffectPoison:: jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation setmoveeffect EFFECT_POISON @@ -1034,14 +1029,14 @@ BattleScript_EffectParalyze:: attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_LIMBER, BattleScript_82D9362 + jumpifability TARGET, ABILITY_LIMBER, BattleScript_LimberProtected jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82D9351 jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation setmoveeffect EFFECT_PARALYSIS @@ -1057,7 +1052,7 @@ BattleScript_82D9351:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D9362:: +BattleScript_LimberProtected:: copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention @@ -1127,7 +1122,6 @@ BattleScript_82D9431:: printfromtable gSubsituteUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd - BattleScript_82D943E:: various ATTACKER, 0x17 pause 0x20 @@ -1148,13 +1142,12 @@ BattleScript_MoveUsedMustRecharge:: BattleScript_EffectRage:: attackcanceler - accuracycheck BattleScript_82D9487, ACC_CURR_MOVE + accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE setmoveeffect EFFECT_RAGE seteffectprimary setmoveeffect 0 goto BattleScript_HitFromAtkString - -BattleScript_82D9487:: +BattleScript_RageMiss:: setmoveeffect EFFECT_RAGE clearstatusfromeffect ATTACKER goto BattleScript_PrintMoveMissed @@ -1181,6 +1174,7 @@ BattleScript_EffectMetronome:: setbyte sANIM_TURN, 0x0 setbyte sANIM_TARGETS_HIT, 0x0 metronome + BattleScript_EffectLeechSeed:: attackcanceler attackstring @@ -1287,7 +1281,6 @@ BattleScript_EffectSnore:: attackstring ppreduce goto BattleScript_ButItFailed - BattleScript_82D95CE:: jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D95E2 printstring STRINGID_PKMNFASTASLEEP @@ -1338,23 +1331,21 @@ BattleScript_EffectSketch:: BattleScript_EffectSleepTalk:: attackcanceler - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D965E + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep attackstring ppreduce goto BattleScript_ButItFailed - -BattleScript_82D965E:: +BattleScript_SleepTalkIsAsleep:: printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER attackstring ppreduce orword gHitMarker, HITMARKER_NO_PPDEDUCT - sleeptalk_choose_move BattleScript_82D967E + trychoosesleeptalkmove BattleScript_SleepTalkUsingMove pause 0x40 goto BattleScript_ButItFailed - -BattleScript_82D967E:: +BattleScript_SleepTalkUsingMove:: attackanimation waitanimation setbyte sANIM_TURN, 0x0 @@ -1451,7 +1442,6 @@ BattleScript_82D973A:: jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D97AD decrementmultihit BattleScript_82D9718 goto BattleScript_82D97AD - BattleScript_82D9799:: pause 0x20 jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97AD @@ -1498,7 +1488,6 @@ BattleScript_EffectNightmare:: jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked goto BattleScript_ButItFailed - BattleScript_NightmareWorked:: attackanimation waitanimation @@ -1515,39 +1504,38 @@ BattleScript_EffectMinimize:: goto BattleScript_EffectStatUpAfterAtkCanceler BattleScript_EffectCurse:: - jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_82D98E5 + jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_GhostCurse attackcanceler attackstring ppreduce - jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_82D9892 - jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_82D9892 + jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_CurseTrySpeed + jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed -BattleScript_82D9892:: +BattleScript_CurseTrySpeed:: copybyte gBankTarget, gBankAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation setstatchanger SPEED, 1, TRUE - statbuffchange 0x41, BattleScript_82D98B8 + statbuffchange 0x41, BattleScript_CurseTryAttack printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82D98B8:: +BattleScript_CurseTryAttack:: setstatchanger ATK, 1, FALSE - statbuffchange 0x41, BattleScript_82D98CC + statbuffchange 0x41, BattleScript_CurseTryDefence printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82D98CC:: +BattleScript_CurseTryDefence:: setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_82D98E0 + statbuffchange 0x41, BattleScript_CurseEnd printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82D98E0:: +BattleScript_CurseEnd:: goto BattleScript_MoveEnd - -BattleScript_82D98E5:: - jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_82D98F6 +BattleScript_GhostCurse:: + jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse various ATTACKER, VARIOUS_GET_MOVE_TARGET -BattleScript_82D98F6:: +BattleScript_DoGhostCurse:: attackcanceler attackstring ppreduce @@ -1658,8 +1646,8 @@ BattleScript_EffectSwagger:: printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82D9A1E:: - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected setmoveeffect EFFECT_CONFUSION seteffectprimary goto BattleScript_MoveEnd @@ -1787,7 +1775,7 @@ BattleScript_82D9B41:: waitanimation printfromtable gMoveWeatherChangeStringIds waitmessage 0x40 - call BattleScript_82DB48D + call BattleScript_WeatherFormChanges goto BattleScript_MoveEnd BattleScript_EffectSunnyDay:: @@ -1943,15 +1931,14 @@ BattleScript_EffectStomp:: BattleScript_EffectSolarbeam:: jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_82D9D28 jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_82D9D28 - jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_82D9D50 + jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn BattleScript_82D9D28:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 setbyte sTWOTURN_STRINGID, 0x1 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd - -BattleScript_82D9D50:: +BattleScript_SolarbeamOnFirstTurn:: orword gHitMarker, HITMARKER_x8000000 setmoveeffect EFFECT_CHARGING | AFFECTS_USER seteffectprimary @@ -2060,11 +2047,11 @@ BattleScript_EffectDefenseCurl:: setdefensecurlbit setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82D9ED3 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CC7 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString attackanimation waitanimation BattleScript_82D9ED3:: - goto BattleScript_82D8CBF + goto BattleScript_StatUpDoAnim BattleScript_EffectSoftboiled:: attackcanceler @@ -2143,7 +2130,6 @@ BattleScript_EffectSpitUp:: typecalc adjustsetdamage goto BattleScript_HitFromAtkAnimation - BattleScript_SpitUpFail:: pause 0x20 printstring STRINGID_FAILEDTOSPITUP @@ -2208,8 +2194,8 @@ BattleScript_EffectFlatter:: printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA03A:: - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected setmoveeffect EFFECT_CONFUSION seteffectprimary goto BattleScript_MoveEnd @@ -2221,17 +2207,17 @@ BattleScript_EffectWillOWisp:: jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_BURN, BattleScript_82DA0BB jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected - jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_82DA0A1 + jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation setmoveeffect EFFECT_BURN seteffectprimary goto BattleScript_MoveEnd -BattleScript_82DA0A1:: +BattleScript_WaterVeilPrevents:: copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention @@ -2272,12 +2258,10 @@ BattleScript_82DA119:: BattleScript_82DA13C:: tryfaintmon ATTACKER, FALSE, NULL goto BattleScript_MoveEnd - BattleScript_82DA148:: printstring STRINGID_BUTNOEFFECT waitmessage 0x40 goto BattleScript_82DA13C - BattleScript_82DA153:: attackstring ppreduce @@ -2498,7 +2482,7 @@ BattleScript_EffectYawn:: jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_82DA378 jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_82DA378 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifcantmakeasleep BattleScript_ButItFailed setyawn BattleScript_ButItFailed @@ -2507,7 +2491,6 @@ BattleScript_EffectYawn:: printstring STRINGID_PKMNWASMADEDROWSY waitmessage 0x40 goto BattleScript_MoveEnd - BattleScript_82DA378:: copybyte sBANK, sFIELD_15 BattleScript_82DA382:: @@ -2958,23 +2941,22 @@ BattleScript_82DA92C:: end2 BattleScript_LocalTrainerBattleWon:: - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA943 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated printstring STRINGID_PLAYERDEFEATEDTRAINER1 - goto BattleScript_82DA946 - -BattleScript_82DA943:: + goto BattleScript_LocalBattleWonLoseTexts +BattleScript_LocalTwoTrainersDefeated:: printstring STRINGID_TWOENEMIESDEFEATED -BattleScript_82DA946:: +BattleScript_LocalBattleWonLoseTexts:: trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT - jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA963 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2LOSETEXT -BattleScript_82DA963:: +BattleScript_LocalBattleWonReward:: getmoneyreward printstring STRINGID_PLAYERGOTMONEY waitmessage 0x40 @@ -3297,7 +3279,7 @@ BattleScript_82DACFA:: waitmessage 0x40 end2 -BattleScript_82DAD01:: +BattleScript_SafeguardProtected:: pause 0x20 printstring STRINGID_PKMNUSEDSAFEGUARD waitmessage 0x40 @@ -3869,7 +3851,6 @@ BattleScript_82DB2D4:: waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL goto BattleScript_MoveEnd - BattleScript_82DB2FF:: return @@ -3993,16 +3974,16 @@ BattleScript_MoveEffectConfusion:: return BattleScript_MoveEffectRecoil33:: - jumpifhalfword EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_82DB407 - jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_82DB421 -BattleScript_82DB407:: + jumpifhalfword EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_DoRecoil33 + jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End +BattleScript_DoRecoil33:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_PKMNHITWITHRECOIL waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL -BattleScript_82DB421:: +BattleScript_Recoil33End:: return BattleScript_ItemSteal:: @@ -4016,7 +3997,7 @@ BattleScript_DrizzleActivates:: printstring STRINGID_PKMNMADEITRAIN waitstate playanimation BANK0, ANIM_RAIN_CONTINUES, NULL - call BattleScript_82DB48D + call BattleScript_WeatherFormChanges end3 BattleScript_SpeedBoostActivates:: @@ -4044,7 +4025,7 @@ BattleScript_SandstreamActivates:: printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM waitstate playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL - call BattleScript_82DB48D + call BattleScript_WeatherFormChanges end3 BattleScript_ShedSkinActivates:: @@ -4053,12 +4034,12 @@ BattleScript_ShedSkinActivates:: updatestatusicon ATTACKER end3 -BattleScript_82DB48D:: +BattleScript_WeatherFormChanges:: setbyte sBANK, 0x0 -BattleScript_82DB493:: +BattleScript_WeatherFormChangesLoop:: trycastformdatachange addbyte sBANK, 0x1 - jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_82DB493 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop return BattleScript_CastformChange:: @@ -4110,7 +4091,7 @@ BattleScript_DroughtActivates:: printstring STRINGID_PKMNSXINTENSIFIEDSUN waitstate playanimation BANK0, ANIM_SUN_CONTINUES, NULL - call BattleScript_82DB48D + call BattleScript_WeatherFormChanges end3 BattleScript_TookAttack:: @@ -4207,7 +4188,7 @@ BattleScript_FlinchPrevention:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82DB611:: +BattleScript_OwnTempoPrevents:: pause 0x20 printstring STRINGID_PKMNPREVENTSCONFUSIONWITH waitmessage 0x40 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 8b2af14aa..f54b0a6a0 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -9,19 +9,19 @@ .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD7E - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 - .4byte BattleScript_82DBD68 + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_SafariBallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow .align 2 gUnknown_082DBD3C:: @ 82DBD3C @@ -43,19 +43,19 @@ gBattlescriptsForSafariActions:: @ 82DBD58 .4byte BattleScript_ActionThrowPokeblock .4byte BattleScript_82DBEE3 -BattleScript_82DBD68:: - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_82DBD7A +BattleScript_BallThrow:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally printstring STRINGID_PLAYERUSEDITEM - pokeball_catch_calculation + handleballthrow -BattleScript_82DBD7A:: +BattleScript_BallThrowByWally:: printstring STRINGID_WALLYUSEDITEM - pokeball_catch_calculation + handleballthrow -BattleScript_82DBD7E:: +BattleScript_SafariBallThrow:: printstring STRINGID_PLAYERUSEDITEM updatestatusicon ATTACKER - pokeball_catch_calculation + handleballthrow BattleScript_SuccessBallThrow:: jumpifhalfword EQUAL, gLastUsedItem, 0x5, BattleScript_82DBD92 @@ -114,7 +114,7 @@ BattleScript_82DBE12:: BattleScript_82DBE1C:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse 0x1 + playse SE_KAIFUKU printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -131,7 +131,7 @@ BattleScript_82DBE1C:: BattleScript_82DBE4B:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse 0x1 + playse SE_KAIFUKU printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -145,7 +145,7 @@ BattleScript_82DBE4B:: BattleScript_82DBE6F:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse 0x1 + playse SE_KAIFUKU printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -158,7 +158,7 @@ BattleScript_82DBE6F:: BattleScript_82DBE91:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse 0x1 + playse SE_KAIFUKU printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -169,7 +169,7 @@ BattleScript_82DBE91:: finishaction BattleScript_RunByUsingItem:: - playse 0x11 + playse SE_NIGERU setbyte gBattleOutcome, RAN finishturn diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 85e1488d7..3c6d63e88 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -40,10 +40,10 @@ extern const u8 BattleScript_EffectSpecialAttackUp[]; extern const u8 BattleScript_EffectEvasionUp[]; extern const u8 BattleScript_EffectStatUp[]; extern const u8 BattleScript_EffectStatUpAfterAtkCanceler[]; -extern const u8 BattleScript_82D8CBD[]; -extern const u8 BattleScript_82D8CBF[]; -extern const u8 BattleScript_82D8CC7[]; -extern const u8 BattleScript_82D8CCF[]; +extern const u8 BattleScript_StatUpAttackAnim[]; +extern const u8 BattleScript_StatUpDoAnim[]; +extern const u8 BattleScript_StatUpPrintString[]; +extern const u8 BattleScript_StatUpEnd[]; extern const u8 BattleScript_StatUp[]; extern const u8 BattleScript_EffectAttackDown[]; extern const u8 BattleScript_EffectDefenseDown[]; @@ -51,8 +51,8 @@ extern const u8 BattleScript_EffectSpeedDown[]; extern const u8 BattleScript_EffectAccuracyDown[]; extern const u8 BattleScript_EffectEvasionDown[]; extern const u8 BattleScript_EffectStatDown[]; -extern const u8 BattleScript_82D8D4E[]; -extern const u8 BattleScript_82D8D58[]; +extern const u8 BattleScript_StatDownDoAnim[]; +extern const u8 BattleScript_StatDownPrintString[]; extern const u8 BattleScript_82D8D60[]; extern const u8 BattleScript_StatDown[]; extern const u8 BattleScript_EffectHaze[]; @@ -71,7 +71,7 @@ extern const u8 BattleScript_EffectFlinchHit[]; extern const u8 BattleScript_EffectRestoreHp[]; extern const u8 BattleScript_EffectToxic[]; extern const u8 BattleScript_AlreadyPoisoned[]; -extern const u8 BattleScript_82D8F63[]; +extern const u8 BattleScript_ImmunityProtected[]; extern const u8 BattleScript_EffectPayDay[]; extern const u8 BattleScript_EffectLightScreen[]; extern const u8 BattleScript_EffectTriAttack[]; @@ -110,7 +110,7 @@ extern const u8 BattleScript_82D928C[]; extern const u8 BattleScript_EffectPoison[]; extern const u8 BattleScript_EffectParalyze[]; extern const u8 BattleScript_82D9351[]; -extern const u8 BattleScript_82D9362[]; +extern const u8 BattleScript_LimberProtected[]; extern const u8 BattleScript_EffectAttackDownHit[]; extern const u8 BattleScript_EffectDefenseDownHit[]; extern const u8 BattleScript_EffectSpeedDownHit[]; @@ -127,7 +127,7 @@ extern const u8 BattleScript_82D943E[]; extern const u8 BattleScript_EffectRecharge[]; extern const u8 BattleScript_MoveUsedMustRecharge[]; extern const u8 BattleScript_EffectRage[]; -extern const u8 BattleScript_82D9487[]; +extern const u8 BattleScript_RageMiss[]; extern const u8 BattleScript_EffectMimic[]; extern const u8 BattleScript_EffectMetronome[]; extern const u8 BattleScript_EffectLeechSeed[]; @@ -146,8 +146,8 @@ extern const u8 BattleScript_EffectConversion2[]; extern const u8 BattleScript_EffectLockOn[]; extern const u8 BattleScript_EffectSketch[]; extern const u8 BattleScript_EffectSleepTalk[]; -extern const u8 BattleScript_82D965E[]; -extern const u8 BattleScript_82D967E[]; +extern const u8 BattleScript_SleepTalkIsAsleep[]; +extern const u8 BattleScript_SleepTalkUsingMove[]; extern const u8 BattleScript_EffectDestinyBond[]; extern const u8 BattleScript_EffectFlail[]; extern const u8 BattleScript_EffectSpite[]; @@ -166,12 +166,12 @@ extern const u8 BattleScript_EffectNightmare[]; extern const u8 BattleScript_NightmareWorked[]; extern const u8 BattleScript_EffectMinimize[]; extern const u8 BattleScript_EffectCurse[]; -extern const u8 BattleScript_82D9892[]; -extern const u8 BattleScript_82D98B8[]; -extern const u8 BattleScript_82D98CC[]; -extern const u8 BattleScript_82D98E0[]; -extern const u8 BattleScript_82D98E5[]; -extern const u8 BattleScript_82D98F6[]; +extern const u8 BattleScript_CurseTrySpeed[]; +extern const u8 BattleScript_CurseTryAttack[]; +extern const u8 BattleScript_CurseTryDefence[]; +extern const u8 BattleScript_CurseEnd[]; +extern const u8 BattleScript_GhostCurse[]; +extern const u8 BattleScript_DoGhostCurse[]; extern const u8 BattleScript_EffectProtect[]; extern const u8 BattleScript_EffectSpikes[]; extern const u8 BattleScript_EffectForesight[]; @@ -221,7 +221,7 @@ extern const u8 BattleScript_EffectGust[]; extern const u8 BattleScript_EffectStomp[]; extern const u8 BattleScript_EffectSolarbeam[]; extern const u8 BattleScript_82D9D28[]; -extern const u8 BattleScript_82D9D50[]; +extern const u8 BattleScript_SolarbeamOnFirstTurn[]; extern const u8 BattleScript_EffectThunder[]; extern const u8 BattleScript_EffectTeleport[]; extern const u8 BattleScript_EffectBeatUp[]; @@ -259,7 +259,7 @@ extern const u8 BattleScript_EffectTorment[]; extern const u8 BattleScript_EffectFlatter[]; extern const u8 BattleScript_82DA03A[]; extern const u8 BattleScript_EffectWillOWisp[]; -extern const u8 BattleScript_82DA0A1[]; +extern const u8 BattleScript_WaterVeilPrevents[]; extern const u8 BattleScript_82DA0BB[]; extern const u8 BattleScript_EffectMemento[]; extern const u8 BattleScript_82DA119[]; @@ -352,9 +352,9 @@ extern const u8 BattleScript_82DA8FC[]; extern const u8 BattleScript_82DA908[]; extern const u8 BattleScript_82DA92C[]; extern const u8 BattleScript_LocalTrainerBattleWon[]; -extern const u8 BattleScript_82DA943[]; -extern const u8 BattleScript_82DA946[]; -extern const u8 BattleScript_82DA963[]; +extern const u8 BattleScript_LocalTwoTrainersDefeated[]; +extern const u8 BattleScript_LocalBattleWonLoseTexts[]; +extern const u8 BattleScript_LocalBattleWonReward[]; extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; extern const u8 BattleScript_LocalBattleLost[]; extern const u8 BattleScript_82DA9B1[]; @@ -406,7 +406,7 @@ extern const u8 BattleScript_82DACD2[]; extern const u8 BattleScript_82DACE0[]; extern const u8 BattleScript_82DACE7[]; extern const u8 BattleScript_82DACFA[]; -extern const u8 BattleScript_82DAD01[]; +extern const u8 BattleScript_SafeguardProtected[]; extern const u8 BattleScript_82DAD0B[]; extern const u8 BattleScript_LeechSeedTurnDrain[]; extern const u8 BattleScript_82DAD47[]; @@ -520,8 +520,8 @@ extern const u8 BattleScript_MoveEffectPayDay[]; extern const u8 BattleScript_MoveEffectWrap[]; extern const u8 BattleScript_MoveEffectConfusion[]; extern const u8 BattleScript_MoveEffectRecoil33[]; -extern const u8 BattleScript_82DB407[]; -extern const u8 BattleScript_82DB421[]; +extern const u8 BattleScript_DoRecoil33[]; +extern const u8 BattleScript_Recoil33End[]; extern const u8 BattleScript_ItemSteal[]; extern const u8 BattleScript_DrizzleActivates[]; extern const u8 BattleScript_SpeedBoostActivates[]; @@ -529,8 +529,8 @@ extern const u8 BattleScript_TraceActivates[]; extern const u8 BattleScript_RainDishActivates[]; extern const u8 BattleScript_SandstreamActivates[]; extern const u8 BattleScript_ShedSkinActivates[]; -extern const u8 BattleScript_82DB48D[]; -extern const u8 BattleScript_82DB493[]; +extern const u8 BattleScript_WeatherFormChanges[]; +extern const u8 BattleScript_WeatherFormChangesLoop[]; extern const u8 BattleScript_CastformChange[]; extern const u8 BattleScript_82DB4AF[]; extern const u8 BattleScript_82DB4B8[]; @@ -557,7 +557,7 @@ extern const u8 BattleScript_PRLZPrevention[]; extern const u8 BattleScript_PSNPrevention[]; extern const u8 BattleScript_ObliviousPreventsAttraction[]; extern const u8 BattleScript_FlinchPrevention[]; -extern const u8 BattleScript_82DB611[]; +extern const u8 BattleScript_OwnTempoPrevents[]; extern const u8 BattleScript_SoundproofProtected[]; extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; extern const u8 BattleScript_StickyHoldActivates[]; @@ -614,9 +614,9 @@ extern const u8 BattleScript_82DB992[]; extern const u8 BattleScript_82DB9BA[]; extern const u8 BattleScript_82DB9C1[]; extern const u8 BattleScript_82DB9C8[]; -extern const u8 BattleScript_82DBD68[]; -extern const u8 BattleScript_82DBD7A[]; -extern const u8 BattleScript_82DBD7E[]; +extern const u8 BattleScript_BallThrow[]; +extern const u8 BattleScript_BallThrowByWally[]; +extern const u8 BattleScript_SafariBallThrow[]; extern const u8 BattleScript_SuccessBallThrow[]; extern const u8 BattleScript_82DBD92[]; extern const u8 BattleScript_82DBDA5[]; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ded0629f2..dcc7c783c 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -350,7 +350,7 @@ static void atkA5_painsplitdmgcalc(void); static void atkA6_settypetorandomresistance(void); static void atkA7_setalwayshitflag(void); static void atkA8_copymovepermanently(void); -static void atkA9_sleeptalk_choose_move(void); +static void atkA9_trychoosesleeptalkmove(void); static void atkAA_setdestinybond(void); static void atkAB_trysetdestinybondtohappen(void); static void atkAC_remaininghptopower(void); @@ -420,7 +420,7 @@ static void atkEB_settypetoterrain(void); static void atkEC_pursuitrelated(void); static void atkEF_snatchsetbanks(void); static void atkEE_removelightscreenreflect(void); -static void atkEF_pokeball_catch_calculation(void); +static void atkEF_handleballthrow(void); static void atkF0_givecaughtmon(void); static void atkF1_trysetcaughtmondexflags(void); static void atkF2_displaydexinfo(void); @@ -602,7 +602,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkA6_settypetorandomresistance, atkA7_setalwayshitflag, atkA8_copymovepermanently, - atkA9_sleeptalk_choose_move, + atkA9_trychoosesleeptalkmove, atkAA_setdestinybond, atkAB_trysetdestinybondtohappen, atkAC_remaininghptopower, @@ -672,7 +672,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkEC_pursuitrelated, atkEF_snatchsetbanks, atkEE_removelightscreenreflect, - atkEF_pokeball_catch_calculation, + atkEF_handleballthrow, atkF0_givecaughtmon, atkF1_trysetcaughtmondexflags, atkF2_displaydexinfo, @@ -8819,7 +8819,7 @@ static u8 AttacksThisTurn(u8 bank, u16 move) // Note: returns 1 if it's a chargi return 2; } -static void atkA9_sleeptalk_choose_move(void) +static void atkA9_trychoosesleeptalkmove(void) { s32 i; u8 unusableMovesBits = 0; @@ -10597,7 +10597,7 @@ static void atkEE_removelightscreenreflect(void) // brick break gBattlescriptCurrInstr++; } -static void atkEF_pokeball_catch_calculation(void) +static void atkEF_handleballthrow(void) { u8 ballMultiplier = 0; -- cgit v1.2.3 From cc572f7c00b7a07161b5298868bcb495b7c87b61 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 11:55:17 +0100 Subject: clear battle code and battlescripts --- asm/macros/battle_script.inc | 18 ++++++- data/battle_scripts_1.s | 80 ++++++++++++++-------------- include/battle.h | 3 +- include/battle_message.h | 8 +++ src/battle_script_commands.c | 28 +++++----- src/battle_util.c | 122 ++++++++++++++++--------------------------- 6 files changed, 125 insertions(+), 134 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 0d88f545d..07d0bacdf 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -163,7 +163,7 @@ .4byte \param4 .endm - .macro jumpifstatus3 bank, status3, param2, param3 + .macro jumpifstatus3condition bank, status3, param2, param3 .byte 0x21 .byte \bank .4byte \status3 @@ -1253,3 +1253,19 @@ .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 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 991e8fde6..75a879760 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -246,8 +246,8 @@ BattleScript_EffectUnused83:: BattleScript_EffectUnused8d:: BattleScript_EffectUnusedA3:: BattleScript_EffectHit:: - jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SURF, BattleScript_HitFromAtkCanceler - jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_HitFromAtkCanceler + jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 BattleScript_HitFromAtkCanceler:: @@ -507,7 +507,7 @@ BattleScript_EffectStatUp:: BattleScript_EffectStatUpAfterAtkCanceler:: attackstring ppreduce - statbuffchange 0x41, BattleScript_StatUpEnd + statbuffchange AFFECTS_USER | 0x1, BattleScript_StatUpEnd jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim pause 0x20 goto BattleScript_StatUpPrintString @@ -611,7 +611,7 @@ BattleScript_EffectRoar:: attackstring ppreduce jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_82DB5B9 - jumpifstatus3 TARGET, STATUS3_ROOTED, 0x0, BattleScript_82DB109 + jumpifstatus3 TARGET, STATUS3_ROOTED, BattleScript_82DB109 accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed @@ -808,7 +808,7 @@ BattleScript_82D9040:: setbyte sANIM_TURN, 0x1 clearstatusfromeffect ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT - jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck + jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck setmoveeffect EFFECT_FLINCH goto BattleScript_HitFromAccCheck @@ -848,8 +848,8 @@ BattleScript_EffectDragonRage:: goto BattleScript_HitFromAtkAnimation BattleScript_EffectTrap:: - jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_WHIRLPOOL, BattleScript_82D9105 - jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_82D9105 + jumpifnotmove MOVE_WHIRLPOOL, BattleScript_82D9105 + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_82D9105 orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 BattleScript_82D9105:: @@ -917,7 +917,7 @@ BattleScript_EffectFocusEnergy:: BattleScript_EffectRecoil:: setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN - jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_EffectHit + jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit incrementgamestat 0x1B goto BattleScript_EffectHit @@ -1389,7 +1389,7 @@ BattleScript_EffectHealBell:: waitanimation printfromtable gPartyStatusHealStringIds waitmessage 0x40 - jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_HEAL_BELL, BattleScript_82D96FE + jumpifnotmove MOVE_HEAL_BELL, BattleScript_82D96FE jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D96ED printstring STRINGID_PKMNSXBLOCKSY waitmessage 0x40 @@ -1517,17 +1517,17 @@ BattleScript_CurseTrySpeed:: attackanimation waitanimation setstatchanger SPEED, 1, TRUE - statbuffchange 0x41, BattleScript_CurseTryAttack + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryAttack printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_CurseTryAttack:: setstatchanger ATK, 1, FALSE - statbuffchange 0x41, BattleScript_CurseTryDefence + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryDefence printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_CurseTryDefence:: setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_CurseEnd + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseEnd printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_CurseEnd:: @@ -1838,7 +1838,7 @@ BattleScript_EffectSkullBash:: setbyte sTWOTURN_STRINGID, 0x2 call BattleScriptFirstChargingTurn setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_82D9C16 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82D9C16 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9C16 setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 @@ -1848,7 +1848,7 @@ BattleScript_82D9C16:: goto BattleScript_MoveEnd BattleScript_EffectTwister:: - jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_82D9C35 + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_82D9C35 orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 BattleScript_82D9C35:: @@ -1862,7 +1862,7 @@ BattleScript_EffectEarthquake:: selectfirstvalidtarget BattleScript_82D9C44:: movevaluescleanup - jumpifstatus3 TARGET, STATUS3_UNDERGROUND, 0x1, BattleScript_82D9C64 + jumpifnostatus3 TARGET, STATUS3_UNDERGROUND, BattleScript_82D9C64 orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_82D9C73 @@ -1918,13 +1918,13 @@ BattleScript_EffectFutureSight:: goto BattleScript_MoveEnd BattleScript_EffectGust:: - jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_EffectHit + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_EffectHit orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_EffectHit BattleScript_EffectStomp:: - jumpifstatus3 TARGET, STATUS3_MINIMIZED, 0x1, BattleScript_82D9C35 + jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_82D9C35 setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_82D9C35 @@ -2002,9 +2002,9 @@ BattleScript_BeatUpEnd:: BattleScript_EffectSemiInvulnerable:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable - jumpifhalfword EQUAL, gCurrentMove, MOVE_FLY, BattleScript_FirstTurnFly - jumpifhalfword EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_FirstTurnDive - jumpifhalfword EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_FirstTurnBounce + jumpifmove MOVE_FLY, BattleScript_FirstTurnFly + jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive + jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce setbyte sTWOTURN_STRINGID, 0x5 goto BattleScript_FirstTurnSemiInvulnerable @@ -2029,7 +2029,7 @@ BattleScript_SecondTurnSemiInvulnerable:: setbyte sANIM_TURN, 0x1 clearstatusfromeffect ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT - jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9EA3 + jumpifnotmove MOVE_BOUNCE, BattleScript_82D9EA3 setmoveeffect EFFECT_PARALYSIS BattleScript_82D9EA3:: accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE @@ -2046,7 +2046,7 @@ BattleScript_EffectDefenseCurl:: ppreduce setdefensecurlbit setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_82D9ED3 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82D9ED3 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString attackanimation waitanimation @@ -2724,13 +2724,13 @@ BattleScript_82DA5F8:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x24, 0x0 setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_82DA623 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA623 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA623 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA623:: setstatchanger SPDEF, 1, FALSE - statbuffchange 0x41, BattleScript_82DA642 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA642 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA642 printfromtable gStatUpStringIds waitmessage 0x40 @@ -2753,13 +2753,13 @@ BattleScript_82DA66A:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x6, 0x0 setstatchanger ATK, 1, FALSE - statbuffchange 0x41, BattleScript_82DA695 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA695 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA695 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA695:: setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_82DA6B4 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA6B4 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6B4 printfromtable gStatUpStringIds waitmessage 0x40 @@ -2778,13 +2778,13 @@ BattleScript_82DA6CE:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x30, 0x0 setstatchanger SPATK, 1, FALSE - statbuffchange 0x41, BattleScript_82DA6F9 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA6F9 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6F9 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA6F9:: setstatchanger SPDEF, 1, FALSE - statbuffchange 0x41, BattleScript_82DA718 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA718 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA718 printfromtable gStatUpStringIds waitmessage 0x40 @@ -2810,13 +2810,13 @@ BattleScript_82DA746:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0xA, 0x0 setstatchanger ATK, 1, FALSE - statbuffchange 0x41, BattleScript_82DA771 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA771 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA771 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DA771:: setstatchanger SPEED, 1, FALSE - statbuffchange 0x41, BattleScript_82DA790 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA790 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA790 printfromtable gStatUpStringIds waitmessage 0x40 @@ -3493,27 +3493,27 @@ BattleScript_82DAF54:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x3E, 0x0 setstatchanger ATK, 1, FALSE - statbuffchange 0x41, BattleScript_82DAF72 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAF72 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAF72:: setstatchanger DEF, 1, FALSE - statbuffchange 0x41, BattleScript_82DAF86 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAF86 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAF86:: setstatchanger SPEED, 1, FALSE - statbuffchange 0x41, BattleScript_82DAF9A + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAF9A printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAF9A:: setstatchanger SPATK, 1, FALSE - statbuffchange 0x41, BattleScript_82DAFAE + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAFAE printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAFAE:: setstatchanger SPDEF, 1, FALSE - statbuffchange 0x41, BattleScript_82DAFC2 + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAFC2 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_82DAFC2:: @@ -3664,14 +3664,14 @@ BattleScript_AtkDefDown:: playstatchangeanimation ATTACKER, 0x6, 0xD playstatchangeanimation ATTACKER, 0x2, 0x9 setstatchanger ATK, 1, TRUE - statbuffchange 0xC1, BattleScript_82DB144 + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB144 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_82DB144:: playstatchangeanimation ATTACKER, 0x4, 0x9 setstatchanger DEF, 1, TRUE - statbuffchange 0xC1, BattleScript_82DB167 + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB167 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 printfromtable gStatDownStringIds waitmessage 0x40 @@ -3737,7 +3737,7 @@ BattleScript_SAtkDown2:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x10, 0xB setstatchanger SPATK, 2, TRUE - statbuffchange 0xC1, BattleScript_82DB1FE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB1FE jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE printfromtable gStatDownStringIds waitmessage 0x40 @@ -3974,7 +3974,7 @@ BattleScript_MoveEffectConfusion:: return BattleScript_MoveEffectRecoil33:: - jumpifhalfword EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_DoRecoil33 + jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33 jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End BattleScript_DoRecoil33:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 @@ -4450,7 +4450,7 @@ BattleScript_BerryConfuseHealEnd2:: BattleScript_BerryStatRaiseEnd2:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL - statbuffchange 0x41, BattleScript_82DB85B + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DB85B BattleScript_82DB85B:: setbyte cMULTISTRING_CHOOSER, 0x4 call BattleScript_StatUp diff --git a/include/battle.h b/include/battle.h index 5e37ef77c..e65833b4f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -837,9 +837,10 @@ extern struct BattleStruct* gBattleStruct; #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit -#define SET_STAT_BUFF_ID(n)((n & 0xF)) #define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0)) +#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7)) + struct BattleScripting { s32 painSplitHp; diff --git a/include/battle_message.h b/include/battle_message.h index 3f9b38cad..8b724a316 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -74,6 +74,14 @@ #define B_BUFF_PLACEHOLDER_BEGIN 0xFD #define B_BUFF_EOS 0xFF +#define PREPARE_FLAVOUR_BUFFER(textVar, flavourId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NEGATIVE_FLAVOUR; \ + textVar[2] = flavourId; \ + textVar[3] = B_BUFF_EOS; \ +} + #define PREPARE_STAT_BUFFER(textVar, statId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index dcc7c783c..c864c5a4f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -214,7 +214,7 @@ static void atk1D_jumpifstatus2(void); static void atk1E_jumpifability(void); static void atk1F_jumpifsideaffecting(void); static void atk20_jumpifstat(void); -static void atk21_jumpifstatus3(void); +static void atk21_jumpifstatus3condition(void); static void atk22_jumpiftype(void); static void atk23_getexp(void); static void atk24(void); @@ -466,7 +466,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk1E_jumpifability, atk1F_jumpifsideaffecting, atk20_jumpifstat, - atk21_jumpifstatus3, + atk21_jumpifstatus3condition, atk22_jumpiftype, atk23_getexp, atk24, @@ -3314,10 +3314,10 @@ static void atk20_jumpifstat(void) gBattlescriptCurrInstr += 9; } -static void atk21_jumpifstatus3(void) +static void atk21_jumpifstatus3condition(void) { u32 flags; - const u8* jumpPtr; + const u8 *jumpPtr; gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2); @@ -7557,9 +7557,9 @@ static void atk88_negativedamage(void) gBattlescriptCurrInstr++; } -static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) +static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) { - bool8 certain = 0; + bool8 certain = FALSE; bool8 notProtectAffected = FALSE; u32 index; @@ -7667,15 +7667,15 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) if (statValue == -2) { gBattleTextBuff2[1] = B_BUFF_STRING; - gBattleTextBuff2[2] = 0xD3; // harshly - gBattleTextBuff2[3] = 0xD3 >> 8; + gBattleTextBuff2[2] = STRINGID_STATHARSHLY; + gBattleTextBuff2[3] = STRINGID_STATHARSHLY >> 8; index = 4; } gBattleTextBuff2[index] = B_BUFF_STRING; index++; - gBattleTextBuff2[index] = 0xD4; // fell + gBattleTextBuff2[index] = STRINGID_STATFELL; index++; - gBattleTextBuff2[index] = 0xD4 >> 8; + gBattleTextBuff2[index] = STRINGID_STATFELL >> 8; index++; gBattleTextBuff2[index] = B_BUFF_EOS; @@ -7694,15 +7694,15 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) if (statValue == 2) { gBattleTextBuff2[1] = B_BUFF_STRING; - gBattleTextBuff2[2] = 0xD1; // sharply - gBattleTextBuff2[3] = 0xD1 >> 8; + gBattleTextBuff2[2] = STRINGID_STATSHARPLY; + gBattleTextBuff2[3] = STRINGID_STATSHARPLY >> 8; index = 4; } gBattleTextBuff2[index] = B_BUFF_STRING; index++; - gBattleTextBuff2[index] = 0xD2; // rose + gBattleTextBuff2[index] = STRINGID_STATROSE; index++; - gBattleTextBuff2[index] = 0xD2 >> 8; + gBattleTextBuff2[index] = STRINGID_STATROSE >> 8; index++; gBattleTextBuff2[index] = B_BUFF_EOS; diff --git a/src/battle_util.c b/src/battle_util.c index 0ec98d125..6164565bd 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -14,6 +14,7 @@ #include "text.h" #include "string_util.h" #include "battle_message.h" +#include "battle_string_ids.h" #include "battle_ai_script_commands.h" #include "battle_controllers.h" #include "event_data.h" @@ -2615,7 +2616,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleStruct->moneyMultiplier = 2; break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) + for (i = 0; i < BATTLE_STATS_NO; i++) { if (gBattleMons[bank].statStages[i] < 6) { @@ -2652,19 +2653,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_RESTORE_PP: if (!moveTurn) { - struct Pokemon* poke; + struct Pokemon *mon; u8 ppBonuses; u16 move; if (GetBankSide(bank) == SIDE_PLAYER) - poke = &gPlayerParty[gBattlePartyID[bank]]; + mon = &gPlayerParty[gBattlePartyID[bank]]; else - poke = &gEnemyParty[gBattlePartyID[bank]]; + mon = &gEnemyParty[gBattlePartyID[bank]]; for (i = 0; i < 4; i++) { - move = GetMonData(poke, MON_DATA_MOVE1 + i); - changedPP = GetMonData(poke, MON_DATA_PP1 + i); - ppBonuses = GetMonData(poke, MON_DATA_PP_BONUSES); + move = GetMonData(mon, MON_DATA_MOVE1 + i); + changedPP = GetMonData(mon, MON_DATA_PP1 + i); + ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); if (move && changedPP == 0) break; } @@ -2675,11 +2676,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) changedPP = maxPP; else changedPP = changedPP + bankQuality; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = move; - gBattleTextBuff1[3] = move >> 8; - gBattleTextBuff1[4] = 0xFF; + + PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); + BattleScriptExecute(BattleScript_BerryPPHealEnd2); EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); MarkBufferBankForExecution(gActiveBank); @@ -2688,7 +2687,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) + for (i = 0; i < BATTLE_STATS_NO; i++) { if (gBattleMons[bank].statStages[i] < 6) { @@ -2722,10 +2721,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_SPICY: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SPICY; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOUR_BUFFER(gBattleTextBuff1, FLAVOR_SPICY); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2742,10 +2739,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_DRY: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_DRY; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOUR_BUFFER(gBattleTextBuff1, FLAVOR_DRY); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2762,10 +2757,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_SWEET: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SWEET; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOUR_BUFFER(gBattleTextBuff1, FLAVOR_SWEET); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2782,10 +2775,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_BITTER: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_BITTER; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOUR_BUFFER(gBattleTextBuff1, FLAVOR_BITTER); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2802,10 +2793,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_SOUR: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SOUR; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOUR_BUFFER(gBattleTextBuff1, FLAVOR_SOUR); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2823,19 +2812,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_ATTACK_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_ATK] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_ATK; - gBattleTextBuff1[3] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 0; - gBattleTextBuff2[2] = 0xD2; - gBattleTextBuff2[3] = 0xD2 >> 8; - gBattleTextBuff2[4] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_ATK); + PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_ATK; + SET_STATCHANGER(STAT_STAGE_ATK, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_ATK; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2845,13 +2826,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_DEFENSE_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_DEF] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_DEF; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_DEF); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_DEF; + SET_STATCHANGER(STAT_STAGE_DEF, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_DEF; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2861,13 +2839,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_SPEED_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPEED; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_SPEED); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPEED; + SET_STATCHANGER(STAT_STAGE_SPEED, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPEED; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2877,13 +2852,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_SP_ATTACK_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPATK] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPATK; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_SPATK); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPATK; + SET_STATCHANGER(STAT_STAGE_SPATK, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPATK; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2893,13 +2865,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_SP_DEFENSE_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPDEF] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPDEF; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_SPDEF); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPDEF; + SET_STATCHANGER(STAT_STAGE_SPDEF, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPDEF; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2929,22 +2898,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) i = Random() % 5; } while (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] == 0xC); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = i + 1; - gBattleTextBuff1[3] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 0; - gBattleTextBuff2[2] = 0xD1; - gBattleTextBuff2[3] = 0xD1 >> 8; - gBattleTextBuff2[4] = 0; - gBattleTextBuff2[5] = 0xD2; - gBattleTextBuff2[6] = 0xD2 >> 8; + PREPARE_STAT_BUFFER(gBattleTextBuff1, i + 1); + + gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff2[1] = B_BUFF_STRING; + gBattleTextBuff2[2] = STRINGID_STATSHARPLY; + gBattleTextBuff2[3] = STRINGID_STATSHARPLY >> 8; + gBattleTextBuff2[4] = B_BUFF_STRING; + gBattleTextBuff2[5] = STRINGID_STATROSE; + gBattleTextBuff2[6] = STRINGID_STATROSE >> 8; gBattleTextBuff2[7] = EOS; gEffectBank = bank; - gBattleScripting.statChanger = 0x21 + i; + SET_STATCHANGER(i + 1, 2, FALSE); gBattleScripting.animArg1 = 0x21 + i + 6; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -3197,7 +3163,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) + for (i = 0; i < BATTLE_STATS_NO; i++) { if (gBattleMons[bank].statStages[i] < 6) { -- cgit v1.2.3 From 9886eeb5d8b0a19e31537fbc3e1245f20577d513 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 13:26:58 +0100 Subject: fix, rename, label battle labels and battlescripts --- asm/macros/battle_script.inc | 9 +++ constants/battle_script_constants.inc | 1 - data/battle_scripts_1.s | 66 ++++++++++---------- include/battle.h | 10 +--- include/battle_scripts.h | 18 +++--- src/battle_2.c | 44 +++++++------- src/battle_ai_switch_items.c | 32 +++++----- src/battle_controllers.c | 6 +- src/battle_script_commands.c | 82 ++++++++++++------------- src/battle_util.c | 110 +++++++++++++--------------------- sym_ewram.txt | 6 +- 11 files changed, 177 insertions(+), 207 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 07d0bacdf..b1961c4a9 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1231,6 +1231,11 @@ 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 @@ -1242,6 +1247,10 @@ copyarray \dst, \src, 0x1 .endm + .macro copyhword dst, src + copyarray \dst, \src, 0x2 + .endm + .macro copyword dst, src copyarray \dst, \src, 0x4 .endm diff --git a/constants/battle_script_constants.inc b/constants/battle_script_constants.inc index 07b7f24f8..fb0c39ab9 100644 --- a/constants/battle_script_constants.inc +++ b/constants/battle_script_constants.inc @@ -145,7 +145,6 @@ .equiv sANIM_ARG1, gBattleScripting + 0x10 .equiv sANIM_ARG2, gBattleScripting + 0x11 .equiv sTRIPLE_KICK_POWER, gBattleScripting + 0x12 - .equiv sFIELD_13, gBattleScripting + 0x13 .equiv sMOVEEND_STATE, gBattleScripting + 0x14 .equiv sFIELD_15, gBattleScripting + 0x15 .equiv sFIELD_16, gBattleScripting + 0x16 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 75a879760..1da4aec0b 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -299,8 +299,8 @@ BattleScript_EffectSleep:: attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8AB0 - jumpifcantmakeasleep BattleScript_82D8ACF + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep + jumpifcantmakeasleep BattleScript_CantMakeAsleep jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected @@ -310,20 +310,20 @@ BattleScript_EffectSleep:: seteffectprimary goto BattleScript_MoveEnd -BattleScript_82D8AB0:: +BattleScript_AlreadyAsleep:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYASLEEP waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D8AC1:: +BattleScript_WasntAffected:: pause 0x20 printstring STRINGID_PKMNWASNTAFFECTED waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D8ACF:: +BattleScript_CantMakeAsleep:: pause 0x20 printfromtable gUproarAwakeStringIds waitmessage 0x40 @@ -446,7 +446,7 @@ BattleScript_82D8C0E:: attackstring ppreduce waitmessage 0x40 - goto BattleScript_82D8AC1 + goto BattleScript_WasntAffected BattleScript_82D8C18:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring @@ -628,7 +628,7 @@ BattleScript_EffectMultiHit:: BattleScript_82D8DFD:: jumpifhasnohp ATTACKER, BattleScript_82D8E93 jumpifhasnohp TARGET, BattleScript_82D8E74 - jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D8E1F + jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_82D8E1F jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 BattleScript_82D8E1F:: movevaluescleanup @@ -655,7 +655,6 @@ BattleScript_82D8E1F:: jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D8E74 decrementmultihit BattleScript_82D8DFD goto BattleScript_82D8E74 - BattleScript_82D8E71:: pause 0x20 BattleScript_82D8E74:: @@ -927,7 +926,7 @@ BattleScript_EffectConfuse:: ppreduce jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82D9201 + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation @@ -938,7 +937,7 @@ BattleScript_EffectConfuse:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D9201:: +BattleScript_AlreadyConfused:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED @@ -1033,7 +1032,7 @@ BattleScript_EffectParalyze:: jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82D9351 + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected @@ -1045,7 +1044,7 @@ BattleScript_EffectParalyze:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D9351:: +BattleScript_AlreadyParalyzed:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNISALREADYPARALYZED @@ -1282,7 +1281,7 @@ BattleScript_EffectSnore:: ppreduce goto BattleScript_ButItFailed BattleScript_82D95CE:: - jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D95E2 + jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_82D95E2 printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER @@ -1406,26 +1405,25 @@ BattleScript_EffectTripleKick:: attackcanceler attackstring ppreduce - setbyte sTRIPLE_KICK_POWER, 0x0 - setbyte sFIELD_13, 0x0 + sethword sTRIPLE_KICK_POWER, 0x0 initmultihitstring setmultihit 0x3 -BattleScript_82D9718:: - jumpifhasnohp ATTACKER, BattleScript_82D97D7 - jumpifhasnohp TARGET, BattleScript_82D9799 - jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D973A - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D9799 +BattleScript_TripleKickLoop:: + jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd + jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits + jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_82D973A + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits BattleScript_82D973A:: - accuracycheck BattleScript_82D9799, ACC_CURR_MOVE + accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE movevaluescleanup - addbyte sTRIPLE_KICK_POWER, 0xA + addbyte sTRIPLE_KICK_POWER, 10 addbyte sMULTIHIT_STRING + 4, 0x1 - copyarray gDynamicBasePower, sTRIPLE_KICK_POWER, 0x2 + copyhword gDynamicBasePower, sTRIPLE_KICK_POWER critcalc damagecalc typecalc adjustnormaldamage - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9799 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_TripleKickNoMoreHits attackanimation waitanimation effectivenesssound @@ -1439,22 +1437,22 @@ BattleScript_82D973A:: waitmessage 0x1 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D97AD - decrementmultihit BattleScript_82D9718 - goto BattleScript_82D97AD -BattleScript_82D9799:: + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings + decrementmultihit BattleScript_TripleKickLoop + goto BattleScript_TripleKickPrintStrings +BattleScript_TripleKickNoMoreHits:: pause 0x20 - jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97AD + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings bicbyte gBattleMoveFlags, MOVESTATUS_MISSED -BattleScript_82D97AD:: +BattleScript_TripleKickPrintStrings:: resultmessage waitmessage 0x40 - jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97D7 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_82D97D7 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 printstring STRINGID_HITXTIMES waitmessage 0x40 -BattleScript_82D97D7:: +BattleScript_TripleKickEnd:: seteffectwithchance tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0xE @@ -3545,7 +3543,6 @@ BattleScript_82DAFE4:: jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB001 accuracycheck BattleScript_82DB058, MOVE_FUTURE_SIGHT goto BattleScript_82DB008 - BattleScript_82DB001:: accuracycheck BattleScript_82DB058, MOVE_DOOM_DESIRE BattleScript_82DB008:: @@ -3553,7 +3550,6 @@ BattleScript_82DB008:: jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB020 playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL goto BattleScript_82DB027 - BattleScript_82DB020:: playanimation ATTACKER, ANIM_x13, NULL BattleScript_82DB027:: diff --git a/include/battle.h b/include/battle.h index e65833b4f..c172cb0f6 100644 --- a/include/battle.h +++ b/include/battle.h @@ -706,13 +706,6 @@ struct BattleStruct extern struct BattleStruct* gBattleStruct; -#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \ -{ \ - u8* var2 = (u8*)((u32)(arrayId)); \ - var2 = (u32)(structPtr) + var2; \ - var2[offsetof(struct structName, offsetField)] = value; \ -} - #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -850,8 +843,7 @@ struct BattleScripting u8 twoTurnsMoveStringId; u8 animArg1; u8 animArg2; - u8 tripleKickPower; - u8 field_13; + u16 tripleKickPower; u8 atk49_state; u8 field_15; u8 field_16; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 3c6d63e88..053942b9f 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -13,9 +13,9 @@ extern const u8 BattleScript_PrintMoveMissed[]; extern const u8 BattleScript_MoveMissedPause[]; extern const u8 BattleScript_MoveMissed[]; extern const u8 BattleScript_EffectSleep[]; -extern const u8 BattleScript_82D8AB0[]; -extern const u8 BattleScript_82D8AC1[]; -extern const u8 BattleScript_82D8ACF[]; +extern const u8 BattleScript_AlreadyAsleep[]; +extern const u8 BattleScript_WasntAffected[]; +extern const u8 BattleScript_CantMakeAsleep[]; extern const u8 BattleScript_EffectPoisonHit[]; extern const u8 BattleScript_EffectAbsorb[]; extern const u8 BattleScript_82D8B26[]; @@ -94,7 +94,7 @@ extern const u8 BattleScript_EffectMist[]; extern const u8 BattleScript_EffectFocusEnergy[]; extern const u8 BattleScript_EffectRecoil[]; extern const u8 BattleScript_EffectConfuse[]; -extern const u8 BattleScript_82D9201[]; +extern const u8 BattleScript_AlreadyConfused[]; extern const u8 BattleScript_EffectAttackUp2[]; extern const u8 BattleScript_EffectDefenseUp2[]; extern const u8 BattleScript_EffectSpeedUp2[]; @@ -109,7 +109,7 @@ extern const u8 BattleScript_EffectReflect[]; extern const u8 BattleScript_82D928C[]; extern const u8 BattleScript_EffectPoison[]; extern const u8 BattleScript_EffectParalyze[]; -extern const u8 BattleScript_82D9351[]; +extern const u8 BattleScript_AlreadyParalyzed[]; extern const u8 BattleScript_LimberProtected[]; extern const u8 BattleScript_EffectAttackDownHit[]; extern const u8 BattleScript_EffectDefenseDownHit[]; @@ -155,11 +155,11 @@ extern const u8 BattleScript_EffectHealBell[]; extern const u8 BattleScript_82D96ED[]; extern const u8 BattleScript_82D96FE[]; extern const u8 BattleScript_EffectTripleKick[]; -extern const u8 BattleScript_82D9718[]; +extern const u8 BattleScript_TripleKickLoop[]; extern const u8 BattleScript_82D973A[]; -extern const u8 BattleScript_82D9799[]; -extern const u8 BattleScript_82D97AD[]; -extern const u8 BattleScript_82D97D7[]; +extern const u8 BattleScript_TripleKickNoMoreHits[]; +extern const u8 BattleScript_TripleKickPrintStrings[]; +extern const u8 BattleScript_TripleKickEnd[]; extern const u8 BattleScript_EffectThief[]; extern const u8 BattleScript_EffectMeanLook[]; extern const u8 BattleScript_EffectNightmare[]; diff --git a/src/battle_2.c b/src/battle_2.c index d7f051272..dffebabe7 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -123,11 +123,11 @@ extern s32 gBattleMoveDamage; extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT]; +extern u16 gTurnMovesHitWith[BATTLE_BANKS_COUNT]; extern u16 gUnknown_02024258[BATTLE_BANKS_COUNT]; extern u16 gUnknown_02024260[BATTLE_BANKS_COUNT]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; -extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT]; +extern u8 gTurnMovesHitBy[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u16 gSideAffecting[2]; @@ -149,7 +149,7 @@ extern u16 gDynamicBasePower; extern u8 gCritMultiplier; extern u8 gCurrMovePos; extern u8 gUnknown_020241E9; -extern u16 gLastUsedMove; +extern u16 gOriginallyUsedMove; extern const struct BattleMove gBattleMoves[]; extern const u16 gUnknown_08C004E0[]; // battle textbox palette @@ -461,7 +461,7 @@ static void sub_8036A5C(void) u32 status = 0; s32 i; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); @@ -1878,7 +1878,7 @@ static void sub_8038B94(u8 taskId) } r7 = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2); u16 hp = GetMonData(&sp4[i], MON_DATA_HP); @@ -1902,7 +1902,7 @@ static void sub_8038B94(u8 taskId) gTasks[taskId].data[3] = r7; r7 = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2); u16 hp = GetMonData(&sp8[i], MON_DATA_HP); @@ -2741,13 +2741,13 @@ static void BattleStartClearSetData(void) for (j = 0; j < sizeof(struct DisableStruct); j++) dataPtr[j] = 0; - gDisableStructs[i].isFirstTurn= 2; + gDisableStructs[i].isFirstTurn = 2; gUnknown_02024284[i] = 0; gLastUsedMovesByBanks[i] = 0; - gUnknown_02024250[i] = 0; + gTurnMovesHitWith[i] = 0; gUnknown_02024258[i] = 0; gUnknown_02024260[i] = 0; - gUnknown_02024270[i] = 0xFF; + gTurnMovesHitBy[i] = 0xFF; gLockedMoves[i] = 0; gUnknownMovesUsedByBanks[i] = 0; gBattleResources->flags->flags[i] = 0; @@ -2911,11 +2911,11 @@ void SwitchInClearSetData(void) gDisableStructs[gActiveBank].isFirstTurn= 2; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; gLastUsedMovesByBanks[gActiveBank] = 0; - gUnknown_02024250[gActiveBank] = 0; + gTurnMovesHitWith[gActiveBank] = 0; gUnknown_02024258[gActiveBank] = 0; gUnknown_02024260[gActiveBank] = 0; gUnknownMovesUsedByBanks[gActiveBank] = 0; - gUnknown_02024270[gActiveBank] = 0xFF; + gTurnMovesHitBy[gActiveBank] = 0xFF; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; @@ -3003,11 +3003,11 @@ void FaintClearSetData(void) gDisableStructs[gActiveBank].isFirstTurn = 2; gLastUsedMovesByBanks[gActiveBank] = 0; - gUnknown_02024250[gActiveBank] = 0; + gTurnMovesHitWith[gActiveBank] = 0; gUnknown_02024258[gActiveBank] = 0; gUnknown_02024260[gActiveBank] = 0; gUnknownMovesUsedByBanks[gActiveBank] = 0; - gUnknown_02024270[gActiveBank] = 0xFF; + gTurnMovesHitBy[gActiveBank] = 0xFF; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; @@ -5048,19 +5048,19 @@ static void HandleAction_UseMove(void) if (gProtectStructs[gBankAttacker].onlyStruggle) { gProtectStructs[gBankAttacker].onlyStruggle = 0; - gCurrentMove = gLastUsedMove = MOVE_STRUGGLE; + gCurrentMove = gOriginallyUsedMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gLastUsedMove = gLockedMoves[gBankAttacker]; + gCurrentMove = gOriginallyUsedMove = gLockedMoves[gBankAttacker]; } // encore forces you to use the same move else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) { - gCurrentMove = gLastUsedMove = gDisableStructs[gBankAttacker].encoredMove; + gCurrentMove = gOriginallyUsedMove = gDisableStructs[gBankAttacker].encoredMove; gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); } @@ -5069,7 +5069,7 @@ static void HandleAction_UseMove(void) && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) { gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gOriginallyUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; gDisableStructs[gBankAttacker].encoredMovePos = 0; gDisableStructs[gBankAttacker].encoreTimer1 = 0; @@ -5077,12 +5077,12 @@ static void HandleAction_UseMove(void) } else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) { - gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gOriginallyUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gOriginallyUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; } if (gBattleMons[gBankAttacker].hp != 0) @@ -5122,7 +5122,7 @@ static void HandleAction_UseMove(void) } if (var == 4) { - if (gBattleMoves[gLastUsedMove].target & MOVE_TARGET_RANDOM) + if (gBattleMoves[gOriginallyUsedMove].target & MOVE_TARGET_RANDOM) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { @@ -5167,7 +5167,7 @@ static void HandleAction_UseMove(void) } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattleMoves[gLastUsedMove].target & MOVE_TARGET_RANDOM) + && gBattleMoves[gOriginallyUsedMove].target & MOVE_TARGET_RANDOM) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { @@ -5600,7 +5600,7 @@ static void HandleAction_ActionFinished(void) gBattleMoveFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gUnknown_02024250[gBankAttacker] = 0; + gTurnMovesHitWith[gBankAttacker] = 0; gUnknown_02024258[gBankAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gDynamicBasePower = 0; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 75d144c3d..f43b9b6b2 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -16,8 +16,8 @@ extern u32 gBattleTypeFlags; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT]; -extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT]; +extern u16 gTurnMovesHitWith[BATTLE_BANKS_COUNT]; +extern u8 gTurnMovesHitBy[BATTLE_BANKS_COUNT]; extern u16 gDynamicBasePower; extern u8 gBattleMoveFlags; extern u8 gCritMultiplier; @@ -141,11 +141,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) return FALSE; - if (gUnknown_02024250[gActiveBank] == 0) + if (gTurnMovesHitWith[gActiveBank] == 0) return FALSE; - if (gUnknown_02024250[gActiveBank] == 0xFFFF) + if (gTurnMovesHitWith[gActiveBank] == 0xFFFF) return FALSE; - if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -162,11 +162,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) bankIn2 = gActiveBank; } - if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE) + if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_FIRE) absorbingTypeAbility = ABILITY_FLASH_FIRE; - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER) + else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_WATER) absorbingTypeAbility = ABILITY_WATER_ABSORB; - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC) + else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_ELECTRIC) absorbingTypeAbility = ABILITY_VOLT_ABSORB; else return FALSE; @@ -238,13 +238,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) return FALSE; - if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1) + if ((gTurnMovesHitWith[gActiveBank] == 0 || gTurnMovesHitWith[gActiveBank] == 0xFFFF) && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1) + else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0 && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); @@ -345,13 +345,13 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) u16 move; u8 moveFlags; - if (gUnknown_02024250[gActiveBank] == 0) + if (gTurnMovesHitWith[gActiveBank] == 0) return FALSE; - if (gUnknown_02024250[gActiveBank] == 0xFFFF) + if (gTurnMovesHitWith[gActiveBank] == 0xFFFF) return FALSE; - if (gUnknown_02024270[gActiveBank] == 0xFF) + if (gTurnMovesHitBy[gActiveBank] == 0xFF) return FALSE; - if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) else monAbility = gBaseStats[species].ability1; - moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility); + moveFlags = AI_TypeCalc(gTurnMovesHitWith[gActiveBank], species, monAbility); if (moveFlags & flags) { - bankIn1 = gUnknown_02024270[gActiveBank]; + bankIn1 = gTurnMovesHitBy[gActiveBank]; for (j = 0; j < 4; j++) { diff --git a/src/battle_controllers.c b/src/battle_controllers.c index ed48ec5d9..45ed8a73a 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -38,7 +38,7 @@ extern u8 gEffectBank; extern u16 gBattleWeather; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; -extern u16 gLastUsedMove; +extern u16 gOriginallyUsedMove; extern u16 gLastUsedItem; extern u8 gBattleOutcome; extern u8 gLastUsedAbility; @@ -1120,7 +1120,7 @@ void EmitPrintString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gLastUsedMove; + stringInfo->lastMove = gOriginallyUsedMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; @@ -1152,7 +1152,7 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gLastUsedMove; + stringInfo->lastMove = gOriginallyUsedMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index c864c5a4f..9ab9160a4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -74,10 +74,10 @@ extern u8 gCurrentActionFuncId; extern u32 gHitMarker; extern u8 gBattleMoveFlags; extern u8 gBattleCommunication[]; -extern u16 gUnknown_02024250[4]; +extern u16 gTurnMovesHitWith[4]; extern u16 gUnknown_02024258[4]; extern u16 gUnknown_02024260[4]; -extern u8 gUnknown_02024270[4]; +extern u8 gTurnMovesHitBy[4]; extern u8 gStringBank; extern u16 gDynamicBasePower; extern u16 gLastUsedItem; @@ -99,7 +99,7 @@ extern u8 gCurrentTurnActionNumber; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; -extern u16 gLastUsedMove; +extern u16 gOriginallyUsedMove; extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; @@ -1105,7 +1105,7 @@ static void atk00_attackcanceler(void) { CancelMultiTurnMoves(gBankAttacker); gBattleMoveFlags |= MOVESTATUS_MISSED; - gUnknown_02024250[gBankTarget] = 0; + gTurnMovesHitWith[gBankTarget] = 0; gUnknown_02024258[gBankTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; @@ -1121,7 +1121,7 @@ static void JumpIfMoveFailed(u8 adder, u16 move) const void* BS_ptr = gBattlescriptCurrInstr + adder; if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { - gUnknown_02024250[gBankTarget] = 0; + gTurnMovesHitWith[gBankTarget] = 0; gUnknown_02024258[gBankTarget] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -1484,7 +1484,7 @@ static void atk06_typecalc(void) { gLastUsedAbility = gBattleMons[gBankTarget].ability; gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gUnknown_02024250[gBankTarget] = 0; + gTurnMovesHitWith[gBankTarget] = 0; gUnknown_02024258[gBankTarget] = 0; gBattleCommunication[6] = moveType; RecordAbilityBattle(gBankTarget, gLastUsedAbility); @@ -1520,7 +1520,7 @@ static void atk06_typecalc(void) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleMoveFlags |= MOVESTATUS_MISSED; - gUnknown_02024250[gBankTarget] = 0; + gTurnMovesHitWith[gBankTarget] = 0; gUnknown_02024258[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); @@ -4860,10 +4860,10 @@ static void atk49_moveend(void) effect = FALSE; - if (gLastUsedMove == 0xFFFF) + if (gOriginallyUsedMove == 0xFFFF) lastMove = 0; else - lastMove = gLastUsedMove; + lastMove = gOriginallyUsedMove; arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; @@ -4934,14 +4934,14 @@ static void atk49_moveend(void) break; case 6: // update choice band move if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND - || gLastUsedMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) + || gOriginallyUsedMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) goto LOOP; - if (gLastUsedMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) + if (gOriginallyUsedMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) { gBattleScripting.atk49_state++; break; } - *choicedMoveAtk = gLastUsedMove; + *choicedMoveAtk = gOriginallyUsedMove; LOOP: { for (i = 0; i < 4; i++) @@ -5036,7 +5036,7 @@ static void atk49_moveend(void) } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gUnknownMovesUsedByBanks[gBankAttacker] = gLastUsedMove; + gUnknownMovesUsedByBanks[gBankAttacker] = gOriginallyUsedMove; } if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) @@ -5044,7 +5044,7 @@ static void atk49_moveend(void) { if (gHitMarker & HITMARKER_OBEYS) { - gLastUsedMovesByBanks[gBankAttacker] = gLastUsedMove; + gLastUsedMovesByBanks[gBankAttacker] = gOriginallyUsedMove; gUnknown_02024260[gBankAttacker] = gCurrentMove; } else @@ -5054,23 +5054,23 @@ static void atk49_moveend(void) } if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) - gUnknown_02024270[gBankTarget] = gBankAttacker; + gTurnMovesHitBy[gBankTarget] = gBankAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { - if (gLastUsedMove == 0xFFFF) + if (gOriginallyUsedMove == 0xFFFF) { - gUnknown_02024250[gBankTarget] = gLastUsedMove; + gTurnMovesHitWith[gBankTarget] = gOriginallyUsedMove; } else { - gUnknown_02024250[gBankTarget] = gCurrentMove; + gTurnMovesHitWith[gBankTarget] = gCurrentMove; GET_MOVE_TYPE(gCurrentMove, gUnknown_02024258[gBankTarget]); } } else { - gUnknown_02024250[gBankTarget] = 0xFFFF; + gTurnMovesHitWith[gBankTarget] = 0xFFFF; } } gBattleScripting.atk49_state++; @@ -5083,16 +5083,16 @@ static void atk49_moveend(void) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gLastUsedMove; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gLastUsedMove >> 8; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gOriginallyUsedMove; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gOriginallyUsedMove >> 8; target = gBankTarget; attacker = gBankAttacker; - *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gLastUsedMove; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gOriginallyUsedMove; target = gBankTarget; attacker = gBankAttacker; - *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gLastUsedMove >> 8; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gOriginallyUsedMove >> 8; } gBattleScripting.atk49_state++; break; @@ -5144,7 +5144,7 @@ static void atk4A_typecalc2(void) { gLastUsedAbility = gBattleMons[gBankTarget].ability; gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gUnknown_02024250[gBankTarget] = 0; + gTurnMovesHitWith[gBankTarget] = 0; gBattleCommunication[6] = moveType; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -5219,7 +5219,7 @@ static void atk4A_typecalc2(void) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleMoveFlags |= MOVESTATUS_MISSED; - gUnknown_02024250[gBankTarget] = 0; + gTurnMovesHitWith[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -5452,10 +5452,10 @@ static void atk4F_jumpifcantswitch(void) { if (GetBankSide(gActiveBank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(1); + r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(3); + compareVar = GetBankByIdentity(IDENTITY_OPPONENT_MON2); else compareVar = r7; @@ -5463,10 +5463,10 @@ static void atk4F_jumpifcantswitch(void) } else { - r7 = GetBankByIdentity(0); + r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(2); + compareVar = GetBankByIdentity(IDENTITY_PLAYER_MON2); else compareVar = r7; @@ -6009,7 +6009,7 @@ static void atk59_handlelearnnewmove(void) } else { - gActiveBank = GetBankByIdentity(0); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) @@ -6018,7 +6018,7 @@ static void atk59_handlelearnnewmove(void) } if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gActiveBank = GetBankByIdentity(2); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON2); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) { @@ -6386,7 +6386,7 @@ static void atk63_jumptorandomattack(void) if (gBattlescriptCurrInstr[1] != 0) gCurrentMove = gRandomMove; else - gLastUsedMove = gCurrentMove = gRandomMove; + gOriginallyUsedMove = gCurrentMove = gRandomMove; gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } @@ -6849,7 +6849,7 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByIdentity(0); + gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); gBattlescriptCurrInstr++; } @@ -8352,7 +8352,7 @@ static void atk9A_setfocusenergy(void) static void atk9B_transformdataexecution(void) { - gLastUsedMove = 0xFFFF; + gOriginallyUsedMove = 0xFFFF; gBattlescriptCurrInstr++; if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) @@ -8432,7 +8432,7 @@ static bool8 IsMoveUncopyableByMimic(u16 move) static void atk9D_mimicattackcopy(void) { - gLastUsedMove = 0xFFFF; + gOriginallyUsedMove = 0xFFFF; if (IsMoveUncopyableByMimic(gLastUsedMovesByBanks[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED @@ -8652,13 +8652,13 @@ static void atkA5_painsplitdmgcalc(void) static void atkA6_settypetorandomresistance(void) // conversion 2 { - if (gUnknown_02024250[gBankAttacker] == 0 - || gUnknown_02024250[gBankAttacker] == 0xFFFF) + if (gTurnMovesHitWith[gBankAttacker] == 0 + || gTurnMovesHitWith[gBankAttacker] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } - else if (IsTwoTurnsMove(gUnknown_02024250[gBankAttacker]) - && gBattleMons[gUnknown_02024270[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) + else if (IsTwoTurnsMove(gTurnMovesHitWith[gBankAttacker]) + && gBattleMons[gTurnMovesHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8726,7 +8726,7 @@ static void atkA7_setalwayshitflag(void) static void atkA8_copymovepermanently(void) // sketch { - gLastUsedMove = 0xFFFF; + gOriginallyUsedMove = 0xFFFF; if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_STRUGGLE @@ -9024,7 +9024,7 @@ static void atkAE_healpartystatus(void) gBattleMons[gBankAttacker].status1 = 0; gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) { diff --git a/src/battle_util.c b/src/battle_util.c index 6164565bd..7f5d31b6f 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -459,7 +459,7 @@ u8 TrySetCantSelectMoveBattleScript(void) u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) { u8 holdEffect; - u16* choicedMove = &gBattleStruct->choicedMove[bank]; + u16 *choicedMove = &gBattleStruct->choicedMove[bank]; s32 i; if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) @@ -584,11 +584,7 @@ u8 UpdateTurnCounters(void) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; BattleScriptExecute(BattleScript_82DACFA); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_REFLECT; - gBattleTextBuff1[3] = MOVE_REFLECT >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT); effect++; } } @@ -614,11 +610,7 @@ u8 UpdateTurnCounters(void) gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; BattleScriptExecute(BattleScript_82DACFA); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN; - gBattleTextBuff1[3] = MOVE_LIGHT_SCREEN >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN); effect++; } } @@ -643,11 +635,7 @@ u8 UpdateTurnCounters(void) gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; BattleScriptExecute(BattleScript_82DACFA); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_MIST; - gBattleTextBuff1[3] = MOVE_MIST >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST); effect++; } gBattleStruct->turnSideTracker++; @@ -773,9 +761,10 @@ u8 UpdateTurnCounters(void) gBattlescriptCurrInstr = BattleScript_82DACC9; } else + { gBattlescriptCurrInstr = BattleScript_82DAC47; - - gBattleScripting.animArg1 = 0xD; + } + gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -870,7 +859,7 @@ u8 TurnBasedEffects(void) gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns + if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) // not 16 turns gBattleMons[gActiveBank].status1 += 0x100; gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; BattleScriptExecute(BattleScript_PoisonTurnDmg); @@ -929,8 +918,8 @@ u8 TurnBasedEffects(void) // This is the only way I could get this array access to match. gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MOVE; gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); gBattleTextBuff1[4] = EOS; @@ -941,8 +930,8 @@ u8 TurnBasedEffects(void) } else // broke free { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MOVE; gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); gBattleTextBuff1[4] = EOS; @@ -1014,7 +1003,7 @@ u8 TurnBasedEffects(void) gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER; SetMoveEffect(1, 0); if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) BattleScriptExecute(BattleScript_ThrashConfuses); @@ -1139,11 +1128,8 @@ bool8 sub_8041364(void) else gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBank]; - gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBank] >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBank]); + gBankTarget = gActiveBank; gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; @@ -1151,11 +1137,11 @@ bool8 sub_8041364(void) BattleScriptExecute(BattleScript_82DAFE4); if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 - && gWishFutureKnock.futureSightCounter[gActiveBank ^ 2] == 0) + && gWishFutureKnock.futureSightCounter[gActiveBank ^ BIT_MON] == 0) { - gSideAffecting[GetBankIdentity(gBankTarget) & 1] &= ~SIDE_STATUS_FUTUREATTACK; + gSideAffecting[GET_BANK_SIDE(gBankTarget)] &= ~(SIDE_STATUS_FUTUREATTACK); } - return 1; + return TRUE; } } // Why do I have to keep doing this to match? @@ -1177,12 +1163,7 @@ bool8 sub_8041364(void) gBattleStruct->field_1A1++; if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 1; - gBattleTextBuff1[2] = 1; - gBattleTextBuff1[3] = 1; - gBattleTextBuff1[4] = gDisableStructs[gActiveBank].perishSongTimer1; - gBattleTextBuff1[5] = EOS; + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBank].perishSongTimer1); if (gDisableStructs[gActiveBank].perishSongTimer1 == 0) { gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; @@ -1195,7 +1176,7 @@ bool8 sub_8041364(void) gBattlescriptCurrInstr = BattleScript_82DAF20; } BattleScriptExecute(gBattlescriptCurrInstr); - return 1; + return TRUE; } } // Hm... @@ -1218,14 +1199,14 @@ bool8 sub_8041364(void) gBattlescriptCurrInstr = BattleScript_82DB8F3; BattleScriptExecute(BattleScript_82DB8F3); gBattleStruct->field_1A0++; - return 1; + return TRUE; } break; } gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); - return 0; + return FALSE; } #define sub_8041728_MAX_CASE 7 @@ -1572,7 +1553,7 @@ u8 AtkCanceller_UnableToUseMove(void) } gBattleStruct->atkCancellerTracker++; break; - case 14: // last case + case ATKCANCELLER_MAX_CASE: break; } @@ -1674,14 +1655,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) { if (GetBankSide(bank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(1); - r6 = GetBankByIdentity(3); + r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + r6 = GetBankByIdentity(IDENTITY_OPPONENT_MON2); party = gEnemyParty; } else { - r7 = GetBankByIdentity(0); - r6 = GetBankByIdentity(2); + r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1); + r6 = GetBankByIdentity(IDENTITY_PLAYER_MON2); party = gPlayerParty; } if (r1 == 6) @@ -1799,10 +1780,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else move = gCurrentMove; - if (gBattleStruct->dynamicMoveType) - moveType = gBattleStruct->dynamicMoveType & 0x3F; - else - moveType = gBattleMoves[move].type; + GET_MOVE_TYPE(move, moveType); switch (caseID) { @@ -2525,7 +2503,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) return effect; } -void BattleScriptExecute(const u8* BS_ptr) +void BattleScriptExecute(const u8 *BS_ptr) { gBattlescriptCurrInstr = BS_ptr; BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc; @@ -2533,7 +2511,7 @@ void BattleScriptExecute(const u8* BS_ptr) gCurrentActionFuncId = 0; } -void BattleScriptPushCursorAndCallback(const u8* BS_ptr) +void BattleScriptPushCursorAndCallback(const u8 *BS_ptr) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BS_ptr; @@ -3265,7 +3243,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) switch (moveTarget) { case MOVE_TARGET_SELECTED: - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else @@ -3279,7 +3257,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) { - targetBank ^= 2; + targetBank ^= BIT_MON; RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); gSpecialStatuses[targetBank].lightningRodRedirected = 1; } @@ -3289,12 +3267,12 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= 2; + targetBank ^= BIT_MON; break; case MOVE_TARGET_RANDOM: - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) @@ -3302,22 +3280,22 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - targetBank = GetBankByIdentity(1); + targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); else - targetBank = GetBankByIdentity(3); + targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); } else { if (Random() & 1) - targetBank = GetBankByIdentity(0); + targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); else - targetBank = GetBankByIdentity(2); + targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON2); } if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= 2; + targetBank ^= BIT_MON; } else - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: @@ -3325,11 +3303,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) break; } - #ifndef NONMATCHING - MEME_ACCESS_U8(BattleStruct, gBattleStruct, gBankAttacker, moveTarget, targetBank); - #else - gBattleStruct->moveTarget[gBankAttacker] = targetBank; - #endif // NONMATCHING + *(gBattleStruct->moveTarget + gBankAttacker) = targetBank; return targetBank; } diff --git a/sym_ewram.txt b/sym_ewram.txt index cfe686a7c..a66eb7356 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -312,7 +312,7 @@ gUnknown_020241E9: @ 20241E9 gCurrentMove: @ 20241EA .space 0x2 -gLastUsedMove: @ 20241EC +gOriginallyUsedMove: @ 20241EC .space 0x2 gRandomMove: @ 20241EE @@ -375,7 +375,7 @@ gUnknownMovesUsedByBanks: @ 2024240 gLastUsedMovesByBanks: @ 2024248 .space 0x8 -gUnknown_02024250: @ 2024250 +gTurnMovesHitWith: @ 2024250 .space 0x8 gUnknown_02024258: @ 2024258 @@ -387,7 +387,7 @@ gUnknown_02024260: @ 2024260 gLockedMoves: @ 2024268 .space 0x8 -gUnknown_02024270: @ 2024270 +gTurnMovesHitBy: @ 2024270 .space 0x4 gChosenMovesByBanks: @ 2024274 -- cgit v1.2.3 From 8c30c42c36b7904c223277b9739f5a7e78be1793 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 14:17:02 +0100 Subject: more labelling and changes --- include/battle_message.h | 2 +- src/battle_2.c | 68 ++++++++++----------- src/battle_ai_script_commands.c | 12 ++-- src/battle_ai_switch_items.c | 32 +++++----- src/battle_controllers.c | 4 +- src/battle_message.c | 6 +- src/battle_script_commands.c | 128 ++++++++++++++++++++-------------------- src/battle_util.c | 16 ++--- sym_ewram.txt | 14 ++--- 9 files changed, 141 insertions(+), 141 deletions(-) diff --git a/include/battle_message.h b/include/battle_message.h index 8b724a316..59d747db1 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -197,7 +197,7 @@ struct StringInfoBattle { u16 currentMove; - u16 lastMove; + u16 originallyUsedMove; u16 lastItem; u8 lastAbility; u8 scrActive; diff --git a/src/battle_2.c b/src/battle_2.c index dffebabe7..53437811a 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -120,14 +120,14 @@ extern u32 gBattleExecBuffer; extern u8 gMultiHitCounter; extern u8 gBattleMoveFlags; extern s32 gBattleMoveDamage; -extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; -extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; -extern u16 gTurnMovesHitWith[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024258[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024260[BATTLE_BANKS_COUNT]; +extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastHitByType[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; -extern u8 gTurnMovesHitBy[BATTLE_BANKS_COUNT]; +extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u16 gSideAffecting[2]; @@ -2743,15 +2743,15 @@ static void BattleStartClearSetData(void) gDisableStructs[i].isFirstTurn = 2; gUnknown_02024284[i] = 0; - gLastUsedMovesByBanks[i] = 0; - gTurnMovesHitWith[i] = 0; - gUnknown_02024258[i] = 0; - gUnknown_02024260[i] = 0; - gTurnMovesHitBy[i] = 0xFF; + gOriginallyLastMoves[i] = 0; + gLastLandedMoves[i] = 0; + gLastHitByType[i] = 0; + gLastMoves[i] = 0; + gLastHitBy[i] = 0xFF; gLockedMoves[i] = 0; - gUnknownMovesUsedByBanks[i] = 0; + gOriginallyLastPrintedMoves[i] = 0; gBattleResources->flags->flags[i] = 0; - gUnknown_02024230[i] = 0; + gSelectionBattleScripts[i] = 0; } for (i = 0; i < 2; i++) @@ -2908,14 +2908,14 @@ void SwitchInClearSetData(void) } gBattleMoveFlags = 0; - gDisableStructs[gActiveBank].isFirstTurn= 2; + gDisableStructs[gActiveBank].isFirstTurn = 2; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; - gLastUsedMovesByBanks[gActiveBank] = 0; - gTurnMovesHitWith[gActiveBank] = 0; - gUnknown_02024258[gActiveBank] = 0; - gUnknown_02024260[gActiveBank] = 0; - gUnknownMovesUsedByBanks[gActiveBank] = 0; - gTurnMovesHitBy[gActiveBank] = 0xFF; + gOriginallyLastMoves[gActiveBank] = 0; + gLastLandedMoves[gActiveBank] = 0; + gLastHitByType[gActiveBank] = 0; + gLastMoves[gActiveBank] = 0; + gOriginallyLastPrintedMoves[gActiveBank] = 0; + gLastHitBy[gActiveBank] = 0xFF; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; @@ -3002,12 +3002,12 @@ void FaintClearSetData(void) gDisableStructs[gActiveBank].isFirstTurn = 2; - gLastUsedMovesByBanks[gActiveBank] = 0; - gTurnMovesHitWith[gActiveBank] = 0; - gUnknown_02024258[gActiveBank] = 0; - gUnknown_02024260[gActiveBank] = 0; - gUnknownMovesUsedByBanks[gActiveBank] = 0; - gTurnMovesHitBy[gActiveBank] = 0xFF; + gOriginallyLastMoves[gActiveBank] = 0; + gLastLandedMoves[gActiveBank] = 0; + gLastHitByType[gActiveBank] = 0; + gLastMoves[gActiveBank] = 0; + gOriginallyLastPrintedMoves[gActiveBank] = 0; + gLastHitBy[gActiveBank] = 0xFF; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; @@ -3189,7 +3189,7 @@ static void BattleIntroDrawPartySummaryScreens(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) @@ -3207,7 +3207,7 @@ static void BattleIntroDrawPartySummaryScreens(void) EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) @@ -5217,11 +5217,11 @@ static void HandleAction_UseMove(void) gCurrentActionFuncId = 12; return; } - else if (gUnknown_02024230[gBankAttacker] != NULL) + else if (gSelectionBattleScripts[gBankAttacker] != NULL) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gUnknown_02024230[gBankAttacker]; - gUnknown_02024230[gBankAttacker] = NULL; + gBattlescriptCurrInstr = gSelectionBattleScripts[gBankAttacker]; + gSelectionBattleScripts[gBankAttacker] = NULL; } else { @@ -5600,8 +5600,8 @@ static void HandleAction_ActionFinished(void) gBattleMoveFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gTurnMovesHitWith[gBankAttacker] = 0; - gUnknown_02024258[gBankAttacker] = 0; + gLastLandedMoves[gBankAttacker] = 0; + gLastHitByType[gBankAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gDynamicBasePower = 0; gBattleScripting.atk49_state = 0; diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 24377eacc..5fde5669e 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -58,7 +58,7 @@ extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; extern u8 gBankTarget; extern u8 gAbsentBankFlags; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; @@ -633,12 +633,12 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget]) break; - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastUsedMovesByBanks[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. + if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gOriginallyLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. && gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastUsedMovesByBanks[gBankTarget]; + gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gOriginallyLastMoves[gBankTarget]; break; } } @@ -1252,9 +1252,9 @@ static void BattleAICmd_is_most_powerful_move(void) static void BattleAICmd_get_last_used_bank_move(void) { if (gAIScriptPtr[1] == AI_USER) - AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[sBank_AI]; + AI_THINKING_STRUCT->funcResult = gOriginallyLastMoves[sBank_AI]; else - AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[gBankTarget]; + AI_THINKING_STRUCT->funcResult = gOriginallyLastMoves[gBankTarget]; gAIScriptPtr += 2; } diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index f43b9b6b2..f5b6c7fe4 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -16,8 +16,8 @@ extern u32 gBattleTypeFlags; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u16 gTurnMovesHitWith[BATTLE_BANKS_COUNT]; -extern u8 gTurnMovesHitBy[BATTLE_BANKS_COUNT]; +extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; +extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u16 gDynamicBasePower; extern u8 gBattleMoveFlags; extern u8 gCritMultiplier; @@ -141,11 +141,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) return FALSE; - if (gTurnMovesHitWith[gActiveBank] == 0) + if (gLastLandedMoves[gActiveBank] == 0) return FALSE; - if (gTurnMovesHitWith[gActiveBank] == 0xFFFF) + if (gLastLandedMoves[gActiveBank] == 0xFFFF) return FALSE; - if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0) + if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -162,11 +162,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) bankIn2 = gActiveBank; } - if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_FIRE) + if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_FIRE) absorbingTypeAbility = ABILITY_FLASH_FIRE; - else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_WATER) + else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_WATER) absorbingTypeAbility = ABILITY_WATER_ABSORB; - else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_ELECTRIC) + else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_ELECTRIC) absorbingTypeAbility = ABILITY_VOLT_ABSORB; else return FALSE; @@ -238,13 +238,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) return FALSE; - if ((gTurnMovesHitWith[gActiveBank] == 0 || gTurnMovesHitWith[gActiveBank] == 0xFFFF) && Random() & 1) + if ((gLastLandedMoves[gActiveBank] == 0 || gLastLandedMoves[gActiveBank] == 0xFFFF) && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } - else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0 && Random() & 1) + else if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0 && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); @@ -345,13 +345,13 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) u16 move; u8 moveFlags; - if (gTurnMovesHitWith[gActiveBank] == 0) + if (gLastLandedMoves[gActiveBank] == 0) return FALSE; - if (gTurnMovesHitWith[gActiveBank] == 0xFFFF) + if (gLastLandedMoves[gActiveBank] == 0xFFFF) return FALSE; - if (gTurnMovesHitBy[gActiveBank] == 0xFF) + if (gLastHitBy[gActiveBank] == 0xFF) return FALSE; - if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0) + if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) else monAbility = gBaseStats[species].ability1; - moveFlags = AI_TypeCalc(gTurnMovesHitWith[gActiveBank], species, monAbility); + moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBank], species, monAbility); if (moveFlags & flags) { - bankIn1 = gTurnMovesHitBy[gActiveBank]; + bankIn1 = gLastHitBy[gActiveBank]; for (j = 0; j < 4; j++) { diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 45ed8a73a..b3fb91b42 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1120,7 +1120,7 @@ void EmitPrintString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gOriginallyUsedMove; + stringInfo->originallyUsedMove = gOriginallyUsedMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; @@ -1152,7 +1152,7 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gOriginallyUsedMove; + stringInfo->originallyUsedMove = gOriginallyUsedMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; diff --git a/src/battle_message.c b/src/battle_message.c index 04eb5f655..35b9004ac 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1916,11 +1916,11 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) else toCpy = gMoveNames[gStringInfo->currentMove]; break; - case B_TXT_LAST_MOVE: // last used move name - if (gStringInfo->lastMove > LAST_MOVE_INDEX) + case B_TXT_LAST_MOVE: // originally used move name + if (gStringInfo->originallyUsedMove > LAST_MOVE_INDEX) toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType]; else - toCpy = gMoveNames[gStringInfo->lastMove]; + toCpy = gMoveNames[gStringInfo->originallyUsedMove]; break; case B_TXT_LAST_ITEM: // last used item if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 9ab9160a4..0e6209ed8 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -74,10 +74,10 @@ extern u8 gCurrentActionFuncId; extern u32 gHitMarker; extern u8 gBattleMoveFlags; extern u8 gBattleCommunication[]; -extern u16 gTurnMovesHitWith[4]; -extern u16 gUnknown_02024258[4]; -extern u16 gUnknown_02024260[4]; -extern u8 gTurnMovesHitBy[4]; +extern u16 gLastLandedMoves[4]; +extern u16 gLastHitByType[4]; +extern u16 gLastMoves[4]; +extern u8 gLastHitBy[4]; extern u8 gStringBank; extern u16 gDynamicBasePower; extern u16 gLastUsedItem; @@ -100,8 +100,8 @@ extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; extern u16 gOriginallyUsedMove; -extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u8 gUnknown_020241E9; @@ -1105,8 +1105,8 @@ static void atk00_attackcanceler(void) { CancelMultiTurnMoves(gBankAttacker); gBattleMoveFlags |= MOVESTATUS_MISSED; - gTurnMovesHitWith[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1118,11 +1118,11 @@ static void atk00_attackcanceler(void) static void JumpIfMoveFailed(u8 adder, u16 move) { - const void* BS_ptr = gBattlescriptCurrInstr + adder; + const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { - gTurnMovesHitWith[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else @@ -1484,8 +1484,8 @@ static void atk06_typecalc(void) { gLastUsedAbility = gBattleMons[gBankTarget].ability; gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gTurnMovesHitWith[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = moveType; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -1520,8 +1520,8 @@ static void atk06_typecalc(void) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleMoveFlags |= MOVESTATUS_MISSED; - gTurnMovesHitWith[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -4856,14 +4856,14 @@ static void atk49_moveend(void) u8 holdEffectAtk; u16 *choicedMoveAtk; u8 arg1, arg2; - u16 lastMove; + u16 originallyUsedMove; effect = FALSE; if (gOriginallyUsedMove == 0xFFFF) - lastMove = 0; + originallyUsedMove = 0; else - lastMove = gOriginallyUsedMove; + originallyUsedMove = gOriginallyUsedMove; arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; @@ -5036,48 +5036,48 @@ static void atk49_moveend(void) } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gUnknownMovesUsedByBanks[gBankAttacker] = gOriginallyUsedMove; + gOriginallyLastPrintedMoves[gBankAttacker] = gOriginallyUsedMove; } if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) - && gBattleMoves[lastMove].effect != EFFECT_BATON_PASS) + && gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS) { if (gHitMarker & HITMARKER_OBEYS) { - gLastUsedMovesByBanks[gBankAttacker] = gOriginallyUsedMove; - gUnknown_02024260[gBankAttacker] = gCurrentMove; + gOriginallyLastMoves[gBankAttacker] = gOriginallyUsedMove; + gLastMoves[gBankAttacker] = gCurrentMove; } else { - gLastUsedMovesByBanks[gBankAttacker] = 0xFFFF; - gUnknown_02024260[gBankAttacker] = 0xFFFF; + gOriginallyLastMoves[gBankAttacker] = 0xFFFF; + gLastMoves[gBankAttacker] = 0xFFFF; } if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) - gTurnMovesHitBy[gBankTarget] = gBankAttacker; + gLastHitBy[gBankTarget] = gBankAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { if (gOriginallyUsedMove == 0xFFFF) { - gTurnMovesHitWith[gBankTarget] = gOriginallyUsedMove; + gLastLandedMoves[gBankTarget] = gOriginallyUsedMove; } else { - gTurnMovesHitWith[gBankTarget] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gUnknown_02024258[gBankTarget]); + gLastLandedMoves[gBankTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankTarget]); } } else { - gTurnMovesHitWith[gBankTarget] = 0xFFFF; + gLastLandedMoves[gBankTarget] = 0xFFFF; } } gBattleScripting.atk49_state++; break; case 15: // mirror move if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) - && gBattleMoves[lastMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS + && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget)) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { @@ -5144,7 +5144,7 @@ static void atk4A_typecalc2(void) { gLastUsedAbility = gBattleMons[gBankTarget].ability; gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gTurnMovesHitWith[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = moveType; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -5219,7 +5219,7 @@ static void atk4A_typecalc2(void) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleMoveFlags |= MOVESTATUS_MISSED; - gTurnMovesHitWith[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -7131,7 +7131,7 @@ static void atk76_various(void) static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; - u16 lastMove = gUnknown_02024260[gBankAttacker]; + u16 lastMove = gLastMoves[gBankAttacker]; if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) gDisableStructs[gBankAttacker].protectUses = 0; @@ -8434,10 +8434,10 @@ static void atk9D_mimicattackcopy(void) { gOriginallyUsedMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gLastUsedMovesByBanks[gBankTarget]) + if (IsMoveUncopyableByMimic(gOriginallyLastMoves[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gLastUsedMovesByBanks[gBankTarget] == 0 - || gLastUsedMovesByBanks[gBankTarget] == 0xFFFF) + || gOriginallyLastMoves[gBankTarget] == 0 + || gOriginallyLastMoves[gBankTarget] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8447,20 +8447,20 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gOriginallyLastMoves[gBankTarget]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastUsedMovesByBanks[gBankTarget]; - if (gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gOriginallyLastMoves[gBankTarget]; + if (gBattleMoves[gOriginallyLastMoves[gBankTarget]].pp < 5) + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gOriginallyLastMoves[gBankTarget]].pp; else gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastMoves[gBankTarget]) gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; @@ -8575,7 +8575,7 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleMons[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget]) break; } if (gDisableStructs[gBankTarget].disabledMove == 0 @@ -8600,13 +8600,13 @@ static void atkA4_trysetencore(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleMons[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget]) break; } - if (gLastUsedMovesByBanks[gBankTarget] == MOVE_STRUGGLE - || gLastUsedMovesByBanks[gBankTarget] == MOVE_ENCORE - || gLastUsedMovesByBanks[gBankTarget] == MOVE_MIRROR_MOVE) + if (gOriginallyLastMoves[gBankTarget] == MOVE_STRUGGLE + || gOriginallyLastMoves[gBankTarget] == MOVE_ENCORE + || gOriginallyLastMoves[gBankTarget] == MOVE_MIRROR_MOVE) { i = 4; } @@ -8652,13 +8652,13 @@ static void atkA5_painsplitdmgcalc(void) static void atkA6_settypetorandomresistance(void) // conversion 2 { - if (gTurnMovesHitWith[gBankAttacker] == 0 - || gTurnMovesHitWith[gBankAttacker] == 0xFFFF) + if (gLastLandedMoves[gBankAttacker] == 0 + || gLastLandedMoves[gBankAttacker] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } - else if (IsTwoTurnsMove(gTurnMovesHitWith[gBankAttacker]) - && gBattleMons[gTurnMovesHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) + else if (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker]) + && gBattleMons[gLastHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8672,7 +8672,7 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 i *= 3; - if (TYPE_EFFECT_ATK_TYPE(i) == gUnknown_02024258[gBankAttacker] + if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBankAttacker] && TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) @@ -8695,7 +8695,7 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 case TYPE_FORESIGHT: break; default: - if (TYPE_EFFECT_ATK_TYPE(j) == gUnknown_02024258[gBankAttacker] + if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBankAttacker] && TYPE_EFFECT_MULTIPLIER(j) <= 5 && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) @@ -8729,10 +8729,10 @@ static void atkA8_copymovepermanently(void) // sketch gOriginallyUsedMove = 0xFFFF; if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_STRUGGLE - && gUnknownMovesUsedByBanks[gBankTarget] != 0 - && gUnknownMovesUsedByBanks[gBankTarget] != 0xFFFF - && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_SKETCH) + && gOriginallyLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE + && gOriginallyLastPrintedMoves[gBankTarget] != 0 + && gOriginallyLastPrintedMoves[gBankTarget] != 0xFFFF + && gOriginallyLastPrintedMoves[gBankTarget] != MOVE_SKETCH) { s32 i; @@ -8740,7 +8740,7 @@ static void atkA8_copymovepermanently(void) // sketch { if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gUnknownMovesUsedByBanks[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gOriginallyLastPrintedMoves[gBankTarget]) break; } @@ -8752,8 +8752,8 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknownMovesUsedByBanks[gBankTarget]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknownMovesUsedByBanks[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gOriginallyLastPrintedMoves[gBankTarget]; + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gOriginallyLastPrintedMoves[gBankTarget]].pp; gActiveBank = gBankAttacker; for (i = 0; i < 4; i++) @@ -8766,7 +8766,7 @@ static void atkA8_copymovepermanently(void) // sketch EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); MarkBufferBankForExecution(gActiveBank); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gUnknownMovesUsedByBanks[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastPrintedMoves[gBankTarget]) gBattlescriptCurrInstr += 5; } @@ -8899,14 +8899,14 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastUsedMovesByBanks[gBankTarget] != 0 - && gLastUsedMovesByBanks[gBankTarget] != 0xFFFF) + if (gOriginallyLastMoves[gBankTarget] != 0 + && gOriginallyLastMoves[gBankTarget] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gLastUsedMovesByBanks[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + if (gOriginallyLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i]) break; } @@ -8916,7 +8916,7 @@ static void atkAD_tryspiteppreduce(void) if (gBattleMons[gBankTarget].pp[i] < ppToDeduct) ppToDeduct = gBattleMons[gBankTarget].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastMoves[gBankTarget]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); diff --git a/src/battle_util.c b/src/battle_util.c index 7f5d31b6f..9f2bf2797 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -23,7 +23,7 @@ extern const u8* gBattlescriptCurrInstr; extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; -extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; +extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u8 gActiveBank; extern u8 gStringBank; @@ -43,7 +43,7 @@ extern s32 gBattleMoveDamage; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u32 gBattleTypeFlags; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; extern u32 gHitMarker; extern u8 gEffectBank; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; @@ -363,7 +363,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = BattleScript_82DAE2A; + gSelectionBattleScripts[gActiveBank] = BattleScript_82DAE2A; gProtectStructs[gActiveBank].flag_x10 = 1; } else @@ -373,12 +373,12 @@ u8 TrySetCantSelectMoveBattleScript(void) } } - if (move == gLastUsedMovesByBanks[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) + if (move == gOriginallyLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) { CancelMultiTurnMoves(gActiveBank); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = BattleScript_82DB098; + gSelectionBattleScripts[gActiveBank] = BattleScript_82DB098; gProtectStructs[gActiveBank].flag_x10 = 1; } else @@ -393,7 +393,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = BattleScript_82DB0AF; + gSelectionBattleScripts[gActiveBank] = BattleScript_82DB0AF; gProtectStructs[gActiveBank].flag_x10 = 1; } else @@ -408,7 +408,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = BattleScript_82DB185; + gSelectionBattleScripts[gActiveBank] = BattleScript_82DB185; gProtectStructs[gActiveBank].flag_x10 = 1; } else @@ -477,7 +477,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) unusableMoves |= gBitTable[i]; if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) unusableMoves |= gBitTable[i]; - if (gBattleMons[bank].moves[i] == gLastUsedMovesByBanks[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) + if (gBattleMons[bank].moves[i] == gOriginallyLastMoves[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) unusableMoves |= gBitTable[i]; if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) unusableMoves |= gBitTable[i]; diff --git a/sym_ewram.txt b/sym_ewram.txt index a66eb7356..16cc33355 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -366,28 +366,28 @@ gActionForBanks: @ 202421C gBattlescriptPtrsForSelection: @ 2024220 .space 0x10 -gUnknown_02024230: @ 2024230 +gSelectionBattleScripts: @ 2024230 .space 0x10 -gUnknownMovesUsedByBanks: @ 2024240 +gOriginallyLastPrintedMoves: @ 2024240 .space 0x8 -gLastUsedMovesByBanks: @ 2024248 +gOriginallyLastMoves: @ 2024248 .space 0x8 -gTurnMovesHitWith: @ 2024250 +gLastLandedMoves: @ 2024250 .space 0x8 -gUnknown_02024258: @ 2024258 +gLastHitByType: @ 2024258 .space 0x8 -gUnknown_02024260: @ 2024260 +gLastMoves: @ 2024260 .space 0x8 gLockedMoves: @ 2024268 .space 0x8 -gTurnMovesHitBy: @ 2024270 +gLastHitBy: @ 2024270 .space 0x4 gChosenMovesByBanks: @ 2024274 -- cgit v1.2.3 From 1bb5b1fd07260cd027d9504a0debfdc294cebc9f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 17:15:28 +0100 Subject: more battle labels --- data/battle_scripts_1.s | 328 +++++++++++++++++++++++------------------------ data/battle_scripts_2.s | 2 +- include/battle_scripts.h | 148 ++++++++++----------- src/battle_2.c | 28 ++-- src/battle_util.c | 210 +++++++++++++++--------------- sym_ewram.txt | 4 +- 6 files changed, 362 insertions(+), 358 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 1da4aec0b..a213225c6 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -745,7 +745,7 @@ BattleScript_EffectLightScreen:: attackstring ppreduce setlightscreen - goto BattleScript_82D928C + goto BattleScript_PrintReflectLightScreenSafeguardString BattleScript_EffectTriAttack:: setmoveeffect EFFECT_TRI_ATTACK @@ -755,8 +755,8 @@ BattleScript_EffectRest:: attackcanceler attackstring ppreduce - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8FD6 - jumpifcantmakeasleep BattleScript_82D8FC6 + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep + jumpifcantmakeasleep BattleScript_RestCantSleep trysetrest BattleScript_AlreadyAtFullHp pause 0x20 printfromtable gRestUsedStringIds @@ -765,13 +765,13 @@ BattleScript_EffectRest:: waitstate goto BattleScript_PresentHealTarget -BattleScript_82D8FC6:: +BattleScript_RestCantSleep:: pause 0x40 printfromtable gUproarAwakeStringIds waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D8FD6:: +BattleScript_RestIsAlreadyAsleep:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYASLEEP2 @@ -795,13 +795,13 @@ BattleScript_KOFail:: goto BattleScript_MoveEnd BattleScript_EffectRazorWind:: - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 - jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn setbyte sTWOTURN_STRINGID, 0x0 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd -BattleScript_82D9040:: +BattleScript_TwoTurnMovesSecondTurn:: attackcanceler setmoveeffect EFFECT_CHARGING setbyte sANIM_TURN, 0x1 @@ -847,11 +847,11 @@ BattleScript_EffectDragonRage:: goto BattleScript_HitFromAtkAnimation BattleScript_EffectTrap:: - jumpifnotmove MOVE_WHIRLPOOL, BattleScript_82D9105 - jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_82D9105 + jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 -BattleScript_82D9105:: +BattleScript_DoWrapEffect:: setmoveeffect EFFECT_WRAP goto BattleScript_EffectHit @@ -996,7 +996,7 @@ BattleScript_EffectReflect:: attackstring ppreduce setreflect -BattleScript_82D928C:: +BattleScript_PrintReflectLightScreenSafeguardString:: attackanimation waitanimation printfromtable gReflectLightScreenSafeguardStringIds @@ -1082,8 +1082,8 @@ BattleScript_EffectAccuracyDownHit:: goto BattleScript_EffectHit BattleScript_EffectSkyAttack:: - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 - jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn setbyte sTWOTURN_STRINGID, 0x3 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd @@ -1107,21 +1107,21 @@ BattleScript_EffectSubstitute:: ppreduce attackstring waitstate - jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_82D943E + jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute setsubstitute - jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D942B + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim pause 0x20 - goto BattleScript_82D9431 -BattleScript_82D942B:: + goto BattleScript_SubstituteString +BattleScript_SubstituteAnim:: attackanimation waitanimation healthbarupdate ATTACKER datahpupdate ATTACKER -BattleScript_82D9431:: +BattleScript_SubstituteString:: printfromtable gSubsituteUsedStringIds waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82D943E:: +BattleScript_AlreadyHasSubstitute:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNHASSUBSTITUTE @@ -1180,8 +1180,8 @@ BattleScript_EffectLeechSeed:: pause 0x20 ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - accuracycheck BattleScript_82D94E5, ACC_CURR_MOVE -BattleScript_82D94E5:: + accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE +BattleScript_DoLeechSeed:: setseeded attackanimation waitanimation @@ -1276,16 +1276,16 @@ BattleScript_EffectPainSplit:: BattleScript_EffectSnore:: attackcanceler - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D95CE + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep attackstring ppreduce goto BattleScript_ButItFailed -BattleScript_82D95CE:: - jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_82D95E2 +BattleScript_SnoreIsAsleep:: + jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_DoSnore printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER -BattleScript_82D95E2:: +BattleScript_DoSnore:: attackstring ppreduce accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE @@ -1388,15 +1388,15 @@ BattleScript_EffectHealBell:: waitanimation printfromtable gPartyStatusHealStringIds waitmessage 0x40 - jumpifnotmove MOVE_HEAL_BELL, BattleScript_82D96FE - jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D96ED + jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected printstring STRINGID_PKMNSXBLOCKSY waitmessage 0x40 -BattleScript_82D96ED:: - jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D96FE +BattleScript_CheckHealBellMon2Unaffected:: + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd printstring STRINGID_PKMNSXBLOCKSY2 waitmessage 0x40 -BattleScript_82D96FE:: +BattleScript_PartyHealEnd:: updatestatusicon ATTACKER_WITH_PARTNER waitstate goto BattleScript_MoveEnd @@ -1411,9 +1411,9 @@ BattleScript_EffectTripleKick:: BattleScript_TripleKickLoop:: jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits - jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_82D973A + jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits -BattleScript_82D973A:: +BattleScript_DoTripleKickAttack:: accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE movevaluescleanup addbyte sTRIPLE_KICK_POWER, 10 @@ -1613,16 +1613,16 @@ BattleScript_EffectSandstorm:: attackstring ppreduce setsandstorm - goto BattleScript_82D9B41 + goto BattleScript_MoveWeatherChange BattleScript_EffectRollout:: attackcanceler attackstring - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D99CD + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy ppreduce -BattleScript_82D99CD:: - accuracycheck BattleScript_82D99D4, ACC_CURR_MOVE -BattleScript_82D99D4:: +BattleScript_RolloutCheckAccuracy:: + accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE +BattleScript_RolloutHit:: typecalc2 rolloutdamagecalculation goto BattleScript_HitFromCritCalc @@ -1637,13 +1637,13 @@ BattleScript_EffectSwagger:: attackanimation waitanimation setstatchanger ATK, 2, FALSE - statbuffchange 0x1, BattleScript_82D9A1E - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9A1E + statbuffchange 0x1, BattleScript_SwaggerTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82D9A1E:: +BattleScript_SwaggerTryConfuse:: jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected setmoveeffect EFFECT_CONFUSION @@ -1654,13 +1654,13 @@ BattleScript_EffectFuryCutter:: attackcanceler attackstring ppreduce - accuracycheck BattleScript_82D9A43, ACC_CURR_MOVE -BattleScript_82D9A43:: + accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE +BattleScript_FuryCutterHit:: furycuttercalc critcalc damagecalc typecalc - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9A43 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_FuryCutterHit adjustnormaldamage goto BattleScript_HitFromAtkAnimation @@ -1696,7 +1696,7 @@ BattleScript_EffectSafeguard:: attackstring ppreduce setsafeguard - goto BattleScript_82D928C + goto BattleScript_PrintReflectLightScreenSafeguardString BattleScript_EffectThawHit:: setmoveeffect EFFECT_BURN @@ -1768,7 +1768,7 @@ BattleScript_EffectRainDance:: attackstring ppreduce setrain -BattleScript_82D9B41:: +BattleScript_MoveWeatherChange:: attackanimation waitanimation printfromtable gMoveWeatherChangeStringIds @@ -1781,7 +1781,7 @@ BattleScript_EffectSunnyDay:: attackstring ppreduce setsunny - goto BattleScript_82D9B41 + goto BattleScript_MoveWeatherChange BattleScript_EffectDefenseUpHit:: setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER @@ -1831,25 +1831,25 @@ BattleScript_EffectMirrorCoat:: goto BattleScript_HitFromAtkAnimation BattleScript_EffectSkullBash:: - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 - jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn setbyte sTWOTURN_STRINGID, 0x2 call BattleScriptFirstChargingTurn setstatchanger DEF, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82D9C16 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9C16 + statbuffchange AFFECTS_USER | 0x1, BattleScript_SkullBashEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82D9C16:: +BattleScript_SkullBashEnd:: goto BattleScript_MoveEnd BattleScript_EffectTwister:: - jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_82D9C35 + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 -BattleScript_82D9C35:: +BattleScript_FlinchEffect:: setmoveeffect EFFECT_FLINCH goto BattleScript_EffectHit @@ -1864,7 +1864,6 @@ BattleScript_82D9C44:: orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_82D9C73 - BattleScript_82D9C64:: bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND setbyte sDMG_MULTIPLIER, 0x1 @@ -1892,7 +1891,6 @@ BattleScript_82D9C73:: moveend 0x2, 0x10 jumpifnexttargetvalid BattleScript_82D9C44 end - BattleScript_82D9CAC:: pause 0x20 typecalc @@ -1922,17 +1920,17 @@ BattleScript_EffectGust:: goto BattleScript_EffectHit BattleScript_EffectStomp:: - jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_82D9C35 + jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect setbyte sDMG_MULTIPLIER, 0x2 - goto BattleScript_82D9C35 + goto BattleScript_FlinchEffect BattleScript_EffectSolarbeam:: - jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_82D9D28 - jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_82D9D28 + jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn + jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn -BattleScript_82D9D28:: - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 - jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 +BattleScript_SolarbeamDecideTurn:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn setbyte sTWOTURN_STRINGID, 0x1 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd @@ -1941,7 +1939,7 @@ BattleScript_SolarbeamOnFirstTurn:: setmoveeffect EFFECT_CHARGING | AFFECTS_USER seteffectprimary ppreduce - goto BattleScript_82D9040 + goto BattleScript_TwoTurnMovesSecondTurn BattleScript_EffectThunder:: setmoveeffect EFFECT_PARALYSIS @@ -2027,9 +2025,9 @@ BattleScript_SecondTurnSemiInvulnerable:: setbyte sANIM_TURN, 0x1 clearstatusfromeffect ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT - jumpifnotmove MOVE_BOUNCE, BattleScript_82D9EA3 + jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit setmoveeffect EFFECT_PARALYSIS -BattleScript_82D9EA3:: +BattleScript_SemiInvulnerableTryHit:: accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE clearsemiinvulnerablebit goto BattleScript_HitFromAtkString @@ -2044,11 +2042,11 @@ BattleScript_EffectDefenseCurl:: ppreduce setdefensecurlbit setstatchanger DEF, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82D9ED3 + statbuffchange AFFECTS_USER | 0x1, BattleScript_DefenseCurlDoStatUpAnim jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString attackanimation waitanimation -BattleScript_82D9ED3:: +BattleScript_DefenseCurlDoStatUpAnim:: goto BattleScript_StatUpDoAnim BattleScript_EffectSoftboiled:: @@ -2101,9 +2099,9 @@ BattleScript_EffectUproar:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE setmoveeffect EFFECT_UPROAR | AFFECTS_USER attackstring - jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9F5A + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit ppreduce -BattleScript_82D9F5A:: +BattleScript_UproarHit:: nop goto BattleScript_HitFromCritCalc @@ -2161,7 +2159,7 @@ BattleScript_EffectHail:: attackstring ppreduce sethail - goto BattleScript_82D9B41 + goto BattleScript_MoveWeatherChange BattleScript_EffectTorment:: attackcanceler @@ -2185,13 +2183,13 @@ BattleScript_EffectFlatter:: attackanimation waitanimation setstatchanger SPATK, 1, FALSE - statbuffchange 0x1, BattleScript_82DA03A - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA03A + statbuffchange 0x1, BattleScript_FlatterTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA03A:: +BattleScript_FlatterTryConfuse:: jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected setmoveeffect EFFECT_CONFUSION @@ -2203,7 +2201,7 @@ BattleScript_EffectWillOWisp:: attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_BURN, BattleScript_82DA0BB + jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed @@ -2221,7 +2219,7 @@ BattleScript_WaterVeilPrevents:: call BattleScript_BRNPrevention goto BattleScript_MoveEnd -BattleScript_82DA0BB:: +BattleScript_AlreadyBurned:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYHASBURN @@ -2679,9 +2677,9 @@ BattleScript_EffectTickle:: attackcanceler attackstring ppreduce - jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_82DA571 - jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_82DA5CF -BattleScript_82DA571:: + jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_TickleDoMoveAnim + jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_CantLowerMultipleStats +BattleScript_TickleDoMoveAnim:: accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation waitanimation @@ -2689,21 +2687,21 @@ BattleScript_82DA571:: playstatchangeanimation TARGET, 0x6, 0x5 playstatchangeanimation TARGET, 0x2, 0x1 setstatchanger ATK, 1, TRUE - statbuffchange 0x1, BattleScript_82DA5A7 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5A7 + statbuffchange 0x1, BattleScript_TickleTryLowerDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82DA5A7:: +BattleScript_TickleTryLowerDef:: playstatchangeanimation TARGET, 0x4, 0x1 setstatchanger DEF, 1, TRUE - statbuffchange 0x1, BattleScript_82DA5CA - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5CA + statbuffchange 0x1, BattleScript_TickleEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82DA5CA:: +BattleScript_TickleEnd:: goto BattleScript_MoveEnd -BattleScript_82DA5CF:: +BattleScript_CantLowerMultipleStats:: pause 0x20 orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring STRINGID_STATSWONTDECREASE2 @@ -2714,25 +2712,25 @@ BattleScript_EffectCosmicPower:: attackcanceler attackstring ppreduce - jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DA5F8 + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats -BattleScript_82DA5F8:: +BattleScript_CosmicPowerDoMoveAnim:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x24, 0x0 setstatchanger DEF, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA623 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA623 + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA623:: +BattleScript_CosmicPowerTrySpDef:: setstatchanger SPDEF, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA642 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA642 + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA642:: +BattleScript_CosmicPowerEnd:: goto BattleScript_MoveEnd BattleScript_EffectSkyUppercut:: @@ -2743,50 +2741,50 @@ BattleScript_EffectBulkUp:: attackcanceler attackstring ppreduce - jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA66A + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_BulkUpDoMoveAnim jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats -BattleScript_82DA66A:: +BattleScript_BulkUpDoMoveAnim:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x6, 0x0 setstatchanger ATK, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA695 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA695 + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpTryDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA695:: +BattleScript_BulkUpTryDef:: setstatchanger DEF, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA6B4 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6B4 + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA6B4:: +BattleScript_BulkUpEnd:: goto BattleScript_MoveEnd BattleScript_EffectCalmMind:: attackcanceler attackstring ppreduce - jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DA6CE + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_CalmMindDoMoveAnim jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats -BattleScript_82DA6CE:: +BattleScript_CalmMindDoMoveAnim:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x30, 0x0 setstatchanger SPATK, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA6F9 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6F9 + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA6F9:: +BattleScript_CalmMindTrySpDef:: setstatchanger SPDEF, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA718 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA718 + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA718:: +BattleScript_CalmMindEnd:: goto BattleScript_MoveEnd BattleScript_CantRaiseMultipleStats:: @@ -2800,25 +2798,25 @@ BattleScript_EffectDragonDance:: attackcanceler attackstring ppreduce - jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA746 + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_DragonDanceDoMoveAnim jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats -BattleScript_82DA746:: +BattleScript_DragonDanceDoMoveAnim:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0xA, 0x0 setstatchanger ATK, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA771 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA771 + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceTrySpeed + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA771:: +BattleScript_DragonDanceTrySpeed:: setstatchanger SPEED, 1, FALSE - statbuffchange AFFECTS_USER | 0x1, BattleScript_82DA790 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA790 + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd printfromtable gStatUpStringIds waitmessage 0x40 -BattleScript_82DA790:: +BattleScript_DragonDanceEnd:: goto BattleScript_MoveEnd BattleScript_EffectCamouflage:: @@ -2964,23 +2962,22 @@ BattleScript_PayDayMoneyAndPickUpItems:: end2 BattleScript_LocalBattleLost:: - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOME, BattleScript_82DA9BE - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA9C9 - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_82DA9C9 - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_82DA9BD - jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_82DA9BD -BattleScript_82DA9B1:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_LocalBattleLostPrintTrainersWinText + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_LocalBattleLostPrintTrainersWinText + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd + jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd +BattleScript_LocalBattleLostPrintWhiteOut:: printstring STRINGID_PLAYERWHITEOUT waitmessage 0x40 printstring STRINGID_PLAYERWHITEOUT2 waitmessage 0x40 -BattleScript_82DA9BD:: +BattleScript_LocalBattleLostEnd:: end2 - -BattleScript_82DA9BE:: - jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_82DAA0A -BattleScript_82DA9C9:: - jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA9B1 +BattleScript_CheckDomeDrew:: + jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_LocalBattleLostEnd_ +BattleScript_LocalBattleLostPrintTrainersWinText:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 waitstate various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 @@ -2988,15 +2985,15 @@ BattleScript_82DA9C9:: trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1WINTEXT - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x800000, BattleScript_82DAA01 - jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAA0A -BattleScript_82DAA01:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ +BattleScript_LocalBattleLostDoTrainer2WinText:: trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2WINTEXT -BattleScript_82DAA0A:: +BattleScript_LocalBattleLostEnd_:: end2 BattleScript_82DAA0B:: @@ -3022,9 +3019,9 @@ BattleScript_LinkBattleWonOrLost:: jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C printstring STRINGID_BATTLEEND waitmessage 0x40 - jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA58 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd atk57 -BattleScript_82DAA58:: +BattleScript_LinkBattleWonOrLostWaitEnd:: waitmessage 0x40 end2 @@ -3051,7 +3048,6 @@ BattleScript_FrontierTrainerBattleWon:: jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB printstring STRINGID_PLAYERDEFEATEDTRAINER1 goto BattleScript_82DAAAE - BattleScript_82DAAAB:: printstring STRINGID_TWOENEMIESDEFEATED BattleScript_82DAAAE:: @@ -3104,7 +3100,7 @@ BattleScript_82DAB0B:: printselectionstringfromtable gNoEscapeStringIds endselectionscript -BattleScript_82DAB11:: +BattleScript_PrintFullBox:: printselectionstring STRINGID_BOXISFULL endselectionscript @@ -3216,23 +3212,23 @@ BattleScript_LearnedNewMove:: BattleScript_LearnMoveReturn:: return -BattleScript_82DAC2C:: +BattleScript_RainContinuesOrEnds:: printfromtable gRainContinuesStringIds waitmessage 0x40 - jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DAC46 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL -BattleScript_82DAC46:: +BattleScript_RainContinuesOrEndsEnd:: end2 -BattleScript_82DAC47:: +BattleScript_DamagingWeatherContinues:: printfromtable gSandStormHailContinuesStringIds waitmessage 0x40 playanimation2 ATTACKER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 -BattleScript_82DAC5F:: +BattleScript_DamagingWeatherLoop:: copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 weatherdamage - jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_82DACA0 + jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement printfromtable gSandStormHailDmgStringIds waitmessage 0x40 orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE @@ -3241,38 +3237,38 @@ BattleScript_82DAC5F:: healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL - atk24 BattleScript_82DACA0 -BattleScript_82DACA0:: - jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DACBF + atk24 BattleScript_DamagingWeatherLoopIncrement +BattleScript_DamagingWeatherLoopIncrement:: + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd addbyte gBattleCommunication, 0x1 - jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_82DAC5F -BattleScript_82DACBF:: + jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop +BattleScript_DamagingWeatherContinuesEnd:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE end2 -BattleScript_82DACC9:: +BattleScript_SandStormHailEnds:: printfromtable gSandStormHailEndStringIds waitmessage 0x40 end2 -BattleScript_82DACD2:: +BattleScript_SunlightContinues:: printstring STRINGID_SUNLIGHTSTRONG waitmessage 0x40 playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL end2 -BattleScript_82DACE0:: +BattleScript_SunlightFaded:: printstring STRINGID_SUNLIGHTFADED waitmessage 0x40 end2 -BattleScript_82DACE7:: +BattleScript_OverworldWeatherStarts:: printfromtable gWeatherContinuesStringIds waitmessage 0x40 playanimation2 ATTACKER, sANIM_ARG1, NULL end3 -BattleScript_82DACFA:: +BattleScript_SideStatusWoreOff:: printstring STRINGID_PKMNSXWOREOFF waitmessage 0x40 end2 @@ -3283,7 +3279,7 @@ BattleScript_SafeguardProtected:: waitmessage 0x40 end2 -BattleScript_82DAD0B:: +BattleScript_SafeguardEnds:: pause 0x20 printstring STRINGID_PKMNSAFEGUARDEXPIRED waitmessage 0x40 @@ -3384,7 +3380,7 @@ BattleScript_MoveUsedIsDisabled:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82DAE1F:: +BattleScript_SelectingDisabledMove:: printselectionstring STRINGID_PKMNMOVEISDISABLED endselectionscript @@ -3583,7 +3579,7 @@ BattleScript_NoMovesLeft:: printselectionstring STRINGID_PKMNHASNOMOVESLEFT endselectionscript -BattleScript_82DB076:: +BattleScript_SelectingMoveWithNoPP:: printselectionstring STRINGID_NOPPLEFT endselectionscript @@ -3594,7 +3590,7 @@ BattleScript_NoPPForMove:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82DB089:: +BattleScript_SelectingTormentedMove:: printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT endselectionscript @@ -3607,7 +3603,7 @@ BattleScript_82DB098:: printstring STRINGID_PKMNCANTUSEMOVETORMENT goto BattleScript_82DAE2D -BattleScript_82DB0A0:: +BattleScript_SelectingNotAllowedMoveTaunt:: printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT endselectionscript @@ -3685,7 +3681,7 @@ BattleScript_MoveUsedIsImprisoned:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82DB181:: +BattleScript_SelectingImprisionedMove:: printselectionstring STRINGID_PKMNCANTUSEMOVESEALED endselectionscript @@ -4123,9 +4119,9 @@ BattleScript_MoveHPDrain:: orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED goto BattleScript_MoveEnd -BattleScript_82DB591:: +BattleScript_MonMadeMoveUseless_PPLoss:: ppreduce -BattleScript_82DB592:: +BattleScript_MonMadeMoveUseless:: attackstring pause 0x20 printstring STRINGID_PKMNSXMADEYUSELESS @@ -4247,7 +4243,7 @@ BattleScript_NoItemSteal:: waitmessage 0x40 return -BattleScript_82DB68C:: +BattleScript_AbilityCuredStatus:: printstring STRINGID_PKMNSXCUREDITSYPROBLEM waitmessage 0x40 updatestatusicon SCRIPTING_BANK @@ -4260,7 +4256,7 @@ BattleScript_82DB695:: moveend 0x2, 0x10 end -BattleScript_82DB6A5:: +BattleScript_IgnoresAndUsesRandomMove:: printstring STRINGID_PKMNIGNOREDORDERS waitmessage 0x40 jumptorandomattack 0x0 @@ -4277,7 +4273,7 @@ BattleScript_82DB6C7:: moveend 0x2, 0x10 end -BattleScript_82DB6D9:: +BattleScript_IgnoresAndFallsAsleep:: printstring STRINGID_PKMNBEGANTONAP waitmessage 0x40 setmoveeffect EFFECT_SLEEP | AFFECTS_USER @@ -4420,7 +4416,7 @@ BattleScript_ItemHealHP_Ret:: datahpupdate ATTACKER return -BattleScript_82DB812:: +BattleScript_SelectingNotAllowedMoveChoiceItem:: printselectionstring STRINGID_ITEMALLOWSONLYYMOVE endselectionscript diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index f54b0a6a0..88991ccd0 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -58,7 +58,7 @@ BattleScript_SafariBallThrow:: handleballthrow BattleScript_SuccessBallThrow:: - jumpifhalfword EQUAL, gLastUsedItem, 0x5, BattleScript_82DBD92 + jumpifhalfword EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_82DBD92 incrementgamestat 0xB BattleScript_82DBD92:: printstring STRINGID_GOTCHAPKMNCAUGHT diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 053942b9f..9c3f4906a 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -76,17 +76,17 @@ extern const u8 BattleScript_EffectPayDay[]; extern const u8 BattleScript_EffectLightScreen[]; extern const u8 BattleScript_EffectTriAttack[]; extern const u8 BattleScript_EffectRest[]; -extern const u8 BattleScript_82D8FC6[]; -extern const u8 BattleScript_82D8FD6[]; +extern const u8 BattleScript_RestCantSleep[]; +extern const u8 BattleScript_RestIsAlreadyAsleep[]; extern const u8 BattleScript_EffectOHKO[]; extern const u8 BattleScript_KOFail[]; extern const u8 BattleScript_EffectRazorWind[]; -extern const u8 BattleScript_82D9040[]; +extern const u8 BattleScript_TwoTurnMovesSecondTurn[]; extern const u8 BattleScriptFirstChargingTurn[]; extern const u8 BattleScript_EffectSuperFang[]; extern const u8 BattleScript_EffectDragonRage[]; extern const u8 BattleScript_EffectTrap[]; -extern const u8 BattleScript_82D9105[]; +extern const u8 BattleScript_DoWrapEffect[]; extern const u8 BattleScript_EffectDoubleHit[]; extern const u8 BattleScript_EffectRecoilIfMiss[]; extern const u8 BattleScript_82D9135[]; @@ -106,7 +106,7 @@ extern const u8 BattleScript_EffectDefenseDown2[]; extern const u8 BattleScript_EffectSpeedDown2[]; extern const u8 BattleScript_EffectSpecialDefenseDown2[]; extern const u8 BattleScript_EffectReflect[]; -extern const u8 BattleScript_82D928C[]; +extern const u8 BattleScript_PrintReflectLightScreenSafeguardString[]; extern const u8 BattleScript_EffectPoison[]; extern const u8 BattleScript_EffectParalyze[]; extern const u8 BattleScript_AlreadyParalyzed[]; @@ -121,9 +121,9 @@ extern const u8 BattleScript_EffectSkyAttack[]; extern const u8 BattleScript_EffectConfuseHit[]; extern const u8 BattleScript_EffectTwineedle[]; extern const u8 BattleScript_EffectSubstitute[]; -extern const u8 BattleScript_82D942B[]; -extern const u8 BattleScript_82D9431[]; -extern const u8 BattleScript_82D943E[]; +extern const u8 BattleScript_SubstituteAnim[]; +extern const u8 BattleScript_SubstituteString[]; +extern const u8 BattleScript_AlreadyHasSubstitute[]; extern const u8 BattleScript_EffectRecharge[]; extern const u8 BattleScript_MoveUsedMustRecharge[]; extern const u8 BattleScript_EffectRage[]; @@ -131,7 +131,7 @@ extern const u8 BattleScript_RageMiss[]; extern const u8 BattleScript_EffectMimic[]; extern const u8 BattleScript_EffectMetronome[]; extern const u8 BattleScript_EffectLeechSeed[]; -extern const u8 BattleScript_82D94E5[]; +extern const u8 BattleScript_DoLeechSeed[]; extern const u8 BattleScript_EffectSplash[]; extern const u8 BattleScript_EffectDisable[]; extern const u8 BattleScript_EffectLevelDamage[]; @@ -140,8 +140,8 @@ extern const u8 BattleScript_EffectCounter[]; extern const u8 BattleScript_EffectEncore[]; extern const u8 BattleScript_EffectPainSplit[]; extern const u8 BattleScript_EffectSnore[]; -extern const u8 BattleScript_82D95CE[]; -extern const u8 BattleScript_82D95E2[]; +extern const u8 BattleScript_SnoreIsAsleep[]; +extern const u8 BattleScript_DoSnore[]; extern const u8 BattleScript_EffectConversion2[]; extern const u8 BattleScript_EffectLockOn[]; extern const u8 BattleScript_EffectSketch[]; @@ -152,11 +152,11 @@ extern const u8 BattleScript_EffectDestinyBond[]; extern const u8 BattleScript_EffectFlail[]; extern const u8 BattleScript_EffectSpite[]; extern const u8 BattleScript_EffectHealBell[]; -extern const u8 BattleScript_82D96ED[]; -extern const u8 BattleScript_82D96FE[]; +extern const u8 BattleScript_CheckHealBellMon2Unaffected[]; +extern const u8 BattleScript_PartyHealEnd[]; extern const u8 BattleScript_EffectTripleKick[]; extern const u8 BattleScript_TripleKickLoop[]; -extern const u8 BattleScript_82D973A[]; +extern const u8 BattleScript_DoTripleKickAttack[]; extern const u8 BattleScript_TripleKickNoMoreHits[]; extern const u8 BattleScript_TripleKickPrintStrings[]; extern const u8 BattleScript_TripleKickEnd[]; @@ -181,12 +181,12 @@ extern const u8 BattleScript_PerishSongLoopIncrement[]; extern const u8 BattleScript_PerishSongNotAffected[]; extern const u8 BattleScript_EffectSandstorm[]; extern const u8 BattleScript_EffectRollout[]; -extern const u8 BattleScript_82D99CD[]; -extern const u8 BattleScript_82D99D4[]; +extern const u8 BattleScript_RolloutCheckAccuracy[]; +extern const u8 BattleScript_RolloutHit[]; extern const u8 BattleScript_EffectSwagger[]; -extern const u8 BattleScript_82D9A1E[]; +extern const u8 BattleScript_SwaggerTryConfuse[]; extern const u8 BattleScript_EffectFuryCutter[]; -extern const u8 BattleScript_82D9A43[]; +extern const u8 BattleScript_FuryCutterHit[]; extern const u8 BattleScript_EffectAttract[]; extern const u8 BattleScript_EffectReturn[]; extern const u8 BattleScript_EffectPresent[]; @@ -199,7 +199,7 @@ extern const u8 BattleScript_EffectSonicboom[]; extern const u8 BattleScript_EffectMorningSun[]; extern const u8 BattleScript_EffectHiddenPower[]; extern const u8 BattleScript_EffectRainDance[]; -extern const u8 BattleScript_82D9B41[]; +extern const u8 BattleScript_MoveWeatherChange[]; extern const u8 BattleScript_EffectSunnyDay[]; extern const u8 BattleScript_EffectDefenseUpHit[]; extern const u8 BattleScript_EffectAttackUpHit[]; @@ -208,9 +208,9 @@ extern const u8 BattleScript_EffectBellyDrum[]; extern const u8 BattleScript_EffectPsychUp[]; extern const u8 BattleScript_EffectMirrorCoat[]; extern const u8 BattleScript_EffectSkullBash[]; -extern const u8 BattleScript_82D9C16[]; +extern const u8 BattleScript_SkullBashEnd[]; extern const u8 BattleScript_EffectTwister[]; -extern const u8 BattleScript_82D9C35[]; +extern const u8 BattleScript_FlinchEffect[]; extern const u8 BattleScript_EffectEarthquake[]; extern const u8 BattleScript_82D9C44[]; extern const u8 BattleScript_82D9C64[]; @@ -220,7 +220,7 @@ extern const u8 BattleScript_EffectFutureSight[]; extern const u8 BattleScript_EffectGust[]; extern const u8 BattleScript_EffectStomp[]; extern const u8 BattleScript_EffectSolarbeam[]; -extern const u8 BattleScript_82D9D28[]; +extern const u8 BattleScript_SolarbeamDecideTurn[]; extern const u8 BattleScript_SolarbeamOnFirstTurn[]; extern const u8 BattleScript_EffectThunder[]; extern const u8 BattleScript_EffectTeleport[]; @@ -234,10 +234,10 @@ extern const u8 BattleScript_FirstTurnDive[]; extern const u8 BattleScript_FirstTurnFly[]; extern const u8 BattleScript_FirstTurnSemiInvulnerable[]; extern const u8 BattleScript_SecondTurnSemiInvulnerable[]; -extern const u8 BattleScript_82D9EA3[]; +extern const u8 BattleScript_SemiInvulnerableTryHit[]; extern const u8 BattleScript_SemiInvulnerableMiss[]; extern const u8 BattleScript_EffectDefenseCurl[]; -extern const u8 BattleScript_82D9ED3[]; +extern const u8 BattleScript_DefenseCurlDoStatUpAnim[]; extern const u8 BattleScript_EffectSoftboiled[]; extern const u8 BattleScript_PresentHealTarget[]; extern const u8 BattleScript_AlreadyAtFullHp[]; @@ -247,7 +247,7 @@ extern const u8 BattleScript_ButItFailedPpReduce[]; extern const u8 BattleScript_ButItFailed[]; extern const u8 BattleScript_NotAffected[]; extern const u8 BattleScript_EffectUproar[]; -extern const u8 BattleScript_82D9F5A[]; +extern const u8 BattleScript_UproarHit[]; extern const u8 BattleScript_EffectStockpile[]; extern const u8 BattleScript_EffectSpitUp[]; extern const u8 BattleScript_SpitUpFail[]; @@ -257,10 +257,10 @@ extern const u8 BattleScript_SwallowFail[]; extern const u8 BattleScript_EffectHail[]; extern const u8 BattleScript_EffectTorment[]; extern const u8 BattleScript_EffectFlatter[]; -extern const u8 BattleScript_82DA03A[]; +extern const u8 BattleScript_FlatterTryConfuse[]; extern const u8 BattleScript_EffectWillOWisp[]; extern const u8 BattleScript_WaterVeilPrevents[]; -extern const u8 BattleScript_82DA0BB[]; +extern const u8 BattleScript_AlreadyBurned[]; extern const u8 BattleScript_EffectMemento[]; extern const u8 BattleScript_82DA119[]; extern const u8 BattleScript_82DA13C[]; @@ -317,28 +317,28 @@ extern const u8 BattleScript_EffectPoisonFang[]; extern const u8 BattleScript_EffectWeatherBall[]; extern const u8 BattleScript_EffectOverheat[]; extern const u8 BattleScript_EffectTickle[]; -extern const u8 BattleScript_82DA571[]; -extern const u8 BattleScript_82DA5A7[]; -extern const u8 BattleScript_82DA5CA[]; -extern const u8 BattleScript_82DA5CF[]; +extern const u8 BattleScript_TickleDoMoveAnim[]; +extern const u8 BattleScript_TickleTryLowerDef[]; +extern const u8 BattleScript_TickleEnd[]; +extern const u8 BattleScript_CantLowerMultipleStats[]; extern const u8 BattleScript_EffectCosmicPower[]; -extern const u8 BattleScript_82DA5F8[]; -extern const u8 BattleScript_82DA623[]; -extern const u8 BattleScript_82DA642[]; +extern const u8 BattleScript_CosmicPowerDoMoveAnim[]; +extern const u8 BattleScript_CosmicPowerTrySpDef[]; +extern const u8 BattleScript_CosmicPowerEnd[]; extern const u8 BattleScript_EffectSkyUppercut[]; extern const u8 BattleScript_EffectBulkUp[]; -extern const u8 BattleScript_82DA66A[]; -extern const u8 BattleScript_82DA695[]; -extern const u8 BattleScript_82DA6B4[]; +extern const u8 BattleScript_BulkUpDoMoveAnim[]; +extern const u8 BattleScript_BulkUpTryDef[]; +extern const u8 BattleScript_BulkUpEnd[]; extern const u8 BattleScript_EffectCalmMind[]; -extern const u8 BattleScript_82DA6CE[]; -extern const u8 BattleScript_82DA6F9[]; -extern const u8 BattleScript_82DA718[]; +extern const u8 BattleScript_CalmMindDoMoveAnim[]; +extern const u8 BattleScript_CalmMindTrySpDef[]; +extern const u8 BattleScript_CalmMindEnd[]; extern const u8 BattleScript_CantRaiseMultipleStats[]; extern const u8 BattleScript_EffectDragonDance[]; -extern const u8 BattleScript_82DA746[]; -extern const u8 BattleScript_82DA771[]; -extern const u8 BattleScript_82DA790[]; +extern const u8 BattleScript_DragonDanceDoMoveAnim[]; +extern const u8 BattleScript_DragonDanceTrySpeed[]; +extern const u8 BattleScript_DragonDanceEnd[]; extern const u8 BattleScript_EffectCamouflage[]; extern const u8 BattleScript_FaintAttacker[]; extern const u8 BattleScript_FaintTarget[]; @@ -357,16 +357,16 @@ extern const u8 BattleScript_LocalBattleWonLoseTexts[]; extern const u8 BattleScript_LocalBattleWonReward[]; extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; extern const u8 BattleScript_LocalBattleLost[]; -extern const u8 BattleScript_82DA9B1[]; -extern const u8 BattleScript_82DA9BD[]; -extern const u8 BattleScript_82DA9BE[]; -extern const u8 BattleScript_82DA9C9[]; -extern const u8 BattleScript_82DAA01[]; -extern const u8 BattleScript_82DAA0A[]; +extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[]; +extern const u8 BattleScript_LocalBattleLostEnd[]; +extern const u8 BattleScript_CheckDomeDrew[]; +extern const u8 BattleScript_LocalBattleLostPrintTrainersWinText[]; +extern const u8 BattleScript_LocalBattleLostDoTrainer2WinText[]; +extern const u8 BattleScript_LocalBattleLostEnd_[]; extern const u8 BattleScript_82DAA0B[]; extern const u8 BattleScript_82DAA31[]; extern const u8 BattleScript_LinkBattleWonOrLost[]; -extern const u8 BattleScript_82DAA58[]; +extern const u8 BattleScript_LinkBattleWonOrLostWaitEnd[]; extern const u8 BattleScript_82DAA5C[]; extern const u8 BattleScript_82DAA83[]; extern const u8 BattleScript_FrontierTrainerBattleWon[]; @@ -381,7 +381,7 @@ extern const u8 BattleScript_WildMonFled[]; extern const u8 BattleScript_82DAAFE[]; extern const u8 BattleScript_PrintFailedToRunString[]; extern const u8 BattleScript_82DAB0B[]; -extern const u8 BattleScript_82DAB11[]; +extern const u8 BattleScript_PrintFullBox[]; extern const u8 BattleScript_ActionSwitch[]; extern const u8 BattleScript_82DAB35[]; extern const u8 BattleScript_82DAB37[]; @@ -395,19 +395,19 @@ extern const u8 BattleScript_AskToLearnMove[]; extern const u8 BattleScript_ForgotAndLearnedNewMove[]; extern const u8 BattleScript_LearnedNewMove[]; extern const u8 BattleScript_LearnMoveReturn[]; -extern const u8 BattleScript_82DAC2C[]; -extern const u8 BattleScript_82DAC46[]; -extern const u8 BattleScript_82DAC47[]; -extern const u8 BattleScript_82DAC5F[]; -extern const u8 BattleScript_82DACA0[]; -extern const u8 BattleScript_82DACBF[]; -extern const u8 BattleScript_82DACC9[]; -extern const u8 BattleScript_82DACD2[]; -extern const u8 BattleScript_82DACE0[]; -extern const u8 BattleScript_82DACE7[]; -extern const u8 BattleScript_82DACFA[]; +extern const u8 BattleScript_RainContinuesOrEnds[]; +extern const u8 BattleScript_RainContinuesOrEndsEnd[]; +extern const u8 BattleScript_DamagingWeatherContinues[]; +extern const u8 BattleScript_DamagingWeatherLoop[]; +extern const u8 BattleScript_DamagingWeatherLoopIncrement[]; +extern const u8 BattleScript_DamagingWeatherContinuesEnd[]; +extern const u8 BattleScript_SandStormHailEnds[]; +extern const u8 BattleScript_SunlightContinues[]; +extern const u8 BattleScript_SunlightFaded[]; +extern const u8 BattleScript_OverworldWeatherStarts[]; +extern const u8 BattleScript_SideStatusWoreOff[]; extern const u8 BattleScript_SafeguardProtected[]; -extern const u8 BattleScript_82DAD0B[]; +extern const u8 BattleScript_SafeguardEnds[]; extern const u8 BattleScript_LeechSeedTurnDrain[]; extern const u8 BattleScript_82DAD47[]; extern const u8 BattleScript_82DAD4D[]; @@ -419,7 +419,7 @@ extern const u8 BattleScript_82DADF1[]; extern const u8 BattleScript_MistProtected[]; extern const u8 BattleScript_RageIsBuilding[]; extern const u8 BattleScript_MoveUsedIsDisabled[]; -extern const u8 BattleScript_82DAE1F[]; +extern const u8 BattleScript_SelectingDisabledMove[]; extern const u8 BattleScript_DisabledNoMore[]; extern const u8 BattleScript_82DAE2A[]; extern const u8 BattleScript_82DAE2D[]; @@ -453,12 +453,12 @@ extern const u8 BattleScript_82DB027[]; extern const u8 BattleScript_82DB03F[]; extern const u8 BattleScript_82DB058[]; extern const u8 BattleScript_NoMovesLeft[]; -extern const u8 BattleScript_82DB076[]; +extern const u8 BattleScript_SelectingMoveWithNoPP[]; extern const u8 BattleScript_NoPPForMove[]; -extern const u8 BattleScript_82DB089[]; +extern const u8 BattleScript_SelectingTormentedMove[]; extern const u8 BattleScript_82DB08D[]; extern const u8 BattleScript_82DB098[]; -extern const u8 BattleScript_82DB0A0[]; +extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[]; extern const u8 BattleScript_MoveUsedIsTaunted[]; extern const u8 BattleScript_82DB0AF[]; extern const u8 BattleScript_WishComesTrue[]; @@ -470,7 +470,7 @@ extern const u8 BattleScript_82DB144[]; extern const u8 BattleScript_82DB167[]; extern const u8 BattleScript_KnockedOff[]; extern const u8 BattleScript_MoveUsedIsImprisoned[]; -extern const u8 BattleScript_82DB181[]; +extern const u8 BattleScript_SelectingImprisionedMove[]; extern const u8 BattleScript_82DB185[]; extern const u8 BattleScript_GrudgeTakesPp[]; extern const u8 BattleScript_MagicCoatBounce[]; @@ -546,8 +546,8 @@ extern const u8 BattleScript_SturdyPreventsOHKO[]; extern const u8 BattleScript_DampStopsExplosion[]; extern const u8 BattleScript_MoveHPDrain_PPLoss[]; extern const u8 BattleScript_MoveHPDrain[]; -extern const u8 BattleScript_82DB591[]; -extern const u8 BattleScript_82DB592[]; +extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[]; +extern const u8 BattleScript_MonMadeMoveUseless[]; extern const u8 BattleScript_FlashFireBoost_PPLoss[]; extern const u8 BattleScript_FlashFireBoost[]; extern const u8 BattleScript_82DB5B9[]; @@ -567,12 +567,12 @@ extern const u8 BattleScript_CuteCharmActivates[]; extern const u8 BattleScript_ApplySecondaryEffect[]; extern const u8 BattleScript_SynchronizeActivates[]; extern const u8 BattleScript_NoItemSteal[]; -extern const u8 BattleScript_82DB68C[]; +extern const u8 BattleScript_AbilityCuredStatus[]; extern const u8 BattleScript_82DB695[]; -extern const u8 BattleScript_82DB6A5[]; +extern const u8 BattleScript_IgnoresAndUsesRandomMove[]; extern const u8 BattleScript_MoveUsedLoafingAround[]; extern const u8 BattleScript_82DB6C7[]; -extern const u8 BattleScript_82DB6D9[]; +extern const u8 BattleScript_IgnoresAndFallsAsleep[]; extern const u8 BattleScript_82DB6F0[]; extern const u8 BattleScript_SubstituteFade[]; extern const u8 BattleScript_BerryCurePrlzEnd2[]; @@ -595,7 +595,7 @@ extern const u8 BattleScript_ItemHealHP_RemoveItem[]; extern const u8 BattleScript_BerryPPHealEnd2[]; extern const u8 BattleScript_ItemHealHP_End2[]; extern const u8 BattleScript_ItemHealHP_Ret[]; -extern const u8 BattleScript_82DB812[]; +extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; extern const u8 BattleScript_HangedOnMsg[]; extern const u8 BattleScript_BerryConfuseHealEnd2[]; extern const u8 BattleScript_BerryStatRaiseEnd2[]; diff --git a/src/battle_2.c b/src/battle_2.c index 53437811a..b03e96622 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -120,7 +120,7 @@ extern u32 gBattleExecBuffer; extern u8 gMultiHitCounter; extern u8 gBattleMoveFlags; extern s32 gBattleMoveDamage; -extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; @@ -141,7 +141,7 @@ extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; extern u8 gCurrentActionFuncId; extern u8 gLastUsedAbility; extern u8 gUnknown_0203CF00[]; -extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; +extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern const u8* gBattlescriptCurrInstr; extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; extern u8 gCurrentTurnActionNumber; @@ -2751,7 +2751,7 @@ static void BattleStartClearSetData(void) gLockedMoves[i] = 0; gOriginallyLastPrintedMoves[i] = 0; gBattleResources->flags->flags[i] = 0; - gSelectionBattleScripts[i] = 0; + gPalaceSelectionBattleScripts[i] = 0; } for (i = 0; i < 2; i++) @@ -3983,7 +3983,7 @@ static void HandleTurnActionSelectionState(void) | BATTLE_TYPE_x2000000)) { RecordedBattle_ClearBankAction(gActiveBank, 1); - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; + gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4028,7 +4028,7 @@ static void HandleTurnActionSelectionState(void) case ACTION_SAFARI_ZONE_BALL: if (IsPlayerPartyAndPokemonStorageFull()) { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAB11; + gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4083,7 +4083,7 @@ static void HandleTurnActionSelectionState(void) && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB9BA; + gSelectionBattleScripts[gActiveBank] = BattleScript_82DB9BA; gBattleCommunication[gActiveBank] = 8; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4099,7 +4099,7 @@ static void HandleTurnActionSelectionState(void) else if (IsRunningFromBattleImpossible() != 0 && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAB0B; + gSelectionBattleScripts[gActiveBank] = BattleScript_82DAB0B; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4252,12 +4252,12 @@ static void HandleTurnActionSelectionState(void) else { gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gBattlescriptPtrsForSelection[gActiveBank]; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } - gBattlescriptPtrsForSelection[gActiveBank] = gBattlescriptCurrInstr; + gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; } break; case STATE_WAIT_SET_BEFORE_ACTION: @@ -4284,12 +4284,12 @@ static void HandleTurnActionSelectionState(void) else { gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gBattlescriptPtrsForSelection[gActiveBank]; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } - gBattlescriptPtrsForSelection[gActiveBank] = gBattlescriptCurrInstr; + gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; } break; } @@ -5217,11 +5217,11 @@ static void HandleAction_UseMove(void) gCurrentActionFuncId = 12; return; } - else if (gSelectionBattleScripts[gBankAttacker] != NULL) + else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gSelectionBattleScripts[gBankAttacker]; - gSelectionBattleScripts[gBankAttacker] = NULL; + gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker]; + gPalaceSelectionBattleScripts[gBankAttacker] = NULL; } else { diff --git a/src/battle_util.c b/src/battle_util.c index 9f2bf2797..021251b35 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -22,8 +22,8 @@ #include "link.h" extern const u8* gBattlescriptCurrInstr; -extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u8 gActiveBank; extern u8 gStringBank; @@ -363,12 +363,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gSelectionBattleScripts[gActiveBank] = BattleScript_82DAE2A; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_82DAE2A; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAE1F; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMove; limitations = 1; } } @@ -378,12 +378,12 @@ u8 TrySetCantSelectMoveBattleScript(void) CancelMultiTurnMoves(gActiveBank); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gSelectionBattleScripts[gActiveBank] = BattleScript_82DB098; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_82DB098; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB089; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMove; limitations++; } } @@ -393,12 +393,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gSelectionBattleScripts[gActiveBank] = BattleScript_82DB0AF; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_82DB0AF; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB0A0; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTaunt; limitations++; } } @@ -408,12 +408,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gSelectionBattleScripts[gActiveBank] = BattleScript_82DB185; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_82DB185; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB181; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMove; limitations++; } } @@ -435,7 +435,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB812; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveChoiceItem; limitations++; } } @@ -448,7 +448,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB076; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingMoveWithNoPP; limitations++; } } @@ -499,7 +499,7 @@ bool8 AreAllMovesUnusable(void) if (unusable == 0xF) // all moves are unusable { gProtectStructs[gActiveBank].onlyStruggle = 1; - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_NoMovesLeft; + gSelectionBattleScripts[gActiveBank] = BattleScript_NoMovesLeft; } else { @@ -583,7 +583,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].reflectTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; - BattleScriptExecute(BattleScript_82DACFA); + BattleScriptExecute(BattleScript_SideStatusWoreOff); PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT); effect++; } @@ -608,7 +608,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].lightscreenTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; - BattleScriptExecute(BattleScript_82DACFA); + BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN); effect++; @@ -633,7 +633,7 @@ u8 UpdateTurnCounters(void) && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; - BattleScriptExecute(BattleScript_82DACFA); + BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST); effect++; @@ -658,7 +658,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].safeguardTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; - BattleScriptExecute(BattleScript_82DAD0B); + BattleScriptExecute(BattleScript_SafeguardEnds); effect++; } } @@ -710,10 +710,15 @@ u8 UpdateTurnCounters(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) + { gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } else + { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - BattleScriptExecute(BattleScript_82DAC2C); + } + + BattleScriptExecute(BattleScript_RainContinuesOrEnds); effect++; } gBattleStruct->turncountersTracker++; @@ -724,12 +729,14 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; - gBattlescriptCurrInstr = BattleScript_82DACC9; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; } else - gBattlescriptCurrInstr = BattleScript_82DAC47; + { + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; + } - gBattleScripting.animArg1 = 0xC; + gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 0; BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -742,10 +749,12 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SUN_TEMPORARY; - gBattlescriptCurrInstr = BattleScript_82DACE0; + gBattlescriptCurrInstr = BattleScript_SunlightFaded; } else - gBattlescriptCurrInstr = BattleScript_82DACD2; + { + gBattlescriptCurrInstr = BattleScript_SunlightContinues; + } BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -758,12 +767,13 @@ u8 UpdateTurnCounters(void) if (--gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_HAIL; - gBattlescriptCurrInstr = BattleScript_82DACC9; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; } else { - gBattlescriptCurrInstr = BattleScript_82DAC47; + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; } + gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(gBattlescriptCurrInstr); @@ -1828,7 +1838,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (effect) { gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); - BattleScriptPushCursorAndCallback(BattleScript_82DACE7); + BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts); } break; case ABILITY_DRIZZLE: @@ -2034,9 +2044,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) { if ((gProtectStructs[gBankAttacker].notFirstStrike)) - gBattlescriptCurrInstr = BattleScript_82DB592; + gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless; else - gBattlescriptCurrInstr = BattleScript_82DB591; + gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless_PPLoss; } else { @@ -2174,86 +2184,84 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_IMMUNITY: // 5 + for (bank = 0; bank < gNoOfAllBanks; bank++) { - for (bank = 0; bank < gNoOfAllBanks; bank++) + switch (gBattleMons[bank].ability) { - switch (gBattleMons[bank].ability) + case ABILITY_IMMUNITY: + if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER)) { - case ABILITY_IMMUNITY: - if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER)) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - effect = 1; - } - break; - case ABILITY_OWN_TEMPO: - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - effect = 2; - } - break; - case ABILITY_LIMBER: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - effect = 1; - } - break; - case ABILITY_INSOMNIA: - case ABILITY_VITAL_SPIRIT: - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - effect = 1; - } - break; - case ABILITY_WATER_VEIL: - if (gBattleMons[bank].status1 & STATUS_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - effect = 1; - } + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + effect = 1; + } + break; + case ABILITY_OWN_TEMPO: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + effect = 2; + } + break; + case ABILITY_LIMBER: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + effect = 1; + } + break; + case ABILITY_INSOMNIA: + case ABILITY_VITAL_SPIRIT: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + effect = 1; + } + break; + case ABILITY_WATER_VEIL: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + effect = 1; + } + break; + case ABILITY_MAGMA_ARMOR: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + effect = 1; + } + break; + case ABILITY_OBLIVIOUS: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + effect = 3; + } + break; + } + if (effect) + { + switch (effect) + { + case 1: // status cleared + gBattleMons[bank].status1 = 0; break; - case ABILITY_MAGMA_ARMOR: - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - effect = 1; - } + case 2: // get rid of confusion + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); break; - case ABILITY_OBLIVIOUS: - if (gBattleMons[bank].status2 & STATUS2_INFATUATION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); - effect = 3; - } + case 3: // get rid of infatuation + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); break; } - if (effect) - { - switch (effect) - { - case 1: // status cleared - gBattleMons[bank].status1 = 0; - break; - case 2: // get rid of confusion - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - break; - case 3: // get rid of infatuation - gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); - break; - } - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_82DB68C; - gBattleScripting.bank = bank; - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - return effect; - } + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; + gBattleScripting.bank = bank; + gActiveBank = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + return effect; } } break; @@ -3387,7 +3395,7 @@ u8 IsPokeDisobedient(void) } while (gBitTable[gCurrMovePos] & calc); gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gBattlescriptCurrInstr = BattleScript_82DB6A5; + gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; gBankTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; @@ -3409,7 +3417,7 @@ u8 IsPokeDisobedient(void) } if (i == gNoOfAllBanks) { - gBattlescriptCurrInstr = BattleScript_82DB6D9; + gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; return 1; } } diff --git a/sym_ewram.txt b/sym_ewram.txt index 16cc33355..cff1df585 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -363,10 +363,10 @@ gBattlescriptCurrInstr: @ 2024214 gActionForBanks: @ 202421C .space 0x4 -gBattlescriptPtrsForSelection: @ 2024220 +gSelectionBattleScripts: @ 2024220 .space 0x10 -gSelectionBattleScripts: @ 2024230 +gPalaceSelectionBattleScripts: @ 2024230 .space 0x10 gOriginallyLastPrintedMoves: @ 2024240 -- cgit v1.2.3 From 59f64c622bf2ed7a0fcc6d45975813bc55c84141 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 17:26:11 +0100 Subject: name more battlescripts --- data/battle_scripts_1.s | 19 +++++++++---------- include/battle_scripts.h | 16 ++++++++-------- src/battle_2.c | 8 ++++---- src/battle_message.c | 2 +- src/battle_util.c | 10 +++++----- 5 files changed, 27 insertions(+), 28 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index a213225c6..5e7488108 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3087,7 +3087,7 @@ BattleScript_WildMonFled:: waitmessage 0x40 end2 -BattleScript_82DAAFE:: +BattleScript_PrintCantRunFromTrainer:: printstring STRINGID_NORUNNINGFROMTRAINERS end2 @@ -3096,7 +3096,7 @@ BattleScript_PrintFailedToRunString:: waitmessage 0x40 end2 -BattleScript_82DAB0B:: +BattleScript_PrintCantEscapeFromBattle:: printselectionstringfromtable gNoEscapeStringIds endselectionscript @@ -3463,7 +3463,7 @@ BattleScript_82DAEFE:: waitmessage 0x40 return -BattleScript_82DAF05:: +BattleScript_PerishSongTakesLife:: printstring STRINGID_PKMNPERISHCOUNTFELL waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 @@ -3472,7 +3472,7 @@ BattleScript_82DAF05:: tryfaintmon ATTACKER, FALSE, NULL end2 -BattleScript_82DAF20:: +BattleScript_PerishSongCountGoesDown:: printstring STRINGID_PKMNPERISHCOUNTFELL waitmessage 0x40 end2 @@ -3533,7 +3533,7 @@ BattleScript_SpikesFree:: waitmessage 0x40 return -BattleScript_82DAFE4:: +BattleScript_MonTookFutureAttack:: printstring STRINGID_PKMNTOOKATTACK waitmessage 0x40 jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB001 @@ -3565,7 +3565,6 @@ BattleScript_82DB03F:: moveend 0x2, 0xE setbyte gBattleMoveFlags, 0 end2 - BattleScript_82DB058:: pause 0x20 setbyte gBattleMoveFlags, 0 @@ -3757,7 +3756,7 @@ BattleScript_MoveUsedWokeUp:: updatestatusicon ATTACKER return -BattleScript_82DB234:: +BattleScript_MonWokeUpInUproar:: printstring STRINGID_PKMNWOKEUPINUPROAR waitmessage 0x40 updatestatusicon ATTACKER @@ -3812,8 +3811,8 @@ BattleScript_MoveUsedFlinched:: waitmessage 0x40 goto BattleScript_MoveEnd -BattleScript_82DB2A6:: - printfromtable gUproarOvetTurnStringIds +BattleScript_PrintUproarOverTurns:: + printfromtable gUproarOverTurnStringIds waitmessage 0x40 end2 @@ -4575,7 +4574,7 @@ BattleScript_82DB992:: various ATTACKER, 0xC end2 -BattleScript_82DB9BA:: +BattleScript_AskIfWantsToForfeitMatch:: printselectionstring STRINGID_QUESTIONFORFEITMATCH various ATTACKER, VARIOUS_EMIT_YESNOBOX endselectionscript diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 9c3f4906a..5131778a8 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -378,9 +378,9 @@ extern const u8 BattleScript_SmokeBallEscape[]; extern const u8 BattleScript_RanAwayUsingMonAbility[]; extern const u8 BattleScript_GotAwaySafely[]; extern const u8 BattleScript_WildMonFled[]; -extern const u8 BattleScript_82DAAFE[]; +extern const u8 BattleScript_PrintCantRunFromTrainer[]; extern const u8 BattleScript_PrintFailedToRunString[]; -extern const u8 BattleScript_82DAB0B[]; +extern const u8 BattleScript_PrintCantEscapeFromBattle[]; extern const u8 BattleScript_PrintFullBox[]; extern const u8 BattleScript_ActionSwitch[]; extern const u8 BattleScript_82DAB35[]; @@ -432,8 +432,8 @@ extern const u8 BattleScript_82DAEB1[]; extern const u8 BattleScript_SpikesOngBank1[]; extern const u8 BattleScript_82DAEE8[]; extern const u8 BattleScript_82DAEFE[]; -extern const u8 BattleScript_82DAF05[]; -extern const u8 BattleScript_82DAF20[]; +extern const u8 BattleScript_PerishSongTakesLife[]; +extern const u8 BattleScript_PerishSongCountGoesDown[]; extern const u8 BattleScript_AllStatsUp[]; extern const u8 BattleScript_82DAF54[]; extern const u8 BattleScript_82DAF72[]; @@ -445,7 +445,7 @@ extern const u8 BattleScript_RapidSpinAway[]; extern const u8 BattleScript_WrapFree[]; extern const u8 BattleScript_LeechSeedFree[]; extern const u8 BattleScript_SpikesFree[]; -extern const u8 BattleScript_82DAFE4[]; +extern const u8 BattleScript_MonTookFutureAttack[]; extern const u8 BattleScript_82DB001[]; extern const u8 BattleScript_82DB008[]; extern const u8 BattleScript_82DB020[]; @@ -482,7 +482,7 @@ extern const u8 BattleScript_82DB1FE[]; extern const u8 BattleScript_FocusPunchSetUp[]; extern const u8 BattleScript_MoveUsedIsAsleep[]; extern const u8 BattleScript_MoveUsedWokeUp[]; -extern const u8 BattleScript_82DB234[]; +extern const u8 BattleScript_MonWokeUpInUproar[]; extern const u8 BattleScript_PoisonTurnDmg[]; extern const u8 BattleScript_82DB243[]; extern const u8 BattleScript_82DB245[]; @@ -493,7 +493,7 @@ extern const u8 BattleScript_MoveUsedUnfroze[]; extern const u8 BattleScript_DefrostedViaFireMove[]; extern const u8 BattleScript_MoveUsedIsParalyzed[]; extern const u8 BattleScript_MoveUsedFlinched[]; -extern const u8 BattleScript_82DB2A6[]; +extern const u8 BattleScript_PrintUproarOverTurns[]; extern const u8 BattleScript_ThrashConfuses[]; extern const u8 BattleScript_MoveUsedIsConfused[]; extern const u8 BattleScript_82DB2D4[]; @@ -611,7 +611,7 @@ extern const u8 BattleScript_82DB8E0[]; extern const u8 BattleScript_82DB8F3[]; extern const u8 BattleScript_82DB973[]; extern const u8 BattleScript_82DB992[]; -extern const u8 BattleScript_82DB9BA[]; +extern const u8 BattleScript_AskIfWantsToForfeitMatch[]; extern const u8 BattleScript_82DB9C1[]; extern const u8 BattleScript_82DB9C8[]; extern const u8 BattleScript_BallThrow[]; diff --git a/src/battle_2.c b/src/battle_2.c index b03e96622..8afca2f10 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -4083,7 +4083,7 @@ static void HandleTurnActionSelectionState(void) && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gSelectionBattleScripts[gActiveBank] = BattleScript_82DB9BA; + gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch; gBattleCommunication[gActiveBank] = 8; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4093,13 +4093,13 @@ static void HandleTurnActionSelectionState(void) && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - BattleScriptExecute(BattleScript_82DAAFE); + BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); gBattleCommunication[gActiveBank] = 1; } - else if (IsRunningFromBattleImpossible() != 0 + else if (IsRunningFromBattleImpossible() && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gSelectionBattleScripts[gActiveBank] = BattleScript_82DAB0B; + gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; diff --git a/src/battle_message.c b/src/battle_message.c index 35b9004ac..0dc468eca 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -964,7 +964,7 @@ const u16 gRestUsedStringIds[] = STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY }; -const u16 gUproarOvetTurnStringIds[] = +const u16 gUproarOverTurnStringIds[] = { STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN }; diff --git a/src/battle_util.c b/src/battle_util.c index 021251b35..904dfc032 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -963,7 +963,7 @@ u8 TurnBasedEffects(void) gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; - BattleScriptExecute(BattleScript_82DB234); + BattleScriptExecute(BattleScript_MonWokeUpInUproar); gActiveBank = gBankAttacker; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); @@ -994,7 +994,7 @@ u8 TurnBasedEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; CancelMultiTurnMoves(gActiveBank); } - BattleScriptExecute(BattleScript_82DB2A6); + BattleScriptExecute(BattleScript_PrintUproarOverTurns); effect = 1; } } @@ -1144,7 +1144,7 @@ bool8 sub_8041364(void) gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; - BattleScriptExecute(BattleScript_82DAFE4); + BattleScriptExecute(BattleScript_MonTookFutureAttack); if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gWishFutureKnock.futureSightCounter[gActiveBank ^ BIT_MON] == 0) @@ -1178,12 +1178,12 @@ bool8 sub_8041364(void) { gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; gBattleMoveDamage = gBattleMons[gActiveBank].hp; - gBattlescriptCurrInstr = BattleScript_82DAF05; + gBattlescriptCurrInstr = BattleScript_PerishSongTakesLife; } else { gDisableStructs[gActiveBank].perishSongTimer1--; - gBattlescriptCurrInstr = BattleScript_82DAF20; + gBattlescriptCurrInstr = BattleScript_PerishSongCountGoesDown; } BattleScriptExecute(gBattlescriptCurrInstr); return TRUE; -- cgit v1.2.3 From d48392e677f3b77b34d4b125b90a74be86b19a2d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 18:07:00 +0100 Subject: change battle variables names --- data/battle_scripts_1.s | 6 +-- src/battle_2.c | 42 +++++++++--------- src/battle_ai_script_commands.c | 12 ++--- src/battle_controllers.c | 6 +-- src/battle_script_commands.c | 98 ++++++++++++++++++++--------------------- src/battle_util.c | 6 +-- sym_ewram.txt | 8 ++-- 7 files changed, 89 insertions(+), 89 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 5e7488108..2a3d8674a 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -628,7 +628,7 @@ BattleScript_EffectMultiHit:: BattleScript_82D8DFD:: jumpifhasnohp ATTACKER, BattleScript_82D8E93 jumpifhasnohp TARGET, BattleScript_82D8E74 - jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_82D8E1F + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_82D8E1F jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 BattleScript_82D8E1F:: movevaluescleanup @@ -1281,7 +1281,7 @@ BattleScript_EffectSnore:: ppreduce goto BattleScript_ButItFailed BattleScript_SnoreIsAsleep:: - jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_DoSnore + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER @@ -1411,7 +1411,7 @@ BattleScript_EffectTripleKick:: BattleScript_TripleKickLoop:: jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits - jumpifhalfword EQUAL, gOriginallyUsedMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits BattleScript_DoTripleKickAttack:: accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE diff --git a/src/battle_2.c b/src/battle_2.c index 8afca2f10..eead4d7a9 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -121,11 +121,11 @@ extern u8 gMultiHitCounter; extern u8 gBattleMoveFlags; extern s32 gBattleMoveDamage; extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; -extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT]; -extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; extern u16 gLastHitByType[BATTLE_BANKS_COUNT]; -extern u16 gLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; @@ -149,7 +149,7 @@ extern u16 gDynamicBasePower; extern u8 gCritMultiplier; extern u8 gCurrMovePos; extern u8 gUnknown_020241E9; -extern u16 gOriginallyUsedMove; +extern u16 gChosenMove; extern const struct BattleMove gBattleMoves[]; extern const u16 gUnknown_08C004E0[]; // battle textbox palette @@ -2743,13 +2743,13 @@ static void BattleStartClearSetData(void) gDisableStructs[i].isFirstTurn = 2; gUnknown_02024284[i] = 0; - gOriginallyLastMoves[i] = 0; + gLastMoves[i] = 0; gLastLandedMoves[i] = 0; gLastHitByType[i] = 0; - gLastMoves[i] = 0; + gLastResultingMoves[i] = 0; gLastHitBy[i] = 0xFF; gLockedMoves[i] = 0; - gOriginallyLastPrintedMoves[i] = 0; + gLastPrintedMoves[i] = 0; gBattleResources->flags->flags[i] = 0; gPalaceSelectionBattleScripts[i] = 0; } @@ -2910,11 +2910,11 @@ void SwitchInClearSetData(void) gBattleMoveFlags = 0; gDisableStructs[gActiveBank].isFirstTurn = 2; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; - gOriginallyLastMoves[gActiveBank] = 0; + gLastMoves[gActiveBank] = 0; gLastLandedMoves[gActiveBank] = 0; gLastHitByType[gActiveBank] = 0; - gLastMoves[gActiveBank] = 0; - gOriginallyLastPrintedMoves[gActiveBank] = 0; + gLastResultingMoves[gActiveBank] = 0; + gLastPrintedMoves[gActiveBank] = 0; gLastHitBy[gActiveBank] = 0xFF; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; @@ -3002,11 +3002,11 @@ void FaintClearSetData(void) gDisableStructs[gActiveBank].isFirstTurn = 2; - gOriginallyLastMoves[gActiveBank] = 0; + gLastMoves[gActiveBank] = 0; gLastLandedMoves[gActiveBank] = 0; gLastHitByType[gActiveBank] = 0; - gLastMoves[gActiveBank] = 0; - gOriginallyLastPrintedMoves[gActiveBank] = 0; + gLastResultingMoves[gActiveBank] = 0; + gLastPrintedMoves[gActiveBank] = 0; gLastHitBy[gActiveBank] = 0xFF; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; @@ -5048,19 +5048,19 @@ static void HandleAction_UseMove(void) if (gProtectStructs[gBankAttacker].onlyStruggle) { gProtectStructs[gBankAttacker].onlyStruggle = 0; - gCurrentMove = gOriginallyUsedMove = MOVE_STRUGGLE; + gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gOriginallyUsedMove = gLockedMoves[gBankAttacker]; + gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; } // encore forces you to use the same move else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) { - gCurrentMove = gOriginallyUsedMove = gDisableStructs[gBankAttacker].encoredMove; + gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); } @@ -5069,7 +5069,7 @@ static void HandleAction_UseMove(void) && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) { gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - gCurrentMove = gOriginallyUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; gDisableStructs[gBankAttacker].encoredMovePos = 0; gDisableStructs[gBankAttacker].encoreTimer1 = 0; @@ -5077,12 +5077,12 @@ static void HandleAction_UseMove(void) } else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) { - gCurrentMove = gOriginallyUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gOriginallyUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; } if (gBattleMons[gBankAttacker].hp != 0) @@ -5122,7 +5122,7 @@ static void HandleAction_UseMove(void) } if (var == 4) { - if (gBattleMoves[gOriginallyUsedMove].target & MOVE_TARGET_RANDOM) + if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { @@ -5167,7 +5167,7 @@ static void HandleAction_UseMove(void) } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattleMoves[gOriginallyUsedMove].target & MOVE_TARGET_RANDOM) + && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 5fde5669e..97226f5c9 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -58,7 +58,7 @@ extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; extern u8 gBankTarget; extern u8 gAbsentBankFlags; -extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; @@ -633,12 +633,12 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget]) + if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastMoves[gBankTarget]) break; - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gOriginallyLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. + if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. && gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gOriginallyLastMoves[gBankTarget]; + gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastMoves[gBankTarget]; break; } } @@ -1252,9 +1252,9 @@ static void BattleAICmd_is_most_powerful_move(void) static void BattleAICmd_get_last_used_bank_move(void) { if (gAIScriptPtr[1] == AI_USER) - AI_THINKING_STRUCT->funcResult = gOriginallyLastMoves[sBank_AI]; + AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; else - AI_THINKING_STRUCT->funcResult = gOriginallyLastMoves[gBankTarget]; + AI_THINKING_STRUCT->funcResult = gLastMoves[gBankTarget]; gAIScriptPtr += 2; } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index b3fb91b42..2d373e876 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -38,7 +38,7 @@ extern u8 gEffectBank; extern u16 gBattleWeather; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; -extern u16 gOriginallyUsedMove; +extern u16 gChosenMove; extern u16 gLastUsedItem; extern u8 gBattleOutcome; extern u8 gLastUsedAbility; @@ -1120,7 +1120,7 @@ void EmitPrintString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->originallyUsedMove = gOriginallyUsedMove; + stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; @@ -1152,7 +1152,7 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->originallyUsedMove = gOriginallyUsedMove; + stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 0e6209ed8..59bb58868 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -76,7 +76,7 @@ extern u8 gBattleMoveFlags; extern u8 gBattleCommunication[]; extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; -extern u16 gLastMoves[4]; +extern u16 gLastResultingMoves[4]; extern u8 gLastHitBy[4]; extern u8 gStringBank; extern u16 gDynamicBasePower; @@ -99,9 +99,9 @@ extern u8 gCurrentTurnActionNumber; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; -extern u16 gOriginallyUsedMove; -extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT]; -extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gChosenMove; +extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u8 gUnknown_020241E9; @@ -4860,10 +4860,10 @@ static void atk49_moveend(void) effect = FALSE; - if (gOriginallyUsedMove == 0xFFFF) + if (gChosenMove == 0xFFFF) originallyUsedMove = 0; else - originallyUsedMove = gOriginallyUsedMove; + originallyUsedMove = gChosenMove; arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; @@ -4934,14 +4934,14 @@ static void atk49_moveend(void) break; case 6: // update choice band move if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND - || gOriginallyUsedMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) + || gChosenMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) goto LOOP; - if (gOriginallyUsedMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) + if (gChosenMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) { gBattleScripting.atk49_state++; break; } - *choicedMoveAtk = gOriginallyUsedMove; + *choicedMoveAtk = gChosenMove; LOOP: { for (i = 0; i < 4; i++) @@ -5036,7 +5036,7 @@ static void atk49_moveend(void) } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gOriginallyLastPrintedMoves[gBankAttacker] = gOriginallyUsedMove; + gLastPrintedMoves[gBankAttacker] = gChosenMove; } if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) @@ -5044,13 +5044,13 @@ static void atk49_moveend(void) { if (gHitMarker & HITMARKER_OBEYS) { - gOriginallyLastMoves[gBankAttacker] = gOriginallyUsedMove; - gLastMoves[gBankAttacker] = gCurrentMove; + gLastMoves[gBankAttacker] = gChosenMove; + gLastResultingMoves[gBankAttacker] = gCurrentMove; } else { - gOriginallyLastMoves[gBankAttacker] = 0xFFFF; gLastMoves[gBankAttacker] = 0xFFFF; + gLastResultingMoves[gBankAttacker] = 0xFFFF; } if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) @@ -5058,9 +5058,9 @@ static void atk49_moveend(void) if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { - if (gOriginallyUsedMove == 0xFFFF) + if (gChosenMove == 0xFFFF) { - gLastLandedMoves[gBankTarget] = gOriginallyUsedMove; + gLastLandedMoves[gBankTarget] = gChosenMove; } else { @@ -5083,16 +5083,16 @@ static void atk49_moveend(void) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gOriginallyUsedMove; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gOriginallyUsedMove >> 8; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gChosenMove; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gChosenMove >> 8; target = gBankTarget; attacker = gBankAttacker; - *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gOriginallyUsedMove; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove; target = gBankTarget; attacker = gBankAttacker; - *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gOriginallyUsedMove >> 8; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8; } gBattleScripting.atk49_state++; break; @@ -6386,7 +6386,7 @@ static void atk63_jumptorandomattack(void) if (gBattlescriptCurrInstr[1] != 0) gCurrentMove = gRandomMove; else - gOriginallyUsedMove = gCurrentMove = gRandomMove; + gChosenMove = gCurrentMove = gRandomMove; gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } @@ -7131,7 +7131,7 @@ static void atk76_various(void) static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; - u16 lastMove = gLastMoves[gBankAttacker]; + u16 lastMove = gLastResultingMoves[gBankAttacker]; if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) gDisableStructs[gBankAttacker].protectUses = 0; @@ -8352,7 +8352,7 @@ static void atk9A_setfocusenergy(void) static void atk9B_transformdataexecution(void) { - gOriginallyUsedMove = 0xFFFF; + gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) @@ -8432,12 +8432,12 @@ static bool8 IsMoveUncopyableByMimic(u16 move) static void atk9D_mimicattackcopy(void) { - gOriginallyUsedMove = 0xFFFF; + gChosenMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gOriginallyLastMoves[gBankTarget]) + if (IsMoveUncopyableByMimic(gLastMoves[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gOriginallyLastMoves[gBankTarget] == 0 - || gOriginallyLastMoves[gBankTarget] == 0xFFFF) + || gLastMoves[gBankTarget] == 0 + || gLastMoves[gBankTarget] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8447,20 +8447,20 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gOriginallyLastMoves[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gLastMoves[gBankTarget]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gOriginallyLastMoves[gBankTarget]; - if (gBattleMoves[gOriginallyLastMoves[gBankTarget]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gOriginallyLastMoves[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastMoves[gBankTarget]; + if (gBattleMoves[gLastMoves[gBankTarget]].pp < 5) + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBankTarget]].pp; else gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastMoves[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget]) gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; @@ -8575,7 +8575,7 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget]) + if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget]) break; } if (gDisableStructs[gBankTarget].disabledMove == 0 @@ -8600,13 +8600,13 @@ static void atkA4_trysetencore(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget]) + if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget]) break; } - if (gOriginallyLastMoves[gBankTarget] == MOVE_STRUGGLE - || gOriginallyLastMoves[gBankTarget] == MOVE_ENCORE - || gOriginallyLastMoves[gBankTarget] == MOVE_MIRROR_MOVE) + if (gLastMoves[gBankTarget] == MOVE_STRUGGLE + || gLastMoves[gBankTarget] == MOVE_ENCORE + || gLastMoves[gBankTarget] == MOVE_MIRROR_MOVE) { i = 4; } @@ -8726,13 +8726,13 @@ static void atkA7_setalwayshitflag(void) static void atkA8_copymovepermanently(void) // sketch { - gOriginallyUsedMove = 0xFFFF; + gChosenMove = 0xFFFF; if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && gOriginallyLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE - && gOriginallyLastPrintedMoves[gBankTarget] != 0 - && gOriginallyLastPrintedMoves[gBankTarget] != 0xFFFF - && gOriginallyLastPrintedMoves[gBankTarget] != MOVE_SKETCH) + && gLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE + && gLastPrintedMoves[gBankTarget] != 0 + && gLastPrintedMoves[gBankTarget] != 0xFFFF + && gLastPrintedMoves[gBankTarget] != MOVE_SKETCH) { s32 i; @@ -8740,7 +8740,7 @@ static void atkA8_copymovepermanently(void) // sketch { if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gOriginallyLastPrintedMoves[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gLastPrintedMoves[gBankTarget]) break; } @@ -8752,8 +8752,8 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gOriginallyLastPrintedMoves[gBankTarget]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gOriginallyLastPrintedMoves[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBankTarget]; + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBankTarget]].pp; gActiveBank = gBankAttacker; for (i = 0; i < 4; i++) @@ -8766,7 +8766,7 @@ static void atkA8_copymovepermanently(void) // sketch EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); MarkBufferBankForExecution(gActiveBank); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastPrintedMoves[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBankTarget]) gBattlescriptCurrInstr += 5; } @@ -8899,14 +8899,14 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gOriginallyLastMoves[gBankTarget] != 0 - && gOriginallyLastMoves[gBankTarget] != 0xFFFF) + if (gLastMoves[gBankTarget] != 0 + && gLastMoves[gBankTarget] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gOriginallyLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + if (gLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i]) break; } @@ -8916,7 +8916,7 @@ static void atkAD_tryspiteppreduce(void) if (gBattleMons[gBankTarget].pp[i] < ppToDeduct) ppToDeduct = gBattleMons[gBankTarget].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastMoves[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); diff --git a/src/battle_util.c b/src/battle_util.c index 904dfc032..94c51c0f8 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -43,7 +43,7 @@ extern s32 gBattleMoveDamage; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u32 gBattleTypeFlags; -extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u32 gHitMarker; extern u8 gEffectBank; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; @@ -373,7 +373,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } } - if (move == gOriginallyLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) + if (move == gLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) { CancelMultiTurnMoves(gActiveBank); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) @@ -477,7 +477,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) unusableMoves |= gBitTable[i]; if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) unusableMoves |= gBitTable[i]; - if (gBattleMons[bank].moves[i] == gOriginallyLastMoves[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) + if (gBattleMons[bank].moves[i] == gLastMoves[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) unusableMoves |= gBitTable[i]; if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) unusableMoves |= gBitTable[i]; diff --git a/sym_ewram.txt b/sym_ewram.txt index cff1df585..2a015dc2d 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -312,7 +312,7 @@ gUnknown_020241E9: @ 20241E9 gCurrentMove: @ 20241EA .space 0x2 -gOriginallyUsedMove: @ 20241EC +gChosenMove: @ 20241EC .space 0x2 gRandomMove: @ 20241EE @@ -369,10 +369,10 @@ gSelectionBattleScripts: @ 2024220 gPalaceSelectionBattleScripts: @ 2024230 .space 0x10 -gOriginallyLastPrintedMoves: @ 2024240 +gLastPrintedMoves: @ 2024240 .space 0x8 -gOriginallyLastMoves: @ 2024248 +gLastMoves: @ 2024248 .space 0x8 gLastLandedMoves: @ 2024250 @@ -381,7 +381,7 @@ gLastLandedMoves: @ 2024250 gLastHitByType: @ 2024258 .space 0x8 -gLastMoves: @ 2024260 +gLastResultingMoves: @ 2024260 .space 0x8 gLockedMoves: @ 2024268 -- cgit v1.2.3 From 77a6c30bd4511063e5a3e0a512583836e92c8293 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Nov 2017 21:04:00 +0100 Subject: make various macros --- asm/macros/battle_script.inc | 109 ++++++++++++++++++++++++++++++++ data/battle_scripts_1.s | 144 +++++++++++++++++++++---------------------- src/battle_script_commands.c | 4 +- 3 files changed, 183 insertions(+), 74 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index b1961c4a9..47e124a86 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1214,6 +1214,115 @@ .byte \param0 .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 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 2a3d8674a..0be60d109 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -311,7 +311,7 @@ BattleScript_EffectSleep:: goto BattleScript_MoveEnd BattleScript_AlreadyAsleep:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNALREADYASLEEP waitmessage 0x40 @@ -724,7 +724,7 @@ BattleScript_EffectToxic:: goto BattleScript_MoveEnd BattleScript_AlreadyPoisoned:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x40 printstring STRINGID_PKMNALREADYPOISONED waitmessage 0x40 @@ -772,7 +772,7 @@ BattleScript_RestCantSleep:: goto BattleScript_MoveEnd BattleScript_RestIsAlreadyAsleep:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNALREADYASLEEP2 waitmessage 0x40 @@ -938,7 +938,7 @@ BattleScript_EffectConfuse:: goto BattleScript_MoveEnd BattleScript_AlreadyConfused:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED waitmessage 0x40 @@ -1045,7 +1045,7 @@ BattleScript_EffectParalyze:: goto BattleScript_MoveEnd BattleScript_AlreadyParalyzed:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNISALREADYPARALYZED waitmessage 0x40 @@ -1122,7 +1122,7 @@ BattleScript_SubstituteString:: waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_AlreadyHasSubstitute:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNHASSUBSTITUTE waitmessage 0x40 @@ -1532,7 +1532,7 @@ BattleScript_CurseEnd:: goto BattleScript_MoveEnd BattleScript_GhostCurse:: jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse - various ATTACKER, VARIOUS_GET_MOVE_TARGET + getmovetarget ATTACKER BattleScript_DoGhostCurse:: attackcanceler attackstring @@ -1951,14 +1951,14 @@ BattleScript_EffectTeleport:: attackstring ppreduce jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_ButItFailed - various ATTACKER, VARIOUS_IS_RUNNING_IMPOSSIBLE + getifcantrunfrombattle ATTACKER jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_82DA382 attackanimation waitanimation printstring STRINGID_PKMNFLEDFROMBATTLE waitmessage 0x40 - various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME + setoutcomeonteleport ATTACKER goto BattleScript_MoveEnd BattleScript_EffectBeatUp:: @@ -2220,7 +2220,7 @@ BattleScript_WaterVeilPrevents:: goto BattleScript_MoveEnd BattleScript_AlreadyBurned:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNALREADYHASBURN waitmessage 0x40 @@ -2638,7 +2638,7 @@ BattleScript_82DA501:: goto BattleScript_82DA4C7 BattleScript_82DA50F:: - various ATTACKER, 0x17 + various23 ATTACKER pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED waitmessage 0x40 @@ -2882,7 +2882,7 @@ BattleScript_82DA816:: switchhandleorder ATTACKER, 0x2 jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_82DA8D0 atknameinbuff1 - various ATTACKER, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + resetintrimidatetracebits ATTACKER hpthresholds2 ATTACKER printstring STRINGID_RETURNMON switchoutabilities ATTACKER @@ -2908,7 +2908,7 @@ BattleScript_82DA8D0:: atk62 GBANK_1 switchinanim GBANK_1, 0x0 waitstate - various ATTACKER, 0x7 + various7 ATTACKER switchineffects GBANK_1 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8F5 cancelallactions @@ -2978,9 +2978,9 @@ BattleScript_CheckDomeDrew:: jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_LocalBattleLostEnd_ BattleScript_LocalBattleLostPrintTrainersWinText:: jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut - various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 + returnopponentmon1toball ATTACKER waitstate - various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 + returnopponentmon2toball ATTACKER waitstate trainerslidein ATTACKER waitstate @@ -2997,9 +2997,9 @@ BattleScript_LocalBattleLostEnd_:: end2 BattleScript_82DAA0B:: - various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 + returnopponentmon1toball ATTACKER waitstate - various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 + returnopponentmon2toball ATTACKER waitstate trainerslidein ATTACKER waitstate @@ -3026,7 +3026,7 @@ BattleScript_LinkBattleWonOrLostWaitEnd:: end2 BattleScript_82DAA5C:: - various ATTACKER, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + playtrainerdefeatbgm ATTACKER printstring STRINGID_BATTLEEND waitmessage 0x40 trainerslidein ATTACKER @@ -3164,7 +3164,7 @@ BattleScript_82DAB77:: tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x3 moveend 0x2, 0x6 - various TARGET, 0x4 + various4 TARGET jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_82DABB8 setbyte sGIVEEXP_STATE, 0x0 getexp TARGET @@ -3207,7 +3207,7 @@ BattleScript_LearnedNewMove:: fanfare BGM_FANFA1 printstring STRINGID_PKMNLEARNEDMOVE waitmessage 0x40 - various ATTACKER, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + updatechoicemoveonlvlup ATTACKER goto BattleScript_TryLearnMoveLoop BattleScript_LearnMoveReturn:: return @@ -3352,7 +3352,7 @@ BattleScript_82DADD8:: returntoball TARGET waitstate jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DADF1 - various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME + setoutcomeonteleport ATTACKER finishaction BattleScript_82DADF1:: @@ -3700,7 +3700,7 @@ BattleScript_MagicCoatBounce:: printstring STRINGID_PKMNMOVEBOUNCED waitmessage 0x40 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 - various ATTACKER, VARIOUS_SET_MAGIC_COAT_TARGET + setmagiccoattarget ATTACKER return BattleScript_SnatchedMove:: @@ -3803,7 +3803,7 @@ BattleScript_MoveUsedIsParalyzed:: printstring STRINGID_PKMNISPARALYZED waitmessage 0x40 statusanimation ATTACKER - various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES + cancelmultiturnmoves ATTACKER goto BattleScript_MoveEnd BattleScript_MoveUsedFlinched:: @@ -3828,7 +3828,7 @@ BattleScript_MoveUsedIsConfused:: status2animation ATTACKER, STATUS2_CONFUSION jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB2FF BattleScript_82DB2D4:: - various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES + cancelmultiturnmoves ATTACKER adjustnormaldamage2 printstring STRINGID_ITHURTCONFUSION waitmessage 0x40 @@ -4263,7 +4263,7 @@ BattleScript_IgnoresAndUsesRandomMove:: BattleScript_MoveUsedLoafingAround:: jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 setbyte gBattleCommunication, 0x0 - various ATTACKER, 0x18 + various24 ATTACKER setbyte cMULTISTRING_CHOOSER, 0x4 BattleScript_82DB6C7:: printfromtable gInobedientStringIds @@ -4466,7 +4466,7 @@ BattleScript_82DB87D:: BattleScript_82DB881:: setbyte gBattleCommunication + 1, 0x0 BattleScript_82DB887:: - various ATTACKER, 0x8 + various8 ATTACKER jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D printfromtable gStringIds_85CCF0A waitmessage 0x40 @@ -4478,26 +4478,26 @@ BattleScript_82DB89D:: end2 BattleScript_82DB8BE:: - various ATTACKER, VARIOUS_WAIT_CRY - various ATTACKER, 0x15 + waitcry ATTACKER + various21 ATTACKER playse 0x109 pause 0x8 playse 0x109 - various ATTACKER, 0xE - various 8, 0x10 - various 8, 0x11 + various14 ATTACKER + various16 8 + various17 8 pause 0x40 - various ATTACKER, 0xF - various ATTACKER, 0x16 + various15 ATTACKER + various22 ATTACKER end2 BattleScript_82DB8E0:: playse SE_PINPON - various ATTACKER, 0xE - various TARGET, 0x10 - various TARGET, 0x11 + various14 ATTACKER + various16 TARGET + various17 TARGET pause 0x40 - various ATTACKER, 0xF + various15 ATTACKER end2 BattleScript_82DB8F3:: @@ -4505,78 +4505,78 @@ BattleScript_82DB8F3:: waitstate makevisible OPPONENT1 waitstate - various ATTACKER, 0x15 + various21 ATTACKER playse 0x109 pause 0x8 playse 0x109 pause 0x40 - various ATTACKER, 0xE - various ATTACKER, 0x10 - various ATTACKER, 0x11 + various14 ATTACKER + various16 ATTACKER + various17 ATTACKER pause 0x40 setbyte gBattleCommunication, 0x0 - various ATTACKER, 0x9 + various9 ATTACKER pause 0x40 - various ATTACKER, 0x9 - various EFFECT_BANK, 0x10 - various EFFECT_BANK, 0x11 - various ATTACKER, 0x9 - various GBANK_1, 0x10 - various GBANK_1, 0x11 - various ATTACKER, 0x9 - various 4, 0x10 - various 4, 0x11 - various ATTACKER, 0x9 + various9 ATTACKER + various16 EFFECT_BANK + various17 EFFECT_BANK + various9 ATTACKER + various16 GBANK_1 + various17 GBANK_1 + various9 ATTACKER + various16 0x4 + various17 0x4 + various9 ATTACKER jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973 jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992 - various 5, 0x10 - various 5, 0x11 - various ATTACKER, 0x9 - various ATTACKER, 0xF + various16 0x5 + various17 0x5 + various9 ATTACKER + various15 ATTACKER printstring STRINGID_DEFEATEDOPPONENTBYREFEREE waitmessage 0x40 playfaintcry OPPONENT1 - various ATTACKER, VARIOUS_WAIT_CRY + waitcry ATTACKER dofaintanimation OPPONENT1 cleareffectsonfaint OPPONENT1 - various ATTACKER, 0xA + various10 ATTACKER end2 BattleScript_82DB973:: - various 6, 0x10 - various 6, 0x11 - various ATTACKER, 0x9 - various ATTACKER, 0xF + various16 0x6 + various17 0x6 + various9 ATTACKER + various15 ATTACKER printstring STRINGID_LOSTTOOPPONENTBYREFEREE waitmessage 0x40 playfaintcry 11 - various ATTACKER, VARIOUS_WAIT_CRY + waitcry ATTACKER dofaintanimation 11 cleareffectsonfaint 11 - various ATTACKER, 0xB + various11 ATTACKER end2 BattleScript_82DB992:: - various BANK0, 0x10 - various BANK0, 0x11 - various ATTACKER, 0x9 - various ATTACKER, 0xF + various16 BANK0 + various17 BANK0 + various9 ATTACKER + various15 ATTACKER printstring STRINGID_TIEDOPPONENTBYREFEREE waitmessage 0x40 playfaintcry 11 - various ATTACKER, VARIOUS_WAIT_CRY + waitcry ATTACKER dofaintanimation 11 cleareffectsonfaint 11 playfaintcry OPPONENT1 - various ATTACKER, VARIOUS_WAIT_CRY + waitcry ATTACKER dofaintanimation OPPONENT1 cleareffectsonfaint OPPONENT1 - various ATTACKER, 0xC + various12 ATTACKER end2 BattleScript_AskIfWantsToForfeitMatch:: printselectionstring STRINGID_QUESTIONFORFEITMATCH - various ATTACKER, VARIOUS_EMIT_YESNOBOX + forfeityesnobox ATTACKER endselectionscript BattleScript_82DB9C1:: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 59bb58868..d9b35c053 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5992,8 +5992,8 @@ static void atk58_returntoball(void) static void atk59_handlelearnnewmove(void) { - const u8* jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - const u8* jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); + const u8 *jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterId], gBattlescriptCurrInstr[9]); while (ret == 0xFFFE) -- cgit v1.2.3