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.c572
1 files changed, 426 insertions, 146 deletions
diff --git a/src/battle_ai.c b/src/battle_ai.c
index 4727b2eb0..ca767a3a3 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -6,13 +6,14 @@
#include "abilities.h"
#include "species.h"
#include "item.h"
+#include "battle_move_effects.h"
#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
#define AIScriptRead8(ptr) ((ptr)[0])
#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr)
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(&battle_2000000 + 0x16800))
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)((u8 *)&battle_2000000 + 0x16800))
#define AI_ARRAY_160CC ((&battle_2000000 + 0x160CC))
extern void sub_801CAF8(u8, u8);
@@ -31,11 +32,11 @@ extern u16 gBattleWeather;
extern u8 gUnknown_02024A60;
extern u8 gUnknown_02024A6A[][2];
extern u16 gUnknown_02024BE6;
-extern int gUnknown_02024BEC;
+extern int gBattleMoveDamage;
extern u8 gUnknown_02024C07; // something player?
extern u8 gUnknown_02024C08; // something opponent?
extern u8 gUnknown_02024C0C;
-extern u8 gUnknown_02024C68;
+extern u8 gBattleMoveFlags;
extern u16 gUnknown_02024DEC;
extern u16 gUnknown_02024C34[];
extern u32 gUnknown_02024ACC[];
@@ -51,7 +52,6 @@ extern u8 *BattleAIs[];
extern struct Trainer gTrainers[];
extern struct BattleMove gBattleMoves[];
extern struct BaseStats gBaseStats[];
-extern void (*gBattleAICmdTable[])(void);
// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
extern u8 unk_2000000[];
@@ -100,6 +100,221 @@ extern struct UnknownStruct1 unk_2016A00;
extern struct UnknownStruct3 unk_2016C00;
extern struct UnknownStruct4 gUnknown_02024CA8[];
+static void BattleAICmd_if_random(void);
+static void BattleAICmd_if_not_random(void);
+static void BattleAICmd_if_random_1(void);
+static void BattleAICmd_if_not_random_1(void);
+static void BattleAICmd_score(void);
+static void BattleAICmd_if_hp_less_than(void);
+static void BattleAICmd_if_hp_more_than(void);
+static void BattleAICmd_if_hp_equal(void);
+static void BattleAICmd_if_hp_not_equal(void);
+static void BattleAICmd_if_status(void);
+static void BattleAICmd_if_not_status(void);
+static void BattleAICmd_if_status2(void);
+static void BattleAICmd_if_not_status2(void);
+static void BattleAICmd_if_status3(void);
+static void BattleAICmd_if_not_status3(void);
+static void BattleAICmd_if_status4(void);
+static void BattleAICmd_if_not_status4(void);
+static void BattleAICmd_if_less_than(void);
+static void BattleAICmd_if_more_than(void);
+static void BattleAICmd_if_equal(void);
+static void BattleAICmd_if_not_equal(void);
+static void BattleAICmd_if_less_than_32(void);
+static void BattleAICmd_if_more_than_32(void);
+static void BattleAICmd_if_equal_32(void);
+static void BattleAICmd_if_not_equal_32(void);
+static void BattleAICmd_if_move(void);
+static void BattleAICmd_if_not_move(void);
+static void BattleAICmd_if_in_bytes(void);
+static void BattleAICmd_if_not_in_bytes(void);
+static void BattleAICmd_if_in_words(void);
+static void BattleAICmd_if_not_in_words(void);
+static void BattleAICmd_if_user_can_damage(void);
+static void BattleAICmd_if_user_cant_damage(void);
+static void BattleAICmd_unk_21(void);
+static void BattleAICmd_get_type(void);
+static void BattleAICmd_unk_23(void);
+static void BattleAICmd_unk_24(void);
+static void BattleAICmd_get_move(void);
+static void BattleAICmd_if_type(void);
+static void BattleAICmd_unk_27(void);
+static void BattleAICmd_if_would_go_first(void);
+static void BattleAICmd_if_would_not_go_first(void);
+static void BattleAICmd_unk_2A(void);
+static void BattleAICmd_unk_2B(void);
+static void BattleAICmd_count_alive_pokemon(void);
+static void BattleAICmd_unk_2D(void);
+static void BattleAICmd_unk_2E(void);
+static void BattleAICmd_get_ability(void);
+static void BattleAICmd_unk_30(void);
+static void BattleAICmd_if_damage_bonus(void);
+static void BattleAICmd_unk_32(void);
+static void BattleAICmd_unk_33(void);
+static void BattleAICmd_if_status_in_party(void);
+static void BattleAICmd_if_status_not_in_party(void);
+static void BattleAICmd_unk_36(void);
+static void BattleAICmd_if_effect(void);
+static void BattleAICmd_if_not_effect(void);
+static void BattleAICmd_if_stat_level_less_than(void);
+static void BattleAICmd_if_stat_level_more_than(void);
+static void BattleAICmd_if_stat_level_equal(void);
+static void BattleAICmd_if_stat_level_not_equal(void);
+static void BattleAICmd_if_can_faint(void);
+static void BattleAICmd_if_cant_faint(void);
+static void BattleAICmd_unk_3F(void);
+static void BattleAICmd_unk_40(void);
+static void BattleAICmd_if_move_effect(void);
+static void BattleAICmd_if_not_move_effect(void);
+static void BattleAICmd_if_last_move_did_damage(void);
+static void BattleAICmd_if_encored(void);
+static void BattleAICmd_unk_45(void);
+static void BattleAICmd_if_random_2(void);
+static void BattleAICmd_unk_47(void);
+static void BattleAICmd_get_hold_effect(void);
+static void BattleAICmd_get_gender(void);
+static void BattleAICmd_is_first_turn(void);
+static void BattleAICmd_get_stockpile_count(void);
+static void BattleAICmd_unk_4C(void);
+static void BattleAICmd_get_item(void);
+static void BattleAICmd_unk_4E(void);
+static void BattleAICmd_unk_4F(void);
+static void BattleAICmd_unk_50(void);
+static void BattleAICmd_get_protect_count(void);
+static void BattleAICmd_unk_52(void);
+static void BattleAICmd_unk_53(void);
+static void BattleAICmd_unk_54(void);
+static void BattleAICmd_unk_55(void);
+static void BattleAICmd_unk_56(void);
+static void BattleAICmd_unk_57(void);
+static void BattleAICmd_call(void);
+static void BattleAICmd_jump(void);
+static void BattleAICmd_unk_5A(void);
+static void BattleAICmd_if_level_cond(void);
+static void BattleAICmd_if_taunted(void);
+static void BattleAICmd_if_not_taunted(void);
+
+typedef void (*BattleAICmdFunc)(void);
+
+static const BattleAICmdFunc sBattleAICmdTable[] =
+{
+ BattleAICmd_if_random,
+ BattleAICmd_if_not_random,
+ BattleAICmd_if_random_1,
+ BattleAICmd_if_not_random_1,
+ BattleAICmd_score,
+ BattleAICmd_if_hp_less_than,
+ BattleAICmd_if_hp_more_than,
+ BattleAICmd_if_hp_equal,
+ BattleAICmd_if_hp_not_equal,
+ BattleAICmd_if_status,
+ BattleAICmd_if_not_status,
+ BattleAICmd_if_status2,
+ BattleAICmd_if_not_status2,
+ BattleAICmd_if_status3,
+ BattleAICmd_if_not_status3,
+ BattleAICmd_if_status4,
+ BattleAICmd_if_not_status4,
+ BattleAICmd_if_less_than,
+ BattleAICmd_if_more_than,
+ BattleAICmd_if_equal,
+ BattleAICmd_if_not_equal,
+ BattleAICmd_if_less_than_32,
+ BattleAICmd_if_more_than_32,
+ BattleAICmd_if_equal_32,
+ BattleAICmd_if_not_equal_32,
+ BattleAICmd_if_move,
+ BattleAICmd_if_not_move,
+ BattleAICmd_if_in_bytes,
+ BattleAICmd_if_not_in_bytes,
+ BattleAICmd_if_in_words,
+ BattleAICmd_if_not_in_words,
+ BattleAICmd_if_user_can_damage,
+ BattleAICmd_if_user_cant_damage,
+ BattleAICmd_unk_21,
+ BattleAICmd_get_type,
+ BattleAICmd_unk_23,
+ BattleAICmd_unk_24,
+ BattleAICmd_get_move,
+ BattleAICmd_if_type,
+ BattleAICmd_unk_27,
+ BattleAICmd_if_would_go_first,
+ BattleAICmd_if_would_not_go_first,
+ BattleAICmd_unk_2A,
+ BattleAICmd_unk_2B,
+ BattleAICmd_count_alive_pokemon,
+ BattleAICmd_unk_2D,
+ BattleAICmd_unk_2E,
+ BattleAICmd_get_ability,
+ BattleAICmd_unk_30,
+ BattleAICmd_if_damage_bonus,
+ BattleAICmd_unk_32,
+ BattleAICmd_unk_33,
+ BattleAICmd_if_status_in_party,
+ BattleAICmd_if_status_not_in_party,
+ BattleAICmd_unk_36,
+ BattleAICmd_if_effect,
+ BattleAICmd_if_not_effect,
+ BattleAICmd_if_stat_level_less_than,
+ BattleAICmd_if_stat_level_more_than,
+ BattleAICmd_if_stat_level_equal,
+ BattleAICmd_if_stat_level_not_equal,
+ BattleAICmd_if_can_faint,
+ BattleAICmd_if_cant_faint,
+ BattleAICmd_unk_3F,
+ BattleAICmd_unk_40,
+ BattleAICmd_if_move_effect,
+ BattleAICmd_if_not_move_effect,
+ BattleAICmd_if_last_move_did_damage,
+ BattleAICmd_if_encored,
+ BattleAICmd_unk_45,
+ BattleAICmd_if_random_2,
+ BattleAICmd_unk_47,
+ BattleAICmd_get_hold_effect,
+ BattleAICmd_get_gender,
+ BattleAICmd_is_first_turn,
+ BattleAICmd_get_stockpile_count,
+ BattleAICmd_unk_4C,
+ BattleAICmd_get_item,
+ BattleAICmd_unk_4E,
+ BattleAICmd_unk_4F,
+ BattleAICmd_unk_50,
+ BattleAICmd_get_protect_count,
+ BattleAICmd_unk_52,
+ BattleAICmd_unk_53,
+ BattleAICmd_unk_54,
+ BattleAICmd_unk_55,
+ BattleAICmd_unk_56,
+ BattleAICmd_unk_57,
+ BattleAICmd_call,
+ BattleAICmd_jump,
+ BattleAICmd_unk_5A,
+ BattleAICmd_if_level_cond,
+ BattleAICmd_if_taunted,
+ BattleAICmd_if_not_taunted,
+};
+
+#ifdef NONMATCHING
+static
+#endif
+const u16 sDiscouragedPowerfulMoveEffects[] =
+{
+ EFFECT_EXPLOSION,
+ EFFECT_DREAM_EATER,
+ EFFECT_RAZOR_WIND,
+ EFFECT_SKY_ATTACK,
+ EFFECT_RECHARGE,
+ EFFECT_SKULL_BASH,
+ EFFECT_SOLARBEAM,
+ EFFECT_SPIT_UP,
+ EFFECT_FOCUS_PUNCH,
+ EFFECT_SUPERPOWER,
+ EFFECT_ERUPTION,
+ EFFECT_OVERHEAT,
+ 0xFFFF
+};
+
void BattleAI_SetupAIData(void);
void BattleAI_DoAIProcessing(void);
void sub_810745C(void);
@@ -248,7 +463,7 @@ void BattleAI_DoAIProcessing(void)
break;
case 1:
if(gAIThinkingSpace.unk2 != 0)
- gBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
+ sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
else
{
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0;
@@ -303,7 +518,7 @@ void sub_81074F8(u8 a, u8 b)
unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b;
}
-void BattleAICmd_if_random(void)
+static void BattleAICmd_if_random(void)
{
u16 random = Random();
@@ -313,7 +528,7 @@ void BattleAICmd_if_random(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_random(void)
+static void BattleAICmd_if_not_random(void)
{
u16 random = Random();
@@ -323,7 +538,7 @@ void BattleAICmd_if_not_random(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_random_1(void) // if RNG Value equal to
+static void BattleAICmd_if_random_1(void) // if RNG Value equal to
{
u16 random = Random();
@@ -333,7 +548,7 @@ void BattleAICmd_if_random_1(void) // if RNG Value equal to
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
+static void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
{
u16 random = Random();
@@ -343,7 +558,7 @@ void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
gAIScriptPtr += 6;
}
-void BattleAICmd_score(void)
+static void BattleAICmd_score(void)
{
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score.
@@ -353,7 +568,7 @@ void BattleAICmd_score(void)
gAIScriptPtr += 2; // AI return.
}
-void BattleAICmd_if_hp_less_than(void)
+static void BattleAICmd_if_hp_less_than(void)
{
u16 var;
@@ -368,7 +583,7 @@ void BattleAICmd_if_hp_less_than(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_hp_more_than(void)
+static void BattleAICmd_if_hp_more_than(void)
{
u16 var;
@@ -383,7 +598,7 @@ void BattleAICmd_if_hp_more_than(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_hp_equal(void)
+static void BattleAICmd_if_hp_equal(void)
{
u16 var;
@@ -398,7 +613,7 @@ void BattleAICmd_if_hp_equal(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_hp_not_equal(void)
+static void BattleAICmd_if_hp_not_equal(void)
{
u16 var;
@@ -413,7 +628,7 @@ void BattleAICmd_if_hp_not_equal(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_status(void)
+static void BattleAICmd_if_status(void)
{
u16 var;
u32 temp;
@@ -431,7 +646,7 @@ void BattleAICmd_if_status(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status(void)
+static void BattleAICmd_if_not_status(void)
{
u16 var;
u32 temp;
@@ -449,7 +664,7 @@ void BattleAICmd_if_not_status(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status2(void)
+static void BattleAICmd_if_status2(void)
{
u8 var;
u32 temp;
@@ -467,7 +682,7 @@ void BattleAICmd_if_status2(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status2(void)
+static void BattleAICmd_if_not_status2(void)
{
u8 var;
u32 temp;
@@ -485,7 +700,7 @@ void BattleAICmd_if_not_status2(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status3(void)
+static void BattleAICmd_if_status3(void)
{
u8 var;
u32 temp;
@@ -503,7 +718,7 @@ void BattleAICmd_if_status3(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status3(void)
+static void BattleAICmd_if_not_status3(void)
{
u8 var;
u32 temp;
@@ -521,7 +736,7 @@ void BattleAICmd_if_not_status3(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status4(void)
+static void BattleAICmd_if_status4(void)
{
u8 var;
u32 temp;
@@ -541,7 +756,7 @@ void BattleAICmd_if_status4(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status4(void)
+static void BattleAICmd_if_not_status4(void)
{
u8 var;
u32 temp;
@@ -561,7 +776,7 @@ void BattleAICmd_if_not_status4(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_less_than(void)
+static void BattleAICmd_if_less_than(void)
{
if (gAIThinkingSpace.funcResult < gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -569,7 +784,7 @@ void BattleAICmd_if_less_than(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_more_than(void)
+static void BattleAICmd_if_more_than(void)
{
if (gAIThinkingSpace.funcResult > gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -577,7 +792,7 @@ void BattleAICmd_if_more_than(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_equal(void)
+static void BattleAICmd_if_equal(void)
{
if (gAIThinkingSpace.funcResult == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -585,7 +800,7 @@ void BattleAICmd_if_equal(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_equal(void)
+static void BattleAICmd_if_not_equal(void)
{
if (gAIThinkingSpace.funcResult != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -593,7 +808,7 @@ void BattleAICmd_if_not_equal(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_less_than_32(void)
+static void BattleAICmd_if_less_than_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -603,7 +818,7 @@ void BattleAICmd_if_less_than_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_more_than_32(void)
+static void BattleAICmd_if_more_than_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -613,7 +828,7 @@ void BattleAICmd_if_more_than_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_equal_32(void)
+static void BattleAICmd_if_equal_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -623,7 +838,7 @@ void BattleAICmd_if_equal_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_not_equal_32(void)
+static void BattleAICmd_if_not_equal_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -633,7 +848,7 @@ void BattleAICmd_if_not_equal_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_move(void)
+static void BattleAICmd_if_move(void)
{
u16 move = AIScriptRead16(gAIScriptPtr + 1);
@@ -643,7 +858,7 @@ void BattleAICmd_if_move(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_not_move(void)
+static void BattleAICmd_if_not_move(void)
{
u16 move = AIScriptRead16(gAIScriptPtr + 1);
@@ -653,7 +868,7 @@ void BattleAICmd_if_not_move(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_in_bytes(void)
+static void BattleAICmd_if_in_bytes(void)
{
u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -669,7 +884,7 @@ void BattleAICmd_if_in_bytes(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_not_in_bytes(void)
+static void BattleAICmd_if_not_in_bytes(void)
{
u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -685,7 +900,7 @@ void BattleAICmd_if_not_in_bytes(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
-void BattleAICmd_if_in_words(void)
+static void BattleAICmd_if_in_words(void)
{
u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
@@ -701,7 +916,7 @@ void BattleAICmd_if_in_words(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_not_in_words(void)
+static void BattleAICmd_if_not_in_words(void)
{
u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
@@ -717,7 +932,7 @@ void BattleAICmd_if_not_in_words(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
-void BattleAICmd_if_user_can_damage(void)
+static void BattleAICmd_if_user_can_damage(void)
{
s32 i;
@@ -733,7 +948,7 @@ void BattleAICmd_if_user_can_damage(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_if_user_cant_damage(void)
+static void BattleAICmd_if_user_cant_damage(void)
{
s32 i;
@@ -749,13 +964,13 @@ void BattleAICmd_if_user_cant_damage(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_unk_21(void)
+static void BattleAICmd_unk_21(void)
{
gAIThinkingSpace.funcResult = gUnknown_030042E0[19];
gAIScriptPtr += 1;
}
-void BattleAICmd_get_type(void)
+static void BattleAICmd_get_type(void)
{
u8 typeVar = gAIScriptPtr[1];
@@ -780,14 +995,78 @@ void BattleAICmd_get_type(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_23(void)
+static void BattleAICmd_unk_23(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].power;
gAIScriptPtr += 1;
}
+#ifdef NONMATCHING
+static void BattleAICmd_unk_24(void)
+{
+ int i, j;
+ s32 damage;
+ s32 damages[4];
+
+ for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++)
+ if (gBattleMoves[AI_THINKING_STRUCT->unk2].effect == sDiscouragedPowerfulMoveEffects[i])
+ break;
+
+ if (gBattleMoves[AI_THINKING_STRUCT->unk2].power > 1
+ && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
+ {
+ gUnknown_02024DEC = 0;
+ *((u8 *)&battle_2000000 + 0x1601C) = 0;
+ *((u8 *)&battle_2000000 + 0x1601F) = 1;
+ gBattleMoveFlags = 0;
+ gCritMultiplier = 1;
+
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++)
+ {
+ if (gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j])
+ break;
+ }
+
+ if (gBattleMons[gUnknown_02024C07].moves[i]
+ && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF
+ && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power > 1)
+ {
+ gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i];
+ sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08);
+ move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
+ damage = (gBattleMoveDamage * AI_THINKING_STRUCT->unk18[i]) / 100;
+ damages[i] = damage;
+ if (!damage)
+ damages[i] = 1;
+ }
+ else
+ {
+ damages[i] = 0;
+ }
+ }
+
+ for (i = 0; i < 4; i++)
+ if (damages[i] > damages[AI_THINKING_STRUCT->moveConsidered])
+ break;
+
+ if (i == 4)
+ AI_THINKING_STRUCT->funcResult = 2;
+ else
+ AI_THINKING_STRUCT->funcResult = 1;
+ }
+ else
+ {
+ AI_THINKING_STRUCT->funcResult = 0;
+ gAIScriptPtr += 1;
+ }
+
+ gAIScriptPtr += 1;
+}
+#else
__attribute__((naked))
-void BattleAICmd_unk_24(void)
+static void BattleAICmd_unk_24(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -797,7 +1076,7 @@ void BattleAICmd_unk_24(void)
push {r5-r7}\n\
sub sp, 0x14\n\
movs r3, 0\n\
- ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r0, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
ldrh r1, [r0]\n\
ldr r4, _0810832C @ =0x0000ffff\n\
ldr r6, _08108330 @ =gBattleMoves\n\
@@ -810,7 +1089,7 @@ void BattleAICmd_unk_24(void)
lsls r0, 2\n\
adds r0, r6\n\
ldrb r2, [r0]\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
_0810821E:\n\
ldrh r0, [r1]\n\
cmp r2, r0\n\
@@ -832,7 +1111,7 @@ _0810822E:\n\
b _081083B2\n\
_08108240:\n\
lsls r0, r3, 1\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
adds r0, r1\n\
ldrh r3, [r0]\n\
ldr r0, _0810832C @ =0x0000ffff\n\
@@ -850,13 +1129,13 @@ _08108250:\n\
adds r0, r5, r2\n\
movs r2, 0x1\n\
strb r2, [r0]\n\
- ldr r0, _08108340 @ =gUnknown_02024C68\n\
+ ldr r0, _08108340 @ =gBattleMoveFlags\n\
strb r1, [r0]\n\
ldr r0, _08108344 @ =gCritMultiplier\n\
strb r2, [r0]\n\
movs r6, 0\n\
mov r9, r3\n\
- ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r0, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
ldrh r0, [r0]\n\
str r0, [sp, 0x10]\n\
_08108276:\n\
@@ -885,7 +1164,7 @@ _08108276:\n\
lsls r0, 2\n\
adds r0, r2\n\
ldrb r2, [r0]\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
_081082AA:\n\
ldrh r0, [r1]\n\
cmp r2, r0\n\
@@ -907,7 +1186,7 @@ _081082BA:\n\
cmp r0, 0\n\
beq _0810835C\n\
lsls r0, r3, 1\n\
- ldr r2, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r2, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
adds r0, r2\n\
ldrh r0, [r0]\n\
cmp r0, r9\n\
@@ -933,7 +1212,7 @@ _081082BA:\n\
bl move_effectiveness_something\n\
mov r4, sp\n\
add r4, r8\n\
- ldr r2, _08108358 @ =gUnknown_02024BEC\n\
+ ldr r2, _08108358 @ =gBattleMoveDamage\n\
ldr r0, _08108334 @ =0x02016800\n\
adds r0, 0x18\n\
adds r0, r6, r0\n\
@@ -949,19 +1228,19 @@ _081082BA:\n\
str r0, [r4]\n\
b _08108364\n\
.align 2, 0\n\
-_08108328: .4byte gUnknown_083F62BC\n\
+_08108328: .4byte sDiscouragedPowerfulMoveEffects\n\
_0810832C: .4byte 0x0000ffff\n\
_08108330: .4byte gBattleMoves\n\
_08108334: .4byte 0x02016800\n\
_08108338: .4byte gUnknown_02024DEC\n\
_0810833C: .4byte 0xfffff81c\n\
-_08108340: .4byte gUnknown_02024C68\n\
+_08108340: .4byte gBattleMoveFlags\n\
_08108344: .4byte gCritMultiplier\n\
_08108348: .4byte gBattleMons\n\
_0810834C: .4byte gUnknown_02024C07\n\
_08108350: .4byte gUnknown_02024BE6\n\
_08108354: .4byte gUnknown_02024C08\n\
-_08108358: .4byte gUnknown_02024BEC\n\
+_08108358: .4byte gBattleMoveDamage\n\
_0810835C:\n\
mov r1, sp\n\
add r1, r8\n\
@@ -1029,8 +1308,9 @@ _081083B8:\n\
_081083D0: .4byte gAIScriptPtr\n\
.syntax divided\n");
}
+#endif // NONMATCHING
-void BattleAICmd_get_move(void)
+static void BattleAICmd_get_move(void)
{
if (gAIScriptPtr[1] == USER)
gAIThinkingSpace.funcResult = gUnknown_02024C34[gUnknown_02024C07];
@@ -1040,7 +1320,7 @@ void BattleAICmd_get_move(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_if_type(void)
+static void BattleAICmd_if_type(void)
{
if ( gAIScriptPtr[1] == gAIThinkingSpace.funcResult )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1048,7 +1328,7 @@ void BattleAICmd_if_type(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_unk_27(void) // if_not_type
+static void BattleAICmd_unk_27(void) // if_not_type
{
if ( gAIScriptPtr[1] != gAIThinkingSpace.funcResult )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1056,7 +1336,7 @@ void BattleAICmd_unk_27(void) // if_not_type
gAIScriptPtr += 6;
}
-void BattleAICmd_if_would_go_first(void)
+static void BattleAICmd_if_would_go_first(void)
{
if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1064,7 +1344,7 @@ void BattleAICmd_if_would_go_first(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_would_not_go_first(void)
+static void BattleAICmd_if_would_not_go_first(void)
{
if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1072,13 +1352,13 @@ void BattleAICmd_if_would_not_go_first(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_unk_2A(void)
+static void BattleAICmd_unk_2A(void)
{}
-void BattleAICmd_unk_2B(void)
+static void BattleAICmd_unk_2B(void)
{}
-void BattleAICmd_count_alive_pokemon(void)
+static void BattleAICmd_count_alive_pokemon(void)
{
u8 index;
struct Pokemon *party;
@@ -1126,19 +1406,19 @@ void BattleAICmd_count_alive_pokemon(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_2D(void)
+static void BattleAICmd_unk_2D(void)
{
gAIThinkingSpace.funcResult = gAIThinkingSpace.unk2;
gAIScriptPtr += 1;
}
-void BattleAICmd_unk_2E(void)
+static void BattleAICmd_unk_2E(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].effect;
gAIScriptPtr += 1;
}
-void BattleAICmd_get_ability(void)
+static void BattleAICmd_get_ability(void)
{
u8 var;
@@ -1207,7 +1487,7 @@ void BattleAICmd_get_ability(void)
}
}
-void BattleAICmd_unk_30(void)
+static void BattleAICmd_unk_30(void)
{
s32 i;
struct AI_ThinkingStruct *ai;
@@ -1216,14 +1496,14 @@ void BattleAICmd_unk_30(void)
gUnknown_02024DEC = 0;
battle_2000000.unk.unk1 = 0;
battle_2000000.unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
ai = &battle_2000000.ai;
ai->funcResult = 0;
for(i = 0; i < 4; i++)
{
- gUnknown_02024BEC = 40;
+ gBattleMoveDamage = 40;
gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i];
if (gUnknown_02024BE6)
@@ -1231,27 +1511,27 @@ void BattleAICmd_unk_30(void)
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
// reduce by 1/3.
- if (gUnknown_02024BEC == 120)
- gUnknown_02024BEC = 80;
- if(gUnknown_02024BEC == 240)
- gUnknown_02024BEC = 160;
- if(gUnknown_02024BEC == 30)
- gUnknown_02024BEC = 20;
- if(gUnknown_02024BEC == 15)
- gUnknown_02024BEC = 10;
-
- if(gUnknown_02024C68 & 8)
- gUnknown_02024BEC = 0;
+ if (gBattleMoveDamage == 120)
+ gBattleMoveDamage = 80;
+ if(gBattleMoveDamage == 240)
+ gBattleMoveDamage = 160;
+ if(gBattleMoveDamage == 30)
+ gBattleMoveDamage = 20;
+ if(gBattleMoveDamage == 15)
+ gBattleMoveDamage = 10;
+
+ if(gBattleMoveFlags & 8)
+ gBattleMoveDamage = 0;
ai2 = &battle_2000000.ai;
- if (ai2->funcResult < gUnknown_02024BEC)
- ai2->funcResult = gUnknown_02024BEC;
+ if (ai2->funcResult < gBattleMoveDamage)
+ ai2->funcResult = gBattleMoveDamage;
}
}
gAIScriptPtr += 1;
}
-void BattleAICmd_if_damage_bonus(void)
+static void BattleAICmd_if_damage_bonus(void)
{
struct AI_ThinkingStruct *ai;
u8 damageVar;
@@ -1259,41 +1539,41 @@ void BattleAICmd_if_damage_bonus(void)
gUnknown_02024DEC = 0;
battle_2000000.unk.unk1 = 0;
battle_2000000.unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
- gUnknown_02024BEC = 40;
+ gBattleMoveDamage = 40;
gUnknown_02024BE6 = (ai = &battle_2000000.ai)->unk2;
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
- if (gUnknown_02024BEC == 120)
- gUnknown_02024BEC = 80;
- if(gUnknown_02024BEC == 240)
- gUnknown_02024BEC = 160;
- if(gUnknown_02024BEC == 30)
- gUnknown_02024BEC = 20;
- if(gUnknown_02024BEC == 15)
- gUnknown_02024BEC = 10;
+ if (gBattleMoveDamage == 120)
+ gBattleMoveDamage = 80;
+ if(gBattleMoveDamage == 240)
+ gBattleMoveDamage = 160;
+ if(gBattleMoveDamage == 30)
+ gBattleMoveDamage = 20;
+ if(gBattleMoveDamage == 15)
+ gBattleMoveDamage = 10;
- if(gUnknown_02024C68 & 8)
- gUnknown_02024BEC = 0;
+ if(gBattleMoveFlags & 8)
+ gBattleMoveDamage = 0;
// i have to store 2024BEC in a local variable before the comparison or else it will not match.
- damageVar = gUnknown_02024BEC;
+ damageVar = gBattleMoveDamage;
if(damageVar == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
-void BattleAICmd_unk_32(void)
+static void BattleAICmd_unk_32(void)
{}
-void BattleAICmd_unk_33(void)
+static void BattleAICmd_unk_33(void)
{}
-void BattleAICmd_if_status_in_party(void)
+static void BattleAICmd_if_status_in_party(void)
{
struct Pokemon *party;
int i;
@@ -1330,7 +1610,7 @@ void BattleAICmd_if_status_in_party(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status_not_in_party(void)
+static void BattleAICmd_if_status_not_in_party(void)
{
struct Pokemon *party;
int i;
@@ -1365,7 +1645,7 @@ void BattleAICmd_if_status_not_in_party(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
}
-void BattleAICmd_unk_36(void)
+static void BattleAICmd_unk_36(void)
{
if(gBattleWeather & 7)
gAIThinkingSpace.funcResult = 1;
@@ -1379,7 +1659,7 @@ void BattleAICmd_unk_36(void)
gAIScriptPtr += 1;
}
-void BattleAICmd_if_effect(void)
+static void BattleAICmd_if_effect(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].effect == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1387,7 +1667,7 @@ void BattleAICmd_if_effect(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_effect(void)
+static void BattleAICmd_if_not_effect(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].effect != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1395,7 +1675,7 @@ void BattleAICmd_if_not_effect(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_stat_level_less_than(void)
+static void BattleAICmd_if_stat_level_less_than(void)
{
u32 party;
@@ -1410,7 +1690,7 @@ void BattleAICmd_if_stat_level_less_than(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_stat_level_more_than(void)
+static void BattleAICmd_if_stat_level_more_than(void)
{
u32 party;
@@ -1425,7 +1705,7 @@ void BattleAICmd_if_stat_level_more_than(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_stat_level_equal(void)
+static void BattleAICmd_if_stat_level_equal(void)
{
u32 party;
@@ -1440,7 +1720,7 @@ void BattleAICmd_if_stat_level_equal(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_stat_level_not_equal(void)
+static void BattleAICmd_if_stat_level_not_equal(void)
{
u32 party;
@@ -1455,7 +1735,7 @@ void BattleAICmd_if_stat_level_not_equal(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_can_faint(void)
+static void BattleAICmd_if_can_faint(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].power < 2)
{
@@ -1465,25 +1745,25 @@ void BattleAICmd_if_can_faint(void)
gUnknown_02024DEC = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
gUnknown_02024BE6 = gAIThinkingSpace.unk2;
sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08);
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
- gUnknown_02024BEC = gUnknown_02024BEC * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
+ gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
// moves always do at least 1 damage.
- if(gUnknown_02024BEC == 0)
- gUnknown_02024BEC = 1;
+ if(gBattleMoveDamage == 0)
+ gBattleMoveDamage = 1;
- if(gBattleMons[gUnknown_02024C08].hp <= gUnknown_02024BEC)
+ if(gBattleMons[gUnknown_02024C08].hp <= gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
-void BattleAICmd_if_cant_faint(void)
+static void BattleAICmd_if_cant_faint(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].power < 2)
{
@@ -1494,23 +1774,23 @@ void BattleAICmd_if_cant_faint(void)
gUnknown_02024DEC = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
gUnknown_02024BE6 = gAIThinkingSpace.unk2;
sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08);
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
- gUnknown_02024BEC = gUnknown_02024BEC * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
+ gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
// this macro is missing the damage 0 = 1 assumption.
- if(gBattleMons[gUnknown_02024C08].hp > gUnknown_02024BEC)
+ if(gBattleMons[gUnknown_02024C08].hp > gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
-void BattleAICmd_unk_3F(void)
+static void BattleAICmd_unk_3F(void)
{
int i;
u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2);
@@ -1554,7 +1834,7 @@ void BattleAICmd_unk_3F(void)
}
}
-void BattleAICmd_unk_40(void)
+static void BattleAICmd_unk_40(void)
{
int i;
u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2);
@@ -1598,7 +1878,7 @@ void BattleAICmd_unk_40(void)
}
}
-void BattleAICmd_if_move_effect(void)
+static void BattleAICmd_if_move_effect(void)
{
int i;
@@ -1627,7 +1907,7 @@ void BattleAICmd_if_move_effect(void)
}
}
-void BattleAICmd_if_not_move_effect(void)
+static void BattleAICmd_if_not_move_effect(void)
{
int i;
@@ -1656,7 +1936,7 @@ void BattleAICmd_if_not_move_effect(void)
}
}
-void BattleAICmd_if_last_move_did_damage(void)
+static void BattleAICmd_if_last_move_did_damage(void)
{
u8 var;
@@ -1688,7 +1968,7 @@ void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_encored(void)
+static void BattleAICmd_if_encored(void)
{
switch(gAIScriptPtr[1])
{
@@ -1714,12 +1994,12 @@ void BattleAICmd_if_encored(void)
}
}
-void BattleAICmd_unk_45(void)
+static void BattleAICmd_unk_45(void)
{
gAIThinkingSpace.unk10 |= 0xB;
}
-void BattleAICmd_if_random_2(void)
+static void BattleAICmd_if_random_2(void)
{
u8 var = battle_2000000.unk88 * 5;
@@ -1729,12 +2009,12 @@ void BattleAICmd_if_random_2(void)
gAIScriptPtr += 5;
}
-void BattleAICmd_unk_47(void)
+static void BattleAICmd_unk_47(void)
{
gAIThinkingSpace.unk10 |= 0xD;
}
-void BattleAICmd_get_hold_effect(void)
+static void BattleAICmd_get_hold_effect(void)
{
u8 var;
u16 status;
@@ -1758,7 +2038,7 @@ void BattleAICmd_get_hold_effect(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_get_gender(void)
+static void BattleAICmd_get_gender(void)
{
u8 var;
@@ -1772,7 +2052,7 @@ void BattleAICmd_get_gender(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_is_first_turn(void)
+static void BattleAICmd_is_first_turn(void)
{
u8 var;
@@ -1786,7 +2066,7 @@ void BattleAICmd_is_first_turn(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_get_stockpile_count(void)
+static void BattleAICmd_get_stockpile_count(void)
{
u8 var;
@@ -1800,14 +2080,14 @@ void BattleAICmd_get_stockpile_count(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_4C(void)
+static void BattleAICmd_unk_4C(void)
{
gAIThinkingSpace.funcResult = gBattleTypeFlags & 1;
gAIScriptPtr += 1;
}
-void BattleAICmd_get_item(void)
+static void BattleAICmd_get_item(void)
{
u8 var;
@@ -1822,28 +2102,28 @@ void BattleAICmd_get_item(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_4E(void)
+static void BattleAICmd_unk_4E(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].type;
gAIScriptPtr += 1;
}
-void BattleAICmd_unk_4F(void)
+static void BattleAICmd_unk_4F(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].power;
gAIScriptPtr += 1;
}
-void BattleAICmd_unk_50(void)
+static void BattleAICmd_unk_50(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].effect;
gAIScriptPtr += 1;
}
-void BattleAICmd_get_protect_count(void)
+static void BattleAICmd_get_protect_count(void)
{
u8 var;
@@ -1857,36 +2137,36 @@ void BattleAICmd_get_protect_count(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_52(void) {}
+static void BattleAICmd_unk_52(void) {}
-void BattleAICmd_unk_53(void) {}
+static void BattleAICmd_unk_53(void) {}
-void BattleAICmd_unk_54(void) {}
+static void BattleAICmd_unk_54(void) {}
-void BattleAICmd_unk_55(void) {}
+static void BattleAICmd_unk_55(void) {}
-void BattleAICmd_unk_56(void) {}
+static void BattleAICmd_unk_56(void) {}
-void BattleAICmd_unk_57(void) {}
+static void BattleAICmd_unk_57(void) {}
-void BattleAICmd_call(void)
+static void BattleAICmd_call(void)
{
sub_81098C4(gAIScriptPtr + 5);
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_jump(void)
+static void BattleAICmd_jump(void)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_unk_5A(void)
+static void BattleAICmd_unk_5A(void)
{
if(sub_8109908() == 0)
gAIThinkingSpace.unk10 |= 1;
}
-void BattleAICmd_if_level_cond(void)
+static void BattleAICmd_if_level_cond(void)
{
switch(gAIScriptPtr[1])
{
@@ -1917,7 +2197,7 @@ void BattleAICmd_if_level_cond(void)
}
}
-void BattleAICmd_if_taunted(void)
+static void BattleAICmd_if_taunted(void)
{
if(gUnknown_02024CA8[gUnknown_02024C08].taunt)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -1925,7 +2205,7 @@ void BattleAICmd_if_taunted(void)
gAIScriptPtr += 5;
}
-void BattleAICmd_if_not_taunted(void)
+static void BattleAICmd_if_not_taunted(void)
{
if(!(gUnknown_02024CA8[gUnknown_02024C08].taunt))
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);