summaryrefslogtreecommitdiff
path: root/src/battle_script_commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_script_commands.c')
-rw-r--r--src/battle_script_commands.c967
1 files changed, 456 insertions, 511 deletions
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 577a8149a..32887efc1 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -12,7 +12,7 @@
#include "data2.h"
#include "constants/hold_effects.h"
#include "random.h"
-#include "rom3.h"
+#include "battle_controllers.h"
#include "constants/species.h"
#include "pokemon.h"
#include "text.h"
@@ -32,69 +32,6 @@
#define RET_VALUE_LEVELLED_UP 11
-enum
-{
- CONTROLLER_GETMONDATA,
- CONTROLLER_GETRAWMONDATA,
- CONTROLLER_SETMONDATA,
- CONTROLLER_SETRAWMONDATA,
- CONTROLLER_LOADMONSPRITE,
- CONTROLLER_SWITCHINANIM,
- CONTROLLER_RETURNMONTOBALL,
- CONTROLLER_DRAWTRAINERPIC,
- CONTROLLER_TRAINERSLIDE,
- CONTROLLER_TRAINERSLIDEBACK,
- CONTROLLER_FAINTANIMATION,
- CONTROLLER_PALETTEFADE,
- CONTROLLER_SUCCESSBALLTHROWANIM,
- CONTROLLER_BALLTHROWANIM,
- CONTROLLER_PAUSE,
- CONTROLLER_MOVEANIMATION,
- CONTROLLER_PRINTSTRING,
- CONTROLLER_PRINTSTRINGPLAYERONLY,
- CONTROLLER_CHOOSEACTION,
- CONTROLLER_UNKNOWNYESNOBOX,
- CONTROLLER_CHOOSEMOVE,
- CONTROLLER_OPENBAG,
- CONTROLLER_CHOOSEPOKEMON,
- CONTROLLER_23,
- CONTROLLER_HEALTHBARUPDATE,
- CONTROLLER_EXPUPDATE,
- CONTROLLER_STATUSICONUPDATE,
- CONTROLLER_STATUSANIMATION,
- CONTROLLER_STATUSXOR,
- CONTROLLER_DATATRANSFER,
- CONTROLLER_DMA3TRANSFER,
- CONTROLLER_31,
- CONTROLLER_32,
- CONTROLLER_TWORETURNVALUES,
- CONTROLLER_CHOSENMONRETURNVALUE,
- CONTROLLER_ONERETURNVALUE,
- CONTROLLER_ONERETURNVALUE_DUPLICATE,
- CONTROLLER_37,
- CONTROLLER_38,
- CONTROLLER_39,
- CONTROLLER_40,
- CONTROLLER_HITANIMATION,
- CONTROLLER_42,
- CONTROLLER_EFFECTIVENESSSOUND,
- CONTROLLER_PLAYFANFAREORBGM,
- CONTROLLER_FAINTINGCRY,
- CONTROLLER_INTROSLIDE,
- CONTROLLER_INTROTRAINERBALLTHROW,
- CONTROLLER_DRAWPARTYSTATUSSUMMARY,
- CONTROLLER_49,
- CONTROLLER_50,
- CONTROLLER_SPRITEINVISIBILITY,
- CONTROLLER_BATTLEANIMATION,
- CONTROLLER_LINKSTANDBYMSG,
- CONTROLLER_RESETACTIONMOVESELECTION,
- CONTROLLER_55,
- /*new controllers should go here*/
- CONTROLLER_TERMINATOR_NOP,
- CONTROLLER_CMDS_COUNT
-};
-
//extern needed variables
extern u8 gUnknown_02023A14_50;
extern u8 gCritMultiplier;
@@ -108,7 +45,7 @@ extern u8 gActiveBattler;
extern u32 gBattleControllerExecFlags;
extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
-extern u8 gBanksByTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u16 gCurrentMove;
extern u8 gLastUsedAbility;
@@ -117,10 +54,10 @@ extern u8 gPotentialItemEffectBattler;
extern u8 gEffectBattler;
extern u8 gAbsentBattlerFlags;
extern u8 gMultiHitCounter;
-extern u16 gLastUsedMove[4];
+extern u16 gLastMoves[4];
extern u16 gLockedMoves[4];
extern u16 gChosenMovesByBanks[4];
-extern u16 gSideAffecting[2];
+extern u16 gSideStatuses[2];
extern u16 gPauseCounterBattle;
extern u16 gPaydayMoney;
extern u16 gRandomTurnNumber;
@@ -144,7 +81,7 @@ extern u16 gLastUsedItem;
extern u16 gBattleMovePower;
extern s32 gHpDealt;
extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
-extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT];
+extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT];
extern const u16 gMissStringIds[];
extern u8 gSentPokesToOpponent[2];
extern u8 gBank1;
@@ -188,13 +125,13 @@ void CancelMultiTurnMoves(u8 bank);
void BattleScriptPush(const u8* BS_ptr);
void BattleScriptPushCursor(void);
void RecordAbilityBattle(u8 bank, u8 ability);
-void RecordItemBattle(u8 bank, u8 holdEffect);
+void RecordItemEffectBattle(u8 bank, u8 holdEffect);
static bool8 IsTwoTurnsMove(u16 move);
static void TrySetDestinyBondToHappen(void);
static void CheckWonderGuardAndLevitate(void);
u8 GetBattlerPosition(u8 bank);
u8 GetBattlerSide(u8 bank);
-u8 GetBattleBank(u8 bankValue);
+u8 GetBattlerForBattleScript(u8 bankValue);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def);
static u8 AttacksThisTurn(u8 bank, u16 move); //Note: returns 1 if it's a charging turn, otherwise 2
void UndoEffectsAfterFainting(void);
@@ -294,7 +231,7 @@ extern u8 BattleScript_PrintPayDayMoneyString[]; //bs payday money give
extern u8 BattleScript_FaintAttacker[];
extern u8 BattleScript_FaintTarget[];
extern u8 BattleScript_DestinyBondTakesLife[];
-extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
+extern u8 BattleScript_GrudgeTakesPp[];
// read via orr
#define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
@@ -306,7 +243,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
-#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBattlerTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT))
+#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT))
//array entries for battle communication
#define MOVE_EFFECT_BYTE 0x3
@@ -315,9 +252,9 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
#define TARGET_SELECTED 0x0
#define TARGET_DEPENDS 0x1
-#define TARGET_BOTH 0x8
-#define TARGET_FOES_AND_ALLY 0x20
-#define TARGET_OPPONENTS_FIELD 0x40
+#define MOVE_TARGET_BOTH 0x8
+#define MOVE_TARGET_FOES_AND_ALLY 0x20
+#define MOVE_TARGET_OPPONENTS_FIELD 0x40
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
@@ -444,11 +381,11 @@ 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 atk5E(void);
+static void atk5F_swapattackerwithtarget(void);
static void atk60_incrementgamestat(void);
static void atk61_drawpartystatussummary(void);
-static void atk62_08025C6C(void);
+static void atk62_hidepartystatussummary(void);
static void atk63_jumptorandomattack(void);
static void atk64_statusanimation(void);
static void atk65_status2animation(void);
@@ -570,10 +507,10 @@ static void atkD7_setyawn(void);
static void atkD8_setdamagetohealthdifference(void);
static void atkD9_scaledamagebyhealthratio(void);
static void atkDA_tryswapabilities(void);
-static void atkDB_tryimprision(void);
+static void atkDB_tryimprison(void);
static void atkDC_trysetgrudge(void);
static void atkDD_weightdamagecalculation(void);
-static void atkDE_asistattackselect(void);
+static void atkDE_assistattackselect(void);
static void atkDF_trysetmagiccoat(void);
static void atkE0_trysetsnatch(void);
static void atkE1_trygetintimidatetarget(void);
@@ -588,7 +525,7 @@ static void atkE9_setweatherballtype(void);
static void atkEA_tryrecycleitem(void);
static void atkEB_settypetoterrain(void);
static void atkEC_pursuitrelated(void);
-static void atkED_snatchsetbanks(void);
+static void atkEF_snatchsetbattlers(void);
static void atkEE_removelightscreenreflect(void);
void atkEF_handleballthrow(void);
static void atkF0_givecaughtmon(void);
@@ -696,11 +633,11 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atk5B_yesnoboxstoplearningmove,
atk5C_hitanimation,
atk5D_getmoneyreward,
- atk5E_8025A70,
- atk5F_8025B24,
+ atk5E,
+ atk5F_swapattackerwithtarget,
atk60_incrementgamestat,
atk61_drawpartystatussummary,
- atk62_08025C6C,
+ atk62_hidepartystatussummary,
atk63_jumptorandomattack,
atk64_statusanimation,
atk65_status2animation,
@@ -821,10 +758,10 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atkD8_setdamagetohealthdifference,
atkD9_scaledamagebyhealthratio,
atkDA_tryswapabilities,
- atkDB_tryimprision,
+ atkDB_tryimprison,
atkDC_trysetgrudge,
atkDD_weightdamagecalculation,
- atkDE_asistattackselect,
+ atkDE_assistattackselect,
atkDF_trysetmagiccoat,
atkE0_trysetsnatch,
atkE1_trygetintimidatetarget,
@@ -839,7 +776,7 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atkEA_tryrecycleitem,
atkEB_settypetoterrain,
atkEC_pursuitrelated,
- atkED_snatchsetbanks,
+ atkEF_snatchsetbattlers,
atkEE_removelightscreenreflect,
atkEF_handleballthrow,
atkF0_givecaughtmon,
@@ -881,12 +818,12 @@ static const u16 sCriticalHitChance[] = {16, 8, 4, 3, 2};
static const u32 sStatusFlagsForMoveEffects[] =
{
0x00000000,
- STATUS_SLEEP,
- STATUS_POISON,
- STATUS_BURN,
- STATUS_FREEZE,
- STATUS_PARALYSIS,
- STATUS_TOXIC_POISON,
+ STATUS1_SLEEP,
+ STATUS1_POISON,
+ STATUS1_BURN,
+ STATUS1_FREEZE,
+ STATUS1_PARALYSIS,
+ STATUS1_TOXIC_POISON,
STATUS2_CONFUSION,
STATUS2_FLINCHED,
0x00000000,
@@ -1001,26 +938,26 @@ static const u16 sProtectSuccessRates[] = {0xFFFF, 0x7FFF, 0x3FFF, 0x1FFF};
static const u16 sMovesForbiddenToCopy[] =
{
- MOVE_METRONOME,
- MOVE_STRUGGLE,
- MOVE_SKETCH,
- MOVE_MIMIC,
- MIMIC_FORBIDDEN_END,
- MOVE_COUNTER,
- MOVE_MIRROR_COAT,
- MOVE_PROTECT,
- MOVE_DETECT,
- MOVE_ENDURE,
- MOVE_DESTINY_BOND,
- MOVE_SLEEP_TALK,
- MOVE_THIEF,
- MOVE_FOLLOW_ME,
- MOVE_SNATCH,
- MOVE_HELPING_HAND,
- MOVE_COVET,
- MOVE_TRICK,
- MOVE_FOCUS_PUNCH,
- METRONOME_FORBIDDEN_END
+ MOVE_METRONOME,
+ MOVE_STRUGGLE,
+ MOVE_SKETCH,
+ MOVE_MIMIC,
+ MIMIC_FORBIDDEN_END,
+ MOVE_COUNTER,
+ MOVE_MIRROR_COAT,
+ MOVE_PROTECT,
+ MOVE_DETECT,
+ MOVE_ENDURE,
+ MOVE_DESTINY_BOND,
+ MOVE_SLEEP_TALK,
+ MOVE_THIEF,
+ MOVE_FOLLOW_ME,
+ MOVE_SNATCH,
+ MOVE_HELPING_HAND,
+ MOVE_COVET,
+ MOVE_TRICK,
+ MOVE_FOCUS_PUNCH,
+ METRONOME_FORBIDDEN_END
};
static const u8 sFlailHpScaleToPowerTable[] = //reversal+flail HP thresholds to power
@@ -1111,7 +1048,7 @@ static void atk00_attackcanceler(void)
return;
if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0))
return;
- if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200)
+ if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & (HITMARKER_x800000 | HITMARKER_NO_ATTACKSTRING))
&& !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))
{
gBattlescriptCurrInstr = BattleScript_NoPPForMove;
@@ -1150,11 +1087,11 @@ static void atk00_attackcanceler(void)
for (i = 0; i < gBattlersCount; i++)
{
- if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH)
+ if ((gProtectStructs[gBattlerByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH)
{
- PressurePPLose(gBattlerAttacker, gBanksByTurnOrder[i], MOVE_SNATCH);
- gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0;
- gBattleStruct->scriptingActive = gBanksByTurnOrder[i];
+ PressurePPLose(gBattlerAttacker, gBattlerByTurnOrder[i], MOVE_SNATCH);
+ gProtectStructs[gBattlerByTurnOrder[i]].stealMove = 0;
+ gBattleStruct->scriptingActive = gBattlerByTurnOrder[i];
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SnatchedMove;
return;
@@ -1169,8 +1106,8 @@ static void atk00_attackcanceler(void)
gBattlescriptCurrInstr = BattleScript_TookAttack;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
- else if (TARGET_PROTECT_AFFECTED
- && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST))
+ else if (DEFENDER_IS_PROTECTED
+ && (gCurrentMove != MOVE_CURSE || IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_GHOST))
&& ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))))
{
CancelMultiTurnMoves(gBattlerAttacker);
@@ -1206,7 +1143,7 @@ static void JumpIfMoveFailed(u8 adder, u16 move)
static void atk40_jumpifaffectedbyprotect(void)
{
- if (TARGET_PROTECT_AFFECTED)
+ if (DEFENDER_IS_PROTECTED)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(5, 0);
@@ -1221,7 +1158,7 @@ static void atk40_jumpifaffectedbyprotect(void)
static bool8 JumpIfMoveAffectedByProtect(u16 move)
{
bool8 affected = FALSE;
- if (TARGET_PROTECT_AFFECTED)
+ if (DEFENDER_IS_PROTECTED)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move);
@@ -1233,7 +1170,7 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move)
static bool8 AccuracyCalcHelper(u16 move)
{
- if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
{
JumpIfMoveFailed(7, move);
return TRUE;
@@ -1282,7 +1219,7 @@ static void atk01_accuracycheck(void)
if (move == 0xFFFE || move == 0xFFFF)
{
- if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
gBattlescriptCurrInstr += 7;
else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -1391,11 +1328,11 @@ static void atk03_ppreduce(void)
{
switch (gBattleMoves[gCurrentMove].target)
{
- case TARGET_FOES_AND_ALLY:
+ case MOVE_TARGET_FOES_AND_ALLY:
ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattlerAttacker, ABILITY_PRESSURE, 0, 0);
break;
- case TARGET_BOTH:
- case TARGET_OPPONENTS_FIELD:
+ case MOVE_TARGET_BOTH:
+ case MOVE_TARGET_OPPONENTS_FIELD:
ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBattlerAttacker, ABILITY_PRESSURE, 0, 0);
break;
default:
@@ -1415,7 +1352,7 @@ static void atk03_ppreduce(void)
gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0;
if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)
- && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos]))
+ && !((gDisableStructs[gBattlerAttacker].mimickedMoves) & gBitTable[gCurrMovePos]))
{
gActiveBattler = gBattlerAttacker;
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]);
@@ -1450,8 +1387,8 @@ static void atk04_critcalc(void)
+ 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY)
+ 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattlerAttacker].species == SPECIES_FARFETCHD);
- if (critChance > 4)
- critChance = 4;
+ if (critChance >= ARRAY_COUNT(sCriticalHitChance))
+ critChance = ARRAY_COUNT(sCriticalHitChance) - 1;
if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR)
&& !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT)
@@ -1466,9 +1403,9 @@ static void atk04_critcalc(void)
static void atk05_damagecalc(void)
{
- u16 side_hword = gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1];
+ u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)];
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
- side_hword, gDynamicBasePower,
+ sideStatus, gDynamicBasePower,
gBattleStruct->dynamicMoveType, gBattlerAttacker, gBattlerTarget);
gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier;
@@ -1480,18 +1417,18 @@ static void atk05_damagecalc(void)
gBattlescriptCurrInstr++;
}
-void AI_CalcDmg(u8 BankAtk, u8 BankDef)
+void AI_CalcDmg(u8 attacker, u8 defender)
{
- u16 side_hword = gSideAffecting[GetBattlerPosition(BankDef) & 1];
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[BankAtk], &gBattleMons[BankDef], gCurrentMove,
- side_hword, gDynamicBasePower,
- gBattleStruct->dynamicMoveType, BankAtk, BankDef);
+ u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(defender)];
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[attacker], &gBattleMons[defender], gCurrentMove,
+ sideStatus, gDynamicBasePower,
+ gBattleStruct->dynamicMoveType, attacker, defender);
gDynamicBasePower = 0;
gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier;
- if (gStatuses3[BankAtk] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ if (gStatuses3[attacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
gBattleMoveDamage *= 2;
- if (gProtectStructs[BankAtk].helpingHand)
+ if (gProtectStructs[attacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
}
@@ -1503,12 +1440,12 @@ static void ModulateDmgByType(u8 multiplier)
switch (multiplier)
{
- case 0: //no effect
+ case TYPE_MUL_NO_EFFECT:
gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
break;
- case 5: //not very effecting
+ case TYPE_MUL_NOT_EFFECTIVE:
if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
@@ -1517,7 +1454,7 @@ static void ModulateDmgByType(u8 multiplier)
gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
break;
- case 20: //super effective
+ case TYPE_MUL_SUPER_EFFECTIVE:
if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
@@ -1532,28 +1469,28 @@ static void ModulateDmgByType(u8 multiplier)
static void atk06_typecalc(void)
{
int i = 0;
- u8 move_type;
+ u8 moveType;
if (gCurrentMove != MOVE_STRUGGLE)
{
if (gBattleStruct->dynamicMoveType)
- move_type = gBattleStruct->dynamicMoveType & 0x3F;
+ moveType = gBattleStruct->dynamicMoveType & 0x3F;
else
- move_type = gBattleMoves[gCurrentMove].type;
+ moveType = gBattleMoves[gCurrentMove].type;
//check stab
- if (gBattleMons[gBattlerAttacker].type1 == move_type || gBattleMons[gBattlerAttacker].type2 == move_type)
+ if (gBattleMons[gBattlerAttacker].type1 == moveType || gBattleMons[gBattlerAttacker].type2 == moveType)
{
gBattleMoveDamage = gBattleMoveDamage * 15;
gBattleMoveDamage = gBattleMoveDamage / 10;
}
- if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
gLastLandedMoves[gBattlerTarget] = 0;
gLastHitByType[gBattlerTarget] = 0;
- gBattleCommunication[6] = move_type;
+ gBattleCommunication[6] = moveType;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
@@ -1568,7 +1505,7 @@ static void atk06_typecalc(void)
continue;
}
- else if (gTypeEffectiveness[i] == move_type)
+ else if (gTypeEffectiveness[i] == moveType)
{
//check type1
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1)
@@ -1601,24 +1538,21 @@ static void atk06_typecalc(void)
static void CheckWonderGuardAndLevitate(void)
{
u8 flags = 0;
- int i = 0;
- u8 move_type;
+ s32 i = 0;
+ u8 moveType;
if (gCurrentMove == MOVE_STRUGGLE || !gBattleMoves[gCurrentMove].power)
return;
- if (gBattleStruct->dynamicMoveType)
- move_type = gBattleStruct->dynamicMoveType & 0x3F;
- else
- move_type = gBattleMoves[gCurrentMove].type;
+ GET_MOVE_TYPE(gCurrentMove, moveType);
- if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
- RecordAbilitySetField6(ABILITY_LEVITATE, move_type);
+ RecordAbilitySetField6(ABILITY_LEVITATE, moveType);
return;
}
- while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
+ while (gTypeEffectiveness[i] != TYPE_ENDTABLE)
{
if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
{
@@ -1628,9 +1562,9 @@ static void CheckWonderGuardAndLevitate(void)
continue;
}
- if (gTypeEffectiveness[i] == move_type)
+ if (gTypeEffectiveness[i] == moveType)
{
- //check no effect
+ // check no effect
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 0)
{
gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
@@ -1644,7 +1578,7 @@ static void CheckWonderGuardAndLevitate(void)
gProtectStructs[gBattlerAttacker].targetNotAffected = 1;
}
- //check super effective
+ // check super effective
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 20)
flags |= 1;
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2
@@ -1652,7 +1586,7 @@ static void CheckWonderGuardAndLevitate(void)
&& gTypeEffectiveness[i + 2] == 20)
flags |= 1;
- //check not very effective
+ // check not very effective
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 5)
flags |= 2;
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2
@@ -1672,7 +1606,7 @@ static void CheckWonderGuardAndLevitate(void)
}
}
-static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal copy of the ModulateDmgbyType1 with different args...
+static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) // same as ModulateDmgByType except different arguments
{
gBattleMoveDamage = gBattleMoveDamage * multiplier / 10;
if (gBattleMoveDamage == 0 && multiplier != 0)
@@ -1680,12 +1614,12 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
switch (multiplier)
{
- case 0: //no effect
+ case TYPE_MUL_NO_EFFECT:
*flags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
*flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
*flags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
break;
- case 5: //not very effecting
+ case TYPE_MUL_NOT_EFFECTIVE:
if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT))
{
if (*flags & MOVE_RESULT_SUPER_EFFECTIVE)
@@ -1694,7 +1628,7 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
*flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
break;
- case 20: //super effective
+ case TYPE_MUL_SUPER_EFFECTIVE:
if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT))
{
if (*flags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
@@ -1706,25 +1640,25 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
}
}
-u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
+u8 TypeCalc(u16 move, u8 attacker, u8 defender)
{
- int i = 0;
+ s32 i = 0;
u8 flags = 0;
- u8 move_type;
+ u8 moveType;
if (move == MOVE_STRUGGLE)
return 0;
- move_type = gBattleMoves[move].type;
+ moveType = gBattleMoves[move].type;
- //check stab
- if (gBattleMons[bank_atk].type1 == move_type || gBattleMons[bank_atk].type2 == move_type)
+ // check stab
+ if (IS_BATTLER_OF_TYPE(attacker, moveType))
{
gBattleMoveDamage = gBattleMoveDamage * 15;
gBattleMoveDamage = gBattleMoveDamage / 10;
}
- if (gBattleMons[bank_def].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[defender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
}
@@ -1734,28 +1668,28 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
{
if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
{
- if (gBattleMons[bank_def].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[defender].status2 & STATUS2_FORESIGHT)
break;
i += 3;
continue;
}
- else if (gTypeEffectiveness[i] == move_type)
+ else if (gTypeEffectiveness[i] == moveType)
{
- //check type1
- if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type1)
+ // check type1
+ if (gTypeEffectiveness[i + 1] == gBattleMons[defender].type1)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
- //check type2
- if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type2 &&
- gBattleMons[gBattlerTarget /* what the christ */].type1 != gBattleMons[bank_def].type2)
+ // check type2
+ if (gTypeEffectiveness[i + 1] == gBattleMons[defender].type2 &&
+ gBattleMons[gBattlerTarget /* what the christ */].type1 != gBattleMons[defender].type2)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
}
i += 3;
}
}
- if (gBattleMons[bank_def].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) &&
- AttacksThisTurn(bank_atk, move) == 2 &&
+ if (gBattleMons[defender].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) &&
+ AttacksThisTurn(attacker, move) == 2 &&
(!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) &&
gBattleMoves[move].power)
{
@@ -1764,41 +1698,43 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
return flags;
}
-u8 AI_TypeCalc(u16 move, u16 species, u8 ability)
+u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility)
{
int i = 0;
u8 flags = 0;
- u8 type1 = gBaseStats[species].type1, type2 = gBaseStats[species].type2, move_type;
+ u8 type1 = gBaseStats[targetSpecies].type1, type2 = gBaseStats[targetSpecies].type2, moveType;
if (move == MOVE_STRUGGLE)
return 0;
- move_type = gBattleMoves[move].type;
+ moveType = gBattleMoves[move].type;
- if (ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (targetAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ {
flags = MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE;
+ }
else
{
- while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
+ while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE)
{
- if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
+ if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
i += 3;
continue;
}
- if (gTypeEffectiveness[i] == move_type)
+ if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
- //check type1
- if (gTypeEffectiveness[i + 1] == type1)
- ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
- //check type2
- if (gTypeEffectiveness[i + 1] == type2 && gBattleMons[gBattlerTarget].type1 != type2) //gf you morons, you should check if (type1 != type2)...
- ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
+ // check type1
+ if (TYPE_EFFECT_DEF_TYPE(i) == type1)
+ ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags);
+ // check type2
+ if (TYPE_EFFECT_DEF_TYPE(i) == type2 && gBattleMons[gBattlerTarget].type1 != type2) //gf you morons, you should check if (type1 != type2)...
+ ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags);
}
i += 3;
}
}
- if (ability == ABILITY_WONDER_GUARD
+ if (targetAbility == ABILITY_WONDER_GUARD
&& (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)))
&& gBattleMoves[move].power)
flags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
@@ -1827,23 +1763,26 @@ void Unused_ApplyRandomDmgMultiplier(void)
static void atk07_adjustnormaldamage(void)
{
- u8 hold_effect, quality;
+ u8 holdEffect, param;
+
ApplyRandomDmgMultiplier();
+
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
@@ -1860,9 +1799,8 @@ static void atk07_adjustnormaldamage(void)
if (gProtectStructs[gBattlerTarget].endured)
{
gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
- goto END;
}
- if (gSpecialStatuses[gBattlerTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
gLastUsedItem = gBattleMons[gBattlerTarget].item;
@@ -1872,33 +1810,34 @@ static void atk07_adjustnormaldamage(void)
gBattlescriptCurrInstr++;
}
-static void atk08_adjustnormaldamage2(void) //literally 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 hold_effect, quality;
+ u8 holdEffect, param;
+
ApplyRandomDmgMultiplier();
+
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
goto END;
- if (!gProtectStructs[gBattlerTarget].endured
- && !gSpecialStatuses[gBattlerTarget].focusBanded)
+ if (!gProtectStructs[gBattlerTarget].endured && !gSpecialStatuses[gBattlerTarget].focusBanded)
goto END;
-
if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage)
goto END;
@@ -1907,9 +1846,8 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i
if (gProtectStructs[gBattlerTarget].endured)
{
gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
- goto END;
}
- if (gSpecialStatuses[gBattlerTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
gLastUsedItem = gBattleMons[gBattlerTarget].item;
@@ -1928,12 +1866,12 @@ static void atk09_attackanimation(void)
{
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_Pausex20;
- gBattleStruct->animTurn += 1;
- gBattleStruct->animTargetsHit += 1;
+ gBattleStruct->animTurn++;
+ gBattleStruct->animTargetsHit++;
}
else
{
- if ((gBattleMoves[gCurrentMove].target & TARGET_BOTH || gBattleMoves[gCurrentMove].target & TARGET_FOES_AND_ALLY || gBattleMoves[gCurrentMove].target & TARGET_DEPENDS) && gBattleStruct->animTargetsHit)
+ if ((gBattleMoves[gCurrentMove].target & MOVE_TARGET_BOTH || gBattleMoves[gCurrentMove].target & MOVE_TARGET_FOES_AND_ALLY || gBattleMoves[gCurrentMove].target & TARGET_DEPENDS) && gBattleStruct->animTargetsHit)
{
gBattlescriptCurrInstr++;
return;
@@ -1969,7 +1907,7 @@ static void atk0B_healthbarupdate(void)
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
@@ -1996,7 +1934,7 @@ static void atk0B_healthbarupdate(void)
MarkBattlerForControllerExec(gActiveBattler);
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0)
- gBattleResults.unk5_0 = 1;
+ gBattleResults.playerMonWasDamaged = TRUE;
}
}
@@ -2019,7 +1957,7 @@ static void atk0C_datahpupdate(void)
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage)
@@ -2064,10 +2002,10 @@ static void atk0C_datahpupdate(void)
else
{
gTakenDmg[gActiveBattler] += gBattleMoveDamage;
- if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
- gTakenDmgBanks[gActiveBattler] = gBattlerAttacker;
+ if (gBattlescriptCurrInstr[1] == BS_TARGET)
+ gTakenDmgByBattler[gActiveBattler] = gBattlerAttacker;
else
- gTakenDmgBanks[gActiveBattler] = gBattlerTarget;
+ gTakenDmgByBattler[gActiveBattler] = gBattlerTarget;
}
if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage)
@@ -2084,11 +2022,11 @@ static void atk0C_datahpupdate(void)
if (!gSpecialStatuses[gActiveBattler].dmg && !(gHitMarker & HITMARKER_x100000))
gSpecialStatuses[gActiveBattler].dmg = gHpDealt;
- if (TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
+ if (IS_TYPE_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
{
gProtectStructs[gActiveBattler].physicalDmg = gHpDealt;
gSpecialStatuses[gActiveBattler].physicalDmg = gHpDealt;
- if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
+ if (gBattlescriptCurrInstr[1] == BS_TARGET)
{
gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerAttacker;
gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerAttacker;
@@ -2099,11 +2037,11 @@ static void atk0C_datahpupdate(void)
gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerTarget;
}
}
- else if (!TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000))
+ else if (!IS_TYPE_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000))
{
gProtectStructs[gActiveBattler].specialDmg = gHpDealt;
gSpecialStatuses[gActiveBattler].specialDmg = gHpDealt;
- if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
+ if (gBattlescriptCurrInstr[1] == BS_TARGET)
{
gProtectStructs[gActiveBattler].specialBattlerId = gBattlerAttacker;
gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerAttacker;
@@ -2122,7 +2060,7 @@ static void atk0C_datahpupdate(void)
}
else
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gSpecialStatuses[gActiveBattler].dmg == 0)
gSpecialStatuses[gActiveBattler].dmg = 0xFFFF;
}
@@ -2150,19 +2088,19 @@ static void atk0E_effectivenesssound(void)
gActiveBattler = gBattlerTarget;
if (!(gMoveResultFlags & MOVE_RESULT_MISSED))
{
- u8 flag = ~MOVE_RESULT_MISSED;
- switch (gMoveResultFlags & flag)
+ switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED)))
{
case MOVE_RESULT_SUPER_EFFECTIVE:
- BtlController_EmitPlaySE(0, 14);
+ BtlController_EmitPlaySE(0, SE_KOUKA_H);
MarkBattlerForControllerExec(gActiveBattler);
break;
case MOVE_RESULT_NOT_VERY_EFFECTIVE:
- BtlController_EmitPlaySE(0, 12);
+ BtlController_EmitPlaySE(0, SE_KOUKA_L);
MarkBattlerForControllerExec(gActiveBattler);
break;
case MOVE_RESULT_DOESNT_AFFECT_FOE:
case MOVE_RESULT_FAILED:
+ // no sound
break;
case MOVE_RESULT_FOE_ENDURED:
case MOVE_RESULT_ONE_HIT_KO:
@@ -2170,17 +2108,17 @@ static void atk0E_effectivenesssound(void)
default:
if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{
- BtlController_EmitPlaySE(0, 14);
+ BtlController_EmitPlaySE(0, SE_KOUKA_H);
MarkBattlerForControllerExec(gActiveBattler);
}
else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
{
- BtlController_EmitPlaySE(0, 12);
+ BtlController_EmitPlaySE(0, SE_KOUKA_L);
MarkBattlerForControllerExec(gActiveBattler);
}
else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)))
{
- BtlController_EmitPlaySE(0, 13);
+ BtlController_EmitPlaySE(0, SE_KOUKA_M);
MarkBattlerForControllerExec(gActiveBattler);
}
break;
@@ -2292,8 +2230,10 @@ static void atk10_printstring(void)
static void atk11_printselectionstring(void)
{
gActiveBattler = gBattlerAttacker;
+
BtlController_EmitPrintSelectionString(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBattlerForControllerExec(gActiveBattler);
+
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
}
@@ -2308,8 +2248,8 @@ static void atk12_waitmessage(void)
}
else
{
- u16 to_wait = T2_READ_16(gBattlescriptCurrInstr + 1);
- if (++gPauseCounterBattle >= to_wait)
+ u16 toWait = T2_READ_16(gBattlescriptCurrInstr + 1);
+ if (++gPauseCounterBattle >= toWait)
{
gPauseCounterBattle = 0;
gBattlescriptCurrInstr += 3;
@@ -2345,12 +2285,12 @@ static void atk14_printselectionstringfromtable(void)
}
}
-u8 BankGetTurnOrder(u8 bank)
+u8 GetBattlerTurnOrderNum(u8 battlerId)
{
int i;
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == bank)
+ if (gBattlerByTurnOrder[i] == battlerId)
break;
}
return i;
@@ -2383,7 +2323,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9)
{gBattlescriptCurrInstr++; return;}
- if (gSideAffecting[GetBattlerPosition(gEffectBattler) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
+ if (gSideStatuses[GetBattlerPosition(gEffectBattler) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7)
{gBattlescriptCurrInstr++; return;}
@@ -2398,7 +2338,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
- case STATUS_SLEEP:
+ case STATUS1_SLEEP:
//check active uproar
if (gBattleMons[gEffectBattler].ability != ABILITY_SOUNDPROOF)
{
@@ -2414,7 +2354,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
CancelMultiTurnMoves(gEffectBattler);
StatusChanged = 1;
break;
- case STATUS_POISON:
+ case STATUS1_POISON:
if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_IMMUNITY;
@@ -2448,7 +2388,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
StatusChanged = 1;
break;
- case STATUS_BURN:
+ case STATUS1_BURN:
if (gBattleMons[gEffectBattler].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_WATER_VEIL;
@@ -2479,7 +2419,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBattler].status1 == 0) {break;}
StatusChanged = 1;
break;
- case STATUS_FREEZE:
+ case STATUS1_FREEZE:
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) {NoSunCanFreeze = 0;}
if (gBattleMons[gEffectBattler].type1 == TYPE_ICE) {break;}
if (gBattleMons[gEffectBattler].type2 == TYPE_ICE) {break;}
@@ -2490,7 +2430,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
CancelMultiTurnMoves(gEffectBattler);
StatusChanged = 1;
break;
- case STATUS_PARALYSIS:
+ case STATUS1_PARALYSIS:
if (gBattleMons[gEffectBattler].ability == ABILITY_LIMBER)
{
if ((primary == 1 || certain == 0x80))
@@ -2514,7 +2454,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBattler].status1) {break;}
StatusChanged = 1;
break;
- case STATUS_TOXIC_POISON:
+ case STATUS1_TOXIC_POISON:
if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_IMMUNITY;
@@ -2557,7 +2497,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (StatusChanged == 1)
{
BattleScriptPush(gBattlescriptCurrInstr + 1);
- if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP)
+ if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS1_SLEEP)
gBattleMons[gEffectBattler].status1 |= ((Random() & 3) + 2);
else
gBattleMons[gEffectBattler].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
@@ -2615,7 +2555,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
else
{
- if (BankGetTurnOrder(gEffectBattler) > gCurrentTurnActionNumber)
+ if (GetBattlerTurnOrderNum(gEffectBattler) > gCurrentTurnActionNumber)
gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr++; return;
}
@@ -2781,9 +2721,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
return;
case 36: //paralysis removal
- if (gBattleMons[gBattlerTarget].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[gBattlerTarget].status1 & STATUS1_PARALYSIS)
{
- gBattleMons[gBattlerTarget].status1 &= ~(STATUS_PARALYSIS);
+ gBattleMons[gBattlerTarget].status1 &= ~(STATUS1_PARALYSIS);
gActiveBattler = gBattlerTarget;
BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1);
MarkBattlerForControllerExec(gActiveBattler);
@@ -2929,7 +2869,7 @@ _0801E48A:\n\
mov r1, r8\n\
ldrb r0, [r1]\n\
bl GetBattlerPosition\n\
- ldr r2, _0801E554 @ =gSideAffecting\n\
+ ldr r2, _0801E554 @ =gSideStatuses\n\
movs r1, 0x1\n\
ands r1, r0\n\
lsls r1, 1\n\
@@ -3023,7 +2963,7 @@ _0801E544: .4byte gBattlerAttacker\n\
_0801E548: .4byte 0x00016003\n\
_0801E54C: .4byte gBattleMons\n\
_0801E550: .4byte gHitMarker\n\
-_0801E554: .4byte gSideAffecting\n\
+_0801E554: .4byte gSideStatuses\n\
_0801E558: .4byte gBattleCommunication\n\
_0801E55C: .4byte sStatusFlagsForMoveEffects\n\
_0801E560:\n\
@@ -3957,7 +3897,7 @@ _0801ED10: .4byte gBattlescriptCurrInstr\n\
_0801ED14: .4byte BattleScript_FlinchPrevention\n\
_0801ED18:\n\
adds r0, r2, 0\n\
- bl BankGetTurnOrder\n\
+ bl GetBattlerTurnOrderNum\n\
ldr r1, _0801ED54 @ =gCurrentTurnActionNumber\n\
lsls r0, 24\n\
lsrs r0, 24\n\
@@ -5017,27 +4957,31 @@ _0801F610: .4byte BattleScript_SAtkDown2\n\
static void atk15_seteffectwithchance(void)
{
- u32 PercentChance;
+ u32 percentChance;
if (gBattleMons[gBattlerAttacker].ability == ABILITY_SERENE_GRACE)
- PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2;
+ percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2;
else
- PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance;
+ percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance;
if (DEBUG && (gUnknown_02023A14_50 & 4)
- && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
+ && !(gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN)
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
SetMoveEffect(0, 0);
}
- else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
+ else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN)
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gBattleCommunication[MOVE_EFFECT_BYTE] &= 0x7F;
- SetMoveEffect(0, 0x80);
+ gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_CERTAIN);
+ SetMoveEffect(0, MOVE_EFFECT_CERTAIN);
}
- else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
+ else if (Random() % 100 <= percentChance // Random() % 100 < percentChance in Emerald
+ && gBattleCommunication[MOVE_EFFECT_BYTE]
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- if (PercentChance >= 100)
- SetMoveEffect(0, 0x80);
+ if (percentChance >= 100)
+ SetMoveEffect(0, MOVE_EFFECT_CERTAIN);
else
SetMoveEffect(0, 0);
}
@@ -5062,8 +5006,9 @@ static void atk17_seteffectsecondary(void)
static void atk18_clearstatusfromeffect(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6)
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
+
+ if (gBattleCommunication[MOVE_EFFECT_BYTE] <= MOVE_EFFECT_TOXIC)
gBattleMons[gActiveBattler].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
else
gBattleMons[gActiveBattler].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
@@ -5075,18 +5020,18 @@ static void atk18_clearstatusfromeffect(void)
static void atk19_tryfaintmon(void)
{
- u8 *r4;
+ const u8 *BS_ptr;
if (gBattlescriptCurrInstr[2] != 0)
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
{
- r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3);
+ BS_ptr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
BattleScriptPop();
- gBattlescriptCurrInstr = r4;
- gSideAffecting[GetBattlerSide(gActiveBattler)] &= ~SIDE_STATUS_SPIKES_DAMAGED;
+ gBattlescriptCurrInstr = BS_ptr;
+ gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
}
else
{
@@ -5095,41 +5040,41 @@ static void atk19_tryfaintmon(void)
}
else
{
- u8 bank;
+ u8 battlerId;
if (gBattlescriptCurrInstr[1] == 1)
{
gActiveBattler = gBattlerAttacker;
- bank = gBattlerTarget;
- r4 = BattleScript_FaintAttacker;
+ battlerId = gBattlerTarget;
+ BS_ptr = BattleScript_FaintAttacker;
}
else
{
gActiveBattler = gBattlerTarget;
- bank = gBattlerAttacker;
- r4 = BattleScript_FaintTarget;
+ battlerId = gBattlerAttacker;
+ BS_ptr = BattleScript_FaintTarget;
}
if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])
&& gBattleMons[gActiveBattler].hp == 0)
{
- ewram160ACarr2(0, bank) = 0;
- ewram160ACarr2(1, bank) = 0;
- ewram16100arr2(0, bank) = 0;
- ewram16100arr2(1, bank) = 0;
- ewram16100arr2(2, bank) = 0;
- ewram16100arr2(3, bank) = 0;
+ ewram160ACarr2(0, battlerId) = 0;
+ ewram160ACarr2(1, battlerId) = 0;
+ ewram16100arr2(0, battlerId) = 0;
+ ewram16100arr2(1, battlerId) = 0;
+ ewram16100arr2(2, battlerId) = 0;
+ ewram16100arr2(3, battlerId) = 0;
gHitMarker |= HITMARKER_FAINTED(gActiveBattler);
BattleScriptPush(gBattlescriptCurrInstr + 7);
- gBattlescriptCurrInstr = r4;
- if (GetBattlerSide(gActiveBattler) == 0)
+ gBattlescriptCurrInstr = BS_ptr;
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
gHitMarker |= HITMARKER_x400000;
if (gBattleResults.playerFaintCounter < 0xFF)
gBattleResults.playerFaintCounter++;
- if (gBattleMons[bank].level > gBattleMons[gActiveBattler].level)
+ if (gBattleMons[battlerId].level > gBattleMons[gActiveBattler].level)
{
- if (gBattleMons[bank].level - gBattleMons[gActiveBattler].level > 29)
+ if (gBattleMons[battlerId].level - gBattleMons[gActiveBattler].level > 29)
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], FRIENDSHIP_EVENT_FAINT_LARGE);
else
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], FRIENDSHIP_EVENT_FAINT_SMALL);
@@ -5144,7 +5089,7 @@ static void atk19_tryfaintmon(void)
if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattlerAttacker].hp != 0)
{
BattleScriptPush(gBattlescriptCurrInstr);
- gBattleMoveDamage = gBattleMons[bank].hp;
+ gBattleMoveDamage = gBattleMons[battlerId].hp;
gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife;
}
if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE)
@@ -5157,7 +5102,7 @@ static void atk19_tryfaintmon(void)
gBattleMons[gBattlerAttacker].pp[moveIndex] = 0;
BattleScriptPush(gBattlescriptCurrInstr);
- gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace;
+ gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp;
gActiveBattler = gBattlerAttacker;
BtlController_EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]);
MarkBattlerForControllerExec(gActiveBattler);
@@ -5180,7 +5125,7 @@ static void atk1A_dofaintanimation(void)
{
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
BtlController_EmitFaintAnimation(0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -5192,7 +5137,7 @@ static void atk1B_cleareffectsonfaint(void)
//Clears things like attraction or trapping to other banks
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattleMons[gActiveBattler].status1 = 0;
BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1);
MarkBattlerForControllerExec(gActiveBattler);
@@ -5203,7 +5148,7 @@ static void atk1B_cleareffectsonfaint(void)
static void atk1C_jumpifstatus(void)
{
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 bank = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (gBattleMons[bank].status1 & flags && gBattleMons[bank].hp)
@@ -5214,10 +5159,10 @@ static void atk1C_jumpifstatus(void)
static void atk1D_jumpifstatus2(void)
{
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
- if (gBattleMons[bank].status2 & flags && gBattleMons[bank].hp)
+ if (gBattleMons[battlerId].status2 & flags && gBattleMons[battlerId].hp)
gBattlescriptCurrInstr = jump_loc;
else
gBattlescriptCurrInstr += 10;
@@ -5225,44 +5170,44 @@ static void atk1D_jumpifstatus2(void)
static void atk1E_jumpifability(void)
{
- u8 bank;
- u8 ability = T2_READ_8(gBattlescriptCurrInstr + 2);
- void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
+ u8 battlerId;
+ u8 ability = gBattlescriptCurrInstr[2];
+ void* jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 3);
if (T2_READ_8(gBattlescriptCurrInstr + 1) == 8)
{
- bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0);
- if (bank)
+ battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0);
+ if (battlerId)
{
gLastUsedAbility = ability;
- gBattlescriptCurrInstr = jump_loc;
- RecordAbilityBattle(bank -1, gLastUsedAbility);
- ewram160F8 = bank - 1;
+ gBattlescriptCurrInstr = jumpPtr;
+ RecordAbilityBattle(battlerId -1, gLastUsedAbility);
+ ewram160F8 = battlerId - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 9)
{
- bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0);
- if (bank)
+ battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0);
+ if (battlerId)
{
gLastUsedAbility = ability;
- gBattlescriptCurrInstr = jump_loc;
- RecordAbilityBattle(bank - 1, gLastUsedAbility);
- ewram160F8 = bank - 1;
+ gBattlescriptCurrInstr = jumpPtr;
+ RecordAbilityBattle(battlerId - 1, gLastUsedAbility);
+ ewram160F8 = battlerId - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else
{
- bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- if (gBattleMons[bank].ability == ability)
+ battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
+ if (gBattleMons[battlerId].ability == ability)
{
gLastUsedAbility = ability;
- gBattlescriptCurrInstr = jump_loc;
- RecordAbilityBattle(bank, gLastUsedAbility);
- ewram160F8 = bank;
+ gBattlescriptCurrInstr = jumpPtr;
+ RecordAbilityBattle(battlerId, gLastUsedAbility);
+ ewram160F8 = battlerId;
}
else
gBattlescriptCurrInstr += 7;
@@ -5282,7 +5227,7 @@ static void atk1F_jumpifsideaffecting(void)
flags = T2_READ_16(gBattlescriptCurrInstr + 2);
jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4);
- if (gSideAffecting[side] & flags)
+ if (gSideStatuses[side] & flags)
gBattlescriptCurrInstr = jump_loc;
else
gBattlescriptCurrInstr += 8;
@@ -5291,8 +5236,8 @@ static void atk1F_jumpifsideaffecting(void)
static void atk20_jumpifstat(void)
{
u8 ret = 0;
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- u8 value = gBattleMons[bank].statStages[T2_READ_8(gBattlescriptCurrInstr + 3)];
+ u8 battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 value = gBattleMons[battlerId].statStages[T2_READ_8(gBattlescriptCurrInstr + 3)];
switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case CMP_EQUAL:
@@ -5331,7 +5276,7 @@ static void atk21_jumpifstatus3condition(void)
u32 flags;
void* jump_loc;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
flags = T2_READ_32(gBattlescriptCurrInstr + 2);
jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7);
if (T2_READ_8(gBattlescriptCurrInstr + 6))
@@ -5350,13 +5295,13 @@ static void atk21_jumpifstatus3condition(void)
}
}
-static void atk22_jumpiftype(void) //u8 bank, u8 type, *ptr
+static void atk22_jumpiftype(void) //u8 battlerId, u8 type, *ptr
{
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
u8 type = T2_READ_8(gBattlescriptCurrInstr + 2);
void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
- if (gBattleMons[bank].type1 == type || gBattleMons[bank].type2 == type)
+ if (gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type)
gBattlescriptCurrInstr = jump_loc;
else
gBattlescriptCurrInstr += 7;
@@ -5372,7 +5317,7 @@ static void atk23_getexp(void)
s32 viaExpShare = 0;
u16* exp = &gBattleStruct->exp;
- gBank1 = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gBank1 = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
sentIn = gSentPokesToOpponent[(gBank1 & 2) >> 1];
switch (gBattleStruct->getexpStateTracker)
@@ -5436,14 +5381,14 @@ static void atk23_getexp(void)
}
gBattleStruct->getexpStateTracker++;
- gBattleStruct->expGetterID = 0;
+ gBattleStruct->expGetterMonId = 0;
gBattleStruct->sentInPokes = sentIn;
}
// fall through
case 2: // set exp value to the poke in expgetter_id and print message
if (gBattleControllerExecFlags == 0)
{
- item = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HELD_ITEM);
+ item = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HELD_ITEM);
if (item == ITEM_ENIGMA_BERRY)
holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
@@ -5456,7 +5401,7 @@ static void atk23_getexp(void)
gBattleStruct->getexpStateTracker = 5;
gBattleMoveDamage = 0; // used for exp
}
- else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) == 100)
+ else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) == 100)
{
gBattleStruct->sentInPokes >>= 1;
gBattleStruct->getexpStateTracker = 5;
@@ -5468,11 +5413,11 @@ static void atk23_getexp(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong)
{
BattleStopLowHpSound();
- PlayBGM(0x161);
+ PlayBGM(MUS_KACHI2);
gBattleStruct->wildVictorySong++;
}
- if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP))
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP))
{
if (gBattleStruct->sentInPokes & 1)
gBattleMoveDamage = *exp;
@@ -5486,7 +5431,7 @@ static void atk23_getexp(void)
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
- if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterID]))
+ if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterMonId]))
{
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
i = 0x14A;
@@ -5499,28 +5444,28 @@ static void atk23_getexp(void)
// get exp getter bank
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterID) && !(gAbsentBattlerFlags & gBitTable[2]))
- gBattleStruct->expGetterBank = 2;
+ if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterMonId) && !(gAbsentBattlerFlags & gBitTable[2]))
+ gBattleStruct->expGetterBattlerId = 2;
else
{
if (!(gAbsentBattlerFlags & gBitTable[0]))
- gBattleStruct->expGetterBank = 0;
+ gBattleStruct->expGetterBattlerId = 0;
else
- gBattleStruct->expGetterBank = 2;
+ gBattleStruct->expGetterBattlerId = 2;
}
}
else
- gBattleStruct->expGetterBank = 0;
+ gBattleStruct->expGetterBattlerId = 0;
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBank, gBattleStruct->expGetterID)
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId)
// buffer 'gained' or 'gained a boosted'
PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage)
- PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBank);
- MonGainEVs(&gPlayerParty[gBattleStruct->expGetterID], gBattleMons[gBank1].species);
+ PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBattlerId);
+ MonGainEVs(&gPlayerParty[gBattleStruct->expGetterMonId], gBattleMons[gBank1].species);
}
gBattleStruct->sentInPokes >>= 1;
gBattleStruct->getexpStateTracker++;
@@ -5530,19 +5475,19 @@ static void atk23_getexp(void)
case 3: // Set stats and give exp
if (gBattleControllerExecFlags == 0)
{
- gBattleBufferB[gBattleStruct->expGetterBank][0] = 0;
- if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) != 100)
+ gBattleBufferB[gBattleStruct->expGetterBattlerId][0] = 0;
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) != 100)
{
- gBattleResources_statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
- gBattleResources_statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
- gBattleResources_statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
- gBattleResources_statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
- gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF);
+ gBattleResources_statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
+ gBattleResources_statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
+ gBattleResources_statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF);
+ gBattleResources_statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK);
+ gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPDEF);
- gActiveBattler = gBattleStruct->expGetterBank;
+ gActiveBattler = gBattleStruct->expGetterBattlerId;
- BtlController_EmitExpUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage);
+ BtlController_EmitExpUpdate(0, gBattleStruct->expGetterMonId, gBattleMoveDamage);
MarkBattlerForControllerExec(gActiveBattler);
}
gBattleStruct->getexpStateTracker++;
@@ -5551,49 +5496,49 @@ static void atk23_getexp(void)
case 4: // lvl up if necessary
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = gBattleStruct->expGetterBank;
+ gActiveBattler = gBattleStruct->expGetterBattlerId;
if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES
&& gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP)
{
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID)
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId)
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterID)
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterMonId)
- PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL))
+ PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL))
BattleScriptPushCursor();
- gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterID];
+ gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterMonId];
gBattlescriptCurrInstr = BattleScript_LevelUp;
gBattleMoveDamage = (gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8));
- AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterID], FRIENDSHIP_EVENT_GROW_LEVEL);
+ AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterMonId], FRIENDSHIP_EVENT_GROW_LEVEL);
// update battle mon structure after level up
- if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && gBattleMons[0].hp)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId && gBattleMons[0].hp)
{
- gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL);
- gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP);
- gBattleMons[0].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
- gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
- gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL);
+ gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP);
+ gBattleMons[0].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
+ gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
+ gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF);
// Why is this duplicated?
- gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
- gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK);
+ gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPDEF);
}
// What is else if?
- if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL);
- gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP);
- gBattleMons[2].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
- gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
- gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL);
+ gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP);
+ gBattleMons[2].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
+ gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
+ gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF);
// Duplicated again, but this time there's no Sp Defense
- gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK);
}
}
else
@@ -5608,8 +5553,8 @@ static void atk23_getexp(void)
gBattleStruct->getexpStateTracker = 3;
else
{
- gBattleStruct->expGetterID++;
- if (gBattleStruct->expGetterID <= 5)
+ gBattleStruct->expGetterMonId++;
+ if (gBattleStruct->expGetterMonId <= 5)
gBattleStruct->getexpStateTracker = 2; // loop again
else
gBattleStruct->getexpStateTracker = 6; // we're done
@@ -5641,7 +5586,7 @@ static void atk24(void)
}
if (HP_count == 0)
- gBattleOutcome |= BATTLE_LOST;
+ gBattleOutcome |= B_OUTCOME_LOST;
for (HP_count = 0, i = 0; i < 6; i++)
{
@@ -5650,7 +5595,7 @@ static void atk24(void)
}
if (!HP_count)
- gBattleOutcome |= BATTLE_WON;
+ gBattleOutcome |= B_OUTCOME_WON;
if (!gBattleOutcome && (gBattleTypeFlags & BATTLE_TYPE_LINK))
{
@@ -6271,7 +6216,7 @@ static void atk41_call(void)
static void atk42_jumpiftype2(void) //u8 bank, u8 type, *ptr
{
- u8 bank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ u8 bank = GetBattlerForBattleScript(T1_READ_8(gBattlescriptCurrInstr + 1));
if (T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type1 || T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type2)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
@@ -6296,7 +6241,7 @@ static void atk45_playanimation(void)
{
const u16* argumentPtr;
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE
@@ -6338,7 +6283,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
const u16* argumentPtr;
const u8* animationIdPtr;
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
@@ -6407,7 +6352,7 @@ static void atk48_playstatchangeanimation(void)
u32 stats_to_check;
u8 arg3;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
stats_to_check = T2_READ_8(gBattlescriptCurrInstr + 2);
arg3 = T2_READ_8(gBattlescriptCurrInstr + 3);
if (arg3 & 1)
@@ -6499,7 +6444,7 @@ push {r4-r7,lr}\n\
ldr r0, [r5]\n\
ldrb r0, [r0, 0x1]\n\
str r3, [sp]\n\
- bl GetBattleBank\n\
+ bl GetBattlerForBattleScript\n\
ldr r2, _08021674 @ =gActiveBattler\n\
strb r0, [r2]\n\
ldr r0, [r5]\n\
@@ -6815,12 +6760,12 @@ void atk49_moveend(void)
gBattleStruct->cmd49StateTracker++;
break;
case ATK49_DEFROST: // defrosting check
- if (gBattleMons[gBattlerTarget].status1 & STATUS_FREEZE
+ if (gBattleMons[gBattlerTarget].status1 & STATUS1_FREEZE
&& gBattleMons[gBattlerTarget].hp && gBattlerAttacker != gBattlerTarget
&& gSpecialStatuses[gBattlerTarget].specialDmg
&& !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE)
{
- gBattleMons[gBattlerTarget].status1 &= ~(STATUS_FREEZE);
+ gBattleMons[gBattlerTarget].status1 &= ~(STATUS1_FREEZE);
gActiveBattler = gBattlerTarget;
BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1);
MarkBattlerForControllerExec(gActiveBattler);
@@ -6939,12 +6884,12 @@ void atk49_moveend(void)
gBattleStruct->cmd49StateTracker++;
break;
case ATK49_UPDATE_LAST_MOVES:
- if (gHitMarker & HITMARKER_PURSUIT_TRAP)
+ if (gHitMarker & HITMARKER_SWAP_ATTACKER_TARGET)
{
gActiveBattler = gBattlerAttacker;
gBattlerAttacker = gBattlerTarget;
gBattlerTarget = gActiveBattler;
- gHitMarker &= ~(HITMARKER_PURSUIT_TRAP);
+ gHitMarker &= ~(HITMARKER_SWAP_ATTACKER_TARGET);
}
if (gBattleMoves[gChosenMove].effect != 0x7F || (gMoveResultFlags & 0x29))
@@ -6956,12 +6901,12 @@ void atk49_moveend(void)
{
if (gHitMarker & HITMARKER_OBEYS)
{
- gLastUsedMove[gBattlerAttacker] = gChosenMove;
+ gLastMoves[gBattlerAttacker] = gChosenMove;
gUnknown_02024C4C[gBattlerAttacker] = gCurrentMove;
}
else
{
- gLastUsedMove[gBattlerAttacker] = 0xFFFF;
+ gLastMoves[gBattlerAttacker] = 0xFFFF;
gUnknown_02024C4C[gBattlerAttacker] = 0xFFFF;
}
@@ -7053,14 +6998,14 @@ static void atk4A_typecalc2(void)
{
u8 flags = 0;
int i = 0;
- u8 move_type = gBattleMoves[gCurrentMove].type;
+ u8 moveType = gBattleMoves[gCurrentMove].type;
- if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
gLastLandedMoves[gBattlerTarget] = 0;
- gBattleCommunication[6] = move_type;
+ gBattleCommunication[6] = moveType;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
@@ -7073,7 +7018,7 @@ static void atk4A_typecalc2(void)
else {i += 3; continue;}
}
- if (gTypeEffectiveness[i] == move_type)
+ if (gTypeEffectiveness[i] == moveType)
{
//check type1
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1)
@@ -7140,7 +7085,7 @@ static void atk4C_getswitchedmondata(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattlerPartyIndexes[gActiveBattler] = ewram16068arr(gActiveBattler);
@@ -7158,7 +7103,7 @@ static void atk4D_switchindataupdate(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
oldData = gBattleMons[gActiveBattler];
monData = (u8*)(&gBattleMons[gActiveBattler]);
@@ -7201,7 +7146,7 @@ static void atk4E_switchinanim(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)))
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2);
@@ -7218,7 +7163,7 @@ static void atk4F_jumpifcantswitch(void)
register struct Pokemon *party;
u8 r7;
//0x80 byte is used as a way of telling the function whether to not check status2/status3
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F);
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F);
if (!(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x80)
&& ((gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
|| (gStatuses3[gActiveBattler] & STATUS3_ROOTED)))
@@ -8170,7 +8115,7 @@ _08023170:\n\
_0802317C:\n\
movs r0, 0x7F\n\
ands r0, r2\n\
- bl GetBattleBank\n\
+ bl GetBattlerForBattleScript\n\
lsls r0, 24\n\
lsrs r7, r0, 24\n\
ldr r1, _080231A4 @ =gSpecialStatuses\n\
@@ -8366,7 +8311,7 @@ static void atk51_switchhandleorder(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
@@ -8415,17 +8360,17 @@ static void atk52_switchineffects(void)
{
int i;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
sub_80157C4(gActiveBattler);
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
gSpecialStatuses[gActiveBattler].flag40 = 0;
- if (!(gSideAffecting[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideAffecting[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES)
+ if (!(gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES)
&& gBattleMons[gActiveBattler].type1 != TYPE_FLYING && gBattleMons[gActiveBattler].type2 != TYPE_FLYING && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE)
{
u8 spikesDmg;
- gSideAffecting[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED;
+ gSideStatuses[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED;
spikesDmg = (5 - gSideTimers[GetBattlerSide(gActiveBattler)].spikesAmount) * 2;
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (spikesDmg);
@@ -8451,11 +8396,11 @@ static void atk52_switchineffects(void)
if (AbilityBattleEffects(0, gActiveBattler, 0, 0, 0) == 0 && ItemBattleEffects(0, gActiveBattler, 0) == 0)
{
- gSideAffecting[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
+ gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == gActiveBattler)
+ if (gBattlerByTurnOrder[i] == gActiveBattler)
gActionsByTurnOrder[i] = 0xC;
}
@@ -8512,7 +8457,7 @@ static void atk55_fanfare(void)
static void atk56_playfaintcry(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitFaintingCry(0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -8528,7 +8473,7 @@ static void atk57(void)
static void atk58_returntoball(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitReturnMonToBall(0, 1);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -8539,9 +8484,9 @@ void atk59_handlelearnnewmove(void)
u8* loc1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
u8* loc2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
- u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterID], T2_READ_8(gBattlescriptCurrInstr + 9));
+ u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], T2_READ_8(gBattlescriptCurrInstr + 9));
while (ret == 0xFFFE)
- ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterID], 0);
+ ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], 0);
if (ret == 0)
{
@@ -8554,12 +8499,12 @@ void atk59_handlelearnnewmove(void)
else
{
gActiveBattler = GetBattlerAtPosition(0);
- if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
+ if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if
{
gActiveBattler = GetBattlerAtPosition(2);
- if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
+ if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
}
gBattlescriptCurrInstr = loc1;
@@ -8628,7 +8573,7 @@ static void atk5A_yesnoboxlearnmove(void)
case 2:
if (!gPaletteFade.active)
{
- ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterID, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterMonId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
gBattleStruct->atk5A_StateTracker++;
}
break;
@@ -8642,7 +8587,7 @@ static void atk5A_yesnoboxlearnmove(void)
}
else
{
- u16 move = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MOVE1 + move_pos);
+ u16 move = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MOVE1 + move_pos);
if (IsHMMove2(move))
{
PrepareStringBattle(0x13F, gActiveBattler);
@@ -8662,16 +8607,16 @@ static void atk5A_yesnoboxlearnmove(void)
ptr += 4;
}
ptr[0] = 0xFF;
- RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterID], move_pos);
- SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterID], gMoveToLearn, move_pos);
- if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[0].unk18_b & gBitTable[move_pos]))
+ RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterMonId], move_pos);
+ SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterMonId], gMoveToLearn, move_pos);
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[0].mimickedMoves & gBitTable[move_pos]))
{
RemoveBattleMonPPBonus(&gBattleMons[0], move_pos);
SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, move_pos);
}
- if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[2].unk18_b & gBitTable[move_pos]))
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[2].mimickedMoves & gBitTable[move_pos]))
{
RemoveBattleMonPPBonus(&gBattleMons[2], move_pos);
SetBattleMonMoveSlot(&gBattleMons[2], gMoveToLearn, move_pos);
@@ -8738,7 +8683,7 @@ static void atk5B_yesnoboxstoplearningmove(void)
static void atk5C_hitanimation(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
gBattlescriptCurrInstr += 2;
else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0)
@@ -9076,9 +9021,9 @@ static void atk5D_getmoneyreward(void)
}
*/
-static void atk5E_8025A70(void)
+static void atk5E(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleCommunication[0])
{
case 0:
@@ -9102,16 +9047,16 @@ static void atk5E_8025A70(void)
}
}
-static void atk5F_8025B24(void)
+static void atk5F_swapattackerwithtarget(void)
{
gActiveBattler = gBattlerAttacker;
gBattlerAttacker = gBattlerTarget;
gBattlerTarget = gActiveBattler;
//what is xor...
- if (gHitMarker & HITMARKER_PURSUIT_TRAP)
- gHitMarker &= ~(HITMARKER_PURSUIT_TRAP);
+ if (gHitMarker & HITMARKER_SWAP_ATTACKER_TARGET)
+ gHitMarker &= ~(HITMARKER_SWAP_ATTACKER_TARGET);
else
- gHitMarker |= HITMARKER_PURSUIT_TRAP;
+ gHitMarker |= HITMARKER_SWAP_ATTACKER_TARGET;
gBattlescriptCurrInstr++;
}
@@ -9132,7 +9077,7 @@ static void atk61_drawpartystatussummary(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBattlerSide(gActiveBattler) == 0)
party = gPlayerParty;
else
@@ -9156,9 +9101,9 @@ static void atk61_drawpartystatussummary(void)
gBattlescriptCurrInstr += 2;
}
-static void atk62_08025C6C(void)
+static void atk62_hidepartystatussummary(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitHidePartyStatusSummary(0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -9177,7 +9122,7 @@ static void atk64_statusanimation(void)
{
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
BtlController_EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1);
@@ -9192,7 +9137,7 @@ static void atk65_status2animation(void)
if (gBattleControllerExecFlags == 0)
{
u32 possible_to_anim;
- gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T1_READ_8(gBattlescriptCurrInstr + 1));
possible_to_anim = T1_READ_32(gBattlescriptCurrInstr + 2);
if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
@@ -9208,7 +9153,7 @@ static void atk66_chosenstatusanimation(void)
if (gBattleControllerExecFlags == 0)
{
u32 status;
- gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T1_READ_8(gBattlescriptCurrInstr + 1));
status = T1_READ_32(gBattlescriptCurrInstr + 3);
if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
@@ -9273,20 +9218,20 @@ static void atk68_cancelallactions(void)
static void atk69_adjustsetdamage(void) //literally a copy of atk07 except theres no rand dmg modifier...
{
- u8 hold_effect, quality;
+ u8 holdEffect, param;
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
@@ -9316,7 +9261,7 @@ static void atk69_adjustsetdamage(void) //literally a copy of atk07 except there
void atk6A_removeitem(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
USED_HELD_ITEMS(gActiveBattler) = gBattleMons[gActiveBattler].item;
gBattleMons[gActiveBattler].item = 0;
@@ -9778,7 +9723,7 @@ static void atk6E_setatktoplayer0(void)
static void atk6F_makevisible(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitSpriteInvisibility(0, 0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -9786,7 +9731,7 @@ static void atk6F_makevisible(void)
static void atk70_recordlastability(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
RecordAbilityBattle(gActiveBattler, gLastUsedAbility);
gBattlescriptCurrInstr += 1; //buggy, should be += 2, one byte for command, one byte for argument...
}
@@ -9820,7 +9765,7 @@ static void atk73_hpthresholds(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBattler ^ 1;
result = gBattleMons[opposing_bank].hp * 100 / gBattleMons[opposing_bank].maxHP;
@@ -9847,7 +9792,7 @@ static void atk74_hpthresholds2(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBattler ^ 1;
hp_switchout = ewram160BCarr(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
@@ -9874,7 +9819,7 @@ static void atk75_useitemonopponent(void)
static void atk76_various(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
@@ -9911,9 +9856,9 @@ static void atk76_various(void)
{
int i;
u16* choiced_move;
- if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId)
goto ACTIVE_0;
- if (gBattlerPartyIndexes[2] != gBattleStruct->expGetterID)
+ if (gBattlerPartyIndexes[2] != gBattleStruct->expGetterMonId)
break;
if (gBattlerPartyIndexes[0] == gBattlerPartyIndexes[2])
{
@@ -10123,14 +10068,14 @@ static void atk7D_setrain(void)
static void atk7E_setreflect(void)
{
- if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_REFLECT)
+ if (gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_REFLECT)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_REFLECT;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_REFLECT;
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].reflectTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
@@ -10193,7 +10138,7 @@ static void atk81_trysetrest(void)
gBattlescriptCurrInstr = fail_loc;
else
{
- if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS_SLEEP)))
+ if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP)))
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
@@ -10293,7 +10238,7 @@ static void atk86_stockpiletobasedamage(void)
if (gBattleCommunication[6] != 1)
{
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
- gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0,
+ gSideStatuses[GetBattlerPosition(gBattlerTarget) & 1], 0,
0, gBattlerAttacker, gBattlerTarget)
* gDisableStructs[gBattlerAttacker].stockpileCounter;
gBattleStruct->animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter;
@@ -10688,7 +10633,7 @@ static void atk90_tryconversiontypechange(void)
//randomly changes user's type to one of its moves' type
u8 valid_moves = 0;
u8 checked_move;
- u8 move_type;
+ u8 moveType;
while (valid_moves < 4)
{
if (gBattleMons[gBattlerAttacker].moves[valid_moves] == 0)
@@ -10698,15 +10643,15 @@ static void atk90_tryconversiontypechange(void)
for (checked_move = 0; checked_move < valid_moves; checked_move++)
{
- move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
- if (move_type == TYPE_MYSTERY)
+ moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
+ if (moveType == TYPE_MYSTERY)
{
if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)
- move_type = TYPE_GHOST;
+ moveType = TYPE_GHOST;
else
- move_type = TYPE_NORMAL;
+ moveType = TYPE_NORMAL;
}
- if (move_type != gBattleMons[gBattlerAttacker].type1 && move_type != gBattleMons[gBattlerAttacker].type2)
+ if (moveType != gBattleMons[gBattlerAttacker].type1 && moveType != gBattleMons[gBattlerAttacker].type2)
break;
}
@@ -10721,22 +10666,22 @@ static void atk90_tryconversiontypechange(void)
while ((checked_move = Random() & 3) >= valid_moves);
- move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
- if (move_type == TYPE_MYSTERY)
+ moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
+ if (moveType == TYPE_MYSTERY)
{
if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)
- move_type = TYPE_GHOST;
+ moveType = TYPE_GHOST;
else
- move_type = TYPE_NORMAL;
+ moveType = TYPE_NORMAL;
}
- } while (move_type == gBattleMons[gBattlerAttacker].type1 || move_type == gBattleMons[gBattlerAttacker].type2);
+ } while (moveType == gBattleMons[gBattlerAttacker].type1 || moveType == gBattleMons[gBattlerAttacker].type2);
- gBattleMons[gBattlerAttacker].type1 = move_type;
- gBattleMons[gBattlerAttacker].type2 = move_type;
+ gBattleMons[gBattlerAttacker].type1 = moveType;
+ gBattleMons[gBattlerAttacker].type2 = moveType;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 3;
- gBattleTextBuff1[2] = move_type;
+ gBattleTextBuff1[2] = moveType;
gBattleTextBuff1[3] = 0xFF;
gBattlescriptCurrInstr += 5;
@@ -10764,14 +10709,14 @@ static void atk91_givepaydaymoney(void)
static void atk92_setlightscreen(void)
{
- if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN)
+ if (gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN;
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].lightscreenTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
@@ -10785,18 +10730,18 @@ static void atk92_setlightscreen(void)
static void atk93_tryKO(void)
{
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
@@ -10819,7 +10764,7 @@ static void atk93_tryKO(void)
}
else
{
- if (gDisableStructs[gBattlerTarget].bankWithSureHit != gBattlerAttacker || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level)
+ if (gDisableStructs[gBattlerTarget].battlerWithSureHit != gBattlerAttacker || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level)
{
}
@@ -10896,7 +10841,7 @@ _08026BCE:\n\
bcs _08026C0C\n\
ldrb r0, [r5]\n\
movs r1, 0x27\n\
- bl RecordItemBattle\n\
+ bl RecordItemEffectBattle\n\
ldr r2, _08026C54 @ =gSpecialStatuses\n\
ldrb r1, [r5]\n\
lsls r0, r1, 2\n\
@@ -11303,7 +11248,7 @@ static void atk98_updatestatusicon(void)
if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -11339,7 +11284,7 @@ static void atk99_setmist(void)
else
{
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].mistTimer = 5;
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_MIST;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_MIST;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
gBattlescriptCurrInstr++;
@@ -11377,7 +11322,7 @@ static void atk9B_transformdataexecution(void)
gDisableStructs[gBattlerAttacker].disabledMove = 0;
gDisableStructs[gBattlerAttacker].disableTimer1 = 0;
gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality;
- gDisableStructs[gBattlerAttacker].unk18_b = 0;
+ gDisableStructs[gBattlerAttacker].mimickedMoves = 0;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 6;
@@ -11440,8 +11385,8 @@ static bool8 IsMoveUncopyable(u16 move)
static void atk9D_mimicattackcopy(void)
{
gChosenMove = 0xFFFF;
- if (IsMoveUncopyable(gLastUsedMove[gBattlerTarget]) || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED
- || gLastUsedMove[gBattlerTarget] == 0 || gLastUsedMove[gBattlerTarget] == 0xFFFF)
+ if (IsMoveUncopyable(gLastMoves[gBattlerTarget]) || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED
+ || gLastMoves[gBattlerTarget] == 0 || gLastMoves[gBattlerTarget] == 0xFFFF)
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
@@ -11450,24 +11395,24 @@ static void atk9D_mimicattackcopy(void)
int i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBattlerAttacker].moves[i] == gLastUsedMove[gBattlerTarget])
+ if (gBattleMons[gBattlerAttacker].moves[i] == gLastMoves[gBattlerTarget])
break;
}
if (i == 4)
{
- gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastUsedMove[gBattlerTarget];
- if (gBattleMoves[gLastUsedMove[gBattlerTarget]].pp < 5)
- gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMove[gBattlerTarget]].pp;
+ gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastMoves[gBattlerTarget];
+ if (gBattleMoves[gLastMoves[gBattlerTarget]].pp < 5)
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattlerTarget]].pp;
else
gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 5;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget];
- gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBattlerTarget]);
+ gBattleTextBuff1[2] = gLastMoves[gBattlerTarget];
+ gBattleTextBuff1[3] = uBYTE1_16(gLastMoves[gBattlerTarget]);
gBattleTextBuff1[4] = 0xFF;
- gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos];
+ gDisableStructs[gBattlerAttacker].mimickedMoves |= gBitTable[gCurrMovePos];
gBattlescriptCurrInstr += 5;
}
else
@@ -11825,7 +11770,7 @@ static void atkA3_disablelastusedattack(void)
int i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget])
+ if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
}
if (gDisableStructs[gBattlerTarget].disabledMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0)
@@ -11852,10 +11797,10 @@ static void atkA4_trysetencore(void)
int i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget])
+ if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
}
- if (gLastUsedMove[gBattlerTarget] == MOVE_STRUGGLE || gLastUsedMove[gBattlerTarget] == MOVE_ENCORE || gLastUsedMove[gBattlerTarget] == MOVE_MIRROR_MOVE)
+ if (gLastMoves[gBattlerTarget] == MOVE_STRUGGLE || gLastMoves[gBattlerTarget] == MOVE_ENCORE || gLastMoves[gBattlerTarget] == MOVE_MIRROR_MOVE)
i = 4;
if (gDisableStructs[gBattlerTarget].encoredMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0)
{
@@ -12201,7 +12146,7 @@ static void atkA7_setalwayshitflag(void)
{
gStatuses3[gBattlerTarget] &= ~(STATUS3_ALWAYS_HITS);
gStatuses3[gBattlerTarget] |= 0x10;
- gDisableStructs[gBattlerTarget].bankWithSureHit = gBattlerAttacker;
+ gDisableStructs[gBattlerTarget].battlerWithSureHit = gBattlerAttacker;
gBattlescriptCurrInstr++;
}
@@ -12279,7 +12224,7 @@ static u8 AttacksThisTurn(u8 bank, u16 move) //Note: returns 1 if it's a chargin
effect = gBattleMoves[move].effect;
if (effect == EFFECT_SKULL_BASH || effect == EFFECT_RAZOR_WIND || effect == EFFECT_SKY_ATTACK || effect == EFFECT_SOLARBEAM || effect == EFFECT_FLY || effect == EFFECT_BIDE)
{
- if ((gHitMarker & HITMARKER_x8000000))
+ if ((gHitMarker & HITMARKER_CHARGING))
return 1;
}
return 2;
@@ -12350,12 +12295,12 @@ static void atkAC_remaininghptopower(void)
static void atkAD_tryspiteppreduce(void)
{
- if (gLastUsedMove[gBattlerTarget] != 0 && gLastUsedMove[gBattlerTarget] != 0xFFFF && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE))
+ if (gLastMoves[gBattlerTarget] != 0 && gLastMoves[gBattlerTarget] != 0xFFFF && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE))
{
int i;
for (i = 0; i < 4; i++)
{
- if (gLastUsedMove[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i])
+ if (gLastMoves[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i])
break;
}
if (i != 4 && gBattleMons[gBattlerTarget].pp[i] > 1)
@@ -12366,8 +12311,8 @@ static void atkAD_tryspiteppreduce(void)
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget];
- gBattleTextBuff1[3] = gLastUsedMove[gBattlerTarget] >> 8;
+ gBattleTextBuff1[2] = gLastMoves[gBattlerTarget];
+ gBattleTextBuff1[3] = gLastMoves[gBattlerTarget] >> 8;
gBattleTextBuff1[4] = 0xFF;
ConvertIntToDecimalStringN(gBattleTextBuff2, lost_pp, 0, 1);
gBattleTextBuff2[0] = 0xFD;
@@ -12379,7 +12324,7 @@ static void atkAD_tryspiteppreduce(void)
gBattleMons[gBattlerTarget].pp[i] -= lost_pp;
gActiveBattler = gBattlerTarget;
- if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i])
+ if (!(gDisableStructs[gActiveBattler].mimickedMoves & gBitTable[i])
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
{
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]);
@@ -12497,7 +12442,7 @@ static void atkB0_trysetspikes(void)
}
else
{
- gSideAffecting[side] |= SIDE_STATUS_SPIKES;
+ gSideStatuses[side] |= SIDE_STATUS_SPIKES;
gSideTimers[side].spikesAmount++;
gBattlescriptCurrInstr += 5;
}
@@ -12631,14 +12576,14 @@ static void atkB7_presentdamagecalculation(void)
static void atkB8_setsafeguard(void)
{
- if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_SAFEGUARD)
+ if (gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_SAFEGUARD)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_SAFEGUARD;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_SAFEGUARD;
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].safeguardTimer = 5;
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
@@ -12718,13 +12663,13 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
gBattlerTarget = GetBattlerAtPosition(2);
}
- if (gActionForBanks[gBattlerTarget] == 0 && gBattlerAttacker == ewram16010arr(gBattlerTarget) && !(gBattleMons[gBattlerTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
+ if (gActionForBanks[gBattlerTarget] == 0 && gBattlerAttacker == ewram16010arr(gBattlerTarget) && !(gBattleMons[gBattlerTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE))
&& gBattleMons[gBattlerAttacker].hp && !gDisableStructs[gBattlerTarget].truantCounter && gChosenMovesByBanks[gBattlerTarget] == MOVE_PURSUIT)
{
int i;
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == gBattlerTarget)
+ if (gBattlerByTurnOrder[i] == gBattlerTarget)
gActionsByTurnOrder[i] = 11;
}
gCurrentMove = MOVE_PURSUIT;
@@ -12799,13 +12744,13 @@ static void atkBE_rapidspinfree(void) //rapid spin
else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED)
{
gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED);
- gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK);
+ gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BATTLER);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
}
- else if (gSideAffecting[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES)
+ else if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES)
{
- gSideAffecting[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES);
+ gSideStatuses[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES);
gSideTimers[GetBattlerSide(gBattlerAttacker)].spikesAmount = 0;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SpikesFree;
@@ -12892,7 +12837,7 @@ static void atkC3_trysetfutureattack(void)
gWishFutureKnock.futureSightAttacker[gBattlerTarget] = gBattlerAttacker;
gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3;
gWishFutureKnock.futureSightDmg[gBattlerTarget] = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
- gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0,
+ gSideStatuses[GetBattlerPosition(gBattlerTarget) & 1], 0,
0, gBattlerAttacker, gBattlerTarget);
if (gProtectStructs[gBattlerAttacker].helpingHand)
@@ -13308,7 +13253,7 @@ static void atkCC_callterrainattack(void) //nature power
static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh
{
- if (gBattleMons[gBattlerAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
+ if (gBattleMons[gBattlerAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON))
{
gBattleMons[gBattlerAttacker].status1 = 0;
gBattlescriptCurrInstr += 5;
@@ -13554,10 +13499,10 @@ static void atkDA_tryswapabilities(void)
}
}
-static void atkDB_tryimprision(void)
+static void atkDB_tryimprison(void)
{
u8 r8 = 0;
- if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISIONED))
+ if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISONED_OTHERS))
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
@@ -13583,7 +13528,7 @@ static void atkDB_tryimprision(void)
}
if (j != 4)
{
- gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISIONED;
+ gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISONED_OTHERS;
gBattlescriptCurrInstr += 5;
break;
}
@@ -13621,7 +13566,7 @@ static void atkDD_weightdamagecalculation(void)
}
#ifdef NONMATCHING
-static void atkDE_asistattackselect(void)
+static void atkDE_assistattackselect(void)
{
u32 chooseable_moves_no = 0;
struct Pokemon* party;
@@ -13676,7 +13621,7 @@ static void atkDE_asistattackselect(void)
#else
NAKED
-static void atkDE_asistattackselect(void)
+static void atkDE_assistattackselect(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -13914,7 +13859,7 @@ static void atkE1_trygetintimidatetarget(void)
static void atkE2_switchoutabilities(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleMons[gActiveBattler].ability)
{
case ABILITY_NATURAL_CURE:
@@ -13928,7 +13873,7 @@ static void atkE2_switchoutabilities(void)
static void atkE3_jumpifhasnohp(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBattler].hp == 0)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
@@ -14117,7 +14062,7 @@ static void atkEC_pursuitrelated(void)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
-static void atkED_snatchsetbanks(void)
+static void atkEF_snatchsetbattlers(void)
{
gEffectBattler = gBattlerAttacker;
if (gBattlerAttacker == gBattlerTarget)
@@ -14133,8 +14078,8 @@ static void atkEE_removelightscreenreflect(void) //brick break
u8 side = GetBattlerSide(gBattlerAttacker) ^ 1;
if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer)
{
- gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT);
- gSideAffecting[side] &= ~(SIDE_STATUS_LIGHTSCREEN);
+ gSideStatuses[side] &= ~(SIDE_STATUS_REFLECT);
+ gSideStatuses[side] &= ~(SIDE_STATUS_LIGHTSCREEN);
gSideTimers[side].reflectTimer = 0;
gSideTimers[side].lightscreenTimer = 0;
gBattleStruct->animTurn = 1;
@@ -14223,9 +14168,9 @@ void atkEF_handleballthrow(void)
ball_multiplier = sBallCatchBonuses[gLastUsedItem - 2];
odds = (catch_rate * ball_multiplier / 10) * (gBattleMons[gBattlerTarget].maxHP * 3 - gBattleMons[gBattlerTarget].hp * 2) / (3 * gBattleMons[gBattlerTarget].maxHP);
- if (gBattleMons[gBattlerTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
+ if (gBattleMons[gBattlerTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE))
odds *= 2;
- if (gBattleMons[gBattlerTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS /*| STATUS_TOXIC_POISON */)) //nice one gf
+ if (gBattleMons[gBattlerTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS /*| STATUS1_TOXIC_POISON */)) //nice one gf
odds = (odds * 15) / 10;
if (gLastUsedItem != ITEM_SAFARI_BALL)