summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/constants/battle.h14
-rw-r--r--src/battle_ai_script_commands.c4
-rw-r--r--src/battle_main.c8
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_script_commands.c2
-rw-r--r--src/battle_setup.c6
-rw-r--r--src/battle_util.c4
-rw-r--r--src/reshow_battle_screen.c4
8 files changed, 23 insertions, 21 deletions
diff --git a/include/constants/battle.h b/include/constants/battle.h
index c273b9a50..b28955210 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -58,14 +58,15 @@
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_GHOST_UNVEILED 0x2000 // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST
#define BATTLE_TYPE_REGI 0x4000
#define BATTLE_TYPE_GHOST 0x8000
#define BATTLE_TYPE_POKEDUDE 0x10000
-#define BATTLE_TYPE_PALACE 0x20000 // TODO: Update name
-#define BATTLE_TYPE_ARENA 0x40000 // TOOD: Update name
+#define BATTLE_TYPE_WILD_SCRIPTED 0x20000
+#define BATTLE_TYPE_LEGENDARY_FRLG 0x40000
#define BATTLE_TYPE_TRAINER_TOWER 0x80000
-#define BATTLE_TYPE_PIKE 0x100000
-#define BATTLE_TYPE_PYRAMID 0x200000
+#define BATTLE_TYPE_x100000 0x100000
+#define BATTLE_TYPE_x200000 0x200000
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
#define BATTLE_TYPE_x800000 0x800000
#define BATTLE_TYPE_RECORDED 0x1000000
@@ -76,8 +77,9 @@
#define BATTLE_TYPE_KYOGRE 0x20000000
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
-#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
-#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
+
+#define IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && !((flags) & BATTLE_TYPE_GHOST_UNVEILED))
+#define IS_BATTLE_TYPE_GHOST_WITH_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && (flags) & BATTLE_TYPE_GHOST_UNVEILED)
// Battle Outcome defines
#define B_OUTCOME_WON 0x1
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 8bd90ef2d..a8bc439f4 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -343,12 +343,12 @@ void BattleAI_SetupAIData(void)
}
else if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)) && (gTrainerBattleOpponent_A != SECRET_BASE_OPPONENT))
{
- if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
+ if (gBattleTypeFlags & BATTLE_TYPE_WILD_SCRIPTED)
{
AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_CHECK_BAD_MOVE;
return;
}
- else if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
+ else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY_FRLG)
{
AI_THINKING_STRUCT->aiFlags = (AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY);
return;
diff --git a/src/battle_main.c b/src/battle_main.c
index 9f3477659..51509513f 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -2559,9 +2559,9 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
{
if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
{
- if (gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY))
+ if (gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_GHOST_UNVEILED))
{
- if ((gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY)) != BATTLE_TYPE_GHOST)
+ if (!IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags))
HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
}
else if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
@@ -2674,7 +2674,7 @@ static void BattleIntroPrintWildMonAttacked(void)
{
gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
PrepareStringBattle(STRINGID_INTROMSG, 0);
- if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST))
+ if (IS_BATTLE_TYPE_GHOST_WITH_SCOPE(gBattleTypeFlags))
{
gBattleScripting.battler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
BattleScriptExecute(BattleScript_SilphScopeUnveiled);
@@ -4183,7 +4183,7 @@ bool8 TryRunFromBattle(u8 battler)
gProtectStructs[battler].fleeFlag = 2;
++effect;
}
- else if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
+ else if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags))
{
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
++effect;
diff --git a/src/battle_message.c b/src/battle_message.c
index 568682031..c4faf73f9 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -1516,7 +1516,7 @@ void BufferStringBattle(u16 stringId)
{
if (gBattleTypeFlags & BATTLE_TYPE_GHOST)
{
- if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
+ if (gBattleTypeFlags & BATTLE_TYPE_GHOST_UNVEILED)
stringPtr = gUnknown_83FD30D;
else
stringPtr = gUnknown_83FD2D9;
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 3b9270948..527e32bcc 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -7352,7 +7352,7 @@ static void atk95_setsandstorm(void)
static void atk96_weatherdamage(void)
{
- if (((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
+ if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags)
&& (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT))
{
gBattleMoveDamage = 0;
diff --git a/src/battle_setup.c b/src/battle_setup.c
index a46191509..4859b9234 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -301,7 +301,7 @@ void BattleSetup_StartScriptedWildBattle(void)
{
ScriptContext2_Enable();
gMain.savedCallback = CB2_EndScriptedWildBattle;
- gBattleTypeFlags = BATTLE_TYPE_PALACE;
+ gBattleTypeFlags = BATTLE_TYPE_WILD_SCRIPTED;
CreateBattleStartTask(GetWildBattleTransition(), 0);
IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
IncrementGameStat(GAME_STAT_WILD_BATTLES);
@@ -313,7 +313,7 @@ void ScrSpecial_StartMarowakBattle(void)
gMain.savedCallback = CB2_EndMarowakBattle;
if (CheckBagHasItem(ITEM_SILPH_SCOPE, 1))
{
- gBattleTypeFlags = BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY;
+ gBattleTypeFlags = BATTLE_TYPE_GHOST | BATTLE_TYPE_GHOST_UNVEILED;
CreateMonWithGenderNatureLetter(gEnemyParty, SPECIES_MAROWAK, 30, 31, MON_FEMALE, NATURE_SERIOUS, 0);
}
else
@@ -342,7 +342,7 @@ void Special_StartLegendaryBattle(void)
ScriptContext2_Enable();
gMain.savedCallback = CB2_EndScriptedWildBattle;
- gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_ARENA;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_LEGENDARY_FRLG;
species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES);
switch (species)
{
diff --git a/src/battle_util.c b/src/battle_util.c
index b415f6550..d28e524a8 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -1382,7 +1382,7 @@ u8 AtkCanceller_UnableToUseMove(void)
++gBattleStruct->atkCancellerTracker;
break;
case CANCELLER_GHOST: // GHOST in pokemon tower
- if ((gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY)) == BATTLE_TYPE_GHOST)
+ if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags))
{
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
gBattlescriptCurrInstr = BattleScript_TooScaredToMove;
@@ -1616,7 +1616,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
if (!moveArg)
moveArg = gCurrentMove;
GET_MOVE_TYPE(moveArg, moveType);
- if ((gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY)) == BATTLE_TYPE_GHOST
+ if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags)
&& (gLastUsedAbility == ABILITY_INTIMIDATE || gLastUsedAbility == ABILITY_TRACE))
return effect;
switch (caseID)
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index 5ab38e461..ebfd18493 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -202,7 +202,7 @@ static bool8 LoadBattlerSpriteGfx(u8 battler)
{
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
{
- if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
+ if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags))
DecompressGhostFrontPic(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
@@ -228,7 +228,7 @@ static void CreateBattlerSprite(u8 battler)
{
u8 posY;
- if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
+ if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags))
posY = GetGhostSpriteDefault_Y(battler);
else if (gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
posY = GetSubstituteSpriteDefault_Y(battler);