diff options
author | Cameron Hall <camthesaxman@users.noreply.github.com> | 2019-07-30 21:31:27 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-30 21:31:27 -0500 |
commit | bc159dbb03735db55e6a09bb7947dccc70d0532b (patch) | |
tree | 5b27866fe839d0f2f7ae76e0f13580ecea2dd863 /src/battle_script_commands.c | |
parent | b8393b3a799f92e7064c266600607d98f6baf4d9 (diff) | |
parent | cf0da4c3bb5658908275068591fe51fb6f2ce49d (diff) |
Merge pull request #752 from camthesaxman/emerald_diff
resolve some Emerald differences
Diffstat (limited to 'src/battle_script_commands.c')
-rw-r--r-- | src/battle_script_commands.c | 2424 |
1 files changed, 1211 insertions, 1213 deletions
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index dab6ce1f0..01d66b77c 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -104,7 +104,7 @@ extern const struct BaseStats gBaseStats[]; extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gActiveBattler; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBanksByTurnOrder[MAX_BATTLERS_COUNT]; @@ -112,8 +112,8 @@ extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u16 gBattleWeather; -extern u8 gStringBank; -extern u8 gEffectBank; +extern u8 gPotentialItemEffectBattler; +extern u8 gEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u16 gLastUsedMove[4]; @@ -126,8 +126,8 @@ extern u16 gRandomTurnNumber; extern u8 gBattleOutcome; extern u8 gBattleTerrain; extern u16 gTrainerBattleOpponent; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; @@ -136,7 +136,7 @@ extern u8 gMoveResultFlags; extern u8 gBattleCommunication[]; extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; -extern u8 gStringBank; +extern u8 gPotentialItemEffectBattler; extern u16 gDynamicBasePower; extern const u8 gTypeEffectiveness[]; extern u16 gLastUsedItem; @@ -306,7 +306,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT)) +#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBattlerTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT)) //array entries for battle communication #define MOVE_EFFECT_BYTE 0x3 @@ -346,9 +346,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[]; #define sBYTE3_32(value)(( (u8) (((s32)(value) & (0xFF000000)) >> 0x18))) #define RecordAbilitySetField6(ability, fieldValue) \ -(gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBankTarget, ability)) - -#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special))) +(gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBattlerTarget, ability)) #define HP_ON_SWITCHOUT (((u16*)(ewram_addr + 0x160BC))) @@ -1100,10 +1098,10 @@ static void atk00_attackcanceler(void) if (gBattleOutcome != 0) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; return; } - if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + if (gBattleMons[gBattlerAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; @@ -1111,10 +1109,10 @@ static void atk00_attackcanceler(void) } if (AtkCanceller_UnableToUseMove()) return; - if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0)) return; - if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -1123,7 +1121,7 @@ static void atk00_attackcanceler(void) gHitMarker &= ~(HITMARKER_x800000); - if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { i = IsMonDisobedient(); // why use the 'i' variable...? switch (i) @@ -1141,10 +1139,10 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_MAGIC_COAT) + if (gProtectStructs[gBattlerTarget].bounceMove && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_MAGIC_COAT) { - PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT); - gProtectStructs[gBankTarget].bounceMove = 0; + PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT); + gProtectStructs[gBattlerTarget].bounceMove = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; @@ -1154,7 +1152,7 @@ static void atk00_attackcanceler(void) { if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH) { - PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); + PressurePPLose(gBattlerAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0; gBattleStruct->scriptingActive = gBanksByTurnOrder[i]; BattleScriptPushCursor(); @@ -1163,22 +1161,22 @@ static void atk00_attackcanceler(void) } } - if (gSpecialStatuses[gBankTarget].lightningRodRedirected) + if (gSpecialStatuses[gBattlerTarget].lightningRodRedirected) { - gSpecialStatuses[gBankTarget].lightningRodRedirected = 0; + gSpecialStatuses[gBattlerTarget].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else if (TARGET_PROTECT_AFFECTED - && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)) - && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) + && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)))) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1193,14 +1191,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; BS_ptr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { TrySetDestinyBondToHappen(); - if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattlerTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; @@ -1235,13 +1233,13 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move) static bool8 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker) { JumpIfMoveFailed(7, move); return TRUE; } - if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR) + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1250,7 +1248,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattlerTarget] & STATUS3_UNDERGROUND) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1259,7 +1257,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattlerTarget] & STATUS3_UNDERWATER) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1284,9 +1282,9 @@ static void atk01_accuracycheck(void) if (move == 0xFFFE || move == 0xFFFF) { - if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker) gBattlescriptCurrInstr += 7; - else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else if (!JumpIfMoveAffectedByProtect(0)) gBattlescriptCurrInstr += 7; @@ -1307,15 +1305,15 @@ static void atk01_accuracycheck(void) if (AccuracyCalcHelper(move)) return; - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) { - u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; + u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC]; buff = acc; } else { - u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; - buff = acc + 6 - gBattleMons[gBankTarget].statStages[STAT_STAGE_EVASION]; + u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC]; + buff = acc + 6 - gBattleMons[gBattlerTarget].statStages[STAT_STAGE_EVASION]; } if (buff < 0) @@ -1331,25 +1329,25 @@ static void atk01_accuracycheck(void) calc = gAccuracyStageRatios[buff].dividend * moveAcc; calc /= gAccuracyStageRatios[buff].divisor; - if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost - if (WEATHER_HAS_EFFECT && gBattleMons[gBankTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + if (WEATHER_HAS_EFFECT && gBattleMons[gBattlerTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) calc = (calc * 80) / 100; // 1.2 sand veil loss; - if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_HUSTLE && type < 9) calc = (calc * 80) / 100; // 1.2 hustle loss; - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect; - quality = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect; + quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_EVASION_UP) calc = (calc * (100 - quality)) / 100; @@ -1371,11 +1369,11 @@ static void atk01_accuracycheck(void) static void atk02_attackstring(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(4, gBankAttacker); + PrepareStringBattle(4, gBattlerAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -1386,42 +1384,42 @@ static void atk03_ppreduce(void) { s32 ppToDeduct = 1; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - if (!gSpecialStatuses[gBankAttacker].flag20) + if (!gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure) { switch (gBattleMoves[gCurrentMove].target) { case TARGET_FOES_AND_ALLY: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattlerAttacker, ABILITY_PRESSURE, 0, 0); break; case TARGET_BOTH: case TARGET_OPPONENTS_FIELD: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBattlerAttacker, ABILITY_PRESSURE, 0, 0); break; default: - if (gBankAttacker != gBankTarget && gBattleMons[gBankTarget].ability == ABILITY_PRESSURE) + if (gBattlerAttacker != gBattlerTarget && gBattleMons[gBattlerTarget].ability == ABILITY_PRESSURE) ppToDeduct++; break; } } - if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBankAttacker].pp[gCurrMovePos]) + if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos]) { - gProtectStructs[gBankAttacker].notFirstStrike = 1; + gProtectStructs[gBattlerAttacker].notFirstStrike = 1; - if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > ppToDeduct) - gBattleMons[gBankAttacker].pp[gCurrMovePos] -= ppToDeduct; + if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct) + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] -= ppToDeduct; else - gBattleMons[gBankAttacker].pp[gCurrMovePos] = 0; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos])) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) + && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos])) { - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); - MarkBufferBankForExecution(gBankAttacker); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]); + MarkBattlerForControllerExec(gBattlerAttacker); } } @@ -1434,29 +1432,29 @@ static void atk04_critcalc(void) u8 holdEffect; u16 item, critChance; - item = gBattleMons[gBankAttacker].item; + item = gBattleMons[gBattlerAttacker].item; if (item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gBankAttacker].holdEffect; + holdEffect = gEnigmaBerries[gBattlerAttacker].holdEffect; else holdEffect = ItemId_GetHoldEffect(item); - gStringBank = gBankAttacker; + gPotentialItemEffectBattler = gBattlerAttacker; - critChance = 2 * ((gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + critChance = 2 * ((gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) + (holdEffect == HOLD_EFFECT_SCOPE_LENS) - + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY) - + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD); + + 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 ((gBattleMons[gBankTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankTarget].ability != ABILITY_SHELL_ARMOR) - && !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT) + if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR) + && !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT) && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) && !(Random() % sCriticalHitChance[critChance])) gCritMultiplier = 2; @@ -1468,15 +1466,15 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 side_hword = gSideAffecting[GetBattlerPosition(gBankTarget) & 1]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, + u16 side_hword = gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, side_hword, gDynamicBasePower, - gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget); + gBattleStruct->dynamicMoveType, gBattlerAttacker, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier; - if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + if (gStatuses3[gBattlerAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) gBattleMoveDamage *= 2; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattlescriptCurrInstr++; @@ -1543,20 +1541,20 @@ static void atk06_typecalc(void) move_type = gBattleMoves[gCurrentMove].type; //check stab - if (gBattleMons[gBankAttacker].type1 == move_type || gBattleMons[gBankAttacker].type2 == move_type) + if (gBattleMons[gBattlerAttacker].type1 == move_type || gBattleMons[gBattlerAttacker].type2 == move_type) { gBattleMoveDamage = gBattleMoveDamage * 15; gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = move_type; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -1564,7 +1562,7 @@ static void atk06_typecalc(void) { if (gTypeEffectiveness[i] == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1573,30 +1571,30 @@ static void atk06_typecalc(void) else if (gTypeEffectiveness[i] == move_type) { //check type1 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1) ModulateDmgByType(gTypeEffectiveness[i + 2]); //check type2 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && - gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 && + gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2) ModulateDmgByType(gTypeEffectiveness[i + 2]); } i += 3; } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } gBattlescriptCurrInstr++; } @@ -1614,7 +1612,7 @@ static void CheckWonderGuardAndLevitate(void) else move_type = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { RecordAbilitySetField6(ABILITY_LEVITATE, move_type); return; @@ -1624,7 +1622,7 @@ static void CheckWonderGuardAndLevitate(void) { if (gTypeEffectiveness[i] == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1633,39 +1631,39 @@ static void CheckWonderGuardAndLevitate(void) if (gTypeEffectiveness[i] == move_type) { //check no effect - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 0) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 0) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && - gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 && + gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 0) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } //check super effective - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 20) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 20) flags |= 1; - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 20) flags |= 1; //check not very effective - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 5) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 5) flags |= 2; - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 5) flags |= 2; } i += 3; } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2) + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { @@ -1749,7 +1747,7 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def) ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); //check type2 if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type2 && - gBattleMons[gBankTarget /* what the christ */].type1 != gBattleMons[bank_def].type2) + gBattleMons[gBattlerTarget /* what the christ */].type1 != gBattleMons[bank_def].type2) ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); } i += 3; @@ -1794,7 +1792,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) if (gTypeEffectiveness[i + 1] == type1) ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); //check type2 - if (gTypeEffectiveness[i + 1] == type2 && gBattleMons[gBankTarget].type1 != type2) //gf you morons, you should check if (type1 != 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); } i += 3; @@ -1831,43 +1829,43 @@ static void atk07_adjustnormaldamage(void) { u8 hold_effect, quality; ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } - if (gSpecialStatuses[gBankTarget].focusBanded) + if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -1878,43 +1876,43 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i { u8 hold_effect, quality; ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (!gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (!gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } - if (gSpecialStatuses[gBankTarget].focusBanded) + if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -1923,7 +1921,7 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i static void atk09_attackanimation(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE)) @@ -1942,12 +1940,12 @@ static void atk09_attackanimation(void) } if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; - EmitMoveAnimation(0, gCurrentMove, gBattleStruct->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker]); + BtlController_EmitMoveAnimation(0, gCurrentMove, gBattleStruct->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattlerAttacker].friendship, &gDisableStructs[gBattlerAttacker]); gBattleStruct->animTurn += 1; gBattleStruct->animTargetsHit += 1; - MarkBufferBankForExecution(gBankAttacker); + MarkBattlerForControllerExec(gBattlerAttacker); gBattlescriptCurrInstr++; } else @@ -1960,13 +1958,13 @@ static void atk09_attackanimation(void) static void atk0A_waitanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattlescriptCurrInstr++; } static void atk0B_healthbarupdate(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) @@ -1991,11 +1989,11 @@ static void atk0B_healthbarupdate(void) else healthValue = maxPossibleDmgValue; - EmitHealthBarUpdate(0, healthValue); + BtlController_EmitHealthBarUpdate(0, healthValue); */ - EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) gBattleResults.unk5_0 = 1; @@ -2009,7 +2007,7 @@ static void atk0C_datahpupdate(void) { u32 moveType; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattleStruct->dynamicMoveType == 0) @@ -2026,15 +2024,15 @@ static void atk0C_datahpupdate(void) { if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage) { - if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) - gSpecialStatuses[gActiveBattler].moveturnLostHP = gBattleMoveDamage; + if (gSpecialStatuses[gActiveBattler].dmg == 0) + gSpecialStatuses[gActiveBattler].dmg = gBattleMoveDamage; gDisableStructs[gActiveBattler].substituteHP -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) - gSpecialStatuses[gActiveBattler].moveturnLostHP = gDisableStructs[gActiveBattler].substituteHP; + if (gSpecialStatuses[gActiveBattler].dmg == 0) + gSpecialStatuses[gActiveBattler].dmg = gDisableStructs[gActiveBattler].substituteHP; gHpDealt = gDisableStructs[gActiveBattler].substituteHP; gDisableStructs[gActiveBattler].substituteHP = 0; } @@ -2067,9 +2065,9 @@ static void atk0C_datahpupdate(void) { gTakenDmg[gActiveBattler] += gBattleMoveDamage; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gTakenDmgBanks[gActiveBattler] = gBankAttacker; + gTakenDmgBanks[gActiveBattler] = gBattlerAttacker; else - gTakenDmgBanks[gActiveBattler] = gBankTarget; + gTakenDmgBanks[gActiveBattler] = gBattlerTarget; } if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage) @@ -2083,61 +2081,61 @@ static void atk0C_datahpupdate(void) gBattleMons[gActiveBattler].hp = 0; } - if (!gSpecialStatuses[gActiveBattler].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) - gSpecialStatuses[gActiveBattler].moveturnLostHP = gHpDealt; + if (!gSpecialStatuses[gActiveBattler].dmg && !(gHitMarker & HITMARKER_x100000)) + gSpecialStatuses[gActiveBattler].dmg = gHpDealt; if (TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) { gProtectStructs[gActiveBattler].physicalDmg = gHpDealt; - gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; + gSpecialStatuses[gActiveBattler].physicalDmg = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].physicalBank = gBankAttacker; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankAttacker; + gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerAttacker; + gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerAttacker; } else { - gProtectStructs[gActiveBattler].physicalBank = gBankTarget; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankTarget; + gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerTarget; + gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerTarget; } } else if (!TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000)) { gProtectStructs[gActiveBattler].specialDmg = gHpDealt; - gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; + gSpecialStatuses[gActiveBattler].specialDmg = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].specialBank = gBankAttacker; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBankAttacker; + gProtectStructs[gActiveBattler].specialBattlerId = gBattlerAttacker; + gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerAttacker; } else { - gProtectStructs[gActiveBattler].specialBank = gBankTarget; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBankTarget; + gProtectStructs[gActiveBattler].specialBattlerId = gBattlerTarget; + gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerTarget; } } } gHitMarker &= ~(HITMARKER_x100000); - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBattlerForControllerExec(gActiveBattler); } } else { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) - gSpecialStatuses[gActiveBattler].moveturnLostHP = 0xFFFF; + if (gSpecialStatuses[gActiveBattler].dmg == 0) + gSpecialStatuses[gActiveBattler].dmg = 0xFFFF; } gBattlescriptCurrInstr += 2; } static void atk0D_critmessage(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - PrepareStringBattle(0xD9, gBankAttacker); + PrepareStringBattle(0xD9, gBattlerAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2146,22 +2144,22 @@ static void atk0D_critmessage(void) static void atk0E_effectivenesssound(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBankTarget; + gActiveBattler = gBattlerTarget; if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { u8 flag = ~MOVE_RESULT_MISSED; switch (gMoveResultFlags & flag) { case MOVE_RESULT_SUPER_EFFECTIVE: - EmitEffectivenessSound(0, 14); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 14); + MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: - EmitEffectivenessSound(0, 12); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 12); + MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_DOESNT_AFFECT_FOE: case MOVE_RESULT_FAILED: @@ -2172,18 +2170,18 @@ static void atk0E_effectivenesssound(void) default: if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { - EmitEffectivenessSound(0, 14); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 14); + MarkBattlerForControllerExec(gActiveBattler); } else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { - EmitEffectivenessSound(0, 12); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 12); + MarkBattlerForControllerExec(gActiveBattler); } else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { - EmitEffectivenessSound(0, 13); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 13); + MarkBattlerForControllerExec(gActiveBattler); } break; } @@ -2195,7 +2193,7 @@ static void atk0F_resultmessage(void) { u32 stringId = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) @@ -2227,8 +2225,8 @@ static void atk0F_resultmessage(void) stringId = STRINGID_ITDOESNTAFFECT; break; case MOVE_RESULT_FOE_HUNG_ON: - gLastUsedItem = gBattleMons[gBankTarget].item; - gStringBank = gBankTarget; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + gPotentialItemEffectBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2256,8 +2254,8 @@ static void atk0F_resultmessage(void) } else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { - gLastUsedItem = gBattleMons[gBankTarget].item; - gStringBank = gBankTarget; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + gPotentialItemEffectBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2275,17 +2273,17 @@ static void atk0F_resultmessage(void) } if (stringId) - PrepareStringBattle(stringId, gBankAttacker); + PrepareStringBattle(stringId, gBattlerAttacker); gBattlescriptCurrInstr++; } static void atk10_printstring(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 var = T2_READ_16(gBattlescriptCurrInstr + 1); - PrepareStringBattle(var, gBankAttacker); + PrepareStringBattle(var, gBattlerAttacker); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2293,16 +2291,16 @@ static void atk10_printstring(void) static void atk11_printselectionstring(void) { - gActiveBattler = gBankAttacker; - EmitPrintStringPlayerOnly(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPrintSelectionString(0, T2_READ_16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } static void atk12_waitmessage(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (!gBattleCommunication[MSG_DISPLAY]) { @@ -2323,11 +2321,11 @@ static void atk12_waitmessage(void) static void atk13_printfromtable(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - PrepareStringBattle(*(u16*)ptr, gBankAttacker); + PrepareStringBattle(*(u16*)ptr, gBattlerAttacker); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2335,13 +2333,13 @@ static void atk13_printfromtable(void) static void atk14_printselectionstringfromtable(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); // FIXME ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gActiveBattler = gBankAttacker; - EmitPrintStringPlayerOnly(0, *(u16*)ptr); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPrintSelectionString(0, *(u16*)ptr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2370,30 +2368,30 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (gBattleCommunication[MOVE_EFFECT_BYTE] & EffectAffectsUser) { - gEffectBank = gBankAttacker; //bank that effects get applied on + gEffectBattler = gBattlerAttacker; //bank that effects get applied on gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(EffectAffectsUser); AffectsUser = EffectAffectsUser; - gBattleStruct->scriptingActive = gBankTarget; //theoretically the attacker + gBattleStruct->scriptingActive = gBattlerTarget; //theoretically the attacker } else { - gEffectBank = gBankTarget; - gBattleStruct->scriptingActive = gBankAttacker; + gEffectBattler = gBattlerTarget; + gBattleStruct->scriptingActive = gBattlerAttacker; } - if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && + if (gBattleMons[gEffectBattler].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) {gBattlescriptCurrInstr++; return;} - if (gSideAffecting[GetBattlerPosition(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && + if (gSideAffecting[GetBattlerPosition(gEffectBattler) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) {gBattlescriptCurrInstr++; return;} //make sure at least ONE HP except payday and thief - if (gBattleMons[gEffectBank].hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F) + if (gBattleMons[gEffectBattler].hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gEffectBank].status2 & STATUS2_SUBSTITUTE && AffectsUser != EffectAffectsUser) + if (gBattleMons[gEffectBattler].status2 & STATUS2_SUBSTITUTE && AffectsUser != EffectAffectsUser) {gBattlescriptCurrInstr++; return;} if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6) //status change @@ -2402,25 +2400,25 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { case STATUS_SLEEP: //check active uproar - if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gEffectBattler].ability != ABILITY_SOUNDPROOF) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount && !(gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR); gActiveBattler++) {} } else gActiveBattler = gBattlersCount; - if (gBattleMons[gEffectBank].status1) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} if (gActiveBattler != gBattlersCount) {break;} //nice way of checking uproar... - if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_INSOMNIA) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_VITAL_SPIRIT) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_INSOMNIA) {break;} - CancelMultiTurnMoves(gEffectBank); + CancelMultiTurnMoves(gEffectBattler); StatusChanged = 1; break; case STATUS_POISON: - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_IMMUNITY; - RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); + RecordAbilityBattle(gEffectBattler, ABILITY_IMMUNITY); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PSNPrevention; @@ -2433,7 +2431,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;} } - if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) + if ((gBattleMons[gEffectBattler].type1 == TYPE_POISON || gBattleMons[gEffectBattler].type2 == TYPE_POISON || gBattleMons[gEffectBattler].type1 == TYPE_STEEL || gBattleMons[gEffectBattler].type2 == TYPE_STEEL) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2441,20 +2439,20 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; } - if (gBattleMons[gEffectBank].type1 == TYPE_POISON) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_POISON) {break;} - if (gBattleMons[gEffectBank].type1 == TYPE_STEEL) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_STEEL) {break;} - if (gBattleMons[gEffectBank].status1) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_POISON) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_POISON) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_STEEL) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_STEEL) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY) {break;} StatusChanged = 1; break; case STATUS_BURN: - if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80)) + if (gBattleMons[gEffectBattler].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_WATER_VEIL; - RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL); + RecordAbilityBattle(gEffectBattler, ABILITY_WATER_VEIL); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_BRNPrevention; @@ -2467,7 +2465,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;} } - if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE) + if ((gBattleMons[gEffectBattler].type1 == TYPE_FIRE || gBattleMons[gEffectBattler].type2 == TYPE_FIRE) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2475,30 +2473,30 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; } - if (gBattleMons[gEffectBank].type1 == TYPE_FIRE) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_FIRE) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL) {break;} - if (gBattleMons[gEffectBank].status1 == 0) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_FIRE) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_FIRE) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_WATER_VEIL) {break;} + if (gBattleMons[gEffectBattler].status1 == 0) {break;} StatusChanged = 1; break; case STATUS_FREEZE: if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) {NoSunCanFreeze = 0;} - if (gBattleMons[gEffectBank].type1 == TYPE_ICE) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_ICE) {break;} - if (gBattleMons[gEffectBank].status1) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_ICE) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_ICE) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} if (NoSunCanFreeze == 0) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_MAGMA_ARMOR) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_MAGMA_ARMOR) {break;} - CancelMultiTurnMoves(gEffectBank); + CancelMultiTurnMoves(gEffectBattler); StatusChanged = 1; break; case STATUS_PARALYSIS: - if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER) + if (gBattleMons[gEffectBattler].ability == ABILITY_LIMBER) { if ((primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_LIMBER; - RecordAbilityBattle(gEffectBank, ABILITY_LIMBER); + RecordAbilityBattle(gEffectBattler, ABILITY_LIMBER); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PRLZPrevention; @@ -2513,14 +2511,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else {break;} } - if (gBattleMons[gEffectBank].status1) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} StatusChanged = 1; break; case STATUS_TOXIC_POISON: - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_IMMUNITY; - RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); + RecordAbilityBattle(gEffectBattler, ABILITY_IMMUNITY); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PSNPrevention; @@ -2533,7 +2531,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;} } - if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) + if ((gBattleMons[gEffectBattler].type1 == TYPE_POISON || gBattleMons[gEffectBattler].type2 == TYPE_POISON || gBattleMons[gEffectBattler].type1 == TYPE_STEEL || gBattleMons[gEffectBattler].type2 == TYPE_STEEL) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2541,14 +2539,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; } - if (gBattleMons[gEffectBank].status1) {break;} - if (gBattleMons[gEffectBank].type1 != TYPE_POISON && - gBattleMons[gEffectBank].type2 != TYPE_POISON && - gBattleMons[gEffectBank].type1 != TYPE_STEEL && - gBattleMons[gEffectBank].type2 != TYPE_STEEL) + if (gBattleMons[gEffectBattler].status1) {break;} + if (gBattleMons[gEffectBattler].type1 != TYPE_POISON && + gBattleMons[gEffectBattler].type2 != TYPE_POISON && + gBattleMons[gEffectBattler].type1 != TYPE_STEEL && + gBattleMons[gEffectBattler].type2 != TYPE_STEEL) { - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;} - gBattleMons[gEffectBank].status1 &= ~(0x9); //This gets (correctly) optimized out... + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY) {break;} + gBattleMons[gEffectBattler].status1 &= ~(0x9); //This gets (correctly) optimized out... StatusChanged = 1; break; } @@ -2560,13 +2558,13 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { BattleScriptPush(gBattlescriptCurrInstr + 1); if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP) - gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2); + gBattleMons[gEffectBattler].status1 |= ((Random() & 3) + 2); else - gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; + gBattleMons[gEffectBattler].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; - gActiveBattler = gEffectBank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gEffectBattler; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -2586,7 +2584,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else { - if (gBattleMons[gEffectBank].status2 & sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) + if (gBattleMons[gEffectBattler].status2 & sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) { gBattlescriptCurrInstr++; return; @@ -2594,21 +2592,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg) switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) { case 7: //confusion - if (gBattleMons[gEffectBank].ability == ABILITY_OWN_TEMPO) + if (gBattleMons[gEffectBattler].ability == ABILITY_OWN_TEMPO) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION) + if (gBattleMons[gEffectBattler].status2 & STATUS2_CONFUSION) {gBattlescriptCurrInstr++; return;} - gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2; + gBattleMons[gEffectBattler].status2 |= (((Random()) % 0x4)) + 2; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 8: //flinch - if (gBattleMons[gEffectBank].ability == ABILITY_INNER_FOCUS) + if (gBattleMons[gEffectBattler].ability == ABILITY_INNER_FOCUS) { if (primary == 1 || certain == 0x80) { gLastUsedAbility = ABILITY_INNER_FOCUS; - RecordAbilityBattle(gEffectBank, ABILITY_INNER_FOCUS); + RecordAbilityBattle(gEffectBattler, ABILITY_INNER_FOCUS); gBattlescriptCurrInstr = BattleScript_FlinchPrevention; return; } @@ -2617,25 +2615,25 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else { - if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber) - gBattleMons[gEffectBank].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; + if (BankGetTurnOrder(gEffectBattler) > gCurrentTurnActionNumber) + gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr++; return; } break; case 10: //uproar - if (gBattleMons[gEffectBank].status2 & STATUS2_UPROAR) + if (gBattleMons[gEffectBattler].status2 & STATUS2_UPROAR) {gBattlescriptCurrInstr++; return;} - gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gEffectBank] = gCurrentMove; - gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4; + gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBattler] = gCurrentMove; + gBattleMons[gEffectBattler].status2 |= ((Random() & 3) + 2) << 4; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 11: //pay day - if (!(GetBattlerPosition(gBankAttacker) & 1)) + if (!(GetBattlerPosition(gBattlerAttacker) & 1)) { u16 PayDay = gPaydayMoney; - gPaydayMoney += (gBattleMons[gBankAttacker].level * 5); + gPaydayMoney += (gBattleMons[gBattlerAttacker].level * 5); if (PayDay > gPaydayMoney) gPaydayMoney = 0xFFFF; } @@ -2643,24 +2641,24 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 9: //tri attack - if (gBattleMons[gEffectBank].status1) + if (gBattleMons[gEffectBattler].status1) {gBattlescriptCurrInstr++; return;} gBattleCommunication[MOVE_EFFECT_BYTE] = Random() % 3 + 3; SetMoveEffect(0, 0); break; case 12: //charging move - gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gEffectBank] = gCurrentMove; - gProtectStructs[gEffectBank].chargingTurn = 1; + gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBattler] = gCurrentMove; + gProtectStructs[gEffectBattler].chargingTurn = 1; gBattlescriptCurrInstr++; break; case 13: //wrap - if (gBattleMons[gEffectBank].status2 & STATUS2_WRAPPED) + if (gBattleMons[gEffectBattler].status2 & STATUS2_WRAPPED) {gBattlescriptCurrInstr++; return;} - gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 0xD; - gBattleStruct->wrappedMove[gEffectBank*2] = (u8)gCurrentMove; - (1 + gBattleStruct->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask. - gBattleStruct->wrappedBy[gEffectBank] = gBankAttacker; + gBattleMons[gEffectBattler].status2 |= ((Random() & 3) + 2) << 0xD; + gBattleStruct->wrappedMove[gEffectBattler*2] = (u8)gCurrentMove; + (1 + gBattleStruct->wrappedMove)[gEffectBattler*2] = gCurrentMove >> 8; //don't ask. + gBattleStruct->wrappedBy[gEffectBattler] = gBattlerAttacker; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -2716,62 +2714,62 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } break; case 29: //recharge - gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE; - gDisableStructs[gEffectBank].rechargeCounter = 2; - gLockedMoves[gEffectBank] = gCurrentMove; + gBattleMons[gEffectBattler].status2 |= STATUS2_RECHARGE; + gDisableStructs[gEffectBattler].rechargeCounter = 2; + gLockedMoves[gEffectBattler] = gCurrentMove; gBattlescriptCurrInstr++; break; case 30: //rage - gBattleMons[gBankAttacker].status2 |= STATUS2_RAGE; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_RAGE; gBattlescriptCurrInstr++; break; case 31: //item steal { - u8 side = GetBattlerSide(gBankAttacker); - if (GetBattlerSide(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400) + u8 side = GetBattlerSide(gBattlerAttacker); + if (GetBattlerSide(gBattlerAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400) {gBattlescriptCurrInstr++; return;} - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBankAttacker]])) + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]])) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) + if (gBattleMons[gBattlerTarget].item && gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; - gLastUsedAbility = gBattleMons[gBankTarget].ability; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); return; } - if (gBattleMons[gBankAttacker].item) + if (gBattleMons[gBattlerAttacker].item) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gBankTarget].item == 0) + if (gBattleMons[gBattlerTarget].item == 0) {gBattlescriptCurrInstr++; return;} - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; USED_HELD_ITEM(bank) = gLastUsedItem; - gBattleMons[gBankTarget].item = 0; + gBattleMons[gBattlerTarget].item = 0; - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); - MarkBufferBankForExecution(gBankAttacker); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); + MarkBattlerForControllerExec(gBattlerAttacker); - gActiveBattler = gBankTarget; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); - MarkBufferBankForExecution(gBankTarget); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item); + MarkBattlerForControllerExec(gBattlerTarget); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - CHOICED_MOVE(gBankTarget) = 0; + CHOICED_MOVE(gBattlerTarget) = 0; } break; case 32: //escape prevention - gBattleMons[gBankTarget].status2 |= STATUS2_RECHARGE; - gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker; + gBattleMons[gBattlerTarget].status2 |= STATUS2_RECHARGE; + gDisableStructs[gBattlerTarget].bankPreventingEscape = gBattlerAttacker; gBattlescriptCurrInstr++; break; case 33: //nightmare - gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE; + gBattleMons[gBattlerTarget].status2 |= STATUS2_NIGHTMARE; gBattlescriptCurrInstr++; break; case 34: //ancientpower @@ -2783,12 +2781,12 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = BattleScript_RapidSpinAway; return; case 36: //paralysis removal - if (gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS) + if (gBattleMons[gBattlerTarget].status1 & STATUS_PARALYSIS) { - gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS); - gActiveBattler = gBankTarget; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattlerTarget].status1 &= ~(STATUS_PARALYSIS); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1); + MarkBattlerForControllerExec(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; } @@ -2807,37 +2805,37 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 53: //thrash - if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gEffectBattler].status2 & STATUS2_LOCK_CONFUSE)) { - gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gEffectBank] = gCurrentMove; - gBattleMons[gEffectBank].status2 |= (((Random() & 1) + 2) << 0xA); + gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBattler] = gCurrentMove; + gBattleMons[gEffectBattler].status2 |= (((Random() & 1) + 2) << 0xA); } else {gBattlescriptCurrInstr++; return;} break; case 54: //knock off - if (gBattleMons[gEffectBank].ability == ABILITY_STICKY_HOLD) + if (gBattleMons[gEffectBattler].ability == ABILITY_STICKY_HOLD) { - if (gBattleMons[gEffectBank].item == 0) + if (gBattleMons[gEffectBattler].item == 0) {gBattlescriptCurrInstr++; return;} gLastUsedAbility = ABILITY_STICKY_HOLD; gBattlescriptCurrInstr = BattleScript_NoItemSteal; - RecordAbilityBattle(gEffectBank, ABILITY_STICKY_HOLD); + RecordAbilityBattle(gEffectBattler, ABILITY_STICKY_HOLD); return; } - if (gBattleMons[gEffectBank].item == 0) + if (gBattleMons[gEffectBattler].item == 0) {gBattlescriptCurrInstr++; return;} else { - u8 side = GetBattlerSide(gEffectBank); - gLastUsedItem = gBattleMons[gEffectBank].item; - gBattleMons[gEffectBank].item = 0; - gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBank]]; + u8 side = GetBattlerSide(gEffectBattler); + gLastUsedItem = gBattleMons[gEffectBattler].item; + gBattleMons[gEffectBattler].item = 0; + gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBattler]]; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_KnockedOff; - CHOICED_MOVE(gEffectBank) = 0; + CHOICED_MOVE(gEffectBattler) = 0; } break; case 59: //overheat @@ -2874,8 +2872,8 @@ void SetMoveEffect(bool8 primary, u8 certainArg) adds r7, r1, 0\n\ cmp r0, 0\n\ beq _0801E444\n\ - ldr r2, _0801E434 @ =gEffectBank\n\ - ldr r0, _0801E438 @ =gBankAttacker\n\ + ldr r2, _0801E434 @ =gEffectBattler\n\ + ldr r0, _0801E438 @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ strb r0, [r2]\n\ movs r0, 0xBF\n\ @@ -2883,21 +2881,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg) strb r0, [r7, 0x3]\n\ movs r6, 0x40\n\ ldr r0, _0801E43C @ =gSharedMem\n\ - ldr r1, _0801E440 @ =gBankTarget\n\ + ldr r1, _0801E440 @ =gBattlerTarget\n\ b _0801E450\n\ .align 2, 0\n\ _0801E430: .4byte gBattleCommunication\n\ -_0801E434: .4byte gEffectBank\n\ -_0801E438: .4byte gBankAttacker\n\ +_0801E434: .4byte gEffectBattler\n\ +_0801E438: .4byte gBattlerAttacker\n\ _0801E43C: .4byte gSharedMem\n\ -_0801E440: .4byte gBankTarget\n\ +_0801E440: .4byte gBattlerTarget\n\ _0801E444:\n\ - ldr r2, _0801E538 @ =gEffectBank\n\ - ldr r0, _0801E53C @ =gBankTarget\n\ + ldr r2, _0801E538 @ =gEffectBattler\n\ + ldr r0, _0801E53C @ =gBattlerTarget\n\ ldrb r0, [r0]\n\ strb r0, [r2]\n\ ldr r0, _0801E540 @ =gSharedMem\n\ - ldr r1, _0801E544 @ =gBankAttacker\n\ + ldr r1, _0801E544 @ =gBattlerAttacker\n\ _0801E450:\n\ ldrb r1, [r1]\n\ ldr r3, _0801E548 @ =0x00016003\n\ @@ -2957,7 +2955,7 @@ _0801E48A:\n\ bl _0801F5DC\n\ _0801E4C4:\n\ ldr r3, _0801E54C @ =gBattleMons\n\ - ldr r2, _0801E538 @ =gEffectBank\n\ + ldr r2, _0801E538 @ =gEffectBattler\n\ ldrb r1, [r2]\n\ movs r0, 0x58\n\ muls r0, r1\n\ @@ -3018,10 +3016,10 @@ _0801E528:\n\ _0801E536:\n\ b _0801EA14\n\ .align 2, 0\n\ -_0801E538: .4byte gEffectBank\n\ -_0801E53C: .4byte gBankTarget\n\ +_0801E538: .4byte gEffectBattler\n\ +_0801E53C: .4byte gBattlerTarget\n\ _0801E540: .4byte gSharedMem\n\ -_0801E544: .4byte gBankAttacker\n\ +_0801E544: .4byte gBattlerAttacker\n\ _0801E548: .4byte 0x00016003\n\ _0801E54C: .4byte gBattleMons\n\ _0801E550: .4byte gHitMarker\n\ @@ -3404,7 +3402,7 @@ _0801E7EA:\n\ str r1, [sp, 0x4]\n\ _0801E826:\n\ ldr r4, _0801E880 @ =gBattleMons\n\ - ldr r0, _0801E884 @ =gEffectBank\n\ + ldr r0, _0801E884 @ =gEffectBattler\n\ ldrb r3, [r0]\n\ movs r0, 0x58\n\ adds r2, r3, 0\n\ @@ -3452,7 +3450,7 @@ _0801E86E:\n\ .align 2, 0\n\ _0801E87C: .4byte gBattleWeather\n\ _0801E880: .4byte gBattleMons\n\ -_0801E884: .4byte gEffectBank\n\ +_0801E884: .4byte gEffectBattler\n\ _0801E888:\n\ mov r0, r8\n\ ldrb r1, [r0]\n\ @@ -3667,7 +3665,7 @@ _0801EA1C:\n\ bne _0801EA70\n\ bl Random\n\ ldr r2, _0801EA68 @ =gBattleMons\n\ - ldr r1, _0801EA6C @ =gEffectBank\n\ + ldr r1, _0801EA6C @ =gEffectBattler\n\ ldrb r3, [r1]\n\ movs r1, 0x58\n\ muls r3, r1\n\ @@ -3686,10 +3684,10 @@ _0801EA5C: .4byte gBattlescriptCurrInstr\n\ _0801EA60: .4byte sStatusFlagsForMoveEffects\n\ _0801EA64: .4byte gBattleCommunication\n\ _0801EA68: .4byte gBattleMons\n\ -_0801EA6C: .4byte gEffectBank\n\ +_0801EA6C: .4byte gEffectBattler\n\ _0801EA70:\n\ ldr r2, _0801EAD4 @ =gBattleMons\n\ - ldr r0, _0801EAD8 @ =gEffectBank\n\ + ldr r0, _0801EAD8 @ =gEffectBattler\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ muls r1, r0\n\ @@ -3708,7 +3706,7 @@ _0801EA84:\n\ ldr r0, [r0]\n\ str r0, [r2]\n\ ldr r4, _0801EAE8 @ =gActiveBattler\n\ - ldr r1, _0801EAD8 @ =gEffectBank\n\ + ldr r1, _0801EAD8 @ =gEffectBattler\n\ ldrb r0, [r1]\n\ strb r0, [r4]\n\ ldrb r1, [r1]\n\ @@ -3721,9 +3719,9 @@ _0801EA84:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r2, _0801EAF0 @ =gHitMarker\n\ ldr r1, [r2]\n\ movs r0, 0x80\n\ @@ -3739,7 +3737,7 @@ _0801EA84:\n\ b _0801EAFA\n\ .align 2, 0\n\ _0801EAD4: .4byte gBattleMons\n\ -_0801EAD8: .4byte gEffectBank\n\ +_0801EAD8: .4byte gEffectBattler\n\ _0801EADC: .4byte gBattlescriptCurrInstr\n\ _0801EAE0: .4byte gMoveEffectBS_Ptrs\n\ _0801EAE4: .4byte gBattleCommunication\n\ @@ -4046,7 +4044,7 @@ _0801EDD0: .4byte gBattlescriptCurrInstr\n\ _0801EDD4: .4byte gMoveEffectBS_Ptrs\n\ _0801EDD8: .4byte gBattleCommunication\n\ _0801EDDC:\n\ - ldr r5, _0801EE30 @ =gBankAttacker\n\ + ldr r5, _0801EE30 @ =gBattlerAttacker\n\ ldrb r0, [r5]\n\ bl GetBattlerPosition\n\ movs r1, 0x1\n\ @@ -4086,7 +4084,7 @@ _0801EE14:\n\ ldr r0, [r0]\n\ bl _0801F5F8\n\ .align 2, 0\n\ -_0801EE30: .4byte gBankAttacker\n\ +_0801EE30: .4byte gBattlerAttacker\n\ _0801EE34: .4byte gPaydayMoney\n\ _0801EE38: .4byte gBattleMons\n\ _0801EE3C: .4byte 0x0000ffff\n\ @@ -4206,7 +4204,7 @@ _0801EEE8:\n\ ldr r3, _0801EF90 @ =0x00016020\n\ adds r0, r3\n\ adds r0, r2\n\ - ldr r1, _0801EF94 @ =gBankAttacker\n\ + ldr r1, _0801EF94 @ =gBattlerAttacker\n\ ldrb r1, [r1]\n\ strb r1, [r0]\n\ ldr r4, _0801EF98 @ =gBattlescriptCurrInstr\n\ @@ -4254,7 +4252,7 @@ _0801EF84: .4byte 0x00016004\n\ _0801EF88: .4byte gCurrentMove\n\ _0801EF8C: .4byte 0x00016005\n\ _0801EF90: .4byte 0x00016020\n\ -_0801EF94: .4byte gBankAttacker\n\ +_0801EF94: .4byte gBattlerAttacker\n\ _0801EF98: .4byte gBattlescriptCurrInstr\n\ _0801EF9C: .4byte gMoveEffectBS_Ptrs\n\ _0801EFA0: .4byte gBattleCommunication\n\ @@ -4477,7 +4475,7 @@ _0801F178: .4byte gDisableStructs\n\ _0801F17C: .4byte gLockedMoves\n\ _0801F180: .4byte gCurrentMove\n\ _0801F184:\n\ - ldr r0, _0801F1A0 @ =gBankAttacker\n\ + ldr r0, _0801F1A0 @ =gBattlerAttacker\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r2, r1, 0\n\ @@ -4493,9 +4491,9 @@ _0801F19A:\n\ str r0, [r2]\n\ b _0801F5DC\n\ .align 2, 0\n\ -_0801F1A0: .4byte gBankAttacker\n\ +_0801F1A0: .4byte gBattlerAttacker\n\ _0801F1A4:\n\ - ldr r4, _0801F254 @ =gBankAttacker\n\ + ldr r4, _0801F254 @ =gBattlerAttacker\n\ ldrb r0, [r4]\n\ bl GetBattlerSide\n\ lsls r0, 24\n\ @@ -4538,7 +4536,7 @@ _0801F1D8:\n\ ldrb r1, [r0]\n\ ldr r3, _0801F268 @ =gBitTable\n\ ldr r2, _0801F26C @ =gBattlerPartyIndexes\n\ - ldr r0, _0801F254 @ =gBankAttacker\n\ + ldr r0, _0801F254 @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ adds r0, r2\n\ @@ -4552,7 +4550,7 @@ _0801F1D8:\n\ b _0801F5DC\n\ _0801F214:\n\ ldr r2, _0801F270 @ =gBattleMons\n\ - ldr r1, _0801F274 @ =gBankTarget\n\ + ldr r1, _0801F274 @ =gBattlerTarget\n\ ldrb r0, [r1]\n\ movs r3, 0x58\n\ muls r0, r3\n\ @@ -4582,7 +4580,7 @@ _0801F214:\n\ bl RecordAbilityBattle\n\ b _0801F5FA\n\ .align 2, 0\n\ -_0801F254: .4byte gBankAttacker\n\ +_0801F254: .4byte gBattlerAttacker\n\ _0801F258: .4byte gBattleTypeFlags\n\ _0801F25C: .4byte 0x00000902\n\ _0801F260: .4byte gTrainerBattleOpponent\n\ @@ -4590,12 +4588,12 @@ _0801F264: .4byte gWishFutureKnock\n\ _0801F268: .4byte gBitTable\n\ _0801F26C: .4byte gBattlerPartyIndexes\n\ _0801F270: .4byte gBattleMons\n\ -_0801F274: .4byte gBankTarget\n\ +_0801F274: .4byte gBattlerTarget\n\ _0801F278: .4byte gBattlescriptCurrInstr\n\ _0801F27C: .4byte BattleScript_NoItemSteal\n\ _0801F280: .4byte gLastUsedAbility\n\ _0801F284:\n\ - ldr r4, _0801F340 @ =gBankAttacker\n\ + ldr r4, _0801F340 @ =gBattlerAttacker\n\ mov r10, r4\n\ ldrb r1, [r4]\n\ movs r0, 0x58\n\ @@ -4645,10 +4643,10 @@ _0801F2B6:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ mov r3, r10\n\ ldrb r0, [r3]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldrb r0, [r7]\n\ strb r0, [r4]\n\ ldrb r0, [r7]\n\ @@ -4663,9 +4661,9 @@ _0801F2B6:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r7]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r4, _0801F350 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ @@ -4688,7 +4686,7 @@ _0801F2B6:\n\ strb r6, [r0]\n\ b _0801F5FA\n\ .align 2, 0\n\ -_0801F340: .4byte gBankAttacker\n\ +_0801F340: .4byte gBattlerAttacker\n\ _0801F344: .4byte gSharedMem + 0x160F0\n\ _0801F348: .4byte gLastUsedItem\n\ _0801F34C: .4byte gActiveBattler\n\ @@ -4698,7 +4696,7 @@ _0801F358: .4byte 0xfffe9f10\n\ _0801F35C: .4byte 0x000160e8\n\ _0801F360: .4byte 0x000160e9\n\ _0801F364:\n\ - ldr r3, _0801F394 @ =gBankTarget\n\ + ldr r3, _0801F394 @ =gBattlerTarget\n\ ldrb r1, [r3]\n\ movs r0, 0x58\n\ adds r2, r1, 0\n\ @@ -4717,16 +4715,16 @@ _0801F364:\n\ subs r0, r1\n\ lsls r0, 2\n\ adds r0, r2\n\ - ldr r1, _0801F39C @ =gBankAttacker\n\ + ldr r1, _0801F39C @ =gBattlerAttacker\n\ ldrb r1, [r1]\n\ strb r1, [r0, 0x14]\n\ b _0801F5DC\n\ .align 2, 0\n\ -_0801F394: .4byte gBankTarget\n\ +_0801F394: .4byte gBattlerTarget\n\ _0801F398: .4byte gDisableStructs\n\ -_0801F39C: .4byte gBankAttacker\n\ +_0801F39C: .4byte gBattlerAttacker\n\ _0801F3A0:\n\ - ldr r0, _0801F3B8 @ =gBankTarget\n\ + ldr r0, _0801F3B8 @ =gBattlerTarget\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r2, r1, 0\n\ @@ -4739,7 +4737,7 @@ _0801F3A0:\n\ lsls r1, 20\n\ b _0801F19A\n\ .align 2, 0\n\ -_0801F3B8: .4byte gBankTarget\n\ +_0801F3B8: .4byte gBattlerTarget\n\ _0801F3BC:\n\ ldr r4, _0801F3CC @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ @@ -4761,7 +4759,7 @@ _0801F3D4:\n\ _0801F3E4: .4byte gBattlescriptCurrInstr\n\ _0801F3E8: .4byte BattleScript_RapidSpinAway\n\ _0801F3EC:\n\ - ldr r6, _0801F43C @ =gBankTarget\n\ + ldr r6, _0801F43C @ =gBattlerTarget\n\ ldrb r0, [r6]\n\ movs r2, 0x58\n\ muls r0, r2\n\ @@ -4790,9 +4788,9 @@ _0801F406:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r4, _0801F444 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ @@ -4800,7 +4798,7 @@ _0801F406:\n\ ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal\n\ b _0801F5F8\n\ .align 2, 0\n\ -_0801F43C: .4byte gBankTarget\n\ +_0801F43C: .4byte gBattlerTarget\n\ _0801F440: .4byte gActiveBattler\n\ _0801F444: .4byte gBattlescriptCurrInstr\n\ _0801F448: .4byte BattleScript_TargetPRLZHeal\n\ @@ -5021,7 +5019,7 @@ static void atk15_seteffectwithchance(void) { u32 PercentChance; - if (gBattleMons[gBankAttacker].ability == ABILITY_SERENE_GRACE) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_SERENE_GRACE) PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2; else PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; @@ -5101,14 +5099,14 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == 1) { - gActiveBattler = gBankAttacker; - bank = gBankTarget; + gActiveBattler = gBattlerAttacker; + bank = gBattlerTarget; r4 = BattleScript_FaintAttacker; } else { - gActiveBattler = gBankTarget; - bank = gBankAttacker; + gActiveBattler = gBattlerTarget; + bank = gBattlerAttacker; r4 = BattleScript_FaintTarget; } if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) @@ -5143,31 +5141,31 @@ static void atk19_tryfaintmon(void) gBattleResults.opponentFaintCounter++; gBattleResults.lastOpponentSpecies = gBattleMons[gActiveBattler].species; } - if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0) + if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattlerAttacker].hp != 0) { BattleScriptPush(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } - if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE) + if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget) - && gBattleMons[gBankAttacker].hp != 0 + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) + && gBattleMons[gBattlerAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { - u8 moveIndex = ewram1608Carr(gBankAttacker); + u8 moveIndex = ewram1608Carr(gBattlerAttacker); - gBattleMons[gBankAttacker].pp[moveIndex] = 0; + gBattleMons[gBattlerAttacker].pp[moveIndex] = 0; BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace; - gActiveBattler = gBankAttacker; - EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); + MarkBattlerForControllerExec(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gBattleMons[gBankAttacker].moves[moveIndex]; - gBattleTextBuff1[3] = gBattleMons[gBankAttacker].moves[moveIndex] >> 8; + gBattleTextBuff1[2] = gBattleMons[gBattlerAttacker].moves[moveIndex]; + gBattleTextBuff1[3] = gBattleMons[gBattlerAttacker].moves[moveIndex] >> 8; gBattleTextBuff1[4] = EOS; } } @@ -5180,11 +5178,11 @@ static void atk19_tryfaintmon(void) static void atk1A_dofaintanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - Emitcmd10(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitFaintAnimation(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } } @@ -5192,12 +5190,12 @@ static void atk1A_dofaintanimation(void) static void atk1B_cleareffectsonfaint(void) { //Clears things like attraction or trapping to other banks - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); gBattleMons[gActiveBattler].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); UndoEffectsAfterFainting(); gBattlescriptCurrInstr += 2; } @@ -5232,7 +5230,7 @@ static void atk1E_jumpifability(void) void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3); if (T2_READ_8(gBattlescriptCurrInstr + 1) == 8) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -5245,7 +5243,7 @@ static void atk1E_jumpifability(void) } else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 9) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -5277,9 +5275,9 @@ static void atk1F_jumpifsideaffecting(void) u16 flags; void* jump_loc; if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1) - side = GetBattlerPosition(gBankAttacker) & 1; + side = GetBattlerPosition(gBattlerAttacker) & 1; else - side = GetBattlerPosition(gBankTarget) & 1; + side = GetBattlerPosition(gBattlerTarget) & 1; flags = T2_READ_16(gBattlescriptCurrInstr + 2); jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4); @@ -5443,7 +5441,7 @@ static void atk23_getexp(void) } // fall through case 2: // set exp value to the poke in expgetter_id and print message - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { item = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HELD_ITEM); @@ -5530,7 +5528,7 @@ static void atk23_getexp(void) } break; case 3: // Set stats and give exp - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleBufferB[gBattleStruct->expGetterBank][0] = 0; if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) != 100) @@ -5544,14 +5542,14 @@ static void atk23_getexp(void) gActiveBattler = gBattleStruct->expGetterBank; - EmitExpBarUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitExpUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); } gBattleStruct->getexpStateTracker++; } break; case 4: // lvl up if necessary - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = gBattleStruct->expGetterBank; if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES @@ -5618,7 +5616,7 @@ static void atk23_getexp(void) } break; case 6: // increment instruction - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { // not sure why gf clears the item and ability here gBattleMons[gBank1].item = 0; @@ -5634,7 +5632,7 @@ static void atk24(void) { u16 HP_count = 0; int i; - if (gBattleExecBuffer) {return;} + if (gBattleControllerExecFlags) {return;} for (i = 0; i < 6; i++) { @@ -5701,7 +5699,7 @@ static void atk24(void) mov r7, r8\n\ push {r7}\n\ movs r6, 0\n\ - ldr r0, _08020AF0 @ =gBattleExecBuffer\n\ + ldr r0, _08020AF0 @ =gBattleControllerExecFlags\n\ ldr r0, [r0]\n\ cmp r0, 0\n\ beq _080209C6\n\ @@ -5862,7 +5860,7 @@ _08020ADA:\n\ bgt _08020B1C\n\ b _08020B36\n\ .align 2, 0\n\ -_08020AF0: .4byte gBattleExecBuffer\n\ +_08020AF0: .4byte gBattleControllerExecFlags\n\ _08020AF4: .4byte gPlayerParty\n\ _08020AF8: .4byte gBattleOutcome\n\ _08020AFC: .4byte gEnemyParty\n\ @@ -6209,7 +6207,7 @@ static void atk38_bicword(void) static void atk39_pause(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 value = T2_READ_16(gBattlescriptCurrInstr + 1); if (++gPauseCounterBattle >= value) @@ -6222,19 +6220,19 @@ static void atk39_pause(void) static void atk3A_waitstate(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattlescriptCurrInstr++; } static void atk3B_healthbar_update(void) { if (!T2_READ_8(gBattlescriptCurrInstr + 1)) - gActiveBattler = gBankTarget; + gActiveBattler = gBattlerTarget; else - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; - EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6291,7 +6289,7 @@ static void atk43_jumpifabilitypresent(void) static void atk44_endselectionscript(void) { - ewram16060(gBankAttacker) = 1; + ewram16060(gBattlerAttacker) = 1; } static void atk45_playanimation(void) @@ -6305,8 +6303,8 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE) { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -6319,8 +6317,8 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES) { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) @@ -6329,8 +6327,8 @@ static void atk45_playanimation(void) } else { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } } @@ -6348,8 +6346,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SNATCH_MOVE || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE) { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -6361,8 +6359,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES || *animationIdPtr == B_ANIM_HAIL_CONTINUES) { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) @@ -6371,8 +6369,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po } else { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } } @@ -6474,8 +6472,8 @@ static void atk48_playstatchangeanimation(void) gBattlescriptCurrInstr += 4; else { - EmitBattleAnimation(0, 1, stat_animID); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, 1, stat_animID); + MarkBattlerForControllerExec(gActiveBattler); if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1) gBattleStruct->filler2[0] = 1; gBattlescriptCurrInstr += 4; @@ -6708,10 +6706,10 @@ _08021790:\n\ movs r1, 0x1\n\ mov r2, r8\n\ str r3, [sp]\n\ - bl EmitBattleAnimation\n\ + bl BtlController_EmitBattleAnimation\n\ ldr r0, _080217D8 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, _080217DC @ =gBattlescriptCurrInstr\n\ ldr r0, [r0]\n\ ldrb r1, [r0, 0x3]\n\ @@ -6790,12 +6788,12 @@ void atk49_moveend(void) arg1 = T2_READ_8(gBattlescriptCurrInstr + 1); arg2 = T2_READ_8(gBattlescriptCurrInstr + 2); - if (gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY) - holdEffectAtk = gEnigmaBerries[gBankAttacker].holdEffect; + if (gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY) + holdEffectAtk = gEnigmaBerries[gBattlerAttacker].holdEffect; else - holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBankAttacker].item); + holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattlerAttacker].item); - choicedMoveAtk = &((u16*)(gSharedMem + 0x160E8))[gBankAttacker]; + choicedMoveAtk = &((u16*)(gSharedMem + 0x160E8))[gBattlerAttacker]; GET_MOVE_TYPE(gCurrentMove, moveType); do @@ -6803,13 +6801,13 @@ void atk49_moveend(void) switch (gBattleStruct->cmd49StateTracker) { case ATK49_RAGE: // rage check - if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE - && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget - && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && (gProtectStructs[gBankTarget].physicalDmg != 0 || gProtectStructs[gBankTarget].specialDmg != 0) - && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_RAGE + && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && (gProtectStructs[gBattlerTarget].physicalDmg != 0 || gProtectStructs[gBattlerTarget].specialDmg != 0) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] <= 0xB) { - gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; + gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK]++; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = TRUE; @@ -6817,15 +6815,15 @@ void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case ATK49_DEFROST: // defrosting check - if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE - && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget - && gSpecialStatuses[gBankTarget].moveturnLostHP_special + if (gBattleMons[gBattlerTarget].status1 & STATUS_FREEZE + && gBattleMons[gBattlerTarget].hp && gBattlerAttacker != gBattlerTarget + && gSpecialStatuses[gBattlerTarget].specialDmg && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE) { - gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); - gActiveBattler = gBankTarget; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattlerTarget].status1 &= ~(STATUS_FREEZE); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1); + MarkBattlerForControllerExec(gActiveBattler); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; effect = TRUE; @@ -6833,12 +6831,12 @@ void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case ATK49_SYNCHRONIZE_TARGET: // target synchronize - if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattlerTarget, 0, 0, 0)) effect = TRUE; gBattleStruct->cmd49StateTracker++; break; case ATK49_MOVE_END_ABILITIES: // Such as abilities activating on contact(Poison Spore, Rough Skin, etc.). - if (AbilityBattleEffects(ABILITYEFFECT_MOVE_END, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVE_END, gBattlerTarget, 0, 0, 0)) effect = TRUE; gBattleStruct->cmd49StateTracker++; break; @@ -6849,7 +6847,7 @@ void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case ATK49_SYNCHRONIZE_ATTACKER: //attacker synchronize - if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBankAttacker, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattlerAttacker, 0, 0, 0)) effect = TRUE; gBattleStruct->cmd49StateTracker++; break; @@ -6867,7 +6865,7 @@ void atk49_moveend(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == *choicedMoveAtk) + if (gBattleMons[gBattlerAttacker].moves[i] == *choicedMoveAtk) break; } if (i == 4) @@ -6900,35 +6898,35 @@ void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case ATK49_TARGET_VISIBLE: // make target sprite visible - if ((gStatuses3[gBankAttacker] & 0x400C0) && (gHitMarker & HITMARKER_NO_ANIMATIONS)) + if ((gStatuses3[gBattlerAttacker] & 0x400C0) && (gHitMarker & HITMARKER_NO_ANIMATIONS)) { - gActiveBattler = gBankAttacker; - EmitSpriteInvisibility(0, 1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSpriteInvisibility(0, 1); + MarkBattlerForControllerExec(gActiveBattler); } gBattleStruct->cmd49StateTracker++; break; case ATK49_ITEM_EFFECTS_ALL: // item effects for all battlers if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT - || !(gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE)) - || WasUnableToUseMove(gBankAttacker)) + || !(gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE)) + || WasUnableToUseMove(gBattlerAttacker)) { - gActiveBattler = gBankAttacker; - EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBattler); - gStatuses3[gBankAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); - gSpecialStatuses[gBankAttacker].restoredBankSprite = 1; + gActiveBattler = gBattlerAttacker; + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); + gSpecialStatuses[gBattlerAttacker].restoredBattlerSprite = 1; } gBattleStruct->cmd49StateTracker++; break; case ATK49_KINGSROCK_SHELLBELL: // king's rock and shell bell - if (!gSpecialStatuses[gBankTarget].restoredBankSprite && gBankTarget < gBattlersCount - && !(gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)) + if (!gSpecialStatuses[gBattlerTarget].restoredBattlerSprite && gBattlerTarget < gBattlersCount + && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { - gActiveBattler = gBankTarget; - EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBattler); - gStatuses3[gBankTarget] &= ~(STATUS3_SEMI_INVULNERABLE); + gActiveBattler = gBattlerTarget; + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); + gStatuses3[gBattlerTarget] &= ~(STATUS3_SEMI_INVULNERABLE); } gBattleStruct->cmd49StateTracker++; break; @@ -6943,85 +6941,85 @@ void atk49_moveend(void) case ATK49_UPDATE_LAST_MOVES: if (gHitMarker & HITMARKER_PURSUIT_TRAP) { - gActiveBattler = gBankAttacker; - gBankAttacker = gBankTarget; - gBankTarget = gActiveBattler; + gActiveBattler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = gActiveBattler; gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); } if (gBattleMoves[gChosenMove].effect != 0x7F || (gMoveResultFlags & 0x29)) - gUnknown_02024C2C[gBankAttacker] = gChosenMove; + gUnknown_02024C2C[gBattlerAttacker] = gChosenMove; - if (!(gAbsentBattlerFlags & gBitTable[gBankAttacker]) - && !(gSharedMem[0x160A6] & gBitTable[gBankAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) + && !(gSharedMem[0x160A6] & gBitTable[gBattlerAttacker]) && gBattleMoves[gChosenMove].effect != EFFECT_BATON_PASS) { if (gHitMarker & HITMARKER_OBEYS) { - gLastUsedMove[gBankAttacker] = gChosenMove; - gUnknown_02024C4C[gBankAttacker] = gCurrentMove; + gLastUsedMove[gBattlerAttacker] = gChosenMove; + gUnknown_02024C4C[gBattlerAttacker] = gCurrentMove; } else { - gLastUsedMove[gBankAttacker] = 0xFFFF; - gUnknown_02024C4C[gBankAttacker] = 0xFFFF; + gLastUsedMove[gBattlerAttacker] = 0xFFFF; + gUnknown_02024C4C[gBattlerAttacker] = 0xFFFF; } - if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) - gLastHitBy[gBankTarget] = gBankAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget))) + gLastHitBy[gBattlerTarget] = gBattlerAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (gChosenMove == 0xFFFF) { - gLastLandedMoves[gBankTarget] = gChosenMove; + gLastLandedMoves[gBattlerTarget] = gChosenMove; } else { - gLastLandedMoves[gBankTarget] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankTarget]); + gLastLandedMoves[gBattlerTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattlerTarget]); } } else { - gLastLandedMoves[gBankTarget] = 0xFFFF; + gLastLandedMoves[gBattlerTarget] = 0xFFFF; } } gBattleStruct->cmd49StateTracker++; break; case ATK49_MIRROR_MOVE: - if (!(gAbsentBattlerFlags & gBitTable[gBankAttacker]) && !(gSharedMem[0x160A6] & gBitTable[gBankAttacker])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) && !(gSharedMem[0x160A6] & gBitTable[gBattlerAttacker])) { if (gBattleMoves[gChosenMove].flags & 0x10 && gHitMarker & HITMARKER_OBEYS - && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget)) + && gBattlerAttacker != gBattlerTarget && !(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gSharedMem[0x160AC + gBankTarget * 2 + 0] = gChosenMove; - gSharedMem[0x160AC + gBankTarget * 2 + 1] = gChosenMove >> 8; + gSharedMem[0x160AC + gBattlerTarget * 2 + 0] = gChosenMove; + gSharedMem[0x160AC + gBattlerTarget * 2 + 1] = gChosenMove >> 8; - gSharedMem[0x16100 + gBankTarget * 4 + 0 + (gBankAttacker / 2) * 2] = gChosenMove; - gSharedMem[0x16100 + gBankTarget * 4 + 1 + (gBankAttacker / 2) * 2] = gChosenMove >> 8; + gSharedMem[0x16100 + gBattlerTarget * 4 + 0 + (gBattlerAttacker / 2) * 2] = gChosenMove; + gSharedMem[0x16100 + gBattlerTarget * 4 + 1 + (gBattlerAttacker / 2) * 2] = gChosenMove >> 8; } - else if (gBankAttacker != gBankTarget) + else if (gBattlerAttacker != gBattlerTarget) { - gSharedMem[0x160AC + gBankTarget * 2 + 0] = 0; - gSharedMem[0x160AC + gBankTarget * 2 + 1] = 0; + gSharedMem[0x160AC + gBattlerTarget * 2 + 0] = 0; + gSharedMem[0x160AC + gBattlerTarget * 2 + 1] = 0; - gSharedMem[0x16100 + gBankTarget * 4 + 0 + (gBankAttacker / 2) * 2] = 0; - gSharedMem[0x16100 + gBankTarget * 4 + 1 + (gBankAttacker / 2) * 2] = 0; + gSharedMem[0x16100 + gBattlerTarget * 4 + 0 + (gBattlerAttacker / 2) * 2] = 0; + gSharedMem[0x16100 + gBattlerTarget * 4 + 1 + (gBattlerAttacker / 2) * 2] = 0; } } gBattleStruct->cmd49StateTracker++; break; case ATK49_NEXT_TARGET: if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !gProtectStructs[gBankAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH + && !gProtectStructs[gBattlerAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 battlerId = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBankTarget))); + u8 battlerId = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); if (gBattleMons[battlerId].hp != 0) { - gBankTarget = battlerId; + gBattlerTarget = battlerId; gHitMarker |= HITMARKER_NO_ATTACKSTRING; gBattleStruct->cmd49StateTracker = 0; MoveValuesCleanUp(); @@ -7057,13 +7055,13 @@ static void atk4A_typecalc2(void) int i = 0; u8 move_type = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; gBattleCommunication[6] = move_type; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -7071,14 +7069,14 @@ static void atk4A_typecalc2(void) { if (gTypeEffectiveness[i] == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) {break;} + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) {break;} else {i += 3; continue;} } if (gTypeEffectiveness[i] == move_type) { //check type1 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1) { if (gTypeEffectiveness[i + 2] == 0) { @@ -7091,18 +7089,18 @@ static void atk4A_typecalc2(void) flags |= MOVE_RESULT_SUPER_EFFECTIVE; } //check type2 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2) { - if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 0) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 5) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 5) flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 20) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 20) flags |= MOVE_RESULT_SUPER_EFFECTIVE; } } @@ -7110,44 +7108,44 @@ static void atk4A_typecalc2(void) } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 && + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 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[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } static void atk4B_returnatktoball(void) { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { - EmitReturnPokeToBall(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 0); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr++; } static void atk4C_getswitchedmondata(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); gBattlerPartyIndexes[gActiveBattler] = ewram16068arr(gActiveBattler); - EmitGetAttributes(0, 0, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, 0, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -7157,7 +7155,7 @@ static void atk4D_switchindataupdate(void) s32 i; u8 *monData; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -7200,7 +7198,7 @@ static void atk4D_switchindataupdate(void) static void atk4E_switchinanim(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); @@ -7209,8 +7207,8 @@ static void atk4E_switchinanim(void) GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); } gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); - EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } @@ -7288,8 +7286,8 @@ static void atk4F_jumpifcantswitch(void) void sub_8022A3C(u8 unkown) { BATTLE_PARTY_ID(gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; - EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBattler]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBattler]); + MarkBattlerForControllerExec(gActiveBattler); } /* @@ -7307,8 +7305,8 @@ static void atk50_openpartyscreen(void) { if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { - EmitLinkStandbyMsg(0, 2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2); + MarkBattlerForControllerExec(gActiveBattler); } else if (sub_8018018(gActiveBattler, 6, 6) == 0 && !gSpecialStatuses[gActiveBattler].flag40) @@ -7320,8 +7318,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= (~HITMARKER_FAINTED(gActiveBattler)); - EmitLinkStandbyMsg(0, 2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -7431,9 +7429,9 @@ _08022AF2:\n\ str r0, [r7]\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022BA2\n\ .align 2, 0\n\ _08022B44: .4byte gBattlescriptCurrInstr\n\ @@ -7471,9 +7469,9 @@ _08022B90: .4byte gSpecialStatuses\n\ _08022B94:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022BA2:\n\ ldrb r0, [r4]\n\ adds r0, 0x1\n\ @@ -7529,9 +7527,9 @@ _08022BC4:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022C7E\n\ .align 2, 0\n\ _08022C1C: .4byte gHitMarker\n\ @@ -7571,9 +7569,9 @@ _08022C68: .4byte 0x0001606a\n\ _08022C6C:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ movs r2, 0x1\n\ mov r9, r2\n\ _08022C7E:\n\ @@ -7614,9 +7612,9 @@ _08022C7E:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022D40\n\ .align 2, 0\n\ _08022CD8: .4byte gBitTable\n\ @@ -7661,9 +7659,9 @@ _08022D28:\n\ bne _08022D40\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022D40:\n\ ldr r6, _08022D90 @ =gBitTable\n\ ldr r0, [r6, 0x4]\n\ @@ -7698,9 +7696,9 @@ _08022D40:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022DF6\n\ .align 2, 0\n\ _08022D90: .4byte gBitTable\n\ @@ -7740,9 +7738,9 @@ _08022DDC: .4byte 0x0001606b\n\ _08022DE0:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ movs r0, 0x2\n\ mov r2, r9\n\ orrs r2, r0\n\ @@ -7785,9 +7783,9 @@ _08022DF6:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022EB8\n\ .align 2, 0\n\ _08022E50: .4byte gBitTable\n\ @@ -7832,9 +7830,9 @@ _08022EA0:\n\ bne _08022EB8\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022EB8:\n\ ldr r1, _08022EE8 @ =gSpecialStatuses\n\ ldrb r0, [r1]\n\ @@ -7871,10 +7869,10 @@ _08022EF8:\n\ _08022EFC:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldr r0, _08022F3C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022F0C:\n\ ldr r1, _08022F40 @ =gSpecialStatuses\n\ ldrb r0, [r1, 0x14]\n\ @@ -7911,10 +7909,10 @@ _08022F50:\n\ strb r0, [r1]\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldr r0, _08022F6C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022F62:\n\ ldr r1, _08022F70 @ =gBattlescriptCurrInstr\n\ ldr r0, [r1]\n\ @@ -7983,9 +7981,9 @@ _08022F92:\n\ bics r0, r1\n\ str r0, [r7]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r6]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _0802303A\n\ .align 2, 0\n\ _08022FF0: .4byte gBattleTypeFlags\n\ @@ -8060,9 +8058,9 @@ _0802303A:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r5]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _080230EE\n\ .align 2, 0\n\ _08023098: .4byte gSpecialStatuses\n\ @@ -8256,9 +8254,9 @@ _080231F8:\n\ movs r0, 0\n\ adds r1, r5, 0\n\ movs r3, 0\n\ - bl EmitChoosePokemon\n\ + bl BtlController_EmitChoosePokemon\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, [r6]\n\ adds r0, 0x6\n\ str r0, [r6]\n\ @@ -8294,9 +8292,9 @@ _08023276:\n\ beq _0802328A\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _0802328A:\n\ ldrb r0, [r4]\n\ adds r0, 0x1\n\ @@ -8344,9 +8342,9 @@ _080232C4:\n\ _080232F4:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08023302:\n\ add sp, 0x4\n\ pop {r3,r4}\n\ @@ -8365,7 +8363,7 @@ _08023318: .4byte gBitTable\n\ static void atk51_switchhandleorder(void) { int i; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); @@ -8399,8 +8397,8 @@ static void atk51_switchhandleorder(void) gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 6; - gBattleTextBuff1[2] = gBattleMons[gBankAttacker].species; - gBattleTextBuff1[3] = gBattleMons[gBankAttacker].species >> 8; + gBattleTextBuff1[2] = gBattleMons[gBattlerAttacker].species; + gBattleTextBuff1[3] = gBattleMons[gBattlerAttacker].species >> 8; gBattleTextBuff1[4] = 0xFF; gBattleTextBuff2[0] = 0xFD; @@ -8491,48 +8489,48 @@ static void atk53_trainerslidein(void) else gActiveBattler = GetBattlerAtPosition(1); - EmitTrainerSlide(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitTrainerSlide(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk54_playse(void) { - gActiveBattler = gBankAttacker; - EmitEffectivenessSound(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPlaySE(0, T2_READ_16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk55_fanfare(void) { - gActiveBattler = gBankAttacker; - Emitcmd44(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPlayFanfareOrBGM(0, T2_READ_16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk56_playfaintcry(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitFaintingCry(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitFaintingCry(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk57(void) { gActiveBattler = GetBattlerAtPosition(0); - Emitcmd55(0, gBattleOutcome); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd55(0, gBattleOutcome); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 1; } static void atk58_returntoball(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitReturnPokeToBall(0, 1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -8687,7 +8685,7 @@ static void atk5A_yesnoboxlearnmove(void) gBattlescriptCurrInstr += 5; break; case 5: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleStruct->atk5A_StateTracker = 2; } @@ -8745,8 +8743,8 @@ static void atk5C_hitanimation(void) gBattlescriptCurrInstr += 2; else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0) { - EmitHitAnimation(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHitAnimation(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } else @@ -9087,12 +9085,12 @@ static void atk5E_8025A70(void) switch (gBattleCommunication[0]) { case 0: - EmitGetAttributes(0, REQUEST_ALL_BATTLE, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[0]++; break; case 1: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { int i; struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBattler][4]; @@ -9109,9 +9107,9 @@ static void atk5E_8025A70(void) static void atk5F_8025B24(void) { - gActiveBattler = gBankAttacker; - gBankAttacker = gBankTarget; - gBankTarget = gActiveBattler; + gActiveBattler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = gActiveBattler; //what is xor... if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -9122,7 +9120,7 @@ static void atk5F_8025B24(void) static void atk60_incrementgamestat(void) { - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) { IncrementGameStat(T2_READ_8(gBattlescriptCurrInstr + 1)); } @@ -9134,7 +9132,7 @@ static void atk61_drawpartystatussummary(void) int i; struct Pokemon* party; struct HpAndStatus hpStatus[6]; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); @@ -9156,16 +9154,16 @@ static void atk61_drawpartystatussummary(void) hpStatus[i].status = GetMonData(&party[i], MON_DATA_STATUS); } } - EmitDrawPartyStatusSummary(0, hpStatus, 1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk62_08025C6C(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - Emitcmd49(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHidePartyStatusSummary(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -9180,13 +9178,13 @@ static void atk63_jumptorandomattack(void) static void atk64_statusanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 2; } @@ -9194,15 +9192,15 @@ static void atk64_statusanimation(void) static void atk65_status2animation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u32 possible_to_anim; gActiveBattler = GetBattleBank(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)) { - EmitStatusAnimation(0, 1, gBattleMons[gActiveBattler].status2 & possible_to_anim); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, 1, gBattleMons[gActiveBattler].status2 & possible_to_anim); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 6; } @@ -9210,15 +9208,15 @@ static void atk65_status2animation(void) static void atk66_chosenstatusanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u32 status; gActiveBattler = GetBattleBank(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)) { - EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 7; } @@ -9279,40 +9277,40 @@ 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; - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } - if (gSpecialStatuses[gBankTarget].focusBanded) + if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -9325,8 +9323,8 @@ void atk6A_removeitem(void) USED_HELD_ITEMS(gActiveBattler) = gBattleMons[gActiveBattler].item; gBattleMons[gActiveBattler].item = 0; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -9334,8 +9332,8 @@ static void atk6B_atknameinbuff1(void) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 7; - gBattleTextBuff1[2] = gBankAttacker; - gBattleTextBuff1[3] = gBattlerPartyIndexes[gBankAttacker]; + gBattleTextBuff1[2] = gBattlerAttacker; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattlerAttacker]; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr++; } @@ -9774,15 +9772,15 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBattlerAtPosition(0); + gBattlerAttacker = GetBattlerAtPosition(0); gBattlescriptCurrInstr++; } static void atk6F_makevisible(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSpriteInvisibility(0, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -9869,8 +9867,8 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { - gBankInMenu = gBankAttacker; - PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBankAttacker], 0, 1); + gBankInMenu = gBattlerAttacker; + PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1); gBattlescriptCurrInstr += 1; } @@ -9885,19 +9883,19 @@ static void atk76_various(void) case 1: { u8 side; - gBankAttacker = gBankTarget; - side = GetBattlerSide(gBankAttacker) ^ 1; + gBattlerAttacker = gBattlerTarget; + side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) - gBankTarget = gSideTimers[side].followmeTarget; + gBattlerTarget = gSideTimers[side].followmeTarget; else - gBankTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; } break; case 2: gBattleCommunication[0] = CanRunFromBattle(); break; case 3: - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); break; case 4: if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) @@ -9906,7 +9904,7 @@ static void atk76_various(void) gBattleCommunication[0] = 0; break; case 5: - gSpecialStatuses[gActiveBattler].intimidatedPoke = 0; + gSpecialStatuses[gActiveBattler].intimidatedMon = 0; gSpecialStatuses[gActiveBattler].traced = 0; break; case 6: @@ -9943,30 +9941,30 @@ static void atk76_various(void) static void atk77_setprotectlike(void) //protect and endure { bool8 not_last_turn = 1; - u16 last_move = gUnknown_02024C4C[gBankAttacker]; + u16 last_move = gUnknown_02024C4C[gBattlerAttacker]; if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE) - gDisableStructs[gBankAttacker].protectUses = 0; + gDisableStructs[gBattlerAttacker].protectUses = 0; if (gCurrentTurnActionNumber == (gBattlersCount - 1)) not_last_turn = 0; - if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] > Random() && not_last_turn) + if (sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] > Random() && not_last_turn) { if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) { - gProtectStructs[gBankAttacker].protected = 1; + gProtectStructs[gBattlerAttacker].protected = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) //what is else if { - gProtectStructs[gBankAttacker].endured = 1; + gProtectStructs[gBattlerAttacker].endured = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - gDisableStructs[gBankAttacker].protectUses++; + gDisableStructs[gBattlerAttacker].protectUses++; } else { - gDisableStructs[gBankAttacker].protectUses = 0; + gDisableStructs[gBattlerAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gMoveResultFlags |= MOVE_RESULT_MISSED; } @@ -9976,48 +9974,48 @@ static void atk77_setprotectlike(void) //protect and endure static void atk78_faintifabilitynotdamp(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBattleMons[gBankTarget].ability == ABILITY_DAMP) + if (gBattleMons[gBattlerTarget].ability == ABILITY_DAMP) break; } - if (gBankTarget == gBattlersCount) + if (gBattlerTarget == gBattlersCount) { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; - EmitHealthBarUpdate(0, 0x7FFF); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, 0x7FFF); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } } else { gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(gBankTarget, gBattleMons[gBankTarget].ability); + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } static void atk79_setatkhptozero(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; gBattleMons[gActiveBattler].hp = 0; - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } @@ -10028,15 +10026,15 @@ static void atk7A_jumpifnexttargetvalid(void) //used by intimidate to loop throu if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (gBankTarget++; ; gBankTarget++) + for (gBattlerTarget++; ; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } - if (gBankTarget >= gBattlersCount) + if (gBattlerTarget >= gBattlersCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jump_loc; @@ -10050,14 +10048,14 @@ static void atk7B_tryhealhalfhealth(void) u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); if (T2_READ_8(gBattlescriptCurrInstr + 5) == 1) - gBankTarget = gBankAttacker; + gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = fail_loc; else gBattlescriptCurrInstr += 6; @@ -10065,15 +10063,15 @@ static void atk7B_tryhealhalfhealth(void) static void atk7C_trymirrormove(void) { - u16 r7 = ewram160ACarr2(0, gBankAttacker) | (ewram160ACarr2(1, gBankAttacker) << 8); - u16 r6 = ewram16100arr2(0, gBankAttacker) | (ewram16100arr2(1, gBankAttacker) << 8); - u16 r5 = ewram16100arr2(2, gBankAttacker) | (ewram16100arr2(3, gBankAttacker) << 8); + u16 r7 = ewram160ACarr2(0, gBattlerAttacker) | (ewram160ACarr2(1, gBattlerAttacker) << 8); + u16 r6 = ewram16100arr2(0, gBattlerAttacker) | (ewram16100arr2(1, gBattlerAttacker) << 8); + u16 r5 = ewram16100arr2(2, gBattlerAttacker) | (ewram16100arr2(3, gBattlerAttacker) << 8); if (r7 != 0 && r7 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r7; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r6 != 0 && r5 != 0 && r6 != 0xFFFF && r5 != 0xFFFF) @@ -10083,26 +10081,26 @@ static void atk7C_trymirrormove(void) gCurrentMove = r6; else gCurrentMove = r5; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r6 != 0 && r6 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r6; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r5 != 0 && r5 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r5; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr++; } } @@ -10125,15 +10123,15 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_REFLECT) + if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].reflectTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_REFLECT; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].reflectTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else @@ -10144,20 +10142,20 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS) + else if (gBattleMons[gBattlerTarget].type1 == TYPE_GRASS || gBattleMons[gBattlerTarget].type2 == TYPE_GRASS) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else { - gStatuses3[gBankTarget] |= gBankAttacker; - gStatuses3[gBankTarget] |= STATUS3_LEECHSEED; + gStatuses3[gBattlerTarget] |= gBattlerAttacker; + gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -10175,8 +10173,8 @@ static void atk80_manipulatedamage(void) gBattleMoveDamage /= 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gBankTarget].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; break; case 2: gBattleMoveDamage *= 2; @@ -10189,20 +10187,20 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - gActiveBattler = gBankTarget = gBankAttacker; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + gActiveBattler = gBattlerTarget = gBattlerAttacker; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP * (-1); + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = fail_loc; else { - if (gBattleMons[gBankTarget].status1 & ((u8)(~STATUS_SLEEP))) + if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS_SLEEP))) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gBankTarget].status1 = 3; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattlerTarget].status1 = 3; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } } @@ -10211,7 +10209,7 @@ static void atk82_jumpifnotfirstturn(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].isFirstTurn) + if (gDisableStructs[gBattlerAttacker].isFirstTurn) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jump_loc; @@ -10230,9 +10228,9 @@ bool8 UproarWakeUpCheck(u8 bank) if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) //wtf gamefreak, you should check this only once, not every time in a loop... continue; gBattleStruct->scriptingActive = i; - if (gBankTarget == 0xFF) - gBankTarget = i; - else if (gBankTarget == i) + if (gBattlerTarget == 0xFF) + gBattlerTarget = i; + else if (gBattlerTarget == i) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -10247,14 +10245,14 @@ bool8 UproarWakeUpCheck(u8 bank) static void atk84_jumpifcantmakeasleep(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (UproarWakeUpCheck(gBankTarget)) + if (UproarWakeUpCheck(gBattlerTarget)) gBattlescriptCurrInstr = jump_loc; - else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT) + else if (gBattleMons[gBattlerTarget].ability == ABILITY_INSOMNIA || gBattleMons[gBattlerTarget].ability == ABILITY_VITAL_SPIRIT) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattlescriptCurrInstr = jump_loc; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -10264,19 +10262,19 @@ static void atk84_jumpifcantmakeasleep(void) static void atk85_stockpile(void) { - if (gDisableStructs[gBankAttacker].stockpileCounter == 3) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 3) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gDisableStructs[gBankAttacker].stockpileCounter++; + gDisableStructs[gBattlerAttacker].stockpileCounter++; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 1; gBattleTextBuff1[2] = 1; gBattleTextBuff1[3] = 1; - gBattleTextBuff1[4] = gDisableStructs[gBankAttacker].stockpileCounter; + gBattleTextBuff1[4] = gDisableStructs[gBattlerAttacker].stockpileCounter; gBattleTextBuff1[5] = 0xFF; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -10286,7 +10284,7 @@ static void atk85_stockpile(void) static void atk86_stockpiletobasedamage(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jump_loc; } @@ -10294,16 +10292,16 @@ static void atk86_stockpiletobasedamage(void) { if (gBattleCommunication[6] != 1) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, - 0, gBankAttacker, gBankTarget) - * gDisableStructs[gBankAttacker].stockpileCounter; - gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, + gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0, + 0, gBattlerAttacker, gBattlerTarget) + * gDisableStructs[gBattlerAttacker].stockpileCounter; + gBattleStruct->animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; } - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; } } @@ -10311,28 +10309,28 @@ static void atk86_stockpiletobasedamage(void) static void atk87_stockpiletohpheal(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jump_loc; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } - else if (gBattleMons[gBankAttacker].maxHP == gBattleMons[gBankAttacker].hp) + else if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp) { - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jump_loc; - gBankTarget = gBankAttacker; + gBattlerTarget = gBattlerAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / (1 << (3 - gDisableStructs[gBankAttacker].stockpileCounter)); + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / (1 << (3 - gDisableStructs[gBattlerAttacker].stockpileCounter)); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter; - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gBattleStruct->animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; - gBankTarget = gBankAttacker; + gBattlerTarget = gBattlerAttacker; } } @@ -10351,9 +10349,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) u32 index; if (flags & MOVE_EFFECT_AFFECTS_USER) - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; else - gActiveBattler = gBankTarget; + gActiveBattler = gBattlerTarget; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -10469,7 +10467,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } } @@ -10496,7 +10494,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } gBattleMons[gActiveBattler].statStages[statId] += statValue; @@ -10536,16 +10534,16 @@ static void atk8A_normalisebuffs(void) //haze static void atk8B_setbide(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBankAttacker] = gCurrentMove; - gTakenDmg[gBankAttacker] = 0; - gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattlerAttacker] = gCurrentMove; + gTakenDmg[gBattlerAttacker] = 0; + gBattleMons[gBattlerAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns gBattlescriptCurrInstr++; } static void atk8C_confuseifrepeatingattackends(void) { - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE)) gBattleCommunication[MOVE_EFFECT_BYTE] = 0x75; gBattlescriptCurrInstr++; } @@ -10578,19 +10576,19 @@ static void atk8E_initmultihitstring(void) static bool8 sub_80264C0(void) { - if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) { - ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; + ewram16064arr(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } else { u16 random = Random() & 0xFF; - if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4)) + if ((u32)((random * (gBattleMons[gBattlerAttacker].level + gBattleMons[gBattlerTarget].level) >> 8) + 1) <= (gBattleMons[gBattlerTarget].level / 4)) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return 0; } - ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; + ewram16064arr(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return 1; @@ -10604,7 +10602,7 @@ static void atk8F_forcerandomswitch(void) struct Pokemon* party; u8 valid; u8 val; - if (!GetBattlerSide(gBankTarget)) + if (!GetBattlerSide(gBattlerTarget)) party = gPlayerParty; else party = gEnemyParty; @@ -10613,7 +10611,7 @@ static void atk8F_forcerandomswitch(void) { valid = 0; val = 0; - if (sub_803FBFC(sub_803FC34(gBankTarget)) == 1) + if (sub_803FBFC(sub_803FC34(gBattlerTarget)) == 1) val = 3; for (i = val; i < val + 3; i++) { @@ -10648,11 +10646,11 @@ static void atk8F_forcerandomswitch(void) do { val = Random() % 3; - if (sub_803FBFC(sub_803FC34(gBankTarget)) == 1) + if (sub_803FBFC(sub_803FC34(gBattlerTarget)) == 1) i = val + 3; else i = val; - } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBattlerTarget] || i == gBattlerPartyIndexes[gBattlerTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { @@ -10661,21 +10659,21 @@ static void atk8F_forcerandomswitch(void) do { i = Random() % 6; - } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBattlerTarget] || i == gBattlerPartyIndexes[gBattlerTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { do { i = Random() % 6; - } while (i == gBattlerPartyIndexes[gBankTarget] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBattlerTarget] || !MON_CAN_BATTLE(&party[i])); } } - ewram16068arr(gBankTarget) = i; + ewram16068arr(gBattlerTarget) = i; if (!IsLinkDoubleBattle()) - sub_8012258(gBankTarget); - sub_8094B6C(gBankTarget, i, 0); - sub_8094B6C(gBankTarget ^ 2, i, 1); + sub_8012258(gBattlerTarget); + sub_8094B6C(gBattlerTarget, i, 0); + sub_8094B6C(gBattlerTarget ^ 2, i, 1); #undef MON_CAN_BATTLE } } @@ -10693,22 +10691,22 @@ static void atk90_tryconversiontypechange(void) u8 move_type; while (valid_moves < 4) { - if (gBattleMons[gBankAttacker].moves[valid_moves] == 0) + if (gBattleMons[gBattlerAttacker].moves[valid_moves] == 0) break; valid_moves++; } for (checked_move = 0; checked_move < valid_moves; checked_move++) { - move_type = gBattleMoves[gBattleMons[gBankAttacker].moves[checked_move]].type; + move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type; if (move_type == TYPE_MYSTERY) { - if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST) move_type = TYPE_GHOST; else move_type = TYPE_NORMAL; } - if (move_type != gBattleMons[gBankAttacker].type1 && move_type != gBattleMons[gBankAttacker].type2) + if (move_type != gBattleMons[gBattlerAttacker].type1 && move_type != gBattleMons[gBattlerAttacker].type2) break; } @@ -10723,18 +10721,18 @@ static void atk90_tryconversiontypechange(void) while ((checked_move = Random() & 3) >= valid_moves); - move_type = gBattleMoves[gBattleMons[gBankAttacker].moves[checked_move]].type; + move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type; if (move_type == TYPE_MYSTERY) { - if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST) move_type = TYPE_GHOST; else move_type = TYPE_NORMAL; } - } while (move_type == gBattleMons[gBankAttacker].type1 || move_type == gBattleMons[gBankAttacker].type2); + } while (move_type == gBattleMons[gBattlerAttacker].type1 || move_type == gBattleMons[gBattlerAttacker].type2); - gBattleMons[gBankAttacker].type1 = move_type; - gBattleMons[gBankAttacker].type2 = move_type; + gBattleMons[gBattlerAttacker].type1 = move_type; + gBattleMons[gBattlerAttacker].type2 = move_type; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; @@ -10766,15 +10764,15 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) + if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].lightscreenTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].lightscreenTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else @@ -10786,42 +10784,42 @@ static void atk92_setlightscreen(void) #ifdef NOTMATCHING static void atk93_tryKO(void) { - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].ability == ABILITY_STURDY) + if (gBattleMons[gBattlerTarget].ability == ABILITY_STURDY) { gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = x; - RecordAbilityBattle(gBankTarget, ABILITY_STURDY); + RecordAbilityBattle(gBattlerTarget, ABILITY_STURDY); return; } - if (!(gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS)) + if (!(gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS)) { - u16 to_cmp = gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level + gBattleMoves[gCurrentMove].accuracy; - if (Random() % 0x64 + 1 < to_cmp || gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + u16 to_cmp = gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level + gBattleMoves[gCurrentMove].accuracy; + if (Random() % 0x64 + 1 < to_cmp || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) { goto MOVE_RESULT_MISSED_LABEL; } } else { - if (gDisableStructs[gBankTarget].bankWithSureHit != gBankAttacker || gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + if (gDisableStructs[gBattlerTarget].bankWithSureHit != gBattlerAttacker || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) { } @@ -10829,7 +10827,7 @@ static void atk93_tryKO(void) MOVE_RESULT_MISSED_LABEL: gBattleTypeFlags |= MOVE_RESULT_MISSED; - if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10847,7 +10845,7 @@ static void atk93_tryKO(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r7, _08026BA8 @ =gBattleMons\n\ - ldr r6, _08026BAC @ =gBankTarget\n\ + ldr r6, _08026BAC @ =gBattlerTarget\n\ ldrb r2, [r6]\n\ movs r5, 0x58\n\ adds r0, r2, 0\n\ @@ -10866,7 +10864,7 @@ static void atk93_tryKO(void) b _08026BCE\n\ .align 2, 0\n\ _08026BA8: .4byte gBattleMons\n\ -_08026BAC: .4byte gBankTarget\n\ +_08026BAC: .4byte gBattlerTarget\n\ _08026BB0: .4byte gEnigmaBerries\n\ _08026BB4:\n\ ldrh r0, [r1, 0x2E]\n\ @@ -10881,8 +10879,8 @@ _08026BB4:\n\ lsls r0, 24\n\ lsrs r6, r0, 24\n\ _08026BCE:\n\ - ldr r1, _08026C4C @ =gStringBank\n\ - ldr r5, _08026C50 @ =gBankTarget\n\ + ldr r1, _08026C4C @ =gPotentialItemEffectBattler\n\ + ldr r5, _08026C50 @ =gBattlerTarget\n\ ldrb r0, [r5]\n\ strb r0, [r1]\n\ cmp r4, 0x27\n\ @@ -10912,7 +10910,7 @@ _08026BCE:\n\ _08026C0C:\n\ ldr r0, _08026C58 @ =gBattleMons\n\ mov r8, r0\n\ - ldr r1, _08026C50 @ =gBankTarget\n\ + ldr r1, _08026C50 @ =gBattlerTarget\n\ ldrb r2, [r1]\n\ movs r6, 0x58\n\ adds r0, r2, 0\n\ @@ -10935,14 +10933,14 @@ _08026C0C:\n\ ldr r1, _08026C64 @ =gBattlescriptCurrInstr\n\ ldr r0, _08026C68 @ =BattleScript_SturdyPreventsOHKO\n\ str r0, [r1]\n\ - ldr r1, _08026C50 @ =gBankTarget\n\ + ldr r1, _08026C50 @ =gBattlerTarget\n\ ldrb r0, [r1]\n\ movs r1, 0x5\n\ bl RecordAbilityBattle\n\ b _08026E40\n\ .align 2, 0\n\ -_08026C4C: .4byte gStringBank\n\ -_08026C50: .4byte gBankTarget\n\ +_08026C4C: .4byte gPotentialItemEffectBattler\n\ +_08026C50: .4byte gBattlerTarget\n\ _08026C54: .4byte gSpecialStatuses\n\ _08026C58: .4byte gBattleMons\n\ _08026C5C: .4byte gMoveResultFlags\n\ @@ -10965,7 +10963,7 @@ _08026C6C:\n\ adds r2, r0\n\ lsls r2, 2\n\ adds r2, r1\n\ - ldr r7, _08026CEC @ =gBankAttacker\n\ + ldr r7, _08026CEC @ =gBattlerAttacker\n\ ldrb r0, [r7]\n\ muls r0, r6\n\ add r0, r10\n\ @@ -10994,7 +10992,7 @@ _08026C6C:\n\ muls r1, r6\n\ add r1, r10\n\ adds r1, 0x2A\n\ - ldr r2, _08026CF0 @ =gBankTarget\n\ + ldr r2, _08026CF0 @ =gBattlerTarget\n\ ldrb r0, [r2]\n\ muls r0, r6\n\ add r0, r10\n\ @@ -11011,15 +11009,15 @@ _08026CDC:\n\ _08026CE0: .4byte gStatuses3\n\ _08026CE4: .4byte gBattleMoves\n\ _08026CE8: .4byte gCurrentMove\n\ -_08026CEC: .4byte gBankAttacker\n\ -_08026CF0: .4byte gBankTarget\n\ +_08026CEC: .4byte gBattlerAttacker\n\ +_08026CF0: .4byte gBattlerTarget\n\ _08026CF4:\n\ ldr r0, _08026D4C @ =gDisableStructs\n\ lsls r1, r2, 3\n\ subs r1, r2\n\ lsls r1, 2\n\ adds r1, r0\n\ - ldr r2, _08026D50 @ =gBankAttacker\n\ + ldr r2, _08026D50 @ =gBattlerAttacker\n\ ldrb r0, [r1, 0x15]\n\ movs r4, 0\n\ ldrb r3, [r2]\n\ @@ -11040,7 +11038,7 @@ _08026D20:\n\ cmp r4, 0\n\ beq _08026DE0\n\ ldr r0, _08026D54 @ =gProtectStructs\n\ - ldr r1, _08026D58 @ =gBankTarget\n\ + ldr r1, _08026D58 @ =gBattlerTarget\n\ ldrb r2, [r1]\n\ lsls r1, r2, 4\n\ adds r1, r0\n\ @@ -11061,9 +11059,9 @@ _08026D20:\n\ b _08026DC6\n\ .align 2, 0\n\ _08026D4C: .4byte gDisableStructs\n\ -_08026D50: .4byte gBankAttacker\n\ +_08026D50: .4byte gBattlerAttacker\n\ _08026D54: .4byte gProtectStructs\n\ -_08026D58: .4byte gBankTarget\n\ +_08026D58: .4byte gBattlerTarget\n\ _08026D5C: .4byte gBattleMoveDamage\n\ _08026D60: .4byte gMoveResultFlags\n\ _08026D64:\n\ @@ -11090,7 +11088,7 @@ _08026D64:\n\ orrs r0, r1\n\ strb r0, [r2]\n\ ldr r1, _08026DAC @ =gLastUsedItem\n\ - ldr r2, _08026DB0 @ =gBankTarget\n\ + ldr r2, _08026DB0 @ =gBattlerTarget\n\ ldrb r0, [r2]\n\ muls r0, r3\n\ add r0, r10\n\ @@ -11102,7 +11100,7 @@ _08026DA0: .4byte gSpecialStatuses\n\ _08026DA4: .4byte gBattleMoveDamage\n\ _08026DA8: .4byte gMoveResultFlags\n\ _08026DAC: .4byte gLastUsedItem\n\ -_08026DB0: .4byte gBankTarget\n\ +_08026DB0: .4byte gBattlerTarget\n\ _08026DB4:\n\ ldr r1, _08026DD4 @ =gBattleMoveDamage\n\ movs r0, 0x58\n\ @@ -11132,14 +11130,14 @@ _08026DE0:\n\ movs r1, 0x1\n\ orrs r0, r1\n\ strb r0, [r2]\n\ - ldr r0, _08026E14 @ =gBankAttacker\n\ + ldr r0, _08026E14 @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ movs r2, 0x58\n\ adds r1, r0, 0\n\ muls r1, r2\n\ add r1, r10\n\ adds r1, 0x2A\n\ - ldr r3, _08026E18 @ =gBankTarget\n\ + ldr r3, _08026E18 @ =gBattlerTarget\n\ ldrb r0, [r3]\n\ muls r0, r2\n\ add r0, r10\n\ @@ -11153,8 +11151,8 @@ _08026DE0:\n\ b _08026E24\n\ .align 2, 0\n\ _08026E10: .4byte gMoveResultFlags\n\ -_08026E14: .4byte gBankAttacker\n\ -_08026E18: .4byte gBankTarget\n\ +_08026E14: .4byte gBattlerAttacker\n\ +_08026E18: .4byte gBattlerTarget\n\ _08026E1C: .4byte gBattleCommunication\n\ _08026E20:\n\ ldr r1, _08026E50 @ =gBattleCommunication\n\ @@ -11191,7 +11189,7 @@ _08026E54: .4byte gBattlescriptCurrInstr\n\ static void atk94_damagetohalftargethp(void) //super fang { - gBattleMoveDamage = gBattleMons[gBankTarget].hp / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattlescriptCurrInstr++; @@ -11219,11 +11217,11 @@ static void atk96_weatherdamage(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - if (gBattleMons[gBankAttacker].type1 != TYPE_ROCK && gBattleMons[gBankAttacker].type1 != TYPE_STEEL && gBattleMons[gBankAttacker].type1 != TYPE_GROUND - && gBattleMons[gBankAttacker].type2 != TYPE_ROCK && gBattleMons[gBankAttacker].type2 != TYPE_STEEL && gBattleMons[gBankAttacker].type2 != TYPE_GROUND - && gBattleMons[gBankAttacker].ability != ABILITY_SAND_VEIL && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattlerAttacker].type1 != TYPE_ROCK && gBattleMons[gBattlerAttacker].type1 != TYPE_STEEL && gBattleMons[gBattlerAttacker].type1 != TYPE_GROUND + && gBattleMons[gBattlerAttacker].type2 != TYPE_ROCK && gBattleMons[gBattlerAttacker].type2 != TYPE_STEEL && gBattleMons[gBattlerAttacker].type2 != TYPE_GROUND + && gBattleMons[gBattlerAttacker].ability != ABILITY_SAND_VEIL && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -11234,9 +11232,9 @@ static void atk96_weatherdamage(void) } if (gBattleWeather & WEATHER_HAIL) { - if (gBattleMons[gBankAttacker].type1 != TYPE_ICE && gBattleMons[gBankAttacker].type2 != TYPE_ICE && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattlerAttacker].type1 != TYPE_ICE && gBattleMons[gBattlerAttacker].type2 != TYPE_ICE && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -11249,7 +11247,7 @@ static void atk96_weatherdamage(void) else gBattleMoveDamage = 0; - if (gAbsentBattlerFlags & gBitTable[gBankAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -11260,15 +11258,15 @@ static void atk97_tryinfatuating(void) struct Pokemon *attacker, *target; u16 atk_species, def_species; u32 atk_pid, def_pid; - if (!GetBattlerSide(gBankAttacker)) - attacker = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; + if (!GetBattlerSide(gBattlerAttacker)) + attacker = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else - attacker = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; + attacker = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]]; - if (!GetBattlerSide(gBankTarget)) - target = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; + if (!GetBattlerSide(gBattlerTarget)) + target = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else - target = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; + target = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]; atk_species = GetMonData(attacker, MON_DATA_SPECIES); atk_pid = GetMonData(attacker, MON_DATA_PERSONALITY); @@ -11276,23 +11274,23 @@ static void atk97_tryinfatuating(void) def_species = GetMonData(target, MON_DATA_SPECIES); def_pid = GetMonData(target, MON_DATA_PERSONALITY); - if (gBattleMons[gBankTarget].ability == ABILITY_OBLIVIOUS) + if (gBattleMons[gBattlerTarget].ability == ABILITY_OBLIVIOUS) { gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; gLastUsedAbility = ABILITY_OBLIVIOUS; - RecordAbilityBattle(gBankTarget, ABILITY_OBLIVIOUS); + RecordAbilityBattle(gBattlerTarget, ABILITY_OBLIVIOUS); } else { if (GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == GetGenderFromSpeciesAndPersonality(def_species, def_pid) - || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == 0xFF + || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE || gBattleMons[gBattlerTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == 0xFF || GetGenderFromSpeciesAndPersonality(def_species, def_pid) == 0xFF) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankTarget].status2 |= (gBitTable[gBankAttacker] << 16); + gBattleMons[gBattlerTarget].status2 |= (gBitTable[gBattlerAttacker] << 16); gBattlescriptCurrInstr += 5; } } @@ -11300,31 +11298,31 @@ static void atk97_tryinfatuating(void) static void atk98_updatestatusicon(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } else { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); } } gBattlescriptCurrInstr += 2; @@ -11333,15 +11331,15 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer) + if (gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer = 5; - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_MIST; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].mistTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -11349,14 +11347,14 @@ static void atk99_setmist(void) static void atk9A_setfocusenergy(void) { - if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMons[gBankAttacker].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -11366,7 +11364,7 @@ static void atk9B_transformdataexecution(void) { gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; - if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -11375,57 +11373,57 @@ static void atk9B_transformdataexecution(void) { u32 i; s32 j; u8 *atk_data, *def_data; - gBattleMons[gBankAttacker].status2 |= STATUS2_TRANSFORMED; - gDisableStructs[gBankAttacker].disabledMove = 0; - gDisableStructs[gBankAttacker].disableTimer1 = 0; - gDisableStructs[gBankAttacker].transformedMonPersonality = gBattleMons[gBankTarget].personality; - gDisableStructs[gBankAttacker].unk18_b = 0; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED; + gDisableStructs[gBattlerAttacker].disabledMove = 0; + gDisableStructs[gBattlerAttacker].disableTimer1 = 0; + gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality; + gDisableStructs[gBattlerAttacker].unk18_b = 0; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 6; - gBattleTextBuff1[2] = (gBattleMons[gBankTarget].species); - gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBankTarget].species); + gBattleTextBuff1[2] = (gBattleMons[gBattlerTarget].species); + gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBattlerTarget].species); gBattleTextBuff1[4] = 0xFF; - atk_data = (u8*)(&gBattleMons[gBankAttacker]); - def_data = (u8*)(&gBattleMons[gBankTarget]); + atk_data = (u8*)(&gBattleMons[gBattlerAttacker]); + def_data = (u8*)(&gBattleMons[gBattlerTarget]); for (i = 0; i < 0x24; i++) atk_data[i] = def_data[i]; for (j = 0; j < 4; j++) { - if (gBattleMoves[gBattleMons[gBankAttacker].moves[j]].pp < 5) - gBattleMons[gBankAttacker].pp[j] = gBattleMoves[gBattleMons[gBankAttacker].moves[j]].pp; + if (gBattleMoves[gBattleMons[gBattlerAttacker].moves[j]].pp < 5) + gBattleMons[gBattlerAttacker].pp[j] = gBattleMoves[gBattleMons[gBattlerAttacker].moves[j]].pp; else - gBattleMons[gBankAttacker].pp[j] = 5; + gBattleMons[gBattlerAttacker].pp[j] = 5; } - gActiveBattler = gBankAttacker; - EmitResetActionMoveSelection(0, 2); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitResetActionMoveSelection(0, 2); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 0; } } static void atk9C_setsubstitute(void) { - u32 hp = gBattleMons[gBankAttacker].maxHP / 4; - if (gBattleMons[gBankAttacker].maxHP / 4 == 0) + u32 hp = gBattleMons[gBattlerAttacker].maxHP / 4; + if (gBattleMons[gBattlerAttacker].maxHP / 4 == 0) hp = 1; - if (gBattleMons[gBankAttacker].hp <= hp) + if (gBattleMons[gBattlerAttacker].hp <= hp) { gBattleMoveDamage = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleMons[gBankAttacker].status2 |= STATUS2_SUBSTITUTE; - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gDisableStructs[gBankAttacker].substituteHP = gBattleMoveDamage; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE; + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); + gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -11442,8 +11440,8 @@ static bool8 IsMoveUncopyable(u16 move) static void atk9D_mimicattackcopy(void) { gChosenMove = 0xFFFF; - if (IsMoveUncopyable(gLastUsedMove[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gLastUsedMove[gBankTarget] == 0 || gLastUsedMove[gBankTarget] == 0xFFFF) + if (IsMoveUncopyable(gLastUsedMove[gBattlerTarget]) || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED + || gLastUsedMove[gBattlerTarget] == 0 || gLastUsedMove[gBattlerTarget] == 0xFFFF) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -11452,24 +11450,24 @@ static void atk9D_mimicattackcopy(void) int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gLastUsedMove[gBankTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gLastUsedMove[gBattlerTarget]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastUsedMove[gBankTarget]; - if (gBattleMoves[gLastUsedMove[gBankTarget]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMove[gBankTarget]].pp; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastUsedMove[gBattlerTarget]; + if (gBattleMoves[gLastUsedMove[gBattlerTarget]].pp < 5) + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMove[gBattlerTarget]].pp; else - gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 5; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gLastUsedMove[gBankTarget]; - gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBankTarget]); + gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget]; + gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBattlerTarget]); gBattleTextBuff1[4] = 0xFF; - gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; } else @@ -11485,7 +11483,7 @@ static void atk9E_metronome(void) push {r4, r5, r6, r7, lr}\n\ mov r7, r8\n\ push {r7}\n\ - ldr r6, ._3076 @ gBankAttacker\n\ + ldr r6, ._3076 @ gBattlerAttacker\n\ ldrb r2, [r6]\n\ lsl r1, r2, #0x1\n\ ldr r0, ._3076 + 4 @ \n\ @@ -11528,7 +11526,7 @@ static void atk9E_metronome(void) ._3077:\n\ .align 2, 0\n\ ._3076:\n\ - .word gBankAttacker\n\ + .word gBattlerAttacker\n\ .word +0x20160b4\n\ .word gBattleMons\n\ .word gCurrentMove\n\ @@ -11642,7 +11640,7 @@ static void atk9E_metronome(void) ._3082:\n\ mov r1, #0x0\n\ bl GetMoveTarget\n\ - ldr r1, ._3090 + 36 @ gBankTarget\n\ + ldr r1, ._3090 + 36 @ gBattlerTarget\n\ strb r0, [r1]\n\ pop {r3}\n\ mov r8, r3\n\ @@ -11661,7 +11659,7 @@ static void atk9E_metronome(void) .word 0xfffffbff\n\ .word gBattleScriptsForMoveEffects\n\ .word gBattleMoves\n\ - .word gBankTarget"); + .word gBattlerTarget"); } #else #ifdef NONMATCHING @@ -11677,7 +11675,7 @@ static void atk9E_metronome(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); } #else @@ -11744,7 +11742,7 @@ _080278F8:\n\ ldrh r0, [r4]\n\ movs r1, 0\n\ bl GetMoveTarget\n\ - ldr r1, _0802795C @ =gBankTarget\n\ + ldr r1, _0802795C @ =gBattlerTarget\n\ strb r0, [r1]\n\ pop {r3}\n\ mov r8, r3\n\ @@ -11761,7 +11759,7 @@ _0802794C: .4byte gHitMarker\n\ _08027950: .4byte 0xfffffbff\n\ _08027954: .4byte gBattleScriptsForMoveEffects\n\ _08027958: .4byte gBattleMoves\n\ -_0802795C: .4byte gBankTarget\n\ +_0802795C: .4byte gBattlerTarget\n\ .syntax divided"); } #endif // NONMATCHING @@ -11769,7 +11767,7 @@ _0802795C: .4byte gBankTarget\n\ static void atk9F_dmgtolevel(void) { - gBattleMoveDamage = gBattleMons[gBankAttacker].level; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level; gBattlescriptCurrInstr++; } @@ -11778,46 +11776,46 @@ static void atkA0_psywavedamageeffect(void) s32 rand_dmg; while ((rand_dmg = (Random() & 0xF)) > 0xA); rand_dmg *= 10; - gBattleMoveDamage = gBattleMons[gBankAttacker].level * (rand_dmg + 50) / 100; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (rand_dmg + 50) / 100; gBattlescriptCurrInstr++; } static void atkA1_counterdamagecalculator(void) { - u8 atk_side = GetBattlerSide(gBankAttacker); - u8 def_side = GetBattlerSide(gProtectStructs[gBankAttacker].physicalBank); - if (gProtectStructs[gBankAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp) + u8 atk_side = GetBattlerSide(gBattlerAttacker); + u8 def_side = GetBattlerSide(gProtectStructs[gBattlerAttacker].physicalBattlerId); + if (gProtectStructs[gBattlerAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBattlerAttacker].physicalBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 2; if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp) - gBankTarget = gSideTimers[def_side].followmeTarget; + gBattlerTarget = gSideTimers[def_side].followmeTarget; else - gBankTarget = gProtectStructs[gBankAttacker].physicalBank; + gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBattlerId; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the physical -> special field changes { - u8 atk_side = GetBattlerSide(gBankAttacker); - u8 def_side = GetBattlerSide(gProtectStructs[gBankAttacker].specialBank); - if (gProtectStructs[gBankAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp) + u8 atk_side = GetBattlerSide(gBattlerAttacker); + u8 def_side = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBattlerId); + if (gProtectStructs[gBattlerAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBattlerAttacker].specialBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 2; if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp) - gBankTarget = gSideTimers[def_side].followmeTarget; + gBattlerTarget = gSideTimers[def_side].followmeTarget; else - gBankTarget = gProtectStructs[gBankAttacker].specialBank; + gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBattlerId; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } @@ -11827,20 +11825,20 @@ static void atkA3_disablelastusedattack(void) int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMove[gBankTarget]) + if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget]) break; } - if (gDisableStructs[gBankTarget].disabledMove == 0 && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + if (gDisableStructs[gBattlerTarget].disabledMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gBattleMons[gBankTarget].moves[i]; - gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBankTarget].moves[i]); + gBattleTextBuff1[2] = gBattleMons[gBattlerTarget].moves[i]; + gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBattlerTarget].moves[i]); gBattleTextBuff1[4] = 0xFF; - gDisableStructs[gBankTarget].disabledMove = gBattleMons[gBankTarget].moves[i]; - gDisableStructs[gBankTarget].disableTimer1 = (Random() & 3) + 2; - gDisableStructs[gBankTarget].disableTimer2 = gDisableStructs[gBankTarget].disableTimer1; //that's interesting + gDisableStructs[gBattlerTarget].disabledMove = gBattleMons[gBattlerTarget].moves[i]; + gDisableStructs[gBattlerTarget].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBattlerTarget].disableTimer2 = gDisableStructs[gBattlerTarget].disableTimer1; //that's interesting gBattlescriptCurrInstr += 5; } else @@ -11854,17 +11852,17 @@ static void atkA4_trysetencore(void) int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMove[gBankTarget]) + if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget]) break; } - if (gLastUsedMove[gBankTarget] == MOVE_STRUGGLE || gLastUsedMove[gBankTarget] == MOVE_ENCORE || gLastUsedMove[gBankTarget] == MOVE_MIRROR_MOVE) + if (gLastUsedMove[gBattlerTarget] == MOVE_STRUGGLE || gLastUsedMove[gBattlerTarget] == MOVE_ENCORE || gLastUsedMove[gBattlerTarget] == MOVE_MIRROR_MOVE) i = 4; - if (gDisableStructs[gBankTarget].encoredMove == 0 && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + if (gDisableStructs[gBattlerTarget].encoredMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0) { - gDisableStructs[gBankTarget].encoredMove = gBattleMons[gBankTarget].moves[i]; - gDisableStructs[gBankTarget].encoredMovePos = i; - gDisableStructs[gBankTarget].encoreTimer1 = (Random() & 3) + 3; - gDisableStructs[gBankTarget].encoreTimer2 = gDisableStructs[gBankTarget].encoreTimer1; + gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i]; + gDisableStructs[gBattlerTarget].encoredMovePos = i; + gDisableStructs[gBattlerTarget].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBattlerTarget].encoreTimer2 = gDisableStructs[gBattlerTarget].encoreTimer1; gBattlescriptCurrInstr += 5; } else @@ -11875,17 +11873,17 @@ static void atkA4_trysetencore(void) static void atkA5_painsplitdmgcalc(void) { - if (!(gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)) + if (!(gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)) { - s32 hp_diff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankTarget].hp) / 2; - s32 to_store = gBattleMoveDamage = gBattleMons[gBankTarget].hp - hp_diff; + s32 hp_diff = (gBattleMons[gBattlerAttacker].hp + gBattleMons[gBattlerTarget].hp) / 2; + s32 to_store = gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - hp_diff; gBattleStruct->unk16014 = sBYTE0_32(to_store); gBattleStruct->unk16015 = sBYTE1_32(to_store); gBattleStruct->unk16016 = sBYTE2_32(to_store); gBattleStruct->unk16017 = sBYTE3_32(to_store); - gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hp_diff; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hp_diff; + gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; gBattlescriptCurrInstr += 5; } @@ -11896,7 +11894,7 @@ static void atkA5_painsplitdmgcalc(void) #ifdef NONMATCHING static void atkA6_settypetorandomresistance(void) { - if (gLastLandedMoves[gBankAttacker] == 0 || gLastLandedMoves[gBankAttacker] == 0xFFFF || (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker]) && !gProtectStructs[gBankAttacker].physicalDmg && !gProtectStructs[gBankAttacker].specialDmg)) + if (gLastLandedMoves[gBattlerAttacker] == 0 || gLastLandedMoves[gBattlerAttacker] == 0xFFFF || (IsTwoTurnsMove(gLastLandedMoves[gBattlerAttacker]) && !gProtectStructs[gBattlerAttacker].physicalDmg && !gProtectStructs[gBattlerAttacker].specialDmg)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -11905,10 +11903,10 @@ static void atkA6_settypetorandomresistance(void) { while (((type = (Random() & 0x7F)) > 0x70)); type *= 3; - if (gTypeEffectiveness[type] == gLastHitByType[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1]) + if (gTypeEffectiveness[type] == gLastHitByType[gBattlerAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBattlerAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBattlerAttacker].type2 != gTypeEffectiveness[type + 1]) { - gBattleMons[gBankAttacker].type1 = type; - gBattleMons[gBankAttacker].type2 = type; + gBattleMons[gBattlerAttacker].type1 = type; + gBattleMons[gBattlerAttacker].type2 = type; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; gBattleTextBuff1[2] = type; @@ -11924,10 +11922,10 @@ static void atkA6_settypetorandomresistance(void) { if (gTypeEffectiveness[type] == 0xFE || gTypeEffectiveness[type] != 0xFF) { - if (gTypeEffectiveness[type] == gLastHitByType[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1]) + if (gTypeEffectiveness[type] == gLastHitByType[gBattlerAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBattlerAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBattlerAttacker].type2 != gTypeEffectiveness[type + 1]) { - gBattleMons[gBankAttacker].type1 = gTypeEffectiveness[rands + 1]; - gBattleMons[gBankAttacker].type2 = gTypeEffectiveness[rands + 1]; + gBattleMons[gBattlerAttacker].type1 = gTypeEffectiveness[rands + 1]; + gBattleMons[gBattlerAttacker].type2 = gTypeEffectiveness[rands + 1]; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; gBattleTextBuff1[2] = gTypeEffectiveness[rands + 1]; @@ -11954,7 +11952,7 @@ static void atkA6_settypetorandomresistance(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r1, _08027FA8 @ =gLastLandedMoves\n\ - ldr r4, _08027FAC @ =gBankAttacker\n\ + ldr r4, _08027FAC @ =gBattlerAttacker\n\ ldrb r0, [r4]\n\ lsls r0, 1\n\ adds r2, r0, r1\n\ @@ -12000,7 +11998,7 @@ _08027F8C:\n\ b _08028110\n\ .align 2, 0\n\ _08027FA8: .4byte gLastLandedMoves\n\ -_08027FAC: .4byte gBankAttacker\n\ +_08027FAC: .4byte gBattlerAttacker\n\ _08027FB0: .4byte 0x0000ffff\n\ _08027FB4: .4byte gProtectStructs\n\ _08027FB8: .4byte gBattlescriptCurrInstr\n\ @@ -12072,7 +12070,7 @@ _0802802C:\n\ ldr r6, _08028120 @ =gTypeEffectiveness\n\ adds r3, r4, r6\n\ ldr r1, _08028124 @ =gLastHitByType\n\ - ldr r2, _08028128 @ =gBankAttacker\n\ + ldr r2, _08028128 @ =gBattlerAttacker\n\ ldrb r5, [r2]\n\ lsls r0, r5, 1\n\ adds r0, r1\n\ @@ -12190,7 +12188,7 @@ _08028110:\n\ .align 2, 0\n\ _08028120: .4byte gTypeEffectiveness\n\ _08028124: .4byte gLastHitByType\n\ -_08028128: .4byte gBankAttacker\n\ +_08028128: .4byte gBattlerAttacker\n\ _0802812C: .4byte gBattleMons\n\ _08028130: .4byte 0x000003e7\n\ _08028134: .4byte gBattlescriptCurrInstr\n\ @@ -12201,9 +12199,9 @@ _08028138: .4byte 0x0000014f\n\ static void atkA7_setalwayshitflag(void) { - gStatuses3[gBankTarget] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[gBankTarget] |= 0x10; - gDisableStructs[gBankTarget].bankWithSureHit = gBankAttacker; + gStatuses3[gBattlerTarget] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBattlerTarget] |= 0x10; + gDisableStructs[gBattlerTarget].bankWithSureHit = gBattlerAttacker; gBattlescriptCurrInstr++; } @@ -12217,14 +12215,14 @@ struct move_pp static void atkA8_copymovepermanently(void) { gChosenMove = 0xFFFF; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBankTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBankTarget] != 0 && gUnknown_02024C2C[gBankTarget] != 0xFFFF && gUnknown_02024C2C[gBankTarget] != MOVE_SKETCH) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBattlerTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBattlerTarget] != 0 && gUnknown_02024C2C[gBattlerTarget] != 0xFFFF && gUnknown_02024C2C[gBattlerTarget] != MOVE_SKETCH) { int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) + if (gBattleMons[gBattlerAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gUnknown_02024C2C[gBankTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gUnknown_02024C2C[gBattlerTarget]) break; } if (i != 4) //sketch fail @@ -12232,21 +12230,21 @@ static void atkA8_copymovepermanently(void) else //sketch worked { struct move_pp moves_data; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBankTarget]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBankTarget]].pp; - gActiveBattler = gBankAttacker; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBattlerTarget]; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBattlerTarget]].pp; + gActiveBattler = gBattlerAttacker; for (i = 0; i < 4; i++) { - moves_data.move[i] = gBattleMons[gBankAttacker].moves[i]; - moves_data.pp[i] = gBattleMons[gBankAttacker].pp[i]; + moves_data.move[i] = gBattleMons[gBattlerAttacker].moves[i]; + moves_data.pp[i] = gBattleMons[gBattlerAttacker].pp[i]; } - moves_data.ppBonuses = gBattleMons[gBankAttacker].ppBonuses; - EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); - MarkBufferBankForExecution(gActiveBattler); + moves_data.ppBonuses = gBattleMons[gBattlerAttacker].ppBonuses; + BtlController_EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); + MarkBattlerForControllerExec(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gUnknown_02024C2C[gBankTarget]; - gBattleTextBuff1[3] = gUnknown_02024C2C[gBankTarget] >> 8; + gBattleTextBuff1[2] = gUnknown_02024C2C[gBattlerTarget]; + gBattleTextBuff1[3] = gUnknown_02024C2C[gBattlerTarget] >> 8; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr += 5; } @@ -12294,11 +12292,11 @@ static void atkA9_trychoosesleeptalkmove(void) for (i = 0; i < 4; i++) { - if (IsMoveUnchoosable(gBattleMons[gBankAttacker].moves[i]) || gBattleMons[gBankAttacker].moves[i] == MOVE_FOCUS_PUNCH - || gBattleMons[gBankAttacker].moves[i] == MOVE_UPROAR || IsTwoTurnsMove(gBattleMons[gBankAttacker].moves[i])) + if (IsMoveUnchoosable(gBattleMons[gBattlerAttacker].moves[i]) || gBattleMons[gBattlerAttacker].moves[i] == MOVE_FOCUS_PUNCH + || gBattleMons[gBattlerAttacker].moves[i] == MOVE_UPROAR || IsTwoTurnsMove(gBattleMons[gBattlerAttacker].moves[i])) unusable_moves |= gBitTable[i]; } - unusable_moves = CheckMoveLimitations(gBankAttacker, unusable_moves, 0xFD); + unusable_moves = CheckMoveLimitations(gBattlerAttacker, unusable_moves, 0xFD); if (unusable_moves == 0xF) //all 4 moves cannot be chosen gBattlescriptCurrInstr += 5; else //at least one move can be chosen @@ -12309,25 +12307,25 @@ static void atkA9_trychoosesleeptalkmove(void) random_pos = Random() & 3; } while ((gBitTable[random_pos] & unusable_moves)); - gRandomMove = gBattleMons[gBankAttacker].moves[random_pos]; + gRandomMove = gBattleMons[gBattlerAttacker].moves[random_pos]; gCurrMovePos = random_pos; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } static void atkAA_setdestinybond(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } static void TrySetDestinyBondToHappen(void) { - u8 atk_side = GetBattlerSide(gBankAttacker); - u8 def_side = GetBattlerSide(gBankTarget); - if (gBattleMons[gBankTarget].status2 & STATUS2_DESTINY_BOND && atk_side != def_side && !(gHitMarker & HITMARKER_GRUDGE)) + u8 atk_side = GetBattlerSide(gBattlerAttacker); + u8 def_side = GetBattlerSide(gBattlerTarget); + if (gBattleMons[gBattlerTarget].status2 & STATUS2_DESTINY_BOND && atk_side != def_side && !(gHitMarker & HITMARKER_GRUDGE)) gHitMarker |= HITMARKER_DESTINYBOND; } @@ -12339,7 +12337,7 @@ static void atkAB_trysetdestinybondtohappen(void) static void atkAC_remaininghptopower(void) { - s32 hp_fraction = GetScaledHPFraction(gBattleMons[gBankAttacker].hp, gBattleMons[gBankAttacker].maxHP, 48); + s32 hp_fraction = GetScaledHPFraction(gBattleMons[gBattlerAttacker].hp, gBattleMons[gBattlerAttacker].maxHP, 48); int i; for (i = 0; i < 12; i += 2) { @@ -12352,24 +12350,24 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastUsedMove[gBankTarget] != 0 && gLastUsedMove[gBankTarget] != 0xFFFF && !(gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)) + if (gLastUsedMove[gBattlerTarget] != 0 && gLastUsedMove[gBattlerTarget] != 0xFFFF && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { int i; for (i = 0; i < 4; i++) { - if (gLastUsedMove[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + if (gLastUsedMove[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i]) break; } - if (i != 4 && gBattleMons[gBankTarget].pp[i] > 1) + if (i != 4 && gBattleMons[gBattlerTarget].pp[i] > 1) { s32 lost_pp = (Random() & 3) + 2; - if (gBattleMons[gBankTarget].pp[i] < lost_pp) - lost_pp = gBattleMons[gBankTarget].pp[i]; + if (gBattleMons[gBattlerTarget].pp[i] < lost_pp) + lost_pp = gBattleMons[gBattlerTarget].pp[i]; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gLastUsedMove[gBankTarget]; - gBattleTextBuff1[3] = gLastUsedMove[gBankTarget] >> 8; + gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget]; + gBattleTextBuff1[3] = gLastUsedMove[gBattlerTarget] >> 8; gBattleTextBuff1[4] = 0xFF; ConvertIntToDecimalStringN(gBattleTextBuff2, lost_pp, 0, 1); gBattleTextBuff2[0] = 0xFD; @@ -12379,17 +12377,17 @@ static void atkAD_tryspiteppreduce(void) gBattleTextBuff2[4] = lost_pp; gBattleTextBuff2[5] = 0xFF; - gBattleMons[gBankTarget].pp[i] -= lost_pp; - gActiveBattler = gBankTarget; + gBattleMons[gBattlerTarget].pp[i] -= lost_pp; + gActiveBattler = gBattlerTarget; if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 5; - if (gBattleMons[gBankTarget].pp[i] == 0) - CancelMultiTurnMoves(gBankTarget); + if (gBattleMons[gBattlerTarget].pp[i] == 0) + CancelMultiTurnMoves(gBattlerTarget); return; } } @@ -12407,22 +12405,22 @@ static void atkAE_healpartystatus(void) int i; gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; } else { - RecordAbilityBattle(gBankAttacker, gBattleMons[gBankAttacker].ability); + RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBattler = gBattleStruct->scriptingActive = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = gBattleStruct->scriptingActive = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { if (gBattleMons[gActiveBattler].ability != ABILITY_SOUNDPROOF) @@ -12443,8 +12441,8 @@ static void atkAE_healpartystatus(void) if (species != 0 && species != SPECIES_EGG) { u8 ability; - if (gBattlerPartyIndexes[gBankAttacker] == i) - ability = gBattleMons[gBankAttacker].ability; + if (gBattlerPartyIndexes[gBattlerAttacker] == i) + ability = gBattleMons[gBattlerAttacker].ability; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[gActiveBattler] == i && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) ability = gBattleMons[gActiveBattler].ability; else @@ -12458,31 +12456,31 @@ static void atkAE_healpartystatus(void) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; to_heal = 0x3F; - gBattleMons[gBankAttacker].status1 = zero2; + gBattleMons[gBattlerAttacker].status1 = zero2; - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) gBattleMons[gActiveBattler].status1 = 0; } //missing check? - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } static void atkAF_cursetarget(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CURSED || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankTarget].status2 |= STATUS2_CURSED; - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMons[gBattlerTarget].status2 |= STATUS2_CURSED; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattlescriptCurrInstr += 5; @@ -12491,10 +12489,10 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { - u8 side = GetBattlerSide(gBankAttacker) ^ 1; + u8 side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].spikesAmount == 3) { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else @@ -12507,7 +12505,7 @@ static void atkB0_trysetspikes(void) static void atkB1_setforesight(void) { - gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; + gBattleMons[gBattlerTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } @@ -12527,7 +12525,7 @@ static void atkB2_trysetperishsong(void) } } - PressurePPLoseOnUsingPerishSong(gBankAttacker); + PressurePPLoseOnUsingPerishSong(gBattlerAttacker); if (not_affected_pokes == gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else @@ -12538,27 +12536,27 @@ static void atkB3_rolloutdamagecalculation(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { int i; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) //first hit + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) //first hit { - gDisableStructs[gBankAttacker].rolloutTimer1 = 5; - gDisableStructs[gBankAttacker].rolloutTimer2 = 5; - gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBankAttacker] = gCurrentMove; + gDisableStructs[gBattlerAttacker].rolloutTimer1 = 5; + gDisableStructs[gBattlerAttacker].rolloutTimer2 = 5; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattlerAttacker] = gCurrentMove; } - if (--gDisableStructs[gBankAttacker].rolloutTimer1 == 0) - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (--gDisableStructs[gBattlerAttacker].rolloutTimer1 == 0) + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < (5 - gDisableStructs[gBankAttacker].rolloutTimer1); i++) + for (i = 1; i < (5 - gDisableStructs[gBattlerAttacker].rolloutTimer1); i++) gDynamicBasePower *= 2; - if (gBattleMons[gBankAttacker].status2 & STATUS2_DEFENSE_CURL) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_DEFENSE_CURL) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -12567,7 +12565,7 @@ static void atkB3_rolloutdamagecalculation(void) static void atkB4_jumpifconfusedandstatmaxed(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBankTarget].statStages[T2_READ_8(gBattlescriptCurrInstr + 1)] == 0xC) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBattlerTarget].statStages[T2_READ_8(gBattlescriptCurrInstr + 1)] == 0xC) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -12577,18 +12575,18 @@ static void atkB5_furycuttercalc(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gDisableStructs[gBankAttacker].furyCutterCounter = 0; + gDisableStructs[gBattlerAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { int i; - if (gDisableStructs[gBankAttacker].furyCutterCounter != 5) - gDisableStructs[gBankAttacker].furyCutterCounter++; + if (gDisableStructs[gBattlerAttacker].furyCutterCounter != 5) + gDisableStructs[gBattlerAttacker].furyCutterCounter++; gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < gDisableStructs[gBankAttacker].furyCutterCounter; i++) + for (i = 1; i < gDisableStructs[gBattlerAttacker].furyCutterCounter; i++) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -12598,9 +12596,9 @@ static void atkB5_furycuttercalc(void) static void atkB6_happinesstodamagecalculation(void) { if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) - gDynamicBasePower = 10 * (gBattleMons[gBankAttacker].friendship) / 25; + gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25; else //EFFECT_FRUSTRATION - gDynamicBasePower = 10 * (255 - gBattleMons[gBankAttacker].friendship) / 25; + gDynamicBasePower = 10 * (255 - gBattleMons[gBattlerAttacker].friendship) / 25; gBattlescriptCurrInstr++; } @@ -12615,14 +12613,14 @@ static void atkB7_presentdamagecalculation(void) gDynamicBasePower = 120; else { - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } if (rand < 204) gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; - else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) + else if (gBattleMons[gBattlerTarget].maxHP == gBattleMons[gBattlerTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { @@ -12633,15 +12631,15 @@ static void atkB7_presentdamagecalculation(void) static void atkB8_setsafeguard(void) { - if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_SAFEGUARD) + if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].safeguardTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].safeguardTimer = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } gBattlescriptCurrInstr++; @@ -12693,11 +12691,11 @@ static void atkB9_magnitudedamagecalculation(void) gBattleTextBuff1[4] = magnitude; gBattleTextBuff1[5] = 0xFF; - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) //a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) //a valid target was found break; } gBattlescriptCurrInstr++; @@ -12707,26 +12705,26 @@ static void atkBA_jumpifnopursuitswitchdmg(void) { if (gMultiHitCounter == 1) { - if (GetBattlerSide(gBankAttacker) == 0) - gBankTarget = GetBattlerAtPosition(1); + if (GetBattlerSide(gBattlerAttacker) == 0) + gBattlerTarget = GetBattlerAtPosition(1); else - gBankTarget = GetBattlerAtPosition(0); + gBattlerTarget = GetBattlerAtPosition(0); } else { - if (GetBattlerSide(gBankAttacker) == 0) - gBankTarget = GetBattlerAtPosition(3); + if (GetBattlerSide(gBattlerAttacker) == 0) + gBattlerTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBattlerAtPosition(2); + gBattlerTarget = GetBattlerAtPosition(2); } - if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) - && gBattleMons[gBankAttacker].hp && !gDisableStructs[gBankTarget].truantCounter && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT) + if (gActionForBanks[gBattlerTarget] == 0 && gBattlerAttacker == ewram16010arr(gBattlerTarget) && !(gBattleMons[gBattlerTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + && gBattleMons[gBattlerAttacker].hp && !gDisableStructs[gBattlerTarget].truantCounter && gChosenMovesByBanks[gBattlerTarget] == MOVE_PURSUIT) { int i; for (i = 0; i < gBattlersCount; i++) { - if (gBanksByTurnOrder[i] == gBankTarget) + if (gBanksByTurnOrder[i] == gBattlerTarget) gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; @@ -12756,14 +12754,14 @@ static void atkBB_setsunny(void) static void atkBC_maxattackhalvehp(void) //belly drum { - u32 half_hp = gBattleMons[gBankAttacker].maxHP / 2; - if (!(gBattleMons[gBankAttacker].maxHP / 2)) + u32 half_hp = gBattleMons[gBattlerAttacker].maxHP / 2; + if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) half_hp = 1; - if (gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] < 12 && gBattleMons[gBankAttacker].hp > half_hp) + if (gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] < 12 && gBattleMons[gBattlerAttacker].hp > half_hp) { - gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] = 12; - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] = 12; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattlescriptCurrInstr += 5; @@ -12779,36 +12777,36 @@ static void atkBD_copyfoestats(void) //psych up int i; for (i = 0; i < 8; i++) { - gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankTarget].statStages[i]; + gBattleMons[gBattlerAttacker].statStages[i] = gBattleMons[gBattlerTarget].statStages[i]; } gBattlescriptCurrInstr += 5; //why not 1? possible unused fail possibility? } static void atkBE_rapidspinfree(void) //rapid spin { - if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_WRAPPED) { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gBankTarget = ewram16020arr(gBankAttacker); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); + gBattlerTarget = ewram16020arr(gBattlerAttacker); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker); - gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker); + gBattleTextBuff1[2] = ewram16004arr(0, gBattlerAttacker); + gBattleTextBuff1[3] = ewram16004arr(1, gBattlerAttacker); gBattleTextBuff1[4] = 0xFF; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WrapFree; } - else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED) + else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED) { - gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED); - gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideAffecting[GetBattlerSide(gBankAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideAffecting[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES) { - gSideAffecting[GetBattlerSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimers[GetBattlerSide(gBankAttacker)].spikesAmount = 0; + gSideAffecting[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBattlerSide(gBattlerAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -12818,21 +12816,21 @@ static void atkBE_rapidspinfree(void) //rapid spin static void atkBF_setdefensecurlbit(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; } static void atkC0_recoverbasedonsunlight(void) { - gBankTarget = gBankAttacker; - if (gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP) + gBattlerTarget = gBattlerAttacker; + if (gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP) { if (!gBattleWeather || !WEATHER_HAS_EFFECT) - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; else if (gBattleWeather & WEATHER_SUN_ANY) - gBattleMoveDamage = 20 * gBattleMons[gBankAttacker].maxHP / 30; + gBattleMoveDamage = 20 * gBattleMons[gBattlerAttacker].maxHP / 30; else //not sunny weather - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; @@ -12846,18 +12844,18 @@ static void atkC0_recoverbasedonsunlight(void) static void atkC1_hiddenpowercalc(void) { - u8 power = ((gBattleMons[gBankAttacker].hpIV & 2) >> 1) | - ((gBattleMons[gBankAttacker].attackIV & 2)) | - ((gBattleMons[gBankAttacker].defenseIV & 2) << 1) | - ((gBattleMons[gBankAttacker].speedIV & 2) << 2) | - ((gBattleMons[gBankAttacker].spAttackIV & 2) << 3) | - ((gBattleMons[gBankAttacker].spDefenseIV & 2) << 4); - u8 type = ((gBattleMons[gBankAttacker].hpIV & 1)) | - ((gBattleMons[gBankAttacker].attackIV & 1) << 1) | - ((gBattleMons[gBankAttacker].defenseIV & 1) << 2) | - ((gBattleMons[gBankAttacker].speedIV & 1) << 3) | - ((gBattleMons[gBankAttacker].spAttackIV & 1) << 4) | - ((gBattleMons[gBankAttacker].spDefenseIV & 1) << 5); + u8 power = ((gBattleMons[gBattlerAttacker].hpIV & 2) >> 1) | + ((gBattleMons[gBattlerAttacker].attackIV & 2)) | + ((gBattleMons[gBattlerAttacker].defenseIV & 2) << 1) | + ((gBattleMons[gBattlerAttacker].speedIV & 2) << 2) | + ((gBattleMons[gBattlerAttacker].spAttackIV & 2) << 3) | + ((gBattleMons[gBattlerAttacker].spDefenseIV & 2) << 4); + u8 type = ((gBattleMons[gBattlerAttacker].hpIV & 1)) | + ((gBattleMons[gBattlerAttacker].attackIV & 1) << 1) | + ((gBattleMons[gBattlerAttacker].defenseIV & 1) << 2) | + ((gBattleMons[gBattlerAttacker].speedIV & 1) << 3) | + ((gBattleMons[gBattlerAttacker].spAttackIV & 1) << 4) | + ((gBattleMons[gBattlerAttacker].spDefenseIV & 1) << 5); gDynamicBasePower = 30 + (power * 40 / 63); @@ -12872,11 +12870,11 @@ static void atkC1_hiddenpowercalc(void) static void atkC2_selectfirstvalidtarget(void) { - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } gBattlescriptCurrInstr++; @@ -12884,21 +12882,21 @@ static void atkC2_selectfirstvalidtarget(void) static void atkC3_trysetfutureattack(void) { - if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) + if (gWishFutureKnock.futureSightCounter[gBattlerTarget] != 0) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gWishFutureKnock.futureSightMove[gBankTarget] = gCurrentMove; - gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker; - gWishFutureKnock.futureSightCounter[gBankTarget] = 3; - gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, - 0, gBankAttacker, gBankTarget); + gWishFutureKnock.futureSightMove[gBattlerTarget] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBattlerTarget] = gBattlerAttacker; + gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3; + gWishFutureKnock.futureSightDmg[gBattlerTarget] = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, + gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0, + 0, gBattlerAttacker, gBattlerTarget); - if (gProtectStructs[gBankAttacker].helpingHand) - gWishFutureKnock.futureSightDmg[gBankTarget] = gWishFutureKnock.futureSightDmg[gBankTarget] * 15 / 10; + if (gProtectStructs[gBattlerAttacker].helpingHand) + gWishFutureKnock.futureSightDmg[gBattlerTarget] = gWishFutureKnock.futureSightDmg[gBattlerTarget] * 15 / 10; if (gCurrentMove == MOVE_DOOM_DESIRE) gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -12913,12 +12911,12 @@ static void atkC3_trysetfutureattack(void) static void atkC4_trydobeatup(void) { register struct Pokemon* party asm("r7"); - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBankTarget].hp == 0) + if (gBattleMons[gBattlerTarget].hp == 0) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -12933,7 +12931,7 @@ static void atkC4_trydobeatup(void) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gBankAttacker; + gBattleTextBuff1[2] = gBattlerAttacker; gBattleTextBuff1[3] = gBattleCommunication[0]; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr += 9; @@ -12941,9 +12939,9 @@ static void atkC4_trydobeatup(void) gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gBaseStats[gBattleMons[gBankTarget].species].baseDefense; + gBattleMoveDamage /= gBaseStats[gBattleMons[gBattlerTarget].species].baseDefense; gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattleCommunication[0]++; @@ -12963,7 +12961,7 @@ static void atkC4_trydobeatup(void) mov r7, r9\n\ mov r6, r8\n\ push {r6,r7}\n\ - ldr r0, _08029A8C @ =gBankAttacker\n\ + ldr r0, _08029A8C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ bl GetBattlerSide\n\ lsls r0, 24\n\ @@ -12973,7 +12971,7 @@ static void atkC4_trydobeatup(void) ldr r7, _08029A94 @ =gPlayerParty\n\ _08029A62:\n\ ldr r2, _08029A98 @ =gBattleMons\n\ - ldr r0, _08029A9C @ =gBankTarget\n\ + ldr r0, _08029A9C @ =gBattlerTarget\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ muls r0, r1\n\ @@ -12993,11 +12991,11 @@ _08029A62:\n\ ldrb r0, [r2, 0x4]\n\ b _08029C40\n\ .align 2, 0\n\ -_08029A8C: .4byte gBankAttacker\n\ +_08029A8C: .4byte gBattlerAttacker\n\ _08029A90: .4byte gEnemyParty\n\ _08029A94: .4byte gPlayerParty\n\ _08029A98: .4byte gBattleMons\n\ -_08029A9C: .4byte gBankTarget\n\ +_08029A9C: .4byte gBattlerTarget\n\ _08029AA0: .4byte gBattlescriptCurrInstr\n\ _08029AA4:\n\ ldr r6, _08029BE0 @ =gBattleCommunication\n\ @@ -13060,7 +13058,7 @@ _08029B08:\n\ strb r0, [r1]\n\ movs r0, 0x4\n\ strb r0, [r1, 0x1]\n\ - ldr r6, _08029BE8 @ =gBankAttacker\n\ + ldr r6, _08029BE8 @ =gBattlerAttacker\n\ ldrb r0, [r6]\n\ strb r0, [r1, 0x2]\n\ strb r2, [r1, 0x3]\n\ @@ -13113,7 +13111,7 @@ _08029B08:\n\ muls r0, r1\n\ str r0, [r2]\n\ ldr r3, _08029C00 @ =gBattleMons\n\ - ldr r1, _08029C04 @ =gBankTarget\n\ + ldr r1, _08029C04 @ =gBattlerTarget\n\ ldrb r2, [r1]\n\ movs r1, 0x58\n\ muls r1, r2\n\ @@ -13155,14 +13153,14 @@ _08029BD4:\n\ .align 2, 0\n\ _08029BE0: .4byte gBattleCommunication\n\ _08029BE4: .4byte gBattleTextBuff1\n\ -_08029BE8: .4byte gBankAttacker\n\ +_08029BE8: .4byte gBattlerAttacker\n\ _08029BEC: .4byte gBattlescriptCurrInstr\n\ _08029BF0: .4byte gBattleMoveDamage\n\ _08029BF4: .4byte gBaseStats\n\ _08029BF8: .4byte gBattleMoves\n\ _08029BFC: .4byte gCurrentMove\n\ _08029C00: .4byte gBattleMons\n\ -_08029C04: .4byte gBankTarget\n\ +_08029C04: .4byte gBattlerTarget\n\ _08029C08: .4byte gProtectStructs\n\ _08029C0C:\n\ mov r0, r8\n\ @@ -13215,13 +13213,13 @@ static void atkC5_setsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBankAttacker] |= STATUS3_ON_AIR; + gStatuses3[gBattlerAttacker] |= STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBankAttacker] |= STATUS3_UNDERGROUND; + gStatuses3[gBattlerAttacker] |= STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBankAttacker] |= STATUS3_UNDERWATER; + gStatuses3[gBattlerAttacker] |= STATUS3_UNDERWATER; break; } gBattlescriptCurrInstr++; @@ -13233,13 +13231,13 @@ static void atkC6_clearsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBankAttacker] &= ~STATUS3_ON_AIR; + gStatuses3[gBattlerAttacker] &= ~STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBankAttacker] &= ~STATUS3_UNDERGROUND; + gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBankAttacker] &= ~STATUS3_UNDERWATER; + gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERWATER; break; } gBattlescriptCurrInstr++; @@ -13248,7 +13246,7 @@ static void atkC6_clearsemiinvulnerablebit(void) static void atkC7_setminimize(void) { if (gHitMarker & HITMARKER_OBEYS) - gStatuses3[gBankAttacker] |= STATUS3_MINIMIZED; + gStatuses3[gBattlerAttacker] |= STATUS3_MINIMIZED; gBattlescriptCurrInstr++; } @@ -13270,32 +13268,32 @@ static void atkC8_sethail(void) static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento { - if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0 - && gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0 + if (gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_SPATK] == 0 && gBattleCommunication[6] != 1) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; - EmitHealthBarUpdate(0, 0x7FFF); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, 0x7FFF); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } } static void atkCA_setforcedtarget(void) //follow me { - gSideTimers[GetBattlerSide(gBankAttacker)].followmeTimer = 1; - gSideTimers[GetBattlerSide(gBankAttacker)].followmeTarget = gBankAttacker; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTimer = 1; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTarget = gBattlerAttacker; gBattlescriptCurrInstr++; } static void atkCB_setcharge(void) { - gStatuses3[gBankAttacker] |= STATUS3_CHARGED_UP; - gDisableStructs[gBankAttacker].chargeTimer1 = 2; - gDisableStructs[gBankAttacker].chargeTimer2 = 2; + gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP; + gDisableStructs[gBattlerAttacker].chargeTimer1 = 2; + gDisableStructs[gBattlerAttacker].chargeTimer2 = 2; gBattlescriptCurrInstr++; } @@ -13303,20 +13301,20 @@ static void atkCC_callterrainattack(void) //nature power { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh { - if (gBattleMons[gBankAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + if (gBattleMons[gBattlerAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr += 5; - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -13324,18 +13322,18 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh static void atkCE_settorment(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TORMENT) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT; + gBattleMons[gBattlerTarget].status2 |= STATUS2_TORMENT; gBattlescriptCurrInstr += 5; } } static void atkCF_jumpifnodamage(void) { - if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg) + if (gProtectStructs[gBattlerAttacker].physicalDmg || gProtectStructs[gBattlerAttacker].specialDmg) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -13343,10 +13341,10 @@ static void atkCF_jumpifnodamage(void) static void atkD0_settaunt(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 == 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0) { - gDisableStructs[gBankTarget].tauntTimer1 = 2; - gDisableStructs[gBankTarget].tauntTimer2 = 2; + gDisableStructs[gBattlerTarget].tauntTimer1 = 2; + gDisableStructs[gBattlerTarget].tauntTimer2 = 2; gBattlescriptCurrInstr += 5; } else @@ -13355,11 +13353,11 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBankTarget]) - && !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand) + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + && !gProtectStructs[gBattlerAttacker].helpingHand && !gProtectStructs[gBattlerTarget].helpingHand) { - gProtectStructs[gBankTarget].helpingHand = 1; + gProtectStructs[gBattlerTarget].helpingHand = 1; gBattlescriptCurrInstr += 5; } else @@ -13369,9 +13367,9 @@ static void atkD1_trysethelpinghand(void) #ifdef NONMATCHING static void atkD2_tryswapitems(void) { - if ((GetBattlerSide(gBankAttacker) != 1 || gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER) || gTrainerBattleOpponent == SECRET_BASE_OPPONENT)) + if ((GetBattlerSide(gBattlerAttacker) != 1 || gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER) || gTrainerBattleOpponent == SECRET_BASE_OPPONENT)) { - u8 side = GetBattlerSide(gBankAttacker); + u8 side = GetBattlerSide(gBattlerAttacker); if (gBattleTypeFlags) } @@ -13389,7 +13387,7 @@ static void atkD2_tryswapitems(void) mov r5, r8\n\ push {r5-r7}\n\ sub sp, 0x4\n\ - ldr r0, _0802A30C @ =gBankAttacker\n\ + ldr r0, _0802A30C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ bl GetBattlerSide\n\ lsls r0, 24\n\ @@ -13409,7 +13407,7 @@ static void atkD2_tryswapitems(void) cmp r1, r0\n\ bne _0802A2EE\n\ _0802A24C:\n\ - ldr r4, _0802A30C @ =gBankAttacker\n\ + ldr r4, _0802A30C @ =gBattlerAttacker\n\ ldrb r0, [r4]\n\ bl GetBattlerSide\n\ lsls r0, 24\n\ @@ -13445,7 +13443,7 @@ _0802A24C:\n\ _0802A290:\n\ ldr r0, _0802A328 @ =gBattleMons\n\ mov r9, r0\n\ - ldr r1, _0802A30C @ =gBankAttacker\n\ + ldr r1, _0802A30C @ =gBattlerAttacker\n\ ldrb r4, [r1]\n\ movs r2, 0x58\n\ mov r8, r2\n\ @@ -13457,7 +13455,7 @@ _0802A290:\n\ adds r1, r3, 0\n\ cmp r1, 0\n\ bne _0802A2BE\n\ - ldr r0, _0802A32C @ =gBankTarget\n\ + ldr r0, _0802A32C @ =gBattlerTarget\n\ ldrb r0, [r0]\n\ mov r2, r8\n\ muls r2, r0\n\ @@ -13469,7 +13467,7 @@ _0802A290:\n\ _0802A2BE:\n\ cmp r1, 0xAF\n\ beq _0802A2EE\n\ - ldr r7, _0802A32C @ =gBankTarget\n\ + ldr r7, _0802A32C @ =gBattlerTarget\n\ ldrb r0, [r7]\n\ mov r1, r8\n\ muls r1, r0\n\ @@ -13507,7 +13505,7 @@ _0802A2EE:\n\ str r1, [r3]\n\ b _0802A49A\n\ .align 2, 0\n\ -_0802A30C: .4byte gBankAttacker\n\ +_0802A30C: .4byte gBattlerAttacker\n\ _0802A310: .4byte gBattleTypeFlags\n\ _0802A314: .4byte 0x00000902\n\ _0802A318: .4byte gTrainerBattleOpponent\n\ @@ -13515,7 +13513,7 @@ _0802A31C: .4byte gWishFutureKnock\n\ _0802A320: .4byte gBitTable\n\ _0802A324: .4byte gBattlerPartyIndexes\n\ _0802A328: .4byte gBattleMons\n\ -_0802A32C: .4byte gBankTarget\n\ +_0802A32C: .4byte gBattlerTarget\n\ _0802A330: .4byte gBattlescriptCurrInstr\n\ _0802A334:\n\ adds r0, r2, 0\n\ @@ -13550,7 +13548,7 @@ _0802A36C:\n\ ldrh r5, [r5, 0x2E]\n\ mov r10, r5\n\ strh r1, [r6]\n\ - ldr r3, _0802A45C @ =gBankAttacker\n\ + ldr r3, _0802A45C @ =gBattlerAttacker\n\ ldrb r0, [r3]\n\ mov r1, r8\n\ muls r1, r0\n\ @@ -13566,7 +13564,7 @@ _0802A36C:\n\ mov r3, r10\n\ strh r3, [r0, 0x2E]\n\ ldr r5, _0802A460 @ =gActiveBattler\n\ - ldr r1, _0802A45C @ =gBankAttacker\n\ + ldr r1, _0802A45C @ =gBattlerAttacker\n\ ldrb r0, [r1]\n\ strb r0, [r5]\n\ str r6, [sp]\n\ @@ -13574,10 +13572,10 @@ _0802A36C:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetMonData\n\ - ldr r2, _0802A45C @ =gBankAttacker\n\ + bl BtlController_EmitSetMonData\n\ + ldr r2, _0802A45C @ =gBattlerAttacker\n\ ldrb r0, [r2]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldrb r0, [r7]\n\ strb r0, [r5]\n\ ldrb r0, [r7]\n\ @@ -13592,9 +13590,9 @@ _0802A36C:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r7]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, _0802A464 @ =0xfffe9f10\n\ adds r4, r0\n\ ldrb r0, [r7]\n\ @@ -13611,7 +13609,7 @@ _0802A36C:\n\ adds r0, r4\n\ movs r3, 0\n\ strb r3, [r0]\n\ - ldr r3, _0802A45C @ =gBankAttacker\n\ + ldr r3, _0802A45C @ =gBattlerAttacker\n\ ldrb r0, [r3]\n\ lsls r0, 1\n\ adds r0, r2\n\ @@ -13660,7 +13658,7 @@ _0802A36C:\n\ b _0802A498\n\ .align 2, 0\n\ _0802A458: .4byte gSharedMem + 0x160F0\n\ -_0802A45C: .4byte gBankAttacker\n\ +_0802A45C: .4byte gBattlerAttacker\n\ _0802A460: .4byte gActiveBattler\n\ _0802A464: .4byte 0xfffe9f10\n\ _0802A468: .4byte 0x000160e8\n\ @@ -13701,10 +13699,10 @@ _0802A4AC: .4byte gBattleCommunication\n\ static void atkD3_trycopyability(void) //role play { - if (gBattleMons[gBankTarget].ability != 0 && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[gBattlerTarget].ability != 0 && gBattleMons[gBattlerTarget].ability != ABILITY_WONDER_GUARD) { - gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gBattlescriptCurrInstr += 5; } else @@ -13716,10 +13714,10 @@ static void atkD4_trywish(void) switch (T2_READ_8(gBattlescriptCurrInstr + 1)) { case 0: //use wish - if (gWishFutureKnock.wishCounter[gBankAttacker] == 0) + if (gWishFutureKnock.wishCounter[gBattlerAttacker] == 0) { - gWishFutureKnock.wishCounter[gBankAttacker] = 2; - gWishFutureKnock.wishUserID[gBankAttacker] = gBattlerPartyIndexes[gBankAttacker]; + gWishFutureKnock.wishCounter[gBattlerAttacker] = 2; + gWishFutureKnock.wishMonId[gBattlerAttacker] = gBattlerPartyIndexes[gBattlerAttacker]; gBattlescriptCurrInstr += 6; } else @@ -13728,14 +13726,14 @@ static void atkD4_trywish(void) case 1: //heal effect gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gBankTarget; - gBattleTextBuff1[3] = gWishFutureKnock.wishUserID[gBankTarget]; + gBattleTextBuff1[2] = gBattlerTarget; + gBattleTextBuff1[3] = gWishFutureKnock.wishMonId[gBattlerTarget]; gBattleTextBuff1[4] = 0xFF; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -13745,43 +13743,43 @@ static void atkD4_trywish(void) static void atkD5_trysetroots(void) //ingrain { - if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) + if (gStatuses3[gBattlerAttacker] & STATUS3_ROOTED) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gStatuses3[gBankAttacker] |= STATUS3_ROOTED; + gStatuses3[gBattlerAttacker] |= STATUS3_ROOTED; gBattlescriptCurrInstr += 5; } } static void atkD6_doubledamagedealtifdamaged(void) { - if ((gProtectStructs[gBankAttacker].physicalDmg && gProtectStructs[gBankAttacker].physicalBank == gBankTarget) - || (gProtectStructs[gBankAttacker].specialDmg && gProtectStructs[gBankAttacker].specialBank == gBankTarget)) + if ((gProtectStructs[gBattlerAttacker].physicalDmg && gProtectStructs[gBattlerAttacker].physicalBattlerId == gBattlerTarget) + || (gProtectStructs[gBattlerAttacker].specialDmg && gProtectStructs[gBattlerAttacker].specialBattlerId == gBattlerTarget)) gBattleStruct->dmgMultiplier = 2; gBattlescriptCurrInstr++; } static void atkD7_setyawn(void) { - if (gStatuses3[gBankTarget] & STATUS3_YAWN || (u8) gBattleMons[gBankTarget].status1) + if (gStatuses3[gBattlerTarget] & STATUS3_YAWN || (u8) gBattleMons[gBattlerTarget].status1) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gStatuses3[gBankTarget] |= 0x1000; + gStatuses3[gBattlerTarget] |= 0x1000; gBattlescriptCurrInstr += 5; } } static void atkD8_setdamagetohealthdifference(void) { - if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp) + if (gBattleMons[gBattlerTarget].hp <= gBattleMons[gBattlerAttacker].hp) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gBattleMoveDamage = gBattleMons[gBankTarget].hp - gBattleMons[gBankAttacker].hp; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - gBattleMons[gBattlerAttacker].hp; gBattlescriptCurrInstr += 5; } } @@ -13791,7 +13789,7 @@ static void atkD9_scaledamagebyhealthratio(void) if (gDynamicBasePower == 0) { u8 power = gBattleMoves[gCurrentMove].power; - gDynamicBasePower = gBattleMons[gBankAttacker].hp * power / gBattleMons[gBankAttacker].maxHP; + gDynamicBasePower = gBattleMons[gBattlerAttacker].hp * power / gBattleMons[gBattlerAttacker].maxHP; if (gDynamicBasePower == 0) gDynamicBasePower = 1; } @@ -13800,15 +13798,15 @@ static void atkD9_scaledamagebyhealthratio(void) static void atkDA_tryswapabilities(void) { - if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0) - || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD + if ((gBattleMons[gBattlerAttacker].ability == 0 && gBattleMons[gBattlerTarget].ability == 0) + || gBattleMons[gBattlerAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - u8 atk_ability = gBattleMons[gBankAttacker].ability; - gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; - gBattleMons[gBankTarget].ability = atk_ability; + u8 atk_ability = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; + gBattleMons[gBattlerTarget].ability = atk_ability; gBattlescriptCurrInstr += 5; } } @@ -13816,14 +13814,14 @@ static void atkDA_tryswapabilities(void) static void atkDB_tryimprision(void) { u8 r8 = 0; - if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISIONED)) + if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISIONED)) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { u8 bank; - PressurePPLoseOnUsingImprision(gBankAttacker); + PressurePPLoseOnUsingImprision(gBattlerAttacker); for (bank = 0; bank < gBattlersCount; bank++) { if (r8 != GetBattlerSide(bank)) @@ -13834,7 +13832,7 @@ static void atkDB_tryimprision(void) int k; for (k = 0; k < 4; k++) { - if (gBattleMons[gBankAttacker].moves[j] == gBattleMons[bank].moves[k] && gBattleMons[gBankAttacker].moves[j]) + if (gBattleMons[gBattlerAttacker].moves[j] == gBattleMons[bank].moves[k] && gBattleMons[gBattlerAttacker].moves[j]) break; } if (k != 4) @@ -13842,7 +13840,7 @@ static void atkDB_tryimprision(void) } if (j != 4) { - gStatuses3[gBankAttacker] |= STATUS3_IMPRISIONED; + gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISIONED; gBattlescriptCurrInstr += 5; break; } @@ -13855,11 +13853,11 @@ static void atkDB_tryimprision(void) static void atkDC_trysetgrudge(void) { - if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) + if (gStatuses3[gBattlerAttacker] & STATUS3_GRUDGE) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gStatuses3[gBankAttacker] |= STATUS3_GRUDGE; + gStatuses3[gBattlerAttacker] |= STATUS3_GRUDGE; gBattlescriptCurrInstr += 5; } } @@ -13869,7 +13867,7 @@ static void atkDD_weightdamagecalculation(void) int i; for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) { - if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) break; } if (sWeightToDamageTable[i] != 0xFFFF) @@ -13886,14 +13884,14 @@ static void atkDE_asistattackselect(void) struct Pokemon* party; int i, j; u16* chooseable_moves; - if (GetBattlerPosition(gBankAttacker) & 1) + if (GetBattlerPosition(gBattlerAttacker) & 1) party = gEnemyParty; else party = gPlayerParty; for (i = 0; i < 6; i++) { - if (i == gBattlerPartyIndexes[gBankAttacker]) + if (i == gBattlerPartyIndexes[gBattlerAttacker]) break; if (!GetMonData(&party[i], MON_DATA_SPECIES2) || GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) break; @@ -13926,7 +13924,7 @@ static void atkDE_asistattackselect(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gRandomMove = gBattleStruct->assistMove[Random() % chooseable_moves_no]; - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr += 5; } else @@ -13946,7 +13944,7 @@ static void atkDE_asistattackselect(void) sub sp, 0x8\n\ movs r0, 0\n\ mov r10, r0\n\ - ldr r0, _0802AB9C @ =gBankAttacker\n\ + ldr r0, _0802AB9C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ bl GetBattlerPosition\n\ movs r1, 0x1\n\ @@ -13961,7 +13959,7 @@ _0802AAAC:\n\ movs r2, 0\n\ _0802AAAE:\n\ ldr r1, _0802ABA8 @ =gBattlerPartyIndexes\n\ - ldr r0, _0802AB9C @ =gBankAttacker\n\ + ldr r0, _0802AB9C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ adds r0, r1\n\ @@ -14071,7 +14069,7 @@ _0802AB54:\n\ ldrh r0, [r4]\n\ movs r1, 0\n\ bl GetMoveTarget\n\ - ldr r1, _0802ABC4 @ =gBankTarget\n\ + ldr r1, _0802ABC4 @ =gBattlerTarget\n\ strb r0, [r1]\n\ ldr r1, _0802ABC8 @ =gBattlescriptCurrInstr\n\ ldr r0, [r1]\n\ @@ -14079,7 +14077,7 @@ _0802AB54:\n\ str r0, [r1]\n\ b _0802ABE6\n\ .align 2, 0\n\ -_0802AB9C: .4byte gBankAttacker\n\ +_0802AB9C: .4byte gBattlerAttacker\n\ _0802ABA0: .4byte gPlayerParty\n\ _0802ABA4: .4byte gEnemyParty\n\ _0802ABA8: .4byte gBattlerPartyIndexes\n\ @@ -14089,7 +14087,7 @@ _0802ABB4: .4byte sMovesForbiddenToCopy\n\ _0802ABB8: .4byte gHitMarker\n\ _0802ABBC: .4byte 0xfffffbff\n\ _0802ABC0: .4byte gRandomMove\n\ -_0802ABC4: .4byte gBankTarget\n\ +_0802ABC4: .4byte gBattlerTarget\n\ _0802ABC8: .4byte gBattlescriptCurrInstr\n\ _0802ABCC:\n\ ldr r3, _0802ABF8 @ =gBattlescriptCurrInstr\n\ @@ -14123,25 +14121,25 @@ _0802ABF8: .4byte gBattlescriptCurrInstr\n\ static void atkDF_trysetmagiccoat(void) { - gBankTarget = gBankAttacker; - gSpecialStatuses[gBankAttacker].flag20 = 1; + gBattlerTarget = gBattlerAttacker; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gProtectStructs[gBankAttacker].bounceMove = 1; + gProtectStructs[gBattlerAttacker].bounceMove = 1; gBattlescriptCurrInstr += 5; } } static void atkE0_trysetsnatch(void) { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gProtectStructs[gBankAttacker].stealMove = 1; + gProtectStructs[gBattlerAttacker].stealMove = 1; gBattlescriptCurrInstr += 5; } } @@ -14157,15 +14155,15 @@ static void atkE1_trygetintimidatetarget(void) gBattleTextBuff1[2] = gBattleMons[gBattleStruct->scriptingActive].ability; gBattleTextBuff1[3] = 0xFF; - for (;gBankTarget < gBattlersCount; gBankTarget++) + for (;gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (GetBattlerSide(gBankTarget) == side) + if (GetBattlerSide(gBattlerTarget) == side) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } - if (gBankTarget >= gBattlersCount) + if (gBattlerTarget >= gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -14178,8 +14176,8 @@ static void atkE2_switchoutabilities(void) { case ABILITY_NATURAL_CURE: gBattleMons[gActiveBattler].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } gBattlescriptCurrInstr += 2; @@ -14262,8 +14260,8 @@ static void atkE6_docastformchangeanimation(void) gActiveBattler = gBattleStruct->scriptingActive; if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) gBattleStruct->castformToChangeInto |= 0x80; - EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->castformToChangeInto); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->castformToChangeInto); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } @@ -14284,18 +14282,18 @@ static void atkE8_settypebasedhalvers(void) //water/mud sport bool8 worked = FALSE; if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) { - if (!(gStatuses3[gBankAttacker] & STATUS3_MUDSPORT)) + if (!(gStatuses3[gBattlerAttacker] & STATUS3_MUDSPORT)) { - gStatuses3[gBankAttacker] |= STATUS3_MUDSPORT; + gStatuses3[gBattlerAttacker] |= STATUS3_MUDSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 0; worked = TRUE; } } else //water sport { - if (!(gStatuses3[gBankAttacker] & STATUS3_WATERSPORT)) + if (!(gStatuses3[gBattlerAttacker] & STATUS3_WATERSPORT)) { - gStatuses3[gBankAttacker] |= STATUS3_WATERSPORT; + gStatuses3[gBattlerAttacker] |= STATUS3_WATERSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 1; worked = TRUE; } @@ -14329,15 +14327,15 @@ static void atkE9_setweatherballtype(void) static void atkEA_tryrecycleitem(void) { u16* used_item; - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; used_item = USED_HELD_ITEM(gActiveBattler); if (*used_item && gBattleMons[gActiveBattler].item == 0) { gLastUsedItem = *used_item; *used_item = 0; gBattleMons[gActiveBattler].item = gLastUsedItem; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } else @@ -14346,10 +14344,10 @@ static void atkEA_tryrecycleitem(void) static void atkEB_settypetoterrain(void) { - if (gBattleMons[gBankAttacker].type1 != sTerrainToType[gBattleTerrain] && gBattleMons[gBankAttacker].type2 != sTerrainToType[gBattleTerrain]) + if (gBattleMons[gBattlerAttacker].type1 != sTerrainToType[gBattleTerrain] && gBattleMons[gBattlerAttacker].type2 != sTerrainToType[gBattleTerrain]) { - gBattleMons[gBankAttacker].type1 = sTerrainToType[gBattleTerrain]; - gBattleMons[gBankAttacker].type2 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattlerAttacker].type1 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattlerAttacker].type2 = sTerrainToType[gBattleTerrain]; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; gBattleTextBuff1[2] = sTerrainToType[gBattleTerrain]; @@ -14362,15 +14360,15 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gActionForBanks[gActiveBattler] == 0 && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) { gActionsByTurnOrder[gActiveBattler] = 11; gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; gBattleStruct->animTurn = 1; - gBattleStruct->unk160A7 = gBankAttacker; - gBankAttacker = gActiveBattler; + gBattleStruct->unk160A7 = gBattlerAttacker; + gBattlerAttacker = gActiveBattler; } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -14378,18 +14376,18 @@ static void atkEC_pursuitrelated(void) static void atkED_snatchsetbanks(void) { - gEffectBank = gBankAttacker; - if (gBankAttacker == gBankTarget) - gBankAttacker = gBankTarget = gBattleStruct->scriptingActive; + gEffectBattler = gBattlerAttacker; + if (gBattlerAttacker == gBattlerTarget) + gBattlerAttacker = gBattlerTarget = gBattleStruct->scriptingActive; else - gBankTarget = gBattleStruct->scriptingActive; - gBattleStruct->scriptingActive = gEffectBank; + gBattlerTarget = gBattleStruct->scriptingActive; + gBattleStruct->scriptingActive = gEffectBattler; gBattlescriptCurrInstr++; } static void atkEE_removelightscreenreflect(void) //brick break { - u8 side = GetBattlerSide(gBankAttacker) ^ 1; + u8 side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer) { gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT); @@ -14410,21 +14408,21 @@ static void atkEE_removelightscreenreflect(void) //brick break void atkEF_handleballthrow(void) { u8 ball_multiplier = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBankAttacker; - gBankTarget = gBankAttacker ^ 1; + gActiveBattler = gBattlerAttacker; + gBattlerTarget = gBattlerAttacker ^ 1; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - EmitBallThrow(0, 5); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, 5); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) { - EmitBallThrow(0, 4); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, 4); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_WallyBallThrow; } else @@ -14434,13 +14432,13 @@ void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_SAFARI_BALL) catch_rate = gBattleStruct->unk16089 * 1275 / 100; //correct the name to safariFleeRate else - catch_rate = gBaseStats[gBattleMons[gBankTarget].species].catchRate; + catch_rate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate; if (gLastUsedItem > 5) { switch (gLastUsedItem) { case ITEM_NET_BALL: - if (gBattleMons[gBankTarget].type1 == TYPE_WATER || gBattleMons[gBankTarget].type2 == TYPE_WATER || gBattleMons[gBankTarget].type1 == TYPE_BUG || gBattleMons[gBankTarget].type2 == TYPE_BUG) + if (gBattleMons[gBattlerTarget].type1 == TYPE_WATER || gBattleMons[gBattlerTarget].type2 == TYPE_WATER || gBattleMons[gBattlerTarget].type1 == TYPE_BUG || gBattleMons[gBattlerTarget].type2 == TYPE_BUG) ball_multiplier = 30; else ball_multiplier = 10; @@ -14452,9 +14450,9 @@ void atkEF_handleballthrow(void) ball_multiplier = 10; break; case ITEM_NEST_BALL: - if (gBattleMons[gBankTarget].level <= 39) + if (gBattleMons[gBattlerTarget].level <= 39) { - ball_multiplier = 40 - gBattleMons[gBankTarget].level; + ball_multiplier = 40 - gBattleMons[gBattlerTarget].level; if (ball_multiplier <= 9) ball_multiplier = 10; } @@ -14462,7 +14460,7 @@ void atkEF_handleballthrow(void) ball_multiplier = 10; break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) ball_multiplier = 30; else ball_multiplier = 10; @@ -14481,10 +14479,10 @@ void atkEF_handleballthrow(void) else ball_multiplier = sBallCatchBonuses[gLastUsedItem - 2]; - odds = (catch_rate * ball_multiplier / 10) * (gBattleMons[gBankTarget].maxHP * 3 - gBattleMons[gBankTarget].hp * 2) / (3 * gBattleMons[gBankTarget].maxHP); - if (gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + 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)) odds *= 2; - if (gBattleMons[gBankTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS /*| STATUS_TOXIC_POISON */)) //nice one gf + if (gBattleMons[gBattlerTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS /*| STATUS_TOXIC_POISON */)) //nice one gf odds = (odds * 15) / 10; if (gLastUsedItem != ITEM_SAFARI_BALL) @@ -14501,10 +14499,10 @@ void atkEF_handleballthrow(void) } if (odds > 254) //poke caught { - EmitBallThrow(0, 4); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, 4); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -14518,12 +14516,12 @@ void atkEF_handleballthrow(void) for (shakes = 0; shakes < 4 && Random() < odds; shakes++) {} if (gLastUsedItem == ITEM_MASTER_BALL) shakes = 4; //why calculate the shakes before that check? - EmitBallThrow(0, shakes); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, shakes); + MarkBattlerForControllerExec(gActiveBattler); if (shakes == 4) //poke caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -14540,23 +14538,23 @@ void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]); - gBattleResults.caughtPoke = gBattleMons[gBankAttacker ^ 1].species; - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); + GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]]); + gBattleResults.caughtPoke = gBattleMons[gBattlerAttacker ^ 1].species; + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); gBattlescriptCurrInstr++; } static void atkF1_trysetcaughtmondexflags(void) { - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3); - if (gBattleMons[gBankTarget].species == SPECIES_UNOWN) - gSaveBlock2.pokedex.unownPersonality = gBattleMons[gBankTarget].personality; - if (gBattleMons[gBankTarget].species == SPECIES_SPINDA) //else if - gSaveBlock2.pokedex.spindaPersonality = gBattleMons[gBankTarget].personality; + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 3); + if (gBattleMons[gBattlerTarget].species == SPECIES_UNOWN) + gSaveBlock2.pokedex.unownPersonality = gBattleMons[gBattlerTarget].personality; + if (gBattleMons[gBattlerTarget].species == SPECIES_SPINDA) //else if + gSaveBlock2.pokedex.spindaPersonality = gBattleMons[gBattlerTarget].personality; gBattlescriptCurrInstr += 5; } } @@ -14576,7 +14574,7 @@ static void atkF2_displaydexinfo(void) case 1: if (!gPaletteFade.active) { - gBattleCommunication[1] = sub_809070C(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), gBattleMons[gBankTarget].otId, gBattleMons[gBankTarget].personality); + gBattleCommunication[1] = sub_809070C(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), gBattleMons[gBattlerTarget].otId, gBattleMons[gBattlerTarget].personality); gBattleCommunication[0]++; } break; @@ -14744,15 +14742,15 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); - DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); gBattleCommunication[0]++; } break; case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } break; @@ -14767,13 +14765,13 @@ static void atkF3_trygivecaughtmonnick(void) static void atkF4_subattackerhpbydmg(void) { - gBattleMons[gBankAttacker].hp -= gBattleMoveDamage; + gBattleMons[gBattlerAttacker].hp -= gBattleMoveDamage; gBattlescriptCurrInstr++; } static void atkF5_removeattackerstatus1(void) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr++; } |