Merge pull request #1757 from AsparagusEduardo/pret_clean2
Cleanup based on previous PRs
This commit is contained in:
+1
-1
@@ -103,7 +103,7 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *);
|
|||||||
#define DUMMY_OAM_DATA \
|
#define DUMMY_OAM_DATA \
|
||||||
{ \
|
{ \
|
||||||
.y = DISPLAY_HEIGHT, \
|
.y = DISPLAY_HEIGHT, \
|
||||||
.affineMode = 0, \
|
.affineMode = ST_OAM_AFFINE_OFF, \
|
||||||
.objMode = 0, \
|
.objMode = 0, \
|
||||||
.mosaic = FALSE, \
|
.mosaic = FALSE, \
|
||||||
.bpp = 0, \
|
.bpp = 0, \
|
||||||
|
|||||||
+2
-2
@@ -368,7 +368,7 @@ struct BattleStruct
|
|||||||
u8 faintedActionsState;
|
u8 faintedActionsState;
|
||||||
u8 faintedActionsBattlerId;
|
u8 faintedActionsBattlerId;
|
||||||
u16 expValue;
|
u16 expValue;
|
||||||
u8 field_52;
|
u8 scriptPartyIdx; // for printing the nickname
|
||||||
u8 sentInPokes;
|
u8 sentInPokes;
|
||||||
bool8 selectionScriptFinished[MAX_BATTLERS_COUNT];
|
bool8 selectionScriptFinished[MAX_BATTLERS_COUNT];
|
||||||
u8 battlerPartyIndexes[MAX_BATTLERS_COUNT];
|
u8 battlerPartyIndexes[MAX_BATTLERS_COUNT];
|
||||||
@@ -551,7 +551,7 @@ struct BattleHealthboxInfo
|
|||||||
u8 specialAnimActive:1; // x40
|
u8 specialAnimActive:1; // x40
|
||||||
u8 triedShinyMonAnim:1;
|
u8 triedShinyMonAnim:1;
|
||||||
u8 finishedShinyMonAnim:1;
|
u8 finishedShinyMonAnim:1;
|
||||||
u8 field_1_x1E:4;
|
u8 opponentDrawPartyStatusSummaryDelay:4;
|
||||||
u8 bgmRestored:1;
|
u8 bgmRestored:1;
|
||||||
u8 waitForCry:1;
|
u8 waitForCry:1;
|
||||||
u8 healthboxSlideInStarted:1;
|
u8 healthboxSlideInStarted:1;
|
||||||
|
|||||||
@@ -202,9 +202,7 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
|
|||||||
|
|
||||||
// emitters
|
// emitters
|
||||||
void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
|
void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
|
||||||
void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
|
|
||||||
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
|
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
|
||||||
void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
|
|
||||||
void BtlController_EmitLoadMonSprite(u8 bufferId);
|
void BtlController_EmitLoadMonSprite(u8 bufferId);
|
||||||
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
|
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
|
||||||
void BtlController_EmitReturnMonToBall(u8 bufferId, bool8 skipAnim);
|
void BtlController_EmitReturnMonToBall(u8 bufferId, bool8 skipAnim);
|
||||||
@@ -212,10 +210,7 @@ void BtlController_EmitDrawTrainerPic(u8 bufferId);
|
|||||||
void BtlController_EmitTrainerSlide(u8 bufferId);
|
void BtlController_EmitTrainerSlide(u8 bufferId);
|
||||||
void BtlController_EmitTrainerSlideBack(u8 bufferId);
|
void BtlController_EmitTrainerSlideBack(u8 bufferId);
|
||||||
void BtlController_EmitFaintAnimation(u8 bufferId);
|
void BtlController_EmitFaintAnimation(u8 bufferId);
|
||||||
void BtlController_EmitPaletteFade(u8 bufferId); // unused
|
|
||||||
void BtlController_EmitSuccessBallThrowAnim(u8 bufferId); // unused
|
|
||||||
void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
|
void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
|
||||||
void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data); // unused
|
|
||||||
void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
|
void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
|
||||||
void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
|
void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
|
||||||
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
||||||
@@ -224,24 +219,15 @@ void BtlController_EmitYesNoBox(u8 bufferId);
|
|||||||
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||||
void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder);
|
void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder);
|
||||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8 *data);
|
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8 *data);
|
||||||
void BtlController_EmitCmd23(u8 bufferId); // unused
|
|
||||||
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||||
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
|
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
|
||||||
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
|
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
|
||||||
void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
|
void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
|
||||||
void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused
|
|
||||||
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
||||||
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
|
|
||||||
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data); // unused
|
|
||||||
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data); // unused
|
|
||||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16);
|
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16);
|
||||||
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder);
|
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder);
|
||||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret);
|
void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret);
|
||||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret);
|
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret);
|
||||||
void BtlController_EmitClearUnkVar(u8 bufferId); // unused
|
|
||||||
void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused
|
|
||||||
void BtlController_EmitClearUnkFlag(u8 bufferId); // unused
|
|
||||||
void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused
|
|
||||||
void BtlController_EmitHitAnimation(u8 bufferId);
|
void BtlController_EmitHitAnimation(u8 bufferId);
|
||||||
void BtlController_EmitCantSwitch(u8 bufferId);
|
void BtlController_EmitCantSwitch(u8 bufferId);
|
||||||
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
|
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ struct BattleMsgData
|
|||||||
u16 lastItem;
|
u16 lastItem;
|
||||||
u8 lastAbility;
|
u8 lastAbility;
|
||||||
u8 scrActive;
|
u8 scrActive;
|
||||||
u8 unk1605E;
|
u8 bakScriptPartyIdx;
|
||||||
u8 hpScale;
|
u8 hpScale;
|
||||||
u8 itemEffectBattler;
|
u8 itemEffectBattler;
|
||||||
u8 moveType;
|
u8 moveType;
|
||||||
|
|||||||
@@ -31,8 +31,8 @@
|
|||||||
#define B_POSITION_OPPONENT_RIGHT 3
|
#define B_POSITION_OPPONENT_RIGHT 3
|
||||||
|
|
||||||
// These macros can be used with either battler ID or positions to get the partner or the opposite mon
|
// These macros can be used with either battler ID or positions to get the partner or the opposite mon
|
||||||
#define BATTLE_OPPOSITE(id) ((id) ^ 1)
|
#define BATTLE_OPPOSITE(id) ((id) ^ BIT_SIDE)
|
||||||
#define BATTLE_PARTNER(id) ((id) ^ 2)
|
#define BATTLE_PARTNER(id) ((id) ^ BIT_FLANK)
|
||||||
|
|
||||||
#define B_SIDE_PLAYER 0
|
#define B_SIDE_PLAYER 0
|
||||||
#define B_SIDE_OPPONENT 1
|
#define B_SIDE_OPPONENT 1
|
||||||
|
|||||||
@@ -351,14 +351,14 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves)
|
|||||||
// Decide a random target battlerId in doubles.
|
// Decide a random target battlerId in doubles.
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
gBattlerTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE);
|
gBattlerTarget = (Random() & BIT_FLANK) + BATTLE_OPPOSITE(GetBattlerSide(gActiveBattler));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
gBattlerTarget ^= BIT_FLANK;
|
gBattlerTarget ^= BIT_FLANK;
|
||||||
}
|
}
|
||||||
// There's only one choice in single battles.
|
// There's only one choice in single battles.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = sBattler_AI ^ BIT_SIDE;
|
gBattlerTarget = BATTLE_OPPOSITE(sBattler_AI);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Choose proper trainer ai scripts.
|
// Choose proper trainer ai scripts.
|
||||||
@@ -541,7 +541,7 @@ static u8 ChooseMoveOrAction_Doubles(void)
|
|||||||
bestMovePointsForTarget[i] = mostViableMovesScores[0];
|
bestMovePointsForTarget[i] = mostViableMovesScores[0];
|
||||||
|
|
||||||
// Don't use a move against ally if it has less than 100 points.
|
// Don't use a move against ally if it has less than 100 points.
|
||||||
if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100)
|
if (i == BATTLE_PARTNER(sBattler_AI) && bestMovePointsForTarget[i] < 100)
|
||||||
{
|
{
|
||||||
bestMovePointsForTarget[i] = -1;
|
bestMovePointsForTarget[i] = -1;
|
||||||
mostViableMovesScores[0] = mostViableMovesScores[0]; // Needed to match.
|
mostViableMovesScores[0] = mostViableMovesScores[0]; // Needed to match.
|
||||||
@@ -1151,9 +1151,9 @@ static u8 BattleAI_GetWantedBattler(u8 wantedBattler)
|
|||||||
default:
|
default:
|
||||||
return gBattlerTarget;
|
return gBattlerTarget;
|
||||||
case AI_USER_PARTNER:
|
case AI_USER_PARTNER:
|
||||||
return sBattler_AI ^ BIT_FLANK;
|
return BATTLE_PARTNER(sBattler_AI);
|
||||||
case AI_TARGET_PARTNER:
|
case AI_TARGET_PARTNER:
|
||||||
return gBattlerTarget ^ BIT_FLANK;
|
return BATTLE_PARTNER(gBattlerTarget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1316,7 +1316,7 @@ static void Cmd_count_usable_party_mons(void)
|
|||||||
{
|
{
|
||||||
u32 position;
|
u32 position;
|
||||||
battlerOnField1 = gBattlerPartyIndexes[battlerId];
|
battlerOnField1 = gBattlerPartyIndexes[battlerId];
|
||||||
position = GetBattlerPosition(battlerId) ^ BIT_FLANK;
|
position = BATTLE_PARTNER(GetBattlerPosition(battlerId));
|
||||||
battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(position)];
|
battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(position)];
|
||||||
}
|
}
|
||||||
else // In singles there's only one battlerId by side.
|
else // In singles there's only one battlerId by side.
|
||||||
@@ -1799,7 +1799,7 @@ static void Cmd_if_has_move(void)
|
|||||||
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
|
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
|
||||||
break;
|
break;
|
||||||
case AI_USER_PARTNER:
|
case AI_USER_PARTNER:
|
||||||
if (gBattleMons[sBattler_AI ^ BIT_FLANK].hp == 0)
|
if (gBattleMons[BATTLE_PARTNER(sBattler_AI)].hp == 0)
|
||||||
{
|
{
|
||||||
gAIScriptPtr += 8;
|
gAIScriptPtr += 8;
|
||||||
break;
|
break;
|
||||||
@@ -1808,7 +1808,7 @@ static void Cmd_if_has_move(void)
|
|||||||
{
|
{
|
||||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||||
{
|
{
|
||||||
if (gBattleMons[sBattler_AI ^ BIT_FLANK].moves[i] == *movePtr)
|
if (gBattleMons[BATTLE_PARTNER(sBattler_AI)].moves[i] == *movePtr)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -446,9 +446,7 @@ static bool8 ShouldSwitch(void)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
if (ABILITY_ON_FIELD2(ABILITY_MAGNET_PULL))
|
if (ABILITY_ON_FIELD2(ABILITY_MAGNET_PULL))
|
||||||
{
|
{
|
||||||
if (gBattleMons[gActiveBattler].type1 == TYPE_STEEL)
|
if (IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL))
|
||||||
return FALSE;
|
|
||||||
if (gBattleMons[gActiveBattler].type2 == TYPE_STEEL)
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||||
@@ -458,10 +456,10 @@ static bool8 ShouldSwitch(void)
|
|||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
battlerIn1 = *activeBattlerPtr;
|
battlerIn1 = *activeBattlerPtr;
|
||||||
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(*activeBattlerPtr) ^ BIT_FLANK)])
|
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(*activeBattlerPtr)))])
|
||||||
battlerIn2 = *activeBattlerPtr;
|
battlerIn2 = *activeBattlerPtr;
|
||||||
else
|
else
|
||||||
battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(*activeBattlerPtr) ^ BIT_FLANK);
|
battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(*activeBattlerPtr)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -557,7 +555,7 @@ void AI_TrySwitchOrUseItem(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
battlerIn1 = GetBattlerAtPosition(battlerIdentity);
|
battlerIn1 = GetBattlerAtPosition(battlerIdentity);
|
||||||
battlerIn2 = GetBattlerAtPosition(battlerIdentity ^ BIT_FLANK);
|
battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(battlerIdentity));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||||
@@ -601,7 +599,7 @@ void AI_TrySwitchOrUseItem(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8);
|
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, BATTLE_OPPOSITE(gActiveBattler) << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
||||||
@@ -653,10 +651,10 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
|||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
battlerIn1 = gActiveBattler;
|
battlerIn1 = gActiveBattler;
|
||||||
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)])
|
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))])
|
||||||
battlerIn2 = gActiveBattler;
|
battlerIn2 = gActiveBattler;
|
||||||
else
|
else
|
||||||
battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK);
|
battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)));
|
||||||
|
|
||||||
// UB: It considers the opponent only player's side even though it can battle alongside player.
|
// UB: It considers the opponent only player's side even though it can battle alongside player.
|
||||||
opposingBattler = Random() & BIT_FLANK;
|
opposingBattler = Random() & BIT_FLANK;
|
||||||
@@ -665,7 +663,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
opposingBattler = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_SIDE);
|
opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler)));
|
||||||
battlerIn1 = gActiveBattler;
|
battlerIn1 = gActiveBattler;
|
||||||
battlerIn2 = gActiveBattler;
|
battlerIn2 = gActiveBattler;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -883,7 +883,7 @@ static void Cmd_clearmonbg(void)
|
|||||||
if (sMonAnimTaskIdArray[0] != TASK_NONE)
|
if (sMonAnimTaskIdArray[0] != TASK_NONE)
|
||||||
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
|
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
|
||||||
if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != TASK_NONE)
|
if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != TASK_NONE)
|
||||||
gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
|
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE;
|
||||||
else
|
else
|
||||||
animBattlerId = 0;
|
animBattlerId = 0;
|
||||||
|
|
||||||
@@ -990,8 +990,8 @@ static void Cmd_clearmonbg_static(void)
|
|||||||
|
|
||||||
if (IsBattlerSpriteVisible(battlerId))
|
if (IsBattlerSpriteVisible(battlerId))
|
||||||
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
|
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
|
||||||
if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
|
if (animBattlerId > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId)))
|
||||||
gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
|
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE;
|
||||||
else
|
else
|
||||||
animBattlerId = 0;
|
animBattlerId = 0;
|
||||||
|
|
||||||
@@ -1017,7 +1017,7 @@ static void Task_ClearMonBgStatic(u8 taskId)
|
|||||||
|
|
||||||
if (IsBattlerSpriteVisible(battlerId))
|
if (IsBattlerSpriteVisible(battlerId))
|
||||||
ResetBattleAnimBg(toBG_2);
|
ResetBattleAnimBg(toBG_2);
|
||||||
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
|
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId)))
|
||||||
ResetBattleAnimBg(toBG_2 ^ 1);
|
ResetBattleAnimBg(toBG_2 ^ 1);
|
||||||
|
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ static void AnimMegahornHorn(struct Sprite *sprite)
|
|||||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||||
}
|
}
|
||||||
else if (!GetBattlerSide(gBattleAnimTarget))
|
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||||
{
|
{
|
||||||
StartSpriteAffineAnim(sprite, 1);
|
StartSpriteAffineAnim(sprite, 1);
|
||||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||||
@@ -230,7 +230,7 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite)
|
|||||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||||
StartSpriteAffineAnim(sprite, 2);
|
StartSpriteAffineAnim(sprite, 2);
|
||||||
}
|
}
|
||||||
else if (!GetBattlerSide(gBattleAnimTarget))
|
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||||
{
|
{
|
||||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||||
@@ -301,7 +301,7 @@ static void AnimStringWrap(struct Sprite *sprite)
|
|||||||
sprite->x += gBattleAnimArgs[0];
|
sprite->x += gBattleAnimArgs[0];
|
||||||
|
|
||||||
sprite->y += gBattleAnimArgs[1];
|
sprite->y += gBattleAnimArgs[1];
|
||||||
if (!GetBattlerSide(gBattleAnimTarget))
|
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||||
sprite->y += 8;
|
sprite->y += 8;
|
||||||
|
|
||||||
sprite->callback = AnimStringWrap_Step;
|
sprite->callback = AnimStringWrap_Step;
|
||||||
|
|||||||
@@ -777,8 +777,8 @@ void AnimTask_InitMementoShadow(u8 taskId)
|
|||||||
|
|
||||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||||
{
|
{
|
||||||
MoveBattlerSpriteToBG(gBattleAnimAttacker ^ 2, toBG2 ^ 1, TRUE);
|
MoveBattlerSpriteToBG(BATTLE_PARTNER(gBattleAnimAttacker), toBG2 ^ 1, TRUE);
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = FALSE;
|
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].invisible = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
|
|||||||
@@ -926,7 +926,7 @@ static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 activeSpritesId
|
|||||||
u16 y = GetEruptionLaunchRockInitialYPos(spriteId);
|
u16 y = GetEruptionLaunchRockInitialYPos(spriteId);
|
||||||
u16 x = gSprites[spriteId].x;
|
u16 x = gSprites[spriteId].x;
|
||||||
|
|
||||||
if(!GetBattlerSide(gBattleAnimAttacker))
|
if(GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||||
{
|
{
|
||||||
x -= 12;
|
x -= 12;
|
||||||
sign = 1;
|
sign = 1;
|
||||||
@@ -1228,7 +1228,7 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId)
|
|||||||
struct Task *task = &gTasks[taskId];
|
struct Task *task = &gTasks[taskId];
|
||||||
|
|
||||||
task->data[12] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1;
|
task->data[12] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1;
|
||||||
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK) + 1;
|
task->data[13] = IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)) + 1;
|
||||||
task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET);
|
task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET);
|
||||||
task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
|
task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
|
||||||
|
|
||||||
|
|||||||
@@ -910,8 +910,8 @@ static void AnimWhirlwindLine(struct Sprite * sprite)
|
|||||||
else
|
else
|
||||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||||
|
|
||||||
if ((gBattleAnimArgs[2] == ANIM_ATTACKER && !GetBattlerSide(gBattleAnimAttacker))
|
if ((gBattleAnimArgs[2] == ANIM_ATTACKER && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||||
|| (gBattleAnimArgs[2] == ANIM_TARGET && !GetBattlerSide(gBattleAnimTarget)))
|
|| (gBattleAnimArgs[2] == ANIM_TARGET && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER))
|
||||||
{
|
{
|
||||||
sprite->x += 8;
|
sprite->x += 8;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -814,7 +814,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
|
|||||||
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
|
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
|
||||||
{
|
{
|
||||||
if (battler != gBattleAnimAttacker
|
if (battler != gBattleAnimAttacker
|
||||||
&& battler != (gBattleAnimAttacker ^ 2)
|
&& battler != BATTLE_PARTNER(gBattleAnimAttacker)
|
||||||
&& IsBattlerSpriteVisible(battler))
|
&& IsBattlerSpriteVisible(battler))
|
||||||
{
|
{
|
||||||
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
|
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
|
||||||
|
|||||||
@@ -1458,7 +1458,7 @@ static void AnimHailBegin(struct Sprite *sprite)
|
|||||||
sprite->data[3], sprite->data[4], sprite->subpriority);
|
sprite->data[3], sprite->data[4], sprite->subpriority);
|
||||||
|
|
||||||
sprite->data[0] = spriteId;
|
sprite->data[0] = spriteId;
|
||||||
if (spriteId != 64)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[sprite->data[0]].callback = AnimHailContinue;
|
gSprites[sprite->data[0]].callback = AnimHailContinue;
|
||||||
gSprites[sprite->data[0]].data[6] = sprite->data[6];
|
gSprites[sprite->data[0]].data[6] = sprite->data[6];
|
||||||
|
|||||||
@@ -885,11 +885,11 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker);
|
gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimTarget);
|
gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gTasks[taskId].data[7])
|
if (gTasks[taskId].data[7])
|
||||||
|
|||||||
@@ -2519,7 +2519,7 @@ void AnimWeatherBallUp(struct Sprite *sprite)
|
|||||||
{
|
{
|
||||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||||
if (!GetBattlerSide(gBattleAnimAttacker))
|
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||||
sprite->data[0] = 5;
|
sprite->data[0] = 5;
|
||||||
else
|
else
|
||||||
sprite->data[0] = -10;
|
sprite->data[0] = -10;
|
||||||
@@ -2545,7 +2545,7 @@ void AnimWeatherBallDown(struct Sprite *sprite)
|
|||||||
sprite->data[0] = gBattleAnimArgs[2];
|
sprite->data[0] = gBattleAnimArgs[2];
|
||||||
sprite->data[2] = sprite->x + gBattleAnimArgs[4];
|
sprite->data[2] = sprite->x + gBattleAnimArgs[4];
|
||||||
sprite->data[4] = sprite->y + gBattleAnimArgs[5];
|
sprite->data[4] = sprite->y + gBattleAnimArgs[5];
|
||||||
if (!GetBattlerSide(gBattleAnimTarget))
|
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||||
{
|
{
|
||||||
x = (u16)gBattleAnimArgs[4] + 30;
|
x = (u16)gBattleAnimArgs[4] + 30;
|
||||||
sprite->x += x;
|
sprite->x += x;
|
||||||
|
|||||||
@@ -570,7 +570,7 @@ static void AnimDefensiveWall_Step5(struct Sprite *sprite)
|
|||||||
if (IsBattlerSpriteVisible(battler))
|
if (IsBattlerSpriteVisible(battler))
|
||||||
ResetBattleAnimBg(toBG2);
|
ResetBattleAnimBg(toBG2);
|
||||||
|
|
||||||
battler = battlerCopy ^ 2;
|
battler = BATTLE_PARTNER(battlerCopy);
|
||||||
if (IsBattlerSpriteVisible(battler))
|
if (IsBattlerSpriteVisible(battler))
|
||||||
ResetBattleAnimBg(toBG2 ^ var0);
|
ResetBattleAnimBg(toBG2 ^ var0);
|
||||||
}
|
}
|
||||||
@@ -918,7 +918,7 @@ static void AnimTask_SkillSwap_Step(u8 taskId)
|
|||||||
{
|
{
|
||||||
task->data[1] = 0;
|
task->data[1] = 0;
|
||||||
spriteId = CreateSprite(&gSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0);
|
spriteId = CreateSprite(&gSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0);
|
||||||
if (spriteId != 64)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteId].data[0] = 16;
|
gSprites[spriteId].data[0] = 16;
|
||||||
gSprites[spriteId].data[2] = task->data[13];
|
gSprites[spriteId].data[2] = task->data[13];
|
||||||
|
|||||||
@@ -368,16 +368,13 @@ static void TryShinyAnimAfterMonAnim(void)
|
|||||||
{
|
{
|
||||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||||
}
|
}
|
||||||
else
|
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||||
{
|
{
|
||||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||||
{
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
LinkOpponentBufferExecCompleted();
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
|
||||||
LinkOpponentBufferExecCompleted();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1758,14 +1755,14 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void)
|
|||||||
|
|
||||||
if (gBattleBufferA[gActiveBattler][2] != 0)
|
if (gBattleBufferA[gActiveBattler][2] != 0)
|
||||||
{
|
{
|
||||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
|
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2)
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ static void Intro_WaitForHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
finished = TRUE;
|
finished = TRUE;
|
||||||
}
|
}
|
||||||
@@ -236,7 +236,7 @@ static void Intro_WaitForHealthbox(void)
|
|||||||
static void Intro_ShowHealthbox(void)
|
static void Intro_ShowHealthbox(void)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||||
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1)
|
&& ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1)
|
||||||
@@ -245,10 +245,10 @@ static void Intro_ShowHealthbox(void)
|
|||||||
|
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
|
|||||||
@@ -234,25 +234,25 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
healthboxAnimDone = TRUE;
|
healthboxAnimDone = TRUE;
|
||||||
twoMons = TRUE;
|
twoMons = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattleControllerOpponentHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler];
|
gBattleControllerOpponentHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler];
|
||||||
gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK];
|
gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)];
|
||||||
|
|
||||||
if (healthboxAnimDone)
|
if (healthboxAnimDone)
|
||||||
{
|
{
|
||||||
if (twoMons == TRUE)
|
if (twoMons == TRUE)
|
||||||
{
|
{
|
||||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
}
|
}
|
||||||
@@ -263,8 +263,8 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (GetBattlerPosition(gActiveBattler) == 3)
|
if (GetBattlerPosition(gActiveBattler) == 3)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
{
|
{
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
@@ -296,20 +296,20 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
||||||
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||||
&& IsDoubleBattle()
|
&& IsDoubleBattle()
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler);
|
StartHealthboxSlideIn(gActiveBattler);
|
||||||
@@ -320,7 +320,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||||
&& !IsCryPlayingOrClearCrySongs())
|
&& !IsCryPlayingOrClearCrySongs())
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||||
@@ -349,8 +349,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
&& gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
battlerAnimsDone = TRUE;
|
battlerAnimsDone = TRUE;
|
||||||
}
|
}
|
||||||
@@ -360,8 +360,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
|
SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES));
|
||||||
}
|
}
|
||||||
|
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
@@ -1929,14 +1929,14 @@ static void OpponentHandleDrawPartyStatusSummary(void)
|
|||||||
|
|
||||||
if (gBattleBufferA[gActiveBattler][2] != 0)
|
if (gBattleBufferA[gActiveBattler][2] != 0)
|
||||||
{
|
{
|
||||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
|
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2)
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -498,7 +498,7 @@ static void HandleInputChooseMove(void)
|
|||||||
if (moveTarget & MOVE_TARGET_USER)
|
if (moveTarget & MOVE_TARGET_USER)
|
||||||
gMultiUsePlayerCursor = gActiveBattler;
|
gMultiUsePlayerCursor = gActiveBattler;
|
||||||
else
|
else
|
||||||
gMultiUsePlayerCursor = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE);
|
gMultiUsePlayerCursor = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler) & BIT_SIDE));
|
||||||
|
|
||||||
if (!gBattleBufferA[gActiveBattler][1]) // not a double battle
|
if (!gBattleBufferA[gActiveBattler][1]) // not a double battle
|
||||||
{
|
{
|
||||||
@@ -950,26 +950,26 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
healthboxAnimDone = TRUE;
|
healthboxAnimDone = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If healthbox and shiny anim are done
|
// If healthbox and shiny anim are done
|
||||||
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
{
|
{
|
||||||
// Reset shiny anim (even if it didn't occur)
|
// Reset shiny anim (even if it didn't occur)
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
|
|
||||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
||||||
|
|
||||||
if (IsDoubleBattle())
|
if (IsDoubleBattle())
|
||||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK);
|
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], BATTLE_PARTNER(gActiveBattler));
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
||||||
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
||||||
@@ -987,21 +987,21 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||||
|
|
||||||
// Start shiny animation if applicable for 2nd pokemon
|
// Start shiny animation if applicable for 2nd pokemon
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
|
|
||||||
// Show healthbox after ball anim
|
// Show healthbox after ball anim
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler);
|
StartHealthboxSlideIn(gActiveBattler);
|
||||||
@@ -1013,7 +1013,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
// Restore bgm after cry has played and healthbox anim is started
|
// Restore bgm after cry has played and healthbox anim is started
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||||
&& !IsCryPlayingOrClearCrySongs())
|
&& !IsCryPlayingOrClearCrySongs())
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||||
@@ -1040,8 +1040,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
&& gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
battlerAnimsDone = TRUE;
|
battlerAnimsDone = TRUE;
|
||||||
}
|
}
|
||||||
@@ -1051,7 +1051,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
if (bgmRestored && battlerAnimsDone)
|
if (bgmRestored && battlerAnimsDone)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
|
|
||||||
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
||||||
@@ -1178,7 +1178,7 @@ static void Task_GiveExpToMon(u8 taskId)
|
|||||||
gActiveBattler = savedActiveBattler;
|
gActiveBattler = savedActiveBattler;
|
||||||
|
|
||||||
if (IsDoubleBattle() == TRUE
|
if (IsDoubleBattle() == TRUE
|
||||||
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]))
|
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]))
|
||||||
gTasks[taskId].func = Task_LaunchLvlUpAnim;
|
gTasks[taskId].func = Task_LaunchLvlUpAnim;
|
||||||
else
|
else
|
||||||
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
|
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
|
||||||
@@ -1273,7 +1273,7 @@ static void Task_LaunchLvlUpAnim(u8 taskId)
|
|||||||
u8 battlerId = gTasks[taskId].tExpTask_battler;
|
u8 battlerId = gTasks[taskId].tExpTask_battler;
|
||||||
u8 monIndex = gTasks[taskId].tExpTask_monId;
|
u8 monIndex = gTasks[taskId].tExpTask_monId;
|
||||||
|
|
||||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||||
battlerId ^= BIT_FLANK;
|
battlerId ^= BIT_FLANK;
|
||||||
|
|
||||||
InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
|
InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
|
||||||
@@ -1290,8 +1290,8 @@ static void Task_UpdateLvlInHealthbox(u8 taskId)
|
|||||||
|
|
||||||
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value.
|
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value.
|
||||||
|
|
||||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battlerId)], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||||
else
|
else
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||||
|
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ static void Intro_WaitForHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
finished = TRUE;
|
finished = TRUE;
|
||||||
}
|
}
|
||||||
@@ -248,7 +248,7 @@ static void Intro_WaitForHealthbox(void)
|
|||||||
static void Intro_ShowHealthbox(void)
|
static void Intro_ShowHealthbox(void)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||||
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1)
|
&& ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1)
|
||||||
@@ -257,10 +257,10 @@ static void Intro_ShowHealthbox(void)
|
|||||||
|
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
@@ -336,7 +336,7 @@ static void Task_GiveExpToMon(u8 taskId)
|
|||||||
gActiveBattler = savedActiveBank;
|
gActiveBattler = savedActiveBank;
|
||||||
|
|
||||||
if (IsDoubleBattle() == TRUE
|
if (IsDoubleBattle() == TRUE
|
||||||
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]))
|
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]))
|
||||||
gTasks[taskId].func = Task_LaunchLvlUpAnim;
|
gTasks[taskId].func = Task_LaunchLvlUpAnim;
|
||||||
else
|
else
|
||||||
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
|
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
|
||||||
@@ -431,7 +431,7 @@ static void Task_LaunchLvlUpAnim(u8 taskId)
|
|||||||
u8 battlerId = gTasks[taskId].tExpTask_bank;
|
u8 battlerId = gTasks[taskId].tExpTask_bank;
|
||||||
u8 monIndex = gTasks[taskId].tExpTask_monId;
|
u8 monIndex = gTasks[taskId].tExpTask_monId;
|
||||||
|
|
||||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||||
battlerId ^= BIT_FLANK;
|
battlerId ^= BIT_FLANK;
|
||||||
|
|
||||||
InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
|
InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
|
||||||
@@ -448,8 +448,8 @@ static void Task_UpdateLvlInHealthbox(u8 taskId)
|
|||||||
|
|
||||||
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
|
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
|
||||||
|
|
||||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battlerId)], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||||
else
|
else
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||||
|
|
||||||
|
|||||||
@@ -226,9 +226,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded)
|
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].animEnded)
|
||||||
healthboxAnimDone = TRUE;
|
healthboxAnimDone = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,13 +238,13 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||||
return;
|
return;
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
}
|
}
|
||||||
@@ -263,19 +263,19 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler);
|
StartHealthboxSlideIn(gActiveBattler);
|
||||||
@@ -286,7 +286,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||||
&& !IsCryPlayingOrClearCrySongs())
|
&& !IsCryPlayingOrClearCrySongs())
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||||
@@ -317,8 +317,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
&& gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
battlerAnimsDone = TRUE;
|
battlerAnimsDone = TRUE;
|
||||||
}
|
}
|
||||||
@@ -328,8 +328,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
|
SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES));
|
||||||
}
|
}
|
||||||
|
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
@@ -1698,14 +1698,14 @@ static void RecordedOpponentHandleDrawPartyStatusSummary(void)
|
|||||||
|
|
||||||
if (gBattleBufferA[gActiveBattler][2] != 0)
|
if (gBattleBufferA[gActiveBattler][2] != 0)
|
||||||
{
|
{
|
||||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
|
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2)
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -215,27 +215,27 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
healthboxAnimDone = TRUE;
|
healthboxAnimDone = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||||
|
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
|
|
||||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
||||||
if (IsDoubleBattle())
|
if (IsDoubleBattle())
|
||||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK);
|
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], BATTLE_PARTNER(gActiveBattler));
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
||||||
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
||||||
@@ -251,7 +251,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
healthboxAnimDone = TRUE;
|
healthboxAnimDone = TRUE;
|
||||||
}
|
}
|
||||||
@@ -278,21 +278,21 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler);
|
StartHealthboxSlideIn(gActiveBattler);
|
||||||
@@ -303,7 +303,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
|
|
||||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||||
&& !IsCryPlayingOrClearCrySongs())
|
&& !IsCryPlayingOrClearCrySongs())
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||||
@@ -327,7 +327,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
|
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
||||||
|
|||||||
@@ -289,21 +289,21 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
|||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
|
|
||||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||||
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||||
{
|
{
|
||||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||||
}
|
}
|
||||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||||
@@ -324,13 +324,13 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
|||||||
healthboxAnimDone = TRUE;
|
healthboxAnimDone = TRUE;
|
||||||
|
|
||||||
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||||
{
|
{
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||||
|
|
||||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||||
|
|||||||
+33
-21
@@ -8,7 +8,6 @@
|
|||||||
#include "link.h"
|
#include "link.h"
|
||||||
#include "link_rfu.h"
|
#include "link_rfu.h"
|
||||||
#include "party_menu.h"
|
#include "party_menu.h"
|
||||||
#include "pokemon.h"
|
|
||||||
#include "recorded_battle.h"
|
#include "recorded_battle.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
@@ -595,7 +594,7 @@ static void SetBattlePartyIds(void)
|
|||||||
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
|
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
|
||||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||||
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0)
|
&& !GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG))
|
||||||
{
|
{
|
||||||
gBattlerPartyIndexes[i] = j;
|
gBattlerPartyIndexes[i] = j;
|
||||||
break;
|
break;
|
||||||
@@ -606,7 +605,7 @@ static void SetBattlePartyIds(void)
|
|||||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
|
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
|
||||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||||
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0)
|
&& !GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG))
|
||||||
{
|
{
|
||||||
gBattlerPartyIndexes[i] = j;
|
gBattlerPartyIndexes[i] = j;
|
||||||
break;
|
break;
|
||||||
@@ -620,7 +619,7 @@ static void SetBattlePartyIds(void)
|
|||||||
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
|
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
|
||||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2.
|
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2.
|
||||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||||
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0
|
&& !GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG)
|
||||||
&& gBattlerPartyIndexes[i - 2] != j)
|
&& gBattlerPartyIndexes[i - 2] != j)
|
||||||
{
|
{
|
||||||
gBattlerPartyIndexes[i] = j;
|
gBattlerPartyIndexes[i] = j;
|
||||||
@@ -632,7 +631,7 @@ static void SetBattlePartyIds(void)
|
|||||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
|
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
|
||||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||||
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0
|
&& !GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG)
|
||||||
&& gBattlerPartyIndexes[i - 2] != j)
|
&& gBattlerPartyIndexes[i - 2] != j)
|
||||||
{
|
{
|
||||||
gBattlerPartyIndexes[i] = j;
|
gBattlerPartyIndexes[i] = j;
|
||||||
@@ -913,7 +912,8 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
|
// Unused
|
||||||
|
static void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
|
sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
|
||||||
sBattleBuffersTransferData[1] = monId;
|
sBattleBuffersTransferData[1] = monId;
|
||||||
@@ -934,7 +934,8 @@ void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 b
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
|
// Unused
|
||||||
|
static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
@@ -1007,7 +1008,8 @@ void BtlController_EmitFaintAnimation(u8 bufferId)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitPaletteFade(u8 bufferId)
|
// Unused
|
||||||
|
static void BtlController_EmitPaletteFade(u8 bufferId)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
|
sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
|
||||||
sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
|
sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
|
||||||
@@ -1016,7 +1018,8 @@ void BtlController_EmitPaletteFade(u8 bufferId)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
|
// Unused
|
||||||
|
static void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||||
sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||||
@@ -1032,7 +1035,8 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
|
// Unused
|
||||||
|
static void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
@@ -1089,7 +1093,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
|
|||||||
stringInfo->lastItem = gLastUsedItem;
|
stringInfo->lastItem = gLastUsedItem;
|
||||||
stringInfo->lastAbility = gLastUsedAbility;
|
stringInfo->lastAbility = gLastUsedAbility;
|
||||||
stringInfo->scrActive = gBattleScripting.battler;
|
stringInfo->scrActive = gBattleScripting.battler;
|
||||||
stringInfo->unk1605E = gBattleStruct->field_52;
|
stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx;
|
||||||
stringInfo->hpScale = gBattleStruct->hpScale;
|
stringInfo->hpScale = gBattleStruct->hpScale;
|
||||||
stringInfo->itemEffectBattler = gPotentialItemEffectBattler;
|
stringInfo->itemEffectBattler = gPotentialItemEffectBattler;
|
||||||
stringInfo->moveType = gBattleMoves[gCurrentMove].type;
|
stringInfo->moveType = gBattleMoves[gCurrentMove].type;
|
||||||
@@ -1121,7 +1125,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
|
|||||||
stringInfo->lastItem = gLastUsedItem;
|
stringInfo->lastItem = gLastUsedItem;
|
||||||
stringInfo->lastAbility = gLastUsedAbility;
|
stringInfo->lastAbility = gLastUsedAbility;
|
||||||
stringInfo->scrActive = gBattleScripting.battler;
|
stringInfo->scrActive = gBattleScripting.battler;
|
||||||
stringInfo->unk1605E = gBattleStruct->field_52;
|
stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx;
|
||||||
|
|
||||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||||
stringInfo->abilities[i] = gBattleMons[i].ability;
|
stringInfo->abilities[i] = gBattleMons[i].ability;
|
||||||
@@ -1191,7 +1195,8 @@ void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abili
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // Only 7 bytes were written.
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // Only 7 bytes were written.
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitCmd23(u8 bufferId)
|
// Unused
|
||||||
|
static void BtlController_EmitCmd23(u8 bufferId)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_23;
|
sBattleBuffersTransferData[0] = CONTROLLER_23;
|
||||||
sBattleBuffersTransferData[1] = CONTROLLER_23;
|
sBattleBuffersTransferData[1] = CONTROLLER_23;
|
||||||
@@ -1245,7 +1250,8 @@ void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitStatusXor(u8 bufferId, u8 b)
|
// Unused
|
||||||
|
static void BtlController_EmitStatusXor(u8 bufferId, u8 b)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
|
sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
|
||||||
sBattleBuffersTransferData[1] = b;
|
sBattleBuffersTransferData[1] = b;
|
||||||
@@ -1265,7 +1271,8 @@ void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
|
// Unused
|
||||||
|
static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
@@ -1282,7 +1289,7 @@ void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Unused
|
// Unused
|
||||||
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
|
static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
@@ -1297,7 +1304,8 @@ void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
|
// Unused
|
||||||
|
static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
@@ -1347,7 +1355,8 @@ void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitClearUnkVar(u8 bufferId)
|
// Unused
|
||||||
|
static void BtlController_EmitClearUnkVar(u8 bufferId)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR;
|
sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR;
|
||||||
sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR;
|
sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR;
|
||||||
@@ -1356,14 +1365,16 @@ void BtlController_EmitClearUnkVar(u8 bufferId)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitSetUnkVar(u8 bufferId, u8 b)
|
// Unused
|
||||||
|
static void BtlController_EmitSetUnkVar(u8 bufferId, u8 b)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR;
|
sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR;
|
||||||
sBattleBuffersTransferData[1] = b;
|
sBattleBuffersTransferData[1] = b;
|
||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitClearUnkFlag(u8 bufferId)
|
// Unused
|
||||||
|
static void BtlController_EmitClearUnkFlag(u8 bufferId)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG;
|
sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG;
|
||||||
sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG;
|
sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG;
|
||||||
@@ -1372,7 +1383,8 @@ void BtlController_EmitClearUnkFlag(u8 bufferId)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitToggleUnkFlag(u8 bufferId)
|
// Unused
|
||||||
|
static void BtlController_EmitToggleUnkFlag(u8 bufferId)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG;
|
sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG;
|
||||||
sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG;
|
sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG;
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
|
|||||||
else if (moveTarget == MOVE_TARGET_SELECTED)
|
else if (moveTarget == MOVE_TARGET_SELECTED)
|
||||||
chosenMoveId |= GetBattlePalaceTarget();
|
chosenMoveId |= GetBattlePalaceTarget();
|
||||||
else
|
else
|
||||||
chosenMoveId |= (GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE) << 8);
|
chosenMoveId |= (GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler) & BIT_SIDE)) << 8);
|
||||||
|
|
||||||
return chosenMoveId;
|
return chosenMoveId;
|
||||||
}
|
}
|
||||||
@@ -310,7 +310,7 @@ static u16 GetBattlePalaceTarget(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
|
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
|
||||||
return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
|
return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8;
|
||||||
|
|
||||||
switch (gBattlePalaceNatureToMoveTarget[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)])
|
switch (gBattlePalaceNatureToMoveTarget[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)])
|
||||||
{
|
{
|
||||||
@@ -325,11 +325,11 @@ static u16 GetBattlePalaceTarget(void)
|
|||||||
else
|
else
|
||||||
return opposing2 << 8;
|
return opposing2 << 8;
|
||||||
case PALACE_TARGET_RANDOM:
|
case PALACE_TARGET_RANDOM:
|
||||||
return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
|
return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (gActiveBattler ^ BIT_SIDE) << 8;
|
return BATTLE_OPPOSITE(gActiveBattler) << 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait for the pokemon to finish appearing out from the pokeball on send out
|
// Wait for the pokemon to finish appearing out from the pokeball on send out
|
||||||
@@ -1060,7 +1060,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
|
|||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong)
|
if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong)
|
||||||
{
|
{
|
||||||
if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
|
if (!gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(battlerId)].lowHpSong)
|
||||||
PlaySE(SE_LOW_HEALTH);
|
PlaySE(SE_LOW_HEALTH);
|
||||||
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1;
|
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1;
|
||||||
}
|
}
|
||||||
@@ -1073,7 +1073,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
|
|||||||
m4aSongNumStop(SE_LOW_HEALTH);
|
m4aSongNumStop(SE_LOW_HEALTH);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
|
if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(battlerId)].lowHpSong)
|
||||||
{
|
{
|
||||||
m4aSongNumStop(SE_LOW_HEALTH);
|
m4aSongNumStop(SE_LOW_HEALTH);
|
||||||
return;
|
return;
|
||||||
@@ -1087,7 +1087,7 @@ void BattleStopLowHpSound(void)
|
|||||||
|
|
||||||
gBattleSpritesDataPtr->battlerData[playerBattler].lowHpSong = 0;
|
gBattleSpritesDataPtr->battlerData[playerBattler].lowHpSong = 0;
|
||||||
if (IsDoubleBattle())
|
if (IsDoubleBattle())
|
||||||
gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0;
|
gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(playerBattler)].lowHpSong = 0;
|
||||||
|
|
||||||
m4aSongNumStop(SE_LOW_HEALTH);
|
m4aSongNumStop(SE_LOW_HEALTH);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -4432,7 +4432,7 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
|
|
||||||
if (((gBattleTypeFlags & BATTLE_TYPE_MULTI) || !(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
if (((gBattleTypeFlags & BATTLE_TYPE_MULTI) || !(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||||
|| (position & BIT_FLANK) != B_FLANK_LEFT
|
|| (position & BIT_FLANK) != B_FLANK_LEFT
|
||||||
|| (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
|
|| (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))]))
|
||||||
{
|
{
|
||||||
BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_MSG_STOP_BOUNCE, i);
|
BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_MSG_STOP_BOUNCE, i);
|
||||||
}
|
}
|
||||||
@@ -4545,9 +4545,9 @@ static void UpdateBattlerPartyOrdersOnSwitch(void)
|
|||||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
|
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
|
||||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleBufferB[gActiveBattler][3];
|
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleBufferB[gActiveBattler][3];
|
||||||
|
|
||||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0);
|
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0);
|
||||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
|
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
|
||||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3];
|
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2063,7 +2063,7 @@ void BufferStringBattle(u16 stringID)
|
|||||||
gLastUsedItem = gBattleMsgDataPtr->lastItem;
|
gLastUsedItem = gBattleMsgDataPtr->lastItem;
|
||||||
gLastUsedAbility = gBattleMsgDataPtr->lastAbility;
|
gLastUsedAbility = gBattleMsgDataPtr->lastAbility;
|
||||||
gBattleScripting.battler = gBattleMsgDataPtr->scrActive;
|
gBattleScripting.battler = gBattleMsgDataPtr->scrActive;
|
||||||
*(&gBattleStruct->field_52) = gBattleMsgDataPtr->unk1605E;
|
*(&gBattleStruct->scriptPartyIdx) = gBattleMsgDataPtr->bakScriptPartyIdx;
|
||||||
*(&gBattleStruct->hpScale) = gBattleMsgDataPtr->hpScale;
|
*(&gBattleStruct->hpScale) = gBattleMsgDataPtr->hpScale;
|
||||||
gPotentialItemEffectBattler = gBattleMsgDataPtr->itemEffectBattler;
|
gPotentialItemEffectBattler = gBattleMsgDataPtr->itemEffectBattler;
|
||||||
*(&gBattleStruct->stringMoveType) = gBattleMsgDataPtr->moveType;
|
*(&gBattleStruct->stringMoveType) = gBattleMsgDataPtr->moveType;
|
||||||
@@ -2713,7 +2713,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case B_TXT_26: // ?
|
case B_TXT_26: // ?
|
||||||
HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, *(&gBattleStruct->field_52))
|
HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, *(&gBattleStruct->scriptPartyIdx))
|
||||||
break;
|
break;
|
||||||
case B_TXT_PC_CREATOR_NAME: // lanette pc
|
case B_TXT_PC_CREATOR_NAME: // lanette pc
|
||||||
if (FlagGet(FLAG_SYS_PC_LANETTE))
|
if (FlagGet(FLAG_SYS_PC_LANETTE))
|
||||||
|
|||||||
@@ -5087,7 +5087,7 @@ static void Cmd_openpartyscreen(void)
|
|||||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
|
||||||
gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
|
gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
|
||||||
|
|
||||||
BtlController_EmitChoosePokemon(BUFFER_A, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]);
|
BtlController_EmitChoosePokemon(BUFFER_A, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + BATTLE_PARTNER(gActiveBattler)), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]);
|
||||||
MarkBattlerForControllerExec(gActiveBattler);
|
MarkBattlerForControllerExec(gActiveBattler);
|
||||||
|
|
||||||
gBattlescriptCurrInstr += 6;
|
gBattlescriptCurrInstr += 6;
|
||||||
@@ -5108,7 +5108,7 @@ static void Cmd_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(battlerId) ^ BIT_SIDE);
|
gActiveBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battlerId)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
||||||
gActiveBattler ^= BIT_FLANK;
|
gActiveBattler ^= BIT_FLANK;
|
||||||
|
|
||||||
@@ -5164,9 +5164,9 @@ static void Cmd_switchhandleorder(void)
|
|||||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
|
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
|
||||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleBufferB[gActiveBattler][3];
|
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleBufferB[gActiveBattler][3];
|
||||||
|
|
||||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0);
|
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0);
|
||||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
|
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
|
||||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3];
|
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3];
|
||||||
}
|
}
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||||
{
|
{
|
||||||
@@ -6233,7 +6233,7 @@ static void Cmd_hpthresholds(void)
|
|||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
||||||
opposingBattler = gActiveBattler ^ BIT_SIDE;
|
opposingBattler = BATTLE_OPPOSITE(gActiveBattler);
|
||||||
|
|
||||||
result = gBattleMons[opposingBattler].hp * 100 / gBattleMons[opposingBattler].maxHP;
|
result = gBattleMons[opposingBattler].hp * 100 / gBattleMons[opposingBattler].maxHP;
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
@@ -6261,7 +6261,7 @@ static void Cmd_hpthresholds2(void)
|
|||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
||||||
opposingBattler = gActiveBattler ^ BIT_SIDE;
|
opposingBattler = BATTLE_OPPOSITE(gActiveBattler);
|
||||||
hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBattler));
|
hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBattler));
|
||||||
result = (hpSwitchout - gBattleMons[opposingBattler].hp) * 100 / hpSwitchout;
|
result = (hpSwitchout - gBattleMons[opposingBattler].hp) * 100 / hpSwitchout;
|
||||||
|
|
||||||
@@ -6299,7 +6299,7 @@ static void Cmd_various(void)
|
|||||||
break;
|
break;
|
||||||
case VARIOUS_SET_MAGIC_COAT_TARGET:
|
case VARIOUS_SET_MAGIC_COAT_TARGET:
|
||||||
gBattlerAttacker = gBattlerTarget;
|
gBattlerAttacker = gBattlerTarget;
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
|
if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
|
||||||
gBattlerTarget = gSideTimers[side].followmeTarget;
|
gBattlerTarget = gSideTimers[side].followmeTarget;
|
||||||
else
|
else
|
||||||
@@ -7189,7 +7189,7 @@ static void Cmd_forcerandomswitch(void)
|
|||||||
monsCount = PARTY_SIZE / 2;
|
monsCount = PARTY_SIZE / 2;
|
||||||
minNeeded = 1;
|
minNeeded = 1;
|
||||||
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
||||||
battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
|
battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)];
|
||||||
}
|
}
|
||||||
else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|
else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||||
|| (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK))
|
|| (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK))
|
||||||
@@ -7207,7 +7207,7 @@ static void Cmd_forcerandomswitch(void)
|
|||||||
monsCount = PARTY_SIZE / 2;
|
monsCount = PARTY_SIZE / 2;
|
||||||
minNeeded = 1;
|
minNeeded = 1;
|
||||||
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
||||||
battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
|
battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)];
|
||||||
}
|
}
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
||||||
{
|
{
|
||||||
@@ -7234,7 +7234,7 @@ static void Cmd_forcerandomswitch(void)
|
|||||||
minNeeded = 1;
|
minNeeded = 1;
|
||||||
}
|
}
|
||||||
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
||||||
battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
|
battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)];
|
||||||
}
|
}
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
@@ -7243,7 +7243,7 @@ static void Cmd_forcerandomswitch(void)
|
|||||||
monsCount = PARTY_SIZE;
|
monsCount = PARTY_SIZE;
|
||||||
minNeeded = 2;
|
minNeeded = 2;
|
||||||
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
||||||
battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
|
battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -7296,7 +7296,7 @@ static void Cmd_forcerandomswitch(void)
|
|||||||
|| (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
|| (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0);
|
SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0);
|
||||||
SwitchPartyOrderLinkMulti(gBattlerTarget ^ BIT_FLANK, i, 1);
|
SwitchPartyOrderLinkMulti(BATTLE_PARTNER(gBattlerTarget), i, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||||
@@ -7642,7 +7642,7 @@ static void Cmd_updatestatusicon(void)
|
|||||||
}
|
}
|
||||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
|
gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker)));
|
||||||
if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
|
if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
|
||||||
{
|
{
|
||||||
BtlController_EmitStatusIconUpdate(BUFFER_A, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
|
BtlController_EmitStatusIconUpdate(BUFFER_A, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
|
||||||
@@ -8310,7 +8310,7 @@ static void Cmd_healpartystatus(void)
|
|||||||
gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_ATTACKER;
|
gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_ATTACKER;
|
||||||
}
|
}
|
||||||
|
|
||||||
gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
|
gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker)));
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
||||||
&& !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
|
&& !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
|
||||||
@@ -8360,7 +8360,7 @@ static void Cmd_healpartystatus(void)
|
|||||||
gBattleMons[gBattlerAttacker].status1 = 0;
|
gBattleMons[gBattlerAttacker].status1 = 0;
|
||||||
gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE;
|
gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE;
|
||||||
|
|
||||||
gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
|
gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker)));
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
||||||
&& !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
|
&& !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
|
||||||
{
|
{
|
||||||
@@ -8399,7 +8399,7 @@ static void Cmd_cursetarget(void)
|
|||||||
|
|
||||||
static void Cmd_trysetspikes(void)
|
static void Cmd_trysetspikes(void)
|
||||||
{
|
{
|
||||||
u8 targetSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
u8 targetSide = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
|
|
||||||
if (gSideTimers[targetSide].spikesAmount == 3)
|
if (gSideTimers[targetSide].spikesAmount == 3)
|
||||||
{
|
{
|
||||||
@@ -9068,7 +9068,7 @@ static void Cmd_settaunt(void)
|
|||||||
|
|
||||||
static void Cmd_trysethelpinghand(void)
|
static void Cmd_trysethelpinghand(void)
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker)));
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
||||||
&& !(gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
&& !(gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
@@ -9745,7 +9745,7 @@ static void Cmd_settypetoterrain(void)
|
|||||||
// Unused
|
// Unused
|
||||||
static void Cmd_pursuitdoubles(void)
|
static void Cmd_pursuitdoubles(void)
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
|
gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker)));
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
|
||||||
&& !(gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
&& !(gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
||||||
@@ -9781,7 +9781,7 @@ static void Cmd_snatchsetbattlers(void)
|
|||||||
// Brick Break
|
// Brick Break
|
||||||
static void Cmd_removelightscreenreflect(void)
|
static void Cmd_removelightscreenreflect(void)
|
||||||
{
|
{
|
||||||
u8 opposingSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
u8 opposingSide = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
|
|
||||||
if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer)
|
if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer)
|
||||||
{
|
{
|
||||||
@@ -9809,7 +9809,7 @@ static void Cmd_handleballthrow(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
gActiveBattler = gBattlerAttacker;
|
gActiveBattler = gBattlerAttacker;
|
||||||
gBattlerTarget = gBattlerAttacker ^ BIT_SIDE;
|
gBattlerTarget = BATTLE_OPPOSITE(gBattlerAttacker);
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||||
{
|
{
|
||||||
@@ -9951,18 +9951,18 @@ static void Cmd_handleballthrow(void)
|
|||||||
|
|
||||||
static void Cmd_givecaughtmon(void)
|
static void Cmd_givecaughtmon(void)
|
||||||
{
|
{
|
||||||
if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY)
|
if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]]) != MON_GIVEN_TO_PARTY)
|
||||||
{
|
{
|
||||||
if (!ShouldShowBoxWasFullMessage())
|
if (!ShouldShowBoxWasFullMessage())
|
||||||
{
|
{
|
||||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC;
|
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC;
|
||||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON)));
|
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON)));
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gStringVar2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
|
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gStringVar2);
|
||||||
StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to
|
StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to
|
||||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL;
|
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL;
|
||||||
}
|
}
|
||||||
@@ -9972,9 +9972,9 @@ static void Cmd_givecaughtmon(void)
|
|||||||
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL);
|
gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_SPECIES, NULL);
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||||
gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL);
|
gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_POKEBALL, NULL);
|
||||||
|
|
||||||
gBattlescriptCurrInstr++;
|
gBattlescriptCurrInstr++;
|
||||||
}
|
}
|
||||||
@@ -10162,13 +10162,13 @@ static void Cmd_trygivecaughtmonnick(void)
|
|||||||
case 2:
|
case 2:
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
|
|
||||||
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES),
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_SPECIES),
|
||||||
GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]),
|
GetMonGender(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]]),
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL),
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_PERSONALITY, NULL),
|
||||||
BattleMainCB2);
|
BattleMainCB2);
|
||||||
|
|
||||||
gBattleCommunication[MULTIUSE_STATE]++;
|
gBattleCommunication[MULTIUSE_STATE]++;
|
||||||
@@ -10177,7 +10177,7 @@ static void Cmd_trygivecaughtmonnick(void)
|
|||||||
case 3:
|
case 3:
|
||||||
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
SetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||||
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
+14
-14
@@ -146,7 +146,7 @@ void HandleAction_UseMove(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// choose target
|
// choose target
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer != 0
|
if (gSideTimers[side].followmeTimer != 0
|
||||||
&& gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
|
&& gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
|
||||||
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
|
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
|
||||||
@@ -200,13 +200,13 @@ void HandleAction_UseMove(void)
|
|||||||
{
|
{
|
||||||
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -239,7 +239,7 @@ void HandleAction_UseMove(void)
|
|||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]
|
||||||
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -249,13 +249,13 @@ void HandleAction_UseMove(void)
|
|||||||
{
|
{
|
||||||
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1799,7 +1799,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
|
|||||||
BattleScriptExecute(BattleScript_MonTookFutureAttack);
|
BattleScriptExecute(BattleScript_MonTookFutureAttack);
|
||||||
|
|
||||||
if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0
|
if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0
|
||||||
&& gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0)
|
&& gWishFutureKnock.futureSightCounter[BATTLE_PARTNER(gActiveBattler)] == 0)
|
||||||
{
|
{
|
||||||
gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] &= ~SIDE_STATUS_FUTUREATTACK;
|
gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] &= ~SIDE_STATUS_FUTUREATTACK;
|
||||||
}
|
}
|
||||||
@@ -3001,7 +3001,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
|||||||
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
|
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
|
||||||
{
|
{
|
||||||
u8 target2;
|
u8 target2;
|
||||||
side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon
|
side = BATTLE_OPPOSITE(GetBattlerPosition(i)) & BIT_SIDE; // side of the opposing pokemon
|
||||||
target1 = GetBattlerAtPosition(side);
|
target1 = GetBattlerAtPosition(side);
|
||||||
target2 = GetBattlerAtPosition(side + BIT_FLANK);
|
target2 = GetBattlerAtPosition(side + BIT_FLANK);
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
@@ -3820,7 +3820,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
|||||||
switch (moveTarget)
|
switch (moveTarget)
|
||||||
{
|
{
|
||||||
case MOVE_TARGET_SELECTED:
|
case MOVE_TARGET_SELECTED:
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
||||||
targetBattler = gSideTimers[side].followmeTarget;
|
targetBattler = gSideTimers[side].followmeTarget;
|
||||||
else
|
else
|
||||||
@@ -3844,12 +3844,12 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
|||||||
case MOVE_TARGET_BOTH:
|
case MOVE_TARGET_BOTH:
|
||||||
case MOVE_TARGET_FOES_AND_ALLY:
|
case MOVE_TARGET_FOES_AND_ALLY:
|
||||||
case MOVE_TARGET_OPPONENTS_FIELD:
|
case MOVE_TARGET_OPPONENTS_FIELD:
|
||||||
targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
|
targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker) & BIT_SIDE));
|
||||||
if (gAbsentBattlerFlags & gBitTable[targetBattler])
|
if (gAbsentBattlerFlags & gBitTable[targetBattler])
|
||||||
targetBattler ^= BIT_FLANK;
|
targetBattler ^= BIT_FLANK;
|
||||||
break;
|
break;
|
||||||
case MOVE_TARGET_RANDOM:
|
case MOVE_TARGET_RANDOM:
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
||||||
targetBattler = gSideTimers[side].followmeTarget;
|
targetBattler = gSideTimers[side].followmeTarget;
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
|
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
|
||||||
@@ -3872,7 +3872,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
|||||||
targetBattler ^= BIT_FLANK;
|
targetBattler ^= BIT_FLANK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
|
targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker) & BIT_SIDE));
|
||||||
break;
|
break;
|
||||||
case MOVE_TARGET_USER_OR_SELECTED:
|
case MOVE_TARGET_USER_OR_SELECTED:
|
||||||
case MOVE_TARGET_USER:
|
case MOVE_TARGET_USER:
|
||||||
|
|||||||
+7
-6
@@ -202,7 +202,7 @@ static const struct OamData sOam_Cable =
|
|||||||
.paletteNum = 0,
|
.paletteNum = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_CableCar[] =
|
static const struct SpriteTemplate sSpriteTemplates_CableCar[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.tileTag = TAG_CABLE_CAR,
|
.tileTag = TAG_CABLE_CAR,
|
||||||
@@ -224,7 +224,8 @@ static const struct SpriteTemplate sSpriteTemplate_CableCar[] =
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_Cable = {
|
static const struct SpriteTemplate sSpriteTemplate_Cable =
|
||||||
|
{
|
||||||
.tileTag = TAG_CABLE,
|
.tileTag = TAG_CABLE,
|
||||||
.paletteTag = TAG_CABLE_CAR,
|
.paletteTag = TAG_CABLE_CAR,
|
||||||
.oam = &sOam_Cable,
|
.oam = &sOam_Cable,
|
||||||
@@ -836,12 +837,12 @@ static void CreateCableCarSprites(void)
|
|||||||
gSprites[spriteId].sYPos = 73;
|
gSprites[spriteId].sYPos = 73;
|
||||||
}
|
}
|
||||||
// Create car sprite
|
// Create car sprite
|
||||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 176, 43, 0x67);
|
spriteId = CreateSprite(&sSpriteTemplates_CableCar[0], 176, 43, 0x67);
|
||||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32;
|
gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32;
|
||||||
gSprites[spriteId].sXPos = 176;
|
gSprites[spriteId].sXPos = 176;
|
||||||
gSprites[spriteId].sYPos = 43;
|
gSprites[spriteId].sYPos = 43;
|
||||||
// Create door sprite
|
// Create door sprite
|
||||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 200, 99, 0x65);
|
spriteId = CreateSprite(&sSpriteTemplates_CableCar[1], 200, 99, 0x65);
|
||||||
gSprites[spriteId].x2 = 8;
|
gSprites[spriteId].x2 = 8;
|
||||||
gSprites[spriteId].y2 = 4;
|
gSprites[spriteId].y2 = 4;
|
||||||
gSprites[spriteId].sXPos = 200;
|
gSprites[spriteId].sXPos = 200;
|
||||||
@@ -864,12 +865,12 @@ static void CreateCableCarSprites(void)
|
|||||||
gSprites[spriteId].sYPos = 39;
|
gSprites[spriteId].sYPos = 39;
|
||||||
}
|
}
|
||||||
// Create car sprite
|
// Create car sprite
|
||||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 104, 9, 0x67);
|
spriteId = CreateSprite(&sSpriteTemplates_CableCar[0], 104, 9, 0x67);
|
||||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32;
|
gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32;
|
||||||
gSprites[spriteId].sXPos = 104;
|
gSprites[spriteId].sXPos = 104;
|
||||||
gSprites[spriteId].sYPos = 9;
|
gSprites[spriteId].sYPos = 9;
|
||||||
// Create door sprite
|
// Create door sprite
|
||||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 128, 65, 0x65);
|
spriteId = CreateSprite(&sSpriteTemplates_CableCar[1], 128, 65, 0x65);
|
||||||
gSprites[spriteId].x2 = 8;
|
gSprites[spriteId].x2 = 8;
|
||||||
gSprites[spriteId].y2 = 4;
|
gSprites[spriteId].y2 = 4;
|
||||||
gSprites[spriteId].sXPos = 128;
|
gSprites[spriteId].sXPos = 128;
|
||||||
|
|||||||
+12
-6
@@ -944,7 +944,8 @@ static const struct OamData sOamData_TriangleCursor = {
|
|||||||
.affineParam = 0,
|
.affineParam = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_TriangleCursor = {
|
static const struct SpriteTemplate sSpriteTemplate_TriangleCursor =
|
||||||
|
{
|
||||||
.tileTag = PALTAG_TRIANGLE_CURSOR,
|
.tileTag = PALTAG_TRIANGLE_CURSOR,
|
||||||
.paletteTag = GFXTAG_TRIANGLE_CURSOR,
|
.paletteTag = GFXTAG_TRIANGLE_CURSOR,
|
||||||
.oam = &sOamData_TriangleCursor,
|
.oam = &sOamData_TriangleCursor,
|
||||||
@@ -1005,7 +1006,8 @@ static const union AnimCmd *const sAnims_RectangleCursor[] = {
|
|||||||
[RECTCURSOR_ANIM_ON_LETTER] = sAnim_RectangleCursor_OnLetter,
|
[RECTCURSOR_ANIM_ON_LETTER] = sAnim_RectangleCursor_OnLetter,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_RectangleCursor = {
|
static const struct SpriteTemplate sSpriteTemplate_RectangleCursor =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_RECTANGLE_CURSOR,
|
.tileTag = GFXTAG_RECTANGLE_CURSOR,
|
||||||
.paletteTag = PALTAG_RECTANGLE_CURSOR,
|
.paletteTag = PALTAG_RECTANGLE_CURSOR,
|
||||||
.oam = &sOamData_RectangleCursor,
|
.oam = &sOamData_RectangleCursor,
|
||||||
@@ -1075,7 +1077,8 @@ static const union AnimCmd *const sAnims_ModeWindow[] = {
|
|||||||
[MODEWINDOW_ANIM_TRANSITION] = sAnim_ModeWindow_Transition,
|
[MODEWINDOW_ANIM_TRANSITION] = sAnim_ModeWindow_Transition,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_ModeWindow = {
|
static const struct SpriteTemplate sSpriteTemplate_ModeWindow =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_MODE_WINDOW,
|
.tileTag = GFXTAG_MODE_WINDOW,
|
||||||
.paletteTag = PALTAG_MISC_UI,
|
.paletteTag = PALTAG_MISC_UI,
|
||||||
.oam = &sOamData_ModeWindow,
|
.oam = &sOamData_ModeWindow,
|
||||||
@@ -1101,7 +1104,8 @@ static const struct OamData sOamData_ButtonWindow = {
|
|||||||
.affineParam = 0,
|
.affineParam = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_ButtonWindow = {
|
static const struct SpriteTemplate sSpriteTemplate_ButtonWindow =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_BUTTON_WINDOW,
|
.tileTag = GFXTAG_BUTTON_WINDOW,
|
||||||
.paletteTag = PALTAG_MISC_UI,
|
.paletteTag = PALTAG_MISC_UI,
|
||||||
.oam = &sOamData_ButtonWindow,
|
.oam = &sOamData_ButtonWindow,
|
||||||
@@ -1159,7 +1163,8 @@ static const union AnimCmd *const sAnims_TwoFrame[] = {
|
|||||||
sAnim_Frame1,
|
sAnim_Frame1,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_StartSelectButton = {
|
static const struct SpriteTemplate sSpriteTemplate_StartSelectButton =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_START_SELECT_BUTTONS,
|
.tileTag = GFXTAG_START_SELECT_BUTTONS,
|
||||||
.paletteTag = PALTAG_MISC_UI,
|
.paletteTag = PALTAG_MISC_UI,
|
||||||
.oam = &sOamData_StartSelectButton,
|
.oam = &sOamData_StartSelectButton,
|
||||||
@@ -1169,7 +1174,8 @@ static const struct SpriteTemplate sSpriteTemplate_StartSelectButton = {
|
|||||||
.callback = SpriteCallbackDummy,
|
.callback = SpriteCallbackDummy,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_ScrollIndicator = {
|
static const struct SpriteTemplate sSpriteTemplate_ScrollIndicator =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_SCROLL_INDICATOR,
|
.tileTag = GFXTAG_SCROLL_INDICATOR,
|
||||||
.paletteTag = PALTAG_MISC_UI,
|
.paletteTag = PALTAG_MISC_UI,
|
||||||
.oam = &sOamData_ScrollIndicator,
|
.oam = &sOamData_ScrollIndicator,
|
||||||
|
|||||||
+2
-1
@@ -3766,7 +3766,8 @@ static const union AnimCmd *const sAnims_DeoxysRockFragment[] = {
|
|||||||
sAnim_RockFragment_BottomRight,
|
sAnim_RockFragment_BottomRight,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = {
|
static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment =
|
||||||
|
{
|
||||||
.tileTag = TAG_NONE,
|
.tileTag = TAG_NONE,
|
||||||
.paletteTag = 4378,
|
.paletteTag = 4378,
|
||||||
.oam = &sOam_8x8,
|
.oam = &sOam_8x8,
|
||||||
|
|||||||
+1
-1
@@ -2933,7 +2933,7 @@ static void SpriteCB_WaterDrop_ReachLeafEnd(struct Sprite *sprite)
|
|||||||
SetOamMatrix(sprite->data[1], sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
|
SetOamMatrix(sprite->data[1], sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
|
||||||
SetOamMatrix(sprite->data[1] + 1, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
|
SetOamMatrix(sprite->data[1] + 1, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
|
||||||
SetOamMatrix(sprite->data[1] + 2, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
|
SetOamMatrix(sprite->data[1] + 2, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
|
||||||
if (sprite->data[4] != 64)
|
if (sprite->data[4] != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
u16 sinIdx;
|
u16 sinIdx;
|
||||||
sprite->data[4] -= 8;
|
sprite->data[4] -= 8;
|
||||||
|
|||||||
+4
-2
@@ -201,7 +201,8 @@ static const struct OamData sOamData_CeilingCrumbleSmall =
|
|||||||
.affineParam = 0,
|
.affineParam = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleSmall = {
|
static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleSmall =
|
||||||
|
{
|
||||||
.tileTag = TAG_CEILING_CRUMBLE,
|
.tileTag = TAG_CEILING_CRUMBLE,
|
||||||
.paletteTag = TAG_NONE,
|
.paletteTag = TAG_NONE,
|
||||||
.oam = &sOamData_CeilingCrumbleSmall,
|
.oam = &sOamData_CeilingCrumbleSmall,
|
||||||
@@ -239,7 +240,8 @@ static const struct OamData sOamData_CeilingCrumbleLarge =
|
|||||||
.affineParam = 0,
|
.affineParam = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleLarge = {
|
static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleLarge =
|
||||||
|
{
|
||||||
.tileTag = TAG_CEILING_CRUMBLE,
|
.tileTag = TAG_CEILING_CRUMBLE,
|
||||||
.paletteTag = TAG_NONE,
|
.paletteTag = TAG_NONE,
|
||||||
.oam = &sOamData_CeilingCrumbleLarge,
|
.oam = &sOamData_CeilingCrumbleLarge,
|
||||||
|
|||||||
@@ -162,7 +162,8 @@ static const struct SpritePalette sSpritePalettes_StampShadow[] = {
|
|||||||
{sStampShadowPal8, TAG_STAMP_SHADOW}
|
{sStampShadowPal8, TAG_STAMP_SHADOW}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_StampShadow = {
|
static const struct SpriteTemplate sSpriteTemplate_StampShadow =
|
||||||
|
{
|
||||||
.tileTag = TAG_STAMP_SHADOW,
|
.tileTag = TAG_STAMP_SHADOW,
|
||||||
.paletteTag = TAG_STAMP_SHADOW,
|
.paletteTag = TAG_STAMP_SHADOW,
|
||||||
.oam = &gOamData_AffineOff_ObjNormal_32x16,
|
.oam = &gOamData_AffineOff_ObjNormal_32x16,
|
||||||
|
|||||||
+2
-2
@@ -2662,7 +2662,7 @@ static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLOR
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_GridIcons[NUM_BOARD_POKES] =
|
static const struct SpriteTemplate sSpriteTemplates_GridIcons[NUM_BOARD_POKES] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.tileTag = GFXTAG_GRID_ICONS,
|
.tileTag = GFXTAG_GRID_ICONS,
|
||||||
@@ -3537,7 +3537,7 @@ static void CreateGridSprites(void)
|
|||||||
u8 y = i * 24;
|
u8 y = i * 24;
|
||||||
for (j = 0; j < NUM_BOARD_POKES; j++)
|
for (j = 0; j < NUM_BOARD_POKES; j++)
|
||||||
{
|
{
|
||||||
spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplate_GridIcons[j], (j * 24) + 148, y + 92, 30);
|
spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplates_GridIcons[j], (j * 24) + 148, y + 92, 30);
|
||||||
gSprites[spriteId].animPaused = TRUE;
|
gSprites[spriteId].animPaused = TRUE;
|
||||||
y += 24;
|
y += 24;
|
||||||
if (y >= 72)
|
if (y >= 72)
|
||||||
|
|||||||
+10
-5
@@ -793,7 +793,8 @@ static const union AnimCmd *const sAnims_KeyboardCursor[] = {
|
|||||||
sAnim_KeyboardCursorWide_Closed
|
sAnim_KeyboardCursorWide_Closed
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_KeyboardCursor = {
|
static const struct SpriteTemplate sSpriteTemplate_KeyboardCursor =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_KEYBOARD_CURSOR,
|
.tileTag = GFXTAG_KEYBOARD_CURSOR,
|
||||||
.paletteTag = PALTAG_INTERFACE,
|
.paletteTag = PALTAG_INTERFACE,
|
||||||
.oam = &sOam_KeyboardCursor,
|
.oam = &sOam_KeyboardCursor,
|
||||||
@@ -809,7 +810,8 @@ static const struct OamData sOam_TextEntrySprite = {
|
|||||||
.priority = 2
|
.priority = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = {
|
static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_TEXT_ENTRY_CURSOR,
|
.tileTag = GFXTAG_TEXT_ENTRY_CURSOR,
|
||||||
.paletteTag = PALTAG_INTERFACE,
|
.paletteTag = PALTAG_INTERFACE,
|
||||||
.oam = &sOam_TextEntrySprite,
|
.oam = &sOam_TextEntrySprite,
|
||||||
@@ -819,7 +821,8 @@ static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = {
|
|||||||
.callback = SpriteCB_TextEntryCursor
|
.callback = SpriteCB_TextEntryCursor
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_TextEntryArrow = {
|
static const struct SpriteTemplate sSpriteTemplate_TextEntryArrow =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_TEXT_ENTRY_ARROW,
|
.tileTag = GFXTAG_TEXT_ENTRY_ARROW,
|
||||||
.paletteTag = PALTAG_INTERFACE,
|
.paletteTag = PALTAG_INTERFACE,
|
||||||
.oam = &sOam_TextEntrySprite,
|
.oam = &sOam_TextEntrySprite,
|
||||||
@@ -868,7 +871,8 @@ static const union AnimCmd *const sAnims_RButtonLabels[] = {
|
|||||||
sAnim_RegisterIcon
|
sAnim_RegisterIcon
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_RButtonIcon = {
|
static const struct SpriteTemplate sSpriteTemplate_RButtonIcon =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_RBUTTON_ICON,
|
.tileTag = GFXTAG_RBUTTON_ICON,
|
||||||
.paletteTag = PALTAG_INTERFACE,
|
.paletteTag = PALTAG_INTERFACE,
|
||||||
.oam = &sOam_RButtonIcon,
|
.oam = &sOam_RButtonIcon,
|
||||||
@@ -878,7 +882,8 @@ static const struct SpriteTemplate sSpriteTemplate_RButtonIcon = {
|
|||||||
.callback = SpriteCallbackDummy
|
.callback = SpriteCallbackDummy
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_RButtonLabels = {
|
static const struct SpriteTemplate sSpriteTemplate_RButtonLabels =
|
||||||
|
{
|
||||||
.tileTag = GFXTAG_RBUTTON_LABELS,
|
.tileTag = GFXTAG_RBUTTON_LABELS,
|
||||||
.paletteTag = PALTAG_INTERFACE,
|
.paletteTag = PALTAG_INTERFACE,
|
||||||
.oam = &sOam_RButtonLabel,
|
.oam = &sOam_RButtonLabel,
|
||||||
|
|||||||
Reference in New Issue
Block a user