diff options
Diffstat (limited to 'src/battle/battle_ai.c')
-rw-r--r-- | src/battle/battle_ai.c | 104 |
1 files changed, 52 insertions, 52 deletions
diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 629a57d25..134f6c18b 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -17,19 +17,19 @@ extern u8 gUnknown_02023A14_50; extern u32 gUnknown_02023A14_4C; extern u16 gBattleTypeFlags; extern u16 gBattleWeather; -extern u8 gActiveBank; -extern u16 gBattlePartyID[MAX_BANKS_BATTLE]; +extern u8 gActiveBattler; +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[]; @@ -272,7 +272,7 @@ void BattleAI_HandleItemUseBeforeAISetup(void) s32 i; u8 *data; - MEMSET_ALT(UNK_2016A00_STRUCT, 0, sizeof(struct UnkBattleStruct1), i, data); + MEMSET_ALT(AI_BATTLE_HISTORY, 0, sizeof(struct BattleHistory), i, data); if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 0x400 @@ -282,8 +282,8 @@ void BattleAI_HandleItemUseBeforeAISetup(void) { if (gTrainers[gTrainerBattleOpponent].items[i] != 0) { - UNK_2016A00_STRUCT->items[UNK_2016A00_STRUCT->numOfItems] = gTrainers[gTrainerBattleOpponent].items[i]; - UNK_2016A00_STRUCT->numOfItems++; + AI_BATTLE_HISTORY->trainerItems[AI_BATTLE_HISTORY->numItems] = gTrainers[gTrainerBattleOpponent].items[i]; + AI_BATTLE_HISTORY->numItems++; } } } @@ -303,7 +303,7 @@ void BattleAI_SetupAIData(void) for (i = 0; i < MAX_MON_MOVES; i++) AI_THINKING_STRUCT->score[i] = 100; - limitations = CheckMoveLimitations(gActiveBank, 0, 0xFF); + limitations = CheckMoveLimitations(gActiveBattler, 0, 0xFF); // do not consider moves the AI cannot select // also, roll simulated RNG for moves that have a degree of @@ -318,17 +318,17 @@ void BattleAI_SetupAIData(void) // clear AI stack. AI_STACK->size = 0; - gBankAttacker = gActiveBank; + gBankAttacker = gActiveBattler; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { gBankTarget = Random() & 2; // just pick somebody to target. - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) gBankTarget ^= 2; } else - gBankTarget = gActiveBank ^ 1; + gBankTarget = gActiveBattler ^ 1; // special AI flag cases. if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) @@ -446,9 +446,9 @@ void sub_810745C(void) for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == 0) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == 0) { - UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] = gLastUsedMove[gBankTarget]; + AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] = gLastUsedMove[gBankTarget]; return; } } @@ -459,19 +459,19 @@ void unref_sub_81074A0(u8 a) s32 i; for (i = 0; i < 8; i++) - UNK_2016A00_STRUCT->movesUsed[a / 2][i] = 0; + AI_BATTLE_HISTORY->usedMoves[a / 2][i] = 0; } void RecordAbilityBattle(u8 a, u8 b) { - if (GetBankSide(a) == 0) - UNK_2016A00_STRUCT->unk20[GetBankIdentity(a) & 1] = b; + if (GetBattlerSide(a) == 0) + AI_BATTLE_HISTORY->abilities[GetBattlerPosition(a) & 1] = b; } void RecordItemBattle(u8 a, u8 b) { - if (GetBankSide(a) == 0) - UNK_2016A00_STRUCT->unk22[GetBankIdentity(a) & 1] = b; + if (GetBattlerSide(a) == 0) + AI_BATTLE_HISTORY->itemEffects[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\ @@ -1317,7 +1317,7 @@ static void BattleAICmd_count_alive_pokemon(void) else index = gBankTarget; - if (GetBankSide(index) == 0) + if (GetBattlerSide(index) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -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++) @@ -1370,13 +1370,13 @@ static void BattleAICmd_get_ability(void) else index = gBankTarget; - if (GetBankSide(index) == TARGET) + if (GetBattlerSide(index) == TARGET) { - u16 unk = GetBankIdentity(index) & 1; + u16 side = GetBattlerPosition(index) & 1; - if (UNK_2016A00_STRUCT->unk20[unk] != 0) + if (AI_BATTLE_HISTORY->abilities[side] != 0) { - AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk20[unk]; + AI_THINKING_STRUCT->funcResult = AI_BATTLE_HISTORY->abilities[side]; gAIScriptPtr += 2; return; } @@ -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); @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_has_move(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == *temp_ptr) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == *temp_ptr) break; } if (i == 8) @@ -1779,7 +1779,7 @@ static void BattleAICmd_if_dont_have_move(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == *temp_ptr) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == *temp_ptr) break; } if (i != 8) @@ -1812,7 +1812,7 @@ static void BattleAICmd_if_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -1841,7 +1841,7 @@ static void BattleAICmd_if_not_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr += 7; @@ -1885,7 +1885,7 @@ static void BattleAICmd_if_encored(void) switch (gAIScriptPtr[1]) { case 0: // _08109348 - if (gDisableStructs[gActiveBank].disabledMove == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBattler].disabledMove == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -1893,7 +1893,7 @@ static void BattleAICmd_if_encored(void) gAIScriptPtr += 6; return; case 1: // _08109370 - if (gDisableStructs[gActiveBank].encoredMove == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBattler].encoredMove == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -1929,17 +1929,17 @@ static void BattleAICmd_watch(void) static void BattleAICmd_get_hold_effect(void) { u8 index; - u16 status; + u16 side; if (gAIScriptPtr[1] == USER) index = gBankAttacker; else index = gBankTarget; - if (GetBankSide(index) == 0) + if (GetBattlerSide(index) == 0) { - status = (GetBankIdentity(index) & 1); - AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk22[status]; + side = (GetBattlerPosition(index) & 1); + AI_THINKING_STRUCT->funcResult = AI_BATTLE_HISTORY->itemEffects[side]; } else AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[index].item); |