From aa78420b9e616d61801cc3fa174a6347c4c18f47 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Thu, 12 Jun 2025 10:41:46 +0200 Subject: [PATCH] Deprecate absent member from battlerState (#7091) --- include/battle.h | 3 +-- src/battle_main.c | 8 +++----- src/battle_script_commands.c | 2 -- src/battle_util.c | 2 +- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/include/battle.h b/include/battle.h index 086c9b25be..10021aebd3 100644 --- a/include/battle.h +++ b/include/battle.h @@ -575,7 +575,6 @@ struct BattlerState u8 targetsDone[MAX_BATTLERS_COUNT]; u32 commandingDondozo:1; - u32 absent:1; u32 focusPunchBattlers:1; u32 multipleSwitchInBattlers:1; u32 alreadyStatusedMoveAttempt:1; // For example when using Thunder Wave on an already paralyzed Pokémon. @@ -589,7 +588,7 @@ struct BattlerState u32 pursuitTarget:1; u32 stompingTantrumTimer:2; u32 canPickupItem:1; - u32 padding:16; + u32 padding:17; // End of Word }; diff --git a/src/battle_main.c b/src/battle_main.c index ba41faf697..8b7ac3386b 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3873,7 +3873,6 @@ static void TryDoEventsBeforeFirstTurn(void) gBattleStruct->monToSwitchIntoId[i] = PARTY_SIZE; gChosenActionByBattler[i] = B_ACTION_NONE; gChosenMoveByBattler[i] = MOVE_NONE; - gBattleStruct->battlerState[i].absent = (gAbsentBattlerFlags & (1u << i) ? TRUE : FALSE); } TurnValuesCleanUp(FALSE); SpecialStatusesClear(); @@ -3983,7 +3982,6 @@ void BattleTurnPassed(void) { gChosenActionByBattler[i] = B_ACTION_NONE; gChosenMoveByBattler[i] = MOVE_NONE; - gBattleStruct->battlerState[i].absent = (gAbsentBattlerFlags & (1u << i) ? TRUE : FALSE); gBattleStruct->monToSwitchIntoId[i] = PARTY_SIZE; gStatuses4[i] &= ~STATUS4_ELECTRIFIED; gBattleMons[i].status2 &= ~STATUS2_FLINCHED; @@ -4162,10 +4160,10 @@ static void HandleTurnActionSelectionState(void) gBattleStruct->monToSwitchIntoId[battler] = PARTY_SIZE; if (gBattleTypeFlags & BATTLE_TYPE_MULTI || (position & BIT_FLANK) == B_FLANK_LEFT - || gBattleStruct->battlerState[GetBattlerAtPosition(BATTLE_PARTNER(position))].absent + || gAbsentBattlerFlags & 1u << GetBattlerAtPosition(BATTLE_PARTNER(position)) || gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] == STATE_WAIT_ACTION_CONFIRMED) { - if (gBattleStruct->battlerState[battler].absent || gBattleStruct->battlerState[battler].commandingDondozo) + if (gAbsentBattlerFlags & 1u << battler || gBattleStruct->battlerState[battler].commandingDondozo) { gChosenActionByBattler[battler] = B_ACTION_NOTHING_FAINTED; if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) @@ -4553,7 +4551,7 @@ static void HandleTurnActionSelectionState(void) if (((gBattleTypeFlags & BATTLE_TYPE_MULTI) || !IsDoubleBattle()) || (position & BIT_FLANK) != B_FLANK_LEFT - || gBattleStruct->battlerState[GetBattlerAtPosition(BATTLE_PARTNER(position))].absent) + || gAbsentBattlerFlags & 1u << GetBattlerAtPosition(BATTLE_PARTNER(position))) { BtlController_EmitLinkStandbyMsg(battler, B_COMM_TO_CONTROLLER, LINK_STANDBY_MSG_STOP_BOUNCE, i); } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 75d15d6449..a371a076ea 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6730,7 +6730,6 @@ static void Cmd_moveend(void) } enum BattleMoveEffects originalEffect = GetMoveEffect(originallyUsedMove); if (!(gAbsentBattlerFlags & (1u << gBattlerAttacker)) - && !gBattleStruct->battlerState[gBattlerAttacker].absent && originalEffect != EFFECT_BATON_PASS && originalEffect != EFFECT_HEALING_WISH) { if (gHitMarker & HITMARKER_OBEYS) @@ -6774,7 +6773,6 @@ static void Cmd_moveend(void) break; case MOVEEND_MIRROR_MOVE: // mirror move if (!(gAbsentBattlerFlags & (1u << gBattlerAttacker)) - && !gBattleStruct->battlerState[gBattlerAttacker].absent && !IsMoveMirrorMoveBanned(originallyUsedMove) && gHitMarker & HITMARKER_OBEYS && gBattlerAttacker != gBattlerTarget diff --git a/src/battle_util.c b/src/battle_util.c index c197ed2b14..9bd2e80017 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -370,7 +370,7 @@ void HandleAction_UseMove(void) u32 i, moveTarget; gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; - if (gBattleStruct->battlerState[gBattlerAttacker].absent + if (gAbsentBattlerFlags & 1u << gBattlerAttacker || gBattleStruct->battlerState[gBattlerAttacker].commandingDondozo || !IsBattlerAlive(gBattlerAttacker)) {