summaryrefslogtreecommitdiff
path: root/src/battle_ai.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_ai.c')
-rw-r--r--src/battle_ai.c694
1 files changed, 355 insertions, 339 deletions
diff --git a/src/battle_ai.c b/src/battle_ai.c
index 26db24f14..4509ca8db 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -67,11 +67,11 @@ extern u8 *gAIScriptPtr;
struct UnknownStruct1
{
-/* 0x00 */ u16 unk0[2][8];
-/* 0x20 */ u8 unk20[2];
-/* 0x22 */ u8 unk22[2];
-/* 0x24 */ u16 items[4];
-/* 0x2C */ u8 unk8;
+ /*0x00*/ u16 unk0[2][8];
+ /*0x20*/ u8 unk20[2];
+ /*0x22*/ u8 unk22[2];
+ /*0x24*/ u16 items[4];
+ /*0x2C*/ u8 unk8;
};
struct UnknownStruct3
@@ -352,18 +352,18 @@ void BattleAI_SetupAIData(void)
u8 r7;
// clear AI data and set default move score to 100.
- for(i = 0; (u32)i < 28; i++)
+ for (i = 0; (u32)i < 28; i++)
data[i] = 0;
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
gAIThinkingSpace.score[i] = 100;
r7 = sub_8015A98(gUnknown_02024A60, 0, 0xFF);
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
{
u16 rand;
- if(gBitTable[i] & r7)
+ if (gBitTable[i] & r7)
gAIThinkingSpace.score[i] = 0;
rand = Random();
gAIThinkingSpace.unk18[i] = 100 - (rand & 0xF);
@@ -372,22 +372,22 @@ void BattleAI_SetupAIData(void)
unk_2016C00.unk20 = 0;
gUnknown_02024C07 = gUnknown_02024A60;
- if(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
gUnknown_02024C08 = Random() & 2;
- if(gUnknown_02024C0C & gBitTable[gUnknown_02024C08])
+ if (gUnknown_02024C0C & gBitTable[gUnknown_02024C08])
gUnknown_02024C08 ^= 2;
}
else
gUnknown_02024C08 = gUnknown_02024A60 ^ 1;
// special AI flag cases.
- if(gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
gAIThinkingSpace.aiFlags = 0x40000000;
- else if(gBattleTypeFlags & BATTLE_TYPE_ROAMER)
+ else if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
gAIThinkingSpace.aiFlags = 0x20000000;
- else if(gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
gAIThinkingSpace.aiFlags = 0x80000000;
else // otherwise, just set aiFlags to whatever flags the trainer has set in their data.
gAIThinkingSpace.aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags;
@@ -401,9 +401,9 @@ u8 BattleAI_GetAIActionToUse(void)
s32 i;
sub_810745C();
- while(gAIThinkingSpace.aiFlags != 0)
+ while (gAIThinkingSpace.aiFlags != 0)
{
- if(gAIThinkingSpace.aiFlags & 1)
+ if (gAIThinkingSpace.aiFlags & 1)
{
gAIThinkingSpace.unk0 = 0;
BattleAI_DoAIProcessing();
@@ -414,24 +414,24 @@ u8 BattleAI_GetAIActionToUse(void)
}
// will KO, need to use item or switch.
- if(gAIThinkingSpace.unk10 & 2)
+ if (gAIThinkingSpace.unk10 & 2)
return 4;
- if(gAIThinkingSpace.unk10 & 4)
+ if (gAIThinkingSpace.unk10 & 4)
return 5;
r5 = 1;
arr1[0] = gAIThinkingSpace.score[0];
arr2[0] = 0;
- for(i = 1; i < 4; i++)
+ for (i = 1; i < 4; i++)
{
- if(arr1[0] < (s8)gAIThinkingSpace.score[i])
+ if (arr1[0] < (s8)gAIThinkingSpace.score[i])
{
r5 = 1;
arr1[0] = gAIThinkingSpace.score[i];
arr2[0] = i;
}
- if(arr1[0] == (s8)gAIThinkingSpace.score[i])
+ if (arr1[0] == (s8)gAIThinkingSpace.score[i])
{
arr1[r5] = gAIThinkingSpace.score[i];
arr2[r5++] = i;
@@ -443,15 +443,15 @@ u8 BattleAI_GetAIActionToUse(void)
void BattleAI_DoAIProcessing(void)
{
- while(gAIThinkingSpace.unk0 != 2)
+ while (gAIThinkingSpace.unk0 != 2)
{
- switch(gAIThinkingSpace.unk0)
+ switch (gAIThinkingSpace.unk0)
{
case 3: //Needed to match.
break;
case 0:
gAIScriptPtr = BattleAIs[gAIThinkingSpace.aiLogicId];
- if(gBattleMons[gUnknown_02024C07].pp[gAIThinkingSpace.moveConsidered] == 0)
+ if (gBattleMons[gUnknown_02024C07].pp[gAIThinkingSpace.moveConsidered] == 0)
{
gAIThinkingSpace.unk2 = 0;
}
@@ -462,17 +462,17 @@ void BattleAI_DoAIProcessing(void)
gAIThinkingSpace.unk0++;
break;
case 1:
- if(gAIThinkingSpace.unk2 != 0)
+ if (gAIThinkingSpace.unk2 != 0)
sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
else
{
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0;
gAIThinkingSpace.unk10 |= 1;
}
- if(gAIThinkingSpace.unk10 & 1)
+ if (gAIThinkingSpace.unk10 & 1)
{
gAIThinkingSpace.moveConsidered++;
- if(gAIThinkingSpace.moveConsidered < 4 && !(gAIThinkingSpace.unk10 & 8))
+ if (gAIThinkingSpace.moveConsidered < 4 && !(gAIThinkingSpace.unk10 & 8))
gAIThinkingSpace.unk0 = 0;
else
gAIThinkingSpace.unk0++;
@@ -487,10 +487,10 @@ void sub_810745C(void)
{
s32 i;
- for(i = 0; i < 8; i++)
+ for (i = 0; i < 8; i++)
{
// this is the same as dividing it by 2, but for some reason, >> 1 is needed to match the asm.
- if(unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == 0)
+ if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == 0)
{
unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] = gUnknown_02024C34[gUnknown_02024C08];
return;
@@ -502,19 +502,19 @@ void unref_sub_81074A0(u8 a)
{
s32 i;
- for(i = 0; i < 8; i++)
+ for (i = 0; i < 8; i++)
unk_2016A00.unk0[a / 2][i] = 0;
}
void sub_81074C4(u8 a, u8 b)
{
- if(battle_side_get_owner(a) == 0)
+ if (battle_side_get_owner(a) == 0)
unk_2016A00.unk20[battle_get_per_side_status(a) & 1] = b;
}
void sub_81074F8(u8 a, u8 b)
{
- if(battle_side_get_owner(a) == 0)
+ if (battle_side_get_owner(a) == 0)
unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b;
}
@@ -562,7 +562,7 @@ static void BattleAICmd_score(void)
{
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score.
- if(gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] < 0) // if the score is negative, flatten it to 0.
+ if (gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] < 0) // if the score is negative, flatten it to 0.
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0;
gAIScriptPtr += 2; // AI return.
@@ -712,7 +712,7 @@ static void BattleAICmd_if_status3(void)
temp = AIScriptRead32(gAIScriptPtr + 2);
- if ( gUnknown_02024C98[var] & temp )
+ if (gUnknown_02024C98[var] & temp)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
@@ -750,7 +750,7 @@ static void BattleAICmd_if_status4(void)
temp = battle_get_per_side_status(var) & 1;
temp2 = AIScriptRead32(gAIScriptPtr + 2);
- if ( gUnknown_02024C7A[temp] & temp2 )
+ if (gUnknown_02024C7A[temp] & temp2)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
@@ -872,96 +872,96 @@ static void BattleAICmd_if_in_bytes(void)
{
u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
- while(*ptr != 0xFF)
- {
- if(gAIThinkingSpace.funcResult == *ptr)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
- return;
- }
- ptr++;
- }
- gAIScriptPtr += 9;
+ while (*ptr != 0xFF)
+ {
+ if (gAIThinkingSpace.funcResult == *ptr)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr += 9;
}
static void BattleAICmd_if_not_in_bytes(void)
{
u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
- while(*ptr != 0xFF)
- {
- if(gAIThinkingSpace.funcResult == *ptr)
- {
- gAIScriptPtr += 9;
- return;
- }
- ptr++;
- }
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ while (*ptr != 0xFF)
+ {
+ if (gAIThinkingSpace.funcResult == *ptr)
+ {
+ gAIScriptPtr += 9;
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
static void BattleAICmd_if_in_words(void)
{
u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
- while(*ptr != 0xFFFF)
- {
- if(gAIThinkingSpace.funcResult == *ptr)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
- return;
- }
- ptr++;
- }
- gAIScriptPtr += 9;
+ while (*ptr != 0xFFFF)
+ {
+ if (gAIThinkingSpace.funcResult == *ptr)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr += 9;
}
static void BattleAICmd_if_not_in_words(void)
{
u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
- while(*ptr != 0xFFFF)
- {
- if(gAIThinkingSpace.funcResult == *ptr)
- {
- gAIScriptPtr += 9;
- return;
- }
- ptr++;
- }
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ while (*ptr != 0xFFFF)
+ {
+ if (gAIThinkingSpace.funcResult == *ptr)
+ {
+ gAIScriptPtr += 9;
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
static void BattleAICmd_if_user_can_damage(void)
{
- s32 i;
+ s32 i;
- for(i = 0; i < 4; i++)
- {
- if (gBattleMons[gUnknown_02024C07].moves[i] != 0
- && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0)
- break;
- }
- if(i == 4)
- gAIScriptPtr += 5;
- else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0
+ && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0)
+ break;
+ }
+ if (i == 4)
+ gAIScriptPtr += 5;
+ else
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
static void BattleAICmd_if_user_cant_damage(void)
{
- s32 i;
+ s32 i;
- for(i = 0; i < 4; i++)
- {
- if (gBattleMons[gUnknown_02024C07].moves[i] != 0
- && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0)
- break;
- }
- if(i != 4)
- gAIScriptPtr += 5;
- else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0
+ && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0)
+ break;
+ }
+ if (i != 4)
+ gAIScriptPtr += 5;
+ else
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
static void BattleAICmd_unk_21(void)
@@ -974,23 +974,23 @@ static void BattleAICmd_get_type(void)
{
u8 typeVar = gAIScriptPtr[1];
- switch(typeVar)
+ switch (typeVar)
{
- case 1:
- gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C07].type1;
- break;
- case 0:
- gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C08].type1;
- break;
- case 3:
- gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C07].type2;
- break;
- case 2:
- gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C08].type2;
- break;
- case 4:
- gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].type;
- break;
+ case 1:
+ gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C07].type1;
+ break;
+ case 0:
+ gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C08].type1;
+ break;
+ case 3:
+ gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C07].type2;
+ break;
+ case 2:
+ gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C08].type2;
+ break;
+ case 4:
+ gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].type;
+ break;
}
gAIScriptPtr += 2;
}
@@ -1322,7 +1322,7 @@ static void BattleAICmd_get_move(void)
static void BattleAICmd_if_type(void)
{
- if ( gAIScriptPtr[1] == gAIThinkingSpace.funcResult )
+ if (gAIScriptPtr[1] == gAIThinkingSpace.funcResult)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1330,7 +1330,7 @@ static void BattleAICmd_if_type(void)
static void BattleAICmd_unk_27(void) // if_not_type
{
- if ( gAIScriptPtr[1] != gAIThinkingSpace.funcResult )
+ if (gAIScriptPtr[1] != gAIThinkingSpace.funcResult)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1338,7 +1338,7 @@ static void BattleAICmd_unk_27(void) // if_not_type
static void BattleAICmd_if_would_go_first(void)
{
- if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] )
+ if (b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1346,17 +1346,19 @@ static void BattleAICmd_if_would_go_first(void)
static void BattleAICmd_if_would_not_go_first(void)
{
- if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] )
+ if (b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
static void BattleAICmd_unk_2A(void)
-{}
+{
+}
static void BattleAICmd_unk_2B(void)
-{}
+{
+}
static void BattleAICmd_count_alive_pokemon(void)
{
@@ -1422,16 +1424,16 @@ static void BattleAICmd_get_ability(void)
{
u8 var;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
- if(battle_side_get_owner(var) == TARGET)
+ if (battle_side_get_owner(var) == TARGET)
{
u16 unk = battle_get_per_side_status(var) & 1;
- if(unk_2016A00.unk20[unk] != 0)
+ if (unk_2016A00.unk20[unk] != 0)
{
((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = unk_2016A00.unk20[unk];
gAIScriptPtr += 2;
@@ -1439,19 +1441,19 @@ static void BattleAICmd_get_ability(void)
}
// abilities that prevent fleeing.
- if(gBattleMons[var].ability == ABILITY_SHADOW_TAG || gBattleMons[var].ability == ABILITY_MAGNET_PULL || gBattleMons[var].ability == ABILITY_ARENA_TRAP)
+ if (gBattleMons[var].ability == ABILITY_SHADOW_TAG || gBattleMons[var].ability == ABILITY_MAGNET_PULL || gBattleMons[var].ability == ABILITY_ARENA_TRAP)
{
gAIThinkingSpace.funcResult = gBattleMons[var].ability;
gAIScriptPtr += 2;
return;
}
- if(gBaseStats[gBattleMons[var].species].ability1 != ABILITY_NONE)
+ if (gBaseStats[gBattleMons[var].species].ability1 != ABILITY_NONE)
{
- if(gBaseStats[gBattleMons[var].species].ability2 != ABILITY_NONE)
+ if (gBaseStats[gBattleMons[var].species].ability2 != ABILITY_NONE)
{
// AI is guessing what ability?
- if(Random() & 1)
+ if (Random() & 1)
{
((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = gBaseStats[gBattleMons[var].species].ability1;
gAIScriptPtr += 2;
@@ -1501,7 +1503,7 @@ static void BattleAICmd_unk_30(void)
ai = &battle_2000000.ai;
ai->funcResult = 0;
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
{
gBattleMoveDamage = 40;
gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i];
@@ -1513,14 +1515,14 @@ static void BattleAICmd_unk_30(void)
// reduce by 1/3.
if (gBattleMoveDamage == 120)
gBattleMoveDamage = 80;
- if(gBattleMoveDamage == 240)
+ if (gBattleMoveDamage == 240)
gBattleMoveDamage = 160;
- if(gBattleMoveDamage == 30)
+ if (gBattleMoveDamage == 30)
gBattleMoveDamage = 20;
- if(gBattleMoveDamage == 15)
+ if (gBattleMoveDamage == 15)
gBattleMoveDamage = 10;
- if(gBattleMoveFlags & 8)
+ if (gBattleMoveFlags & 8)
gBattleMoveDamage = 0;
ai2 = &battle_2000000.ai;
@@ -1549,29 +1551,31 @@ static void BattleAICmd_if_damage_bonus(void)
if (gBattleMoveDamage == 120)
gBattleMoveDamage = 80;
- if(gBattleMoveDamage == 240)
+ if (gBattleMoveDamage == 240)
gBattleMoveDamage = 160;
- if(gBattleMoveDamage == 30)
+ if (gBattleMoveDamage == 30)
gBattleMoveDamage = 20;
- if(gBattleMoveDamage == 15)
+ if (gBattleMoveDamage == 15)
gBattleMoveDamage = 10;
- if(gBattleMoveFlags & 8)
+ if (gBattleMoveFlags & 8)
gBattleMoveDamage = 0;
// i have to store 2024BEC in a local variable before the comparison or else it will not match.
damageVar = gBattleMoveDamage;
- if(damageVar == gAIScriptPtr[1])
+ if (damageVar == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
static void BattleAICmd_unk_32(void)
-{}
+{
+}
static void BattleAICmd_unk_33(void)
-{}
+{
+}
static void BattleAICmd_if_status_in_party(void)
{
@@ -1585,7 +1589,7 @@ static void BattleAICmd_if_status_in_party(void)
}
else if (0)
{
- // what is going on here?
+ // what is going on here?
follow_jump:
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
return;
@@ -1618,16 +1622,16 @@ static void BattleAICmd_if_status_not_in_party(void)
u8 *partyPtr;
// what weird code. needed to match
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 1:
- partyPtr = (u8 *)gEnemyParty;
- party = (struct Pokemon *)partyPtr;
- break;
- default:
- partyPtr = (u8 *)gPlayerParty;
- party = (struct Pokemon *)partyPtr;
- break;
+ case 1:
+ partyPtr = (u8 *)gEnemyParty;
+ party = (struct Pokemon *)partyPtr;
+ break;
+ default:
+ partyPtr = (u8 *)gPlayerParty;
+ party = (struct Pokemon *)partyPtr;
+ break;
}
statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
@@ -1647,13 +1651,13 @@ static void BattleAICmd_if_status_not_in_party(void)
static void BattleAICmd_unk_36(void)
{
- if(gBattleWeather & 7)
+ if (gBattleWeather & 7)
gAIThinkingSpace.funcResult = 1;
- if(gBattleWeather & 0x18)
+ if (gBattleWeather & 0x18)
gAIThinkingSpace.funcResult = 2;
- if(gBattleWeather & 0x60)
+ if (gBattleWeather & 0x60)
gAIThinkingSpace.funcResult = 0;
- if(gBattleWeather & 0x80)
+ if (gBattleWeather & 0x80)
gAIThinkingSpace.funcResult = 3;
gAIScriptPtr += 1;
@@ -1661,7 +1665,7 @@ static void BattleAICmd_unk_36(void)
static void BattleAICmd_if_effect(void)
{
- if(gBattleMoves[gAIThinkingSpace.unk2].effect == gAIScriptPtr[1])
+ if (gBattleMoves[gAIThinkingSpace.unk2].effect == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1669,7 +1673,7 @@ static void BattleAICmd_if_effect(void)
static void BattleAICmd_if_not_effect(void)
{
- if(gBattleMoves[gAIThinkingSpace.unk2].effect != gAIScriptPtr[1])
+ if (gBattleMoves[gAIThinkingSpace.unk2].effect != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1679,12 +1683,12 @@ static void BattleAICmd_if_stat_level_less_than(void)
{
u32 party;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
party = gUnknown_02024C07;
else
party = gUnknown_02024C08;
- if(gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3])
+ if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
@@ -1694,12 +1698,12 @@ static void BattleAICmd_if_stat_level_more_than(void)
{
u32 party;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
party = gUnknown_02024C07;
else
party = gUnknown_02024C08;
- if(gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3])
+ if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
@@ -1709,12 +1713,12 @@ static void BattleAICmd_if_stat_level_equal(void)
{
u32 party;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
party = gUnknown_02024C07;
else
party = gUnknown_02024C08;
- if(gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3])
+ if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
@@ -1724,12 +1728,12 @@ static void BattleAICmd_if_stat_level_not_equal(void)
{
u32 party;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
party = gUnknown_02024C07;
else
party = gUnknown_02024C08;
- if(gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3])
+ if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
@@ -1737,7 +1741,7 @@ static void BattleAICmd_if_stat_level_not_equal(void)
static void BattleAICmd_if_can_faint(void)
{
- if(gBattleMoves[gAIThinkingSpace.unk2].power < 2)
+ if (gBattleMoves[gAIThinkingSpace.unk2].power < 2)
{
gAIScriptPtr += 5;
return;
@@ -1754,10 +1758,10 @@ static void BattleAICmd_if_can_faint(void)
gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
// moves always do at least 1 damage.
- if(gBattleMoveDamage == 0)
+ if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- if(gBattleMons[gUnknown_02024C08].hp <= gBattleMoveDamage)
+ if (gBattleMons[gUnknown_02024C08].hp <= gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -1765,7 +1769,7 @@ static void BattleAICmd_if_can_faint(void)
static void BattleAICmd_if_cant_faint(void)
{
- if(gBattleMoves[gAIThinkingSpace.unk2].power < 2)
+ if (gBattleMoves[gAIThinkingSpace.unk2].power < 2)
{
gAIScriptPtr += 5;
return;
@@ -1784,7 +1788,7 @@ static void BattleAICmd_if_cant_faint(void)
// this macro is missing the damage 0 = 1 assumption.
- if(gBattleMons[gUnknown_02024C08].hp > gBattleMoveDamage)
+ if (gBattleMons[gUnknown_02024C08].hp > gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -1795,42 +1799,42 @@ static void BattleAICmd_unk_3F(void)
int i;
u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2);
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 1:
- case 3:
- for(i = 0; i < 4; i++)
- {
- if(gBattleMons[gUnknown_02024C07].moves[i] == *temp_ptr)
- break;
- }
- if(i == 4)
- {
- gAIScriptPtr += 8;
- return;
- }
- else
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
- return;
- }
- case 0:
- case 2:
- for(i = 0; i < 8; i++)
- {
- if(unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == *temp_ptr)
- break;
- }
- if(i == 8)
- {
- gAIScriptPtr += 8;
- return;
- }
- else
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
- return;
- }
+ case 1:
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] == *temp_ptr)
+ break;
+ }
+ if (i == 4)
+ {
+ gAIScriptPtr += 8;
+ return;
+ }
+ else
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ return;
+ }
+ case 0:
+ case 2:
+ for (i = 0; i < 8; i++)
+ {
+ if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == *temp_ptr)
+ break;
+ }
+ if (i == 8)
+ {
+ gAIScriptPtr += 8;
+ return;
+ }
+ else
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ return;
+ }
}
}
@@ -1839,42 +1843,42 @@ static void BattleAICmd_unk_40(void)
int i;
u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2);
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 1:
- case 3:
- for(i = 0; i < 4; i++)
- {
- if(gBattleMons[gUnknown_02024C07].moves[i] == *temp_ptr)
- break;
- }
- if(i != 4)
- {
- gAIScriptPtr += 8;
- return;
- }
- else
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
- return;
- }
- case 0:
- case 2:
- for(i = 0; i < 8; i++)
- {
- if(unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == *temp_ptr)
- break;
- }
- if(i != 8)
- {
- gAIScriptPtr += 8;
- return;
- }
- else
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
- return;
- }
+ case 1:
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] == *temp_ptr)
+ break;
+ }
+ if (i != 4)
+ {
+ gAIScriptPtr += 8;
+ return;
+ }
+ else
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ return;
+ }
+ case 0:
+ case 2:
+ for (i = 0; i < 8; i++)
+ {
+ if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == *temp_ptr)
+ break;
+ }
+ if (i != 8)
+ {
+ gAIScriptPtr += 8;
+ return;
+ }
+ else
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ return;
+ }
}
}
@@ -1882,28 +1886,28 @@ static void BattleAICmd_if_move_effect(void)
{
int i;
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 1:
- case 3:
- for(i = 0; i < 4; i++)
- {
- if(gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == gAIScriptPtr[2])
- break;
- }
- if(i != 4)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
- break;
- case 0:
- case 2:
- for(i = 0; i < 8; i++)
- {
- if(gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[unk_2016A00.unk0[gUnknown_02024C08 >> 1][i]].effect == gAIScriptPtr[2])
- break;
- }
+ case 1:
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == gAIScriptPtr[2])
+ break;
+ }
+ if (i != 4)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+ break;
+ case 0:
+ case 2:
+ for (i = 0; i < 8; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[unk_2016A00.unk0[gUnknown_02024C08 >> 1][i]].effect == gAIScriptPtr[2])
+ break;
+ }
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
}
}
@@ -1911,28 +1915,28 @@ static void BattleAICmd_if_not_move_effect(void)
{
int i;
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 1:
- case 3:
- for(i = 0; i < 4; i++)
- {
- if(gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == gAIScriptPtr[2])
- break;
- }
- if(i != 4)
- gAIScriptPtr += 7;
- else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
- break;
- case 0:
- case 2:
- for(i = 0; i < 8; i++)
- {
- if(unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] != 0 && gBattleMoves[unk_2016A00.unk0[gUnknown_02024C08 >> 1][i]].effect == gAIScriptPtr[2])
- break;
- }
+ case 1:
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == gAIScriptPtr[2])
+ break;
+ }
+ if (i != 4)
gAIScriptPtr += 7;
+ else
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ break;
+ case 0:
+ case 2:
+ for (i = 0; i < 8; i++)
+ {
+ if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] != 0 && gBattleMoves[unk_2016A00.unk0[gUnknown_02024C08 >> 1][i]].effect == gAIScriptPtr[2])
+ break;
+ }
+ gAIScriptPtr += 7;
}
}
@@ -1940,14 +1944,14 @@ static void BattleAICmd_if_last_move_did_damage(void)
{
u8 var;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
- if(gAIScriptPtr[2] == 0)
+ if (gAIScriptPtr[2] == 0)
{
- if(gUnknown_02024CA8[var].unk4 == 0)
+ if (gUnknown_02024CA8[var].unk4 == 0)
{
gAIScriptPtr += 7;
return;
@@ -1955,12 +1959,12 @@ static void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
return;
}
- else if(gAIScriptPtr[2] != 1)
+ else if (gAIScriptPtr[2] != 1)
{
gAIScriptPtr += 7;
return;
}
- else if(gUnknown_02024CA8[var].unk6 != 0)
+ else if (gUnknown_02024CA8[var].unk6 != 0)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
return;
@@ -1970,27 +1974,27 @@ static void BattleAICmd_if_last_move_did_damage(void)
static void BattleAICmd_if_encored(void)
{
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 0: // _08109348
- if(gUnknown_02024CA8[gUnknown_02024A60].unk4 == gAIThinkingSpace.unk2)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
- return;
- }
- gAIScriptPtr += 6;
- return;
- case 1: // _08109370
- if(gUnknown_02024CA8[gUnknown_02024A60].unk6 == gAIThinkingSpace.unk2)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
- return;
- }
- gAIScriptPtr += 6;
+ case 0: // _08109348
+ if (gUnknown_02024CA8[gUnknown_02024A60].unk4 == gAIThinkingSpace.unk2)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
- default:
- gAIScriptPtr += 6;
+ }
+ gAIScriptPtr += 6;
+ return;
+ case 1: // _08109370
+ if (gUnknown_02024CA8[gUnknown_02024A60].unk6 == gAIThinkingSpace.unk2)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
+ }
+ gAIScriptPtr += 6;
+ return;
+ default:
+ gAIScriptPtr += 6;
+ return;
}
}
@@ -2003,7 +2007,7 @@ static void BattleAICmd_if_random_2(void)
{
u8 var = battle_2000000.unk88 * 5;
- if((u8)(Random() % 100) < var)
+ if ((u8)(Random() % 100) < var)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -2020,12 +2024,12 @@ static void BattleAICmd_get_hold_effect(void)
u16 status;
u8 *aiPtr;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
- if(battle_side_get_owner(var) == 0)
+ if (battle_side_get_owner(var) == 0)
{
// weird pointer arithmetic is needed to match.
status = (battle_get_per_side_status(var) & 1);
@@ -2042,7 +2046,7 @@ static void BattleAICmd_get_gender(void)
{
u8 var;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
@@ -2056,7 +2060,7 @@ static void BattleAICmd_is_first_turn(void)
{
u8 var;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
@@ -2070,7 +2074,7 @@ static void BattleAICmd_get_stockpile_count(void)
{
u8 var;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
@@ -2127,7 +2131,7 @@ static void BattleAICmd_get_protect_count(void)
{
u8 var;
- if(gAIScriptPtr[1] == USER)
+ if (gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
@@ -2137,17 +2141,29 @@ static void BattleAICmd_get_protect_count(void)
gAIScriptPtr += 2;
}
-static void BattleAICmd_unk_52(void) {}
+static void BattleAICmd_unk_52(void)
+{
+}
-static void BattleAICmd_unk_53(void) {}
+static void BattleAICmd_unk_53(void)
+{
+}
-static void BattleAICmd_unk_54(void) {}
+static void BattleAICmd_unk_54(void)
+{
+}
-static void BattleAICmd_unk_55(void) {}
+static void BattleAICmd_unk_55(void)
+{
+}
-static void BattleAICmd_unk_56(void) {}
+static void BattleAICmd_unk_56(void)
+{
+}
-static void BattleAICmd_unk_57(void) {}
+static void BattleAICmd_unk_57(void)
+{
+}
static void BattleAICmd_call(void)
{
@@ -2162,44 +2178,44 @@ static void BattleAICmd_jump(void)
static void BattleAICmd_unk_5A(void)
{
- if(sub_8109908() == 0)
+ if (sub_8109908() == 0)
gAIThinkingSpace.unk10 |= 1;
}
static void BattleAICmd_if_level_cond(void)
{
- switch(gAIScriptPtr[1])
+ switch (gAIScriptPtr[1])
{
- case 0:
- if(gBattleMons[gUnknown_02024C07].level > gBattleMons[gUnknown_02024C08].level)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
- return;
- }
- gAIScriptPtr += 6;
+ case 0:
+ if (gBattleMons[gUnknown_02024C07].level > gBattleMons[gUnknown_02024C08].level)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
- case 1:
- if(gBattleMons[gUnknown_02024C07].level < gBattleMons[gUnknown_02024C08].level)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
- return;
- }
- gAIScriptPtr += 6;
+ }
+ gAIScriptPtr += 6;
+ return;
+ case 1:
+ if (gBattleMons[gUnknown_02024C07].level < gBattleMons[gUnknown_02024C08].level)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
- case 2:
- if(gBattleMons[gUnknown_02024C07].level == gBattleMons[gUnknown_02024C08].level)
- {
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
- return;
- }
- gAIScriptPtr += 6;
+ }
+ gAIScriptPtr += 6;
+ return;
+ case 2:
+ if (gBattleMons[gUnknown_02024C07].level == gBattleMons[gUnknown_02024C08].level)
+ {
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
+ }
+ gAIScriptPtr += 6;
+ return;
}
}
static void BattleAICmd_if_taunted(void)
{
- if(gUnknown_02024CA8[gUnknown_02024C08].taunt)
+ if (gUnknown_02024CA8[gUnknown_02024C08].taunt)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -2207,7 +2223,7 @@ static void BattleAICmd_if_taunted(void)
static void BattleAICmd_if_not_taunted(void)
{
- if(!(gUnknown_02024CA8[gUnknown_02024C08].taunt))
+ if (!(gUnknown_02024CA8[gUnknown_02024C08].taunt))
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -2225,7 +2241,7 @@ void unref_sub_81098E4(void)
bool8 sub_8109908(void)
{
- if(unk_2016C00.unk20 != 0)
+ if (unk_2016C00.unk20 != 0)
{
--unk_2016C00.unk20;
gAIScriptPtr = unk_2016C00.ptr[unk_2016C00.unk20];