diff options
Diffstat (limited to 'src')
39 files changed, 1854 insertions, 1018 deletions
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c index 01f823fa7..d96dc7ea8 100644 --- a/src/battle/anim/battle_intro.c +++ b/src/battle/anim/battle_intro.c @@ -466,7 +466,7 @@ void sub_80E4EF8(u8 left, u8 top, u8 c, u8 paletteNum, u16 e, u8 bgMap, u8 g) u32 tileNum; s32 x; s32 y; - u8 bank = GetBankByIdentity(c); + u8 bank = GetBattlerAtPosition(c); DmaCopy16(3, gUnknown_081FAF4C[c] + gBattleMonForms[bank] * 0x800, (void *)(VRAM + e), 0x800); tileNum = e / 32 - g * 512; diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c index d57a1046e..b9e9da27f 100644 --- a/src/battle/anim/bug.c +++ b/src/battle/anim/bug.c @@ -205,7 +205,7 @@ void AnimTranslateStinger(struct Sprite *sprite) { if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) { - if (GetBankIdentity(gAnimBankTarget) == 0 || GetBankIdentity(gAnimBankTarget) == 1) + if (GetBattlerPosition(gAnimBankTarget) == 0 || GetBattlerPosition(gAnimBankTarget) == 1) { s16 temp1, temp2; diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c index fed3598fc..a750ee2c1 100644 --- a/src/battle/anim/cutter.c +++ b/src/battle/anim/cutter.c @@ -24,7 +24,7 @@ static void AnimMoveTwisterParticleStep(struct Sprite* sprite); void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 055cf5802..b70d27d1d 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -21,7 +21,7 @@ extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gAnimMoveTurn; extern const u8 gUnknown_08D1D574[]; @@ -49,7 +49,7 @@ void sub_80DFC24(u8 taskId) bank = gAnimBankAttacker; gTasks[taskId].data[1] = 16; REG_BLDALPHA = 16; - if (GetBankIdentity_permutated(bank) == 1) + if (GetBattlerPosition_permutated(bank) == 1) REG_BLDCNT = 0x3F42; else REG_BLDCNT = 0x3F44; @@ -112,7 +112,7 @@ void sub_80DFD58(u8 taskId) void sub_80DFDC0(u8 taskId) { REG_BLDALPHA = 0x1000; - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) REG_BLDCNT = 0x3F42; else REG_BLDCNT = 0x3F44; @@ -267,12 +267,12 @@ void sub_80E00EC(u8 taskId) task->data[14] = pos - 32; task->data[15] = pos + 32; - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) == B_SIDE_PLAYER) task->data[8] = -12; else task->data[8] = -64; - task->data[3] = GetBankIdentity_permutated(gAnimBankAttacker); + task->data[3] = GetBattlerPosition_permutated(gAnimBankAttacker); if (task->data[3] == 1) { sub_8078914(&subStruct); @@ -403,7 +403,7 @@ void sub_80E03BC(u8 taskId) } else { - task->data[3] = GetBankIdentity_permutated(gAnimBankTarget); + task->data[3] = GetBattlerPosition_permutated(gAnimBankTarget); if (task->data[3] == 1) { REG_BLDCNT = 0x3F42; @@ -442,7 +442,7 @@ void sub_80E03BC(u8 taskId) task->data[14] = pos - 4; task->data[15] = pos + 4; - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBankSide(gAnimBankTarget) == B_SIDE_PLAYER) task->data[8] = -12; else task->data[8] = -64; @@ -791,7 +791,7 @@ static void sub_80E08CC(u8 priority) void sub_80E0918(u8 taskId) { - u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; + u8 toBG2 = GetBattlerPosition_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; MoveBattlerSpriteToBG(gAnimBankAttacker, toBG2); gSprites[gBankSpriteIds[gAnimBankAttacker]].invisible = 0; @@ -806,7 +806,7 @@ void sub_80E0918(u8 taskId) void sub_80E09C4(u8 taskId) { - u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; + u8 toBG2 = GetBattlerPosition_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; sub_8076464(toBG2); if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) @@ -847,7 +847,7 @@ void sub_80E0A4C(u8 taskId) if (IsDoubleBattle() && !IsContest()) { - if (GetBankIdentity(gAnimBankAttacker) == 3 || GetBankIdentity(gAnimBankAttacker) == 0) + if (GetBattlerPosition(gAnimBankAttacker) == 3 || GetBattlerPosition(gAnimBankAttacker) == 0) { if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2) == TRUE) { @@ -864,10 +864,10 @@ void sub_80E0A4C(u8 taskId) } else { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) - species = GetMonData(&gEnemyParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES); + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gAnimBankAttacker]], MON_DATA_SPECIES); else - species = GetMonData(&gPlayerParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gAnimBankAttacker]], MON_DATA_SPECIES); } spriteId = GetAnimBankSpriteId(0); @@ -961,19 +961,19 @@ void sub_80E0E24(u8 taskId) spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); break; case 4: - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; calcSpriteId = TRUE; break; case 5: - identity = IDENTITY_PLAYER_MON2; + identity = B_POSITION_PLAYER_RIGHT; calcSpriteId = TRUE; break; case 6: - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; calcSpriteId = TRUE; break; case 7: - identity = IDENTITY_OPPONENT_MON2; + identity = B_POSITION_OPPONENT_RIGHT; calcSpriteId = TRUE; break; default: @@ -983,7 +983,7 @@ void sub_80E0E24(u8 taskId) if (calcSpriteId) { - bank = GetBankByIdentity(identity); + bank = GetBattlerAtPosition(identity); if (IsAnimBankSpriteVisible(bank)) spriteId = gBankSpriteIds[bank]; else diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c index dc2c0bc50..e8e07c443 100644 --- a/src/battle/anim/dragon.c +++ b/src/battle/anim/dragon.c @@ -169,7 +169,7 @@ void sub_80DF924(u8 taskId) struct Task *task = &gTasks[taskId]; u16 i; u8 r1; - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) { sp.dmaDest = ®_BG1HOFS; task->data[2] = gBattle_BG1_X; diff --git a/src/battle/anim/draw.c b/src/battle/anim/draw.c index be3a280af..29b0c0ceb 100644 --- a/src/battle/anim/draw.c +++ b/src/battle/anim/draw.c @@ -32,7 +32,7 @@ void sub_80D0C88(u8 taskId) task->data[5] = 0; task->data[15] = sub_807A100(gAnimBankTarget, 0); - if (GetBankIdentity_permutated(gAnimBankTarget) == 1) + if (GetBattlerPosition_permutated(gAnimBankTarget) == 1) { task->data[6] = gBattle_BG1_X; params.dmaDest = (u16 *)REG_ADDR_BG1HOFS; diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c index 8111f70a3..1889cfc67 100644 --- a/src/battle/anim/energy_wave.c +++ b/src/battle/anim/energy_wave.c @@ -130,7 +130,7 @@ void sub_80D3728(struct Sprite *sprite) { gBattleAnimArgs[0] *= -1; - if (GetBankIdentity(gAnimBankAttacker) == 0 || GetBankIdentity(gAnimBankAttacker) == 1) + if (GetBattlerPosition(gAnimBankAttacker) == 0 || GetBattlerPosition(gAnimBankAttacker) == 1) { gBattleAnimArgs[0] *= -1; } diff --git a/src/battle/anim/evasion.c b/src/battle/anim/evasion.c index ded8428d4..a441110f8 100644 --- a/src/battle/anim/evasion.c +++ b/src/battle/anim/evasion.c @@ -47,7 +47,7 @@ void sub_80CE7E0(u8 taskId) } task->func = sub_80CE910; - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) { REG_DISPCNT &= 0xFDFF; } @@ -62,7 +62,7 @@ void sub_80CE910(u8 taskId) struct Task* task = &gTasks[taskId]; if (!task->data[3]) { - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) REG_DISPCNT |= 0x200; else REG_DISPCNT |= 0x400; diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index 0f46187f2..36a8a5008 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -21,7 +21,7 @@ extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gAnimMoveTurn; extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; @@ -50,7 +50,7 @@ void sub_080B08A0(struct Sprite *sprite) void sub_80D902C(struct Sprite *sprite) { - if (gBattleAnimArgs[7] == 1 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (gBattleAnimArgs[7] == 1 && GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; @@ -196,12 +196,12 @@ static void sub_80D9328(struct Sprite *sprite) void sub_80D9378(struct Sprite *sprite) { - if ((gAnimBankAttacker ^ 2) == gAnimBankTarget && GetBankIdentity(gAnimBankTarget) < 2) + if ((gAnimBankAttacker ^ 2) == gAnimBankTarget && GetBattlerPosition(gAnimBankTarget) < 2) gBattleAnimArgs[0] *= -1; sub_8078764(sprite, 1); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[3]; @@ -538,7 +538,7 @@ void sub_80D9A38(struct Sprite *sprite) if (IsContest()) sprite->oam.matrixNum |= 0x8; - else if (GetBankSide(bank) == SIDE_PLAYER) + else if (GetBankSide(bank) == B_SIDE_PLAYER) sprite->oam.matrixNum |= 0x18; sprite->data[0] = 16; @@ -572,7 +572,7 @@ void sub_80D9B48(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[2]; turn = gAnimMoveTurn; - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBankSide(gAnimBankTarget) == B_SIDE_PLAYER) turn++; if (turn & 1) @@ -598,7 +598,7 @@ void sub_80D9BD4(struct Sprite *sprite) { StartSpriteAnim(sprite, 2); } - else if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + else if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) { StartSpriteAnim(sprite, 1); } @@ -644,7 +644,7 @@ void sub_80D9C80(u8 taskId) task->data[10] += 2816; - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBankSide(gAnimBankTarget) == B_SIDE_PLAYER) gBattle_BG3_X += task->data[9] >> 8; else gBattle_BG3_X -= task->data[9] >> 8; diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index f9c9b6d3b..4378ff298 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -34,8 +34,8 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); void AnimEmberFlare(struct Sprite *sprite) { if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget) - && (gAnimBankAttacker == GetBankByIdentity(IDENTITY_PLAYER_MON2) - || gAnimBankAttacker == GetBankByIdentity(IDENTITY_OPPONENT_MON2))) + && (gAnimBankAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + || gAnimBankAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->callback = sub_8079534; diff --git a/src/battle/anim/orbit.c b/src/battle/anim/orbit.c index e7dd0df49..7bf5f647c 100644 --- a/src/battle/anim/orbit.c +++ b/src/battle/anim/orbit.c @@ -64,7 +64,7 @@ void sub_80CACEC(u8 taskId) } else { - if (GetBankIdentity_permutated(gAnimBankTarget) == 1) + if (GetBattlerPosition_permutated(gAnimBankTarget) == 1) { REG_BG2CNT_BITFIELD.priority = 3; } diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index 42f396870..2a9cd364e 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -38,7 +38,7 @@ void sub_80DC5F4(u8 taskId); void sub_80DB74C(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER || IsContest()) + if (GetBankSide(gAnimBankAttacker) == B_SIDE_PLAYER || IsContest()) { sprite->oam.priority = 2; sprite->subpriority = 200; @@ -47,8 +47,8 @@ void sub_80DB74C(struct Sprite *sprite) if (!IsContest()) { u8 bankCopy; - u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - u8 identity = GetBankIdentity_permutated(bank); + u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + u8 identity = GetBattlerPosition_permutated(bank); int var0 = 1; u8 toBG_2 = (identity ^ var0) != 0; @@ -62,7 +62,7 @@ void sub_80DB74C(struct Sprite *sprite) if (!IsContest() && IsDoubleBattle()) { - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) == B_SIDE_PLAYER) { sprite->pos1.x = 72; sprite->pos1.y = 80; @@ -75,7 +75,7 @@ void sub_80DB74C(struct Sprite *sprite) } else { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[0]; @@ -131,7 +131,7 @@ static void sub_80DB92C(struct Sprite *sprite) if (!IsContest()) { u8 bankCopy; - u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); if (IsAnimBankSpriteVisible(bank)) gSprites[gBankSpriteIds[bank]].invisible = 0; @@ -151,8 +151,8 @@ static void sub_80DB9E4(struct Sprite *sprite) if (!IsContest()) { u8 bankCopy; - u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - u8 identity = GetBankIdentity_permutated(bank); + u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + u8 identity = GetBattlerPosition_permutated(bank); int var0 = 1; u8 toBG_2 = (identity ^ var0) != 0; @@ -178,7 +178,7 @@ void sub_80DBA4C(struct Sprite *sprite) if (!IsContest() && IsDoubleBattle()) { - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) == B_SIDE_PLAYER) { sprite->pos1.x = 72 - gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1] + 80; @@ -211,7 +211,7 @@ void sub_80DBAF4(struct Sprite *sprite) sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) { StartSpriteAnim(sprite, 1); sprite->pos1.x -= 40; @@ -234,7 +234,7 @@ void sub_80DBB70(struct Sprite *sprite) s16 x = sub_807A100(gAnimBankAttacker, 1) / 2; s16 y = sub_807A100(gAnimBankAttacker, 0) / -2; - if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT) + if (GetBankSide(gAnimBankAttacker) == B_SIDE_OPPONENT) { x = -x; } @@ -306,7 +306,7 @@ void sub_80DBCFC(u8 taskId) task->data[0] = spriteId; task->data[1] = 0; task->data[2] = 0; - task->data[3] = GetBankSide(gAnimBankAttacker) != SIDE_PLAYER ? 4 : 8; + task->data[3] = GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER ? 4 : 8; sub_80798F4(task, task->data[0], &gUnknown_083DA8C4); task->func = sub_80DBD58; @@ -581,7 +581,7 @@ void sub_80DC2D4(u8 taskId) if (task->data[14] < 0) task->data[14] = 0; - if (GetBankIdentity_permutated(gAnimBankTarget) == 1) + if (GetBattlerPosition_permutated(gAnimBankTarget) == 1) { task->data[10] = gBattle_BG1_X; scanlineParams.dmaDest = ®_BG1HOFS; diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c index 6fbe065b8..a9e9afb71 100644 --- a/src/battle/anim/rock.c +++ b/src/battle/anim/rock.c @@ -78,7 +78,7 @@ void sub_80DCF60(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[5]); AnimateSprite(sprite); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) sprite->pos1.x -= gBattleAnimArgs[0]; else sprite->pos1.x += gBattleAnimArgs[0]; @@ -154,7 +154,7 @@ void do_boulder_dust(u8 taskId) if (IsContest()) sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0); - if (gBattleAnimArgs[0] != 0 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (gBattleAnimArgs[0] != 0 && GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) var0 = 1; gTasks[taskId].data[0] = var0; @@ -231,7 +231,7 @@ void sub_80DD3AC(struct Sprite *sprite) { if (sprite->data[0] == 0) { - if (gBattleAnimArgs[3] != 0 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (gBattleAnimArgs[3] != 0 && GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) { sprite->pos1.x = 304; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -514,7 +514,7 @@ static void sub_80DD928(struct Sprite *sprite) void sub_80DD978(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT) + if (GetBankSide(gAnimBankAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(sprite, 1); TranslateAnimSpriteToTargetMonLocation(sprite); diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 10ef1681e..afe7c90b6 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -9,7 +9,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gAnimSpeciesByBanks[]; extern u8 gUnknown_0202F7D2; @@ -176,9 +176,9 @@ void sub_812B18C(u8 taskId) } if (GetBankSide(bank)) - species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], 0xB); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], 0xB); else - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], 0xB); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], 0xB); } if (species != 0) diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index a6e01f6c8..ac4d791d5 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -87,7 +87,7 @@ extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBattler; extern u32 gBattleExecBuffer; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gCurrentActionFuncId; extern u8 gBanksByTurnOrder[]; extern struct UnknownStruct12 gUnknown_02024AD0[]; @@ -95,7 +95,7 @@ extern u8 gBankSpriteIds[]; extern u16 gCurrentMove; // This is mis-named. It is a species, not a move ID. extern u8 gLastUsedAbility; extern u8 gStringBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gActionForBanks[]; extern u16 gUnknown_02024C2C[]; @@ -104,7 +104,7 @@ extern u16 gLastLandedMoves[]; extern u16 gLastHitByType[]; extern u16 gUnknown_02024C4C[]; extern u16 gLockedMoves[]; -extern u8 gUnknown_02024C5C[]; +extern u8 gLastHitBy[]; extern u16 gChosenMovesByBanks[]; extern u32 gHitMarker; extern u8 gUnknown_02024C70[]; @@ -152,9 +152,9 @@ extern u8 gBattleMonForms[]; extern u8 gBankAttacker; extern u8 gBankTarget; extern u16 gBattleWeather; -extern u32 gBattleMoveDamage; +extern s32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 BattleScript_FocusPunchSetUp[]; extern u16 gDynamicBasePower; extern u8 gCurrentTurnActionNumber; @@ -3347,11 +3347,11 @@ void sub_8010384(struct Sprite *sprite) else species = sprite->data[2]; - GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); // Unused return value + GetMonData(&gEnemyParty[gBattlerPartyIndexes[r6]], MON_DATA_PERSONALITY); // Unused return value if (species == SPECIES_UNOWN) { - u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); + u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r6]], MON_DATA_PERSONALITY); u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); u16 unownSpecies; @@ -3399,7 +3399,7 @@ void sub_8010494(struct Sprite *sprite) else { // this should use a MEMSET_ALT, but *(dst++) wont match with it. - dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8); + dst = (u8 *)gUnknown_081FAF4C[GetBattlerPosition(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; StartSpriteAnim(sprite, gBattleMonForms[sprite->data[0]]); @@ -3639,7 +3639,7 @@ void sub_8010874(void) gLastLandedMoves[i] = 0; gLastHitByType[i] = 0; gUnknown_02024C4C[i] = 0; - gUnknown_02024C5C[i] = 0xFF; + gLastHitBy[i] = 0xFF; gLockedMoves[i] = 0; gUnknown_02024C2C[i] = 0; eFlashFireArr.arr[i] = 0; @@ -3675,7 +3675,7 @@ void sub_8010874(void) ewram16002 = 0; ewram160A1 = 0; gLeveledUpInBattle = 0; - gAbsentBankFlags = 0; + gAbsentBattlerFlags = 0; ewram16078 = 0; ewram16086 = 0; ewram16087 = 0; @@ -3797,7 +3797,7 @@ void SwitchInClearSetData(void) gLastHitByType[gActiveBattler] = 0; gUnknown_02024C4C[gActiveBattler] = 0; gUnknown_02024C2C[gActiveBattler] = 0; - gUnknown_02024C5C[gActiveBattler] = 0xFF; + gLastHitBy[gActiveBattler] = 0xFF; ewram160ACarr2(0, gActiveBattler) = 0; ewram160ACarr2(1, gActiveBattler) = 0; @@ -3861,7 +3861,7 @@ void UndoEffectsAfterFainting(void) gLastHitByType[gActiveBattler] = 0; gUnknown_02024C4C[gActiveBattler] = 0; gUnknown_02024C2C[gActiveBattler] = 0; - gUnknown_02024C5C[gActiveBattler] = 0xFF; + gLastHitBy[gActiveBattler] = 0xFF; ewram160E8arr2(0, gActiveBattler) = 0; ewram160E8arr2(1, gActiveBattler) = 0; @@ -3905,7 +3905,7 @@ static void BattlePrepIntroSlide(void) { if (gBattleExecBuffer == 0) { - gActiveBattler = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); EmitIntroSlide(0, gBattleTerrain); MarkBufferBankForExecution(gActiveBattler); gBattleMainFunc = sub_8011384; @@ -3943,7 +3943,7 @@ void sub_8011384(void) gBattleMons[gActiveBattler].status2 = 0; } - if (GetBankIdentity(gActiveBattler) == 0) + if (GetBattlerPosition(gActiveBattler) == 0) { EmitTrainerThrow(0); MarkBufferBankForExecution(gActiveBattler); @@ -3951,7 +3951,7 @@ void sub_8011384(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (GetBankIdentity(gActiveBattler) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) { EmitTrainerThrow(0); MarkBufferBankForExecution(gActiveBattler); @@ -3973,8 +3973,8 @@ void sub_8011384(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBattler) == 2 - || GetBankIdentity(gActiveBattler) == 3) + if (GetBattlerPosition(gActiveBattler) == 2 + || GetBattlerPosition(gActiveBattler) == 3) { EmitTrainerThrow(0); MarkBufferBankForExecution(gActiveBattler); @@ -4009,7 +4009,7 @@ void bc_801333C(void) hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gActiveBattler = GetBankByIdentity(1); + gActiveBattler = GetBattlerAtPosition(1); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBattler); @@ -4027,7 +4027,7 @@ void bc_801333C(void) hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gActiveBattler = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBattler); @@ -4062,7 +4062,7 @@ void bc_battle_begin_message(void) { if (gBattleExecBuffer == 0) { - gActiveBattler = GetBankByIdentity(1); + gActiveBattler = GetBattlerAtPosition(1); PrepareStringBattle(0, gActiveBattler); gBattleMainFunc = sub_8011800; } @@ -4081,7 +4081,7 @@ void sub_8011800(void) { if (gBattleExecBuffer == 0) { - PrepareStringBattle(1, GetBankByIdentity(1)); + PrepareStringBattle(1, GetBattlerAtPosition(1)); gBattleMainFunc = sub_8011834; } } @@ -4092,13 +4092,13 @@ void sub_8011834(void) { for (gActiveBattler = 0; gActiveBattler < gNoOfAllBanks; gActiveBattler++) { - if (GetBankIdentity(gActiveBattler) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) { EmitTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) - && GetBankIdentity(gActiveBattler) == 3) + && GetBattlerPosition(gActiveBattler) == 3) { EmitTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBattler); @@ -4133,7 +4133,7 @@ void sub_8011970(void) if (gBattleExecBuffer == 0) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(1, GetBankByIdentity(0)); + PrepareStringBattle(1, GetBattlerAtPosition(0)); gBattleMainFunc = sub_80119B4; } } @@ -4144,13 +4144,13 @@ void sub_80119B4(void) { for (gActiveBattler = 0; gActiveBattler < gNoOfAllBanks; gActiveBattler++) { - if (GetBankIdentity(gActiveBattler) == 0) + if (GetBattlerPosition(gActiveBattler) == 0) { EmitTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) - && GetBankIdentity(gActiveBattler) == 2) + && GetBattlerPosition(gActiveBattler) == 2) { EmitTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBattler); @@ -4171,7 +4171,7 @@ void unref_sub_8011A68(void) { if (GetBankSide(gActiveBattler) == 0) { - EmitSendOutPoke(0, gBattlePartyID[gActiveBattler], 0); + EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], 0); MarkBufferBankForExecution(gActiveBattler); } } @@ -4239,7 +4239,7 @@ void BattleBeginFirstTurn(void) } TurnValuesCleanUp(0); SpecialStatusesClear(); - ewram160A6 = gAbsentBankFlags; + ewram160A6 = gAbsentBattlerFlags; gBattleMainFunc = sub_8012324; ResetSentPokesToOpponentValue(); for (i = 0; i < 8; i++) @@ -4253,7 +4253,7 @@ void BattleBeginFirstTurn(void) ewram1600C = 0; ewram16059 = 0; ewram1600E = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gRandomTurnNumber = Random(); } } @@ -4278,7 +4278,7 @@ void bc_8013B1C(void) ewram16110 = 0; ewram16111 = 0; ewram1600E = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; } } @@ -4308,7 +4308,7 @@ void BattleTurnPassed(void) ewram160A1 = 0; ewram1600C = 0; gBattleMoveDamage = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; for (i = 0; i < 5; i++) gBattleCommunication[i] = 0; if (gBattleOutcome != 0) @@ -4326,7 +4326,7 @@ void BattleTurnPassed(void) } for (i = 0; i < 4; i++) ewram16068arr(i) = 6; - ewram160A6 = gAbsentBankFlags; + ewram160A6 = gAbsentBattlerFlags; gBattleMainFunc = sub_8012324; gRandomTurnNumber = Random(); } @@ -4400,7 +4400,7 @@ void sub_8012258(u8 a) for (i = 0; i < 3; i++) gUnknown_02038470[i] = ewram1606Carr(i, a); - r4 = pokemon_order_func(gBattlePartyID[a]); + r4 = pokemon_order_func(gBattlerPartyIndexes[a]); r1 = pokemon_order_func(ewram16068arr(a)); sub_8094C98(r4, r1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -4430,15 +4430,15 @@ void sub_8012324(void) //_0801234C for (gActiveBattler = 0; gActiveBattler < gNoOfAllBanks; gActiveBattler++) { - r5 = GetBankIdentity(gActiveBattler); + r5 = GetBattlerPosition(gActiveBattler); switch (gBattleCommunication[gActiveBattler]) { case 0: ewram16068arr(gActiveBattler) = 6; if (!(gBattleTypeFlags & 0x40) && (r5 & 2) - && !(ewram160A6 & gBitTable[GetBankByIdentity(r5 ^ 2)]) - && gBattleCommunication[GetBankByIdentity(r5)] != 4) + && !(ewram160A6 & gBitTable[GetBattlerAtPosition(r5 ^ 2)]) + && gBattleCommunication[GetBattlerAtPosition(r5)] != 4) break; //_080123F8 if (ewram160A6 & gBitTable[gActiveBattler]) @@ -4494,7 +4494,7 @@ _08012348: .4byte gNoOfAllBanks\n\ _0801234C:\n\ ldr r4, _08012374 @ =gActiveBattler\n\ ldrb r0, [r4]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r5, r0, 24\n\ ldr r1, _08012378 @ =gBattleCommunication\n\ @@ -4545,7 +4545,7 @@ _0801239C:\n\ beq _080123F8\n\ eors r5, r1\n\ adds r0, r5, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r2, _08012444 @ =0x000160a6\n\ adds r1, r4, r2\n\ ldrb r1, [r1]\n\ @@ -4559,7 +4559,7 @@ _0801239C:\n\ bne _080123F8\n\ ldr r4, _0801244C @ =gBattleCommunication\n\ adds r0, r5, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ adds r0, r4\n\ @@ -4907,7 +4907,7 @@ _080126E0:\n\ ldr r4, _08012740 @ =0x00016064\n\ adds r1, r0, r4\n\ adds r1, r3\n\ - ldr r2, _08012744 @ =gBattlePartyID\n\ + ldr r2, _08012744 @ =gBattlerPartyIndexes\n\ lsls r0, 1\n\ adds r0, r2\n\ ldrh r0, [r0]\n\ @@ -4949,7 +4949,7 @@ _08012722:\n\ _08012738: .4byte gSharedMem\n\ _0801273C: .4byte gActiveBattler\n\ _08012740: .4byte 0x00016064\n\ -_08012744: .4byte gBattlePartyID\n\ +_08012744: .4byte gBattlerPartyIndexes\n\ _08012748: .4byte gBattleMons\n\ _0801274C: .4byte 0x0400e000\n\ _08012750: .4byte gStatuses3\n\ @@ -5180,12 +5180,12 @@ _0801292C:\n\ movs r0, 0x6\n\ strb r0, [r1]\n\ ldrb r0, [r3]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x2\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ adds r0, r4\n\ @@ -5735,7 +5735,7 @@ _08012DD2:\n\ bne _08012E06\n\ adds r0, r5, 0\n\ eors r0, r1\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r1, _08012E20 @ =gSharedMem\n\ ldr r2, _08012E24 @ =0x000160a6\n\ adds r1, r2\n\ @@ -6322,7 +6322,7 @@ void HandleEndTurn_BattleWon(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -6372,7 +6372,7 @@ void HandleEndTurn_BattleLost(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -6408,7 +6408,7 @@ void HandleEndTurn_MonFled(void) { gCurrentActionFuncId = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlerPartyIndexes[gBankAttacker]); gBattlescriptCurrInstr = BattleScript_WildMonFled; gBattleMainFunc = HandleEndTurn_FinishBattle; @@ -6427,7 +6427,7 @@ void HandleEndTurn_FinishBattle(void) { for (gActiveBattler = 0; gActiveBattler < gNoOfAllBanks; gActiveBattler++) { - if (GetBankSide(gActiveBattler) == SIDE_PLAYER) + if (GetBankSide(gActiveBattler) == B_SIDE_PLAYER) { if (gBattleResults.poke1Species == SPECIES_NONE) { @@ -6572,7 +6572,7 @@ void HandleAction_UseMove(void) gCritMultiplier = 1; eDmgMultiplier = 1; ewram160E7 = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBankAttacker); @@ -6618,7 +6618,7 @@ void HandleAction_UseMove(void) gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; } - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gBankAttacker) == B_SIDE_PLAYER) gBattleResults.lastUsedMove = gCurrentMove; else gBattleResults.opponentMove = gCurrentMove; @@ -6654,19 +6654,19 @@ void HandleAction_UseMove(void) { if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gBankAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } } else @@ -6674,17 +6674,17 @@ void HandleAction_UseMove(void) gBankTarget = ewram16010arr(gBankAttacker); } - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) { if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } else { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } } } @@ -6699,41 +6699,41 @@ void HandleAction_UseMove(void) else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gBankAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBankFlags & gBitTable[gBankTarget] + if (gAbsentBattlerFlags & gBitTable[gBankTarget] && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } } else { gBankTarget = ewram16010arr(gBankAttacker); - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) { if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } else { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } } } @@ -6777,7 +6777,7 @@ void HandleAction_UseItem(void) { gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; } - else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + else if (GetBankSide(gBankAttacker) == B_SIDE_PLAYER) { gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } @@ -7272,7 +7272,7 @@ void HandleAction_Run(void) for (gActiveBattler = 0; gActiveBattler < gNoOfAllBanks; gActiveBattler++) { - if (GetBankSide(gActiveBattler) == SIDE_PLAYER) + if (GetBankSide(gActiveBattler) == B_SIDE_PLAYER) { if (gActionForBanks[gActiveBattler] == ACTION_RUN) gBattleOutcome |= BATTLE_LOST; @@ -7288,7 +7288,7 @@ void HandleAction_Run(void) } else { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBankSide(gBankAttacker) == B_SIDE_PLAYER) { if (!TryRunFromBattle(gBankAttacker)) // failed to run away { @@ -7398,7 +7398,7 @@ void HandleAction_Action9(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlerPartyIndexes[gBankAttacker]) gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 781478cb1..e1cc515ec 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -106,7 +106,7 @@ extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u8 gActiveBattler; extern u32 gBattleExecBuffer; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u16 gBattlerPartyIndexes[BATTLE_BANKS_COUNT]; extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; @@ -114,7 +114,7 @@ extern u8 gLastUsedAbility; extern u16 gBattleWeather; extern u8 gStringBank; extern u8 gEffectBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u16 gLastUsedMove[4]; extern u16 gLockedMoves[4]; @@ -132,7 +132,7 @@ extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; extern u32 gHitMarker; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 gBattleCommunication[]; extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; @@ -192,7 +192,7 @@ void RecordItemBattle(u8 bank, u8 holdEffect); static bool8 IsTwoTurnsMove(u16 move); static void TrySetDestinyBondToHappen(void); static void CheckWonderGuardAndLevitate(void); -u8 GetBankIdentity(u8 bank); +u8 GetBattlerPosition(u8 bank); u8 GetBankSide(u8 bank); u8 GetBattleBank(u8 bankValue); s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def); @@ -212,7 +212,7 @@ u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID); u16 SpeciesToNationalPokedexNum(u16 species); u8 sub_803FC34(u8 bank); u16 sub_803FBFC(u8 a); -u8 GetBankByIdentity(u8 ID); +u8 GetBattlerAtPosition(u8 ID); void sub_8012258(u8); //MonTryLearningNewMove teach poke a move u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move); @@ -1119,7 +1119,7 @@ static void atk00_attackcanceler(void) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; return; } @@ -1136,7 +1136,7 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; return; default: - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; return; } } @@ -1178,7 +1178,7 @@ static void atk00_attackcanceler(void) && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) { CancelMultiTurnMoves(gBankAttacker); - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 1; @@ -1193,7 +1193,7 @@ static void atk00_attackcanceler(void) static void JumpIfMoveFailed(u8 adder, u16 move) { const u8 *BS_ptr = gBattlescriptCurrInstr + adder; - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; @@ -1212,7 +1212,7 @@ static void atk40_jumpifaffectedbyprotect(void) { if (TARGET_PROTECT_AFFECTED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(5, 0); gBattleCommunication[6] = 1; } @@ -1227,7 +1227,7 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move) bool8 affected = FALSE; if (TARGET_PROTECT_AFFECTED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); gBattleCommunication[6] = 1; affected = TRUE; @@ -1245,7 +1245,7 @@ static bool8 AccuracyCalcHelper(u16 move) if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1254,7 +1254,7 @@ static bool8 AccuracyCalcHelper(u16 move) if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1263,7 +1263,7 @@ static bool8 AccuracyCalcHelper(u16 move) if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1359,7 +1359,7 @@ static void atk01_accuracycheck(void) // final calculation if ((Random() % 100 + 1) > calc) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && (gBattleMoves[move].target == 0x8 || gBattleMoves[move].target == 0x20)) gBattleCommunication[6] = 2; @@ -1470,7 +1470,7 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 side_hword = gSideAffecting[GetBankIdentity(gBankTarget) & 1]; + u16 side_hword = gSideAffecting[GetBattlerPosition(gBankTarget) & 1]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, side_hword, gDynamicBasePower, gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget); @@ -1486,7 +1486,7 @@ static void atk05_damagecalc(void) void AI_CalcDmg(u8 BankAtk, u8 BankDef) { - u16 side_hword = gSideAffecting[GetBankIdentity(BankDef) & 1]; + u16 side_hword = gSideAffecting[GetBattlerPosition(BankDef) & 1]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[BankAtk], &gBattleMons[BankDef], gCurrentMove, side_hword, gDynamicBasePower, gBattleStruct->dynamicMoveType, BankAtk, BankDef); @@ -1508,26 +1508,26 @@ static void ModulateDmgByType(u8 multiplier) switch (multiplier) { case 0: //no effect - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; - gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; - gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; break; case 5: //not very effecting - if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) - gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) + gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; else - gBattleMoveFlags |= MOVESTATUS_NOTVERYEFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } break; case 20: //super effective - if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) - gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; else - gBattleMoveFlags |= MOVESTATUS_SUPEREFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_SUPER_EFFECTIVE; } break; } @@ -1554,7 +1554,7 @@ static void atk06_typecalc(void) if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { gLastUsedAbility = gBattleMons[gBankTarget].ability; - gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = move_type; @@ -1587,17 +1587,17 @@ static void atk06_typecalc(void) } if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 - && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(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; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gProtectStructs[gBankAttacker].notEffective = 1; } gBattlescriptCurrInstr++; @@ -1637,14 +1637,14 @@ static void CheckWonderGuardAndLevitate(void) //check no effect if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBankAttacker].notEffective = 1; } if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBankAttacker].notEffective = 1; } @@ -1685,26 +1685,26 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c switch (multiplier) { case 0: //no effect - *flags |= MOVESTATUS_NOTAFFECTED; - *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; - *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + *flags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE; break; case 5: //not very effecting - if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT)) { - if (*flags & MOVESTATUS_SUPEREFFECTIVE) - *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + if (*flags & MOVE_RESULT_SUPER_EFFECTIVE) + *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE; else - *flags |= MOVESTATUS_NOTVERYEFFECTIVE; + *flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } break; case 20: //super effective - if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT)) { - if (*flags & MOVESTATUS_NOTVERYEFFECTIVE) - *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + if (*flags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; else - *flags |= MOVESTATUS_SUPEREFFECTIVE; + *flags |= MOVE_RESULT_SUPER_EFFECTIVE; } break; } @@ -1730,7 +1730,7 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def) if (gBattleMons[bank_def].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { - flags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); } else { @@ -1758,12 +1758,12 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def) } } - if (gBattleMons[bank_def].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_MISSED) && + if (gBattleMons[bank_def].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) && AttacksThisTurn(bank_atk, move) == 2 && - (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) && + (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) { - flags |= MOVESTATUS_MISSED; + flags |= MOVE_RESULT_MISSED; } return flags; } @@ -1780,7 +1780,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) move_type = gBattleMoves[move].type; if (ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) - flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED; + flags = MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE; else { while (gTypeEffectiveness[i]!= TYPE_ENDTABLE) @@ -1803,9 +1803,9 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) } } if (ability == ABILITY_WONDER_GUARD - && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) - flags |= MOVESTATUS_NOTAFFECTED; + flags |= MOVE_RESULT_DOESNT_AFFECT_FOE; return flags; } @@ -1863,12 +1863,12 @@ static void atk07_adjustnormaldamage(void) if (gProtectStructs[gBankTarget].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } if (gSpecialStatuses[gBankTarget].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBankTarget].item; } @@ -1910,12 +1910,12 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i if (gProtectStructs[gBankTarget].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } if (gSpecialStatuses[gBankTarget].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBankTarget].item; } @@ -1942,7 +1942,7 @@ static void atk09_attackanimation(void) gBattlescriptCurrInstr++; return; } - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gActiveBattler = gBankAttacker; @@ -1971,7 +1971,7 @@ static void atk0B_healthbarupdate(void) if (gBattleExecBuffer) return; - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -1999,7 +1999,7 @@ static void atk0B_healthbarupdate(void) EmitHealthBarUpdate(0, gBattleMoveDamage); MarkBufferBankForExecution(gActiveBattler); - if (GetBankSide(gActiveBattler) == SIDE_PLAYER && gBattleMoveDamage > 0) + if (GetBankSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) gBattleResults.unk5_0 = 1; } } @@ -2021,7 +2021,7 @@ static void atk0C_datahpupdate(void) else moveType = gBattleMoves[gCurrentMove].type; - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) @@ -2137,7 +2137,7 @@ static void atk0D_critmessage(void) { if (gBattleExecBuffer == 0) { - if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { PrepareStringBattle(0xD9, gBankAttacker); gBattleCommunication[MSG_DISPLAY] = 1; @@ -2152,37 +2152,37 @@ static void atk0E_effectivenesssound(void) return; gActiveBattler = gBankTarget; - if (!(gBattleMoveFlags & MOVESTATUS_MISSED)) + if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { - u8 flag = ~MOVESTATUS_MISSED; - switch (gBattleMoveFlags & flag) + u8 flag = ~MOVE_RESULT_MISSED; + switch (gMoveResultFlags & flag) { - case MOVESTATUS_SUPEREFFECTIVE: + case MOVE_RESULT_SUPER_EFFECTIVE: EmitEffectivenessSound(0, 14); MarkBufferBankForExecution(gActiveBattler); break; - case MOVESTATUS_NOTVERYEFFECTIVE: + case MOVE_RESULT_NOT_VERY_EFFECTIVE: EmitEffectivenessSound(0, 12); MarkBufferBankForExecution(gActiveBattler); break; - case MOVESTATUS_NOTAFFECTED: - case MOVESTATUS_FAILED: + case MOVE_RESULT_DOESNT_AFFECT_FOE: + case MOVE_RESULT_FAILED: break; - case MOVESTATUS_ENDURED: - case MOVESTATUS_ONEHITKO: - case MOVESTATUS_HUNGON: + case MOVE_RESULT_FOE_ENDURED: + case MOVE_RESULT_ONE_HIT_KO: + case MOVE_RESULT_FOE_HUNG_ON: default: - if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) + if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { EmitEffectivenessSound(0, 14); MarkBufferBankForExecution(gActiveBattler); } - else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) + else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { EmitEffectivenessSound(0, 12); MarkBufferBankForExecution(gActiveBattler); } - else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) + else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { EmitEffectivenessSound(0, 13); MarkBufferBankForExecution(gActiveBattler); @@ -2200,7 +2200,7 @@ static void atk0F_resultmessage(void) if (gBattleExecBuffer) return; - if (gBattleMoveFlags & MOVESTATUS_MISSED && (!(gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) || gBattleCommunication[6] > 2)) + if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) { stringId = gMissStringIds[gBattleCommunication[6]]; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2208,64 +2208,64 @@ static void atk0F_resultmessage(void) else { gBattleCommunication[MSG_DISPLAY] = 1; - switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) + switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { - case MOVESTATUS_SUPEREFFECTIVE: + case MOVE_RESULT_SUPER_EFFECTIVE: stringId = STRINGID_SUPEREFFECTIVE; break; - case MOVESTATUS_NOTVERYEFFECTIVE: + case MOVE_RESULT_NOT_VERY_EFFECTIVE: stringId = STRINGID_NOTVERYEFFECTIVE; break; - case MOVESTATUS_ONEHITKO: + case MOVE_RESULT_ONE_HIT_KO: stringId = STRINGID_ONEHITKO; break; - case MOVESTATUS_ENDURED: + case MOVE_RESULT_FOE_ENDURED: stringId = STRINGID_PKMNENDUREDHIT; break; - case MOVESTATUS_FAILED: + case MOVE_RESULT_FAILED: stringId = STRINGID_BUTITFAILED; break; - case MOVESTATUS_NOTAFFECTED: + case MOVE_RESULT_DOESNT_AFFECT_FOE: stringId = STRINGID_ITDOESNTAFFECT; break; - case MOVESTATUS_HUNGON: + case MOVE_RESULT_FOE_HUNG_ON: gLastUsedItem = gBattleMons[gBankTarget].item; gStringBank = gBankTarget; - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; default: - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) { stringId = STRINGID_ITDOESNTAFFECT; } - else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO) + else if (gMoveResultFlags & MOVE_RESULT_ONE_HIT_KO) { - gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO); - gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE); - gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE); + gMoveResultFlags &= ~(MOVE_RESULT_ONE_HIT_KO); + gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE); + gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_OneHitKOMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_ENDURED) + else if (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED) { - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_EnduredMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_HUNGON) + else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { gLastUsedItem = gBattleMons[gBankTarget].item; gStringBank = gBankTarget; - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_FAILED) + else if (gMoveResultFlags & MOVE_RESULT_FAILED) { stringId = STRINGID_BUTITFAILED; } @@ -2387,7 +2387,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) {gBattlescriptCurrInstr++; return;} - if (gSideAffecting[GetBankIdentity(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && + if (gSideAffecting[GetBattlerPosition(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) {gBattlescriptCurrInstr++; return;} @@ -2555,7 +2555,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) break; } else - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (StatusChanged == 1) @@ -2634,7 +2634,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 11: //pay day - if (!(GetBankIdentity(gBankAttacker) & 1)) + if (!(GetBattlerPosition(gBankAttacker) & 1)) { u16 PayDay = gPaydayMoney; gPaydayMoney += (gBattleMons[gBankAttacker].level * 5); @@ -2732,7 +2732,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) u8 side = GetBankSide(gBankAttacker); if (GetBankSide(gBankAttacker) == 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[gBattlePartyID[gBankAttacker]])) + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBankAttacker]])) {gBattlescriptCurrInstr++; return;} if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) { @@ -2835,7 +2835,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) u8 side = GetBankSide(gEffectBank); gLastUsedItem = gBattleMons[gEffectBank].item; gBattleMons[gEffectBank].item = 0; - gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]]; + gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBank]]; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_KnockedOff; @@ -2932,7 +2932,7 @@ _0801E450:\n\ _0801E48A:\n\ mov r1, r8\n\ ldrb r0, [r1]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ ldr r2, _0801E554 @ =gSideAffecting\n\ movs r1, 0x1\n\ ands r1, r0\n\ @@ -3644,7 +3644,7 @@ _0801EA04:\n\ mov r10, r0\n\ b _0801EA14\n\ _0801EA0A:\n\ - ldr r0, _0801EA58 @ =gBattleMoveFlags\n\ + ldr r0, _0801EA58 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r2, 0x8\n\ orrs r1, r2\n\ @@ -3683,7 +3683,7 @@ _0801EA1C:\n\ str r0, [r3]\n\ b _0801EA84\n\ .align 2, 0\n\ -_0801EA58: .4byte gBattleMoveFlags\n\ +_0801EA58: .4byte gMoveResultFlags\n\ _0801EA5C: .4byte gBattlescriptCurrInstr\n\ _0801EA60: .4byte sStatusFlagsForMoveEffects\n\ _0801EA64: .4byte gBattleCommunication\n\ @@ -4050,7 +4050,7 @@ _0801EDD8: .4byte gBattleCommunication\n\ _0801EDDC:\n\ ldr r5, _0801EE30 @ =gBankAttacker\n\ ldrb r0, [r5]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x1\n\ ands r1, r0\n\ cmp r1, 0\n\ @@ -4539,7 +4539,7 @@ _0801F1D8:\n\ adds r0, r6, r0\n\ ldrb r1, [r0]\n\ ldr r3, _0801F268 @ =gBitTable\n\ - ldr r2, _0801F26C @ =gBattlePartyID\n\ + ldr r2, _0801F26C @ =gBattlerPartyIndexes\n\ ldr r0, _0801F254 @ =gBankAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ @@ -4590,7 +4590,7 @@ _0801F25C: .4byte 0x00000902\n\ _0801F260: .4byte gTrainerBattleOpponent\n\ _0801F264: .4byte gWishFutureKnock\n\ _0801F268: .4byte gBitTable\n\ -_0801F26C: .4byte gBattlePartyID\n\ +_0801F26C: .4byte gBattlerPartyIndexes\n\ _0801F270: .4byte gBattleMons\n\ _0801F274: .4byte gBankTarget\n\ _0801F278: .4byte gBattlescriptCurrInstr\n\ @@ -4944,7 +4944,7 @@ _0801F540:\n\ adds r2, 0x29\n\ adds r2, r6, r2\n\ ldr r3, _0801F5C0 @ =gBitTable\n\ - ldr r1, _0801F5C4 @ =gBattlePartyID\n\ + ldr r1, _0801F5C4 @ =gBattlerPartyIndexes\n\ mov r4, r8\n\ ldrb r0, [r4]\n\ lsls r0, 1\n\ @@ -4981,7 +4981,7 @@ _0801F540:\n\ _0801F5B8: .4byte gLastUsedItem\n\ _0801F5BC: .4byte gWishFutureKnock\n\ _0801F5C0: .4byte gBitTable\n\ -_0801F5C4: .4byte gBattlePartyID\n\ +_0801F5C4: .4byte gBattlerPartyIndexes\n\ _0801F5C8: .4byte gBattlescriptCurrInstr\n\ _0801F5CC: .4byte BattleScript_KnockedOff\n\ _0801F5D0: .4byte gSharedMem\n\ @@ -5029,16 +5029,16 @@ static void atk15_seteffectwithchance(void) PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; if (DEBUG && (gUnknown_02023A14_50 & 4) - && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { SetMoveEffect(0, 0); } - else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gBattleCommunication[MOVE_EFFECT_BYTE] &= 0x7F; SetMoveEffect(0, 0x80); } - else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (PercentChance >= 100) SetMoveEffect(0, 0x80); @@ -5113,7 +5113,7 @@ static void atk19_tryfaintmon(void) bank = gBankAttacker; r4 = BattleScript_FaintTarget; } - if (!(gAbsentBankFlags & gBitTable[gActiveBattler]) + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gBattleMons[gActiveBattler].hp == 0) { ewram160ACarr2(0, bank) = 0; @@ -5134,9 +5134,9 @@ static void atk19_tryfaintmon(void) if (gBattleMons[bank].level > gBattleMons[gActiveBattler].level) { if (gBattleMons[bank].level - gBattleMons[gActiveBattler].level > 0x1D) - AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBattler]], 8); + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 8); else - AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBattler]], 6); + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 6); } } else @@ -5279,9 +5279,9 @@ static void atk1F_jumpifsideaffecting(void) u16 flags; void* jump_loc; if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1) - side = GetBankIdentity(gBankAttacker) & 1; + side = GetBattlerPosition(gBankAttacker) & 1; else - side = GetBankIdentity(gBankTarget) & 1; + side = GetBattlerPosition(gBankTarget) & 1; flags = T2_READ_16(gBattlescriptCurrInstr + 2); jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4); @@ -5382,7 +5382,7 @@ static void atk23_getexp(void) switch (gBattleStruct->getexpStateTracker) { case 0: // check if should receive exp at all - if (GetBankSide(gBank1) != SIDE_OPPONENT || (gBattleTypeFlags & + if (GetBankSide(gBank1) != B_SIDE_OPPONENT || (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER @@ -5393,7 +5393,7 @@ static void atk23_getexp(void) else { gBattleStruct->getexpStateTracker++; - gBattleStruct->unk16113 |= gBitTable[gBattlePartyID[gBank1]]; + gBattleStruct->unk16113 |= gBitTable[gBattlerPartyIndexes[gBank1]]; } break; case 1: // calculate experience points to redistribute @@ -5503,11 +5503,11 @@ static void atk23_getexp(void) // get exp getter bank if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (!(gBattlePartyID[2] != gBattleStruct->expGetterID) && !(gAbsentBankFlags & gBitTable[2])) + if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterID) && !(gAbsentBattlerFlags & gBitTable[2])) gBattleStruct->expGetterBank = 2; else { - if (!(gAbsentBankFlags & gBitTable[0])) + if (!(gAbsentBattlerFlags & gBitTable[0])) gBattleStruct->expGetterBank = 0; else gBattleStruct->expGetterBank = 2; @@ -5558,8 +5558,8 @@ static void atk23_getexp(void) if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP) { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterID) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID) + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterID) @@ -5572,7 +5572,7 @@ static void atk23_getexp(void) AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterID], 0); // update battle mon structure after level up - if (gBattlePartyID[0] == gBattleStruct->expGetterID && gBattleMons[0].hp) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && gBattleMons[0].hp) { gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL); gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP); @@ -5586,7 +5586,7 @@ static void atk23_getexp(void) gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF); } // What is else if? - if (gBattlePartyID[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL); gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP); @@ -5915,7 +5915,7 @@ _08020B50: .4byte gBattlescriptCurrInstr\n\ static void MoveValuesCleanUp(void) { - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gBattleStruct->dmgMultiplier = 1; gCritMultiplier = 1; gBattleCommunication[MOVE_EFFECT_BYTE] = 0; @@ -6246,7 +6246,7 @@ static void atk3C_return(void) static void atk3D_end(void) { - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gActiveBattler = 0; gCurrentActionFuncId = 0xB; } @@ -6425,7 +6425,7 @@ static void atk48_playstatchangeanimation(void) if (!(T2_READ_8(gBattlescriptCurrInstr + 3))) { u8 ability; - if (gSideTimers[GetBankIdentity(gActiveBattler) & 1].mistTimer) + if (gSideTimers[GetBattlerPosition(gActiveBattler) & 1].mistTimer) continue; ability = gBattleMons[gActiveBattler].ability; if (ability == ABILITY_CLEAR_BODY || ability == ABILITY_WHITE_SMOKE || (ability == ABILITY_KEEN_EYE && curr_stat == 6) || (ability == ABILITY_HYPER_CUTTER && curr_stat == 1)) @@ -6554,7 +6554,7 @@ _0802167C:\n\ ldr r6, _08021700 @ =gActiveBattler\n\ ldrb r0, [r6]\n\ str r3, [sp]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ mov r1, r10\n\ ands r1, r0\n\ lsls r0, r1, 1\n\ @@ -6784,7 +6784,7 @@ static void atk49_moveend(void) if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && TARGET_TURN_DAMAGED + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) { gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; @@ -6798,7 +6798,7 @@ static void atk49_moveend(void) if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget && gSpecialStatuses[gBankTarget].moveturnLostHP - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && move_type == TYPE_FIRE) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move_type == TYPE_FIRE) { gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); gActiveBattler = gBankTarget; @@ -6834,7 +6834,7 @@ static void atk49_moveend(void) case 6: //update choice band move if (gHitMarker & HITMARKER_OBEYS && hold_effect_atk == HOLD_EFFECT_CHOICE_BAND && gLastUsedMove != MOVE_STRUGGLE && (*choiced_move_atk == 0 || *choiced_move_atk == 0xFFF) - && gLastUsedMove != MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && gLastUsedMove != MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { *choiced_move_atk = gLastUsedMove; for (i = 0; i < 4 && gBattleMons[gBankAttacker].moves[i] != *choiced_move_atk; i++){} @@ -6863,7 +6863,7 @@ static void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case 9: //semi-invlurneable attacker make visible - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) || WasUnableToUseMove(gBankAttacker)) { gActiveBattler = gBankAttacker; @@ -6875,7 +6875,7 @@ static void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case 10: //semi-invlurneable target make visible - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) || WasUnableToUseMove(gBankTarget)) { gActiveBattler = gBankTarget; @@ -7079,7 +7079,7 @@ _08021958:\n\ lsls r0, 24\n\ cmp r4, r0\n\ beq _080219FE\n\ - ldr r0, _08021A14 @ =gBattleMoveFlags\n\ + ldr r0, _08021A14 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7136,7 +7136,7 @@ _080219FE:\n\ _08021A08: .4byte gBattleMons\n\ _08021A0C: .4byte gBankTarget\n\ _08021A10: .4byte gBankAttacker\n\ -_08021A14: .4byte gBattleMoveFlags\n\ +_08021A14: .4byte gMoveResultFlags\n\ _08021A18: .4byte gProtectStructs\n\ _08021A1C: .4byte gBattleMoves\n\ _08021A20: .4byte gCurrentMove\n\ @@ -7185,7 +7185,7 @@ _08021A68:\n\ bne _08021A7C\n\ b _08021DFA\n\ _08021A7C:\n\ - ldr r0, _08021AE0 @ =gBattleMoveFlags\n\ + ldr r0, _08021AE0 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7231,7 +7231,7 @@ _08021AD0: .4byte gBattleMons\n\ _08021AD4: .4byte gBankTarget\n\ _08021AD8: .4byte gBankAttacker\n\ _08021ADC: .4byte gSpecialStatuses\n\ -_08021AE0: .4byte gBattleMoveFlags\n\ +_08021AE0: .4byte gMoveResultFlags\n\ _08021AE4: .4byte gActiveBattler\n\ _08021AE8: .4byte gBattlescriptCurrInstr\n\ _08021AEC: .4byte BattleScript_DefrostedViaFireMove\n\ @@ -7348,7 +7348,7 @@ _08021B9C:\n\ _08021BC8:\n\ cmp r2, 0xE2\n\ bne _08021BDA\n\ - ldr r0, _08021C34 @ =gBattleMoveFlags\n\ + ldr r0, _08021C34 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x20\n\ ands r0, r1\n\ @@ -7403,7 +7403,7 @@ _08021C22:\n\ _08021C28: .4byte gHitMarker\n\ _08021C2C: .4byte gChosenMove\n\ _08021C30: .4byte 0x0000ffff\n\ -_08021C34: .4byte gBattleMoveFlags\n\ +_08021C34: .4byte gMoveResultFlags\n\ _08021C38: .4byte gBattleMons\n\ _08021C3C: .4byte gBankAttacker\n\ _08021C40:\n\ @@ -7512,7 +7512,7 @@ _08021D0C: .4byte 0x000400c0\n\ _08021D10: .4byte gHitMarker\n\ _08021D14: .4byte gActiveBattler\n\ _08021D18:\n\ - ldr r0, _08021D88 @ =gBattleMoveFlags\n\ + ldr r0, _08021D88 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7567,7 +7567,7 @@ _08021D7E:\n\ adds r1, r2, r4\n\ b _08021E00\n\ .align 2, 0\n\ -_08021D88: .4byte gBattleMoveFlags\n\ +_08021D88: .4byte gMoveResultFlags\n\ _08021D8C: .4byte gStatuses3\n\ _08021D90: .4byte gBankAttacker\n\ _08021D94: .4byte 0x000400c0\n\ @@ -7701,7 +7701,7 @@ _08021E9A:\n\ adds r7, r2, 0\n\ cmp r0, 0x7F\n\ bne _08021EBE\n\ - ldr r0, _08021F48 @ =gBattleMoveFlags\n\ + ldr r0, _08021F48 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7715,7 +7715,7 @@ _08021EBE:\n\ adds r0, r1\n\ strh r3, [r0]\n\ _08021ECA:\n\ - ldr r0, _08021F50 @ =gAbsentBankFlags\n\ + ldr r0, _08021F50 @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, _08021F54 @ =gBitTable\n\ mov r3, r9\n\ @@ -7774,9 +7774,9 @@ _08021F38: .4byte gBankTarget\n\ _08021F3C: .4byte 0xffffefff\n\ _08021F40: .4byte gBattleMoves\n\ _08021F44: .4byte gChosenMove\n\ -_08021F48: .4byte gBattleMoveFlags\n\ +_08021F48: .4byte gMoveResultFlags\n\ _08021F4C: .4byte gUnknown_02024C2C\n\ -_08021F50: .4byte gAbsentBankFlags\n\ +_08021F50: .4byte gAbsentBattlerFlags\n\ _08021F54: .4byte gBitTable\n\ _08021F58: .4byte 0x000160a6\n\ _08021F5C: .4byte gLastUsedMove\n\ @@ -7807,7 +7807,7 @@ _08021F82:\n\ ands r1, r0\n\ cmp r1, 0\n\ bne _08021FA0\n\ - ldr r0, _08021FE0 @ =gUnknown_02024C5C\n\ + ldr r0, _08021FE0 @ =gLastHitBy\n\ adds r0, r3, r0\n\ mov r3, r9\n\ ldrb r1, [r3]\n\ @@ -7819,7 +7819,7 @@ _08021FA0:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _0802204C\n\ - ldr r0, _08021FE4 @ =gBattleMoveFlags\n\ + ldr r0, _08021FE4 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7841,8 +7841,8 @@ _08021FD0: .4byte gLastUsedMove\n\ _08021FD4: .4byte 0x0000ffff\n\ _08021FD8: .4byte gUnknown_02024C4C\n\ _08021FDC: .4byte gBankTarget\n\ -_08021FE0: .4byte gUnknown_02024C5C\n\ -_08021FE4: .4byte gBattleMoveFlags\n\ +_08021FE0: .4byte gLastHitBy\n\ +_08021FE4: .4byte gMoveResultFlags\n\ _08021FE8: .4byte gLastLandedMoves\n\ _08021FEC:\n\ ldr r0, _08022014 @ =gLastLandedMoves\n\ @@ -7901,7 +7901,7 @@ _0802205C: .4byte gLastLandedMoves\n\ _08022060: .4byte gBankTarget\n\ _08022064: .4byte 0x0000ffff\n\ _08022068:\n\ - ldr r0, _0802212C @ =gAbsentBankFlags\n\ + ldr r0, _0802212C @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r6, _08022130 @ =gBitTable\n\ ldr r2, _08022134 @ =gBankAttacker\n\ @@ -7956,7 +7956,7 @@ _080220C0:\n\ ands r1, r0\n\ cmp r1, 0\n\ bne _0802215C\n\ - ldr r0, _0802214C @ =gBattleMoveFlags\n\ + ldr r0, _0802214C @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -8003,7 +8003,7 @@ _080220C0:\n\ strb r0, [r2]\n\ b _08022244\n\ .align 2, 0\n\ -_0802212C: .4byte gAbsentBankFlags\n\ +_0802212C: .4byte gAbsentBattlerFlags\n\ _08022130: .4byte gBitTable\n\ _08022134: .4byte gBankAttacker\n\ _08022138: .4byte 0x000160a6\n\ @@ -8011,7 +8011,7 @@ _0802213C: .4byte gBattleMoves\n\ _08022140: .4byte gChosenMove\n\ _08022144: .4byte gHitMarker\n\ _08022148: .4byte gBankTarget\n\ -_0802214C: .4byte gBattleMoveFlags\n\ +_0802214C: .4byte gMoveResultFlags\n\ _08022150: .4byte 0x000160ac\n\ _08022154: .4byte 0x000160ad\n\ _08022158: .4byte 0x00016100\n\ @@ -8106,12 +8106,12 @@ _080221C0:\n\ bne _08022244\n\ ldr r7, _080222C8 @ =gBankTarget\n\ ldrb r0, [r7]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x2\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsls r0, 24\n\ lsrs r2, r0, 24\n\ ldr r1, _080222CC @ =gBattleMons\n\ @@ -8213,7 +8213,7 @@ static void atk4A_typecalc2(void) if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { gLastUsedAbility = gBattleMons[gBankTarget].ability; - gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = move_type; RecordAbilityBattle(gBankTarget, gLastUsedAbility); @@ -8235,13 +8235,13 @@ static void atk4A_typecalc2(void) { if (gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (gTypeEffectiveness[i + 2] == 5) - flags |= MOVESTATUS_NOTVERYEFFECTIVE; + flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; if (gTypeEffectiveness[i + 2] == 20) - flags |= MOVESTATUS_SUPEREFFECTIVE; + flags |= MOVE_RESULT_SUPER_EFFECTIVE; } //check type2 if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2) @@ -8249,31 +8249,31 @@ static void atk4A_typecalc2(void) if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 5) - flags |= MOVESTATUS_NOTVERYEFFECTIVE; + flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 20) - flags |= MOVESTATUS_SUPEREFFECTIVE; + flags |= MOVE_RESULT_SUPER_EFFECTIVE; } } i += 3; } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_NOEFFECT) && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 && - (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) && + if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBankAttacker, 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; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gProtectStructs[gBankAttacker].notEffective = 1; gBattlescriptCurrInstr++; @@ -8297,9 +8297,9 @@ static void atk4C_getswitchedmondata(void) gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - gBattlePartyID[gActiveBattler] = ewram16068arr(gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = ewram16068arr(gActiveBattler); - EmitGetAttributes(0, 0, gBitTable[gBattlePartyID[gActiveBattler]]); + EmitGetAttributes(0, 0, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -8328,7 +8328,7 @@ static void atk4D_switchindataupdate(void) // check knocked off item i = GetBankSide(gActiveBattler); - if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBattler]]) + if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlerPartyIndexes[gActiveBattler]]) { gBattleMons[gActiveBattler].item = 0; } @@ -8346,7 +8346,7 @@ static void atk4D_switchindataupdate(void) gBattleStruct->scriptingActive = gActiveBattler; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlePartyID[gActiveBattler]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]); gBattlescriptCurrInstr += 2; } @@ -8361,8 +8361,8 @@ static void atk4E_switchinanim(void) { GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); } - gAbsentBankFlags &= ~(gBitTable[gActiveBattler]); - EmitSendOutPoke(0, gBattlePartyID[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); + gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); + EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; } @@ -8395,7 +8395,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBattler] != val) + && gBattlerPartyIndexes[gActiveBattler] != val) break; } if (val == to_cmp) @@ -8407,18 +8407,18 @@ static void atk4F_jumpifcantswitch(void) { if (GetBankSide(gActiveBattler) == 1) { - r7 = GetBankByIdentity(1); + r7 = GetBattlerAtPosition(1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - to_cmp = GetBankByIdentity(3); + to_cmp = GetBattlerAtPosition(3); else to_cmp = r7; party = gEnemyParty; } else { - r7 = GetBankByIdentity(0); + r7 = GetBattlerAtPosition(0); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - to_cmp = GetBankByIdentity(2); + to_cmp = GetBattlerAtPosition(2); else to_cmp = r7; party = gPlayerParty; @@ -8428,7 +8428,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_HP) != 0 && GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) - && val != gBattlePartyID[r7] && val != gBattlePartyID[to_cmp]) + && val != gBattlerPartyIndexes[r7] && val != gBattlerPartyIndexes[to_cmp]) break; } if (val == 6) @@ -8440,7 +8440,7 @@ static void atk4F_jumpifcantswitch(void) void sub_8022A3C(u8 unkown) { - BATTLE_PARTY_ID(gActiveBattler) = gBattlePartyID[gActiveBattler]; + BATTLE_PARTY_ID(gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBattler]); MarkBufferBankForExecution(gActiveBattler); } @@ -8471,7 +8471,7 @@ static void atk50_openpartyscreen(void) } else { - gAbsentBankFlags |= gBitTable[gActiveBattler]; + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= (~HITMARKER_FAINTED(gActiveBattler)); EmitLinkStandbyMsg(0, 2); MarkBufferBankForExecution(gActiveBattler); @@ -8547,7 +8547,7 @@ _08022AE8:\n\ ldr r7, _08022B54 @ =gHitMarker\n\ ldr r6, _08022B58 @ =gBitTable\n\ adds r4, r1, 0\n\ - ldr r0, _08022B5C @ =gAbsentBankFlags\n\ + ldr r0, _08022B5C @ =gAbsentBattlerFlags\n\ mov r8, r0\n\ _08022AF2:\n\ ldrb r2, [r4]\n\ @@ -8595,7 +8595,7 @@ _08022B4C: .4byte gActiveBattler\n\ _08022B50: .4byte gNoOfAllBanks\n\ _08022B54: .4byte gHitMarker\n\ _08022B58: .4byte gBitTable\n\ -_08022B5C: .4byte gAbsentBankFlags\n\ +_08022B5C: .4byte gAbsentBattlerFlags\n\ _08022B60:\n\ ldr r5, _08022B90 @ =gSpecialStatuses\n\ ldrb r0, [r4]\n\ @@ -8664,7 +8664,7 @@ _08022BC4:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022C2C\n\ - ldr r2, _08022C28 @ =gAbsentBankFlags\n\ + ldr r2, _08022C28 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8690,7 +8690,7 @@ _08022BC4:\n\ _08022C1C: .4byte gHitMarker\n\ _08022C20: .4byte gBitTable\n\ _08022C24: .4byte gActiveBattler\n\ -_08022C28: .4byte gAbsentBankFlags\n\ +_08022C28: .4byte gAbsentBattlerFlags\n\ _08022C2C:\n\ ldr r6, _08022C60 @ =gSpecialStatuses\n\ ldrb r0, [r4]\n\ @@ -8749,7 +8749,7 @@ _08022C7E:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022CE8\n\ - ldr r2, _08022CE0 @ =gAbsentBankFlags\n\ + ldr r2, _08022CE0 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8774,7 +8774,7 @@ _08022C7E:\n\ .align 2, 0\n\ _08022CD8: .4byte gBitTable\n\ _08022CDC: .4byte gActiveBattler\n\ -_08022CE0: .4byte gAbsentBankFlags\n\ +_08022CE0: .4byte gAbsentBattlerFlags\n\ _08022CE4: .4byte gHitMarker\n\ _08022CE8:\n\ ldr r6, _08022D1C @ =gSpecialStatuses\n\ @@ -8833,7 +8833,7 @@ _08022D40:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022DA0\n\ - ldr r2, _08022D98 @ =gAbsentBankFlags\n\ + ldr r2, _08022D98 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8858,7 +8858,7 @@ _08022D40:\n\ .align 2, 0\n\ _08022D90: .4byte gBitTable\n\ _08022D94: .4byte gActiveBattler\n\ -_08022D98: .4byte gAbsentBankFlags\n\ +_08022D98: .4byte gAbsentBattlerFlags\n\ _08022D9C: .4byte gHitMarker\n\ _08022DA0:\n\ ldr r6, _08022DD4 @ =gSpecialStatuses\n\ @@ -8920,7 +8920,7 @@ _08022DF6:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022E60\n\ - ldr r2, _08022E58 @ =gAbsentBankFlags\n\ + ldr r2, _08022E58 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8945,7 +8945,7 @@ _08022DF6:\n\ .align 2, 0\n\ _08022E50: .4byte gBitTable\n\ _08022E54: .4byte gActiveBattler\n\ -_08022E58: .4byte gAbsentBankFlags\n\ +_08022E58: .4byte gAbsentBattlerFlags\n\ _08022E5C: .4byte gHitMarker\n\ _08022E60:\n\ ldr r6, _08022E94 @ =gSpecialStatuses\n\ @@ -9002,7 +9002,7 @@ _08022EB8:\n\ blt _08022F0C\n\ cmp r5, 0\n\ beq _08022F0C\n\ - ldr r0, _08022EEC @ =gAbsentBankFlags\n\ + ldr r0, _08022EEC @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r0, _08022EF0 @ =gBitTable\n\ ldr r0, [r0]\n\ @@ -9015,7 +9015,7 @@ _08022EB8:\n\ b _08022EFC\n\ .align 2, 0\n\ _08022EE8: .4byte gSpecialStatuses\n\ -_08022EEC: .4byte gAbsentBankFlags\n\ +_08022EEC: .4byte gAbsentBattlerFlags\n\ _08022EF0: .4byte gBitTable\n\ _08022EF4: .4byte gActiveBattler\n\ _08022EF8:\n\ @@ -9042,7 +9042,7 @@ _08022F0C:\n\ blt _08022F62\n\ cmp r5, 0\n\ beq _08022F62\n\ - ldr r0, _08022F44 @ =gAbsentBankFlags\n\ + ldr r0, _08022F44 @ =gAbsentBattlerFlags\n\ ldrb r0, [r0]\n\ ldr r1, _08022F48 @ =gBitTable\n\ ldr r1, [r1, 0x4]\n\ @@ -9055,7 +9055,7 @@ _08022F0C:\n\ .align 2, 0\n\ _08022F3C: .4byte gActiveBattler\n\ _08022F40: .4byte gSpecialStatuses\n\ -_08022F44: .4byte gAbsentBankFlags\n\ +_08022F44: .4byte gAbsentBattlerFlags\n\ _08022F48: .4byte gBitTable\n\ _08022F4C:\n\ ldr r1, _08022F6C @ =gActiveBattler\n\ @@ -9119,7 +9119,7 @@ _08022F92:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08023008\n\ - ldr r2, _08023004 @ =gAbsentBankFlags\n\ + ldr r2, _08023004 @ =gAbsentBattlerFlags\n\ ldrb r0, [r6]\n\ lsls r0, 2\n\ adds r0, r4\n\ @@ -9146,7 +9146,7 @@ _08022FF4: .4byte gHitMarker\n\ _08022FF8: .4byte gBitTable\n\ _08022FFC: .4byte gActiveBattler\n\ _08023000: .4byte gBattleBufferB\n\ -_08023004: .4byte gAbsentBankFlags\n\ +_08023004: .4byte gAbsentBattlerFlags\n\ _08023008:\n\ ldr r4, _08023098 @ =gSpecialStatuses\n\ ldrb r0, [r6]\n\ @@ -9195,7 +9195,7 @@ _0802303A:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _080230BC\n\ - ldr r2, _080230B4 @ =gAbsentBankFlags\n\ + ldr r2, _080230B4 @ =gAbsentBattlerFlags\n\ ldrb r0, [r5]\n\ lsls r0, 2\n\ adds r0, r4\n\ @@ -9225,7 +9225,7 @@ _080230A4: .4byte gBitTable\n\ _080230A8: .4byte gActiveBattler\n\ _080230AC: .4byte gBattleBufferB\n\ _080230B0: .4byte 0x00000201\n\ -_080230B4: .4byte gAbsentBankFlags\n\ +_080230B4: .4byte gAbsentBattlerFlags\n\ _080230B8: .4byte gHitMarker\n\ _080230BC:\n\ ldr r4, _080230FC @ =gSpecialStatuses\n\ @@ -9353,7 +9353,7 @@ _080231A8:\n\ beq _080231F8\n\ ldr r2, _080231E8 @ =gActiveBattler\n\ strb r7, [r2]\n\ - ldr r3, _080231EC @ =gAbsentBankFlags\n\ + ldr r3, _080231EC @ =gAbsentBattlerFlags\n\ ldr r4, _080231F0 @ =gBitTable\n\ ldrb r0, [r2]\n\ lsls r0, 2\n\ @@ -9376,7 +9376,7 @@ _080231A8:\n\ b _08023302\n\ .align 2, 0\n\ _080231E8: .4byte gActiveBattler\n\ -_080231EC: .4byte gAbsentBankFlags\n\ +_080231EC: .4byte gAbsentBattlerFlags\n\ _080231F0: .4byte gBitTable\n\ _080231F4: .4byte gHitMarker\n\ _080231F8:\n\ @@ -9387,7 +9387,7 @@ _080231F8:\n\ ldr r2, _080232A8 @ =0x00016064\n\ adds r1, r0, r2\n\ adds r1, r3\n\ - ldr r2, _080232AC @ =gBattlePartyID\n\ + ldr r2, _080232AC @ =gBattlerPartyIndexes\n\ lsls r0, 1\n\ adds r0, r2\n\ ldrh r0, [r0]\n\ @@ -9416,7 +9416,7 @@ _080231F8:\n\ adds r0, 0x6\n\ str r0, [r6]\n\ ldrb r0, [r4]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0802325A\n\ @@ -9465,7 +9465,7 @@ _0802328A:\n\ _080232A0: .4byte gActiveBattler\n\ _080232A4: .4byte gSharedMem\n\ _080232A8: .4byte 0x00016064\n\ -_080232AC: .4byte gBattlePartyID\n\ +_080232AC: .4byte gBattlerPartyIndexes\n\ _080232B0: .4byte 0x00016068\n\ _080232B4: .4byte 0x0001606c\n\ _080232B8: .4byte gBattleResults\n\ @@ -9473,15 +9473,15 @@ _080232BC: .4byte gBattleTypeFlags\n\ _080232C0: .4byte gNoOfAllBanks\n\ _080232C4:\n\ adds r0, r7, 0\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x1\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r4, _08023310 @ =gActiveBattler\n\ strb r0, [r4]\n\ - ldr r0, _08023314 @ =gAbsentBankFlags\n\ + ldr r0, _08023314 @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, _08023318 @ =gBitTable\n\ ldrb r3, [r4]\n\ @@ -9510,7 +9510,7 @@ _08023302:\n\ bx r0\n\ .align 2, 0\n\ _08023310: .4byte gActiveBattler\n\ -_08023314: .4byte gAbsentBankFlags\n\ +_08023314: .4byte gAbsentBattlerFlags\n\ _08023318: .4byte gBitTable\n\ .syntax divided"); } @@ -9625,7 +9625,7 @@ static void atk52_switchineffects(void) gBank1++; while (1) { - if (hitmark & gBitTable[gBank1] && !(gAbsentBankFlags & gBitTable[gBank1])) + if (hitmark & gBitTable[gBank1] && !(gAbsentBattlerFlags & gBitTable[gBank1])) break; if (gBank1 >= gNoOfAllBanks) break; @@ -9640,9 +9640,9 @@ static void atk52_switchineffects(void) static void atk53_trainerslidein(void) { if (!T2_READ_8(gBattlescriptCurrInstr + 1)) - gActiveBattler = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); else - gActiveBattler = GetBankByIdentity(1); + gActiveBattler = GetBattlerAtPosition(1); EmitTrainerSlide(0); MarkBufferBankForExecution(gActiveBattler); @@ -9675,7 +9675,7 @@ static void atk56_playfaintcry(void) static void atk57(void) { - gActiveBattler = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); Emitcmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 1; @@ -9708,13 +9708,13 @@ void atk59_handlelearnnewmove(void) } else { - gActiveBattler = GetBankByIdentity(0); - if (gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) + gActiveBattler = GetBattlerAtPosition(0); + if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if { - gActiveBattler = GetBankByIdentity(2); - if (gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) + gActiveBattler = GetBattlerAtPosition(2); + if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); } gBattlescriptCurrInstr = loc1; @@ -9819,13 +9819,13 @@ static void atk5A_yesnoboxlearnmove(void) ptr[0] = 0xFF; RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterID], move_pos); SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterID], gMoveToLearn, move_pos); - if (gBattlePartyID[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[0].unk18_b & gBitTable[move_pos])) { RemoveBattleMonPPBonus(&gBattleMons[0], move_pos); SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, move_pos); } - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[2].unk18_b & gBitTable[move_pos])) { RemoveBattleMonPPBonus(&gBattleMons[2], move_pos); @@ -9894,7 +9894,7 @@ static void atk5B_yesnoboxstoplearningmove(void) static void atk5C_hitanimation(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) gBattlescriptCurrInstr += 2; else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0) { @@ -10459,12 +10459,12 @@ static void atk69_adjustsetdamage(void) //literally a copy of atk07 except there if (gProtectStructs[gBankTarget].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } if (gSpecialStatuses[gBankTarget].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBankTarget].item; } @@ -10488,7 +10488,7 @@ static void atk6B_atknameinbuff1(void) gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 7; gBattleTextBuff1[2] = gBankAttacker; - gBattleTextBuff1[3] = gBattlePartyID[gBankAttacker]; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBankAttacker]; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr++; } @@ -10927,7 +10927,7 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByIdentity(0); + gBankAttacker = GetBattlerAtPosition(0); gBattlescriptCurrInstr++; } @@ -11023,7 +11023,7 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { gBankInMenu = gBankAttacker; - PokemonUseItemEffects(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); + PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBankAttacker], 0, 1); gBattlescriptCurrInstr += 1; } @@ -11066,11 +11066,11 @@ static void atk76_various(void) { int i; u16* choiced_move; - if (gBattlePartyID[0] == gBattleStruct->expGetterID) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID) goto ACTIVE_0; - if (gBattlePartyID[2] != gBattleStruct->expGetterID) + if (gBattlerPartyIndexes[2] != gBattleStruct->expGetterID) break; - if (gBattlePartyID[0] == gBattlePartyID[2]) + if (gBattlerPartyIndexes[0] == gBattlerPartyIndexes[2]) { ACTIVE_0: gActiveBattler = 0; @@ -11121,7 +11121,7 @@ static void atk77_setprotectlike(void) //protect and endure { gDisableStructs[gBankAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; } gBattlescriptCurrInstr++; @@ -11150,7 +11150,7 @@ static void atk78_faintifabilitynotdamp(void) { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } } @@ -11185,7 +11185,7 @@ static void atk7A_jumpifnexttargetvalid(void) //used by intimidate to loop throu { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } @@ -11264,7 +11264,7 @@ static void atk7D_setrain(void) { if (gBattleWeather & WEATHER_RAIN_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -11278,15 +11278,15 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideAffecting[GetBankIdentity(gBankAttacker) & 1] & SIDE_STATUS_REFLECT) + if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_REFLECT) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; - gSideTimers[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].reflectTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else @@ -11297,14 +11297,14 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -11419,7 +11419,7 @@ static void atk85_stockpile(void) { if (gDisableStructs[gBankAttacker].stockpileCounter == 3) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -11448,7 +11448,7 @@ static void atk86_stockpiletobasedamage(void) if (gBattleCommunication[6] != 1) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBankIdentity(gBankTarget) & 1], 0, + gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, 0, gBankAttacker, gBankTarget) * gDisableStructs[gBankAttacker].stockpileCounter; gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter; @@ -11522,7 +11522,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if ((statValue << 0x18) < 0) // stat decrease { - if (gSideTimers[GET_BANK_SIDE(gActiveBattler)].mistTimer + if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer && !certain && gCurrentMove != MOVE_CURSE) { if (flags == STAT_CHANGE_BS_PTR) @@ -11659,7 +11659,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) gBattleMons[gActiveBattler].statStages[statId] = 0xC; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR) - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_CHANGE_BS_PTR)) return STAT_CHANGE_DIDNT_WORK; @@ -11733,7 +11733,7 @@ static bool8 sub_80264C0(void) { if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) { - ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget]; + ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; } else { @@ -11743,7 +11743,7 @@ static bool8 sub_80264C0(void) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return 0; } - ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget]; + ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return 1; @@ -11805,7 +11805,7 @@ static void atk8F_forcerandomswitch(void) i = val + 3; else i = val; - } while (i == gBattlePartyID[gBankTarget] || i == gBattlePartyID[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { @@ -11814,14 +11814,14 @@ static void atk8F_forcerandomswitch(void) do { i = Random() % 6; - } while (i == gBattlePartyID[gBankTarget] || i == gBattlePartyID[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { do { i = Random() % 6; - } while (i == gBattlePartyID[gBankTarget] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBankTarget] || !MON_CAN_BATTLE(&party[i])); } } ewram16068arr(gBankTarget) = i; @@ -11919,15 +11919,15 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideAffecting[GetBankIdentity(gBankAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) + if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].lightscreenTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else @@ -11957,7 +11957,7 @@ static void atk93_tryKO(void) if (gBattleMons[gBankTarget].ability == ABILITY_STURDY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = x; RecordAbilityBattle(gBankTarget, ABILITY_STURDY); @@ -11969,7 +11969,7 @@ static void atk93_tryKO(void) u16 to_cmp = gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level + gBattleMoves[gCurrentMove].accuracy; if (Random() % 0x64 + 1 < to_cmp || gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) { - goto MOVESTATUS_MISSED_LABEL; + goto MOVE_RESULT_MISSED_LABEL; } } else @@ -11980,8 +11980,8 @@ static void atk93_tryKO(void) } } -MOVESTATUS_MISSED_LABEL: - gBattleTypeFlags |= MOVESTATUS_MISSED; +MOVE_RESULT_MISSED_LABEL: + gBattleTypeFlags |= MOVE_RESULT_MISSED; if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else @@ -12078,7 +12078,7 @@ _08026C0C:\n\ mov r10, r8\n\ cmp r3, 0x5\n\ bne _08026C6C\n\ - ldr r2, _08026C5C @ =gBattleMoveFlags\n\ + ldr r2, _08026C5C @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x1\n\ orrs r0, r1\n\ @@ -12098,7 +12098,7 @@ _08026C4C: .4byte gStringBank\n\ _08026C50: .4byte gBankTarget\n\ _08026C54: .4byte gSpecialStatuses\n\ _08026C58: .4byte gBattleMons\n\ -_08026C5C: .4byte gBattleMoveFlags\n\ +_08026C5C: .4byte gMoveResultFlags\n\ _08026C60: .4byte gLastUsedAbility\n\ _08026C64: .4byte gBattlescriptCurrInstr\n\ _08026C68: .4byte BattleScript_SturdyPreventsOHKO\n\ @@ -12208,7 +12208,7 @@ _08026D20:\n\ ldrh r0, [r0, 0x28]\n\ subs r0, 0x1\n\ str r0, [r1]\n\ - ldr r2, _08026D60 @ =gBattleMoveFlags\n\ + ldr r2, _08026D60 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x40\n\ b _08026DC6\n\ @@ -12218,7 +12218,7 @@ _08026D50: .4byte gBankAttacker\n\ _08026D54: .4byte gProtectStructs\n\ _08026D58: .4byte gBankTarget\n\ _08026D5C: .4byte gBattleMoveDamage\n\ -_08026D60: .4byte gBattleMoveFlags\n\ +_08026D60: .4byte gMoveResultFlags\n\ _08026D64:\n\ ldr r0, _08026DA0 @ =gSpecialStatuses\n\ lsls r1, r2, 2\n\ @@ -12237,7 +12237,7 @@ _08026D64:\n\ ldrh r0, [r0, 0x28]\n\ subs r0, 0x1\n\ str r0, [r1]\n\ - ldr r2, _08026DA8 @ =gBattleMoveFlags\n\ + ldr r2, _08026DA8 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x80\n\ orrs r0, r1\n\ @@ -12253,7 +12253,7 @@ _08026D64:\n\ .align 2, 0\n\ _08026DA0: .4byte gSpecialStatuses\n\ _08026DA4: .4byte gBattleMoveDamage\n\ -_08026DA8: .4byte gBattleMoveFlags\n\ +_08026DA8: .4byte gMoveResultFlags\n\ _08026DAC: .4byte gLastUsedItem\n\ _08026DB0: .4byte gBankTarget\n\ _08026DB4:\n\ @@ -12263,7 +12263,7 @@ _08026DB4:\n\ add r0, r10\n\ ldrh r0, [r0, 0x28]\n\ str r0, [r1]\n\ - ldr r2, _08026DD8 @ =gBattleMoveFlags\n\ + ldr r2, _08026DD8 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x10\n\ _08026DC6:\n\ @@ -12277,10 +12277,10 @@ _08026DCA:\n\ b _08026E40\n\ .align 2, 0\n\ _08026DD4: .4byte gBattleMoveDamage\n\ -_08026DD8: .4byte gBattleMoveFlags\n\ +_08026DD8: .4byte gMoveResultFlags\n\ _08026DDC: .4byte gBattlescriptCurrInstr\n\ _08026DE0:\n\ - ldr r2, _08026E10 @ =gBattleMoveFlags\n\ + ldr r2, _08026E10 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x1\n\ orrs r0, r1\n\ @@ -12305,7 +12305,7 @@ _08026DE0:\n\ movs r0, 0\n\ b _08026E24\n\ .align 2, 0\n\ -_08026E10: .4byte gBattleMoveFlags\n\ +_08026E10: .4byte gMoveResultFlags\n\ _08026E14: .4byte gBankAttacker\n\ _08026E18: .4byte gBankTarget\n\ _08026E1C: .4byte gBattleCommunication\n\ @@ -12354,7 +12354,7 @@ static void atk95_setsandstorm(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -12402,7 +12402,7 @@ static void atk96_weatherdamage(void) else gBattleMoveDamage = 0; - if (gAbsentBankFlags & gBitTable[gBankAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBankAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -12414,14 +12414,14 @@ static void atk97_tryinfatuating(void) u16 atk_species, def_species; u32 atk_pid, def_pid; if (!GetBankSide(gBankAttacker)) - attacker = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + attacker = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; else - attacker = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + attacker = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; if (!GetBankSide(gBankTarget)) - target = &gPlayerParty[gBattlePartyID[gBankTarget]]; + target = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; else - target = &gEnemyParty[gBattlePartyID[gBankTarget]]; + target = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; atk_species = GetMonData(attacker, MON_DATA_SPECIES); atk_pid = GetMonData(attacker, MON_DATA_PERSONALITY); @@ -12466,15 +12466,15 @@ static void atk98_updatestatusicon(void) else { gActiveBattler = gBankAttacker; - if (!(gAbsentBankFlags & gBitTable[gActiveBattler])) + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (!(gAbsentBankFlags & gBitTable[gActiveBattler])) + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); MarkBufferBankForExecution(gActiveBattler); @@ -12486,15 +12486,15 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer) + if (gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5; - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_MIST; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -12504,7 +12504,7 @@ static void atk9A_setfocusenergy(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -12521,7 +12521,7 @@ static void atk9B_transformdataexecution(void) gBattlescriptCurrInstr++; if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -13575,8 +13575,8 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBattler = gBattleStruct->scriptingActive = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBattler])) + gActiveBattler = gBattleStruct->scriptingActive = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { if (gBattleMons[gActiveBattler].ability != ABILITY_SOUNDPROOF) { @@ -13596,9 +13596,9 @@ static void atkAE_healpartystatus(void) if (species != 0 && species != SPECIES_EGG) { u8 ability; - if (gBattlePartyID[gBankAttacker] == i) + if (gBattlerPartyIndexes[gBankAttacker] == i) ability = gBattleMons[gBankAttacker].ability; - else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[gActiveBattler] == i && !(gAbsentBankFlags & gBitTable[gActiveBattler])) + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[gActiveBattler] == i && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) ability = gBattleMons[gActiveBattler].ability; else ability = GetAbilityBySpecies(species, abilityBit); @@ -13613,8 +13613,8 @@ static void atkAE_healpartystatus(void) to_heal = 0x3F; gBattleMons[gBankAttacker].status1 = zero2; - gActiveBattler = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBattler])) + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) gBattleMons[gActiveBattler].status1 = 0; } @@ -13689,7 +13689,7 @@ static void atkB2_trysetperishsong(void) static void atkB3_rolloutdamagecalculation(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { CancelMultiTurnMoves(gBankAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -13728,7 +13728,7 @@ static void atkB4_jumpifconfusedandstatmaxed(void) static void atkB5_furycuttercalc(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -13779,22 +13779,22 @@ static void atkB7_presentdamagecalculation(void) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { - //gBattleMoveFlags &= ~(MOVESTATUS_NOTAFFECTED); only in Emerald + //gMoveResultFlags &= ~(MOVE_RESULT_DOESNT_AFFECT_FOE); only in Emerald gBattlescriptCurrInstr = BattleScript_PresentHealTarget; } } static void atkB8_setsafeguard(void) { - if (gSideAffecting[GetBankIdentity(gBankAttacker) & 1] & SIDE_STATUS_SAFEGUARD) + if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_SAFEGUARD) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].safeguardTimer = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } gBattlescriptCurrInstr++; @@ -13850,7 +13850,7 @@ static void atkB9_magnitudedamagecalculation(void) { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) //a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) //a valid target was found break; } gBattlescriptCurrInstr++; @@ -13861,16 +13861,16 @@ static void atkBA_jumpifnopursuitswitchdmg(void) if (gMultiHitCounter == 1) { if (GetBankSide(gBankAttacker) == 0) - gBankTarget = GetBankByIdentity(1); + gBankTarget = GetBattlerAtPosition(1); else - gBankTarget = GetBankByIdentity(0); + gBankTarget = GetBattlerAtPosition(0); } else { if (GetBankSide(gBankAttacker) == 0) - gBankTarget = GetBankByIdentity(3); + gBankTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBankByIdentity(2); + gBankTarget = GetBattlerAtPosition(2); } if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) @@ -13895,7 +13895,7 @@ static void atkBB_setsunny(void) { if (gBattleWeather & WEATHER_SUN_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -14152,7 +14152,7 @@ static void atkC2_selectfirstvalidtarget(void) { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } gBattlescriptCurrInstr++; @@ -14170,7 +14170,7 @@ static void atkC3_trysetfutureattack(void) gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker; gWishFutureKnock.futureSightCounter[gBankTarget] = 3; gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBankIdentity(gBankTarget) & 1], 0, + gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, 0, gBankAttacker, gBankTarget); if (gProtectStructs[gBankAttacker].helpingHand) @@ -14532,7 +14532,7 @@ static void atkC8_sethail(void) { if (gBattleWeather & WEATHER_HAIL) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -14631,8 +14631,8 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBankTarget]) && !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand) { gProtectStructs[gBankTarget].helpingHand = 1; @@ -14707,7 +14707,7 @@ _0802A24C:\n\ adds r0, r2, r0\n\ ldrb r1, [r0]\n\ ldr r3, _0802A320 @ =gBitTable\n\ - ldr r2, _0802A324 @ =gBattlePartyID\n\ + ldr r2, _0802A324 @ =gBattlerPartyIndexes\n\ ldrb r0, [r4]\n\ lsls r0, 1\n\ adds r0, r2\n\ @@ -14789,7 +14789,7 @@ _0802A314: .4byte 0x00000902\n\ _0802A318: .4byte gTrainerBattleOpponent\n\ _0802A31C: .4byte gWishFutureKnock\n\ _0802A320: .4byte gBitTable\n\ -_0802A324: .4byte gBattlePartyID\n\ +_0802A324: .4byte gBattlerPartyIndexes\n\ _0802A328: .4byte gBattleMons\n\ _0802A32C: .4byte gBankTarget\n\ _0802A330: .4byte gBattlescriptCurrInstr\n\ @@ -14995,7 +14995,7 @@ static void atkD4_trywish(void) if (gWishFutureKnock.wishCounter[gBankAttacker] == 0) { gWishFutureKnock.wishCounter[gBankAttacker] = 2; - gWishFutureKnock.wishUserID[gBankAttacker] = gBattlePartyID[gBankAttacker]; + gWishFutureKnock.wishUserID[gBankAttacker] = gBattlerPartyIndexes[gBankAttacker]; gBattlescriptCurrInstr += 6; } else @@ -15078,7 +15078,7 @@ 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 - || gBattleMoveFlags & MOVESTATUS_NOEFFECT) + || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -15162,14 +15162,14 @@ static void atkDE_asistattackselect(void) struct Pokemon* party; int i, j; u16* chooseable_moves; - if (GetBankIdentity(gBankAttacker) & 1) + if (GetBattlerPosition(gBankAttacker) & 1) party = gEnemyParty; else party = gPlayerParty; for (i = 0; i < 6; i++) { - if (i == gBattlePartyID[gBankAttacker]) + if (i == gBattlerPartyIndexes[gBankAttacker]) break; if (!GetMonData(&party[i], MON_DATA_SPECIES2) || GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) break; @@ -15224,7 +15224,7 @@ static void atkDE_asistattackselect(void) mov r10, r0\n\ ldr r0, _0802AB9C @ =gBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x1\n\ ands r1, r0\n\ ldr r0, _0802ABA0 @ =gPlayerParty\n\ @@ -15236,7 +15236,7 @@ static void atkDE_asistattackselect(void) _0802AAAC:\n\ movs r2, 0\n\ _0802AAAE:\n\ - ldr r1, _0802ABA8 @ =gBattlePartyID\n\ + ldr r1, _0802ABA8 @ =gBattlerPartyIndexes\n\ ldr r0, _0802AB9C @ =gBankAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ @@ -15358,7 +15358,7 @@ _0802AB54:\n\ _0802AB9C: .4byte gBankAttacker\n\ _0802ABA0: .4byte gPlayerParty\n\ _0802ABA4: .4byte gEnemyParty\n\ -_0802ABA8: .4byte gBattlePartyID\n\ +_0802ABA8: .4byte gBattlerPartyIndexes\n\ _0802ABAC: .4byte 0x0000ffff\n\ _0802ABB0: .4byte gSharedMem + 0x16024\n\ _0802ABB4: .4byte sMovesForbiddenToCopy\n\ @@ -15437,7 +15437,7 @@ static void atkE1_trygetintimidatetarget(void) { if (GetBankSide(gBankTarget) == side) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } @@ -15638,8 +15638,8 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBattler = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBattler]) && gActionForBanks[gActiveBattler] == 0 && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gActionForBanks[gActiveBattler] == 0 && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) { gActionsByTurnOrder[gActiveBattler] = 11; gCurrentMove = MOVE_PURSUIT; @@ -15780,7 +15780,7 @@ void atkEF_handleballthrow(void) EmitBallThrow(0, 4); MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -15799,7 +15799,7 @@ void atkEF_handleballthrow(void) if (shakes == 4) //poke caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -15816,9 +15816,9 @@ void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]); + GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]); gBattleResults.caughtPoke = gBattleMons[gBankAttacker ^ 1].species; - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); gBattlescriptCurrInstr++; } @@ -16020,15 +16020,15 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); - DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); + 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); gBattleCommunication[0]++; } break; case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } break; diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c index 0e27c0a8c..e691a5d29 100644 --- a/src/battle/battle_7.c +++ b/src/battle/battle_7.c @@ -25,7 +25,7 @@ extern u8 gBattleBufferA[][0x200]; extern u8 gActiveBattler; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; extern u8 gBankSpriteIds[]; extern u16 gUnknown_02024DE8; @@ -309,7 +309,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b) r7 = gTransformedPersonalities[b]; } otId = GetMonData(pkmn, MON_DATA_OT_ID); - var = GetBankIdentity(b); + var = GetBattlerPosition(b); HandleLoadSpecialPokePic( &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, @@ -361,7 +361,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b) r7 = gTransformedPersonalities[b]; } otId = GetMonData(pkmn, MON_DATA_OT_ID); - var = GetBankIdentity(b); + var = GetBattlerPosition(b); HandleLoadSpecialPokePic( &gMonBackPicTable[species], gMonBackPicCoords[species].coords, @@ -404,7 +404,7 @@ void sub_8031A6C(u16 a, u8 b) u8 status; struct CompressedSpriteSheet spriteSheet; - status = GetBankIdentity(b); + status = GetBattlerPosition(b); DecompressPicFromTable_2( &gTrainerFrontPicTable[a], gTrainerFrontPicCoords[a].coords, @@ -423,7 +423,7 @@ void LoadPlayerTrainerBankSprite(u16 a, u8 b) { u8 status; - status = GetBankIdentity(b); + status = GetBattlerPosition(b); DecompressPicFromTable_2( &gTrainerBackPicTable[a], gTrainerBackPicCoords[a].coords, @@ -581,11 +581,11 @@ u8 battle_load_something(u8 *pState, u8 *b) if (GetBankSide(*b) == 0) { if (!(gBattleTypeFlags & 0x80)) - sub_8045A5C(gHealthboxIDs[*b], &gPlayerParty[gBattlePartyID[*b]], 0); + sub_8045A5C(gHealthboxIDs[*b], &gPlayerParty[gBattlerPartyIndexes[*b]], 0); } else { - sub_8045A5C(gHealthboxIDs[*b], &gEnemyParty[gBattlePartyID[*b]], 0); + sub_8045A5C(gHealthboxIDs[*b], &gEnemyParty[gBattlerPartyIndexes[*b]], 0); } sub_8043DB0(gHealthboxIDs[*b]); (*b)++; @@ -670,15 +670,15 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) } else { - r10 = GetBankIdentity(a); + r10 = GetBattlerPosition(a); if (GetBankSide(b) == 1) - species = GetMonData(&gEnemyParty[gBattlePartyID[b]], MON_DATA_SPECIES); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[b]], MON_DATA_SPECIES); else - species = GetMonData(&gPlayerParty[gBattlePartyID[b]], MON_DATA_SPECIES); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[b]], MON_DATA_SPECIES); if (GetBankSide(a) == 0) { - personalityValue = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_OT_ID); + personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_OT_ID); HandleLoadSpecialPokePic( &gMonBackPicTable[species], gMonBackPicCoords[species].coords, @@ -690,8 +690,8 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) } else { - personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_OT_ID); + personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_OT_ID); HandleLoadSpecialPokePic( &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, @@ -739,7 +739,7 @@ void BattleLoadSubstituteSprite(u8 a, u8 b) if (IsContest()) r4 = 0; else - r4 = GetBankIdentity(a); + r4 = GetBattlerPosition(a); if (IsContest()) LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]); else if (GetBankSide(a) != 0) @@ -759,9 +759,9 @@ void BattleLoadSubstituteSprite(u8 a, u8 b) if (!IsContest()) { if (GetBankSide(a) != 0) - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); else - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[a]], a); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[a]], a); } } } @@ -819,7 +819,7 @@ void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b) void BattleStopLowHpSound(void) { - u8 r4 = GetBankByIdentity(0); + u8 r4 = GetBattlerAtPosition(0); ewram17800[r4].unk0_1 = 0; if (IsDoubleBattle()) @@ -839,10 +839,10 @@ void sub_8032638(void) { if (gMain.inBattle) { - u8 r8 = GetBankByIdentity(0); - u8 r9 = GetBankByIdentity(2); - u8 r4 = pokemon_order_func(gBattlePartyID[r8]); - u8 r5 = pokemon_order_func(gBattlePartyID[r9]); + u8 r8 = GetBattlerAtPosition(0); + u8 r9 = GetBattlerAtPosition(2); + u8 r4 = pokemon_order_func(gBattlerPartyIndexes[r8]); + u8 r5 = pokemon_order_func(gBattlerPartyIndexes[r9]); if (GetMonData(&gPlayerParty[r4], MON_DATA_HP) != 0) HandleLowHpMusicChange(&gPlayerParty[r4], r8); @@ -881,12 +881,12 @@ void sub_80327CC(void) u8 r5; LoadCompressedObjectPic(&gUnknown_081FAF24); - r5 = GetBankByIdentity(1); + r5 = GetBattlerAtPosition(1); ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8); gSprites[ewram17810[r5].unk7].data[0] = r5; if (IsDoubleBattle()) { - r5 = GetBankByIdentity(3); + r5 = GetBattlerAtPosition(3); ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8); gSprites[ewram17810[r5].unk7].data[0] = r5; } diff --git a/src/battle/battle_9.c b/src/battle/battle_9.c index d9a1ee97e..c8bb89a0a 100755 --- a/src/battle/battle_9.c +++ b/src/battle/battle_9.c @@ -1,27 +1,863 @@ #include "global.h" #include "battle.h" +#include "battle_script_commands.h" +#include "data2.h" #include "ewram.h" #include "pokemon.h" #include "random.h" #include "rom_8077ABC.h" #include "rom3.h" +#include "util.h" #include "constants/abilities.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/species.h" +extern u8 gUnknown_02023A14_50; + +extern u8 gLastHitBy[]; extern u8 gActiveBattler; +extern u16 gBattleTypeFlags; +extern u8 gAbsentBattlerFlags; +extern s32 gBattleMoveDamage; +extern u8 gMoveResultFlags; +extern u16 gDynamicBasePower; +extern u8 gCritMultiplier; +extern u16 gBattlerPartyIndexes[]; +extern u16 gLastLandedMoves[]; +extern const u8 gTypeEffectiveness[]; +extern struct BattlePokemon gBattleMons[]; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +/*static*/ bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng); +/*static*/ bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent); +/*static*/ bool8 ShouldUseItem(void); +/*static*/ u8 GetMostSuitableMonToSwitchInto(void); + + /*static*/ bool8 ShouldSwitchIfPerishSong(void) { if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG && gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { - ewram160C8arr(GetBankIdentity(gActiveBattler)) = 6; // gBattleStruct->AI_monToSwitchIntoId[GetBankIdentity(gActiveBattler)] = 6; + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; // gBattleStruct->AI_monToSwitchIntoId[GetBattlerPosition(gActiveBattler)] = 6; Emitcmd33(1, 2, 0); return TRUE; } return FALSE; } + +#ifdef NONMATCHING +/*static*/ bool8 ShouldSwitchIfWonderGuard(void) +{ + u8 opposingBank; + u8 moveFlags; + s32 i, j; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + return FALSE; + + if (gBattleMons[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)].ability != ABILITY_WONDER_GUARD) + return FALSE; + + // check if pokemon has a super effective move + opposingBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + for (i = 0; i < 4; i++) + { + u16 move = gBattleMons[gActiveBattler].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) + return FALSE; + } + + // find a pokemon in the party that has a super effective move + for (i = 0; i < 6; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0 + || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG + || i == gBattlerPartyIndexes[gActiveBattler]) + continue; + + GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); // unused return value + GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY); // unused return value + + opposingBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + for (j = 0; j < 4; j++) + { + u16 move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && (Random() % 3) < 2) + { + // we found a mon + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; // gBattleStruct->AI_monToSwitchIntoId[GetBattlerPosition(gActiveBattler)] = i; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + } + + return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard +} +#else +__attribute__((naked)) +/*static*/ bool8 ShouldSwitchIfWonderGuard(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + ldr r0, _0803606C @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080360A0\n\ + b _080361C8\n\ + .align 2, 0\n\ +_0803606C: .4byte gBattleTypeFlags\n\ +_08036070:\n\ + ldr r0, _08036094 @ =gActiveBattler\n\ + ldrb r0, [r0]\n\ + bl GetBattlerPosition\n\ + ldr r1, _08036098 @ =gSharedMem\n\ + lsls r0, 24\n\ + lsrs r0, 25\n\ + ldr r2, _0803609C @ =0x000160c8\n\ + adds r0, r2\n\ + adds r0, r1\n\ + strb r6, [r0]\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + movs r2, 0\n\ + bl Emitcmd33\n\ + movs r0, 0x1\n\ + b _080361CA\n\ + .align 2, 0\n\ +_08036094: .4byte gActiveBattler\n\ +_08036098: .4byte gSharedMem\n\ +_0803609C: .4byte 0x000160c8\n\ +_080360A0:\n\ + ldr r4, _080361D8 @ =gBattleMons\n\ + movs r0, 0\n\ + bl GetBattlerAtPosition\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + movs r1, 0x58\n\ + muls r0, r1\n\ + adds r0, r4\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x19\n\ + beq _080360BC\n\ + b _080361C8\n\ +_080360BC:\n\ + movs r0, 0\n\ + bl GetBattlerAtPosition\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + movs r6, 0\n\ + adds r7, r4, 0\n\ + movs r5, 0x58\n\ + adds r0, r2, 0\n\ + muls r0, r5\n\ + adds r4, r0, r7\n\ + movs r3, 0x20\n\ + adds r3, r4\n\ + mov r8, r3\n\ +_080360D8:\n\ + lsls r1, r6, 1\n\ + ldr r0, _080361DC @ =gActiveBattler\n\ + ldrb r0, [r0]\n\ + muls r0, r5\n\ + adds r1, r0\n\ + adds r0, r7, 0\n\ + adds r0, 0xC\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + cmp r0, 0\n\ + beq _08036104\n\ + ldrh r1, [r4]\n\ + mov r3, r8\n\ + ldrb r2, [r3]\n\ + bl AI_TypeCalc\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + movs r0, 0x2\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _080361C8\n\ +_08036104:\n\ + adds r6, 0x1\n\ + cmp r6, 0x3\n\ + ble _080360D8\n\ + movs r6, 0\n\ + ldr r0, _080361E0 @ =gEnemyParty\n\ + mov r9, r0\n\ +_08036110:\n\ + movs r0, 0x64\n\ + adds r5, r6, 0\n\ + muls r5, r0\n\ + mov r2, r9\n\ + adds r4, r5, r2\n\ + adds r0, r4, 0\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _080361C2\n\ + adds r0, r4, 0\n\ + movs r1, 0x41\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _080361C2\n\ + adds r0, r4, 0\n\ + movs r1, 0x41\n\ + bl GetMonData\n\ + movs r1, 0xCE\n\ + lsls r1, 1\n\ + cmp r0, r1\n\ + beq _080361C2\n\ + ldr r1, _080361E4 @ =gBattlerPartyIndexes\n\ + ldr r0, _080361DC @ =gActiveBattler\n\ + ldrb r0, [r0]\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + cmp r6, r0\n\ + beq _080361C2\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + adds r0, r4, 0\n\ + movs r1, 0x2E\n\ + bl GetMonData\n\ + movs r0, 0\n\ + bl GetBattlerAtPosition\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + movs r4, 0\n\ + mov r8, r5\n\ + ldr r1, _080361D8 @ =gBattleMons\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r5, r0, r1\n\ + adds r7, r5, 0\n\ + adds r7, 0x20\n\ +_0803617C:\n\ + adds r1, r4, 0\n\ + adds r1, 0xD\n\ + mov r0, r8\n\ + add r0, r9\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0\n\ + beq _080361BC\n\ + ldrh r1, [r5]\n\ + ldrb r2, [r7]\n\ + bl AI_TypeCalc\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + movs r0, 0x2\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _080361BC\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bhi _080361BC\n\ + b _08036070\n\ +_080361BC:\n\ + adds r4, 0x1\n\ + cmp r4, 0x3\n\ + ble _0803617C\n\ +_080361C2:\n\ + adds r6, 0x1\n\ + cmp r6, 0x5\n\ + ble _08036110\n\ +_080361C8:\n\ + movs r0, 0\n\ +_080361CA:\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ +_080361D8: .4byte gBattleMons\n\ +_080361DC: .4byte gActiveBattler\n\ +_080361E0: .4byte gEnemyParty\n\ +_080361E4: .4byte gBattlerPartyIndexes\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +/*static*/ bool8 FindMonThatAbsorbsOpponentsMove(void) +{ + u8 bankIn1, bankIn2; + u8 absorbingTypeAbility; + s32 i; + + if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) + return FALSE; + if (gLastLandedMoves[gActiveBattler] == 0) + return FALSE; + if (gLastLandedMoves[gActiveBattler] == 0xFFFF) + return FALSE; + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) + bankIn2 = gActiveBattler; + else + bankIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); + } + else + { + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; + } + + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_FIRE) + absorbingTypeAbility = ABILITY_FLASH_FIRE; + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_WATER) + absorbingTypeAbility = ABILITY_WATER_ABSORB; + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_ELECTRIC) + absorbingTypeAbility = ABILITY_VOLT_ABSORB; + else + return FALSE; + + if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility) + return FALSE; + + for (i = 0; i < 6; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlerPartyIndexes[bankIn1]) + continue; + if (i == gBattlerPartyIndexes[bankIn2]) + continue; + if (i == ewram16068arr(bankIn1)) + continue; + if (i == ewram16068arr(bankIn2)) + continue; + + species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); + if (GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + if (absorbingTypeAbility == monAbility && Random() & 1) + { + // we found a mon + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + + return FALSE; +} + +/*static*/ bool8 ShouldSwitchIfNaturalCure(void) +{ + if (!(gBattleMons[gActiveBattler].status1 & STATUS_SLEEP)) + return FALSE; + if (gBattleMons[gActiveBattler].ability != ABILITY_NATURAL_CURE) + return FALSE; + if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 2) + return FALSE; + + if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 1)) + return TRUE; + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 1)) + return TRUE; + if (Random() & 1) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + + return FALSE; +} + +/*static*/ bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) +{ + u8 opposingBank; + s32 i; + u8 moveFlags; + u16 move; + + opposingBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + if (!(gAbsentBattlerFlags & gBitTable[opposingBank])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBattler].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + return FALSE; + + opposingBank = GetBattlerAtPosition(BATTLE_PARTNER(B_POSITION_PLAYER_LEFT)); + if (!(gAbsentBattlerFlags & gBitTable[opposingBank])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBattler].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + + return FALSE; +} + +/*static*/ bool8 AreStatsRaised(void) +{ + u8 buffedStatsValue = 0; + s32 i; + + for (i = 0; i < BATTLE_STATS_NO; i++) + { + if (gBattleMons[gActiveBattler].statStages[i] > 6) + buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - 6; + } + + return (buffedStatsValue > 3); +} + +/*static*/ bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) +{ + u8 bankIn1, bankIn2; + s32 i, j; + u16 move; + u8 moveFlags; + + if (gLastLandedMoves[gActiveBattler] == 0) + return FALSE; + if (gLastLandedMoves[gActiveBattler] == 0xFFFF) + return FALSE; + if (gLastHitBy[gActiveBattler] == 0xFF) + return FALSE; + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) + bankIn2 = gActiveBattler; + else + bankIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); + } + else + { + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; + } + + for (i = 0; i < 6; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlerPartyIndexes[bankIn1]) + continue; + if (i == gBattlerPartyIndexes[bankIn2]) + continue; + if (i == ewram16068arr(bankIn1)) + continue; + if (i == ewram16068arr(bankIn2)) + continue; + + species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); + if (GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBattler], species, monAbility); + if (moveFlags & flags) + { + bankIn1 = gLastHitBy[gActiveBattler]; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); + if (move == 0) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + } + } + + return FALSE; +} + +/*static*/ bool8 ShouldSwitch(void) +{ + u8 bankIn1, bankIn2; + s32 i; + s32 availableToSwitch; + + if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + return FALSE; + if (gStatuses3[gActiveBattler] & STATUS3_ROOTED) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0)) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0)) + return FALSE; // misses the flying or levitate check + if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0)) + { + if (gBattleMons[gActiveBattler].type1 == TYPE_STEEL) + return FALSE; + if (gBattleMons[gActiveBattler].type2 == TYPE_STEEL) + return FALSE; + } + + availableToSwitch = 0; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + bankIn2 = gActiveBattler; + else + bankIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); + } + else + { + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; + } + + for (i = 0; i < 6; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlerPartyIndexes[bankIn1]) + continue; + if (i == gBattlerPartyIndexes[bankIn2]) + continue; + if (i == ewram16068arr(bankIn1)) + continue; + if (i == ewram16068arr(bankIn2)) + continue; + + availableToSwitch++; + } + + if (availableToSwitch == 0) + return FALSE; + if (ShouldSwitchIfPerishSong()) + return TRUE; + if (ShouldSwitchIfWonderGuard()) + return TRUE; + if (FindMonThatAbsorbsOpponentsMove()) + return TRUE; + if (ShouldSwitchIfNaturalCure()) + return TRUE; + if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) + return FALSE; + if (AreStatsRaised()) + return FALSE; + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2) + || FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 3)) + return TRUE; + + return FALSE; +} + +void AI_TrySwitchOrUseItem(void) +{ + u8 bankIn1, bankIn2; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (ShouldSwitch()) + { + if (ewram160C8arr(GetBattlerPosition(gActiveBattler)) == 6) + { + s32 monToSwitchId = GetMostSuitableMonToSwitchInto(); + if (monToSwitchId == 6) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + bankIn1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + bankIn2 = bankIn1; + } + else + { + bankIn1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + bankIn2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + } + + for (monToSwitchId = 0; monToSwitchId < 6; monToSwitchId++) + { + if (GetMonData(&gEnemyParty[monToSwitchId], MON_DATA_HP) == 0) + continue; + if (monToSwitchId == gBattlerPartyIndexes[bankIn1]) + continue; + if (monToSwitchId == gBattlerPartyIndexes[bankIn2]) + continue; + if (monToSwitchId == ewram16068arr(bankIn1)) + continue; + if (monToSwitchId == ewram16068arr(bankIn2)) + continue; + + break; + } + } + + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = monToSwitchId; + } + + ewram16068arr(gActiveBattler) = ewram160C8arr(GetBattlerPosition(gActiveBattler)); + return; + } + else + { + #if DEBUG + if (!(gUnknown_02023A14_50 & 0x20) && ShouldUseItem()) + return; + #else + if (ShouldUseItem()) + return; + #endif + } + } + + Emitcmd33(1, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); +} + +/*static*/ void ModulateByTypeEffectiveness(u8 attackType, u8 defenseType1, u8 defenseType2, u8 *var) +{ + s32 i = 0; + + while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE) + { + if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) + { + i += 3; + continue; + } + else if (TYPE_EFFECT_ATK_TYPE(i) == attackType) + { + // check type1 + if (TYPE_EFFECT_DEF_TYPE(i) == defenseType1) + *var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10; + // check type2 + if (TYPE_EFFECT_DEF_TYPE(i) == defenseType2 && defenseType1 != defenseType2) + *var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10; + } + i += 3; + } +} + +u8 GetMostSuitableMonToSwitchInto(void) +{ + u8 opposingBank; + u8 bestDmg; // note : should be changed to s32 + u8 bestMonId; + u8 bankIn1, bankIn2; + s32 i, j; + u8 invalidMons; + u16 move; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + bankIn2 = gActiveBattler; + else + bankIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); + + // UB: It considers the opponent only player's side even though it can battle alongside player; + opposingBank = Random() & BIT_FLANK; + if (gAbsentBattlerFlags & gBitTable[opposingBank]) + opposingBank ^= BIT_FLANK; + } + else + { + opposingBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; + } + + invalidMons = 0; + + while (invalidMons != 0x3F) // all mons are invalid + { + bestDmg = 0; + bestMonId = 6; + // find the mon which type is the most suitable offensively + for (i = 0; i < 6; i++) + { + u16 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); + if (species != SPECIES_NONE + && GetMonData(&gEnemyParty[i], MON_DATA_HP) != 0 + && !(gBitTable[i] & invalidMons) + && gBattlerPartyIndexes[bankIn1] != i + && gBattlerPartyIndexes[bankIn2] != i + && i != ewram16068arr(bankIn1) + && i != ewram16068arr(bankIn2)) + { + u8 type1 = gBaseStats[species].type1; + u8 type2 = gBaseStats[species].type2; + u8 typeDmg = 10; + ModulateByTypeEffectiveness(gBattleMons[opposingBank].type1, type1, type2, &typeDmg); + ModulateByTypeEffectiveness(gBattleMons[opposingBank].type2, type1, type2, &typeDmg); + if (bestDmg < typeDmg) + { + bestDmg = typeDmg; + bestMonId = i; + } + } + else + { + invalidMons |= gBitTable[i]; + } + } + + // ok, we know the mon has the right typing but does it have at least one super effective move? + if (bestMonId != 6) + { + for (i = 0; i < 4; i++) + { + move = GetMonData(&gEnemyParty[bestMonId], MON_DATA_MOVE1 + i); + if (move != MOVE_NONE && TypeCalc(move, gActiveBattler, opposingBank) & MOVE_RESULT_SUPER_EFFECTIVE) + break; + } + + if (i != 4) + return bestMonId; // has both the typing and at least one super effective move + + invalidMons |= gBitTable[bestMonId]; // sorry buddy, we want something better + } + else + { + invalidMons = 0x3F; // no viable mon to switch + } + } + + gDynamicBasePower = 0; + gBattleStruct->dynamicMoveType = 0; + gBattleStruct->dmgMultiplier = 1; + gMoveResultFlags = 0; + gCritMultiplier = 1; + bestDmg = 0; + bestMonId = 6; + + // if we couldn't find the best mon in terms of typing, find the one that deals most damage + for (i = 0; i < 6; i++) + { + if ((u16)(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES)) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (gBattlerPartyIndexes[bankIn1] == i) + continue; + if (gBattlerPartyIndexes[bankIn2] == i) + continue; + if (i == ewram16068arr(bankIn1)) + continue; + if (i == ewram16068arr(bankIn2)) + continue; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); + gBattleMoveDamage = 0; + if (move != MOVE_NONE && gBattleMoves[move].power != 1) + { + AI_CalcDmg(gActiveBattler, opposingBank); + TypeCalc(move, gActiveBattler, opposingBank); + } + if (bestDmg < gBattleMoveDamage) + { + bestDmg = gBattleMoveDamage; + bestMonId = i; + } + } + } + + return bestMonId; +} diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index f285d2644..7b04446a0 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -18,18 +18,18 @@ extern u32 gUnknown_02023A14_4C; extern u16 gBattleTypeFlags; extern u16 gBattleWeather; extern u8 gActiveBattler; -extern u16 gBattlePartyID[MAX_BANKS_BATTLE]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern int gBattleMoveDamage; extern u8 gBankAttacker; extern u8 gBankTarget; -extern u8 gAbsentBankFlags; -extern u8 gBattleMoveFlags; +extern u8 gAbsentBattlerFlags; +extern u8 gMoveResultFlags; extern u16 gDynamicBasePower; -extern u16 gLastUsedMove[MAX_BANKS_BATTLE]; -extern u32 gStatuses3[MAX_BANKS_BATTLE]; +extern u16 gLastUsedMove[MAX_BATTLERS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern u16 gSideAffecting[2]; -extern struct BattlePokemon gBattleMons[MAX_BANKS_BATTLE]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gCritMultiplier; extern u16 gTrainerBattleOpponent; extern u8 *BattleAIs[]; @@ -324,7 +324,7 @@ void BattleAI_SetupAIData(void) { gBankTarget = Random() & 2; // just pick somebody to target. - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) gBankTarget ^= 2; } else @@ -465,13 +465,13 @@ void unref_sub_81074A0(u8 a) void RecordAbilityBattle(u8 a, u8 b) { if (GetBankSide(a) == 0) - UNK_2016A00_STRUCT->unk20[GetBankIdentity(a) & 1] = b; + UNK_2016A00_STRUCT->unk20[GetBattlerPosition(a) & 1] = b; } void RecordItemBattle(u8 a, u8 b) { if (GetBankSide(a) == 0) - UNK_2016A00_STRUCT->unk22[GetBankIdentity(a) & 1] = b; + UNK_2016A00_STRUCT->unk22[GetBattlerPosition(a) & 1] = b; } static void BattleAICmd_if_random_less_than(void) @@ -694,7 +694,7 @@ static void BattleAICmd_if_status4(void) else index = gBankTarget; - arg1 = GetBankIdentity(index) & 1; + arg1 = GetBattlerPosition(index) & 1; arg2 = T1_READ_32(gAIScriptPtr + 2); if ((gSideAffecting[arg1] & arg2) != 0) @@ -713,7 +713,7 @@ static void BattleAICmd_if_not_status4(void) else index = gBankTarget; - arg1 = GetBankIdentity(index) & 1; + arg1 = GetBattlerPosition(index) & 1; arg2 = T1_READ_32(gAIScriptPtr + 2); if ((gSideAffecting[arg1] & arg2) == 0) @@ -961,7 +961,7 @@ static void BattleAICmd_is_most_powerful_move(void) gDynamicBasePower = 0; eDynamicMoveType = 0; eDmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; for (i = 0; i < MAX_MON_MOVES; i++) @@ -1072,7 +1072,7 @@ _08108250:\n\ adds r0, r5, r2\n\ movs r2, 0x1\n\ strb r2, [r0]\n\ - ldr r0, _08108340 @ =gBattleMoveFlags\n\ + ldr r0, _08108340 @ =gMoveResultFlags\n\ strb r1, [r0]\n\ ldr r0, _08108344 @ =gCritMultiplier\n\ strb r2, [r0]\n\ @@ -1177,7 +1177,7 @@ _08108330: .4byte gBattleMoves\n\ _08108334: .4byte gSharedMem + 0x16800\n\ _08108338: .4byte gDynamicBasePower\n\ _0810833C: .4byte 0xfffff81c\n\ -_08108340: .4byte gBattleMoveFlags\n\ +_08108340: .4byte gMoveResultFlags\n\ _08108344: .4byte gCritMultiplier\n\ _08108348: .4byte gBattleMons\n\ _0810834C: .4byte gBankAttacker\n\ @@ -1325,14 +1325,14 @@ static void BattleAICmd_count_alive_pokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { u32 status; - var = gBattlePartyID[index]; - status = GetBankIdentity(index) ^ 2; - var2 = gBattlePartyID[GetBankByIdentity(status)]; + var = gBattlerPartyIndexes[index]; + status = GetBattlerPosition(index) ^ 2; + var2 = gBattlerPartyIndexes[GetBattlerAtPosition(status)]; } else { - var = gBattlePartyID[index]; - var2 = gBattlePartyID[index]; + var = gBattlerPartyIndexes[index]; + var2 = gBattlerPartyIndexes[index]; } for (i = 0; i < 6; i++) @@ -1372,7 +1372,7 @@ static void BattleAICmd_get_ability(void) if (GetBankSide(index) == TARGET) { - u16 unk = GetBankIdentity(index) & 1; + u16 unk = GetBattlerPosition(index) & 1; if (UNK_2016A00_STRUCT->unk20[unk] != 0) { @@ -1430,7 +1430,7 @@ static void BattleAICmd_get_highest_possible_damage(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; AI_THINKING_STRUCT->funcResult = 0; @@ -1453,7 +1453,7 @@ static void BattleAICmd_get_highest_possible_damage(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = 10; - if (gBattleMoveFlags & 8) // if it's a status move, it wont do anything. + if (gMoveResultFlags & 8) // if it's a status move, it wont do anything. gBattleMoveDamage = 0; if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) @@ -1470,7 +1470,7 @@ static void BattleAICmd_if_damage_bonus(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gBattleMoveDamage = 40; @@ -1487,7 +1487,7 @@ static void BattleAICmd_if_damage_bonus(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = 10; - if (gBattleMoveFlags & 8) + if (gMoveResultFlags & 8) gBattleMoveDamage = 0; // store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. @@ -1677,7 +1677,7 @@ static void BattleAICmd_if_can_faint(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; AI_CalcDmg(gBankAttacker, gBankTarget); @@ -1706,7 +1706,7 @@ static void BattleAICmd_if_cant_faint(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; AI_CalcDmg(gBankAttacker, gBankTarget); @@ -1938,7 +1938,7 @@ static void BattleAICmd_get_hold_effect(void) if (GetBankSide(index) == 0) { - status = (GetBankIdentity(index) & 1); + status = (GetBattlerPosition(index) & 1); AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk22[status]; } else diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c index 03ce1798f..90fff11ee 100644 --- a/src/battle/battle_anim.c +++ b/src/battle/battle_anim.c @@ -1287,7 +1287,7 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_06, }; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern u8 gBankSpriteIds[]; extern u8 gBankAttacker; extern u8 gBankTarget; @@ -1491,9 +1491,9 @@ void LaunchBattleAnimation(const u8 *const moveAnims[], u16 move, u8 isMoveAnim) for (i = 0; i < 4; i++) { if (GetBankSide(i) != 0) - gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES); + gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); else - gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES); + gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); } } else @@ -1829,7 +1829,7 @@ static void ScriptCmd_monbg(void) if (IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) toBG_2 = 0; @@ -1861,7 +1861,7 @@ static void ScriptCmd_monbg(void) bank ^= 2; if (animBank >= ANIM_BANK_ATK_PARTNER && IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) toBG_2 = 0; @@ -1947,7 +1947,7 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) if (IsContest() != 0) r2 = 0; else - r2 = GetBankIdentity(bank); + r2 = GetBattlerPosition(bank); sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock); if (IsContest() != 0) sub_8076380(); @@ -1976,7 +1976,7 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) LoadPalette(gPlttBufferUnfaded + 0x100 + bank * 16, 0x90, 32); DmaCopy32Defvars(3, gPlttBufferUnfaded + 0x100 + bank * 16, (void *)(PLTT + 0x120), 32); - sub_80E4EF8(0, 0, GetBankIdentity(bank), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock); + sub_80E4EF8(0, 0, GetBattlerPosition(bank), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock); } } @@ -2119,7 +2119,7 @@ static void sub_807672C(u8 taskId) gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] != 1) { - identity = GetBankIdentity(gTasks[taskId].data[2]); + identity = GetBattlerPosition(gTasks[taskId].data[2]); identity += 0xFF; if (identity <= 1 || IsContest() != 0) to_BG2 = 0; @@ -2163,7 +2163,7 @@ static void ScriptCmd_monbg_22(void) if (IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) r1 = 0; @@ -2176,7 +2176,7 @@ static void ScriptCmd_monbg_22(void) bank ^= 2; if (animBankId > ANIM_BANK_TARGET && IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) r1 = 0; @@ -2231,7 +2231,7 @@ static void sub_80769A4(u8 taskId) if (gTasks[taskId].data[1] != 1) { bank = gTasks[taskId].data[2]; - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) toBG_2 = 0; @@ -3052,7 +3052,7 @@ static void ScriptCmd_monbgprio_28(void) else bank = gAnimBankAttacker; - bankIdentity = GetBankIdentity(bank); + bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == 0 || bankIdentity == 3)) { REG_BG1CNT_BITFIELD.priority = 1; @@ -3084,7 +3084,7 @@ static void ScriptCmd_monbgprio_2A(void) bank = gAnimBankTarget; else bank = gAnimBankAttacker; - bankIdentity = GetBankIdentity(bank); + bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == 0 || bankIdentity == 3)) { REG_BG1CNT_BITFIELD.priority = 1; @@ -3128,12 +3128,12 @@ static void ScriptCmd_doublebattle_2D(void) { if (wantedBank == 0) { - r4 = GetBankIdentity_permutated(gAnimBankAttacker); + r4 = GetBattlerPosition_permutated(gAnimBankAttacker); spriteId = GetAnimBankSpriteId(0); } else { - r4 = GetBankIdentity_permutated(gAnimBankTarget); + r4 = GetBattlerPosition_permutated(gAnimBankTarget); spriteId = GetAnimBankSpriteId(1); } if (spriteId != 0xFF) @@ -3162,12 +3162,12 @@ static void ScriptCmd_doublebattle_2E(void) { if (wantedBank == 0) { - r4 = GetBankIdentity_permutated(gAnimBankAttacker); + r4 = GetBattlerPosition_permutated(gAnimBankAttacker); spriteId = GetAnimBankSpriteId(0); } else { - r4 = GetBankIdentity_permutated(gAnimBankTarget); + r4 = GetBattlerPosition_permutated(gAnimBankTarget); spriteId = GetAnimBankSpriteId(1); } if (spriteId != 0xFF && r4 == 2) diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c index a8b0ec329..15191a1ce 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle/battle_anim_80A7E7C.c @@ -182,17 +182,17 @@ void AnimTask_ShakeMon2(u8 taskId) switch (gBattleAnimArgs[0]) { case 4: - side = GetBankByIdentity(0); + side = GetBattlerAtPosition(0); break; case 5: - side = GetBankByIdentity(2); + side = GetBattlerAtPosition(2); break; case 6: - side = GetBankByIdentity(1); + side = GetBattlerAtPosition(1); break; case 7: default: - side = GetBankByIdentity(3); + side = GetBattlerAtPosition(3); break; } @@ -427,7 +427,7 @@ static void sub_80A8488(u8 taskId) // arg 4: speed (valid values are 0-5) void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; AnimTask_TranslateMonElliptical(taskId); @@ -440,7 +440,7 @@ void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) static void DoHorizontalLunge(struct Sprite *sprite) { sprite->invisible = TRUE; - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) sprite->data[1] = -gBattleAnimArgs[1]; else sprite->data[1] = gBattleAnimArgs[1]; @@ -572,7 +572,7 @@ static void SlideMonToOffset(struct Sprite *sprite) battler = gAnimBankTarget; monSpriteId = gBankSpriteIds[battler]; - if (GetBankSide(battler) != SIDE_PLAYER) + if (GetBankSide(battler) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) @@ -659,7 +659,7 @@ static void sub_80A88F0(struct Sprite *sprite) void AnimTask_WindUpLunge(u8 taskId) { s16 wavePeriod = 0x8000 / gBattleAnimArgs[3]; - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[5] = -gBattleAnimArgs[5]; @@ -774,7 +774,7 @@ static void sub_80A8B3C(u8 taskId) void AnimTask_SwayMon(u8 taskId) { u8 spriteId; - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]); @@ -812,7 +812,7 @@ static void AnimTask_SwayMonStep(u8 taskId) } else { - if (GetBankSide(TASK.data[5]) == SIDE_PLAYER) + if (GetBankSide(TASK.data[5]) == B_SIDE_PLAYER) { gSprites[spriteId].pos2.y = (sineValue >= 0) ? sineValue : -sineValue; } diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c index f1cb34bdf..b1e711b05 100644 --- a/src/battle/battle_controller_linkopponent.c +++ b/src/battle/battle_controller_linkopponent.c @@ -28,7 +28,7 @@ struct MovePpInfo extern u8 gActiveBattler; extern u8 gBattleBufferA[][0x200]; extern u8 gBankSpriteIds[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gHealthboxIDs[]; extern u16 gBattleTypeFlags; extern u8 gBattleMonForms[]; @@ -57,7 +57,7 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern u8 sub_8077F68(); extern u8 sub_8079E90(); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void BattleLoadOpponentMonSprite(struct Pokemon *, u8); extern void sub_8037A74(void); extern void sub_8032984(u8, u16); @@ -311,7 +311,7 @@ void sub_8037680(void) if (r6) { - if (GetBankIdentity(gActiveBattler) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) { if (!ewram17810[gActiveBattler].unk1_0 || !ewram17810[gActiveBattler ^ 2].unk1_0) return; @@ -324,7 +324,7 @@ void sub_8037680(void) } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBattler) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) m4aMPlayContinue(&gMPlay_BGM); } else @@ -339,12 +339,12 @@ void sub_8037680(void) void sub_8037840(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) - sub_8141828(gActiveBattler ^ 2, &gEnemyParty[gBattlePartyID[gActiveBattler ^ 2]]); + sub_8141828(gActiveBattler ^ 2, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { - if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBankIdentity(gActiveBattler) == 3) + if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(gActiveBattler) == 3) { if (++ewram17810[gActiveBattler].unk9 == 1) return; @@ -355,24 +355,24 @@ void sub_8037840(void) DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( gHealthboxIDs[gActiveBattler ^ 2], - &gEnemyParty[gBattlePartyID[gActiveBattler ^ 2]], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); sub_8032984( gActiveBattler ^ 2, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ 2]], MON_DATA_SPECIES)); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( gHealthboxIDs[gActiveBattler], - &gEnemyParty[gBattlePartyID[gActiveBattler]], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); sub_8032984( gActiveBattler, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); ewram17840.unk9_0 = 0; gBattleBankFunc[gActiveBattler] = sub_8037680; @@ -386,7 +386,7 @@ void sub_8037A74(void) { if (!ewram17810[gActiveBattler].unk0_7) { - sub_8141828(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); return; } if (ewram17810[gActiveBattler].unk1_0) @@ -488,7 +488,7 @@ void sub_8037D64(void) StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); sub_8045A5C( gHealthboxIDs[gActiveBattler], - &gEnemyParty[gBattlePartyID[gActiveBattler]], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); @@ -500,12 +500,12 @@ void sub_8037D64(void) void sub_8037E30(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy && !ewram17810[gActiveBattler].unk0_3) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleBankFunc[gActiveBattler] = sub_8037D64; } } @@ -577,7 +577,7 @@ void LinkOpponentHandleGetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = dp01_getattr_by_ch1_for_player_pokemon__(gBattlePartyID[gActiveBattler], buffer); + r6 = dp01_getattr_by_ch1_for_player_pokemon__(gBattlerPartyIndexes[gActiveBattler], buffer); } else { @@ -907,7 +907,7 @@ void LinkOpponentHandleSetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_8038900(gBattlePartyID[gActiveBattler]); + sub_8038900(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1143,7 +1143,7 @@ void LinkOpponentHandlecmd3(void) u8 *dst; u8 i; - MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], + MEMSET_ALT(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], gBattleBufferA[gActiveBattler][2], i, dst); LinkOpponentBufferExecCompleted(); @@ -1151,10 +1151,10 @@ void LinkOpponentHandlecmd3(void) void LinkOpponentHandleLoadPokeSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(gActiveBattler)); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(gActiveBattler, 2), @@ -1164,13 +1164,13 @@ void LinkOpponentHandleLoadPokeSprite(void) gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleBankFunc[gActiveBattler] = sub_8037A74; } void LinkOpponentHandleSendOutPoke(void) { - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_8039430(gActiveBattler, gBattleBufferA[gActiveBattler][2]); gBattleBankFunc[gActiveBattler] = sub_8037E30; } @@ -1180,11 +1180,11 @@ void sub_8039430(u8 a, u8 b) u16 species; sub_8032AA8(a, b); - gBattlePartyID[a] = gBattleBufferA[a][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gBattlerPartyIndexes[a] = gBattleBufferA[a][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); gBankSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(a, 2), @@ -1244,7 +1244,7 @@ void LinkOpponentHandleTrainerThrow(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBattler) & 2) + if (GetBattlerPosition(gActiveBattler) & 2) xOffset = -16; else xOffset = 16; @@ -1256,7 +1256,7 @@ void LinkOpponentHandleTrainerThrow(void) gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender; } sub_8031A6C(gender, gActiveBattler); - GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(gender, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 176 + xOffset, 40 + 4 * (8 - gTrainerFrontPicCoords[gender].coords), @@ -1460,14 +1460,14 @@ void LinkOpponentHandleHealthBarUpdate(void) r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 hp = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); } @@ -1483,7 +1483,7 @@ void LinkOpponentHandleStatusIconUpdate(void) { if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], 9); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; gBattleBankFunc[gActiveBattler] = sub_8037FAC; } @@ -1613,7 +1613,7 @@ void LinkOpponentHandlecmd44(void) void LinkOpponentHandleFaintingCry(void) { PlayCry3( - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), 25, 5); LinkOpponentBufferExecCompleted(); } @@ -1651,15 +1651,15 @@ void sub_803A2C4(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8039430(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8039430(gActiveBattler, 0); gActiveBattler ^= 2; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8039430(gActiveBattler, 0); gActiveBattler ^= 2; } diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c index 29c1b7235..9d0181336 100644 --- a/src/battle/battle_controller_linkpartner.c +++ b/src/battle/battle_controller_linkpartner.c @@ -34,7 +34,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gBattleBufferA[][0x200]; extern u8 gActiveBattler; extern u32 gBattleExecBuffer; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankSpriteIds[]; extern u8 gBattleOutcome; extern u16 gUnknown_02024DE8; @@ -322,12 +322,12 @@ void sub_811DCA0(void) if (IsDoubleBattle() && !(gBattleTypeFlags & 0x40)) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlePartyID[gActiveBattler ^ 2]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); (s8)ewram17810[4].unk9 &= ~1; @@ -355,7 +355,7 @@ void bx_t3_healthbar_update(void) } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); LinkPartnerBufferExecCompleted(); } } @@ -364,7 +364,7 @@ void sub_811DE98(void) { if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > 160) { - nullsub_9(GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + nullsub_9(GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); sub_8043DB0(gHealthboxIDs[gActiveBattler]); @@ -434,9 +434,9 @@ void sub_811E0CC(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); sub_8031F88(gActiveBattler); @@ -447,7 +447,7 @@ void sub_811E0CC(void) void sub_811E1BC(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy && !ewram17810[gActiveBattler].unk0_3) { @@ -523,7 +523,7 @@ void LinkPartnerHandleGetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = dp01_getattr_by_ch1_for_player_pokemon(gBattlePartyID[gActiveBattler], unk); + r6 = dp01_getattr_by_ch1_for_player_pokemon(gBattlerPartyIndexes[gActiveBattler], unk); } else { @@ -854,7 +854,7 @@ void LinkPartnerHandleSetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_811EC68(gBattlePartyID[gActiveBattler]); + sub_811EC68(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1084,7 +1084,7 @@ void sub_811EC68(u8 a) SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } void LinkPartnerHandlecmd3(void) @@ -1092,7 +1092,7 @@ void LinkPartnerHandlecmd3(void) u8 *dst; u8 i; - MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], + MEMSET_ALT(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], gBattleBufferA[gActiveBattler][2], i, dst); LinkPartnerBufferExecCompleted(); @@ -1100,10 +1100,10 @@ void LinkPartnerHandlecmd3(void) void LinkPartnerHandleLoadPokeSprite(void) { - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); GetMonSpriteTemplate_803C56C( - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES), - GetBankIdentity(gActiveBattler)); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), + GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(gActiveBattler, 2), @@ -1119,8 +1119,8 @@ void LinkPartnerHandleLoadPokeSprite(void) void LinkPartnerHandleSendOutPoke(void) { sub_8032AA8(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_811F864(gActiveBattler, gBattleBufferA[gActiveBattler][2]); gBattleBankFunc[gActiveBattler] = sub_811E1BC; } @@ -1130,10 +1130,10 @@ void sub_811F864(u8 a, u8 b) u16 species; sub_8032AA8(a, b); - gBattlePartyID[a] = gBattleBufferA[a][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gBattlerPartyIndexes[a] = gBattleBufferA[a][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); gBankSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(a, 2), @@ -1192,7 +1192,7 @@ void LinkPartnerHandleTrainerThrow(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBattler) & 2) + if (GetBattlerPosition(gActiveBattler) & 2) xOffset = 16; else xOffset = -16; @@ -1204,7 +1204,7 @@ void LinkPartnerHandleTrainerThrow(void) gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender; } LoadPlayerTrainerBankSprite(gender, gActiveBattler); - GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(gender, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80 + xOffset, 80 + 4 * (8 - gTrainerBackPicCoords[gender].coords), @@ -1243,7 +1243,7 @@ void LinkPartnerHandlecmd10(void) else if (!ewram17810[gActiveBattler].unk0_6) { ewram17810[gActiveBattler].unk4 = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; @@ -1405,14 +1405,14 @@ void LinkPartnerHandleHealthBarUpdate(void) r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 hp = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); } @@ -1428,7 +1428,7 @@ void LinkPartnerHandleStatusIconUpdate(void) { if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 9); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; gBattleBankFunc[gActiveBattler] = sub_811E38C; } @@ -1558,7 +1558,7 @@ void LinkPartnerHandlecmd44(void) void LinkPartnerHandleFaintingCry(void) { PlayCry3( - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES), + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), -25, 5); LinkPartnerBufferExecCompleted(); } @@ -1610,16 +1610,16 @@ void sub_812071C(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_811F864(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_811F864(gActiveBattler, 0); gActiveBattler ^= 2; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_811F864(gActiveBattler, 0); gActiveBattler ^= 2; } diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 16b324f01..c87ffaf92 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -33,7 +33,7 @@ struct MovePpInfo extern u8 gUnknown_02023A14_50; extern u8 gActiveBattler; extern u8 gBattleBufferA[][0x200]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankSpriteIds[]; extern u8 gBattleMonForms[]; extern struct SpriteTemplate gUnknown_02024E8C; @@ -55,7 +55,7 @@ extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_X; extern u8 gDisplayedStringBattle[]; extern u8 gBankTarget; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; extern u16 gUnknown_02024DE8; extern u8 gUnknown_02024E68[]; @@ -71,7 +71,7 @@ extern u8 sub_8077F68(); extern u8 sub_8079E90(); extern void sub_8033018(void); extern void BattleLoadOpponentMonSprite(); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void sub_8032984(u8, u16); extern void sub_80333D4(void); extern void sub_80312F0(struct Sprite *); @@ -98,9 +98,9 @@ extern void sub_8031F24(void); extern void sub_80324BC(); extern void BufferStringBattle(); extern void sub_80331D0(void); -extern void sub_8036B0C(void); -extern u8 GetBankByIdentity(u8); -extern u8 sub_8036CD4(void); +extern void AI_TrySwitchOrUseItem(void); +extern u8 GetBattlerAtPosition(u8); +extern u8 GetMostSuitableMonToSwitchInto(void); extern void sub_80330C8(void); extern void sub_8043D84(); extern void sub_8045A5C(); @@ -350,9 +350,9 @@ void sub_8032C88(void) void sub_8032E2C(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) - sub_8141828(gActiveBattler ^ 2, &gEnemyParty[gBattlePartyID[gActiveBattler ^ 2]]); + sub_8141828(gActiveBattler ^ 2, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) @@ -360,24 +360,24 @@ void sub_8032E2C(void) DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( gHealthboxIDs[gActiveBattler ^ 2], - &gEnemyParty[gBattlePartyID[gActiveBattler ^ 2]], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); sub_8032984( gActiveBattler ^ 2, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ 2]], MON_DATA_SPECIES)); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( gHealthboxIDs[gActiveBattler], - &gEnemyParty[gBattlePartyID[gActiveBattler]], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); sub_8032984( gActiveBattler, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); ewram17840.unk9_0 = 0; gBattleBankFunc[gActiveBattler] = sub_8032C88; @@ -391,7 +391,7 @@ void sub_8033018(void) { if (!ewram17810[gActiveBattler].unk0_7) { - sub_8141828(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); return; } if (ewram17810[gActiveBattler].unk1_0) @@ -493,7 +493,7 @@ void sub_8033308(void) StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); sub_8045A5C( gHealthboxIDs[gActiveBattler], - &gEnemyParty[gBattlePartyID[gActiveBattler]], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); @@ -505,12 +505,12 @@ void sub_8033308(void) void sub_80333D4(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy && !ewram17810[gActiveBattler].unk0_3) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleBankFunc[gActiveBattler] = sub_8033308; } } @@ -541,7 +541,7 @@ void OpponentHandleGetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = sub_8033598(gBattlePartyID[gActiveBattler], buffer); + r6 = sub_8033598(gBattlerPartyIndexes[gActiveBattler], buffer); } else { @@ -864,7 +864,7 @@ void OpponentHandlecmd1(void) struct BattlePokemon buffer; u8 i; // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard. - u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *src = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 *dst; MEMSET_ALT(&buffer + gBattleBufferA[gActiveBattler][1], src[i], gBattleBufferA[gActiveBattler][2], i, dst); @@ -879,7 +879,7 @@ void OpponentHandleSetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_8033E24(gBattlePartyID[gActiveBattler]); + sub_8033E24(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1115,17 +1115,17 @@ void OpponentHandlecmd3(void) u8 *dst; u8 i; - MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], + MEMSET_ALT(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], gBattleBufferA[gActiveBattler][2], i, dst); OpponentBufferExecCompleted(); } void OpponentHandleLoadPokeSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(gActiveBattler)); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(gActiveBattler, 2), @@ -1136,13 +1136,13 @@ void OpponentHandleLoadPokeSprite(void) gSprites[gBankSpriteIds[gActiveBattler]].data[2] = species; gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleBankFunc[gActiveBattler] = sub_8033018; } void OpponentHandleSendOutPoke(void) { - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_803495C(gActiveBattler, gBattleBufferA[gActiveBattler][2]); gBattleBankFunc[gActiveBattler] = sub_80333D4; @@ -1153,11 +1153,11 @@ void sub_803495C(u8 a, u8 b) u16 species; sub_8032AA8(a, b); - gBattlePartyID[a] = gBattleBufferA[a][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gBattlerPartyIndexes[a] = gBattleBufferA[a][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); gBankSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(a, 2), @@ -1233,7 +1233,7 @@ void OpponentHandleTrainerThrow(void) } sub_8031A6C(trainerPicIndex, gActiveBattler); - GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 0xB0, @@ -1263,7 +1263,7 @@ void OpponentHandleTrainerSlide(void) trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; sub_8031A6C(trainerPicIndex, gActiveBattler); - GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 0xB0, @@ -1428,7 +1428,7 @@ void OpponentHandlePrintStringPlayerOnly(void) void OpponentHandlecmd18(void) { - sub_8036B0C(); + AI_TrySwitchOrUseItem(); OpponentBufferExecCompleted(); } @@ -1543,7 +1543,7 @@ void OpponentHandlecmd20(void) bne ._557 @cond_branch\n\ mov r1, sl\n\ ldrb r0, [r1]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ mov r1, #0x2\n\ eor r0, r0, r1\n\ lsl r0, r0, #0x18\n\ @@ -1564,7 +1564,7 @@ void OpponentHandlecmd20(void) ._557:\n\ mov r0, #0x0\n\ ._558:\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x18\n\ ._561:\n\ @@ -1635,10 +1635,10 @@ void OpponentHandlecmd20(void) cmp r0, #0\n\ beq ._572 @cond_branch\n\ mov r0, #0x0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r5, ._574 + 4 @ gBankTarget\n\ strb r0, [r5]\n\ - ldr r0, ._574 + 8 @ gAbsentBankFlags\n\ + ldr r0, ._574 + 8 @ gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, ._574 + 12 @ gBitTable\n\ ldrb r0, [r5]\n\ @@ -1649,7 +1649,7 @@ void OpponentHandlecmd20(void) cmp r1, #0\n\ beq ._572 @cond_branch\n\ mov r0, #0x2\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ strb r0, [r5]\n\ ._572:\n\ ldr r0, ._574 + 4 @ gBankTarget\n\ @@ -1665,7 +1665,7 @@ void OpponentHandlecmd20(void) ._574:\n\ .word gBattleMoves\n\ .word gBankTarget\n\ - .word gAbsentBankFlags\n\ + .word gAbsentBattlerFlags\n\ .word gBitTable\n\ ._563:\n\ mov r6, #0x3\n\ @@ -1710,7 +1710,7 @@ void OpponentHandlecmd20(void) lsl r1, r1, #0x18\n\ lsr r1, r1, #0x18\n\ add r0, r1, #0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ add r2, r0, #0\n\ lsl r2, r2, #0x18\n\ lsr r2, r2, #0x10\n\ @@ -1726,7 +1726,7 @@ void OpponentHandlecmd20(void) .word gBattleTypeFlags\n\ ._581:\n\ mov r0, #0x0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ add r2, r0, #0\n\ lsl r2, r2, #0x18\n\ lsr r2, r2, #0x10\n\ @@ -1770,9 +1770,9 @@ void OpponentHandlecmd20(void) gBankTarget = gActiveBattler; if (gBattleMoves[r5->moves[r4]].target & 8) { - gBankTarget = GetBankByIdentity(0); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(2); + gBankTarget = GetBattlerAtPosition(0); + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(2); } r4 |= gBankTarget << 8; Emitcmd33(1, 10, r4); @@ -1798,13 +1798,13 @@ void OpponentHandlecmd20(void) } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - u16 r2 = GetBankByIdentity(Random() & 2) << 8; + u16 r2 = GetBattlerAtPosition(Random() & 2) << 8; Emitcmd33(1, 10, r4 | r2); } else { - u16 r2 = GetBankByIdentity(0) << 8; + u16 r2 = GetBattlerAtPosition(0) << 8; Emitcmd33(1, 10, r4 | r2); } @@ -1880,10 +1880,10 @@ _08035494:\n\ cmp r0, 0\n\ beq _080354CE\n\ movs r0, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r5, _080354EC @ =gBankTarget\n\ strb r0, [r5]\n\ - ldr r0, _080354F0 @ =gAbsentBankFlags\n\ + ldr r0, _080354F0 @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, _080354F4 @ =gBitTable\n\ ldrb r0, [r5]\n\ @@ -1894,7 +1894,7 @@ _08035494:\n\ cmp r1, 0\n\ beq _080354CE\n\ movs r0, 0x2\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ strb r0, [r5]\n\ _080354CE:\n\ ldr r0, _080354EC @ =gBankTarget\n\ @@ -1911,7 +1911,7 @@ _080354E0:\n\ .align 2, 0\n\ _080354E8: .4byte gBattleMoves\n\ _080354EC: .4byte gBankTarget\n\ -_080354F0: .4byte gAbsentBankFlags\n\ +_080354F0: .4byte gAbsentBattlerFlags\n\ _080354F4: .4byte gBitTable\n\ _080354F8:\n\ movs r6, 0x3\n\ @@ -1959,7 +1959,7 @@ _0803553C:\n\ lsls r1, 24\n\ lsrs r1, 24\n\ adds r0, r1, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ adds r2, r0, 0\n\ lsls r2, 24\n\ lsrs r2, 16\n\ @@ -1972,7 +1972,7 @@ _0803553C:\n\ _0803556C: .4byte gBattleTypeFlags\n\ _08035570:\n\ movs r0, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ adds r2, r0, 0\n\ lsls r2, 24\n\ lsrs r2, 16\n\ @@ -2002,37 +2002,37 @@ void OpponentHandlecmd22(void) { s32 r4; - if (ewram160C8arr(GetBankIdentity(gActiveBattler)) == 6) + if (ewram160C8arr(GetBattlerPosition(gActiveBattler)) == 6) { u8 r6; u8 r5; - r4 = sub_8036CD4(); + r4 = GetMostSuitableMonToSwitchInto(); if (r4 == 6) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - r5 = GetBankByIdentity(1); + r5 = GetBattlerAtPosition(1); r6 = r5; } else { - r6 = GetBankByIdentity(1); - r5 = GetBankByIdentity(3); + r6 = GetBattlerAtPosition(1); + r5 = GetBattlerAtPosition(3); } for (r4 = 0; r4 < 6; r4++) { if (GetMonData(&gEnemyParty[r4], MON_DATA_HP) != 0 - && r4 != gBattlePartyID[r6] - && r4 != gBattlePartyID[r5]) + && r4 != gBattlerPartyIndexes[r6] + && r4 != gBattlerPartyIndexes[r5]) break; } } } else { - r4 = ewram160C8arr(GetBankIdentity(gActiveBattler)); - ewram160C8arr(GetBankIdentity(gActiveBattler)) = 6; + r4 = ewram160C8arr(GetBattlerPosition(gActiveBattler)); + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; } ewram16068arr(gActiveBattler) = r4; Emitcmd34(1, r4, 0); @@ -2052,14 +2052,14 @@ void OpponentHandleHealthBarUpdate(void) r7 = (gBattleBufferA[gActiveBattler][3] << 8) | gBattleBufferA[gActiveBattler][2]; if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 hp = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); } @@ -2075,7 +2075,7 @@ void OpponentHandleStatusIconUpdate(void) { if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], 9); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; gBattleBankFunc[gActiveBattler] = sub_8033494; } @@ -2205,7 +2205,7 @@ void OpponentHandlecmd44(void) void OpponentHandleFaintingCry(void) { PlayCry3( - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), 25, 5); OpponentBufferExecCompleted(); } @@ -2251,15 +2251,15 @@ void sub_8035C44(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_803495C(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_803495C(gActiveBattler, 0); gActiveBattler ^= 2; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_803495C(gActiveBattler, 0); gActiveBattler ^= 2; } diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index d2d87bcce..83171a0e9 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -52,7 +52,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gMoveSelectionCursor[]; extern u8 gBattleBufferA[][0x200]; extern u8 gBankInMenu; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gHealthboxIDs[]; extern u8 gDoingBattleAnim; extern u8 gBankSpriteIds[]; @@ -121,12 +121,12 @@ extern void sub_8031F24(void); extern void sub_80324BC(); extern u8 sub_8031720(); extern void bx_wait_t1(void); -extern u8 GetBankByIdentity(u8); +extern u8 GetBattlerAtPosition(u8); extern void sub_802DE10(void); extern void sub_80105EC(struct Sprite *); extern void sub_802D274(void); extern void sub_802D23C(void); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void LoadPlayerTrainerBankSprite(); extern void sub_80313A0(struct Sprite *); extern void sub_802D204(void); @@ -147,10 +147,10 @@ extern u8 gBattleBufferA[][0x200]; extern u8 gBankSpriteIds[]; extern u8 gActionSelectionCursor[]; extern u8 gMoveSelectionCursor[]; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_03004344; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_X; extern struct Window gUnknown_03004210; @@ -169,8 +169,8 @@ extern u8 gDisplayedStringBattle[]; extern const u8 BattleText_LinkStandby[]; extern void dp11b_obj_instanciate(u8, u8, s8, s8); -extern u8 GetBankIdentity(u8); -extern u8 GetBankByIdentity(u8); +extern u8 GetBattlerPosition(u8); +extern u8 GetBattlerAtPosition(u8); extern void dp11b_obj_free(u8, u8); extern void sub_8010520(struct Sprite *); extern void sub_8010574(struct Sprite *); @@ -447,8 +447,8 @@ void sub_802C098(void) else if (gMain.newKeys & B_BUTTON) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - && GetBankIdentity(gActiveBattler) == 2 - && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(0)]) + && GetBattlerPosition(gActiveBattler) == 2 + && !(gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(0)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { if (gBattleBufferA[gActiveBattler][1] == 1) @@ -520,7 +520,7 @@ void sub_802C2EC(void) gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; do { - u8 var = GetBankIdentity(gUnknown_03004344); + u8 var = GetBattlerPosition(gUnknown_03004344); for (i = 0; i < 4; i++) { @@ -532,10 +532,10 @@ void sub_802C2EC(void) i--; if (i < 0) i = 3; - gUnknown_03004344 = GetBankByIdentity(arr[i]); + gUnknown_03004344 = GetBattlerAtPosition(arr[i]); } while(gUnknown_03004344 == gNoOfAllBanks); i = 0; - switch (GetBankIdentity(gUnknown_03004344)) + switch (GetBattlerPosition(gUnknown_03004344)) { case 0: case 2: @@ -544,7 +544,7 @@ void sub_802C2EC(void) u32 moveId; asm("":::"memory"); - moveId = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); + moveId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); if (!(gBattleMoves[moveId].target & 2)) break; } @@ -555,7 +555,7 @@ void sub_802C2EC(void) i++; } //_0802C500 - if (gAbsentBankFlags & gBitTable[gUnknown_03004344]) + if (gAbsentBattlerFlags & gBitTable[gUnknown_03004344]) i = 0; } while (i == 0); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; @@ -567,7 +567,7 @@ void sub_802C2EC(void) gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; do { - u8 var = GetBankIdentity(gUnknown_03004344); + u8 var = GetBattlerPosition(gUnknown_03004344); for (i = 0; i < 4; i++) { @@ -579,10 +579,10 @@ void sub_802C2EC(void) i++; if (i > 3) i = 0; - gUnknown_03004344 = GetBankByIdentity(arr[i]); + gUnknown_03004344 = GetBattlerAtPosition(arr[i]); } while (gUnknown_03004344 == gNoOfAllBanks); i = 0; - switch (GetBankIdentity(gUnknown_03004344)) + switch (GetBattlerPosition(gUnknown_03004344)) { case 0: case 2: @@ -591,7 +591,7 @@ void sub_802C2EC(void) u32 moveId; asm("":::"memory"); - moveId = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); + moveId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); if (!(gBattleMoves[moveId].target & 2)) break; } @@ -601,7 +601,7 @@ void sub_802C2EC(void) case 3: i++; } - if (gAbsentBankFlags & gBitTable[gUnknown_03004344]) + if (gAbsentBattlerFlags & gBitTable[gUnknown_03004344]) i = 0; } while (i == 0); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; @@ -644,7 +644,7 @@ void sub_802C68C(void) if (r4 & 0x10) gUnknown_03004344 = gActiveBattler; else - gUnknown_03004344 = GetBankByIdentity((GetBankIdentity(gActiveBattler) & 1) ^ 1); + gUnknown_03004344 = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & 1) ^ 1); if (gBattleBufferA[gActiveBattler][1] == 0) { @@ -676,10 +676,10 @@ void sub_802C68C(void) gBattleBankFunc[gActiveBattler] = sub_802C2EC; if (r4 & 0x12) gUnknown_03004344 = gActiveBattler; - else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(1)]) - gUnknown_03004344 = GetBankByIdentity(3); + else if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(1)]) + gUnknown_03004344 = GetBattlerAtPosition(3); else - gUnknown_03004344 = GetBankByIdentity(1); + gUnknown_03004344 = GetBattlerAtPosition(1); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; } } @@ -765,11 +765,11 @@ void sub_802C68C(void) s32 i; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x3A); - moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1)]; + moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1)]; Text_InitWindowAndPrintText(&gUnknown_03004210, moveName, 0x100, 2, 0x37); ConvertIntToDecimalStringN( gDisplayedStringBattle, - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1), + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1), 2, 3); Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x110, 10, 0x37); Text_InitWindowAndPrintText(&gUnknown_03004210, gString_TurnJP, 0x116, 1, 0x39); @@ -859,11 +859,11 @@ void sub_802CA60(void) { for (i = 0; i < 4; i++) { - sp0.moves[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i); - sp0.pp[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP1 + i); + sp0.moves[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i); + sp0.pp[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i); } - totalPPBonuses = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP_BONUSES); + totalPPBonuses = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES); for (i = 0; i < 4; i++) perMovePPBonuses[i] = (totalPPBonuses & (3 << (i * 2))) >> (i * 2); @@ -885,10 +885,10 @@ void sub_802CA60(void) for (i = 0; i < 4; i++) { - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i, &sp0.moves[i]); - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP1 + i, &sp0.pp[i]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i, &sp0.moves[i]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i, &sp0.pp[i]); } - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses); } } else @@ -1007,7 +1007,7 @@ void debug_sub_803107C(void); void debug_sub_8030C24(void) { - s16 move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1); + s16 move = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1); switch (gMain.newAndRepeatedKeys) { @@ -1018,9 +1018,9 @@ void debug_sub_8030C24(void) if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) gBankTarget = gBankAttacker ^ 2; else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankTarget = GetBankByIdentity(3); + gBankTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBankByIdentity(1); + gBankTarget = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); gBattleBankFunc[gActiveBattler] = debug_sub_803107C; @@ -1032,9 +1032,9 @@ void debug_sub_8030C24(void) if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) gBankAttacker = gBankTarget ^ 2; else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankAttacker = GetBankByIdentity(3); + gBankAttacker = GetBattlerAtPosition(3); else - gBankAttacker = GetBankByIdentity(1); + gBankAttacker = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); gBattleBankFunc[gActiveBattler] = debug_sub_803107C; @@ -1044,8 +1044,8 @@ void debug_sub_8030C24(void) { dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBankAttacker = GetBankByIdentity(3); - gBankTarget = GetBankByIdentity(1); + gBankAttacker = GetBattlerAtPosition(3); + gBankTarget = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); gBattleBankFunc[gActiveBattler] = debug_sub_803107C; @@ -1056,7 +1056,7 @@ void debug_sub_8030C24(void) case DPAD_RIGHT: if (++move > 354) move = 1; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1, &move); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1, &move); gBattleMons[gActiveBattler].moves[0] = move; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38); Text_InitWindowAndPrintText(&gUnknown_03004210, gMoveNames[move], 0x100, 2, 0x37); @@ -1069,8 +1069,8 @@ void debug_sub_8030C24(void) { dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBankAttacker = GetBankByIdentity(1); - gBankTarget = GetBankByIdentity(3); + gBankAttacker = GetBattlerAtPosition(1); + gBankTarget = GetBattlerAtPosition(3); sub_80326EC(0); DoMoveAnim(move); gBattleBankFunc[gActiveBattler] = debug_sub_803107C; @@ -1081,7 +1081,7 @@ void debug_sub_8030C24(void) case DPAD_LEFT: if (--move <= 0) move = 354; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1, &move); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1, &move); gBattleMons[gActiveBattler].moves[0] = move; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38); Text_InitWindowAndPrintText(&gUnknown_03004210, gMoveNames[move], 0x100, 2, 0x37); @@ -1108,7 +1108,7 @@ void debug_sub_8030C24(void) for (i = 0; i < 4; i++) { StringCopy(gDisplayedStringBattle, BattleText_Format); - move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i); + move = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i); StringAppend(gDisplayedStringBattle, gMoveNames[move]); Text_InitWindow( &gUnknown_03004210, @@ -1224,9 +1224,9 @@ void sub_802D31C(void) m4aMPlayContinue(&gMPlay_BGM); else m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler ^ 2]], gActiveBattler ^ 2); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], gActiveBattler ^ 2); ewram17810[gActiveBattler].unk9 = 3; gBattleBankFunc[gActiveBattler] = sub_802D2E0; } @@ -1235,9 +1235,9 @@ void sub_802D31C(void) void sub_802D500(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) - sub_8141828(gActiveBattler ^ 2, &gPlayerParty[gBattlePartyID[gActiveBattler ^ 2]]); + sub_8141828(gActiveBattler ^ 2, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) @@ -1245,7 +1245,7 @@ void sub_802D500(void) DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( gHealthboxIDs[gActiveBattler ^ 2], - &gPlayerParty[gBattlePartyID[gActiveBattler ^ 2]], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); @@ -1253,7 +1253,7 @@ void sub_802D500(void) DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( gHealthboxIDs[gActiveBattler], - &gPlayerParty[gBattlePartyID[gActiveBattler]], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); @@ -1282,7 +1282,7 @@ void sub_802D730(void) if (!ewram17810[gActiveBattler].unk0_6 && !IsCryPlayingOrClearCrySongs()) { m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } @@ -1290,12 +1290,12 @@ void sub_802D730(void) void sub_802D798(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy && !ewram17810[gActiveBattler].unk0_3) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); sub_8031F88(gActiveBattler); @@ -1323,7 +1323,7 @@ void bx_t1_healthbar_update(void) } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } @@ -1341,7 +1341,7 @@ void sub_802D924(u8 taskId) u8 bank = gTasks[taskId].data[2]; s16 gainedExp = gTasks[taskId].data[1]; - if (IsDoubleBattle() == TRUE || pkmnIndex != gBattlePartyID[bank]) + if (IsDoubleBattle() == TRUE || pkmnIndex != gBattlerPartyIndexes[bank]) { struct Pokemon *pkmn = &gPlayerParty[pkmnIndex]; u16 species = GetMonData(pkmn, MON_DATA_SPECIES); @@ -1362,7 +1362,7 @@ void sub_802D924(u8 taskId) gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)pkmnIndex == gBattlePartyID[bank] || (u16)pkmnIndex == gBattlePartyID[bank ^ 2])) + && ((u16)pkmnIndex == gBattlerPartyIndexes[bank] || (u16)pkmnIndex == gBattlerPartyIndexes[bank ^ 2])) gTasks[taskId].func = sub_802DCB0; else gTasks[taskId].func = sub_802DDC4; @@ -1618,7 +1618,7 @@ void sub_802DCB0(u8 taskId) u8 bank = gTasks[taskId].data[2]; u8 pkmnIndex = gTasks[taskId].data[0]; - if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlePartyID[bank ^ 2]) + if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlerPartyIndexes[bank ^ 2]) bank ^= 2; move_anim_start_t4(bank, bank, bank, 0); gTasks[taskId].func = sub_802DD10; @@ -1633,7 +1633,7 @@ void sub_802DD10(u8 taskId) u8 pkmnIndex = gTasks[taskId].data[0]; GetMonData(&gPlayerParty[pkmnIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlePartyID[bank ^ 2]) + if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlerPartyIndexes[bank ^ 2]) sub_8045A5C(gHealthboxIDs[bank ^ 2], &gPlayerParty[pkmnIndex], 0); else sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[pkmnIndex], 0); @@ -1657,7 +1657,7 @@ void sub_802DE10(void) { if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_9(species); FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); @@ -1915,7 +1915,7 @@ void PlayerHandleGetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - offset += dp01_getattr_by_ch1_for_player_pokemon_(gBattlePartyID[gActiveBattler], unkData); + offset += dp01_getattr_by_ch1_for_player_pokemon_(gBattlerPartyIndexes[gActiveBattler], unkData); } else { @@ -2238,7 +2238,7 @@ void PlayerHandlecmd1(void) struct BattlePokemon battleMon; u8 i; // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard. - u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *src = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 *dst; MEMSET_ALT(&battleMon + gBattleBufferA[gActiveBattler][1], src[i], gBattleBufferA[gActiveBattler][2], i, dst); @@ -2253,7 +2253,7 @@ void PlayerHandleSetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - dp01_setattr_by_ch1_for_player_pokemon(gBattlePartyID[gActiveBattler]); + dp01_setattr_by_ch1_for_player_pokemon(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -2483,7 +2483,7 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a) SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } void PlayerHandlecmd3(void) @@ -2491,14 +2491,14 @@ void PlayerHandlecmd3(void) u8 i; u8 *dst; - MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], + MEMSET_ALT(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], gBattleBufferA[gActiveBattler][2], i, dst); PlayerBufferExecCompleted(); } void PlayerHandleLoadPokeSprite(void) { - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gBattleBankFunc[gActiveBattler] = bx_0802E404; } @@ -2506,8 +2506,8 @@ void PlayerHandleLoadPokeSprite(void) void PlayerHandleSendOutPoke(void) { sub_8032AA8(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); gActionSelectionCursor[gActiveBattler] = 0; gMoveSelectionCursor[gActiveBattler] = 0; sub_802F934(gActiveBattler, gBattleBufferA[gActiveBattler][2]); @@ -2519,10 +2519,10 @@ void sub_802F934(u8 bank, u8 b) u16 species; sub_8032AA8(bank, b); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(bank)); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(bank, 2), @@ -2579,7 +2579,7 @@ void PlayerHandleTrainerThrow(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBattler) & 2) + if (GetBattlerPosition(gActiveBattler) & 2) r7 = 16; else r7 = -16; @@ -2589,7 +2589,7 @@ void PlayerHandleTrainerThrow(void) r7 = 0; } LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, r7 + 80, @@ -2605,7 +2605,7 @@ void PlayerHandleTrainerThrow(void) void PlayerHandleTrainerSlide(void) { LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, @@ -2643,7 +2643,7 @@ void PlayerHandlecmd10(void) if (ewram17810[gActiveBattler].unk0_6 == 0) { ewram17810[gActiveBattler].unk4 = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; @@ -2663,7 +2663,7 @@ void PlayerHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBattler, gActiveBattler, GetBankByIdentity(1), 3); + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 3); gBattleBankFunc[gActiveBattler] = bx_wait_t1; } @@ -2673,7 +2673,7 @@ void PlayerHandleBallThrow(void) ewram17840.unk8 = var; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBattler, gActiveBattler, GetBankByIdentity(1), 3); + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 3); gBattleBankFunc[gActiveBattler] = bx_wait_t1; } @@ -2873,14 +2873,14 @@ void PlayerHandleHealthBarUpdate(void) r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, curHP, r7); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); sub_80440EC(gHealthboxIDs[gActiveBattler], 0, 0); @@ -2916,7 +2916,7 @@ void PlayerHandleStatusIconUpdate(void) { if (!mplay_80342A4(gActiveBattler)) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 9); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; gBattleBankFunc[gActiveBattler] = sub_802E434; } @@ -2935,9 +2935,9 @@ void PlayerHandleStatusAnimation(void) void PlayerHandleStatusXor(void) { - u8 val = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1]; + u8 val = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1]; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_STATUS, &val); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS, &val); PlayerBufferExecCompleted(); } @@ -3057,7 +3057,7 @@ void PlayerHandlecmd44(void) void PlayerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); PlayerBufferExecCompleted(); @@ -3101,7 +3101,7 @@ void sub_8030E38(struct Sprite *sprite) FreeSpriteOamMatrix(sprite); FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); DestroySprite(sprite); - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[r4]], r4); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[r4]], r4); StartSpriteAnim(&gSprites[gBankSpriteIds[r4]], 0); } @@ -3118,16 +3118,16 @@ void task05_08033660(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & 0x40)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_802F934(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_802F934(gActiveBattler, 0); gActiveBattler ^= 2; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_802F934(gActiveBattler, 0); gActiveBattler ^= 2; } diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 40b9f7aaa..9e29fbf5c 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -36,13 +36,13 @@ extern u16 gSpecialVar_ItemId; extern MainCallback gPreBattleCallback1; extern u8 gBankInMenu; extern u8 gHealthboxIDs[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gUnknown_02024DE8; extern u8 gBattleOutcome; extern u8 GetBankSide(u8); -extern u8 GetBankByIdentity(u8); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerAtPosition(u8); +extern u8 GetBattlerPosition(u8); extern void LoadPlayerTrainerBankSprite(); extern u8 sub_8079E90(); extern void sub_80313A0(struct Sprite *); @@ -398,7 +398,7 @@ void SafariHandleReturnPokeToBall(void) void SafariHandleTrainerThrow(void) { LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, @@ -435,7 +435,7 @@ void SafariHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBattler, gActiveBattler, GetBankByIdentity(1), 4); + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); gBattleBankFunc[gActiveBattler] = bx_wait_t6; } @@ -445,7 +445,7 @@ void SafariHandleBallThrow(void) ewram17840.unk8 = var; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBattler, gActiveBattler, GetBankByIdentity(1), 4); + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); gBattleBankFunc[gActiveBattler] = bx_wait_t6; } @@ -541,7 +541,7 @@ void SafariHandleExpBarUpdate(void) void SafariHandleStatusIconUpdate(void) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 11); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 11); SafariBufferExecCompleted(); } @@ -645,7 +645,7 @@ void SafariHandlecmd44(void) void SafariHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry1(species, 25); SafariBufferExecCompleted(); @@ -660,7 +660,7 @@ void SafariHandleIntroSlide(void) void SafariHandleTrainerBallThrow(void) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 10); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 10); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); SafariBufferExecCompleted(); diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index 2737a0095..1a11ee876 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -34,7 +34,7 @@ extern u8 gBattleBufferA[][0x200]; extern u8 gBankSpriteIds[]; extern MainCallback gPreBattleCallback1; extern bool8 gDoingBattleAnim; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gHealthboxIDs[]; extern u16 gBattleTypeFlags; extern u16 gAnimMovePower; @@ -73,9 +73,9 @@ extern bool8 IsDoubleBattle(void); extern void c3_0802FDF4(u8); extern void PlayerHandlecmd1(void); extern void LoadPlayerTrainerBankSprite(); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void sub_80313A0(struct Sprite *); -extern u8 GetBankByIdentity(u8); +extern u8 GetBattlerAtPosition(u8); extern u8 sub_8031720(); extern void DoMoveAnim(); extern void sub_80326EC(); @@ -374,22 +374,22 @@ void sub_81374FC(void) void sub_8137538(void) { if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) - sub_8141828(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) - sub_8141828(gActiveBattler ^ 2, &gPlayerParty[gBattlePartyID[gActiveBattler ^ 2]]); + sub_8141828(gActiveBattler ^ 2, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlePartyID[gActiveBattler ^ 2]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxIDs[gActiveBattler]); ewram17840.unk9_0 = 0; @@ -412,7 +412,7 @@ void sub_81376B8(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } } @@ -429,7 +429,7 @@ void sub_81377B0(void) } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } } @@ -508,7 +508,7 @@ void WallyHandleGetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = sub_8137A84(gBattlePartyID[gActiveBattler], arr); + r6 = sub_8137A84(gBattlerPartyIndexes[gActiveBattler], arr); } else { @@ -837,7 +837,7 @@ void WallyHandleSetAttributes(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_8138294(gBattlePartyID[gActiveBattler]); + sub_8138294(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1066,7 +1066,7 @@ void sub_8138294(u8 a) SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } void WallyHandlecmd3(void) @@ -1103,7 +1103,7 @@ void WallyHandleReturnPokeToBall(void) void WallyHandleTrainerThrow(void) { LoadPlayerTrainerBankSprite(2, gActiveBattler); - GetMonSpriteTemplate_803C5A0(2, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[2].coords), @@ -1118,7 +1118,7 @@ void WallyHandleTrainerThrow(void) void WallyHandleTrainerSlide(void) { LoadPlayerTrainerBankSprite(2, gActiveBattler); - GetMonSpriteTemplate_803C5A0(2, GetBankIdentity(gActiveBattler)); + GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(gActiveBattler)); gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[2].coords), @@ -1149,7 +1149,7 @@ void WallyHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = TRUE; - move_anim_start_t4(gActiveBattler, gActiveBattler, GetBankByIdentity(1), 4); + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); gBattleBankFunc[gActiveBattler] = bx_wait_t5; } @@ -1159,7 +1159,7 @@ void WallyHandleBallThrow(void) ewram17840.unk8 = val; gDoingBattleAnim = TRUE; - move_anim_start_t4(gActiveBattler, gActiveBattler, GetBankByIdentity(1), 4); + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); gBattleBankFunc[gActiveBattler] = bx_wait_t5; } @@ -1335,14 +1335,14 @@ void WallyHandleHealthBarUpdate(void) r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, curHP, r7); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); sub_80440EC(gHealthboxIDs[gActiveBattler], 0, 0); @@ -1464,7 +1464,7 @@ void WallyHandlecmd44(void) void WallyHandleFaintingCry(void) { - PlayCry1(GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES), 25); + PlayCry1(GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), 25); WallyBufferExecCompleted(); } @@ -1504,10 +1504,10 @@ void sub_81398BC(u8 bank) u16 species; ewram17800[bank].transformedSpecies = 0; - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(bank)); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, GetBankPosition(bank, 2), @@ -1534,7 +1534,7 @@ void sub_8139A2C(u8 taskId) u8 savedActiveBank = gActiveBattler; gActiveBattler = gTasks[taskId].data[0]; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81398BC(gActiveBattler); gBattleBankFunc[gActiveBattler] = sub_8137538; gActiveBattler = savedActiveBank; diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index 4022f07ce..516b58b5e 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -424,7 +424,7 @@ u8 *const gUnknown_0820A904[10] = extern u8 gDisplayedStringBattle[]; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; extern u8 gHealthboxIDs[]; @@ -811,8 +811,8 @@ u8 battle_make_oam_normal_battle(u8 a) { if (GetBankSide(a) == 0) { - spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1); - spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1); + spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[GetBattlerPosition(a) / 2], 240, 160, 1); + spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[GetBattlerPosition(a) / 2], 240, 160, 1); gSprites[spriteId1].oam.affineParam = spriteId2; gSprites[spriteId2].data[5] = spriteId1; @@ -823,8 +823,8 @@ u8 battle_make_oam_normal_battle(u8 a) //_08043ACC else { - spriteId1 = CreateSprite(&gSpriteTemplates_820A51C[GetBankIdentity(a) / 2], 240, 160, 1); - spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A51C[GetBankIdentity(a) / 2], 240, 160, 1); + spriteId1 = CreateSprite(&gSpriteTemplates_820A51C[GetBattlerPosition(a) / 2], 240, 160, 1); + spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A51C[GetBattlerPosition(a) / 2], 240, 160, 1); gSprites[spriteId1].oam.affineParam = spriteId2; gSprites[spriteId2].data[5] = spriteId1; @@ -986,7 +986,7 @@ void sub_8043F44(u8 a) } else { - switch (GetBankIdentity(a)) + switch (GetBattlerPosition(a)) { case 0: x = 159; @@ -1323,7 +1323,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) // TODO: make this a local variable memcpy(str, gUnknown_0820A864, sizeof(str)); - r6 = ewram520[GetBankIdentity(gSprites[a].data[6])].filler0; + r6 = ewram520[GetBattlerPosition(gSprites[a].data[6])].filler0; r8 = 5; nature = GetNature(pkmn); StringCopy(str + 6, gNatureNames[nature]); @@ -1407,7 +1407,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) ldrh r0, [r0, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ lsls r1, r0, 1\n\ @@ -1675,13 +1675,13 @@ void sub_804454C(void) spriteId = gSprites[gHealthboxIDs[i]].data[5]; CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100); - sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), 0); - sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); } else { draw_status_ailment_maybe(gHealthboxIDs[i]); - sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlePartyID[i]], 5); + sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlerPartyIndexes[i]], 5); CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32); } } @@ -1691,23 +1691,23 @@ void sub_804454C(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - sub_8044338(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]]); + sub_8044338(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]]); } else { spriteId = gSprites[gHealthboxIDs[i]].data[5]; CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100); - sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), 0); - sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); } } else { draw_status_ailment_maybe(gHealthboxIDs[i]); - sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 5); + sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]], 5); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 4); + sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]], 4); } } gSprites[gHealthboxIDs[i]].data[7] ^= 1; @@ -1731,7 +1731,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) u8 sp18; u8 taskId; - if (c == 0 || GetBankIdentity(a) != 3) + if (c == 0 || GetBattlerPosition(a) != 3) { if (GetBankSide(a) == 0) { @@ -1947,7 +1947,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) str r3, [sp, 0x10]\n\ cmp r4, 0\n\ beq _08044834\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x3\n\ @@ -2779,7 +2779,7 @@ void sub_8045180(struct Sprite *sprite) ptr[1] = 0x13; ptr[2] = 0x37; ptr[3] = EOS; - ptr = ewram520_2 + GetBankIdentity(gSprites[a].data[6]) * 0x180; + ptr = ewram520_2 + GetBattlerPosition(gSprites[a].data[6]) * 0x180; sub_80034D4(ptr, gDisplayedStringBattle); i = 0; @@ -2865,7 +2865,7 @@ static void sub_8045458(u8 a, u8 b) r4 = gSprites[a].data[6]; if (GetBankSide(r4) != 0) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r4]], MON_DATA_SPECIES); if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0) { r4 = gSprites[a].data[5]; @@ -2892,7 +2892,7 @@ static void sub_8045458(u8 a, u8 b) r10 = gSprites[a].data[5]; if (GetBankSide(r7) == 0) { - r4 = GetMonData(&gPlayerParty[gBattlePartyID[r7]], MON_DATA_STATUS); + r4 = GetMonData(&gPlayerParty[gBattlerPartyIndexes[r7]], MON_DATA_STATUS); if (!IsDoubleBattle()) r8 = 0x1A; else @@ -2900,7 +2900,7 @@ static void sub_8045458(u8 a, u8 b) } else { - r4 = GetMonData(&gEnemyParty[gBattlePartyID[r7]], MON_DATA_STATUS); + r4 = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r7]], MON_DATA_STATUS); r8 = 0x11; } if (r4 & 7) @@ -3027,7 +3027,7 @@ static u8 sub_80457E8(u8 a, u8 b) s32 r7; u8 *addr; - r6 = ewram520_2 + GetBankIdentity(gSprites[a].data[6]) * 0x180; + r6 = ewram520_2 + GetBattlerPosition(gSprites[a].data[6]) * 0x180; r8 = 7; sub_80034D4(r6, BattleText_SafariBalls); for (i = 0; i < r8; i++) @@ -3055,7 +3055,7 @@ static u8 sub_80457E8(u8 a, u8 b) r7 = StringCopy(gDisplayedStringBattle, BattleText_SafariBallsLeft); r7 = sub_8003504(r7, gNumSafariBalls, 10, 1); StringAppend(r7, BattleText_HighlightRed); - status = GetBankIdentity(gSprites[a].data[6]); + status = GetBattlerPosition(gSprites[a].data[6]); r7 = ewram520_2 + status * 0x180; r6 = 5; sub_80034D4(r7, gDisplayedStringBattle); @@ -3202,7 +3202,7 @@ static void sub_8045D58(u8 a, u8 b) break; case 1: sub_804602C(ewram17850[a].unk4, ewram17850[a].unk8, ewram17850[a].unkC, &ewram17850[a].unk10, sp8, 8); - r0 = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_LEVEL); + r0 = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_LEVEL); if (r0 == 100) { for (i = 0; i < 8; i++) diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c index c428e4edd..01cfc73dd 100644 --- a/src/battle/battle_message.c +++ b/src/battle/battle_message.c @@ -172,7 +172,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gBattleBufferA[4][0x200]; @@ -202,9 +202,9 @@ s32 sub_803FC34(u16); void get_trainer_name(u8* dst); u8 get_trainer_class_name_index(void); u8 GetMultiplayerId(void); -u8 GetBankByIdentity(u8 ID); +u8 GetBattlerAtPosition(u8 ID); u8 GetBankSide(u8 bank); -u8 GetBankIdentity(u8 bank); +u8 GetBattlerPosition(u8 bank); #ifdef GERMAN extern u8 *de_sub_804110C(); #endif @@ -575,71 +575,71 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = gBattleTextBuff3; break; case 2: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(0)]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(0)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 3: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(1)]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(1)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 4: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(2)]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(2)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 5: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(3)]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(3)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 6: // link first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 7: // link first opponent poke name - GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 8: // link second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 9: // link second opponent poke name - GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 10: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1)]) + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1)]) break; case 11: // attacker partner name, only bank 0/1 if (GetBankSide(gBankAttacker) == 0) - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 12: // attacker name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker]) + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlerPartyIndexes[gBankAttacker]) break; case 13: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlePartyID[gBankTarget]) + HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlerPartyIndexes[gBankTarget]) break; case 14: // effect bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) + HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlerPartyIndexes[gEffectBank]) break; case 15: // active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlePartyID[gActiveBattler]) + HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) break; case 16: // scripting active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattlePartyID[gBattleStruct->scriptingActive]) + HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattlerPartyIndexes[gBattleStruct->scriptingActive]) break; case 17: // current move name if (gStringInfo->currentMove > 0x162) diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c index ed8cf4583..9dc835d5c 100644 --- a/src/battle/battle_party_menu.c +++ b/src/battle/battle_party_menu.c @@ -32,7 +32,7 @@ extern u8 sub_803FBBC(void); extern u8 gPlayerPartyCount; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankInMenu; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; @@ -122,7 +122,7 @@ static void sub_8094998(u8 arg[3], u8 player_number) if (!IsDoubleBattle()) { pos = 1; - *temp = gBattlePartyID[GetBankByIdentity(0)]; + *temp = gBattlerPartyIndexes[GetBattlerAtPosition(0)]; for (i = 0; i <= 5; i++) if (i != *temp) temp[pos++] = i; @@ -130,8 +130,8 @@ static void sub_8094998(u8 arg[3], u8 player_number) else { pos = 2; - *temp = gBattlePartyID[GetBankByIdentity(0)]; - temp[1] = gBattlePartyID[GetBankByIdentity(2)]; + *temp = gBattlerPartyIndexes[GetBattlerAtPosition(0)]; + temp[1] = gBattlerPartyIndexes[GetBattlerAtPosition(2)]; for (i = 0; i <= 5; i++) if ((i != *temp) && (i != temp[1])) temp[pos++] = i; @@ -147,13 +147,13 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) u8 temp[6]; if (!GetBankSide(arg3)) { - i = GetBankByIdentity(0); - j = GetBankByIdentity(2); + i = GetBattlerAtPosition(0); + j = GetBattlerAtPosition(2); } else { - i = GetBankByIdentity(1); - j = GetBankByIdentity(3); + i = GetBattlerAtPosition(1); + j = GetBattlerAtPosition(3); } if (IsLinkDoubleBattle() == TRUE) { @@ -175,7 +175,7 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) if (!IsDoubleBattle()) { int pos = 1; - *temp = gBattlePartyID[i]; + *temp = gBattlerPartyIndexes[i]; for (i = 0; i <= 5; i++) if (i != *temp) temp[pos++] = i; @@ -183,8 +183,8 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) else { int pos = 2; - *temp = gBattlePartyID[i]; - temp[1] = gBattlePartyID[j]; + *temp = gBattlerPartyIndexes[i]; + temp[1] = gBattlerPartyIndexes[j]; for (i = 0; i <= 5; i++) if ((i != *temp) && (i != temp[1])) temp[pos++] = i; @@ -665,7 +665,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) for (i = 0; i < gNoOfAllBanks; i++) { if (GetBankSide(i) == 0 - && sub_8094C20(partySelection) == gBattlePartyID[i]) + && sub_8094C20(partySelection) == gBattlerPartyIndexes[i]) { sub_806D5A4(); GetMonNickname(&gPlayerParty[partySelection], gStringVar1); @@ -706,7 +706,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) u8 r4 = gBankInMenu; sub_806D5A4(); - r0 = pokemon_order_func(gBattlePartyID[r4]); + r0 = pokemon_order_func(gBattlerPartyIndexes[r4]); GetMonNickname(&gPlayerParty[r0], gStringVar1); StringExpandPlaceholders(gStringVar4, gOtherText_CantBeSwitched); sub_806E834(gStringVar4, 0); @@ -715,7 +715,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) } gUnknown_0202E8F5 = sub_8094C20(partySelection); gUnknown_0202E8F4 = 1; - r4 = pokemon_order_func(gBattlePartyID[gBankInMenu]); + r4 = pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]); sub_8094C98(r4, partySelection); SwapPokemon(&gPlayerParty[r4], &gPlayerParty[partySelection]); gTasks[taskId].func = Task_809527C; diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index df227ab2c..43364a24a 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -44,17 +44,17 @@ extern u8 gBanksByTurnOrder[4]; extern u16 gSideAffecting[2]; extern u16 gBattleWeather; extern void (*gBattleMainFunc)(void); -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gBattleCommunication[]; extern u32 gHitMarker; extern u8 gEffectBank; extern u8 gBank1; extern s32 gBattleMoveDamage; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern u16 gChosenMovesByBanks[4]; extern s32 gTakenDmg[4]; extern u8 gTakenDmgBanks[4]; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 gLastUsedAbility; extern u8 gBattleTextBuff2[]; extern u8 gCurrentActionFuncId; @@ -77,8 +77,8 @@ extern const u8 gStatusConditionString_LoveJpn[]; extern const BattleCmdFunc gBattleScriptingCommandsTable[]; u8 IsImprisoned(u8 bank, u16 move); -u8 GetBankByIdentity(u8 ID); -u8 GetBankIdentity(u8 bank); +u8 GetBattlerAtPosition(u8 ID); +u8 GetBattlerPosition(u8 bank); u8 GetBankSide(u8 bank); void SetMoveEffect(bool8 primary, u8 certainArg); bool8 UproarWakeUpCheck(u8 bank); @@ -416,10 +416,10 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[1] = 0; for (i = 0; i < gNoOfAllBanks; i += 2) - bits |= gBitTable[gBattlePartyID[i]]; + bits |= gBitTable[gBattlerPartyIndexes[i]]; for (i = 1; i < gNoOfAllBanks; i += 2) - gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits; + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } void sub_8015740(u8 bank) @@ -427,15 +427,15 @@ void sub_8015740(u8 bank) s32 i = 0; u32 bits = 0; - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBankSide(bank) == B_SIDE_OPPONENT) { - u8 id = ((bank & BIT_MON) >> 1); + u8 id = ((bank & BIT_FLANK) >> 1); gSentPokesToOpponent[id] = 0; for (i = 0; i < gNoOfAllBanks; i += 2) { - if (!(gAbsentBankFlags & gBitTable[i])) - bits |= gBitTable[gBattlePartyID[i]]; + if (!(gAbsentBattlerFlags & gBitTable[i])) + bits |= gBitTable[gBattlerPartyIndexes[i]]; } gSentPokesToOpponent[id] = bits; @@ -444,7 +444,7 @@ void sub_8015740(u8 bank) void sub_80157C4(u8 bank) { - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBankSide(bank) == B_SIDE_OPPONENT) { sub_8015740(bank); } @@ -452,7 +452,7 @@ void sub_80157C4(u8 bank) { s32 i; for (i = 1; i < gNoOfAllBanks; i++) - gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]]; + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlerPartyIndexes[bank]]; } } @@ -570,9 +570,9 @@ bool8 AreAllMovesUnusable(void) gProtectStructs[gActiveBattler].onlyStruggle = 1; gUnknown_02024C1C[gActiveBattler] = BattleScript_NoMovesLeft; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - gBattleBufferB[gActiveBattler][3] = GetBankByIdentity((GetBankIdentity(gActiveBattler) ^ 1) | (Random() & 2)); + gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) ^ 1) | (Random() & 2)); else - gBattleBufferB[gActiveBattler][3] = GetBankByIdentity(GetBankIdentity(gActiveBattler) ^ 1); + gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ 1); } else gProtectStructs[gActiveBattler].onlyStruggle = 0; @@ -606,10 +606,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBattlerFlags & gBitTable[gBankAttacker]; gBankAttacker++) { } - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBattlerFlags & gBitTable[gBankTarget]; gBankTarget++) { } @@ -857,7 +857,7 @@ u8 TurnBasedEffects(void) while (gBattleStruct->turnEffectsBank < gNoOfAllBanks && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { gActiveBattler = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; - if (gAbsentBankFlags & gBitTable[gActiveBattler]) + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->turnEffectsBank++; } @@ -1168,7 +1168,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) while (gBattleStruct->sub80170DC_Bank < gNoOfAllBanks) { gActiveBattler = gBattleStruct->sub80170DC_Bank; - if (gAbsentBankFlags & gBitTable[gActiveBattler]) + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gBattleStruct->sub80170DC_Bank++; else { @@ -1199,7 +1199,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) while (gBattleStruct->sub80170DC_Bank < gNoOfAllBanks) { gActiveBattler = gBankAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank]; - if (gAbsentBankFlags & gBitTable[gActiveBattler]) + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gBattleStruct->sub80170DC_Bank++; else { @@ -1250,14 +1250,14 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->sub80173A4_Tracker++; for (i = 0; i < gNoOfAllBanks; i++) { - if (gAbsentBankFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) - gAbsentBankFlags &= ~(gBitTable[i]); + if (gAbsentBattlerFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) + gAbsentBattlerFlags &= ~(gBitTable[i]); } case 1: do { gBank1 = gBankTarget = gBattleStruct->unk1605A; - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlePartyID[gBattleStruct->unk1605A]]) && !(gAbsentBankFlags & gBitTable[gBattleStruct->unk1605A])) + if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_GiveExp); gBattleStruct->sub80173A4_Tracker = 2; @@ -1280,7 +1280,7 @@ bool8 HandleFaintedMonActions(void) do { gBank1 = gBankTarget = gBattleStruct->unk1605A; //or should banks be switched? - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[gBattleStruct->unk1605A])) + if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_HandleFaintedMon); gBattleStruct->sub80173A4_Tracker = 5; @@ -1410,7 +1410,7 @@ u8 AtkCanceller_UnableToUseMove(void) gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; effect = 1; } gBattleStruct->atkCancellerTracker++; @@ -1546,7 +1546,7 @@ u8 AtkCanceller_UnableToUseMove(void) gCurrentMove = MOVE_BIDE; *bideDmg = gTakenDmg[gBankAttacker] * 2; gBankTarget = gTakenDmgBanks[gBankAttacker]; - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) gBankTarget = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } @@ -1613,20 +1613,20 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2) { if (GetBankSide(bank) == 1) { - r7 = GetBankByIdentity(1); - r6 = GetBankByIdentity(3); + r7 = GetBattlerAtPosition(1); + r6 = GetBattlerAtPosition(3); party = gEnemyParty; } else { - r7 = GetBankByIdentity(0); - r6 = GetBankByIdentity(2); + r7 = GetBattlerAtPosition(0); + r6 = GetBattlerAtPosition(2); party = gPlayerParty; } if (r1 == 6) - r1 = gBattlePartyID[r7]; + r1 = gBattlerPartyIndexes[r7]; if (r2 == 6) - r2 = gBattlePartyID[r6]; + r2 = gBattlerPartyIndexes[r6]; for (i = 0; i < 6; i++) { if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram16068arr(r7) && i != ewram16068arr(r6)) @@ -1698,16 +1698,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBankAttacker >= gNoOfAllBanks) gBankAttacker = bank; if (GetBankSide(gBankAttacker) == 0) - pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; else - pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; if (gBankTarget >= gNoOfAllBanks) gBankTarget = bank; if (GetBankSide(gBankTarget) == 0) - pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]]; + pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; else - pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]]; + pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -2002,7 +2002,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2022,7 +2022,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_ROUGH_SKIN: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2039,7 +2039,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_EFFECT_SPORE: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2060,7 +2060,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2084,7 +2084,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_POISON_POINT: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2099,7 +2099,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2117,7 +2117,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_STATIC: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2132,7 +2132,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2150,7 +2150,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_FLAME_BODY: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2165,7 +2165,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2183,7 +2183,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_CUTE_CHARM: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2203,7 +2203,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2376,15 +2376,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { u8 target2; - side = (GetBankIdentity(i) ^ 1) & 1; - target1 = GetBankByIdentity(side); - target2 = GetBankByIdentity(side + 2); + side = (GetBattlerPosition(i) ^ 1) & 1; + target1 = GetBattlerAtPosition(side); + target2 = GetBattlerAtPosition(side + 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBattler = GetBankByIdentity(((Random() & 1) * 2) | side); + gActiveBattler = GetBattlerAtPosition(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; @@ -2423,7 +2423,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 4; gBattleTextBuff1[2] = gActiveBattler; - gBattleTextBuff1[3] = gBattlePartyID[gActiveBattler]; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gActiveBattler]; gBattleTextBuff1[4] = EOS; gBattleTextBuff2[0] = 0xFD; @@ -2693,9 +2693,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) u16 move; if (GetBankSide(bank) == 0) - poke = &gPlayerParty[gBattlePartyID[bank]]; + poke = &gPlayerParty[gBattlerPartyIndexes[bank]]; else - poke = &gEnemyParty[gBattlePartyID[bank]]; + poke = &gEnemyParty[gBattlerPartyIndexes[bank]]; for (i = 0; i < 4; i++) { move = GetMonData(poke, MON_DATA_MOVE1 + i); @@ -3268,7 +3268,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) switch (atkHoldEffect) { case HOLD_EFFECT_FLINCH: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && (Random() % 100) < bankQuality && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED @@ -3281,7 +3281,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_SHELL_BELL: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF && gBankAttacker != gBankTarget @@ -3331,22 +3331,22 @@ void unref_sub_801B40C(void) u8 bank = 0; do { - u8 absent = gAbsentBankFlags; + u8 absent = gAbsentBattlerFlags; if (gBitTable[bank] & absent || absent & gBitTable[bank + 2]) bank++; else { if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2]) { - gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4); - gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; - gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; + gSideTimers[GetBattlerPosition(bank) & 1].field3 = (bank) | ((bank + 2) << 4); + gSideTimers[GetBattlerPosition(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideAffecting[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4; } if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank]) { - gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4); - gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; - gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; + gSideTimers[GetBattlerPosition(bank) & 1].field3 = (bank + 2) | ((bank) << 4); + gSideTimers[GetBattlerPosition(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideAffecting[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4; } bank++; } @@ -3385,7 +3385,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target do { targetBank = Random() % gNoOfAllBanks; - } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); + } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) @@ -3400,8 +3400,8 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target case 8: case 32: case 64: - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); - if (gAbsentBankFlags & gBitTable[targetBank]) + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBankAttacker) & 1) ^ 1); + if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= 2; break; case 4: @@ -3413,22 +3413,22 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target if (GetBankSide(gBankAttacker) == 0) { if (Random() & 1) - targetBank = GetBankByIdentity(1); + targetBank = GetBattlerAtPosition(1); else - targetBank = GetBankByIdentity(3); + targetBank = GetBattlerAtPosition(3); } else { if (Random() & 1) - targetBank = GetBankByIdentity(0); + targetBank = GetBattlerAtPosition(0); else - targetBank = GetBankByIdentity(2); + targetBank = GetBattlerAtPosition(2); } - if (gAbsentBankFlags & gBitTable[targetBank]) + if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= 2; } else - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBankAttacker) & 1) ^ 1); break; case 2: case 16: diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index 15b65fa81..606bc3e50 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -20,7 +20,7 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern u16 gBattleTypeFlags; extern u8 gBankTarget; extern u8 gActiveBattler; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankSpriteIds[]; extern u8 gDoingBattleAnim; extern u8 gHealthboxIDs[]; @@ -358,9 +358,9 @@ static void sub_8046464(u8 taskId) r8 = gTasks[taskId].data[2]; r5 = gTasks[taskId].data[3]; if (GetBankSide(r5) != 0) - ball = GetMonData(&gEnemyParty[gBattlePartyID[r5]], MON_DATA_POKEBALL); + ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r5]], MON_DATA_POKEBALL); else - ball = GetMonData(&gPlayerParty[gBattlePartyID[r5]], MON_DATA_POKEBALL); + ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[r5]], MON_DATA_POKEBALL); r4 = ball_number_to_ball_processing_index(ball); sub_80478DC(r4); spriteId = CreateSprite(&gBallSpriteTemplates[r4], 32, 80, 0x1D); @@ -383,7 +383,7 @@ static void sub_8046464(u8 taskId) gSprites[spriteId].callback = sub_8047254; break; default: - gBankTarget = GetBankByIdentity(1); + gBankTarget = GetBattlerAtPosition(1); sp0 = TRUE; break; } @@ -713,16 +713,16 @@ static void sub_8046C78(struct Sprite *sprite) if (GetBankSide(r5) != 0) { - pkmn = &gEnemyParty[gBattlePartyID[r5]]; + pkmn = &gEnemyParty[gBattlerPartyIndexes[r5]]; r8 = 25; } else { - pkmn = &gPlayerParty[gBattlePartyID[r5]]; + pkmn = &gPlayerParty[gBattlerPartyIndexes[r5]]; r8 = -25; } species = GetMonData(pkmn, MON_DATA_SPECIES); - if ((r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1)) + if ((r5 == GetBattlerAtPosition(0) || r5 == GetBattlerAtPosition(1)) && IsDoubleBattle() && ewram17840.unk9_0) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -737,7 +737,7 @@ static void sub_8046C78(struct Sprite *sprite) } if (!IsDoubleBattle() || !ewram17840.unk9_0) r4_2 = 0; - else if (r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1)) + else if (r5 == GetBattlerAtPosition(0) || r5 == GetBattlerAtPosition(1)) r4_2 = 1; else r4_2 = 2; @@ -885,7 +885,7 @@ static void sub_80470C4(struct Sprite *sprite) sprite->data[6] = sprite->oam.affineParam & 0xFF; sprite->data[0] = 0; if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBankByIdentity(2)) + && sprite->data[6] == GetBattlerAtPosition(2)) sprite->callback = sub_8047230; else sprite->callback = sub_8046C78; @@ -910,7 +910,7 @@ static void sub_8047254(struct Sprite *sprite) { sprite->data[0] = 0; if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBankByIdentity(3)) + && sprite->data[6] == GetBattlerAtPosition(3)) sprite->callback = sub_8047230; else sprite->callback = sub_8046C78; @@ -1110,7 +1110,7 @@ void sub_804777C(u8 a) sprite->pos2.y = -sprite->pos2.y; } gSprites[sprite->data[5]].callback(&gSprites[sprite->data[5]]); - if (GetBankIdentity(a) == 2) + if (GetBattlerPosition(a) == 2) sprite->callback = sub_804780C; } @@ -1188,7 +1188,7 @@ void sub_804794C(u8 a) static u16 sub_8047978(u8 a) { if (GetBankSide(a) == 0) - return GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_POKEBALL); + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_POKEBALL); else - return GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_POKEBALL); + return GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_POKEBALL); } diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c index 85aa78ca0..bc25f8e15 100644 --- a/src/battle/reshow_battle_screen.c +++ b/src/battle/reshow_battle_screen.c @@ -22,7 +22,7 @@ extern u16 gBattle_BG0_Y; extern u8 gReservedSpritePaletteCount; extern u8 gActionSelectionCursor[4]; extern u8 gBankInMenu; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern u8 gNoOfAllBanks; extern u16 gBattleTypeFlags; extern u8 gBankSpriteIds[4]; @@ -171,14 +171,14 @@ static void CB2_ReshowBattleScreenAfterMenu(void) sub_80327CC(); - opponentBank = GetBankByIdentity(1); - species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); + opponentBank = GetBattlerAtPosition(1); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES); sub_8032984(opponentBank, species); if (IsDoubleBattle()) { - opponentBank = GetBankByIdentity(3); - species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); + opponentBank = GetBattlerAtPosition(3); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES); sub_8032984(opponentBank, species); } sub_802E3E4(gActionSelectionCursor[gBankInMenu], 0); @@ -210,7 +210,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank) if (GetBankSide(bank)) { if (!ewram17800[bank].substituteSprite) - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteSprite(bank, 0); } @@ -219,7 +219,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank) else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) LoadPlayerTrainerBankSprite(2, 0); else if (!ewram17800[bank].substituteSprite) - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[bank]], bank); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteSprite(bank, 0); @@ -240,19 +240,19 @@ static void sub_807B184(u8 bank) posY = sub_8077F68(bank); if (GetBankSide(bank)) { - if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; - GetMonSpriteTemplate_803C56C(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); + GetMonSpriteTemplate_803C56C(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBankPosition(bank, 2), posY, sub_8079E90(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) { - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(0)); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(0)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, sub_8079E90(0)); @@ -262,7 +262,7 @@ static void sub_807B184(u8 bank) } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { - GetMonSpriteTemplate_803C5A0(2, GetBankIdentity(0)); + GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(0)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, (8 - gTrainerBackPicCoords[2].coords) * 4 + 80, sub_8079E90(0)); @@ -272,14 +272,14 @@ static void sub_807B184(u8 bank) } else { - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; - GetMonSpriteTemplate_803C56C(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); + GetMonSpriteTemplate_803C56C(GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBankPosition(bank, 2), posY, sub_8079E90(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); } gSprites[gBankSpriteIds[bank]].invisible = ewram17800[bank].invisible; @@ -301,23 +301,23 @@ static void sub_807B508(u8 bank) sub_8043F44(bank); sub_8043DFC(healthboxID); if (GetBankSide(bank)) - sub_8045A5C(gHealthboxIDs[bank], &gEnemyParty[gBattlePartyID[bank]], 0); + sub_8045A5C(gHealthboxIDs[bank], &gEnemyParty[gBattlerPartyIndexes[bank]], 0); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlePartyID[bank]], 10); + sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 10); else - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlePartyID[bank]], 0); - if (GetBankIdentity(bank) == 3 || GetBankIdentity(bank) == 2) + sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 0); + if (GetBattlerPosition(bank) == 3 || GetBattlerPosition(bank) == 2) nullsub_11(gHealthboxIDs[bank], 1); else nullsub_11(gHealthboxIDs[bank], 0); if (GetBankSide(bank)) { - if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) sub_8043DB0(healthboxID); } else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) { - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) sub_8043DB0(healthboxID); } } diff --git a/src/item_use.c b/src/item_use.c index a0fbb13b2..a14abbe3e 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -48,7 +48,7 @@ extern u8 gBankInMenu; extern u8 gUnknown_081A1654[]; extern u8 gUnknown_081A168F[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gBattleTypeFlags; @@ -1044,7 +1044,7 @@ void sub_80CA2BC(u8 taskId) void ItemUseInBattle_StatIncrease(u8 taskId) { - u16 partyId = gBattlePartyID[gBankInMenu]; + u16 partyId = gBattlerPartyIndexes[gBankInMenu]; Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 5b3e6ddad..a618fdec5 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -28,7 +28,7 @@ extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u8 gBankAttacker; extern u8 gBankTarget; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gXXX_CritRelated; extern u16 gBattleWeather; extern struct BattleEnigmaBerry gEnigmaBerries[]; @@ -60,21 +60,21 @@ u8 CountAliveMons(u8 a1) case 0: for (i = 0; i < 4; i++) { - if (i != gActiveBattler && !(gAbsentBankFlags & gBitTable[i])) + if (i != gActiveBattler && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case 1: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankAttacker) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBankSide(i) == GetBankSide(gBankAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case 2: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; @@ -85,11 +85,11 @@ u8 CountAliveMons(u8 a1) u8 sub_803C434(u8 a1) { - u8 status = GetBankIdentity(a1) & 1; + u8 status = GetBattlerPosition(a1) & 1; status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return GetBankByIdentity(status); + return GetBattlerAtPosition(status); if (CountAliveMons(0) > 1) { u8 val; @@ -98,14 +98,14 @@ u8 sub_803C434(u8 a1) val = status ^ 2; else val = status; - return GetBankByIdentity(val); + return GetBattlerAtPosition(val); } else { - if ((gAbsentBankFlags & gBitTable[status])) - return GetBankByIdentity(status ^ 2); + if ((gAbsentBattlerFlags & gBitTable[status])) + return GetBattlerAtPosition(status ^ 2); else - return GetBankByIdentity(status); + return GetBattlerAtPosition(status); } } diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 81a588e8e..d35551613 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -51,7 +51,7 @@ extern const u8 BattleText_Wally[]; extern s8 gPokeblockFlavorCompatibilityTable[]; extern u8 gLastUsedAbility; extern const u8 BattleText_PreventedSwitch[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 BattleText_Rose[]; extern u8 BattleText_UnknownString3[]; @@ -1299,13 +1299,13 @@ void sub_8040B8C(void) gBattleTextBuff1[2] = gBattleStruct->unk16054; gBattleTextBuff1[4] = EOS; if (!GetBankSide(gBattleStruct->unk16054)) - gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->unk16054]); + gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->unk16054]); else - gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->unk16054]; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->unk16054]; gBattleTextBuff2[0] = 0xFD; gBattleTextBuff2[1] = 4; gBattleTextBuff2[2] = gBankInMenu; - gBattleTextBuff2[3] = pokemon_order_func(gBattlePartyID[gBankInMenu]); + gBattleTextBuff2[3] = pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]); gBattleTextBuff2[4] = EOS; StrCpyDecodeBattle(BattleText_PreventedSwitch, gStringVar4); } diff --git a/src/pokemon_item_effect.c b/src/pokemon_item_effect.c index 3b72ab739..6f1e9dabb 100644 --- a/src/pokemon_item_effect.c +++ b/src/pokemon_item_effect.c @@ -16,10 +16,10 @@ #include "util.h" extern s32 gBattleMoveDamage; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gBankInMenu; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gActiveBattler; extern u8 gStringBank; extern struct BattlePokemon gBattleMons[]; @@ -82,7 +82,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo cmdIndex = (GetBankSide(gActiveBattler) != 0); while (cmdIndex < gNoOfAllBanks) { - if (gBattlePartyID[cmdIndex] == partyIndex) + if (gBattlerPartyIndexes[cmdIndex] == partyIndex) { sp34 = cmdIndex; break; @@ -278,14 +278,14 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo { if (sp34 != 4) { - gAbsentBankFlags &= ~gBitTable[sp34]; - CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlePartyID[sp34])); + gAbsentBattlerFlags &= ~gBitTable[sp34]; + CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlerPartyIndexes[sp34])); if (GetBankSide(gActiveBattler) == 0 && gBattleResults.unk4 < 255) gBattleResults.unk4++; } else { - gAbsentBankFlags &= ~gBitTable[gActiveBattler ^ 2]; + gAbsentBattlerFlags &= ~gBitTable[gActiveBattler ^ 2]; if (GetBankSide(gActiveBattler) == 0 && gBattleResults.unk4 < 255) gBattleResults.unk4++; } diff --git a/src/rom3.c b/src/rom3.c index 58b64cebd..64d7a535c 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -33,7 +33,7 @@ extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBattler; extern u32 gBattleExecBuffer; extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; extern u16 gCurrentMove; extern u16 gChosenMove; @@ -43,7 +43,7 @@ extern u8 gBankAttacker; extern u8 gBankTarget; extern u8 gEffectBank; extern u8 gStringBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gUnknown_02024C78; extern u8 gBattleOutcome; @@ -237,12 +237,12 @@ void sub_800BA78(void) case 0: case 3: gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -257,12 +257,12 @@ void sub_800BA78(void) case 0: case 3: gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -274,12 +274,12 @@ void sub_800BA78(void) case 0: case 3: gBanksBySide[gLinkPlayers[i].lp_field_18] = 1; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBanksBySide[gLinkPlayers[i].lp_field_18] = 3; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -308,7 +308,7 @@ void sub_800BD54(void) && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -319,7 +319,7 @@ void sub_800BD54(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -332,9 +332,9 @@ void sub_800BD54(void) && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != 0 //Probably a typo by Game Freak. The rest use SPECIES2 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0 - && gBattlePartyID[i - 2] != j) + && gBattlerPartyIndexes[i - 2] != j) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -344,9 +344,9 @@ void sub_800BD54(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0 && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0 - && gBattlePartyID[i - 2] != j) + && gBattlerPartyIndexes[i - 2] != j) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -421,7 +421,7 @@ void PrepareBufferDataTransferLink(u8 a, u16 size, u8 *data) ewram14000arr(3, gTasks[gUnknown_020238C4].data[14]) = gBankTarget; ewram14000arr(4, gTasks[gUnknown_020238C4].data[14]) = r9; ewram14000arr(5, gTasks[gUnknown_020238C4].data[14]) = (r9 & 0x0000FF00) >> 8; - ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBankFlags; + ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBattlerFlags; ewram14000arr(7, gTasks[gUnknown_020238C4].data[14]) = gEffectBank; for (i = 0; i < size; i++) @@ -563,7 +563,7 @@ void sub_800C47C(u8 taskId) { gBankAttacker = ewram15000arr(2, gTasks[taskId].data[15]); gBankTarget = ewram15000arr(3, gTasks[taskId].data[15]); - gAbsentBankFlags = ewram15000arr(6, gTasks[taskId].data[15]); + gAbsentBattlerFlags = ewram15000arr(6, gTasks[taskId].data[15]); gEffectBank = ewram15000arr(7, gTasks[taskId].data[15]); } break; diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 4be3390ee..2df2360dc 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -27,7 +27,7 @@ #define NUM_BATTLE_SLOTS 4 -#define gBattleMonPartyPositions gBattlePartyID +#define gBattleMonPartyPositions gBattlerPartyIndexes #define gCastformElevations gUnknownCastformData_0837F5A8 #define gCastformBackSpriteYCoords gUnknown_0837F5AC #define gTransformPersonalities gTransformedPersonalities @@ -169,10 +169,10 @@ u8 GetBankPosition(u8 slot, u8 a2) { case 0: case 2: - var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_0; + var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBattlerPosition(slot)].field_0; break; case 1: - var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1; + var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBattlerPosition(slot)].field_1; break; case 3: case 4: @@ -323,7 +323,7 @@ u8 sub_8077E44(u8 slot, u16 species, u8 a3) offset = sub_8077BFC(slot, species); offset -= sub_8077DD8(slot, species); } - y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1; + y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBattlerPosition(slot)].field_1; if (a3) { if (GetBankSide(slot) == 0) @@ -825,12 +825,12 @@ u8 GetBankSide(u8 slot) return gBanksBySide[slot] & 1; } -u8 GetBankIdentity(u8 slot) +u8 GetBattlerPosition(u8 slot) { return gBanksBySide[slot]; } -u8 GetBankByIdentity(u8 slot) +u8 GetBattlerAtPosition(u8 slot) { u8 i; @@ -856,7 +856,7 @@ bool8 IsBankSpritePresent(u8 slot) { if (gBanksBySide[slot] == 0xff) return FALSE; - if (GetBankSide(slot) != SIDE_PLAYER) + if (GetBankSide(slot) != B_SIDE_PLAYER) { if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) return TRUE; @@ -899,7 +899,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) unk->field_4 = (u8 *)(VRAM + 0xf000); unk->field_8 = 0xe; } - else if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + else if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) { unk->field_0 = (u8 *)(VRAM + 0x4000); unk->field_4 = (u8 *)(VRAM + 0xe000); @@ -1338,25 +1338,25 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) } } else { if (a1) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(0))) { - var |= 1 << (GetBankByIdentity(0) + 16); + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(0))) { + var |= 1 << (GetBattlerAtPosition(0) + 16); } } if (a2) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(2))) { - shift = GetBankByIdentity(2) + 16; + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(2))) { + shift = GetBattlerAtPosition(2) + 16; var |= 1 << shift; } } if (a3) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(1))) { - shift = GetBankByIdentity(1) + 16; + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(1))) { + shift = GetBattlerAtPosition(1) + 16; var |= 1 << shift; } } if (a4) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(3))) { - shift = GetBankByIdentity(3) + 16; + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(3))) { + shift = GetBattlerAtPosition(3) + 16; var |= 1 << shift; } } @@ -1371,7 +1371,7 @@ u8 sub_80793A8(u8 a1) u8 unref_sub_80793B0(u8 a1) { - return GetBankByIdentity(a1); + return GetBattlerAtPosition(a1); } void sub_80793C4(struct Sprite *sprite) @@ -1421,7 +1421,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) v2 = 1; InitAnimSpritePos(sprite, v1); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBankSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; @@ -1896,12 +1896,12 @@ u8 sub_8079E90(u8 bank) } else { - identity = GetBankIdentity(bank); - if (identity == IDENTITY_PLAYER_MON1) + identity = GetBattlerPosition(bank); + if (identity == B_POSITION_PLAYER_LEFT) ret = 30; - else if (identity == IDENTITY_PLAYER_MON2) + else if (identity == B_POSITION_PLAYER_RIGHT) ret = 20; - else if (identity == IDENTITY_OPPONENT_MON1) + else if (identity == B_POSITION_OPPONENT_LEFT) ret = 40; else ret = 50; @@ -1911,7 +1911,7 @@ u8 sub_8079E90(u8 bank) u8 sub_8079ED4(u8 slot) { - u8 status = GetBankIdentity(slot); + u8 status = GetBattlerPosition(slot); if (IsContest()) return 2; @@ -1921,13 +1921,13 @@ u8 sub_8079ED4(u8 slot) return BG1CNT.priority; } -u8 GetBankIdentity_permutated(u8 slot) +u8 GetBattlerPosition_permutated(u8 slot) { u8 status; if (!IsContest()) { - status = GetBankIdentity(slot); + status = GetBattlerPosition(slot); if (status == 0 || status == 3) return 2; else |