mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 19:24:16 +01:00
Helpful macros for atk49
This commit is contained in:
parent
8184688330
commit
35cffea987
@ -404,6 +404,38 @@
|
||||
.byte \param1
|
||||
.endm
|
||||
|
||||
@ Help macros for 5 uses of moveend command
|
||||
|
||||
@ All cases
|
||||
.macro moveendall
|
||||
setbyte sMOVEEND_STATE, 0
|
||||
moveend 0, 0
|
||||
.endm
|
||||
|
||||
@ Chosen case
|
||||
.macro moveendcase case:req
|
||||
setbyte sMOVEEND_STATE, \case
|
||||
moveend 1, 0
|
||||
.endm
|
||||
|
||||
@ All cases from (inclusive)
|
||||
.macro moveendfrom from:req
|
||||
setbyte sMOVEEND_STATE, \from
|
||||
moveend 0, 0
|
||||
.endm
|
||||
|
||||
@ All cases from 0 to (not inclusive)
|
||||
.macro moveendto to:req
|
||||
setbyte sMOVEEND_STATE, 0
|
||||
moveend 2, \to
|
||||
.endm
|
||||
|
||||
@ Cases from (inclusive) to (not inclusive)
|
||||
.macro moveendfromto from:req, to:req
|
||||
setbyte sMOVEEND_STATE, \from
|
||||
moveend 2, \to
|
||||
.endm
|
||||
|
||||
.macro typecalc2
|
||||
.byte 0x4a
|
||||
.endm
|
||||
|
@ -284,8 +284,7 @@ BattleScript_HitFromAtkAnimation::
|
||||
seteffectwithchance
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
BattleScript_MoveEnd::
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x0, 0x0
|
||||
moveendall
|
||||
end
|
||||
|
||||
BattleScript_MakeMoveMissed::
|
||||
@ -423,8 +422,7 @@ BattleScript_ExplosionLoop:
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
jumpifnexttargetvalid BattleScript_ExplosionLoop
|
||||
tryfaintmon BS_ATTACKER, FALSE, NULL
|
||||
end
|
||||
@ -432,8 +430,7 @@ BattleScript_ExplosionMissed:
|
||||
effectivenesssound
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
jumpifnexttargetvalid BattleScript_ExplosionLoop
|
||||
tryfaintmon BS_ATTACKER, FALSE, NULL
|
||||
end
|
||||
@ -657,8 +654,7 @@ BattleScript_DoMultiHit::
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 0x1
|
||||
addbyte sMULTIHIT_STRING + 4, 0x1
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings
|
||||
decrementmultihit BattleScript_MultiHitLoop
|
||||
goto BattleScript_MultiHitPrintStrings
|
||||
@ -674,10 +670,8 @@ BattleScript_MultiHitPrintStrings::
|
||||
BattleScript_MultiHitEnd::
|
||||
seteffectwithchance
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
setbyte sMOVEEND_STATE, 0x2
|
||||
moveend 0x1, 0x0
|
||||
setbyte sMOVEEND_STATE, 0x4
|
||||
moveend 0x0, 0x0
|
||||
moveendcase ATK49_SYNCHRONIZE_TARGET
|
||||
moveendfrom ATK49_STATUS_IMMUNITY_ABILITIES
|
||||
end
|
||||
|
||||
BattleScript_EffectConversion::
|
||||
@ -1441,8 +1435,7 @@ BattleScript_DoTripleKickAttack::
|
||||
waitmessage 0x40
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 0x1
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
|
||||
decrementmultihit BattleScript_TripleKickLoop
|
||||
goto BattleScript_TripleKickPrintStrings
|
||||
@ -1461,8 +1454,7 @@ BattleScript_TripleKickPrintStrings::
|
||||
BattleScript_TripleKickEnd::
|
||||
seteffectwithchance
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
setbyte sMOVEEND_STATE, 0xE
|
||||
moveend 0x0, 0x0
|
||||
moveendfrom ATK49_UPDATE_LAST_MOVES
|
||||
end
|
||||
|
||||
BattleScript_EffectThief::
|
||||
@ -1893,8 +1885,7 @@ BattleScript_DoHitAllWithUndergroundBonus::
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 0x1
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
|
||||
end
|
||||
BattleScript_HitAllWithUndergroundBonusMissed::
|
||||
@ -1903,8 +1894,7 @@ BattleScript_HitAllWithUndergroundBonusMissed::
|
||||
effectivenesssound
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
|
||||
end
|
||||
|
||||
@ -1995,8 +1985,7 @@ BattleScript_BeatUpAttack::
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
goto BattleScript_BeatUpLoop
|
||||
BattleScript_BeatUpEnd::
|
||||
end
|
||||
@ -2617,8 +2606,7 @@ BattleScript_TeeterDanceLoop::
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
BattleScript_TeeterDanceDoMoveEndIncrement::
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
BattleScript_TeeterDanceLoopIncrement::
|
||||
addbyte gBattlerTarget, 0x1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
|
||||
@ -3140,10 +3128,8 @@ BattleScript_DoSwitchOut::
|
||||
switchinanim BS_ATTACKER, FALSE
|
||||
waitstate
|
||||
switchineffects BS_ATTACKER
|
||||
setbyte sMOVEEND_STATE, 0x4
|
||||
moveend 0x1, 0x0
|
||||
setbyte sMOVEEND_STATE, 0xF
|
||||
moveend 0x1, 0x0
|
||||
moveendcase ATK49_STATUS_IMMUNITY_ABILITIES
|
||||
moveendcase ATK49_MIRROR_MOVE
|
||||
end2
|
||||
|
||||
BattleScript_PursuitDmgOnSwitchOut::
|
||||
@ -3166,8 +3152,7 @@ BattleScript_PursuitDmgOnSwitchOut::
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
setbyte sMOVEEND_STATE, 0x3
|
||||
moveend 0x2, 0x6
|
||||
moveendfromto ATK49_MOVE_END_ABILITIES, ATK49_CHOICE_MOVE
|
||||
various4 BS_TARGET
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet
|
||||
setbyte sGIVEEXP_STATE, 0x0
|
||||
@ -3395,8 +3380,7 @@ BattleScript_DisabledNoMore::
|
||||
BattleScript_SelectingDisabledMoveInPalace::
|
||||
printstring STRINGID_PKMNMOVEISDISABLED
|
||||
BattleScript_SelectingUnusableMoveInPalace::
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
end
|
||||
|
||||
BattleScript_EncoredNoMore::
|
||||
@ -3425,8 +3409,7 @@ BattleScript_SpikesOnAttacker::
|
||||
BattleScript_SpikesOnAttackerFainted::
|
||||
setbyte sGIVEEXP_STATE, 0x0
|
||||
getexp BS_ATTACKER
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x0, 0x0
|
||||
moveendall
|
||||
goto BattleScript_HandleFaintedMon
|
||||
|
||||
BattleScript_SpikesOnTarget::
|
||||
@ -3441,8 +3424,7 @@ BattleScript_SpikesOnTarget::
|
||||
BattleScript_SpikesOnTargetFainted::
|
||||
setbyte sGIVEEXP_STATE, 0x0
|
||||
getexp BS_TARGET
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x0, 0x0
|
||||
moveendall
|
||||
goto BattleScript_HandleFaintedMon
|
||||
|
||||
BattleScript_SpikesOnFaintedBattler::
|
||||
@ -3457,8 +3439,7 @@ BattleScript_SpikesOnFaintedBattler::
|
||||
BattleScript_SpikesOnFaintedBattlerFainted::
|
||||
setbyte sGIVEEXP_STATE, 0x0
|
||||
getexp BS_FAINTED
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x0, 0x0
|
||||
moveendall
|
||||
goto BattleScript_HandleFaintedMon
|
||||
|
||||
BattleScript_PrintHurtBySpikes::
|
||||
@ -3562,10 +3543,8 @@ BattleScript_DoFutureAttackHit::
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
atk24 BattleScript_FutureAttackEnd
|
||||
BattleScript_FutureAttackEnd::
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x1, 0x0
|
||||
setbyte sMOVEEND_STATE, 0xB
|
||||
moveend 0x2, 0xE
|
||||
moveendcase ATK49_RAGE
|
||||
moveendfromto ATK49_ITEM_EFFECTS_ALL, ATK49_UPDATE_LAST_MOVES
|
||||
setbyte gMoveResultFlags, 0
|
||||
end2
|
||||
|
||||
@ -4254,8 +4233,7 @@ BattleScript_AbilityCuredStatus::
|
||||
BattleScript_IgnoresWhileAsleep::
|
||||
printstring STRINGID_PKMNIGNORESASLEEP
|
||||
waitmessage 0x40
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
end
|
||||
|
||||
BattleScript_IgnoresAndUsesRandomMove::
|
||||
@ -4271,8 +4249,7 @@ BattleScript_MoveUsedLoafingAround::
|
||||
BattleScript_82DB6C7::
|
||||
printfromtable gInobedientStringIds
|
||||
waitmessage 0x40
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
end
|
||||
|
||||
BattleScript_IgnoresAndFallsAsleep::
|
||||
@ -4280,8 +4257,7 @@ BattleScript_IgnoresAndFallsAsleep::
|
||||
waitmessage 0x40
|
||||
setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
|
||||
seteffectprimary
|
||||
setbyte sMOVEEND_STATE, 0x0
|
||||
moveend 0x2, 0x10
|
||||
moveendto ATK49_NEXT_TARGET
|
||||
end
|
||||
|
||||
BattleScript_IgnoresAndHitsItself::
|
||||
|
@ -95,8 +95,6 @@
|
||||
// statchange defines
|
||||
#define STAT_CHANGE_BS_PTR 0x1
|
||||
#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
|
||||
#define STAT_CHANGE_WORKED 0
|
||||
#define STAT_CHANGE_DIDNT_WORK 1
|
||||
|
||||
// atk48
|
||||
#define ATK48_STAT_NEGATIVE 0x1
|
||||
@ -104,6 +102,26 @@
|
||||
#define ATK48_ONLY_MULTIPLE 0x4
|
||||
#define ATK48_DONT_CHECK_LOWER 0x8
|
||||
|
||||
// atk49, moveend cases
|
||||
#define ATK49_RAGE 0
|
||||
#define ATK49_DEFROST 1
|
||||
#define ATK49_SYNCHRONIZE_TARGET 2
|
||||
#define ATK49_MOVE_END_ABILITIES 3
|
||||
#define ATK49_STATUS_IMMUNITY_ABILITIES 4
|
||||
#define ATK49_SYNCHRONIZE_ATTACKER 5
|
||||
#define ATK49_CHOICE_MOVE 6
|
||||
#define ATK49_CHANGED_ITEMS 7
|
||||
#define ATK49_ATTACKER_INVISIBLE 8
|
||||
#define ATK49_ATTACKER_VISIBLE 9
|
||||
#define ATK49_TARGET_VISIBLE 10
|
||||
#define ATK49_ITEM_EFFECTS_ALL 11
|
||||
#define ATK49_KINGSROCK_SHELLBELL 12
|
||||
#define ATK49_SUBSTITUTE 13
|
||||
#define ATK49_UPDATE_LAST_MOVES 14
|
||||
#define ATK49_MIRROR_MOVE 15
|
||||
#define ATK49_NEXT_TARGET 16
|
||||
#define ATK49_COUNT 17
|
||||
|
||||
#define BIT_HP 0x1
|
||||
#define BIT_ATK 0x2
|
||||
#define BIT_DEF 0x4
|
||||
|
@ -4480,28 +4480,6 @@ static void atk48_playstatchangeanimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
ATK49_RAGE,
|
||||
ATK49_DEFROST,
|
||||
ATK49_SYNCHRONIZE_TARGET,
|
||||
ATK49_MOVE_END_ABILITIES,
|
||||
ATK49_STATUS_IMMUNITY_ABILITIES,
|
||||
ATK49_SYNCHRONIZE_ATTACKER,
|
||||
ATK49_CHOICE_MOVE,
|
||||
ATK49_CHANGED_ITEMS,
|
||||
ATK49_ATTACKER_INVISIBLE,
|
||||
ATK49_ATTACKER_VISIBLE,
|
||||
ATK49_TARGET_VISIBLE,
|
||||
ATK49_ITEM_EFFECTS_ALL,
|
||||
ATK49_KINGSROCK_SHELLBELL,
|
||||
ATK49_SUBSTITUTE,
|
||||
ATK49_UPDATE_LAST_MOVES,
|
||||
ATK49_MIRROR_MOVE,
|
||||
ATK49_NEXT_TARGET,
|
||||
ATK49_COUNT,
|
||||
};
|
||||
|
||||
static void atk49_moveend(void)
|
||||
{
|
||||
s32 i;
|
||||
@ -7210,6 +7188,9 @@ static void atk88_negativedamage(void)
|
||||
gBattlescriptCurrInstr++;
|
||||
}
|
||||
|
||||
#define STAT_CHANGE_WORKED 0
|
||||
#define STAT_CHANGE_DIDNT_WORK 1
|
||||
|
||||
static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
|
||||
{
|
||||
bool8 certain = FALSE;
|
||||
|
Loading…
Reference in New Issue
Block a user