summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_ai_script_commands.c6
-rw-r--r--src/battle_dome.c14
-rw-r--r--src/battle_factory_screen.c6
-rw-r--r--src/battle_pyramid.c8
-rw-r--r--src/battle_script_commands.c2
-rw-r--r--src/battle_tower.c28
-rw-r--r--src/battle_util.c9
-rw-r--r--src/berry_blender.c10
-rw-r--r--src/contest_ai.c10
-rw-r--r--src/data.c5
-rw-r--r--src/data/battle_moves.h340
-rw-r--r--src/data/graphics/trainers.h8
-rw-r--r--src/data/trainer_graphics/back_pic_tables.h20
-rw-r--r--src/data/trainer_graphics/front_pic_tables.h4
-rw-r--r--src/daycare.c16
-rw-r--r--src/field_effect.c13
-rw-r--r--src/frontier_pass.c3
-rw-r--r--src/frontier_util.c14
-rw-r--r--src/m4a.c319
-rw-r--r--src/m4a_1.s440
-rw-r--r--src/match_call.c10
-rw-r--r--src/menu.c43
-rw-r--r--src/metatile_behavior.c9
-rw-r--r--src/pokemon.c5
-rw-r--r--src/pokemon_animation.c9
-rw-r--r--src/pokemon_storage_system.c5
-rw-r--r--src/pokemon_summary_screen.c10
-rw-r--r--src/region_map.c4
-rw-r--r--src/roulette.c5
-rw-r--r--src/union_room.c10
30 files changed, 745 insertions, 640 deletions
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 4adb39a5d..b7679429c 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -1613,8 +1613,10 @@ static void Cmd_if_status_not_in_party(void)
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
{
- gAIScriptPtr += 10; // UB: Still bugged in Emerald. Uncomment the return statement to fix.
- // return;
+ gAIScriptPtr += 10;
+ #ifdef UBFIX
+ return;
+ #endif
}
}
diff --git a/src/battle_dome.c b/src/battle_dome.c
index ce2f3cde6..0d1bee8cf 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -863,7 +863,9 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] =
.paletteNum = 15,
.baseBlock = 372,
},
- // UB: No DUMMY_WIN_TEMPLATE at the array's end.
+ #ifdef UBFIX
+ DUMMY_WIN_TEMPLATE,
+ #endif
};
static const struct ScanlineEffectParams sTourneyTreeScanlineEffectParams =
@@ -2526,7 +2528,11 @@ static void CreateDomeOpponentMon(u8 monPartyId, u16 tournamentTrainerId, u8 tou
{
int i;
u8 friendship = MAX_FRIENDSHIP;
- u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using (DOME_TRAINERS[tournamentTrainerId].trainerId) instead of (tournamentTrainerId). As a result, all Pokemon have ivs of 3.
+ #ifdef BUGFIX
+ u8 fixedIv = GetDomeTrainerMonIvs(DOME_TRAINERS[tournamentTrainerId].trainerId);
+ #else
+ u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Using the wrong ID. As a result, all Pokemon have ivs of 3.
+ #endif
u8 level = SetFacilityPtrsGetLevel();
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[monPartyId],
gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].species,
@@ -5964,6 +5970,10 @@ static void DecideRoundWinners(u8 roundId)
else if (tournamentId2 != 0xFF)
{
// BUG: points1 and points2 are not cleared at the beginning of the loop resulting in not fair results.
+ #ifdef BUGFIX
+ points1 = 0;
+ points2 = 0;
+ #endif
// Calculate points for both trainers.
for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++)
diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c
index c10bbc5e4..ba1e39006 100644
--- a/src/battle_factory_screen.c
+++ b/src/battle_factory_screen.c
@@ -3905,7 +3905,11 @@ static void Swap_ShowSummaryMonSprite(void)
personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
- sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF); // BUG: otId and personality should be switched.
+ #ifdef BUGFIX
+ sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF);
+ #else
+ sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF);
+ #endif
gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0;
gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0;
diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c
index 1b220f145..ac6d95338 100644
--- a/src/battle_pyramid.c
+++ b/src/battle_pyramid.c
@@ -1757,7 +1757,9 @@ static bool8 SetPyramidObjectPositionsInAndNearSquare(u8 objType, u8 squareId)
r7 &= 1;
}
- // free(floorLayoutOffsets); BUG: floorLayoutOffsets memory not freed
+ #ifdef BUGFIX
+ free(floorLayoutOffsets);
+ #endif
return (numObjects / 2) > numPlacedObjects;
}
@@ -1809,7 +1811,9 @@ static bool8 SetPyramidObjectPositionsNearSquare(u8 objType, u8 squareId)
if (r8 == 4)
break;
}
- // free(floorLayoutOffsets); BUG: floorLayoutOffsets memory not freed
+ #ifdef BUGFIX
+ free(floorLayoutOffsets);
+ #endif
return (numObjects / 2) > numPlacedObjects;
}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 46ad706d7..6ec9d16b1 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -953,7 +953,7 @@ static void Cmd_attackcanceler(void)
gHitMarker |= HITMARKER_OBEYS;
- if (gProtectStructs[gBattlerTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED)
+ if (gProtectStructs[gBattlerTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGIC_COAT_AFFECTED)
{
PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT);
gProtectStructs[gBattlerTarget].bounceMove = 0;
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 6fc0cd5be..d7123f3d2 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -1336,10 +1336,15 @@ void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm)
{
for (k = 0; k < PLAYER_NAME_LENGTH; k++)
{
- // BUG: Wrong variable used, 'j' instead of 'k'.
+ #ifdef BUGFIX
+ if (gSaveBlock2Ptr->frontier.towerRecords[i].name[k] != newRecord->name[k])
+ break;
+ if (newRecord->name[k] == EOS)
+ #else
if (gSaveBlock2Ptr->frontier.towerRecords[i].name[j] != newRecord->name[j])
break;
if (newRecord->name[j] == EOS)
+ #endif
{
k = PLAYER_NAME_LENGTH;
break;
@@ -2956,7 +2961,12 @@ static void FillPartnerParty(u16 trainerId)
sStevenMons[i].species,
sStevenMons[i].level,
sStevenMons[i].fixedIV,
- TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.
+ TRUE,
+ #ifdef BUGFIX
+ j,
+ #else
+ i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.
+ #endif
OT_ID_PRESET, STEVEN_OTID);
for (j = 0; j < PARTY_SIZE; j++)
SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]);
@@ -3062,9 +3072,12 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em
{
dst->lvlMode = src->lvlMode;
dst->winStreak = src->winStreak;
- // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries.
- // Fix by using ARRAY_COUNT(sRubyFacilityClassToEmerald)
+ // UB: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries.
+ #ifdef UBFIX
+ for (i = 0; i < ARRAY_COUNT(sRubyFacilityClassToEmerald); i++)
+ #else
for (i = 0; i < FACILITY_CLASSES_COUNT; i++)
+ #endif
{
if (sRubyFacilityClassToEmerald[i][0] == src->facilityClass)
break;
@@ -3112,9 +3125,12 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru
{
dst->lvlMode = src->lvlMode;
dst->winStreak = src->winStreak;
- // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries.
- // Fix by using ARRAY_COUNT(sRubyFacilityClassToEmerald) instead
+ // UB: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries.
+ #ifdef UBFIX
+ for (i = 0; i < ARRAY_COUNT(sRubyFacilityClassToEmerald); i++)
+ #else
for (i = 0; i < FACILITY_CLASSES_COUNT; i++)
+ #endif
{
if (sRubyFacilityClassToEmerald[i][1] == src->facilityClass)
break;
diff --git a/src/battle_util.c b/src/battle_util.c
index 7025f0e3f..e929de091 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -536,9 +536,12 @@ void HandleAction_ThrowPokeblock(void)
gBattleStruct->safariPkblThrowCounter++;
if (gBattleStruct->safariEscapeFactor > 1)
{
- // BUG: The safariEscapeFactor is unintetionally able to become 0 (but it can not become negative!). This causes the pokeblock throw glitch.
- // To fix that change the < in the if statement below to <=.
+ // BUG: safariEscapeFactor can become 0 below. This causes the pokeblock throw glitch.
+ #ifdef BUGFIX
+ if (gBattleStruct->safariEscapeFactor <= sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
+ #else
if (gBattleStruct->safariEscapeFactor < sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
+ #endif
gBattleStruct->safariEscapeFactor = 1;
else
gBattleStruct->safariEscapeFactor -= sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]];
@@ -3818,7 +3821,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
&& TARGET_TURN_DAMAGED
&& (Random() % 100) < atkHoldEffectParam
- && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED
+ && gBattleMoves[gCurrentMove].flags & FLAG_KINGS_ROCK_AFFECTED
&& gBattleMons[gBattlerTarget].hp)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 16ba42bd7..573affbd5 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -1852,7 +1852,9 @@ static void Task_HandleOpponent1(u8 taskId)
gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
// BUG: Overrwrote above assignment. Opponent 1 can't get Best at low speed
+ #ifndef BUGFIX
gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
+ #endif
}
else if (sBerryBlender->speed < 1500)
{
@@ -2131,11 +2133,17 @@ static void UpdateOpponentScores(void)
sBerryBlender->scores[i][SCORE_MISS]++;
}
- // BUG: Should [i][BLENDER_COMM_SCORE] below, not [BLENDER_COMM_SCORE][i]
+ // BUG: Should be [i][BLENDER_COMM_SCORE] below, not [BLENDER_COMM_SCORE][i]
// As a result the music tempo updates if any player misses, but only if 1 specific player hits
+ #ifdef BUGFIX
+ if (gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_MISS
+ || gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_BEST
+ || gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_GOOD)
+ #else
if (gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_MISS
|| gRecvCmds[BLENDER_COMM_SCORE][i] == LINKCMD_BLENDER_SCORE_BEST
|| gRecvCmds[BLENDER_COMM_SCORE][i] == LINKCMD_BLENDER_SCORE_GOOD)
+ #endif
{
if (sBerryBlender->speed > 1500)
m4aMPlayTempoControl(&gMPlayInfo_BGM, ((sBerryBlender->speed - 750) / 20) + 256);
diff --git a/src/contest_ai.c b/src/contest_ai.c
index 2f048718f..8fe339790 100644
--- a/src/contest_ai.c
+++ b/src/contest_ai.c
@@ -1734,8 +1734,9 @@ static void ContestAICmd_if_user_doesnt_have_exciting_move(void)
// they're checking for an effect. Checking for a specific effect would make more sense,
// but given that effects are normally read as a single byte and this reads 2 bytes, it
// seems reading a move was intended and the AI script is using it incorrectly.
-// In any case, to fix it to correctly check for effects replace the u16 move assignment with
-// u16 move = gContestMoves[gContestMons[eContestAI.contestantId].moves[i]].effect;
+// The fix below aligns the function with how it's used by the script, rather than the apparent
+// intention of its usage
+
static void ContestAICmd_check_user_has_move(void)
{
int hasMove = FALSE;
@@ -1744,7 +1745,12 @@ static void ContestAICmd_check_user_has_move(void)
for (i = 0; i < MAX_MON_MOVES; i++)
{
+ #ifdef BUGFIX
+ u16 move = gContestMoves[gContestMons[eContestAI.contestantId].moves[i]].effect;
+ #else
u16 move = gContestMons[eContestAI.contestantId].moves[i];
+ #endif
+
if (move == targetMove)
{
hasMove = TRUE;
diff --git a/src/data.c b/src/data.c
index 29d1835ac..4861da18b 100644
--- a/src/data.c
+++ b/src/data.c
@@ -295,11 +295,6 @@ const union AnimCmd *const gUnknown_082FF70C[] =
#define SPECIES_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species}
#define SPECIES_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + SPECIES_SHINY_TAG}
-#define TRAINER_SPRITE(trainerPic, sprite, size) [TRAINER_PIC_##trainerPic] = {sprite, size, TRAINER_PIC_##trainerPic}
-#define TRAINER_PAL(trainerPic, pal) [TRAINER_PIC_##trainerPic] = {pal, TRAINER_PIC_##trainerPic}
-
-#define TRAINER_BACK_PAL(trainerPic, pal) [TRAINER_BACK_PIC_##trainerPic] = {pal, TRAINER_BACK_PIC_##trainerPic}
-
#include "data/pokemon_graphics/unknown_anims.h"
#include "data/pokemon_graphics/front_pic_coordinates.h"
#include "data/pokemon_graphics/still_front_pic_table.h"
diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h
index 008d7d784..f78fa2c8c 100644
--- a/src/data/battle_moves.h
+++ b/src/data/battle_moves.h
@@ -23,7 +23,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_KARATE_CHOP] =
@@ -36,7 +36,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DOUBLE_SLAP] =
@@ -49,7 +49,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_COMET_PUNCH] =
@@ -62,7 +62,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MEGA_PUNCH] =
@@ -75,7 +75,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_PAY_DAY] =
@@ -88,7 +88,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FIRE_PUNCH] =
@@ -140,7 +140,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_VICE_GRIP] =
@@ -153,7 +153,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_GUILLOTINE] =
@@ -179,7 +179,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SWORDS_DANCE] =
@@ -205,7 +205,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_GUST] =
@@ -218,7 +218,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_WING_ATTACK] =
@@ -231,7 +231,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_WHIRLWIND] =
@@ -257,7 +257,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BIND] =
@@ -270,7 +270,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SLAM] =
@@ -283,7 +283,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_VINE_WHIP] =
@@ -296,7 +296,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_STOMP] =
@@ -322,7 +322,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MEGA_KICK] =
@@ -335,7 +335,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_JUMP_KICK] =
@@ -348,7 +348,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ROLLING_KICK] =
@@ -361,7 +361,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SAND_ATTACK] =
@@ -374,7 +374,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_HEADBUTT] =
@@ -400,7 +400,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FURY_ATTACK] =
@@ -413,7 +413,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_HORN_DRILL] =
@@ -439,7 +439,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BODY_SLAM] =
@@ -465,7 +465,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_TAKE_DOWN] =
@@ -478,7 +478,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_THRASH] =
@@ -491,7 +491,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DOUBLE_EDGE] =
@@ -504,7 +504,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_TAIL_WHIP] =
@@ -517,7 +517,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_POISON_STING] =
@@ -556,7 +556,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_LEER] =
@@ -569,7 +569,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_BITE] =
@@ -595,7 +595,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_ROAR] =
@@ -621,7 +621,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_SUPERSONIC] =
@@ -634,7 +634,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_SONIC_BOOM] =
@@ -647,7 +647,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DISABLE] =
@@ -725,7 +725,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_HYDRO_PUMP] =
@@ -738,7 +738,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SURF] =
@@ -751,7 +751,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ICE_BEAM] =
@@ -829,7 +829,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_PECK] =
@@ -842,7 +842,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DRILL_PECK] =
@@ -855,7 +855,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SUBMISSION] =
@@ -868,7 +868,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_LOW_KICK] =
@@ -881,7 +881,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_COUNTER] =
@@ -907,7 +907,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_STRENGTH] =
@@ -920,7 +920,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ABSORB] =
@@ -959,7 +959,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_GROWTH] =
@@ -985,7 +985,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SOLAR_BEAM] =
@@ -998,7 +998,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_POISON_POWDER] =
@@ -1011,7 +1011,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_STUN_SPORE] =
@@ -1024,7 +1024,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_SLEEP_POWDER] =
@@ -1037,7 +1037,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_PETAL_DANCE] =
@@ -1050,7 +1050,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_STRING_SHOT] =
@@ -1063,7 +1063,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_DRAGON_RAGE] =
@@ -1076,7 +1076,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FIRE_SPIN] =
@@ -1089,7 +1089,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_THUNDER_SHOCK] =
@@ -1128,7 +1128,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_THUNDER] =
@@ -1154,7 +1154,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_EARTHQUAKE] =
@@ -1167,7 +1167,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FISSURE] =
@@ -1193,7 +1193,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_TOXIC] =
@@ -1206,7 +1206,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_CONFUSION] =
@@ -1245,7 +1245,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_MEDITATE] =
@@ -1284,7 +1284,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_RAGE] =
@@ -1297,7 +1297,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_TELEPORT] =
@@ -1323,7 +1323,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MIMIC] =
@@ -1349,7 +1349,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_DOUBLE_TEAM] =
@@ -1414,7 +1414,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_CONFUSE_RAY] =
@@ -1427,7 +1427,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_WITHDRAW] =
@@ -1531,7 +1531,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_USER,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_METRONOME] =
@@ -1570,7 +1570,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_EGG_BOMB] =
@@ -1583,7 +1583,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_LICK] =
@@ -1661,7 +1661,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_CLAMP] =
@@ -1674,7 +1674,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SWIFT] =
@@ -1687,7 +1687,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SKULL_BASH] =
@@ -1700,7 +1700,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SPIKE_CANNON] =
@@ -1713,7 +1713,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_CONSTRICT] =
@@ -1778,7 +1778,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_GLARE] =
@@ -1791,7 +1791,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_DREAM_EATER] =
@@ -1817,7 +1817,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_BARRAGE] =
@@ -1830,7 +1830,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_LEECH_LIFE] =
@@ -1856,7 +1856,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_SKY_ATTACK] =
@@ -1869,7 +1869,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_TRANSFORM] =
@@ -1921,7 +1921,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_FLASH] =
@@ -1934,7 +1934,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_PSYWAVE] =
@@ -1947,7 +1947,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SPLASH] =
@@ -1986,7 +1986,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_EXPLOSION] =
@@ -1999,7 +1999,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FURY_SWIPES] =
@@ -2012,7 +2012,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BONEMERANG] =
@@ -2025,7 +2025,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_REST] =
@@ -2129,7 +2129,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SUBSTITUTE] =
@@ -2155,7 +2155,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SKETCH] =
@@ -2181,7 +2181,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_THIEF] =
@@ -2207,7 +2207,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_MIND_READER] =
@@ -2259,7 +2259,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_CURSE] =
@@ -2285,7 +2285,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_CONVERSION_2] =
@@ -2311,7 +2311,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_COTTON_SPORE] =
@@ -2324,7 +2324,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_REVERSAL] =
@@ -2337,7 +2337,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SPITE] =
@@ -2389,7 +2389,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SCARY_FACE] =
@@ -2402,7 +2402,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_FAINT_ATTACK] =
@@ -2415,7 +2415,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SWEET_KISS] =
@@ -2428,7 +2428,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_BELLY_DRUM] =
@@ -2584,7 +2584,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_LOCK_ON] =
@@ -2610,7 +2610,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SANDSTORM] =
@@ -2662,7 +2662,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_ROLLOUT] =
@@ -2675,7 +2675,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FALSE_SWIPE] =
@@ -2688,7 +2688,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SWAGGER] =
@@ -2701,7 +2701,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_MILK_DRINK] =
@@ -2740,7 +2740,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_STEEL_WING] =
@@ -2753,7 +2753,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MEAN_LOOK] =
@@ -2766,7 +2766,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_ATTRACT] =
@@ -2779,7 +2779,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_SLEEP_TALK] =
@@ -2818,7 +2818,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_PRESENT] =
@@ -2844,7 +2844,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SAFEGUARD] =
@@ -2896,7 +2896,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DYNAMIC_PUNCH] =
@@ -2922,7 +2922,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DRAGON_BREATH] =
@@ -2935,7 +2935,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BATON_PASS] =
@@ -2987,7 +2987,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SWEET_SCENT] =
@@ -3000,7 +3000,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_IRON_TAIL] =
@@ -3039,7 +3039,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = -1,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MORNING_SUN] =
@@ -3091,7 +3091,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_CROSS_CHOP] =
@@ -3104,7 +3104,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_TWISTER] =
@@ -3117,7 +3117,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_RAIN_DANCE] =
@@ -3195,7 +3195,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ANCIENT_POWER] =
@@ -3260,7 +3260,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BEAT_UP] =
@@ -3273,7 +3273,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FAKE_OUT] =
@@ -3299,7 +3299,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_STOCKPILE] =
@@ -3325,7 +3325,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SWALLOW] =
@@ -3390,7 +3390,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_WILL_O_WISP] =
@@ -3403,7 +3403,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_MEMENTO] =
@@ -3637,7 +3637,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = -4,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BRICK_BREAK] =
@@ -3650,7 +3650,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_YAWN] =
@@ -3663,7 +3663,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_KNOCK_OFF] =
@@ -3689,7 +3689,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ERUPTION] =
@@ -3702,7 +3702,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SKILL_SWAP] =
@@ -3793,7 +3793,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ARM_THRUST] =
@@ -3806,7 +3806,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_CAMOUFLAGE] =
@@ -3871,7 +3871,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_TEETER_DANCE] =
@@ -3923,7 +3923,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_NEEDLE_ARM] =
@@ -4001,7 +4001,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_HYDRO_CANNON] =
@@ -4014,7 +4014,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_METEOR_MASH] =
@@ -4027,7 +4027,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ASTONISH] =
@@ -4053,7 +4053,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_AROMATHERAPY] =
@@ -4079,7 +4079,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_AIR_CUTTER] =
@@ -4092,7 +4092,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_OVERHEAT] =
@@ -4105,7 +4105,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ODOR_SLEUTH] =
@@ -4144,7 +4144,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_METAL_SOUND] =
@@ -4157,7 +4157,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_GRASS_WHISTLE] =
@@ -4170,7 +4170,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_TICKLE] =
@@ -4183,7 +4183,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_COSMIC_POWER] =
@@ -4222,7 +4222,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SHADOW_PUNCH] =
@@ -4235,7 +4235,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_EXTRASENSORY] =
@@ -4261,7 +4261,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SAND_TOMB] =
@@ -4274,7 +4274,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SHEER_COLD] =
@@ -4300,7 +4300,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 30,
.target = MOVE_TARGET_BOTH,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BULLET_SEED] =
@@ -4313,7 +4313,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_AERIAL_ACE] =
@@ -4326,7 +4326,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_ICICLE_SPEAR] =
@@ -4339,7 +4339,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_IRON_DEFENSE] =
@@ -4365,7 +4365,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
},
[MOVE_HOWL] =
@@ -4391,7 +4391,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_FRENZY_PLANT] =
@@ -4404,7 +4404,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_BULK_UP] =
@@ -4430,7 +4430,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MUD_SHOT] =
@@ -4443,7 +4443,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_POISON_TAIL] =
@@ -4456,7 +4456,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_COVET] =
@@ -4482,7 +4482,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_MAGICAL_LEAF] =
@@ -4495,7 +4495,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_WATER_SPORT] =
@@ -4534,7 +4534,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DRAGON_DANCE] =
@@ -4560,7 +4560,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_SHOCK_WAVE] =
@@ -4573,7 +4573,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_WATER_PULSE] =
@@ -4586,7 +4586,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
[MOVE_DOOM_DESIRE] =
@@ -4612,6 +4612,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
- .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
+ .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
},
};
diff --git a/src/data/graphics/trainers.h b/src/data/graphics/trainers.h
index 3de77d6ec..206d73a88 100644
--- a/src/data/graphics/trainers.h
+++ b/src/data/graphics/trainers.h
@@ -7,8 +7,8 @@ const u32 gTrainerPalette_AquaGruntM[] = INCBIN_U32("graphics/trainers/palettes/
const u32 gTrainerFrontPic_PokemonBreederF[] = INCBIN_U32("graphics/trainers/front_pics/pokemon_breeder_f_front_pic.4bpp.lz");
const u32 gTrainerPalette_PokemonBreederF[] = INCBIN_U32("graphics/trainers/palettes/pokemon_breeder_f.gbapal.lz");
-const u32 gTrainerFrontPic_CoolTrainerM[] = INCBIN_U32("graphics/trainers/front_pics/cool_trainer_m_front_pic.4bpp.lz");
-const u32 gTrainerPalette_CoolTrainerM[] = INCBIN_U32("graphics/trainers/palettes/cool_trainer_m.gbapal.lz");
+const u32 gTrainerFrontPic_CoolTrainerM[] = INCBIN_U32("graphics/trainers/front_pics/cooltrainer_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CoolTrainerM[] = INCBIN_U32("graphics/trainers/palettes/cooltrainer_m.gbapal.lz");
const u32 gTrainerFrontPic_BirdKeeper[] = INCBIN_U32("graphics/trainers/front_pics/bird_keeper_front_pic.4bpp.lz");
const u32 gTrainerPalette_BirdKeeper[] = INCBIN_U32("graphics/trainers/palettes/bird_keeper.gbapal.lz");
@@ -58,8 +58,8 @@ const u32 gTrainerPalette_TuberF[] = INCBIN_U32("graphics/trainers/palettes/tube
const u32 gTrainerFrontPic_TuberM[] = INCBIN_U32("graphics/trainers/front_pics/tuber_m_front_pic.4bpp.lz");
const u32 gTrainerPalette_TuberM[] = INCBIN_U32("graphics/trainers/palettes/tuber_m.gbapal.lz");
-const u32 gTrainerFrontPic_CoolTrainerF[] = INCBIN_U32("graphics/trainers/front_pics/cool_trainer_f_front_pic.4bpp.lz");
-const u32 gTrainerPalette_CoolTrainerF[] = INCBIN_U32("graphics/trainers/palettes/cool_trainer_f.gbapal.lz");
+const u32 gTrainerFrontPic_CoolTrainerF[] = INCBIN_U32("graphics/trainers/front_pics/cooltrainer_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CoolTrainerF[] = INCBIN_U32("graphics/trainers/palettes/cooltrainer_f.gbapal.lz");
const u32 gTrainerFrontPic_Lady[] = INCBIN_U32("graphics/trainers/front_pics/lady_front_pic.4bpp.lz");
const u32 gTrainerPalette_Lady[] = INCBIN_U32("graphics/trainers/palettes/lady.gbapal.lz");
diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h
index 86efd7905..1dbffba42 100644
--- a/src/data/trainer_graphics/back_pic_tables.h
+++ b/src/data/trainer_graphics/back_pic_tables.h
@@ -13,18 +13,22 @@ const struct MonCoords gTrainerBackPicCoords[] =
// this table goes functionally unused, since none of these pics are compressed
// and the place they would get extracted to gets overwritten later anyway
// the casts are so they'll play nice with the strict struct definition
+#define TRAINER_BACK_SPRITE(trainerPic, sprite, size) [TRAINER_BACK_PIC_##trainerPic] = {(const u32 *)sprite, size, TRAINER_BACK_PIC_##trainerPic}
+
const struct CompressedSpriteSheet gTrainerBackPicTable[] =
{
- (const u32 *)gTrainerBackPic_Brendan, 0x2000, TRAINER_BACK_PIC_BRENDAN,
- (const u32 *)gTrainerBackPic_May, 0x2000, TRAINER_BACK_PIC_MAY,
- (const u32 *)gTrainerBackPic_Red, 0x2800, TRAINER_BACK_PIC_RED,
- (const u32 *)gTrainerBackPic_Leaf, 0x2800, TRAINER_BACK_PIC_LEAF,
- (const u32 *)gTrainerBackPic_RubySapphireBrendan, 0x2000, TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN,
- (const u32 *)gTrainerBackPic_RubySapphireMay, 0x2000, TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY,
- (const u32 *)gTrainerBackPic_Wally, 0x2000, TRAINER_BACK_PIC_WALLY,
- (const u32 *)gTrainerBackPic_Steven, 0x2000, TRAINER_BACK_PIC_STEVEN,
+ TRAINER_BACK_SPRITE(BRENDAN, gTrainerBackPic_Brendan, 0x2000),
+ TRAINER_BACK_SPRITE(MAY, gTrainerBackPic_May, 0x2000),
+ TRAINER_BACK_SPRITE(RED, gTrainerBackPic_Red, 0x2800),
+ TRAINER_BACK_SPRITE(LEAF, gTrainerBackPic_Leaf, 0x2800),
+ TRAINER_BACK_SPRITE(RUBY_SAPPHIRE_BRENDAN, gTrainerBackPic_RubySapphireBrendan, 0x2000),
+ TRAINER_BACK_SPRITE(RUBY_SAPPHIRE_MAY, gTrainerBackPic_RubySapphireMay, 0x2000),
+ TRAINER_BACK_SPRITE(WALLY, gTrainerBackPic_Wally, 0x2000),
+ TRAINER_BACK_SPRITE(STEVEN, gTrainerBackPic_Steven, 0x2000),
};
+#define TRAINER_BACK_PAL(trainerPic, pal) [TRAINER_BACK_PIC_##trainerPic] = {pal, TRAINER_BACK_PIC_##trainerPic}
+
const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] =
{
TRAINER_BACK_PAL(BRENDAN, gTrainerPalette_Brendan),
diff --git a/src/data/trainer_graphics/front_pic_tables.h b/src/data/trainer_graphics/front_pic_tables.h
index c3408b4c3..e751f3c1d 100644
--- a/src/data/trainer_graphics/front_pic_tables.h
+++ b/src/data/trainer_graphics/front_pic_tables.h
@@ -95,6 +95,8 @@ const struct MonCoords gTrainerFrontPicCoords[] =
[TRAINER_PIC_RS_MAY] = {.size = 8, .y_offset = 1},
};
+#define TRAINER_SPRITE(trainerPic, sprite, size) [TRAINER_PIC_##trainerPic] = {sprite, size, TRAINER_PIC_##trainerPic}
+
const struct CompressedSpriteSheet gTrainerFrontPicTable[] =
{
TRAINER_SPRITE(HIKER, gTrainerFrontPic_Hiker, 0x800),
@@ -192,6 +194,8 @@ const struct CompressedSpriteSheet gTrainerFrontPicTable[] =
TRAINER_SPRITE(RS_MAY, gTrainerFrontPic_RubySapphireMay, 0x800),
};
+#define TRAINER_PAL(trainerPic, pal) [TRAINER_PIC_##trainerPic] = {pal, TRAINER_PIC_##trainerPic}
+
const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[] =
{
TRAINER_PAL(HIKER, gTrainerPalette_Hiker),
diff --git a/src/daycare.c b/src/daycare.c
index 60bff8f1e..511fa0551 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -547,13 +547,19 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
for (i = 0; i < INHERITED_IV_COUNT; i++)
{
// Randomly pick an IV from the available list and stop from being chosen again.
- selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
- // BUG: Instead of removing the IV that was just picked (like in RS and FRLG), this
+ // BUG: Instead of removing the IV that was just picked, this
// removes position 0 (HP) then position 1 (DEF), then position 2. This is why HP and DEF
// have a lower chance to be inherited in Emerald and why the IV picked for inheritance can
- // be repeated. Uncomment the inline comment and remove the existing expression to get the
- // intended behavior and to match the other Gen 3 games.
- RemoveIVIndexFromList(availableIVs, i /*selectedIvs[i]*/);
+ // be repeated. Amusingly, FRLG and RS also got this wrong. They remove selectedIvs[i], which
+ // is not an index! This means that it can sometimes remove the wrong stat.
+ #ifndef BUGFIX
+ selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
+ RemoveIVIndexFromList(availableIVs, i);
+ #else
+ u8 index = Random() % (NUM_STATS - i);
+ selectedIvs[i] = availableIVs[index];
+ RemoveIVIndexFromList(availableIVs, index);
+ #endif
}
// Determine which parent each of the selected IVs should inherit from.
diff --git a/src/field_effect.c b/src/field_effect.c
index 41f1a899c..5a18557eb 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -3846,7 +3846,6 @@ bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite)
static void Task_MoveDeoxysRock(u8 taskId)
{
- // BUG: Possible divide by zero
s16 *data = gTasks[taskId].data;
struct Sprite *sprite = &gSprites[data[1]];
switch (data[0])
@@ -3854,8 +3853,16 @@ static void Task_MoveDeoxysRock(u8 taskId)
case 0:
data[4] = sprite->pos1.x << 4;
data[5] = sprite->pos1.y << 4;
- data[6] = (data[2] * 16 - data[4]) / data[8];
- data[7] = (data[3] * 16 - data[5]) / data[8];
+
+ // UB: Possible divide by zero
+ #ifdef UBFIX
+ #define DIVISOR (data[8] ? data[8] : 1);
+ #else
+ #define DIVISOR (data[8])
+ #endif
+
+ data[6] = (data[2] * 16 - data[4]) / DIVISOR;
+ data[7] = (data[3] * 16 - data[5]) / DIVISOR;
data[0]++;
case 1:
if (data[8] != 0)
diff --git a/src/frontier_pass.c b/src/frontier_pass.c
index 1b8030149..cf170b350 100644
--- a/src/frontier_pass.c
+++ b/src/frontier_pass.c
@@ -983,6 +983,9 @@ static void Task_HandleFrontierPassInput(u8 taskId)
SetMainCallback2(CB2_HideFrontierPass);
DestroyTask(taskId);
// BUG. The function should return here. Otherwise, it can play the same sound twice and destroy the same task twice.
+ #ifdef BUGFIX
+ return;
+ #endif
}
}
diff --git a/src/frontier_util.c b/src/frontier_util.c
index 83c9341d5..5955d9bf7 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -2383,13 +2383,21 @@ void ClearRankingHallRecords(void)
{
s32 i, j, k;
+ // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ #ifdef BUGFIX
+ u8 zero = 0;
+ #define ZERO (&zero)
+ #else
+ #define ZERO 0
+ #endif
+
for (i = 0; i < HALL_FACILITIES_COUNT; i++)
{
for (j = 0; j < 2; j++)
{
for (k = 0; k < 3; k++)
{
- CopyTrainerId(gSaveBlock2Ptr->hallRecords1P[i][j][k].id, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords1P[i][j][k].id, ZERO);
gSaveBlock2Ptr->hallRecords1P[i][j][k].name[0] = EOS;
gSaveBlock2Ptr->hallRecords1P[i][j][k].winStreak = 0;
}
@@ -2400,8 +2408,8 @@ void ClearRankingHallRecords(void)
{
for (k = 0; k < 3; k++)
{
- CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id1, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
- CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id2, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id1, ZERO);
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id2, ZERO);
gSaveBlock2Ptr->hallRecords2P[j][k].name1[0] = EOS;
gSaveBlock2Ptr->hallRecords2P[j][k].name2[0] = EOS;
gSaveBlock2Ptr->hallRecords2P[j][k].winStreak = 0;
diff --git a/src/m4a.c b/src/m4a.c
index f061ba9b9..e079ba4f6 100644
--- a/src/m4a.c
+++ b/src/m4a.c
@@ -10,7 +10,7 @@ BSS_CODE ALIGNED(4) char SoundMainRAM_Buffer[0x800] = {0};
struct SoundInfo gSoundInfo;
struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES];
struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES];
-void *gMPlayJumpTable[36];
+MPlayFunc gMPlayJumpTable[36];
struct CgbChannel gCgbChans[4];
struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2];
struct PokemonCrySong gPokemonCrySong;
@@ -293,7 +293,7 @@ void MPlayExtender(struct CgbChannel *cgbChans)
gMPlayJumpTable[32] = FadeOutBody;
gMPlayJumpTable[33] = TrkVolPitSet;
- soundInfo->cgbChans = (struct CgbChannel *)cgbChans;
+ soundInfo->cgbChans = cgbChans;
soundInfo->CgbSound = CgbSound;
soundInfo->CgbOscOff = CgbOscOff;
soundInfo->MidiKeyToCgbFreq = MidiKeyToCgbFreq;
@@ -301,13 +301,13 @@ void MPlayExtender(struct CgbChannel *cgbChans)
CpuFill32(0, cgbChans, sizeof(struct CgbChannel) * 4);
- cgbChans[0].ty = 1;
+ cgbChans[0].type = 1;
cgbChans[0].panMask = 0x11;
- cgbChans[1].ty = 2;
+ cgbChans[1].type = 2;
cgbChans[1].panMask = 0x22;
- cgbChans[2].ty = 3;
+ cgbChans[2].type = 3;
cgbChans[2].panMask = 0x44;
- cgbChans[3].ty = 4;
+ cgbChans[3].type = 4;
cgbChans[3].panMask = 0x88;
soundInfo->ident = ident;
@@ -362,15 +362,15 @@ void SoundInit(struct SoundInfo *soundInfo)
soundInfo->maxChans = 8;
soundInfo->masterVolume = 15;
- soundInfo->plynote = (u32)ply_note;
+ soundInfo->plynote = ply_note;
soundInfo->CgbSound = DummyFunc;
- soundInfo->CgbOscOff = (void (*)(u8))DummyFunc;
- soundInfo->MidiKeyToCgbFreq = (u32 (*)(u8, u8, u8))DummyFunc;
- soundInfo->ExtVolPit = (u32)DummyFunc;
+ soundInfo->CgbOscOff = (CgbOscOffFunc)DummyFunc;
+ soundInfo->MidiKeyToCgbFreq = (MidiKeyToCgbFreqFunc)DummyFunc;
+ soundInfo->ExtVolPit = (ExtVolPitFunc)DummyFunc;
MPlayJumpTableCopy(gMPlayJumpTable);
- soundInfo->MPlayJumpTable = (u32)gMPlayJumpTable;
+ soundInfo->MPlayJumpTable = gMPlayJumpTable;
SampleFreqSet(SOUND_MODE_FREQ_13379);
@@ -437,7 +437,7 @@ void m4aSoundMode(u32 mode)
while (temp != 0)
{
- chan->status = 0;
+ chan->statusFlags = 0;
temp--;
chan++;
}
@@ -483,7 +483,7 @@ void SoundClear(void)
while (i > 0)
{
- ((struct SoundChannel *)chan)->status = 0;
+ ((struct SoundChannel *)chan)->statusFlags = 0;
i--;
chan = (void *)((s32)chan + sizeof(struct SoundChannel));
}
@@ -497,7 +497,7 @@ void SoundClear(void)
while (i <= 4)
{
soundInfo->CgbOscOff(i);
- ((struct CgbChannel *)chan)->sf = 0;
+ ((struct CgbChannel *)chan)->statusFlags = 0;
i++;
chan = (void *)((s32)chan + sizeof(struct CgbChannel));
}
@@ -572,15 +572,18 @@ void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
tracks++;
}
- if (soundInfo->func != 0)
+ // append music player and MPlayMain to linked list
+
+ if (soundInfo->MPlayMainHead != NULL)
{
- mplayInfo->func = soundInfo->func;
- mplayInfo->intp = soundInfo->intp;
- soundInfo->func = 0;
+ mplayInfo->MPlayMainNext = soundInfo->MPlayMainHead;
+ mplayInfo->musicPlayerNext = soundInfo->musicPlayerHead;
+ // NULL assignment semantically useless, but required for match
+ soundInfo->MPlayMainHead = NULL;
}
- soundInfo->intp = (u32)mplayInfo;
- soundInfo->func = (u32)MPlayMain;
+ soundInfo->musicPlayerHead = mplayInfo;
+ soundInfo->MPlayMainHead = MPlayMain;
soundInfo->ident = ID_NUMBER;
mplayInfo->ident = ID_NUMBER;
}
@@ -884,7 +887,7 @@ void CgbModVol(struct CgbChannel *chan)
if ((soundInfo->mode & 1) || !CgbPan(chan))
{
chan->pan = 0xFF;
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
+ chan->envelopeGoal = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
}
else
{
@@ -895,12 +898,12 @@ void CgbModVol(struct CgbChannel *chan)
asm("" : : : "memory");
#endif
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
- if (chan->eg > 15)
- chan->eg = 15;
+ chan->envelopeGoal = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
+ if (chan->envelopeGoal > 15)
+ chan->envelopeGoal = 15;
}
- chan->sg = (chan->eg * chan->su + 15) >> 4;
+ chan->sustainGoal = (chan->envelopeGoal * chan->sustain + 15) >> 4;
chan->pan &= chan->panMask;
}
@@ -908,7 +911,7 @@ void CgbSound(void)
{
s32 ch;
struct CgbChannel *channels;
- s32 evAdd;
+ s32 envelopeStepTimeAndDir;
s32 prevC15;
struct SoundInfo *soundInfo = SOUND_INFO_PTR;
vu8 *nrx0ptr;
@@ -927,9 +930,10 @@ void CgbSound(void)
for (ch = 1, channels = soundInfo->cgbChans; ch <= 4; ch++, channels++)
{
- if (!(channels->sf & 0xc7))
+ if (!(channels->statusFlags & SOUND_CHANNEL_SF_ON))
continue;
+ /* 1. determine hardware channel registers */
switch (ch)
{
case 1:
@@ -963,243 +967,233 @@ void CgbSound(void)
}
prevC15 = soundInfo->c15;
- evAdd = *nrx2ptr;
+ envelopeStepTimeAndDir = *nrx2ptr;
- if (channels->sf & 0x80)
+ /* 2. calculate envelope volume */
+ if (channels->statusFlags & SOUND_CHANNEL_SF_START)
{
- if (!(channels->sf & 0x40))
+ if (!(channels->statusFlags & SOUND_CHANNEL_SF_STOP))
{
- channels->sf = 3;
- channels->mo = 3;
+ channels->statusFlags = SOUND_CHANNEL_SF_ENV_ATTACK;
+ channels->modify = CGB_CHANNEL_MO_PIT | CGB_CHANNEL_MO_VOL;
CgbModVol(channels);
switch (ch)
{
case 1:
- *nrx0ptr = channels->sw;
+ *nrx0ptr = channels->sweep;
// fallthrough
case 2:
- *nrx1ptr = ((u32)channels->wp << 6) + channels->le;
- goto loc_82E0E30;
+ *nrx1ptr = ((u32)channels->wavePointer << 6) + channels->length;
+ goto init_env_step_time_dir;
case 3:
- if ((u32)channels->wp != channels->cp)
+ if (channels->wavePointer != channels->currentPointer)
{
*nrx0ptr = 0x40;
- REG_WAVE_RAM0 = channels->wp[0];
- REG_WAVE_RAM1 = channels->wp[1];
- REG_WAVE_RAM2 = channels->wp[2];
- REG_WAVE_RAM3 = channels->wp[3];
- channels->cp = (u32)channels->wp;
+ REG_WAVE_RAM0 = channels->wavePointer[0];
+ REG_WAVE_RAM1 = channels->wavePointer[1];
+ REG_WAVE_RAM2 = channels->wavePointer[2];
+ REG_WAVE_RAM3 = channels->wavePointer[3];
+ channels->currentPointer = channels->wavePointer;
}
*nrx0ptr = 0;
- *nrx1ptr = channels->le;
- if (channels->le)
- channels->n4 = -64;
+ *nrx1ptr = channels->length;
+ if (channels->length)
+ channels->n4 = 0xC0;
else
- channels->n4 = -128;
+ channels->n4 = 0x80;
break;
default:
- *nrx1ptr = channels->le;
- *nrx3ptr = (u32)channels->wp << 3;
- loc_82E0E30:
- evAdd = channels->at + 8;
- if (channels->le)
- channels->n4 = 64;
+ *nrx1ptr = channels->length;
+ *nrx3ptr = (u32)channels->wavePointer << 3;
+ init_env_step_time_dir:
+ envelopeStepTimeAndDir = channels->attack + CGB_NRx2_ENV_DIR_INC;
+ if (channels->length)
+ channels->n4 = 0x40;
else
- channels->n4 = 0;
+ channels->n4 = 0x00;
break;
}
- channels->ec = channels->at;
- if ((s8)(channels->at & mask))
+ channels->envelopeCounter = channels->attack;
+ if ((s8)(channels->attack & mask))
{
- channels->ev = 0;
- goto EC_MINUS;
+ channels->envelopeVolume = 0;
+ goto envelope_step_complete;
}
else
{
- goto loc_82E0F96;
+ // skip attack phase if attack is instantaneous (=0)
+ goto envelope_decay_start;
}
}
else
{
- goto loc_82E0E82;
+ goto oscillator_off;
}
}
- else if (channels->sf & 0x04)
+ else if (channels->statusFlags & SOUND_CHANNEL_SF_IEC)
{
- channels->echoLength--;
- if ((s8)(channels->echoLength & mask) <= 0)
+ channels->pseudoEchoLength--;
+ if ((s8)(channels->pseudoEchoLength & mask) <= 0)
{
- loc_82E0E82:
+ oscillator_off:
CgbOscOff(ch);
- channels->sf = 0;
- goto LAST_LABEL;
+ channels->statusFlags = 0;
+ goto channel_complete;
}
- goto loc_82E0FD6;
+ goto envelope_complete;
}
- else if ((channels->sf & 0x40) && (channels->sf & 0x03))
+ else if ((channels->statusFlags & SOUND_CHANNEL_SF_STOP) && (channels->statusFlags & SOUND_CHANNEL_SF_ENV))
{
- channels->sf &= 0xfc;
- channels->ec = channels->re;
- if ((s8)(channels->re & mask))
+ channels->statusFlags &= ~SOUND_CHANNEL_SF_ENV;
+ channels->envelopeCounter = channels->release;
+ if ((s8)(channels->release & mask))
{
- channels->mo |= 1;
+ channels->modify |= CGB_CHANNEL_MO_VOL;
if (ch != 3)
- {
- evAdd = channels->re;
- }
- goto EC_MINUS;
+ envelopeStepTimeAndDir = channels->release | CGB_NRx2_ENV_DIR_DEC;
+ goto envelope_step_complete;
}
else
{
- goto loc_82E0F02;
+ goto envelope_pseudoecho_start;
}
}
else
{
- loc_82E0ED0:
- if (channels->ec == 0)
+ envelope_step_repeat:
+ if (channels->envelopeCounter == 0)
{
if (ch == 3)
- {
- channels->mo |= 1;
- }
+ channels->modify |= CGB_CHANNEL_MO_VOL;
+
CgbModVol(channels);
- if ((channels->sf & 0x3) == 0)
+ if ((channels->statusFlags & SOUND_CHANNEL_SF_ENV) == SOUND_CHANNEL_SF_ENV_RELEASE)
{
- channels->ev--;
- if ((s8)(channels->ev & mask) <= 0)
+ channels->envelopeVolume--;
+ if ((s8)(channels->envelopeVolume & mask) <= 0)
{
- loc_82E0F02:
- channels->ev = ((channels->eg * channels->echoVolume) + 0xFF) >> 8;
- if (channels->ev)
+ envelope_pseudoecho_start:
+ channels->envelopeVolume = ((channels->envelopeGoal * channels->pseudoEchoVolume) + 0xFF) >> 8;
+ if (channels->envelopeVolume)
{
- channels->sf |= 0x4;
- channels->mo |= 1;
+ channels->statusFlags |= SOUND_CHANNEL_SF_IEC;
+ channels->modify |= CGB_CHANNEL_MO_VOL;
if (ch != 3)
- {
- evAdd = 8;
- }
- goto loc_82E0FD6;
+ envelopeStepTimeAndDir = 0 | CGB_NRx2_ENV_DIR_INC;
+ goto envelope_complete;
}
else
{
- goto loc_82E0E82;
+ goto oscillator_off;
}
}
else
{
- channels->ec = channels->re;
+ channels->envelopeCounter = channels->release;
}
}
- else if ((channels->sf & 0x3) == 1)
+ else if ((channels->statusFlags & SOUND_CHANNEL_SF_ENV) == SOUND_CHANNEL_SF_ENV_SUSTAIN)
{
- loc_82E0F3A:
- channels->ev = channels->sg;
- channels->ec = 7;
+ envelope_sustain:
+ channels->envelopeVolume = channels->sustainGoal;
+ channels->envelopeCounter = 7;
}
- else if ((channels->sf & 0x3) == 2)
+ else if ((channels->statusFlags & SOUND_CHANNEL_SF_ENV) == SOUND_CHANNEL_SF_ENV_DECAY)
{
- int ev, sg;
+ int envelopeVolume, sustainGoal;
- channels->ev--;
- ev = (s8)(channels->ev & mask);
- sg = (s8)(channels->sg);
- if (ev <= sg)
+ channels->envelopeVolume--;
+ envelopeVolume = (s8)(channels->envelopeVolume & mask);
+ sustainGoal = (s8)(channels->sustainGoal);
+ if (envelopeVolume <= sustainGoal)
{
- loc_82E0F5A:
- if (channels->su == 0)
+ envelope_sustain_start:
+ if (channels->sustain == 0)
{
- channels->sf &= 0xfc;
- goto loc_82E0F02;
+ channels->statusFlags &= ~SOUND_CHANNEL_SF_ENV;
+ goto envelope_pseudoecho_start;
}
else
{
- channels->sf--;
- channels->mo |= 1;
+ channels->statusFlags--;
+ channels->modify |= CGB_CHANNEL_MO_VOL;
if (ch != 3)
- {
- evAdd = 8;
- }
- goto loc_82E0F3A;
+ envelopeStepTimeAndDir = 0 | CGB_NRx2_ENV_DIR_INC;
+ goto envelope_sustain;
}
}
else
{
- channels->ec = channels->de;
+ channels->envelopeCounter = channels->decay;
}
}
else
{
- channels->ev++;
- if ((u8)(channels->ev & mask) >= channels->eg)
+ channels->envelopeVolume++;
+ if ((u8)(channels->envelopeVolume & mask) >= channels->envelopeGoal)
{
- loc_82E0F96:
- channels->sf--;
- channels->ec = channels->de;
- if ((u8)(channels->ec & mask))
+ envelope_decay_start:
+ channels->statusFlags--;
+ channels->envelopeCounter = channels->decay;
+ if ((u8)(channels->envelopeCounter & mask))
{
- channels->mo |= 1;
- channels->ev = channels->eg;
+ channels->modify |= CGB_CHANNEL_MO_VOL;
+ channels->envelopeVolume = channels->envelopeGoal;
if (ch != 3)
- {
- evAdd = channels->de;
- }
+ envelopeStepTimeAndDir = channels->decay | CGB_NRx2_ENV_DIR_DEC;
}
else
{
- goto loc_82E0F5A;
+ goto envelope_sustain_start;
}
}
else
{
- channels->ec = channels->at;
+ channels->envelopeCounter = channels->attack;
}
}
}
}
- EC_MINUS:
- channels->ec--;
+ envelope_step_complete:
+ // every 15 frames, envelope calculation has to be done twice
+ // to keep up with the hardware envelope rate (1/64 s)
+ channels->envelopeCounter--;
if (prevC15 == 0)
{
prevC15--;
- goto loc_82E0ED0;
+ goto envelope_step_repeat;
}
- loc_82E0FD6:
- if (channels->mo & 0x2)
+ envelope_complete:
+ /* 3. apply pitch to HW registers */
+ if (channels->modify & CGB_CHANNEL_MO_PIT)
{
- if (ch < 4 && (channels->ty & 0x08))
+ if (ch < 4 && (channels->type & TONEDATA_TYPE_FIX))
{
- int biasH = REG_SOUNDBIAS_H;
+ int dac_pwm_rate = REG_SOUNDBIAS_H;
- if (biasH < 64)
- {
- channels->fr = (channels->fr + 2) & 0x7fc;
- }
- else if (biasH < 128)
- {
- channels->fr = (channels->fr + 1) & 0x7fe;
- }
+ if (dac_pwm_rate < 0x40) // if PWM rate = 32768 Hz
+ channels->frequency = (channels->frequency + 2) & 0x7fc;
+ else if (dac_pwm_rate < 0x80) // if PWM rate = 65536 Hz
+ channels->frequency = (channels->frequency + 1) & 0x7fe;
}
+
if (ch != 4)
- {
- *nrx3ptr = channels->fr;
- }
+ *nrx3ptr = channels->frequency;
else
- {
- *nrx3ptr = (*nrx3ptr & 0x08) | channels->fr;
- }
- channels->n4 = (channels->n4 & 0xC0) + (*((u8*)(&channels->fr) + 1));
+ *nrx3ptr = (*nrx3ptr & 0x08) | channels->frequency;
+ channels->n4 = (channels->n4 & 0xC0) + (*((u8*)(&channels->frequency) + 1));
*nrx4ptr = (s8)(channels->n4 & mask);
}
- if (channels->mo & 1)
+ /* 4. apply envelope & volume to HW registers */
+ if (channels->modify & CGB_CHANNEL_MO_VOL)
{
REG_NR51 = (REG_NR51 & ~channels->panMask) | channels->pan;
if (ch == 3)
{
- *nrx2ptr = gCgb3Vol[channels->ev];
+ *nrx2ptr = gCgb3Vol[channels->envelopeVolume];
if (channels->n4 & 0x80)
{
*nrx0ptr = 0x80;
@@ -1209,18 +1203,16 @@ void CgbSound(void)
}
else
{
- evAdd &= 0xf;
- *nrx2ptr = (channels->ev << 4) + evAdd;
+ envelopeStepTimeAndDir &= 0xf;
+ *nrx2ptr = (channels->envelopeVolume << 4) + envelopeStepTimeAndDir;
*nrx4ptr = channels->n4 | 0x80;
if (ch == 1 && !(*nrx0ptr & 0x08))
- {
*nrx4ptr = channels->n4 | 0x80;
- }
}
}
- LAST_LABEL:
- channels->mo = 0;
+ channel_complete:
+ channels->modify = 0;
}
}
@@ -1504,8 +1496,8 @@ void ply_memacc(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *trac
cond_true:
{
- void (*func)(struct MusicPlayerInfo *, struct MusicPlayerTrack *) = *(&gMPlayJumpTable[1]);
- func(mplayInfo, track);
+ // *& is required for matching
+ (*&gMPlayJumpTable[1])(mplayInfo, track);
return;
}
@@ -1523,8 +1515,7 @@ void ply_xcmd(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
void ply_xxx(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
{
- void (*func)(struct MusicPlayerInfo *, struct MusicPlayerTrack *) = *(&gMPlayJumpTable[0]);
- func(mplayInfo, track);
+ gMPlayJumpTable[0](mplayInfo, track);
}
#define READ_XCMD_BYTE(var, n) \
@@ -1580,13 +1571,13 @@ void ply_xrele(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
void ply_xiecv(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
{
- track->echoVolume = *track->cmdPtr;
+ track->pseudoEchoVolume = *track->cmdPtr;
track->cmdPtr++;
}
void ply_xiecl(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
{
- track->echoLength = *track->cmdPtr;
+ track->pseudoEchoLength = *track->cmdPtr;
track->cmdPtr++;
}
diff --git a/src/m4a_1.s b/src/m4a_1.s
index cab4ed174..d72336c18 100644
--- a/src/m4a_1.s
+++ b/src/m4a_1.s
@@ -48,10 +48,10 @@ SoundMain_2:
adds r1, r2
SoundMain_3:
str r1, [sp, 0x14]
- ldr r3, [r0, o_SoundInfo_func]
+ ldr r3, [r0, o_SoundInfo_MPlayMainHead]
cmp r3, 0
beq SoundMain_4
- ldr r0, [r0, o_SoundInfo_intp]
+ ldr r0, [r0, o_SoundInfo_musicPlayerHead]
bl _081DD25E
ldr r0, [sp, 0x18]
SoundMain_4:
@@ -169,74 +169,74 @@ _081DCF54:
.pool
_081DCF60:
- ldrb r6, [r4, o_SoundChannel_status]
- movs r0, 0xC7
+ ldrb r6, [r4, o_SoundChannel_statusFlags]
+ movs r0, SOUND_CHANNEL_SF_ON
tst r0, r6
bne _081DCF6A
b _081DD240
_081DCF6A:
- movs r0, 0x80
+ movs r0, SOUND_CHANNEL_SF_START
tst r0, r6
beq _081DCFA0
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
tst r0, r6
bne _081DCFB0
- movs r6, 0x3
- strb r6, [r4, o_SoundChannel_status]
+ movs r6, SOUND_CHANNEL_SF_ENV_ATTACK
+ strb r6, [r4, o_SoundChannel_statusFlags]
adds r0, r3, 0
- adds r0, 0x10
- ldr r1, [r4, o_SoundChannel_ct]
+ adds r0, o_WaveData_data
+ ldr r1, [r4, o_SoundChannel_count]
adds r0, r1
- str r0, [r4, o_SoundChannel_cp]
- ldr r0, [r3, 0xC]
+ str r0, [r4, o_SoundChannel_currentPointer]
+ ldr r0, [r3, o_WaveData_size]
subs r0, r1
- str r0, [r4, o_SoundChannel_ct]
+ str r0, [r4, o_SoundChannel_count]
movs r5, 0
- strb r5, [r4, o_SoundChannel_ev]
+ strb r5, [r4, o_SoundChannel_envelopeVolume]
str r5, [r4, o_SoundChannel_fw]
- ldrb r2, [r3, 0x3]
- movs r0, 0xC0
+ ldrb r2, [r3, o_WaveData_flags]
+ movs r0, WAVE_DATA_FLAG_LOOP
tst r0, r2
beq _081DCFF8
- movs r0, 0x10
+ movs r0, SOUND_CHANNEL_SF_LOOP
orrs r6, r0
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_statusFlags]
b _081DCFF8
_081DCFA0:
- ldrb r5, [r4, o_SoundChannel_ev]
- movs r0, 0x4
+ ldrb r5, [r4, o_SoundChannel_envelopeVolume]
+ movs r0, SOUND_CHANNEL_SF_IEC
tst r0, r6
beq _081DCFB6
- ldrb r0, [r4, o_SoundChannel_iel]
+ ldrb r0, [r4, o_SoundChannel_pseudoEchoLength]
subs r0, 1
- strb r0, [r4, o_SoundChannel_iel]
+ strb r0, [r4, o_SoundChannel_pseudoEchoLength]
bhi _081DD006
_081DCFB0:
movs r0, 0
- strb r0, [r4, o_SoundChannel_status]
+ strb r0, [r4, o_SoundChannel_statusFlags]
b _081DD240
_081DCFB6:
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
tst r0, r6
beq _081DCFD6
ldrb r0, [r4, o_SoundChannel_release]
muls r5, r0
lsrs r5, 8
- ldrb r0, [r4, o_SoundChannel_iev]
+ ldrb r0, [r4, o_SoundChannel_pseudoEchoVolume]
cmp r5, r0
bhi _081DD006
_081DCFC8:
- ldrb r5, [r4, o_SoundChannel_iev]
+ ldrb r5, [r4, o_SoundChannel_pseudoEchoVolume]
cmp r5, 0
beq _081DCFB0
- movs r0, 0x4
+ movs r0, SOUND_CHANNEL_SF_IEC
orrs r6, r0
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_statusFlags]
b _081DD006
_081DCFD6:
- movs r2, 0x3
+ movs r2, SOUND_CHANNEL_SF_ENV
ands r2, r6
- cmp r2, 0x2
+ cmp r2, SOUND_CHANNEL_SF_ENV_DECAY
bne _081DCFF4
ldrb r0, [r4, o_SoundChannel_decay]
muls r5, r0
@@ -247,10 +247,10 @@ _081DCFD6:
adds r5, r0, 0
beq _081DCFC8
subs r6, 0x1
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_statusFlags]
b _081DD006
_081DCFF4:
- cmp r2, 0x3
+ cmp r2, SOUND_CHANNEL_SF_ENV_ATTACK
bne _081DD006
_081DCFF8:
ldrb r0, [r4, o_SoundChannel_attack]
@@ -259,9 +259,9 @@ _081DCFF8:
bcc _081DD006
movs r5, 0xFF
subs r6, 0x1
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_statusFlags]
_081DD006:
- strb r5, [r4, o_SoundChannel_ev]
+ strb r5, [r4, o_SoundChannel_envelopeVolume]
ldr r0, [sp, 0x18]
ldrb r0, [r0, o_SoundChannel_release]
adds r0, 0x1
@@ -270,37 +270,37 @@ _081DD006:
ldrb r0, [r4, o_SoundChannel_rightVolume]
muls r0, r5
lsrs r0, 8
- strb r0, [r4, o_SoundChannel_er]
+ strb r0, [r4, o_SoundChannel_envelopeVolumeRight]
ldrb r0, [r4, o_SoundChannel_leftVolume]
muls r0, r5
lsrs r0, 8
- strb r0, [r4, o_SoundChannel_el]
- movs r0, 0x10
+ strb r0, [r4, o_SoundChannel_envelopeVolumeLeft]
+ movs r0, SOUND_CHANNEL_SF_LOOP
ands r0, r6
str r0, [sp, 0x10]
beq _081DD03A
adds r0, r3, 0
- adds r0, 0x10
- ldr r1, [r3, 0x8]
+ adds r0, o_WaveData_data
+ ldr r1, [r3, o_WaveData_loopStart]
adds r0, r1
str r0, [sp, 0xC]
- ldr r0, [r3, 0xC]
+ ldr r0, [r3, o_WaveData_size]
subs r0, r1
str r0, [sp, 0x10]
_081DD03A:
ldr r5, [sp, 0x8]
- ldr r2, [r4, o_SoundChannel_ct]
- ldr r3, [r4, o_SoundChannel_cp]
+ ldr r2, [r4, o_SoundChannel_count]
+ ldr r3, [r4, o_SoundChannel_currentPointer]
adr r0, _081DD044
bx r0
.arm
_081DD044:
str r8, [sp]
ldr r9, [r4, o_SoundChannel_fw]
- ldrb r10, [r4, o_SoundChannel_er]
- ldrb r11, [r4, o_SoundChannel_el]
+ ldrb r10, [r4, o_SoundChannel_envelopeVolumeRight]
+ ldrb r11, [r4, o_SoundChannel_envelopeVolumeLeft]
ldrb r0, [r4, o_SoundChannel_type]
- tst r0, 0x30
+ tst r0, TONEDATA_TYPE_CMP | TONEDATA_TYPE_REV
beq _081DD068
bl sub_82DF49C
b _081DD228
@@ -324,7 +324,7 @@ _081DD07C:
moveq r2, 0x4
_081DD0A8:
ldr r6, [r5]
- ldr r7, [r5, 0x630]
+ ldr r7, [r5, PCM_DMA_BUF_SIZE]
_081DD0B0:
ldrsb r0, [r3], 0x1
mul r1, r10, r0
@@ -335,7 +335,7 @@ _081DD0B0:
add r7, r1, r7, ror 8
adds r5, r5, 0x40000000
bcc _081DD0B0
- str r7, [r5, 0x630]
+ str r7, [r5, PCM_DMA_BUF_SIZE]
str r6, [r5], 0x4
subs r8, r8, 0x4
bgt _081DD0A8
@@ -343,7 +343,7 @@ _081DD0B0:
beq _081DD22C
_081DD0EC:
ldr r6, [r5]
- ldr r7, [r5, 0x630]
+ ldr r7, [r5, PCM_DMA_BUF_SIZE]
_081DD0F4:
ldrsb r0, [r3], 0x1
mul r1, r10, r0
@@ -357,7 +357,7 @@ _081DD0F4:
_081DD118:
adds r5, r5, 0x40000000
bcc _081DD0F4
- str r7, [r5, 0x630]
+ str r7, [r5, PCM_DMA_BUF_SIZE]
str r6, [r5], 0x4
subs r8, r8, 0x4
bgt _081DD07C
@@ -383,26 +383,26 @@ _081DD164:
ldrne r3, [sp, 0xC]
bne _081DD118
_081DD174:
- strb r2, [r4, o_SoundChannel_status]
+ strb r2, [r4, o_SoundChannel_statusFlags]
mov r0, r5, lsr 30
bic r5, r5, 0xC0000000
rsb r0, r0, 0x3
mov r0, r0, lsl 3
mov r6, r6, ror r0
mov r7, r7, ror r0
- str r7, [r5, 0x630]
+ str r7, [r5, PCM_DMA_BUF_SIZE]
str r6, [r5], 0x4
b _081DD234
_081DD19C:
push {r4,r12}
- ldr r1, [r4, o_SoundChannel_freq]
+ ldr r1, [r4, o_SoundChannel_frequency]
mul r4, r12, r1
ldrsb r0, [r3]
ldrsb r1, [r3, 0x1]!
sub r1, r1, r0
_081DD1B4:
ldr r6, [r5]
- ldr r7, [r5, 0x630]
+ ldr r7, [r5, PCM_DMA_BUF_SIZE]
_081DD1BC:
mul lr, r9, r1
add lr, r0, lr, asr 23
@@ -427,7 +427,7 @@ _081DD1FC:
_081DD208:
adds r5, r5, 0x40000000
bcc _081DD1BC
- str r7, [r5, 0x630]
+ str r7, [r5, PCM_DMA_BUF_SIZE]
str r6, [r5], 0x4
subs r8, r8, 0x4
bgt _081DD1B4
@@ -436,8 +436,8 @@ _081DD208:
_081DD228:
str r9, [r4, o_SoundChannel_fw]
_081DD22C:
- str r2, [r4, o_SoundChannel_ct]
- str r3, [r4, o_SoundChannel_cp]
+ str r2, [r4, o_SoundChannel_count]
+ str r3, [r4, o_SoundChannel_currentPointer]
_081DD234:
ldr r8, [sp]
add r0, pc, 0x1
@@ -468,42 +468,42 @@ _081DD25E:
arm_func_start sub_82DF49C
sub_82DF49C:
ldr r6, [r4, o_SoundChannel_wav]
- ldrb r0, [r4, o_SoundChannel_status]
- tst r0, 0x20
+ ldrb r0, [r4, o_SoundChannel_statusFlags]
+ tst r0, SOUND_CHANNEL_SF_SPECIAL
bne _081DD2B4
- orr r0, r0, 0x20
- strb r0, [r4, o_SoundChannel_status]
+ orr r0, r0, SOUND_CHANNEL_SF_SPECIAL
+ strb r0, [r4, o_SoundChannel_statusFlags]
ldrb r0, [r4, o_SoundChannel_type]
- tst r0, 0x10
+ tst r0, TONEDATA_TYPE_REV
beq _081DD29C
- ldr r1, [r6, 0xC]
+ ldr r1, [r6, o_WaveData_size]
add r1, r1, r6, lsl 1
add r1, r1, 0x20
sub r3, r1, r3
- str r3, [r4, o_SoundChannel_cp]
+ str r3, [r4, o_SoundChannel_currentPointer]
_081DD29C:
- ldrh r0, [r6]
+ ldrh r0, [r6, o_WaveData_type]
cmp r0, 0
beq _081DD2B4
sub r3, r3, r6
sub r3, r3, 0x10
- str r3, [r4, o_SoundChannel_cp]
+ str r3, [r4, o_SoundChannel_currentPointer]
_081DD2B4:
push {r8,r12,lr}
mov r10, r10, lsl 16
mov r11, r11, lsl 16
- ldr r1, [r4, o_SoundChannel_freq]
+ ldr r1, [r4, o_SoundChannel_frequency]
ldrb r0, [r4, o_SoundChannel_type]
- tst r0, 0x8
+ tst r0, TONEDATA_TYPE_FIX
movne r8, 0x800000
muleq r8, r12, r1
- ldrh r0, [r6]
+ ldrh r0, [r6, o_WaveData_type]
cmp r0, 0
beq _081DD468
mov r0, 0xFF000000
str r0, [r4, o_SoundChannel_xpi]
ldrb r0, [r4, o_SoundChannel_type]
- tst r0, 0x10
+ tst r0, TONEDATA_TYPE_REV
bne _081DD3C0
bl sub_82DF758
mov r0, r1
@@ -512,7 +512,7 @@ _081DD2B4:
sub r1, r1, r0
_081DD308:
ldr r6, [r5]
- ldr r7, [r5, 0x630]
+ ldr r7, [r5, PCM_DMA_BUF_SIZE]
_081DD310:
mul lr, r9, r1
add lr, r0, lr, asr 23
@@ -543,7 +543,7 @@ _081DD364:
_081DD370:
adds r5, r5, 0x40000000
bcc _081DD310
- str r7, [r5, 0x630]
+ str r7, [r5, PCM_DMA_BUF_SIZE]
str r6, [r5], 0x4
ldr r6, [sp]
subs r6, r6, 0x4
@@ -556,7 +556,7 @@ _081DD398:
cmp r0, 0
beq _081DD4F4
ldr r3, [r4, o_SoundChannel_wav]
- ldr r3, [r3, 0x8]
+ ldr r3, [r3, o_WaveData_loopStart]
rsb lr, r2, 0
_081DD3B0:
adds r2, r2, r0
@@ -572,7 +572,7 @@ _081DD3C0:
sub r1, r1, r0
_081DD3D8:
ldr r6, [r5]
- ldr r7, [r5, 0x630]
+ ldr r7, [r5, PCM_DMA_BUF_SIZE]
_081DD3E0:
mul lr, r9, r1
add lr, r0, lr, asr 23
@@ -603,7 +603,7 @@ _081DD434:
_081DD440:
adds r5, r5, 0x40000000
bcc _081DD3E0
- str r7, [r5, 0x630]
+ str r7, [r5, PCM_DMA_BUF_SIZE]
str r6, [r5], 0x4
ldr r6, [sp]
subs r6, r6, 0x4
@@ -613,7 +613,7 @@ _081DD440:
b _081DD4F0
_081DD468:
ldrb r0, [r4, o_SoundChannel_type]
- tst r0, 0x10
+ tst r0, TONEDATA_TYPE_REV
beq _081DD4F0
ldrsb r0, [r3, -0x1]!
ldrsb r1, [r3, -0x1]
@@ -653,7 +653,7 @@ _081DD4F0:
pop {r8,r12,pc}
_081DD4F4:
mov r2, 0
- strb r2, [r4, o_SoundChannel_status]
+ strb r2, [r4, o_SoundChannel_statusFlags]
mov r0, r5, lsr 30
bic r5, r5, 0xC0000000
rsb r0, r0, 0x3
@@ -723,24 +723,24 @@ SoundMainBTM:
thumb_func_start RealClearChain
RealClearChain:
- ldr r3, [r0, 0x2C]
+ ldr r3, [r0, o_SoundChannel_track]
cmp r3, 0
beq _081DD5E2
- ldr r1, [r0, 0x34]
- ldr r2, [r0, 0x30]
+ ldr r1, [r0, o_SoundChannel_nextChannelPointer]
+ ldr r2, [r0, o_SoundChannel_prevChannelPointer]
cmp r2, 0
beq _081DD5D6
- str r1, [r2, 0x34]
+ str r1, [r2, o_SoundChannel_nextChannelPointer]
b _081DD5D8
_081DD5D6:
- str r1, [r3, 0x20]
+ str r1, [r3, o_MusicPlayerTrack_chan]
_081DD5D8:
cmp r1, 0
beq _081DD5DE
- str r2, [r1, 0x30]
+ str r2, [r1, o_SoundChannel_prevChannelPointer]
_081DD5DE:
movs r1, 0
- str r1, [r0, 0x2C]
+ str r1, [r0, o_SoundChannel_track]
_081DD5E2:
bx lr
thumb_func_end RealClearChain
@@ -753,22 +753,22 @@ ply_fine:
cmp r4, 0
beq ply_fine_done
ply_fine_loop:
- ldrb r1, [r4]
- movs r0, 0xC7
+ ldrb r1, [r4, o_SoundChannel_statusFlags]
+ movs r0, SOUND_CHANNEL_SF_ON
tst r0, r1
beq ply_fine_ok
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
orrs r1, r0
- strb r1, [r4]
+ strb r1, [r4, o_SoundChannel_statusFlags]
ply_fine_ok:
adds r0, r4, 0
bl RealClearChain
- ldr r4, [r4, 0x34]
+ ldr r4, [r4, o_SoundChannel_nextChannelPointer]
cmp r4, 0
bne ply_fine_loop
ply_fine_done:
movs r0, 0
- strb r0, [r5]
+ strb r0, [r5, o_MusicPlayerTrack_flags]
pop {r4,r5}
pop {r0}
bx r0
@@ -818,10 +818,10 @@ lt_MPlayJumpTableTemplate: .word gMPlayJumpTableTemplate
thumb_func_start ld_r3_tp_adr_i
ld_r3_tp_adr_i:
- ldr r2, [r1, 0x40]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
_081DD64A:
adds r3, r2, 0x1
- str r3, [r1, 0x40]
+ str r3, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
b chk_adr_r2
thumb_func_end ld_r3_tp_adr_i
@@ -952,13 +952,13 @@ ply_voice:
lsls r2, 2
ldr r3, [r0, o_MusicPlayerInfo_tone]
adds r2, r3
- ldr r3, [r2]
+ ldr r3, [r2, o_ToneData_type]
bl chk_adr_r2
str r3, [r1, o_MusicPlayerTrack_ToneData_type]
- ldr r3, [r2, 0x4]
+ ldr r3, [r2, o_ToneData_wav]
bl chk_adr_r2
str r3, [r1, o_MusicPlayerTrack_ToneData_wav]
- ldr r3, [r2, 0x8]
+ ldr r3, [r2, o_ToneData_attack]
bl chk_adr_r2
str r3, [r1, o_MusicPlayerTrack_ToneData_attack]
bx r12
@@ -970,7 +970,7 @@ ply_vol:
bl ld_r3_tp_adr_i
strb r3, [r1, o_MusicPlayerTrack_vol]
ldrb r3, [r1, o_MusicPlayerTrack_flags]
- movs r2, 0x3
+ movs r2, MPT_FLG_VOLCHG
orrs r3, r2
strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
@@ -980,10 +980,10 @@ ply_vol:
ply_pan:
mov r12, lr
bl ld_r3_tp_adr_i
- subs r3, 0x40
+ subs r3, C_V
strb r3, [r1, o_MusicPlayerTrack_pan]
ldrb r3, [r1, o_MusicPlayerTrack_flags]
- movs r2, 0x3
+ movs r2, MPT_FLG_VOLCHG
orrs r3, r2
strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
@@ -993,10 +993,10 @@ ply_pan:
ply_bend:
mov r12, lr
bl ld_r3_tp_adr_i
- subs r3, 0x40
+ subs r3, C_V
strb r3, [r1, o_MusicPlayerTrack_bend]
ldrb r3, [r1, o_MusicPlayerTrack_flags]
- movs r2, 0xC
+ movs r2, MPT_FLG_PITCHG
orrs r3, r2
strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
@@ -1008,7 +1008,7 @@ ply_bendr:
bl ld_r3_tp_adr_i
strb r3, [r1, o_MusicPlayerTrack_bendRange]
ldrb r3, [r1, o_MusicPlayerTrack_flags]
- movs r2, 0xC
+ movs r2, MPT_FLG_PITCHG
orrs r3, r2
strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
@@ -1031,7 +1031,7 @@ ply_modt:
beq _081DD7AA
strb r3, [r1, o_MusicPlayerTrack_modT]
ldrb r3, [r1, o_MusicPlayerTrack_flags]
- movs r2, 0xF
+ movs r2, MPT_FLG_VOLCHG | MPT_FLG_PITCHG
orrs r3, r2
strb r3, [r1, o_MusicPlayerTrack_flags]
_081DD7AA:
@@ -1042,10 +1042,10 @@ _081DD7AA:
ply_tune:
mov r12, lr
bl ld_r3_tp_adr_i
- subs r3, 0x40
+ subs r3, C_V
strb r3, [r1, o_MusicPlayerTrack_tune]
ldrb r3, [r1, o_MusicPlayerTrack_flags]
- movs r2, 0xC
+ movs r2, MPT_FLG_PITCHG
orrs r3, r2
strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
@@ -1174,8 +1174,8 @@ _081DD874:
movs r3, 0x1
movs r4, 0
_081DD87C:
- ldrb r0, [r5]
- movs r1, 0x80
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ movs r1, MPT_FLG_EXIST
tst r1, r0
bne _081DD886
b _081DD998
@@ -1187,36 +1187,36 @@ _081DD886:
cmp r4, 0
beq _081DD8BA
_081DD892:
- ldrb r1, [r4]
- movs r0, 0xC7
+ ldrb r1, [r4, o_SoundChannel_statusFlags]
+ movs r0, SOUND_CHANNEL_SF_ON
tst r0, r1
beq _081DD8AE
- ldrb r0, [r4, 0x10]
+ ldrb r0, [r4, o_SoundChannel_gateTime]
cmp r0, 0
beq _081DD8B4
subs r0, 0x1
- strb r0, [r4, 0x10]
+ strb r0, [r4, o_SoundChannel_gateTime]
bne _081DD8B4
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
orrs r1, r0
- strb r1, [r4]
+ strb r1, [r4, o_SoundChannel_statusFlags]
b _081DD8B4
_081DD8AE:
adds r0, r4, 0
bl ClearChain
_081DD8B4:
- ldr r4, [r4, 0x34]
+ ldr r4, [r4, o_SoundChannel_nextChannelPointer]
cmp r4, 0
bne _081DD892
_081DD8BA:
ldrb r3, [r5, o_MusicPlayerTrack_flags]
- movs r0, 0x40
+ movs r0, MPT_FLG_START
tst r0, r3
beq _081DD938
adds r0, r5, 0
bl Clear64byte
- movs r0, 0x80
- strb r0, [r5]
+ movs r0, MPT_FLG_EXIST
+ strb r0, [r5, o_MusicPlayerTrack_flags]
movs r0, 0x2
strb r0, [r5, o_MusicPlayerTrack_bendRange]
movs r0, 0x40
@@ -1319,10 +1319,10 @@ _081DD972:
ldrb r1, [r5, o_MusicPlayerTrack_modT]
cmp r1, 0
bne _081DD98E
- movs r1, 0xC
+ movs r1, MPT_FLG_PITCHG
b _081DD990
_081DD98E:
- movs r1, 0x3
+ movs r1, MPT_FLG_VOLCHG
_081DD990:
orrs r0, r1
strb r0, [r5, o_MusicPlayerTrack_flags]
@@ -1332,7 +1332,7 @@ _081DD994:
_081DD998:
subs r6, 0x1
ble _081DD9A4
- movs r0, 0x50
+ movs r0, MusicPlayerTrack_size
adds r5, r0
lsls r3, 1
b _081DD87C
@@ -1349,10 +1349,10 @@ _081DD9A4:
_081DD9B6:
str r4, [r7, o_MusicPlayerInfo_status]
ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
- subs r0, 0x96
+ subs r0, 150
_081DD9BC:
strh r0, [r7, o_MusicPlayerInfo_tempoC]
- cmp r0, 0x96
+ cmp r0, 150
bcc _081DD9C4
b _081DD874
_081DD9C4:
@@ -1363,7 +1363,7 @@ _081DD9C8:
movs r1, 0x80
tst r1, r0
beq _081DDA62
- movs r1, 0xF
+ movs r1, MPT_FLG_VOLCHG | MPT_FLG_PITCHG
tst r1, r0
beq _081DDA62
mov r9, r2
@@ -1374,8 +1374,8 @@ _081DD9C8:
cmp r4, 0
beq _081DDA58
_081DD9E6:
- ldrb r1, [r4, o_SoundChannel_status]
- movs r0, 0xC7
+ ldrb r1, [r4, o_SoundChannel_statusFlags]
+ movs r0, SOUND_CHANNEL_SF_ON
tst r0, r1
bne _081DD9F6
adds r0, r4, 0
@@ -1383,26 +1383,26 @@ _081DD9E6:
b _081DDA52
_081DD9F6:
ldrb r0, [r4, o_SoundChannel_type]
- movs r6, 0x7
+ movs r6, TONEDATA_TYPE_CGB
ands r6, r0
ldrb r3, [r5, o_MusicPlayerTrack_flags]
- movs r0, 0x3
+ movs r0, MPT_FLG_VOLCHG
tst r0, r3
beq _081DDA14
bl ChnVolSetAsm
cmp r6, 0
beq _081DDA14
- ldrb r0, [r4, o_CgbChannel_mo]
+ ldrb r0, [r4, o_CgbChannel_modify]
movs r1, 0x1
orrs r0, r1
- strb r0, [r4, o_CgbChannel_mo]
+ strb r0, [r4, o_CgbChannel_modify]
_081DDA14:
ldrb r3, [r5, o_MusicPlayerTrack_flags]
- movs r0, 0xC
+ movs r0, MPT_FLG_PITCHG
tst r0, r3
beq _081DDA52
- ldrb r1, [r4, o_SoundChannel_ky]
- movs r0, 0x8
+ ldrb r1, [r4, o_SoundChannel_key]
+ movs r0, o_MusicPlayerTrack_keyM
ldrsb r0, [r5, r0]
adds r2, r1, r0
bpl _081DDA28
@@ -1416,20 +1416,20 @@ _081DDA28:
ldrb r2, [r5, o_MusicPlayerTrack_pitM]
adds r0, r6, 0
bl call_r3
- str r0, [r4, o_CgbChannel_fr]
- ldrb r0, [r4, o_CgbChannel_mo]
- movs r1, 0x2
+ str r0, [r4, o_CgbChannel_frequency]
+ ldrb r0, [r4, o_CgbChannel_modify]
+ movs r1, CGB_CHANNEL_MO_PIT
orrs r0, r1
- strb r0, [r4, o_CgbChannel_mo]
+ strb r0, [r4, o_CgbChannel_modify]
b _081DDA52
_081DDA46:
adds r1, r2, 0
ldrb r2, [r5, o_MusicPlayerTrack_pitM]
ldr r0, [r4, o_SoundChannel_wav]
bl MidiKeyToFreq
- str r0, [r4, o_SoundChannel_freq]
+ str r0, [r4, o_SoundChannel_frequency]
_081DDA52:
- ldr r4, [r4, o_SoundChannel_np]
+ ldr r4, [r4, o_SoundChannel_nextChannelPointer]
cmp r4, 0
bne _081DD9E6
_081DDA58:
@@ -1441,7 +1441,7 @@ _081DDA58:
_081DDA62:
subs r2, 0x1
ble _081DDA6C
- movs r0, 0x50
+ movs r0, MusicPlayerTrack_size
adds r5, r0
bgt _081DD9C8
_081DDA6C:
@@ -1468,7 +1468,7 @@ TrackStop:
push {r4-r6,lr}
adds r5, r1, 0
ldrb r1, [r5, o_MusicPlayerTrack_flags]
- movs r0, 0x80
+ movs r0, MPT_FLG_EXIST
tst r0, r1
beq TrackStop_Done
ldr r4, [r5, o_MusicPlayerTrack_chan]
@@ -1476,11 +1476,11 @@ TrackStop:
beq TrackStop_3
movs r6, 0
TrackStop_Loop:
- ldrb r0, [r4, o_SoundChannel_status]
+ ldrb r0, [r4, o_SoundChannel_statusFlags]
cmp r0, 0
beq TrackStop_2
ldrb r0, [r4, o_SoundChannel_type]
- movs r3, 0x7
+ movs r3, TONEDATA_TYPE_CGB
ands r0, r3
beq TrackStop_1
ldr r3, =SOUND_INFO_PTR
@@ -1488,10 +1488,10 @@ TrackStop_Loop:
ldr r3, [r3, o_SoundInfo_CgbOscOff]
bl call_r3
TrackStop_1:
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_statusFlags]
TrackStop_2:
str r6, [r4, o_SoundChannel_track]
- ldr r4, [r4, o_SoundChannel_np]
+ ldr r4, [r4, o_SoundChannel_nextChannelPointer]
cmp r4, 0
bne TrackStop_Loop
TrackStop_3:
@@ -1505,31 +1505,31 @@ TrackStop_Done:
thumb_func_start ChnVolSetAsm
ChnVolSetAsm:
- ldrb r1, [r4, 0x12]
- movs r0, 0x14
+ ldrb r1, [r4, o_SoundChannel_velocity]
+ movs r0, o_SoundChannel_rhythmPan
ldrsb r2, [r4, r0]
movs r3, 0x80
adds r3, r2
muls r3, r1
- ldrb r0, [r5, 0x10]
+ ldrb r0, [r5, o_MusicPlayerTrack_volMR]
muls r0, r3
asrs r0, 14
cmp r0, 0xFF
bls _081DDAE8
movs r0, 0xFF
_081DDAE8:
- strb r0, [r4, 0x2]
+ strb r0, [r4, o_SoundChannel_rightVolume]
movs r3, 0x7F
subs r3, r2
muls r3, r1
- ldrb r0, [r5, 0x11]
+ ldrb r0, [r5, o_MusicPlayerTrack_volML]
muls r0, r3
asrs r0, 14
cmp r0, 0xFF
bls _081DDAFC
movs r0, 0xFF
_081DDAFC:
- strb r0, [r4, 0x3]
+ strb r0, [r4, o_SoundChannel_leftVolume]
bx lr
thumb_func_end ChnVolSetAsm
@@ -1599,32 +1599,32 @@ _081DDB68:
mov r9, r1
mov r6, r9
ldrb r1, [r6]
- movs r0, 0xC0
+ movs r0, TONEDATA_TYPE_SPL | TONEDATA_TYPE_RHY
tst r0, r1
beq _081DDB80
b _081DDCEA
_081DDB80:
- movs r0, 0x80
+ movs r0, TONEDATA_TYPE_RHY
tst r0, r2
beq _081DDB9C
- ldrb r1, [r6, 0x3]
+ ldrb r1, [r6, o_ToneData_pan_sweep]
movs r0, 0x80
tst r0, r1
beq _081DDB94
- subs r1, 0xC0
+ subs r1, TONEDATA_P_S_PAN
lsls r1, 1
str r1, [sp, 0x14]
_081DDB94:
- ldrb r3, [r6, 0x1]
+ ldrb r3, [r6, o_SoundChannel_type]
b _081DDB9C
_081DDB98:
mov r9, r4
- ldrb r3, [r5, 0x5]
+ ldrb r3, [r5, o_MusicPlayerTrack_key]
_081DDB9C:
str r3, [sp, 0x8]
ldr r6, [sp]
- ldrb r1, [r6, 0x9]
- ldrb r0, [r5, 0x1D]
+ ldrb r1, [r6, o_MusicPlayerInfo_priority]
+ ldrb r0, [r5, o_MusicPlayerTrack_priority]
adds r0, r1
cmp r0, 0xFF
bls _081DDBAC
@@ -1632,13 +1632,13 @@ _081DDB9C:
_081DDBAC:
str r0, [sp, 0x10]
mov r6, r9
- ldrb r0, [r6]
- movs r6, 0x7
+ ldrb r0, [r6, o_ToneData_type]
+ movs r6, TONEDATA_TYPE_CGB
ands r6, r0
str r6, [sp, 0xC]
beq _081DDBEC
ldr r0, [sp, 0x4]
- ldr r4, [r0, 0x1C]
+ ldr r4, [r0, o_SoundInfo_cgbChans]
cmp r4, 0
bne _081DDBC4
b _081DDCEA
@@ -1646,21 +1646,21 @@ _081DDBC4:
subs r6, 0x1
lsls r0, r6, 6
adds r4, r0
- ldrb r1, [r4]
- movs r0, 0xC7
+ ldrb r1, [r4, o_CgbChannel_statusFlags]
+ movs r0, SOUND_CHANNEL_SF_ON
tst r0, r1
beq _081DDC40
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
tst r0, r1
bne _081DDC40
- ldrb r1, [r4, 0x13]
+ ldrb r1, [r4, o_CgbChannel_priority]
ldr r0, [sp, 0x10]
cmp r1, r0
bcc _081DDC40
beq _081DDBE4
b _081DDCEA
_081DDBE4:
- ldr r0, [r4, 0x2C]
+ ldr r0, [r4, o_CgbChannel_track]
cmp r0, r5
bcs _081DDC40
b _081DDCEA
@@ -1670,35 +1670,35 @@ _081DDBEC:
movs r2, 0
mov r8, r2
ldr r4, [sp, 0x4]
- ldrb r3, [r4, 0x6]
- adds r4, 0x50
+ ldrb r3, [r4, o_SoundInfo_maxChans]
+ adds r4, o_SoundInfo_chans
_081DDBFA:
- ldrb r1, [r4]
- movs r0, 0xC7
+ ldrb r1, [r4, o_SoundChannel_statusFlags]
+ movs r0, SOUND_CHANNEL_SF_ON
tst r0, r1
beq _081DDC40
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
tst r0, r1
beq _081DDC14
cmp r2, 0
bne _081DDC18
adds r2, 0x1
- ldrb r6, [r4, 0x13]
- ldr r7, [r4, 0x2C]
+ ldrb r6, [r4, o_SoundChannel_priority]
+ ldr r7, [r4, o_SoundChannel_track]
b _081DDC32
_081DDC14:
cmp r2, 0
bne _081DDC34
_081DDC18:
- ldrb r0, [r4, 0x13]
+ ldrb r0, [r4, o_SoundChannel_priority]
cmp r0, r6
bcs _081DDC24
adds r6, r0, 0
- ldr r7, [r4, 0x2C]
+ ldr r7, [r4, o_SoundChannel_track]
b _081DDC32
_081DDC24:
bhi _081DDC34
- ldr r0, [r4, 0x2C]
+ ldr r0, [r4, o_SoundChannel_track]
cmp r0, r7
bls _081DDC30
adds r7, r0, 0
@@ -1708,7 +1708,7 @@ _081DDC30:
_081DDC32:
mov r8, r4
_081DDC34:
- adds r4, 0x40
+ adds r4, SoundChannel_size
subs r3, 0x1
bgt _081DDBFA
mov r4, r8
@@ -1718,17 +1718,17 @@ _081DDC40:
adds r0, r4, 0
bl ClearChain
movs r1, 0
- str r1, [r4, 0x30]
- ldr r3, [r5, 0x20]
- str r3, [r4, 0x34]
+ str r1, [r4, o_SoundChannel_prevChannelPointer]
+ ldr r3, [r5, o_MusicPlayerTrack_chan]
+ str r3, [r4, o_SoundChannel_nextChannelPointer]
cmp r3, 0
beq _081DDC54
- str r4, [r3, 0x30]
+ str r4, [r3, o_SoundChannel_prevChannelPointer]
_081DDC54:
- str r4, [r5, 0x20]
- str r5, [r4, 0x2C]
- ldrb r0, [r5, 0x1B]
- strb r0, [r5, 0x1C]
+ str r4, [r5, o_MusicPlayerTrack_chan]
+ str r5, [r4, o_SoundChannel_track]
+ ldrb r0, [r5, o_MusicPlayerTrack_lfoDelay]
+ strb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
cmp r0, r1
beq _081DDC66
adds r1, r5, 0
@@ -1737,26 +1737,26 @@ _081DDC66:
ldr r0, [sp]
adds r1, r5, 0
bl TrkVolPitSet
- ldr r0, [r5, 0x4]
- str r0, [r4, 0x10]
+ ldr r0, [r5, o_MusicPlayerTrack_gateTime]
+ str r0, [r4, o_SoundChannel_gateTime]
ldr r0, [sp, 0x10]
- strb r0, [r4, 0x13]
+ strb r0, [r4, o_SoundChannel_priority]
ldr r0, [sp, 0x8]
- strb r0, [r4, 0x8]
+ strb r0, [r4, o_SoundChannel_key]
ldr r0, [sp, 0x14]
- strb r0, [r4, 0x14]
+ strb r0, [r4, o_SoundChannel_rhythmPan]
mov r6, r9
- ldrb r0, [r6]
- strb r0, [r4, 0x1]
- ldr r7, [r6, 0x4]
- str r7, [r4, 0x24]
- ldr r0, [r6, 0x8]
- str r0, [r4, 0x4]
- ldrh r0, [r5, 0x1E]
- strh r0, [r4, 0xC]
+ ldrb r0, [r6, o_ToneData_type]
+ strb r0, [r4, o_SoundChannel_type]
+ ldr r7, [r6, o_ToneData_wav]
+ str r7, [r4, o_SoundChannel_wav]
+ ldr r0, [r6, o_ToneData_attack]
+ str r0, [r4, o_SoundChannel_attack]
+ ldrh r0, [r5, o_MusicPlayerTrack_pseudoEchoVolume]
+ strh r0, [r4, o_SoundChannel_pseudoEchoVolume]
bl ChnVolSetAsm
- ldrb r1, [r4, 0x8]
- movs r0, 0x8
+ ldrb r1, [r4, o_SoundChannel_key]
+ movs r0, o_MusicPlayerTrack_keyM
ldrsb r0, [r5, r0]
adds r3, r1, r0
bpl _081DDCA0
@@ -1766,9 +1766,9 @@ _081DDCA0:
cmp r6, 0
beq _081DDCCE
mov r6, r9
- ldrb r0, [r6, 0x2]
- strb r0, [r4, 0x1E]
- ldrb r1, [r6, 0x3]
+ ldrb r0, [r6, o_ToneData_length]
+ strb r0, [r4, o_CgbChannel_length]
+ ldrb r1, [r6, o_ToneData_pan_sweep]
movs r0, 0x80
tst r0, r1
bne _081DDCBA
@@ -1778,29 +1778,29 @@ _081DDCA0:
_081DDCBA:
movs r1, 0x8
_081DDCBC:
- strb r1, [r4, 0x1F]
- ldrb r2, [r5, 0x9]
+ strb r1, [r4, o_CgbChannel_sweep]
+ ldrb r2, [r5, o_MusicPlayerTrack_pitM]
adds r1, r3, 0
ldr r0, [sp, 0xC]
ldr r3, [sp, 0x4]
- ldr r3, [r3, 0x30]
+ ldr r3, [r3, o_SoundInfo_MidiKeyToCgbFreq]
bl call_r3
b _081DDCDC
_081DDCCE:
ldr r0, [r5, o_MusicPlayerTrack_unk_3C]
- str r0, [r4, 0x18]
- ldrb r2, [r5, 0x9]
+ str r0, [r4, o_SoundChannel_count]
+ ldrb r2, [r5, o_MusicPlayerTrack_pitM]
adds r1, r3, 0
adds r0, r7, 0
bl MidiKeyToFreq
_081DDCDC:
- str r0, [r4, 0x20]
- movs r0, 0x80
- strb r0, [r4]
- ldrb r1, [r5]
+ str r0, [r4, o_SoundChannel_frequency]
+ movs r0, SOUND_CHANNEL_SF_START
+ strb r0, [r4, o_SoundChannel_statusFlags]
+ ldrb r1, [r5, o_MusicPlayerTrack_flags]
movs r0, 0xF0
ands r0, r1
- strb r0, [r5]
+ strb r0, [r5, o_MusicPlayerTrack_flags]
_081DDCEA:
add sp, 0x18
pop {r0-r7}
@@ -1830,23 +1830,23 @@ _081DDD18:
ldr r1, [r1, o_MusicPlayerTrack_chan]
cmp r1, 0
beq _081DDD40
- movs r4, 0x83
- movs r5, 0x40
+ movs r4, SOUND_CHANNEL_SF_START | SOUND_CHANNEL_SF_ENV
+ movs r5, SOUND_CHANNEL_SF_STOP
_081DDD22:
- ldrb r2, [r1, o_SoundChannel_status]
+ ldrb r2, [r1, o_SoundChannel_statusFlags]
tst r2, r4
beq _081DDD3A
tst r2, r5
bne _081DDD3A
- ldrb r0, [r1, o_SoundChannel_mk]
+ ldrb r0, [r1, o_SoundChannel_midiKey]
cmp r0, r3
bne _081DDD3A
- movs r0, 0x40
+ movs r0, SOUND_CHANNEL_SF_STOP
orrs r2, r0
- strb r2, [r1, o_SoundChannel_status]
+ strb r2, [r1, o_SoundChannel_statusFlags]
b _081DDD40
_081DDD3A:
- ldr r1, [r1, o_SoundChannel_np]
+ ldr r1, [r1, o_SoundChannel_nextChannelPointer]
cmp r1, 0
bne _081DDD22
_081DDD40:
@@ -1862,10 +1862,10 @@ clear_modM:
ldrb r2, [r1, o_MusicPlayerTrack_modT]
cmp r2, 0
bne _081DDD54
- movs r2, 0xC
+ movs r2, MPT_FLG_PITCHG
b _081DDD56
_081DDD54:
- movs r2, 0x3
+ movs r2, MPT_FLG_VOLCHG
_081DDD56:
ldrb r3, [r1, o_MusicPlayerTrack_flags]
orrs r3, r2
diff --git a/src/match_call.c b/src/match_call.c
index a39739f76..723562ade 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -1817,10 +1817,13 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId)
}
*topicTextId = 3;
break;
+ #ifdef BUGFIX
+ case FRONTIER_FACILITY_PIKE:
+ #else
case FRONTIER_FACILITY_FACTORY:
+ #endif
for (i = 0; i < 2; i++)
{
- // BUG: should be looking at battle factory records.
if (streak < gSaveBlock2Ptr->frontier.pikeRecordStreaks[i])
streak = gSaveBlock2Ptr->frontier.pikeRecordStreaks[i];
}
@@ -1848,12 +1851,15 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId)
}
*topicTextId = 2;
break;
+ #ifdef BUGFIX
+ case FRONTIER_FACILITY_FACTORY:
+ #else
case FRONTIER_FACILITY_PIKE:
+ #endif
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
- // BUG: should be looking at battle pike records.
if (streak < gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[i][j])
streak = gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[i][j];
}
diff --git a/src/menu.c b/src/menu.c
index dca8adc2d..4813f7b02 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -2016,7 +2016,7 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src
{
int loopSrcY, loopDstY, loopSrcX, loopDstX, xEnd, yEnd, multiplierSrcY, multiplierDstY;
const u8 *pixelsSrc;
- u16 *pixelsDst;
+ u8 *pixelsDst;
u16 toOrr;
if (dst->width - dstX < width)
@@ -2037,53 +2037,52 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src
for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++)
{
pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1B);
- pixelsDst = (void*) dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + ((( loopDstY >> 3) * multiplierDstY) << 5) + ((u32)( loopDstY << 0x1d) >> 0x1B);
+ pixelsDst = (void*) dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + ((( loopDstY >> 3) * multiplierDstY) << 5) + ((u32)(loopDstY << 0x1d) >> 0x1B);
- if ((uintptr_t )pixelsDst & 0x1)
+ if ((uintptr_t)pixelsDst & 0x1)
{
- pixelsDst = (void*)(pixelsDst) - 1;
+ pixelsDst--;
if (loopDstX & 0x1)
{
- toOrr = *pixelsDst & 0x0fff;
+ toOrr = *(vu16*)pixelsDst;
+ toOrr &= 0x0fff;
if (loopSrcX & 0x1)
- *pixelsDst = toOrr | ((*pixelsSrc & 0xf0) << 8);
+ toOrr |= ((*pixelsSrc & 0xf0) << 8);
else
- *pixelsDst = toOrr | ((*pixelsSrc & 0x0f) << 12);
+ toOrr |= ((*pixelsSrc & 0x0f) << 12);
}
else
{
- toOrr = *pixelsDst & 0xf0ff;
+ toOrr = *(vu16*)pixelsDst;
+ toOrr &= 0xf0ff;
if (loopSrcX & 0x1)
- *pixelsDst = toOrr | ((*pixelsSrc & 0xf0) << 4);
+ toOrr |= ((*pixelsSrc & 0xf0) << 4);
else
- *pixelsDst = toOrr | ((*pixelsSrc & 0x0f) << 8);
+ toOrr |= ((*pixelsSrc & 0x0f) << 8);
}
}
else
{
if (loopDstX & 1)
{
- toOrr = *pixelsDst & 0xff0f;
+ toOrr = *(vu16*)pixelsDst;
+ toOrr &= 0xff0f;
if (loopSrcX & 1)
- *pixelsDst = toOrr | ((*pixelsSrc & 0xf0) << 0);
+ toOrr |= ((*pixelsSrc & 0xf0) << 0);
else
- *pixelsDst = toOrr | ((*pixelsSrc & 0x0f) << 4);
+ toOrr |= ((*pixelsSrc & 0x0f) << 4);
}
else
{
- toOrr = *pixelsDst & 0xfff0;
+ toOrr = *(vu16*)pixelsDst;
+ toOrr &= 0xfff0;
if (loopSrcX & 1)
- *pixelsDst = toOrr | ((*pixelsSrc & 0xf0) >> 4);
+ toOrr |= ((*pixelsSrc & 0xf0) >> 4);
else
- *pixelsDst = toOrr | ((*pixelsSrc & 0x0f) >> 0);
+ toOrr |= ((*pixelsSrc & 0x0f) >> 0);
}
}
-
- // Needed to match, urgh.
- #ifndef NONMATCHING
- asm("":::"r4");
- pixelsDst++;pixelsDst--;
- #endif // NONMATCHING
+ *(vu16*)pixelsDst = toOrr;
}
}
}
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 51cc65c22..2a9304a4d 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -970,10 +970,13 @@ bool8 MetatileBehavior_IsUnableToEmerge(u8 metatileBehavior)
{
// BUG: The player is unintentionally able to emerge on water doors.
// Also the narrower underwater door in the underwater tileset has the wrong metatile behavior. This causes the dive glitch.
- // To fix that add || metatileBehavior == MB_WATER_DOOR to the if statement below and
- // change the metatile behavior of the narrower water door with porymaps tileset editor.
+ // To fix change the metatile behavior of the narrower water door with porymap's tileset editor.
if (metatileBehavior == MB_NO_SURFACING
- || metatileBehavior == MB_SEAWEED_NO_SURFACING)
+ || metatileBehavior == MB_SEAWEED_NO_SURFACING
+ #ifdef BUGFIX
+ || metatileBehavior == MB_WATER_DOOR
+ #endif
+ )
return TRUE;
else
return FALSE;
diff --git a/src/pokemon.c b/src/pokemon.c
index d4b785964..475373550 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2861,8 +2861,11 @@ void CalculateMonStats(struct Pokemon *mon)
currentHP = newMaxHP;
else if (currentHP != 0)
// BUG: currentHP is unintentionally able to become <= 0 after the instruction below. This causes the pomeg berry glitch.
- // To fix that set currentHP = 1 if currentHP <= 0.
currentHP += newMaxHP - oldMaxHP;
+ #ifdef BUGFIX
+ if (currentHP <= 0)
+ currentHP = 1;
+ #endif
else
return;
}
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index bfcf77b5c..58c174263 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -1041,6 +1041,15 @@ static void sub_817F77C(struct Sprite *sprite)
sprite->oam.matrixNum |= (sprite->hFlip << 3);
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
}
+#ifdef BUGFIX
+ else
+ {
+ // FIX: Reset these back to normal after they were changed so Poké Ball catch/release
+ // animations without a screen transition in between don't break
+ sprite->affineAnimPaused = FALSE;
+ sprite->affineAnims = gUnknown_082FF694;
+ }
+#endif // BUGFIX
}
static void pokemonanimfunc_01(struct Sprite *sprite)
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index eb288c978..db8f3d2bb 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -9329,10 +9329,11 @@ u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition)
{
u32 lvl;
- // BUG: Missed 'else' statement.
if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT && GetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], MON_DATA_SANITY_HAS_SPECIES))
lvl = GetLevelFromBoxMonExp(&gPokemonStoragePtr->boxes[boxId][boxPosition]);
- // else
+ #ifdef BUGFIX
+ else
+ #endif
lvl = 0;
return lvl;
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 04f7f3f06..fce2a893c 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2578,7 +2578,7 @@ static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mo
ScheduleBgCopyTilemapToVram(3);
}
-static void SetDexNumberColor(bool8 isMonShiny)
+static void SetMonPicBackgroundPalette(bool8 isMonShiny)
{
if (!isMonShiny)
SetBgTilemapPalette(3, 1, 4, 8, 8, 0);
@@ -2715,12 +2715,12 @@ static void PrintNotEggInfo(void)
if (!IsMonShiny(mon))
{
PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, gStringVar1, 0, 1, 0, 1);
- SetDexNumberColor(FALSE);
+ SetMonPicBackgroundPalette(FALSE);
}
else
{
PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, gStringVar1, 0, 1, 0, 7);
- SetDexNumberColor(TRUE);
+ SetMonPicBackgroundPalette(TRUE);
}
PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER);
}
@@ -2728,9 +2728,9 @@ static void PrintNotEggInfo(void)
{
ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER);
if (!IsMonShiny(mon))
- SetDexNumberColor(FALSE);
+ SetMonPicBackgroundPalette(FALSE);
else
- SetDexNumberColor(TRUE);
+ SetMonPicBackgroundPalette(TRUE);
}
StringCopy(gStringVar1, gText_LevelSymbol);
ConvertIntToDecimalStringN(gStringVar2, summary->level, STR_CONV_MODE_LEFT_ALIGN, 3);
diff --git a/src/region_map.c b/src/region_map.c
index 49b21be07..c2a5b4e9c 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -131,7 +131,11 @@ static const u16 sRegionMap_SpecialPlaceLocations[][2] =
{
{MAPSEC_UNDERWATER_105, MAPSEC_ROUTE_105},
{MAPSEC_UNDERWATER_124, MAPSEC_ROUTE_124},
+ #ifdef BUGFIX
+ {MAPSEC_UNDERWATER_125, MAPSEC_ROUTE_125},
+ #else
{MAPSEC_UNDERWATER_125, MAPSEC_ROUTE_129}, // BUG: Map will incorrectly display the name of Route 129 when diving on Route 125 (for Marine Cave only)
+ #endif
{MAPSEC_UNDERWATER_126, MAPSEC_ROUTE_126},
{MAPSEC_UNDERWATER_127, MAPSEC_ROUTE_127},
{MAPSEC_UNDERWATER_128, MAPSEC_ROUTE_128},
diff --git a/src/roulette.c b/src/roulette.c
index b4d1c4463..4173edcdb 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -463,8 +463,9 @@ static const struct WindowTemplate sWindowTemplates[] =
.paletteNum = 15,
.baseBlock = 0xC5
},
- // BUG: Array not terminated properly
- //DUMMY_WIN_TEMPLATE
+ #ifdef UBFIX
+ DUMMY_WIN_TEMPLATE,
+ #endif
};
static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] =
diff --git a/src/union_room.c b/src/union_room.c
index 3e80ffe37..479792a7c 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -478,7 +478,11 @@ static void Task_TryBecomeLinkLeader(u8 taskId)
// BUG: sPlayerActivityGroupSize was meant below, not gPlayerCurrActivity
// This will be false for all but ACTIVITY_BATTLE_DOUBLE and ACTIVITY_DECLINE
// All this changes is which of two texts gets printed
+ #ifdef BUGFIX
+ id = (GROUP_MAX(sPlayerActivityGroupSize) == 2) ? 0 : 1;
+ #else
id = (GROUP_MAX(gPlayerCurrActivity) == 2) ? 1 : 0;
+ #endif
if (PrintOnTextbox(&data->textState, sPlayerUnavailableTexts[id]))
{
data->playerCount = sub_8013398(data->field_0);
@@ -1320,7 +1324,11 @@ static bool32 IsPartnerActivityAcceptable(u32 activity, u32 linkGroup)
if (linkGroup == 0xFF)
return TRUE;
- if (linkGroup <= ARRAY_COUNT(sAcceptedActivityIds)) // UB: <= may access data outside the array
+ #ifdef UBFIX
+ if (linkGroup < ARRAY_COUNT(sAcceptedActivityIds))
+ #else
+ if (linkGroup <= ARRAY_COUNT(sAcceptedActivityIds))
+ #endif
{
const u8 *bytes = sAcceptedActivityIds[linkGroup];