Merge commit '2044bea883d08ec9266d21ac0cd6a56c3e0d5962' into pret-merge

Conflicts:
	include/battle.h
	include/battle_ai_script_commands.h
	include/battle_anim.h
	include/battle_controllers.h
	include/battle_gfx_sfx_util.h
	include/battle_main.h
	include/battle_script_commands.h
	include/battle_util.h
	include/pokemon.h
	include/recorded_battle.h
	src/battle_ai_script_commands.c
	src/battle_anim.c
	src/battle_anim_mons.c
	src/battle_anim_sound_tasks.c
	src/battle_anim_status_effects.c
	src/battle_controller_link_opponent.c
	src/battle_controller_link_partner.c
	src/battle_controller_opponent.c
	src/battle_controller_player.c
	src/battle_controller_player_partner.c
	src/battle_controller_recorded_opponent.c
	src/battle_controller_recorded_player.c
	src/battle_controller_wally.c
	src/battle_controllers.c
	src/battle_gfx_sfx_util.c
	src/battle_interface.c
	src/battle_main.c
	src/battle_message.c
	src/battle_records.c
	src/battle_script_commands.c
	src/battle_tv.c
	src/battle_util.c
	src/battle_util2.c
	src/pokeball.c
	src/pokemon.c
	src/recorded_battle.c
	src/reshow_battle_screen.c
This commit is contained in:
Hedara 2025-05-15 21:15:37 +02:00
commit 2945c83bbc
28 changed files with 516 additions and 515 deletions

View File

@ -859,51 +859,51 @@ static inline bool32 IsBattleMoveRecoil(u32 move)
return GetMoveRecoil(move) > 0 || GetMoveEffect(move) == EFFECT_RECOIL_IF_MISS;
}
/* Checks if 'battlerId' is any of the types.
/* Checks if 'battler' is any of the types.
* Passing multiple types is more efficient than calling this multiple
* times with one type because it shares the 'GetBattlerTypes' result. */
#define _IS_BATTLER_ANY_TYPE(battlerId, ignoreTera, ...) \
({ \
u32 types[3]; \
GetBattlerTypes(battlerId, ignoreTera, types); \
#define _IS_BATTLER_ANY_TYPE(battler, ignoreTera, ...) \
({ \
u32 types[3]; \
GetBattlerTypes(battler, ignoreTera, types); \
RECURSIVELY(R_FOR_EACH(_IS_BATTLER_ANY_TYPE_HELPER, __VA_ARGS__)) FALSE; \
})
#define _IS_BATTLER_ANY_TYPE_HELPER(type) (types[0] == type) || (types[1] == type) || (types[2] == type) ||
#define IS_BATTLER_ANY_TYPE(battlerId, ...) _IS_BATTLER_ANY_TYPE(battlerId, FALSE, __VA_ARGS__)
#define IS_BATTLER_ANY_TYPE(battler, ...) _IS_BATTLER_ANY_TYPE(battler, FALSE, __VA_ARGS__)
#define IS_BATTLER_OF_TYPE IS_BATTLER_ANY_TYPE
#define IS_BATTLER_ANY_BASE_TYPE(battlerId, ...) _IS_BATTLER_ANY_TYPE(battlerId, TRUE, __VA_ARGS__)
#define IS_BATTLER_ANY_BASE_TYPE(battler, ...) _IS_BATTLER_ANY_TYPE(battler, TRUE, __VA_ARGS__)
#define IS_BATTLER_OF_BASE_TYPE IS_BATTLER_ANY_BASE_TYPE
#define IS_BATTLER_TYPELESS(battlerId) \
({ \
u32 types[3]; \
GetBattlerTypes(battlerId, FALSE, types); \
#define IS_BATTLER_TYPELESS(battlerId) \
({ \
u32 types[3]; \
GetBattlerTypes(battlerId, FALSE, types); \
types[0] == TYPE_MYSTERY && types[1] == TYPE_MYSTERY && types[2] == TYPE_MYSTERY; \
})
#define SET_BATTLER_TYPE(battlerId, type) \
{ \
gBattleMons[battlerId].types[0] = type; \
gBattleMons[battlerId].types[1] = type; \
gBattleMons[battlerId].types[2] = TYPE_MYSTERY; \
#define SET_BATTLER_TYPE(battler, type) \
{ \
gBattleMons[battler].types[0] = type; \
gBattleMons[battler].types[1] = type; \
gBattleMons[battler].types[2] = TYPE_MYSTERY; \
}
#define RESTORE_BATTLER_TYPE(battlerId) \
{ \
gBattleMons[battlerId].types[0] = gSpeciesInfo[gBattleMons[battlerId].species].types[0]; \
gBattleMons[battlerId].types[1] = gSpeciesInfo[gBattleMons[battlerId].species].types[1]; \
gBattleMons[battlerId].types[2] = TYPE_MYSTERY; \
#define RESTORE_BATTLER_TYPE(battler) \
{ \
gBattleMons[battler].types[0] = gSpeciesInfo[gBattleMons[battler].species].types[0]; \
gBattleMons[battler].types[1] = gSpeciesInfo[gBattleMons[battler].species].types[1]; \
gBattleMons[battler].types[2] = TYPE_MYSTERY; \
}
#define IS_BATTLER_PROTECTED(battlerId)(gProtectStructs[battlerId].protected \
|| gProtectStructs[battlerId].spikyShielded \
|| gProtectStructs[battlerId].kingsShielded \
|| gProtectStructs[battlerId].banefulBunkered \
|| gProtectStructs[battlerId].burningBulwarked \
|| gProtectStructs[battlerId].obstructed \
|| gProtectStructs[battlerId].silkTrapped)
#define IS_BATTLER_PROTECTED(battler)(gProtectStructs[battler].protected \
|| gProtectStructs[battler].spikyShielded \
|| gProtectStructs[battler].kingsShielded \
|| gProtectStructs[battler].banefulBunkered \
|| gProtectStructs[battler].burningBulwarked \
|| gProtectStructs[battler].obstructed \
|| gProtectStructs[battler].silkTrapped)
#define GET_STAT_BUFF_ID(n) ((n & 7)) // first three bits 0x1, 0x2, 0x4
#define GET_STAT_BUFF_VALUE_WITH_SIGN(n) ((n & 0xF8))

View File

View File

@ -68,8 +68,8 @@ void DestroyAnimSprite(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 taskId);
void DestroyAnimSoundTask(u8 taskId);
u8 GetAnimBattlerId(u8 wantedBattler);
bool8 IsBattlerSpriteVisible(u8 battlerId);
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible);
bool8 IsBattlerSpriteVisible(u8 battler);
void MoveBattlerSpriteToBG(u8 battler, bool8 toBG_2, bool8 setSpriteInvisible);
bool8 IsContest(void);
s8 BattleAnimAdjustPanning(s8 pan);
s8 BattleAnimAdjustPanning2(s8 pan);
@ -92,7 +92,7 @@ void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
void AnimWeatherBallUp(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite);
void AnimSpinningSparkle(struct Sprite *sprite);
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
void SetAverageBattlerPositions(u8 battler, bool8 respectMonPicOffsets, s16 *x, s16 *y);
void DestroySpriteAndMatrix(struct Sprite *sprite);
void TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets);
@ -102,7 +102,7 @@ void StartAnimLinearTranslation(struct Sprite *sprite);
void InitAnimArcTranslation(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId);
u8 GetBattlerSpriteCoord2(u8 battler, u8 attributeId);
void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite);
u16 ArcTan2Neg(s16 x, s16 y);
void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation);
@ -111,19 +111,19 @@ void TranslateSpriteLinearAndFlicker(struct Sprite *sprite);
void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite);
void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite);
void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset);
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
u8 GetBattlerYCoordWithElevation(u8 battlerId);
s16 GetBattlerSpriteCoordAttr(u8 battler, u8 attr);
u8 GetBattlerYCoordWithElevation(u8 battler);
void WaitAnimForDuration(struct Sprite *sprite);
void AnimTravelDiagonally(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
u8 GetBattlerSpriteBGPriority(u8 battlerId);
u8 GetBattlerSpriteBGPriority(u8 battler);
void *LoadPointerFromVars(s16 bottom, s16 top);
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
void InitPrioritiesForVisibleBattlers(void);
void GetBattleAnimBg1Data(struct BattleAnimBgData *);
void GetBattleAnimBgData(struct BattleAnimBgData *, u32 bgId);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
u8 GetBattlerSpriteSubpriority(u8 battler);
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
void ResetSpriteRotScale(u8 spriteId);
@ -158,8 +158,8 @@ void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task);
void AnimThrowProjectile(struct Sprite *sprite);
void GetBgDataForTransform(struct BattleAnimBgData *dest, u8 battlerId);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battlerId);
void GetBgDataForTransform(struct BattleAnimBgData *dest, u8 battler);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battler);
void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite);
void Trade_MoveSelectedMonToTarget(struct Sprite *sprite);
void DestroyAnimVisualTaskAndDisableBlend(u8 taskId);
@ -188,17 +188,17 @@ enum
BATTLER_COORD_ATTR_RAW_BOTTOM,
};
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
u8 GetBattlerSpriteCoord(u8 battler, u8 attributeId);
bool8 IsBattlerSpritePresent(u8 battlerId);
bool8 IsBattlerSpritePresent(u8 battler);
void ClearBattleAnimBg(u32 bgId);
u8 GetAnimBattlerSpriteId(u8 wantedBattler);
u8 GetBattleBgPaletteNum(void);
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
u8 GetBattlerSpriteBGPriorityRank(u8 battler);
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite *));
void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite);
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
u8 GetBattlerSpriteDefault_Y(u8 battler);
u8 GetSubstituteSpriteDefault_Y(u8 battler);
// battle_anim_status_effects.c
#define STAT_ANIM_PLUS1 (MOVE_EFFECT_ATK_PLUS_1 - 1)
@ -221,7 +221,7 @@ enum {
STAT_ANIM_PAL_MULTIPLE = 0xFF
};
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
void LaunchStatusAnimation(u8 battler, u8 statusAnimId);
extern const union AnimCmd *const gAnims_SpinningSparkle[];
// battle_anim_ground.c

View File

@ -67,7 +67,7 @@ const u8* FaintClearSetData(u32 battler);
void BattleTurnPassed(void);
u8 IsRunningFromBattleImpossible(u32 battler);
void SwitchTwoBattlersInParty(u32 battler, u32 battler2);
void SwitchPartyOrder(u32 battlerId);
void SwitchPartyOrder(u32 battler);
void SwapTurnOrder(u8 id1, u8 id2);
u32 GetBattlerTotalSpeedStatArgs(u32 battler, u32 ability, u32 holdEffect);
u32 GetBattlerTotalSpeedStat(u32 battler);

View File

@ -4,7 +4,7 @@
extern u8 gRecordsWindowId;
void ClearPlayerLinkBattleRecords(void);
void UpdatePlayerLinkBattleRecords(s32 battlerId);
void UpdatePlayerLinkBattleRecords(s32 battler);
void ShowLinkBattleRecords(void);
void RemoveRecordsWindow(void);
void ShowTrainerHillRecords(void);

View File

@ -25,7 +25,7 @@ struct PickupItem
s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, u32 abilityAtk, u32 abilityDef, u32 holdEffectAtk);
s32 GetCritHitOdds(s32 critChanceIndex);
u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect);
u8 GetBattlerTurnOrderNum(u8 battlerId);
u8 GetBattlerTurnOrderNum(u8 battler);
bool32 NoAliveMonsForPlayer(void);
bool32 NoAliveMonsForEitherParty(void);
void SetMoveEffect(bool32 primary, bool32 certain);
@ -34,7 +34,7 @@ void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
void BufferMoveToLearnIntoBattleTextBuff2(void);
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
bool8 UproarWakeUpCheck(u8 battlerId);
bool8 UproarWakeUpCheck(u8 battler);
bool32 DoesSubstituteBlockMove(u32 battlerAtk, u32 battlerDef, u32 move);
bool32 DoesDisguiseBlockMove(u32 battler, u32 move);
bool32 CanPoisonType(u8 battlerAttacker, u8 battlerTarget);

View File

@ -6,6 +6,6 @@ void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruc
void BattleTv_SetDataBasedOnAnimation(u8 animationId);
void TryPutLinkBattleTvShowOnAir(void);
void BattleTv_ClearExplosionFaintCause(void);
u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId);
u8 GetBattlerMoveSlotId(u8 battler, u16 moveId);
#endif // GUARD_BATTLE_TV_H

View File

@ -87,8 +87,8 @@ void ChooseMonForWirelessMinigame(void);
void OpenPartyMenuInBattle(u8 partyAction);
void ChooseMonForInBattleItem(void);
void BufferBattlePartyCurrentOrder(void);
void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId);
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 arrayIndex);
void BufferBattlePartyCurrentOrderBySide(u8 battler, u8 flankId);
void SwitchPartyOrderLinkMulti(u8 battler, u8 slot, u8 arrayIndex);
void SwitchPartyMonSlots(u8 slot, u8 slot2);
u8 GetPartyIdFromBattlePartyId(u8 slot);
void ShowPartyMenuToShowcaseMultiBattleParty(void);

View File

@ -640,7 +640,7 @@ void CreateBattleTowerMon_HandleLevel(struct Pokemon *mon, struct BattleTowerPok
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerPokemon *dest);
bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId);
bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battler);
u16 GetUnionRoomTrainerPic(void);
u16 GetUnionRoomTrainerClass(void);
void CreateEnemyEventMon(void);
@ -659,7 +659,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
u8 CountAliveMonsInBattle(u8 caseId, u32 battler);
u8 GetDefaultMoveTarget(u8 battlerId);
u8 GetDefaultMoveTarget(u8 battler);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
@ -713,10 +713,10 @@ u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst);
void CopyPartyMonToBattleData(u32 battlerId, u32 partyIndex);
void CopyPartyMonToBattleData(u32 battler, u32 partyIndex);
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId);
bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battler);
u8 GetItemEffectParamOffset(u32 battler, u16 itemId, u8 effectByte, u8 effectBit);
u8 *UseStatIncreaseItem(u16 itemId);
u8 GetNature(struct Pokemon *mon);

View File

@ -60,9 +60,9 @@ extern u8 gRecordedBattleMultiplayerId;
void RecordedBattle_Init(u8 mode);
void RecordedBattle_SetTrainerInfo(void);
void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action);
void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear);
u8 RecordedBattle_GetBattlerAction(u32 actionType, u8 battlerId);
void RecordedBattle_SetBattlerAction(u8 battler, u8 action);
void RecordedBattle_ClearBattlerAction(u8 battler, u8 bytesToClear);
u8 RecordedBattle_GetBattlerAction(u32 actionType, u8 battler);
u8 RecordedBattle_BufferNewBattlerData(u8 *dst);
void RecordedBattle_RecordAllBattlerData(u8 *data);
bool32 CanCopyRecordedBattleSaveData(void);

View File

View File

@ -954,30 +954,30 @@ static void Cmd_monbg(void)
{
bool8 toBG_2;
u8 taskId;
u8 battlerId;
u8 battler;
u8 animBattler;
sBattleAnimScriptPtr++;
animBattler = sBattleAnimScriptPtr[0];
if (animBattler & ANIM_TARGET)
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
else
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
// Move designated battler to background
if (IsBattlerSpriteVisible(battlerId))
if (IsBattlerSpriteVisible(battler))
{
u8 position = GetBattlerPosition(battlerId);
u8 position = GetBattlerPosition(battler);
if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
MoveBattlerSpriteToBG(battler, toBG_2, FALSE);
taskId = CreateTask(Task_InitUpdateMonBg, 10);
gAnimVisualTaskCount++;
gTasks[taskId].tBattlerId = battlerId;
gTasks[taskId].tBattlerId = battler;
gTasks[taskId].tInBg2 = toBG_2;
gTasks[taskId].tActive = TRUE;
gTasks[taskId].tIsPartner = FALSE;
@ -985,19 +985,19 @@ static void Cmd_monbg(void)
}
// Move battler's partner to background
battlerId ^= BIT_FLANK;
if (IsBattlerSpriteVisible(battlerId))
battler ^= BIT_FLANK;
if (IsBattlerSpriteVisible(battler))
{
u8 position = GetBattlerPosition(battlerId);
u8 position = GetBattlerPosition(battler);
if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
MoveBattlerSpriteToBG(battler, toBG_2, FALSE);
taskId = CreateTask(Task_InitUpdateMonBg, 10);
gAnimVisualTaskCount++;
gTasks[taskId].tBattlerId = battlerId;
gTasks[taskId].tBattlerId = battler;
gTasks[taskId].tInBg2 = toBG_2;
gTasks[taskId].tActive = TRUE;
gTasks[taskId].tIsPartner = TRUE;
@ -1026,26 +1026,26 @@ u8 GetAnimBattlerId(u8 wantedBattler)
}
}
bool8 IsBattlerSpriteVisible(u8 battlerId)
bool8 IsBattlerSpriteVisible(u8 battler)
{
if (IsContest())
{
if (battlerId == gBattleAnimAttacker)
if (battler == gBattleAnimAttacker)
return TRUE;
else
return FALSE;
}
if (!IsBattlerSpritePresent(battlerId))
if (!IsBattlerSpritePresent(battler))
return FALSE;
if (IsContest())
return TRUE; // This line won't ever be reached.
if (!gBattleSpritesDataPtr->battlerData[battlerId].invisible || !gSprites[gBattlerSpriteIds[battlerId]].invisible)
if (!gBattleSpritesDataPtr->battlerData[battler].invisible || !gSprites[gBattlerSpriteIds[battler]].invisible)
return TRUE;
return FALSE;
}
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
void MoveBattlerSpriteToBG(u8 battler, bool8 toBG_2, bool8 setSpriteInvisible)
{
struct BattleAnimBgData animBg;
u8 battlerSpriteId;
@ -1073,7 +1073,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0);
battlerSpriteId = gBattlerSpriteIds[battlerId];
battlerSpriteId = gBattlerSpriteIds[battler];
gBattle_BG1_X = -(gSprites[battlerSpriteId].x + gSprites[battlerSpriteId].x2) + 0x20;
if (IsContest() && IsSpeciesNotUnown(gContestResources->moveAnim->species))
@ -1081,18 +1081,18 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
gBattle_BG1_Y = -(gSprites[battlerSpriteId].y + gSprites[battlerSpriteId].y2) + 0x20;
if (setSpriteInvisible)
gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE;
gSprites[gBattlerSpriteIds[battler]].invisible = TRUE;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(animBg.paletteId)), PLTT_SIZE_4BPP);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battler)], BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battler)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(animBg.paletteId)), PLTT_SIZE_4BPP);
if (IsContest())
battlerPosition = 0;
else
battlerPosition = GetBattlerPosition(battlerId);
battlerPosition = GetBattlerPosition(battler);
DrawBattlerOnBg(1, 0, 0, battlerPosition, animBg.paletteId, animBg.bgTiles, animBg.bgTilemap, animBg.tilesOffset);
@ -1110,21 +1110,21 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1);
SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0);
battlerSpriteId = gBattlerSpriteIds[battlerId];
battlerSpriteId = gBattlerSpriteIds[battler];
gBattle_BG2_X = -(gSprites[battlerSpriteId].x + gSprites[battlerSpriteId].x2) + 0x20;
gBattle_BG2_Y = -(gSprites[battlerSpriteId].y + gSprites[battlerSpriteId].y2) + 0x20;
if (setSpriteInvisible)
gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE;
gSprites[gBattlerSpriteIds[battler]].invisible = TRUE;
SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(9), PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(9)), PLTT_SIZE_4BPP);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battler)], BG_PLTT_ID(9), PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battler)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(9)), PLTT_SIZE_4BPP);
DrawBattlerOnBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset);
DrawBattlerOnBg(2, 0, 0, GetBattlerPosition(battler), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset);
}
}
@ -1192,12 +1192,12 @@ void ResetBattleAnimBg(bool8 toBG2)
static void Task_UpdateMonBg(u8 taskId)
{
u8 spriteId, battlerId;
u8 spriteId, battler;
s16 x, y;
struct BattleAnimBgData animBg;
spriteId = gTasks[taskId].t2_SpriteId;
battlerId = gTasks[taskId].t2_BattlerId;
battler = gTasks[taskId].t2_BattlerId;
GetBattleAnimBg1Data(&animBg);
x = gTasks[taskId].t2_SpriteX - (gSprites[spriteId].x + gSprites[spriteId].x2);
y = gTasks[taskId].t2_SpriteY - (gSprites[spriteId].y + gSprites[spriteId].y2);
@ -1206,13 +1206,13 @@ static void Task_UpdateMonBg(u8 taskId)
{
gBattle_BG1_X = x + gTasks[taskId].t2_BgX;
gBattle_BG1_Y = y + gTasks[taskId].t2_BgY;
CpuCopy32(&gPlttBufferFaded[OBJ_PLTT_ID(battlerId)], &gPlttBufferFaded[BG_PLTT_ID(animBg.paletteId)], PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferFaded[OBJ_PLTT_ID(battler)], &gPlttBufferFaded[BG_PLTT_ID(animBg.paletteId)], PLTT_SIZE_4BPP);
}
else
{
gBattle_BG2_X = x + gTasks[taskId].t2_BgX;
gBattle_BG2_Y = y + gTasks[taskId].t2_BgY;
CpuCopy32(&gPlttBufferFaded[OBJ_PLTT_ID(battlerId)], &gPlttBufferFaded[BG_PLTT_ID(9)], PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferFaded[OBJ_PLTT_ID(battler)], &gPlttBufferFaded[BG_PLTT_ID(9)], PLTT_SIZE_4BPP);
}
}
@ -1232,7 +1232,7 @@ static void Task_UpdateMonBg(u8 taskId)
static void Cmd_clearmonbg(void)
{
u8 animBattlerId;
u8 battlerId;
u8 battler;
u8 taskId;
sBattleAnimScriptPtr++;
@ -1244,20 +1244,20 @@ static void Cmd_clearmonbg(void)
animBattlerId = ANIM_DEF_PARTNER;
if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER)
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
if (sMonAnimTaskIdArray[0] != TASK_NONE)
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
gSprites[gBattlerSpriteIds[battler]].invisible = FALSE;
if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != TASK_NONE)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE;
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler)]].invisible = FALSE;
else
animBattlerId = 0;
taskId = CreateTask(Task_ClearMonBg, 5);
gTasks[taskId].data[0] = animBattlerId;
gTasks[taskId].data[2] = battlerId;
gTasks[taskId].data[2] = battler;
sBattleAnimScriptPtr++;
}
@ -1294,7 +1294,7 @@ static void Task_ClearMonBg(u8 taskId)
static void Cmd_monbg_static(void)
{
bool8 toBG_2;
u8 battlerId;
u8 battler;
u8 animBattlerId;
sBattleAnimScriptPtr++;
@ -1307,31 +1307,31 @@ static void Cmd_monbg_static(void)
animBattlerId = ANIM_DEF_PARTNER;
if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER)
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
if (IsBattlerSpriteVisible(battlerId))
if (IsBattlerSpriteVisible(battler))
{
u8 position = GetBattlerPosition(battlerId);
u8 position = GetBattlerPosition(battler);
if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
MoveBattlerSpriteToBG(battler, toBG_2, FALSE);
}
battlerId ^= BIT_FLANK;
if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId))
battler ^= BIT_FLANK;
if (animBattlerId > 1 && IsBattlerSpriteVisible(battler))
{
u8 position = GetBattlerPosition(battlerId);
u8 position = GetBattlerPosition(battler);
if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
MoveBattlerSpriteToBG(battler, toBG_2, FALSE);
}
sBattleAnimScriptPtr++;
@ -1340,7 +1340,7 @@ static void Cmd_monbg_static(void)
static void Cmd_clearmonbg_static(void)
{
u8 animBattlerId;
u8 battlerId;
u8 battler;
u8 taskId;
sBattleAnimScriptPtr++;
@ -1352,20 +1352,20 @@ static void Cmd_clearmonbg_static(void)
animBattlerId = ANIM_DEF_PARTNER;
if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER)
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
if (IsBattlerSpriteVisible(battlerId))
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
if (animBattlerId > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId)))
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE;
if (IsBattlerSpriteVisible(battler))
gSprites[gBattlerSpriteIds[battler]].invisible = FALSE;
if (animBattlerId > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battler)))
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler)]].invisible = FALSE;
else
animBattlerId = 0;
taskId = CreateTask(Task_ClearMonBgStatic, 5);
gTasks[taskId].data[0] = animBattlerId;
gTasks[taskId].data[2] = battlerId;
gTasks[taskId].data[2] = battler;
sBattleAnimScriptPtr++;
}
@ -1376,16 +1376,16 @@ static void Task_ClearMonBgStatic(u8 taskId)
if (gTasks[taskId].data[1] != 1)
{
bool8 toBG_2;
u8 battlerId = gTasks[taskId].data[2];
u8 position = GetBattlerPosition(battlerId);
u8 battler = gTasks[taskId].data[2];
u8 position = GetBattlerPosition(battler);
if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
if (IsBattlerSpriteVisible(battlerId))
if (IsBattlerSpriteVisible(battler))
ResetBattleAnimBg(toBG_2);
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId)))
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battler)))
ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(taskId);
@ -2067,19 +2067,19 @@ static void Cmd_jumpifcontest(void)
static void Cmd_splitbgprio(void)
{
u8 wantedBattler;
u8 battlerId;
u8 battler;
u8 battlerPosition;
wantedBattler = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2;
if (wantedBattler != ANIM_ATTACKER)
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
else
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
// Apply only if the given battler is the lead (on left from team's perspective)
battlerPosition = GetBattlerPosition(battlerId);
battlerPosition = GetBattlerPosition(battler);
if (!IsContest() && (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT))
{
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
@ -2101,7 +2101,7 @@ static void Cmd_splitbgprio_foes(void)
{
u8 wantedBattler;
u8 battlerPosition;
u8 battlerId;
u8 battler;
wantedBattler = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2;
@ -2110,12 +2110,12 @@ static void Cmd_splitbgprio_foes(void)
if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget))
{
if (wantedBattler != ANIM_ATTACKER)
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
else
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
// Apply only if the given battler is the lead (on left from team's perspective)
battlerPosition = GetBattlerPosition(battlerId);
battlerPosition = GetBattlerPosition(battler);
if (!IsContest() && (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT))
{
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);

View File

@ -183,7 +183,7 @@ void AnimTask_ShakeMon2(u8 taskId)
{
u8 spriteId;
bool8 abort = FALSE;
u8 battlerId;
u8 battler;
if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT)
{
@ -196,24 +196,24 @@ void AnimTask_ShakeMon2(u8 taskId)
switch (gBattleAnimArgs[0])
{
case ANIM_PLAYER_LEFT:
battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
battler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
break;
case ANIM_PLAYER_RIGHT:
battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
battler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
break;
case ANIM_OPPONENT_LEFT:
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
battler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
break;
case ANIM_OPPONENT_RIGHT:
default:
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
battler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
break;
}
if (IsBattlerSpriteVisible(battlerId) == FALSE)
if (IsBattlerSpriteVisible(battler) == FALSE)
abort = TRUE;
spriteId = gBattlerSpriteIds[battlerId];
spriteId = gBattlerSpriteIds[battler];
}
else
{
@ -675,16 +675,16 @@ static void SlideMonToOffsetPartner(struct Sprite *sprite)
static void SlideMonToOffsetAndBack(struct Sprite *sprite)
{
u8 spriteId;
u8 battlerId;
u8 battler;
sprite->invisible = TRUE;
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
spriteId = gBattlerSpriteIds[battlerId];
if (GetBattlerSide(battlerId))
spriteId = gBattlerSpriteIds[battler];
if (GetBattlerSide(battler))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
if (gBattleAnimArgs[3] == 1)

View File

@ -82,7 +82,7 @@ static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] =
{ gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2, },
};
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
u8 GetBattlerSpriteCoord(u8 battler, u8 coordType)
{
u8 retVal;
u16 species;
@ -91,7 +91,7 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
if (IsContest())
{
if (coordType == BATTLER_COORD_Y_PIC_OFFSET && battlerId == 3)
if (coordType == BATTLER_COORD_Y_PIC_OFFSET && battler == 3)
coordType = BATTLER_COORD_Y;
}
@ -99,10 +99,10 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
{
case BATTLER_COORD_X:
case BATTLER_COORD_X_2:
retVal = sBattlerCoords[WhichBattleCoords(battlerId)][GetBattlerPosition(battlerId)].x;
retVal = sBattlerCoords[WhichBattleCoords(battler)][GetBattlerPosition(battler)].x;
break;
case BATTLER_COORD_Y:
retVal = sBattlerCoords[WhichBattleCoords(battlerId)][GetBattlerPosition(battlerId)].y;
retVal = sBattlerCoords[WhichBattleCoords(battler)][GetBattlerPosition(battler)].y;
break;
case BATTLER_COORD_Y_PIC_OFFSET:
case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT:
@ -116,27 +116,27 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
}
else
{
mon = GetPartyBattlerData(battlerId);
illusionMon = GetIllusionMonPtr(battlerId);
mon = GetPartyBattlerData(battler);
illusionMon = GetIllusionMonPtr(battler);
if (illusionMon != NULL)
mon = illusionMon;
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
if (!spriteInfo[battler].transformSpecies)
species = GetMonData(mon, MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
species = spriteInfo[battler].transformSpecies;
}
if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
retVal = GetBattlerSpriteFinal_Y(battler, species, TRUE);
else
retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
retVal = GetBattlerSpriteFinal_Y(battler, species, FALSE);
break;
}
return retVal;
}
u8 GetBattlerYDelta(u8 battlerId, u16 species)
u8 GetBattlerYDelta(u8 battler, u16 species)
{
u32 personality;
struct BattleSpriteInfo *spriteInfo;
@ -159,25 +159,25 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species)
if (species == SPECIES_UNOWN)
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
personality = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_PERSONALITY);
if (!spriteInfo[battler].transformSpecies)
personality = GetMonData(GetPartyBattlerData(battler), MON_DATA_PERSONALITY);
else
personality = gTransformedPersonalities[battlerId];
personality = gTransformedPersonalities[battler];
species = GetUnownSpeciesId(personality);
}
}
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest())
if (GetBattlerSide(battler) == B_SIDE_PLAYER || IsContest())
ret = gSpeciesInfo[species].backPicYOffset;
else
ret = gSpeciesInfo[species].frontPicYOffset;
return ret;
}
u8 GetBattlerElevation(u8 battlerId, u16 species)
u8 GetBattlerElevation(u8 battler, u16 species)
{
u8 ret = 0;
if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
if (!IsContest())
{
@ -188,24 +188,24 @@ u8 GetBattlerElevation(u8 battlerId, u16 species)
return ret;
}
u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
u8 GetBattlerSpriteFinal_Y(u8 battler, u16 species, bool8 a3)
{
u16 offset;
u8 y;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest())
if (GetBattlerSide(battler) == B_SIDE_PLAYER || IsContest())
{
offset = GetBattlerYDelta(battlerId, species);
offset = GetBattlerYDelta(battler, species);
}
else
{
offset = GetBattlerYDelta(battlerId, species);
offset -= GetBattlerElevation(battlerId, species);
offset = GetBattlerYDelta(battler, species);
offset -= GetBattlerElevation(battler, species);
}
y = offset + sBattlerCoords[WhichBattleCoords(battlerId)][GetBattlerPosition(battlerId)].y;
y = offset + sBattlerCoords[WhichBattleCoords(battler)][GetBattlerPosition(battler)].y;
if (a3)
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
y += 8;
if (y > DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8)
y = DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8;
@ -213,7 +213,7 @@ u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
return y;
}
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType)
u8 GetBattlerSpriteCoord2(u8 battler, u8 coordType)
{
u16 species;
struct BattleSpriteInfo *spriteInfo;
@ -230,55 +230,55 @@ u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType)
else
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = gAnimBattlerSpecies[battlerId];
if (!spriteInfo[battler].transformSpecies)
species = gAnimBattlerSpecies[battler];
else
species = spriteInfo[battlerId].transformSpecies;
species = spriteInfo[battler].transformSpecies;
}
if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
return GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
return GetBattlerSpriteFinal_Y(battler, species, TRUE);
else
return GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
return GetBattlerSpriteFinal_Y(battler, species, FALSE);
}
else
{
return GetBattlerSpriteCoord(battlerId, coordType);
return GetBattlerSpriteCoord(battler, coordType);
}
}
u8 GetBattlerSpriteDefault_Y(u8 battlerId)
u8 GetBattlerSpriteDefault_Y(u8 battler)
{
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT);
return GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT);
}
u8 GetSubstituteSpriteDefault_Y(u8 battlerId)
u8 GetSubstituteSpriteDefault_Y(u8 battler)
{
u16 y;
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 16;
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y) + 16;
else
y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 17;
y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y) + 17;
return y;
}
u8 GetBattlerYCoordWithElevation(u8 battlerId)
u8 GetBattlerYCoordWithElevation(u8 battler)
{
u16 species;
u8 y;
struct BattleSpriteInfo *spriteInfo;
y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y);
y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
if (!IsContest())
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_SPECIES);
if (!spriteInfo[battler].transformSpecies)
species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
species = spriteInfo[battler].transformSpecies;
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
y -= GetBattlerElevation(battlerId, species);
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
y -= GetBattlerElevation(battler, species);
}
return y;
}
@ -799,23 +799,23 @@ bool32 InitSpritePosToAnimBattler(u32 animBattlerId, struct Sprite *sprite, bool
return TRUE;
}
bool8 IsBattlerSpritePresent(u8 battlerId)
bool8 IsBattlerSpritePresent(u8 battler)
{
if (IsContest())
{
if (gBattleAnimAttacker == battlerId)
if (gBattleAnimAttacker == battler)
return TRUE;
else if (gBattleAnimTarget == battlerId)
else if (gBattleAnimTarget == battler)
return TRUE;
else
return FALSE;
}
else
{
if (GetBattlerPosition(battlerId) == 0xff)
if (GetBattlerPosition(battler) == 0xff)
return FALSE;
if (!gBattleStruct->spriteIgnore0Hp && GetMonData(GetPartyBattlerData(battlerId), MON_DATA_HP) == 0)
if (!gBattleStruct->spriteIgnore0Hp && GetMonData(GetPartyBattlerData(battler), MON_DATA_HP) == 0)
return FALSE;
return TRUE;
}
@ -873,7 +873,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId)
}
}
void GetBgDataForTransform(struct BattleAnimBgData *out, u8 battlerId)
void GetBgDataForTransform(struct BattleAnimBgData *out, u8 battler)
{
out->bgTiles = gBattleAnimBgTileBuffer;
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
@ -1211,14 +1211,14 @@ static bool8 ShouldRotScaleSpeciesBeFlipped(void)
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode)
{
u8 battlerId = gSprites[spriteId].data[0];
u8 battler = gSprites[spriteId].data[0];
if (IsContest() || IsBattlerSpriteVisible(battlerId))
if (IsContest() || IsBattlerSpriteVisible(battler))
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].oam.objMode = objMode;
gSprites[spriteId].affineAnimPaused = TRUE;
if (!IsContest() && !gSprites[spriteId].oam.affineMode)
gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].matrixNum;
gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battler].matrixNum;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
}
@ -1521,7 +1521,7 @@ static void AnimThrowProjectile_Step(struct Sprite *sprite)
void AnimTravelDiagonally(struct Sprite *sprite)
{
bool8 respectMonPicOffsets;
u8 battlerId, coordType;
u8 battler, coordType;
if (!gBattleAnimArgs[6])
{
@ -1536,19 +1536,19 @@ void AnimTravelDiagonally(struct Sprite *sprite)
if (gBattleAnimArgs[5] == ANIM_ATTACKER)
{
InitSpritePosToAnimAttacker(sprite, respectMonPicOffsets);
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
}
else
{
InitSpritePosToAnimTarget(sprite, respectMonPicOffsets);
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
}
if (GetBattlerSide(gBattleAnimAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
InitSpritePosToAnimTarget(sprite, respectMonPicOffsets);
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(battlerId, coordType) + gBattleAnimArgs[3];
sprite->data[2] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(battler, coordType) + gBattleAnimArgs[3];
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@ -1832,7 +1832,7 @@ void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId)
static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
{
struct BattleSpriteInfo *spriteInfo;
u8 battlerId = gSprites[spriteId].data[0];
u8 battler = gSprites[spriteId].data[0];
u16 species;
u16 i;
@ -1848,10 +1848,10 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
else
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
if (!spriteInfo[battler].transformSpecies)
species = GetMonData(GetPartyBattlerData(i), MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
species = spriteInfo[battler].transformSpecies;
if (GetBattlerSide(i) == B_SIDE_PLAYER)
return gSpeciesInfo[species].backPicYOffset;
@ -1951,21 +1951,21 @@ void InitPrioritiesForVisibleBattlers(void)
}
}
u8 GetBattlerSpriteSubpriority(u8 battlerId)
u8 GetBattlerSpriteSubpriority(u8 battler)
{
u8 position;
u8 subpriority;
if (IsContest())
{
if (battlerId == 2)
if (battler == 2)
return 30;
else
return 40;
}
else
{
position = GetBattlerPosition(battlerId);
position = GetBattlerPosition(battler);
if (position == B_POSITION_PLAYER_LEFT)
subpriority = 30;
else if (position == B_POSITION_PLAYER_RIGHT)
@ -1979,9 +1979,9 @@ u8 GetBattlerSpriteSubpriority(u8 battlerId)
return subpriority;
}
u8 GetBattlerSpriteBGPriority(u8 battlerId)
u8 GetBattlerSpriteBGPriority(u8 battler)
{
u8 position = GetBattlerPosition(battlerId);
u8 position = GetBattlerPosition(battler);
if (IsContest())
return 2;
@ -1991,11 +1991,11 @@ u8 GetBattlerSpriteBGPriority(u8 battlerId)
return GetAnimBgAttribute(1, BG_ANIM_PRIORITY);
}
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
u8 GetBattlerSpriteBGPriorityRank(u8 battler)
{
if (!IsContest())
{
u8 position = GetBattlerPosition(battlerId);
u8 position = GetBattlerPosition(battler);
if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT)
return 2;
else
@ -2005,7 +2005,7 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
}
// Create Pokémon sprite to be used for a move animation effect (e.g. Role Play / Snatch)
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battlerId)
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battler)
{
u8 spriteId;
u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[id]);
@ -2051,7 +2051,7 @@ void DestroySpriteAndFreeResources_(struct Sprite *sprite)
DestroySpriteAndFreeResources(sprite);
}
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr)
s16 GetBattlerSpriteCoordAttr(u8 battler, u8 attr)
{
u16 species;
u32 personality;
@ -2080,25 +2080,25 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr)
}
else
{
struct Pokemon *mon = GetPartyBattlerData(battlerId);
struct Pokemon *mon = GetPartyBattlerData(battler);
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
if (!spriteInfo[battler].transformSpecies)
{
species = GetMonData(mon, MON_DATA_SPECIES);
personality = GetMonData(mon, MON_DATA_PERSONALITY);
}
else
{
species = spriteInfo[battlerId].transformSpecies;
personality = gTransformedPersonalities[battlerId];
species = spriteInfo[battler].transformSpecies;
personality = gTransformedPersonalities[battler];
}
species = SanitizeSpeciesId(species);
if (species == SPECIES_UNOWN)
species = GetUnownSpeciesId(personality);
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
#if P_GENDER_DIFFERENCES
if (gSpeciesInfo[species].backPicFemale != NULL && IsPersonalityFemale(species, personality))
@ -2129,22 +2129,22 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr)
case BATTLER_COORD_ATTR_WIDTH:
return GET_MON_COORDS_WIDTH(size);
case BATTLER_COORD_ATTR_LEFT:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - (GET_MON_COORDS_WIDTH(size) / 2);
return GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) - (GET_MON_COORDS_WIDTH(size) / 2);
case BATTLER_COORD_ATTR_RIGHT:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + (GET_MON_COORDS_WIDTH(size) / 2);
return GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + (GET_MON_COORDS_WIDTH(size) / 2);
case BATTLER_COORD_ATTR_TOP:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - (GET_MON_COORDS_HEIGHT(size) / 2);
return GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) - (GET_MON_COORDS_HEIGHT(size) / 2);
case BATTLER_COORD_ATTR_BOTTOM:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + (GET_MON_COORDS_HEIGHT(size) / 2);
return GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + (GET_MON_COORDS_HEIGHT(size) / 2);
case BATTLER_COORD_ATTR_RAW_BOTTOM:
ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31;
ret = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y) + 31;
return ret - y_offset;
default:
return 0;
}
}
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y)
void SetAverageBattlerPositions(u8 battler, bool8 respectMonPicOffsets, s16 *x, s16 *y)
{
u8 xCoordType, yCoordType;
s16 battlerX, battlerY;
@ -2161,12 +2161,12 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x
yCoordType = BATTLER_COORD_Y_PIC_OFFSET;
}
battlerX = GetBattlerSpriteCoord(battlerId, xCoordType);
battlerY = GetBattlerSpriteCoord(battlerId, yCoordType);
battlerX = GetBattlerSpriteCoord(battler, xCoordType);
battlerY = GetBattlerSpriteCoord(battler, yCoordType);
if (IsDoubleBattle() && !IsContest())
{
partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), xCoordType);
partnerY = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), yCoordType);
partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(battler), xCoordType);
partnerY = GetBattlerSpriteCoord(BATTLE_PARTNER(battler), yCoordType);
}
else
{
@ -2178,7 +2178,7 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x
*y = (battlerY + partnerY) / 2;
}
u8 CreateInvisibleSpriteCopy(int battlerId, u8 spriteId, int species)
u8 CreateInvisibleSpriteCopy(int battler, u8 spriteId, int species)
{
u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
gSprites[newSpriteId] = gSprites[spriteId];

View File

@ -148,26 +148,26 @@ void SoundTask_PlayCryHighPitch(u8 taskId)
}
else
{
u8 battlerId;
u8 battler;
// Get wanted battler.
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else if (gBattleAnimArgs[0] == ANIM_TARGET)
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
else if (gBattleAnimArgs[0] == ANIM_ATK_PARTNER)
battlerId = BATTLE_PARTNER(gBattleAnimAttacker);
battler = BATTLE_PARTNER(gBattleAnimAttacker);
else
battlerId = BATTLE_PARTNER(gBattleAnimTarget);
battler = BATTLE_PARTNER(gBattleAnimTarget);
// Check if battler is visible.
if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) && !IsBattlerSpriteVisible(battlerId))
if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) && !IsBattlerSpriteVisible(battler))
{
DestroyAnimVisualTask(taskId);
return;
}
species = (GetIllusionMonSpecies(battlerId) != SPECIES_NONE) ? GetIllusionMonSpecies(battlerId) : gAnimBattlerSpecies[battlerId];
species = (GetIllusionMonSpecies(battler) != SPECIES_NONE) ? GetIllusionMonSpecies(battler) : gAnimBattlerSpecies[battler];
}
if (species != SPECIES_NONE)
@ -193,26 +193,26 @@ void SoundTask_PlayDoubleCry(u8 taskId)
}
else
{
u8 battlerId;
u8 battler;
// Get wanted battler.
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
battlerId = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else if (gBattleAnimArgs[0] == ANIM_TARGET)
battlerId = gBattleAnimTarget;
battler = gBattleAnimTarget;
else if (gBattleAnimArgs[0] == ANIM_ATK_PARTNER)
battlerId = BATTLE_PARTNER(gBattleAnimAttacker);
battler = BATTLE_PARTNER(gBattleAnimAttacker);
else
battlerId = BATTLE_PARTNER(gBattleAnimTarget);
battler = BATTLE_PARTNER(gBattleAnimTarget);
// Check if battler is visible.
if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) && !IsBattlerSpriteVisible(battlerId))
if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) && !IsBattlerSpriteVisible(battler))
{
DestroyAnimVisualTask(taskId);
return;
}
species = (GetIllusionMonSpecies(battlerId) != SPECIES_NONE) ? GetIllusionMonSpecies(battlerId) : gAnimBattlerSpecies[battlerId];
species = (GetIllusionMonSpecies(battler) != SPECIES_NONE) ? GetIllusionMonSpecies(battler) : gAnimBattlerSpecies[battler];
}
gTasks[taskId].data[0] = gBattleAnimArgs[1];

View File

@ -269,16 +269,16 @@ static const struct SpriteTemplate sFlashingCircleImpactSpriteTemplate =
.callback = AnimFlashingCircleImpact,
};
static u8 UNUSED Task_FlashingCircleImpacts(u8 battlerId, bool8 red)
static u8 UNUSED Task_FlashingCircleImpacts(u8 battler, bool8 red)
{
u8 battlerSpriteId = gBattlerSpriteIds[battlerId];
u8 battlerSpriteId = gBattlerSpriteIds[battler];
u8 taskId = CreateTask(Task_UpdateFlashingCircleImpacts, 10);
u8 spriteId;
u8 i;
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
gTasks[taskId].data[0] = battlerId;
gTasks[taskId].data[0] = battler;
if (red)
{
gTasks[taskId].data[1] = RGB_RED;
@ -588,15 +588,15 @@ void AnimTask_StatsChange(u8 taskId)
#undef CASE
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId)
void LaunchStatusAnimation(u8 battler, u8 statusAnimId)
{
u8 taskId;
gBattleAnimAttacker = battlerId;
gBattleAnimTarget = battlerId;
gBattleAnimAttacker = battler;
gBattleAnimTarget = battler;
LaunchBattleAnimation(ANIM_TYPE_STATUS, statusAnimId);
taskId = CreateTask(Task_DoStatusAnimation, 10);
gTasks[taskId].data[0] = battlerId;
gTasks[taskId].data[0] = battler;
}
static void Task_DoStatusAnimation(u8 taskId)

View File

@ -634,13 +634,13 @@ static const struct WindowTemplate sHealthboxWindowTemplate = {
// This function is here to cover a specific case - one player's mon in a 2 vs 1 double battle. In this scenario - display singles layout.
// The same goes for a 2 vs 1 where opponent has only one pokemon.
u32 WhichBattleCoords(u32 battlerId) // 0 - singles, 1 - doubles
u32 WhichBattleCoords(u32 battler) // 0 - singles, 1 - doubles
{
if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_LEFT
if (GetBattlerPosition(battler) == B_POSITION_PLAYER_LEFT
&& gPlayerPartyCount == 1
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
return 0;
else if (GetBattlerPosition(battlerId) == B_POSITION_OPPONENT_LEFT
else if (GetBattlerPosition(battler) == B_POSITION_OPPONENT_LEFT
&& gEnemyPartyCount == 1
&& !(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))
return 0;
@ -648,16 +648,16 @@ u32 WhichBattleCoords(u32 battlerId) // 0 - singles, 1 - doubles
return IsDoubleBattle();
}
u8 CreateBattlerHealthboxSprites(u8 battlerId)
u8 CreateBattlerHealthboxSprites(u8 battler)
{
s16 data6 = 0;
u8 healthboxLeftSpriteId, healthboxRightSpriteId;
u8 healthbarSpriteId;
struct Sprite *healthBarSpritePtr;
if (WhichBattleCoords(battlerId) == 0) // Singles
if (WhichBattleCoords(battler) == 0) // Singles
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
@ -683,10 +683,10 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
}
else
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
gSprites[healthboxLeftSpriteId].oam.affineParam = healthboxRightSpriteId;
@ -698,8 +698,8 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
}
else
{
healthboxLeftSpriteId = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxLeftSpriteId = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1);
gSprites[healthboxLeftSpriteId].oam.affineParam = healthboxRightSpriteId;
@ -711,16 +711,16 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
}
}
healthbarSpriteId = CreateSpriteAtEnd(&sHealthbarSpriteTemplates[gBattlerPositions[battlerId]], 140, 60, 0);
healthbarSpriteId = CreateSpriteAtEnd(&sHealthbarSpriteTemplates[gBattlerPositions[battler]], 140, 60, 0);
healthBarSpritePtr = &gSprites[healthbarSpriteId];
SetSubspriteTables(healthBarSpritePtr, &sHealthBar_SubspriteTables[GetBattlerSide(battlerId)]);
SetSubspriteTables(healthBarSpritePtr, &sHealthBar_SubspriteTables[GetBattlerSide(battler)]);
healthBarSpritePtr->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
healthBarSpritePtr->oam.priority = 1;
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + healthBarSpritePtr->oam.tileNum * TILE_SIZE_4BPP), 64);
gSprites[healthboxLeftSpriteId].hMain_HealthBarSpriteId = healthbarSpriteId;
gSprites[healthboxLeftSpriteId].hMain_Battler = battlerId;
gSprites[healthboxLeftSpriteId].hMain_Battler = battler;
gSprites[healthboxLeftSpriteId].invisible = TRUE;
gSprites[healthboxRightSpriteId].invisible = TRUE;
@ -729,7 +729,7 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
healthBarSpritePtr->hBar_Data6 = data6;
healthBarSpritePtr->invisible = TRUE;
CreateIndicatorSprite(battlerId);
CreateIndicatorSprite(battler);
gBattleStruct->ballSpriteIds[0] = MAX_SPRITES;
gBattleStruct->ballSpriteIds[1] = MAX_SPRITES;
@ -800,13 +800,13 @@ static void SpriteCB_HealthBoxOther(struct Sprite *sprite)
sprite->y2 = gSprites[healthboxMainSpriteId].y2;
}
void SetBattleBarStruct(u8 battlerId, u8 healthboxSpriteId, s32 maxVal, s32 oldVal, s32 receivedValue)
void SetBattleBarStruct(u8 battler, u8 healthboxSpriteId, s32 maxVal, s32 oldVal, s32 receivedValue)
{
gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId = healthboxSpriteId;
gBattleSpritesDataPtr->battleBars[battlerId].maxValue = maxVal;
gBattleSpritesDataPtr->battleBars[battlerId].oldValue = oldVal;
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue = receivedValue;
gBattleSpritesDataPtr->battleBars[battlerId].currValue = -32768;
gBattleSpritesDataPtr->battleBars[battler].healthboxSpriteId = healthboxSpriteId;
gBattleSpritesDataPtr->battleBars[battler].maxValue = maxVal;
gBattleSpritesDataPtr->battleBars[battler].oldValue = oldVal;
gBattleSpritesDataPtr->battleBars[battler].receivedValue = receivedValue;
gBattleSpritesDataPtr->battleBars[battler].currValue = -32768;
}
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId)
@ -1062,14 +1062,14 @@ static void UpdateOpponentHpTextSingles(u32 healthboxSpriteId, s16 value, u32 ma
void UpdateHpTextInHealthbox(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp)
{
u32 battlerId = gSprites[healthboxSpriteId].hMain_Battler;
if (WhichBattleCoords(battlerId))
u32 battler = gSprites[healthboxSpriteId].hMain_Battler;
if (WhichBattleCoords(battler))
{
UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, maxOrCurrent, currHp, maxHp);
}
else // Single Battle
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Player
if (GetBattlerSide(battler) == B_SIDE_PLAYER) // Player
{
PrintHpOnHealthbox(healthboxSpriteId, currHp, maxHp, 2, 0xB00, 0x3A0);
}
@ -1248,7 +1248,7 @@ void SwapHpBarsWithHpText(void)
#define tIsBattleStart data[10]
#define tBlend data[15]
u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, bool8 skipPlayer, bool8 isBattleStart)
u8 CreatePartyStatusSummarySprites(u8 battler, struct HpAndStatus *partyInfo, bool8 skipPlayer, bool8 isBattleStart)
{
bool8 isOpponent;
s16 bar_X, bar_Y, bar_pos2_X, bar_data0;
@ -1257,9 +1257,9 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
u8 ballIconSpritesIds[PARTY_SIZE];
u8 taskId;
if (!skipPlayer || GetBattlerPosition(battlerId) != B_POSITION_OPPONENT_RIGHT)
if (!skipPlayer || GetBattlerPosition(battler) != B_POSITION_OPPONENT_RIGHT)
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
isOpponent = FALSE;
bar_X = 136, bar_Y = 96;
@ -1270,7 +1270,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
{
isOpponent = TRUE;
if (!skipPlayer || !WhichBattleCoords(battlerId))
if (!skipPlayer || !WhichBattleCoords(battler))
bar_X = 104, bar_Y = 40;
else
bar_X = 104, bar_Y = 16;
@ -1338,7 +1338,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
gSprites[ballIconSpritesIds[i]].data[2] = isOpponent;
}
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
@ -1451,7 +1451,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
}
taskId = CreateTask(TaskDummy, 5);
gTasks[taskId].tBattler = battlerId;
gTasks[taskId].tBattler = battler;
gTasks[taskId].tSummaryBarSpriteId = summaryBarSpriteId;
for (i = 0; i < PARTY_SIZE; i++)
@ -1474,12 +1474,12 @@ void Task_HidePartyStatusSummary(u8 taskId)
u8 ballIconSpriteIds[PARTY_SIZE];
bool8 isBattleStart;
u8 summaryBarSpriteId;
u8 battlerId;
u8 battler;
s32 i;
isBattleStart = gTasks[taskId].tIsBattleStart;
summaryBarSpriteId = gTasks[taskId].tSummaryBarSpriteId;
battlerId = gTasks[taskId].tBattler;
battler = gTasks[taskId].tBattler;
for (i = 0; i < PARTY_SIZE; i++)
ballIconSpriteIds[i] = gTasks[taskId].tBallIconSpriteId(i);
@ -1498,7 +1498,7 @@ void Task_HidePartyStatusSummary(u8 taskId)
{
for (i = 0; i < PARTY_SIZE; i++)
{
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
{
gSprites[ballIconSpriteIds[PARTY_SIZE - 1 - i]].data[1] = 7 * i;
gSprites[ballIconSpriteIds[PARTY_SIZE - 1 - i]].data[3] = 0;
@ -1543,7 +1543,7 @@ static void Task_HidePartyStatusSummary_BattleStart_2(u8 taskId)
u8 ballIconSpriteIds[PARTY_SIZE];
s32 i;
u8 battlerId = gTasks[taskId].tBattler;
u8 battler = gTasks[taskId].tBattler;
if (--gTasks[taskId].tBlend == -1)
{
u8 summaryBarSpriteId = gTasks[taskId].tSummaryBarSpriteId;
@ -1570,7 +1570,7 @@ static void Task_HidePartyStatusSummary_BattleStart_2(u8 taskId)
}
else if (gTasks[taskId].tBlend == -3)
{
gBattleSpritesDataPtr->healthBoxesData[battlerId].partyStatusSummaryShown = 0;
gBattleSpritesDataPtr->healthBoxesData[battler].partyStatusSummaryShown = 0;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
DestroyTask(taskId);
@ -1581,7 +1581,7 @@ static void Task_HidePartyStatusSummary_DuringBattle(u8 taskId)
{
u8 ballIconSpriteIds[PARTY_SIZE];
s32 i;
u8 battlerId = gTasks[taskId].tBattler;
u8 battler = gTasks[taskId].tBattler;
if (--gTasks[taskId].tBlend >= 0)
{
@ -1602,7 +1602,7 @@ static void Task_HidePartyStatusSummary_DuringBattle(u8 taskId)
}
else if (gTasks[taskId].tBlend == -3)
{
gBattleSpritesDataPtr->healthBoxesData[battlerId].partyStatusSummaryShown = 0;
gBattleSpritesDataPtr->healthBoxesData[battler].partyStatusSummaryShown = 0;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
DestroyTask(taskId);
@ -1769,17 +1769,17 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
{
u8 battlerId, healthBarSpriteId;
u8 battler, healthBarSpriteId;
if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
return;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
return;
battlerId = gSprites[healthboxSpriteId].hMain_Battler;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
battler = gSprites[healthboxSpriteId].hMain_Battler;
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
return;
if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
return;
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
@ -1793,56 +1793,56 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
{
s32 i;
u8 battlerId, healthBarSpriteId;
u8 battler, healthBarSpriteId;
u32 status, pltAdder;
const u8 *statusGfxPtr;
s16 tileNumAdder;
u8 statusPalId;
battlerId = gSprites[healthboxSpriteId].hMain_Battler;
battler = gSprites[healthboxSpriteId].hMain_Battler;
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_STATUS);
if (!WhichBattleCoords(battlerId))
status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_STATUS);
if (!WhichBattleCoords(battler))
tileNumAdder = 0x1A;
else
tileNumAdder = 0x12;
}
else
{
status = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_STATUS);
status = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_STATUS);
tileNumAdder = 0x11;
}
if (status & STATUS1_SLEEP)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_SLP_BATTLER0, battlerId));
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_SLP_BATTLER0, battler));
statusPalId = PAL_STATUS_SLP;
}
else if (status & STATUS1_PSN_ANY)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_PSN_BATTLER0, battlerId));
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_PSN_BATTLER0, battler));
statusPalId = PAL_STATUS_PSN;
}
else if (status & STATUS1_BURN)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_BRN_BATTLER0, battlerId));
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_BRN_BATTLER0, battler));
statusPalId = PAL_STATUS_BRN;
}
else if (status & STATUS1_FREEZE)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, battlerId));
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, battler));
statusPalId = PAL_STATUS_FRZ;
}
else if (status & STATUS1_FROSTBITE)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FRB_BATTLER0, battlerId));
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FRB_BATTLER0, battler));
statusPalId = PAL_STATUS_FRZ;
}
else if (status & STATUS1_PARALYSIS)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, battlerId));
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, battler));
statusPalId = PAL_STATUS_PAR;
}
else
@ -1852,7 +1852,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
for (i = 0; i < 3; i++)
CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * TILE_SIZE_4BPP), 32);
if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
if (!gBattleSpritesDataPtr->battlerData[battler].hpNumbersNoBars)
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 64);
TryAddPokeballIconToHealthbox(healthboxSpriteId, TRUE);
@ -1860,14 +1860,14 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
}
pltAdder = PLTT_ID(gSprites[healthboxSpriteId].oam.paletteNum);
pltAdder += battlerId + 12;
pltAdder += battler + 12;
FillPalette(sStatusIconColors[statusPalId], OBJ_PLTT_OFFSET + pltAdder, PLTT_SIZEOF(1));
CpuCopy16(&gPlttBufferUnfaded[OBJ_PLTT_OFFSET + pltAdder], (u16 *)OBJ_PLTT + pltAdder, PLTT_SIZEOF(1));
CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96);
if (WhichBattleCoords(battlerId) == 1 || GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
if (WhichBattleCoords(battler) == 1 || GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
if (!gBattleSpritesDataPtr->battlerData[battler].hpNumbersNoBars)
{
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 32);
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 1) * TILE_SIZE_4BPP), 32);
@ -1876,68 +1876,68 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
TryAddPokeballIconToHealthbox(healthboxSpriteId, FALSE);
}
static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battlerId)
static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battler)
{
u8 ret = statusElementId;
switch (statusElementId)
{
case HEALTHBOX_GFX_STATUS_PSN_BATTLER0:
if (battlerId == 0)
if (battler == 0)
ret = HEALTHBOX_GFX_STATUS_PSN_BATTLER0;
else if (battlerId == 1)
else if (battler == 1)
ret = HEALTHBOX_GFX_STATUS_PSN_BATTLER1;
else if (battlerId == 2)
else if (battler == 2)
ret = HEALTHBOX_GFX_STATUS_PSN_BATTLER2;
else
ret = HEALTHBOX_GFX_STATUS_PSN_BATTLER3;
break;
case HEALTHBOX_GFX_STATUS_PRZ_BATTLER0:
if (battlerId == 0)
if (battler == 0)
ret = HEALTHBOX_GFX_STATUS_PRZ_BATTLER0;
else if (battlerId == 1)
else if (battler == 1)
ret = HEALTHBOX_GFX_STATUS_PRZ_BATTLER1;
else if (battlerId == 2)
else if (battler == 2)
ret = HEALTHBOX_GFX_STATUS_PRZ_BATTLER2;
else
ret = HEALTHBOX_GFX_STATUS_PRZ_BATTLER3;
break;
case HEALTHBOX_GFX_STATUS_SLP_BATTLER0:
if (battlerId == 0)
if (battler == 0)
ret = HEALTHBOX_GFX_STATUS_SLP_BATTLER0;
else if (battlerId == 1)
else if (battler == 1)
ret = HEALTHBOX_GFX_STATUS_SLP_BATTLER1;
else if (battlerId == 2)
else if (battler == 2)
ret = HEALTHBOX_GFX_STATUS_SLP_BATTLER2;
else
ret = HEALTHBOX_GFX_STATUS_SLP_BATTLER3;
break;
case HEALTHBOX_GFX_STATUS_FRZ_BATTLER0:
if (battlerId == 0)
if (battler == 0)
ret = HEALTHBOX_GFX_STATUS_FRZ_BATTLER0;
else if (battlerId == 1)
else if (battler == 1)
ret = HEALTHBOX_GFX_STATUS_FRZ_BATTLER1;
else if (battlerId == 2)
else if (battler == 2)
ret = HEALTHBOX_GFX_STATUS_FRZ_BATTLER2;
else
ret = HEALTHBOX_GFX_STATUS_FRZ_BATTLER3;
break;
case HEALTHBOX_GFX_STATUS_FRB_BATTLER0:
if (battlerId == 0)
if (battler == 0)
ret = HEALTHBOX_GFX_STATUS_FRB_BATTLER0;
else if (battlerId == 1)
else if (battler == 1)
ret = HEALTHBOX_GFX_STATUS_FRB_BATTLER1;
else if (battlerId == 2)
else if (battler == 2)
ret = HEALTHBOX_GFX_STATUS_FRB_BATTLER2;
else
ret = HEALTHBOX_GFX_STATUS_FRB_BATTLER3;
break;
case HEALTHBOX_GFX_STATUS_BRN_BATTLER0:
if (battlerId == 0)
if (battler == 0)
ret = HEALTHBOX_GFX_STATUS_BRN_BATTLER0;
else if (battlerId == 1)
else if (battler == 1)
ret = HEALTHBOX_GFX_STATUS_BRN_BATTLER1;
else if (battlerId == 2)
else if (battler == 2)
ret = HEALTHBOX_GFX_STATUS_BRN_BATTLER2;
else
ret = HEALTHBOX_GFX_STATUS_BRN_BATTLER3;
@ -1977,13 +1977,13 @@ static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId)
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId)
{
u32 battlerId = gSprites[healthboxSpriteId].hMain_Battler;
u32 battler = gSprites[healthboxSpriteId].hMain_Battler;
s32 maxHp = GetMonData(mon, MON_DATA_MAX_HP);
s32 currHp = GetMonData(mon, MON_DATA_HP);
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
u8 isDoubles = WhichBattleCoords(battlerId);
u8 isDoubles = WhichBattleCoords(battler);
if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL)
UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL));
@ -1998,8 +1998,8 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL)
{
LoadBattleBarGfx(0);
SetBattleBarStruct(battlerId, healthboxSpriteId, maxHp, currHp, 0);
MoveBattleBar(battlerId, healthboxSpriteId, HEALTH_BAR, 0);
SetBattleBarStruct(battler, healthboxSpriteId, maxHp, currHp, 0);
MoveBattleBar(battler, healthboxSpriteId, HEALTH_BAR, 0);
}
if (!isDoubles && (elementId == HEALTHBOX_EXP_BAR || elementId == HEALTHBOX_ALL))
@ -2016,8 +2016,8 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
currLevelExp = gExperienceTables[gSpeciesInfo[species].growthRate][level];
currExpBarValue = exp - currLevelExp;
maxExpBarValue = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1] - currLevelExp;
SetBattleBarStruct(battlerId, healthboxSpriteId, maxExpBarValue, currExpBarValue, isDoubles);
MoveBattleBar(battlerId, healthboxSpriteId, EXP_BAR, 0);
SetBattleBarStruct(battler, healthboxSpriteId, maxExpBarValue, currExpBarValue, isDoubles);
MoveBattleBar(battler, healthboxSpriteId, EXP_BAR, 0);
}
if (elementId == HEALTHBOX_NICK || elementId == HEALTHBOX_ALL)
UpdateNickInHealthbox(healthboxSpriteId, mon);
@ -2032,7 +2032,7 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
{
if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL)
UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL));
if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
if (gBattleSpritesDataPtr->battlerData[battler].hpNumbersNoBars)
{
if (elementId == HEALTHBOX_ALL)
UpdateHpTextInHealthbox(healthboxSpriteId, HP_BOTH, currHp, maxHp);
@ -2044,8 +2044,8 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL)
{
LoadBattleBarGfx(0);
SetBattleBarStruct(battlerId, healthboxSpriteId, maxHp, currHp, 0);
MoveBattleBar(battlerId, healthboxSpriteId, HEALTH_BAR, 0);
SetBattleBarStruct(battler, healthboxSpriteId, maxHp, currHp, 0);
MoveBattleBar(battler, healthboxSpriteId, HEALTH_BAR, 0);
}
if (elementId == HEALTHBOX_NICK || elementId == HEALTHBOX_ALL)
UpdateNickInHealthbox(healthboxSpriteId, mon);
@ -2057,45 +2057,45 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
#define B_EXPBAR_PIXELS 64
#define B_HEALTHBAR_PIXELS 48
s32 MoveBattleBar(u8 battlerId, u8 healthboxSpriteId, u8 whichBar, u8 unused)
s32 MoveBattleBar(u8 battler, u8 healthboxSpriteId, u8 whichBar, u8 unused)
{
s32 currentBarValue;
if (whichBar == HEALTH_BAR) // health bar
{
u16 hpFraction = B_FAST_HP_DRAIN == FALSE ? 1 : max(gBattleSpritesDataPtr->battleBars[battlerId].maxValue / (B_HEALTHBAR_PIXELS / 2), 1);
currentBarValue = CalcNewBarValue(gBattleSpritesDataPtr->battleBars[battlerId].maxValue,
gBattleSpritesDataPtr->battleBars[battlerId].oldValue,
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue,
&gBattleSpritesDataPtr->battleBars[battlerId].currValue,
u16 hpFraction = B_FAST_HP_DRAIN == FALSE ? 1 : max(gBattleSpritesDataPtr->battleBars[battler].maxValue / (B_HEALTHBAR_PIXELS / 2), 1);
currentBarValue = CalcNewBarValue(gBattleSpritesDataPtr->battleBars[battler].maxValue,
gBattleSpritesDataPtr->battleBars[battler].oldValue,
gBattleSpritesDataPtr->battleBars[battler].receivedValue,
&gBattleSpritesDataPtr->battleBars[battler].currValue,
B_HEALTHBAR_PIXELS / 8, hpFraction);
}
else // exp bar
{
u16 expFraction = GetScaledExpFraction(gBattleSpritesDataPtr->battleBars[battlerId].oldValue,
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue,
gBattleSpritesDataPtr->battleBars[battlerId].maxValue, 8);
u16 expFraction = GetScaledExpFraction(gBattleSpritesDataPtr->battleBars[battler].oldValue,
gBattleSpritesDataPtr->battleBars[battler].receivedValue,
gBattleSpritesDataPtr->battleBars[battler].maxValue, 8);
if (expFraction == 0)
expFraction = 1;
expFraction = abs(gBattleSpritesDataPtr->battleBars[battlerId].receivedValue / expFraction);
expFraction = abs(gBattleSpritesDataPtr->battleBars[battler].receivedValue / expFraction);
currentBarValue = CalcNewBarValue(gBattleSpritesDataPtr->battleBars[battlerId].maxValue,
gBattleSpritesDataPtr->battleBars[battlerId].oldValue,
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue,
&gBattleSpritesDataPtr->battleBars[battlerId].currValue,
currentBarValue = CalcNewBarValue(gBattleSpritesDataPtr->battleBars[battler].maxValue,
gBattleSpritesDataPtr->battleBars[battler].oldValue,
gBattleSpritesDataPtr->battleBars[battler].receivedValue,
&gBattleSpritesDataPtr->battleBars[battler].currValue,
B_EXPBAR_PIXELS / 8, expFraction);
}
if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars))
MoveBattleBarGraphically(battlerId, whichBar);
if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->battlerData[battler].hpNumbersNoBars))
MoveBattleBarGraphically(battler, whichBar);
if (currentBarValue == -1)
gBattleSpritesDataPtr->battleBars[battlerId].currValue = 0;
gBattleSpritesDataPtr->battleBars[battler].currValue = 0;
return currentBarValue;
}
static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
static void MoveBattleBarGraphically(u8 battler, u8 whichBar)
{
u8 array[8];
u8 filledPixelsCount, level;
@ -2105,10 +2105,10 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
switch (whichBar)
{
case HEALTH_BAR:
filledPixelsCount = CalcBarFilledPixels(gBattleSpritesDataPtr->battleBars[battlerId].maxValue,
gBattleSpritesDataPtr->battleBars[battlerId].oldValue,
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue,
&gBattleSpritesDataPtr->battleBars[battlerId].currValue,
filledPixelsCount = CalcBarFilledPixels(gBattleSpritesDataPtr->battleBars[battler].maxValue,
gBattleSpritesDataPtr->battleBars[battler].oldValue,
gBattleSpritesDataPtr->battleBars[battler].receivedValue,
&gBattleSpritesDataPtr->battleBars[battler].currValue,
array, B_HEALTHBAR_PIXELS / 8);
if (filledPixelsCount > (B_HEALTHBAR_PIXELS * 50 / 100)) // more than 50 % hp
@ -2120,7 +2120,7 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
for (i = 0; i < 6; i++)
{
u8 healthbarSpriteId = gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].hMain_HealthBarSpriteId;
u8 healthbarSpriteId = gSprites[gBattleSpritesDataPtr->battleBars[battler].healthboxSpriteId].hMain_HealthBarSpriteId;
if (i < 2)
CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
(void *)(OBJ_VRAM0 + (gSprites[healthbarSpriteId].oam.tileNum + 2 + i) * TILE_SIZE_4BPP), 32);
@ -2130,12 +2130,12 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
}
break;
case EXP_BAR:
CalcBarFilledPixels(gBattleSpritesDataPtr->battleBars[battlerId].maxValue,
gBattleSpritesDataPtr->battleBars[battlerId].oldValue,
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue,
&gBattleSpritesDataPtr->battleBars[battlerId].currValue,
CalcBarFilledPixels(gBattleSpritesDataPtr->battleBars[battler].maxValue,
gBattleSpritesDataPtr->battleBars[battler].oldValue,
gBattleSpritesDataPtr->battleBars[battler].receivedValue,
&gBattleSpritesDataPtr->battleBars[battler].currValue,
array, B_EXPBAR_PIXELS / 8);
level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_LEVEL);
level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_LEVEL);
if (level >= MAX_LEVEL)
{
for (i = 0; i < 8; i++)
@ -2145,10 +2145,10 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
{
if (i < 4)
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
(void *)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum + 0x24 + i) * TILE_SIZE_4BPP), 32);
(void *)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[battler].healthboxSpriteId].oam.tileNum + 0x24 + i) * TILE_SIZE_4BPP), 32);
else
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
(void *)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
(void *)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[battler].healthboxSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
}
break;
}

View File

@ -202,7 +202,7 @@ static void UpdateLinkBattleGameStats(s32 battleOutcome)
IncrementGameStat(stat);
}
static void UpdateLinkBattleRecords(struct LinkBattleRecords *records, const u8 *name, u16 trainerId, s32 battleOutcome, u8 battlerId)
static void UpdateLinkBattleRecords(struct LinkBattleRecords *records, const u8 *name, u16 trainerId, s32 battleOutcome, u8 battler)
{
s32 index;
@ -215,7 +215,7 @@ static void UpdateLinkBattleRecords(struct LinkBattleRecords *records, const u8
ClearLinkBattleRecord(&records->entries[index]);
StringCopyN(records->entries[index].name, name, PLAYER_NAME_LENGTH);
records->entries[index].trainerId = trainerId;
records->languages[index] = gLinkPlayers[battlerId].language;
records->languages[index] = gLinkPlayers[battler].language;
}
UpdateLinkBattleRecord(&records->entries[index], battleOutcome);
SortLinkBattleRecords(records);
@ -230,50 +230,50 @@ void ClearPlayerLinkBattleRecords(void)
}
#if FREE_LINK_BATTLE_RECORDS == FALSE
static void IncTrainerCardWins(s32 battlerId)
static void IncTrainerCardWins(s32 battler)
{
u16 *wins = &gTrainerCards[battlerId].linkBattleWins;
u16 *wins = &gTrainerCards[battler].linkBattleWins;
(*wins)++;
if (*wins > 9999)
*wins = 9999;
}
static void IncTrainerCardLosses(s32 battlerId)
static void IncTrainerCardLosses(s32 battler)
{
u16 *losses = &gTrainerCards[battlerId].linkBattleLosses;
u16 *losses = &gTrainerCards[battler].linkBattleLosses;
(*losses)++;
if (*losses > 9999)
*losses = 9999;
}
static void UpdateTrainerCardWinsLosses(s32 battlerId)
static void UpdateTrainerCardWinsLosses(s32 battler)
{
switch (gBattleOutcome)
{
case B_OUTCOME_WON:
IncTrainerCardWins(BATTLE_OPPOSITE(battlerId));
IncTrainerCardLosses(battlerId);
IncTrainerCardWins(BATTLE_OPPOSITE(battler));
IncTrainerCardLosses(battler);
break;
case B_OUTCOME_LOST:
IncTrainerCardLosses(BATTLE_OPPOSITE(battlerId));
IncTrainerCardWins(battlerId);
IncTrainerCardLosses(BATTLE_OPPOSITE(battler));
IncTrainerCardWins(battler);
break;
}
}
#endif //FREE_LINK_BATTLE_RECORDS
void UpdatePlayerLinkBattleRecords(s32 battlerId)
void UpdatePlayerLinkBattleRecords(s32 battler)
{
#if FREE_LINK_BATTLE_RECORDS == FALSE
if (InUnionRoom() != TRUE)
{
UpdateTrainerCardWinsLosses(battlerId);
UpdateTrainerCardWinsLosses(battler);
UpdateLinkBattleRecords(
&gSaveBlock1Ptr->linkBattleRecords,
gTrainerCards[battlerId].playerName,
gTrainerCards[battlerId].trainerId,
gTrainerCards[battler].playerName,
gTrainerCards[battler].trainerId,
gBattleOutcome,
battlerId);
battler);
}
#endif //FREE_LINK_BATTLE_RECORDS
}

View File

@ -1358,18 +1358,18 @@ void BattleTv_ClearExplosionFaintCause(void)
}
}
u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId)
u8 GetBattlerMoveSlotId(u8 battler, u16 moveId)
{
s32 i;
struct Pokemon *party;
party = GetBattlerParty(battlerId);
party = GetBattlerParty(battler);
i = 0;
while (1)
{
if (i >= MAX_MON_MOVES)
break;
if (GetMonData(&party[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + i, NULL) == moveId)
if (GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_MOVE1 + i, NULL) == moveId)
break;
i++;
}

View File

@ -0,0 +1 @@
static const u8 MAP_GROUP_COUNT[] = {57, 5, 5, 6, 7, 8, 9, 7, 7, 14, 8, 17, 10, 23, 13, 15, 15, 2, 2, 2, 3, 1, 1, 1, 108, 61, 89, 2, 1, 13, 1, 1, 3, 1, 0};

View File

@ -7350,20 +7350,20 @@ static void BufferBattlePartyOrder(u8 *partyBattleOrder, u8 flankId)
partyBattleOrder[i] = (partyIds[0 + (i * 2)] << 4) | partyIds[1 + (i * 2)];
}
void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId)
void BufferBattlePartyCurrentOrderBySide(u8 battler, u8 flankId)
{
BufferBattlePartyOrderBySide(gBattleStruct->battlerPartyOrders[battlerId], flankId, battlerId);
BufferBattlePartyOrderBySide(gBattleStruct->battlerPartyOrders[battler], flankId, battler);
}
// when GetBattlerSide(battlerId) == B_SIDE_PLAYER, this function is identical the one above
static void BufferBattlePartyOrderBySide(u8 *partyBattleOrder, u8 flankId, u8 battlerId)
// when GetBattlerSide(battler) == B_SIDE_PLAYER, this function is identical the one above
static void BufferBattlePartyOrderBySide(u8 *partyBattleOrder, u8 flankId, u8 battler)
{
u8 partyIndexes[PARTY_SIZE];
int i, j;
u8 leftBattler;
u8 rightBattler;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
leftBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
rightBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
@ -7422,7 +7422,7 @@ static void BufferBattlePartyOrderBySide(u8 *partyBattleOrder, u8 flankId, u8 ba
partyBattleOrder[i] = (partyIndexes[0 + (i * 2)] << 4) | partyIndexes[1 + (i * 2)];
}
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2)
void SwitchPartyOrderLinkMulti(u8 battler, u8 slot, u8 slot2)
{
u8 partyIds[PARTY_SIZE];
u8 tempSlot = 0;
@ -7432,7 +7432,7 @@ void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2)
if (IsMultiBattle())
{
partyBattleOrder = gBattleStruct->battlerPartyOrders[battlerId];
partyBattleOrder = gBattleStruct->battlerPartyOrders[battler];
for (i = j = 0; i < PARTY_SIZE / 2; j++, i++)
{
partyIds[j] = partyBattleOrder[i] >> 4;

View File

@ -44,7 +44,7 @@ static void SpriteCB_TradePokeballEnd(struct Sprite *sprite);
static void SpriteCB_HealthboxSlideInDelayed(struct Sprite *sprite);
static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite);
static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite);
static u16 GetBattlerPokeballItemId(u8 battlerId);
static u16 GetBattlerPokeballItemId(u8 battler);
// rom const data
@ -563,7 +563,7 @@ u8 DoPokeballSendOutAnimation(u32 battler, s16 pan, u8 kindOfThrow)
static void Task_DoPokeballSendOutAnim(u8 taskId)
{
u32 throwCaseId, ballId, battlerId, ballSpriteId;
u32 throwCaseId, ballId, battler, ballSpriteId;
bool32 notSendOut = FALSE;
u32 throwXoffset = (B_ENEMY_THROW_BALLS >= GEN_6) ? 24 : 0;
s32 throwYoffset = (B_ENEMY_THROW_BALLS >= GEN_6) ? -16 : 24;
@ -575,8 +575,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
}
throwCaseId = gTasks[taskId].tThrowId;
battlerId = gTasks[taskId].tBattler;
ballId = GetBattlerPokeballItemId(battlerId);
battler = gTasks[taskId].tBattler;
ballId = GetBattlerPokeballItemId(battler);
LoadBallGfx(ballId);
ballSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29);
gSprites[ballSpriteId].data[0] = 0x80;
@ -586,24 +586,24 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
switch (throwCaseId)
{
case POKEBALL_PLAYER_SLIDEIN: // don't actually send out, trigger the slide-in animation
gBattlerTarget = battlerId;
gBattlerTarget = battler;
gSprites[ballSpriteId].callback = HandleBallAnimEnd;
gSprites[ballSpriteId].invisible = TRUE;
break;
case POKEBALL_PLAYER_SENDOUT:
gBattlerTarget = battlerId;
gBattlerTarget = battler;
gSprites[ballSpriteId].x = 24;
gSprites[ballSpriteId].y = 68;
gSprites[ballSpriteId].callback = SpriteCB_MonSendOut_1;
DoPokeballSendOutSoundEffect(battlerId);
DoPokeballSendOutSoundEffect(battler);
break;
case POKEBALL_OPPONENT_SENDOUT:
gSprites[ballSpriteId].x = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X) + throwXoffset;
gSprites[ballSpriteId].y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + throwYoffset;
gBattlerTarget = battlerId;
gSprites[ballSpriteId].x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X) + throwXoffset;
gSprites[ballSpriteId].y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y) + throwYoffset;
gBattlerTarget = battler;
gSprites[ballSpriteId].data[0] = 0;
gSprites[ballSpriteId].callback = GetOpponentMonSendOutCallback();
DoPokeballSendOutSoundEffect(battlerId);
DoPokeballSendOutSoundEffect(battler);
break;
default:
gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
@ -895,7 +895,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
u8 wantedCry = gTasks[taskId].tCryTaskWantedCry;
s8 pan = gTasks[taskId].tCryTaskPan;
u16 species = gTasks[taskId].tCryTaskSpecies;
u8 battlerId = gTasks[taskId].tCryTaskBattler;
u8 battler = gTasks[taskId].tCryTaskBattler;
u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId;
struct Pokemon *mon = (void *)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 16) | (u16)(gTasks[taskId].tCryTaskMonPtr2));
@ -912,7 +912,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
PlayCry_ByMode(species, pan, CRY_MODE_NORMAL);
else
PlayCry_ByMode(species, pan, CRY_MODE_WEAK);
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].waitForCry = FALSE;
DestroyTask(taskId);
break;
case 2:
@ -929,7 +929,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
else
PlayCry_ReleaseDouble(species, pan, CRY_MODE_WEAK_DOUBLES);
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].waitForCry = FALSE;
DestroyTask(taskId);
}
else
@ -969,7 +969,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
else
PlayCry_ReleaseDouble(species, pan, CRY_MODE_WEAK);
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].waitForCry = FALSE;
DestroyTask(taskId);
break;
}
@ -977,11 +977,11 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
{
u8 battlerId = sprite->sBattler;
u8 battler = sprite->sBattler;
u32 ballId;
StartSpriteAnim(sprite, 1);
ballId = GetBattlerPokeballItemId(battlerId);
ballId = GetBattlerPokeballItemId(battler);
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId);
sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId);
sprite->callback = HandleBallAnimEnd;
@ -993,13 +993,13 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
u16 wantedCryCase;
u8 taskId;
mon = GetPartyBattlerData(battlerId);
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
mon = GetPartyBattlerData(battler);
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
pan = 25;
else
pan = -25;
if ((battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
if ((battler == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battler == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
&& IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
@ -1015,16 +1015,16 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->introAnimActive)
wantedCryCase = 0;
else if (battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
else if (battler == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battler == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
wantedCryCase = 1;
else
wantedCryCase = 2;
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = TRUE;
gBattleSpritesDataPtr->healthBoxesData[battler].waitForCry = TRUE;
taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3);
illusionMon = GetIllusionMonPtr(battlerId);
illusionMon = GetIllusionMonPtr(battler);
if (illusionMon != NULL)
gTasks[taskId].tCryTaskSpecies = GetMonData(illusionMon, MON_DATA_SPECIES);
else
@ -1032,7 +1032,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
gTasks[taskId].tCryTaskPan = pan;
gTasks[taskId].tCryTaskWantedCry = wantedCryCase;
gTasks[taskId].tCryTaskBattler = battlerId;
gTasks[taskId].tCryTaskBattler = battler;
gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBattler];
gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 16;
gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon);
@ -1072,35 +1072,35 @@ static void SpriteCB_BallThrow_StartCaptureMon(struct Sprite *sprite)
static void HandleBallAnimEnd(struct Sprite *sprite)
{
bool8 affineAnimEnded = FALSE;
u8 battlerId = sprite->sBattler;
u8 battler = sprite->sBattler;
if (sprite->data[7] == POKEBALL_PLAYER_SLIDEIN)
{
gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = SpriteCB_PlayerMonSlideIn;
AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]);
gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0x1000;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCB_PlayerMonSlideIn;
AnimateSprite(&gSprites[gBattlerSpriteIds[battler]]);
gSprites[gBattlerSpriteIds[battler]].data[1] = 0x1000;
}
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
gSprites[gBattlerSpriteIds[battler]].invisible = FALSE;
if (sprite->animEnded)
sprite->invisible = TRUE;
if (gSprites[gBattlerSpriteIds[battlerId]].affineAnimEnded)
if (gSprites[gBattlerSpriteIds[battler]].affineAnimEnded)
{
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[battlerId]], BATTLER_AFFINE_NORMAL);
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[battler]], BATTLER_AFFINE_NORMAL);
affineAnimEnded = TRUE;
}
else
{
gSprites[gBattlerSpriteIds[battlerId]].data[1] -= 288;
gSprites[gBattlerSpriteIds[battlerId]].y2 = gSprites[gBattlerSpriteIds[battlerId]].data[1] >> 8;
gSprites[gBattlerSpriteIds[battler]].data[1] -= 288;
gSprites[gBattlerSpriteIds[battler]].y2 = gSprites[gBattlerSpriteIds[battler]].data[1] >> 8;
}
if (sprite->animEnded && affineAnimEnded)
{
s32 i, doneBattlers;
gSprites[gBattlerSpriteIds[battlerId]].y2 = 0;
gSprites[gBattlerSpriteIds[battler]].y2 = 0;
gDoingBattleAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battlerId].ballAnimActive = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive = FALSE;
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
@ -1119,7 +1119,7 @@ static void HandleBallAnimEnd(struct Sprite *sprite)
static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite)
{
u8 battlerId = sprite->sBattler;
u8 battler = sprite->sBattler;
sprite->data[4]++;
if (sprite->data[4] == 40)
@ -1134,11 +1134,11 @@ static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite)
}
else if (sprite->data[4] == 315)
{
FreeOamMatrix(gSprites[gBattlerSpriteIds[sprite->sBattler]].oam.matrixNum);
DestroySprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]);
FreeOamMatrix(gSprites[gBattlerSpriteIds[battler]].oam.matrixNum);
DestroySprite(&gSprites[gBattlerSpriteIds[battler]]);
DestroySpriteAndFreeResources(sprite);
if (gMain.inBattle)
gBattleSpritesDataPtr->healthBoxesData[battlerId].ballAnimActive = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive = FALSE;
}
}
@ -1482,16 +1482,16 @@ static void UNUSED DestroySpriteAndFreeResources_Ball(struct Sprite *sprite)
#define sDelayTimer data[1]
void StartHealthboxSlideIn(u8 battlerId)
void StartHealthboxSlideIn(u8 battler)
{
struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[battlerId]];
struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[battler]];
healthboxSprite->sSpeedX = 5;
healthboxSprite->sSpeedY = 0;
healthboxSprite->x2 = 0x73;
healthboxSprite->y2 = 0;
healthboxSprite->callback = SpriteCB_HealthboxSlideIn;
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
{
healthboxSprite->sSpeedX = -healthboxSprite->sSpeedX;
healthboxSprite->sSpeedY = -healthboxSprite->sSpeedY;
@ -1499,7 +1499,7 @@ void StartHealthboxSlideIn(u8 battlerId)
healthboxSprite->y2 = -healthboxSprite->y2;
}
gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]);
if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)
if (GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT)
healthboxSprite->callback = SpriteCB_HealthboxSlideInDelayed;
}
@ -1525,13 +1525,13 @@ static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite)
#undef sSpeedY
#undef sDelayTimer
void DoHitAnimHealthboxEffect(u8 battlerId)
void DoHitAnimHealthboxEffect(u8 battler)
{
u8 spriteId;
spriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HitAnimHealthoxEffect);
gSprites[spriteId].data[0] = 1;
gSprites[spriteId].data[1] = gHealthboxSpriteIds[battlerId];
gSprites[spriteId].data[1] = gHealthboxSpriteIds[battler];
gSprites[spriteId].callback = SpriteCB_HitAnimHealthoxEffect;
}
@ -1578,12 +1578,12 @@ void FreeBallGfx(u8 ballId)
FreeSpritePaletteByTag(gBallSpritePalettes[ballId].tag);
}
static u16 GetBattlerPokeballItemId(u8 battlerId)
static u16 GetBattlerPokeballItemId(u8 battler)
{
struct Pokemon *illusionMon;
struct Pokemon *mon = GetPartyBattlerData(battlerId);
struct Pokemon *mon = GetPartyBattlerData(battler);
illusionMon = GetIllusionMonPtr(battlerId);
illusionMon = GetIllusionMonPtr(battler);
if (illusionMon != NULL)
mon = illusionMon;

View File

@ -1619,7 +1619,7 @@ static void CreateEventMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedI
}
// If FALSE, should load this game's Deoxys form. If TRUE, should load normal Deoxys form
bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId)
bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battler)
{
switch (caseId)
{
@ -1631,7 +1631,7 @@ bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId)
return FALSE;
if (!gMain.inBattle)
return FALSE;
if (gLinkPlayers[GetMultiplayerId()].id == battlerId)
if (gLinkPlayers[GetMultiplayerId()].id == battler)
return FALSE;
break;
case 2:
@ -1641,7 +1641,7 @@ bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId)
return FALSE;
if (!gMain.inBattle)
return FALSE;
if (battlerId == 1 || battlerId == 4 || battlerId == 5)
if (battler == 1 || battler == 4 || battler == 5)
return TRUE;
return FALSE;
case 4:
@ -1653,12 +1653,12 @@ bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
if (gLinkPlayers[GetMultiplayerId()].id == battlerId)
if (gLinkPlayers[GetMultiplayerId()].id == battler)
return FALSE;
}
else
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
return FALSE;
}
}
@ -1666,7 +1666,7 @@ bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId)
{
if (!gMain.inBattle)
return FALSE;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
return FALSE;
}
break;
@ -3720,14 +3720,14 @@ void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst)
dst->status2 = 0;
}
void CopyPartyMonToBattleData(u32 battlerId, u32 partyIndex)
void CopyPartyMonToBattleData(u32 battler, u32 partyIndex)
{
u32 side = GetBattlerSide(battlerId);
u32 side = GetBattlerSide(battler);
struct Pokemon *party = GetSideParty(side);
PokemonToBattleMon(&party[partyIndex], &gBattleMons[battlerId]);
gBattleStruct->hpOnSwitchout[side] = gBattleMons[battlerId].hp;
UpdateSentPokesToOpponentValue(battlerId);
ClearTemporarySpeciesSpriteData(battlerId, FALSE, FALSE);
PokemonToBattleMon(&party[partyIndex], &gBattleMons[battler]);
gBattleStruct->hpOnSwitchout[side] = gBattleMons[battler].hp;
UpdateSentPokesToOpponentValue(battler);
ClearTemporarySpeciesSpriteData(battler, FALSE, FALSE);
}
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex)
@ -3783,7 +3783,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
u32 temp1, temp2;
s8 friendshipChange = 0;
u8 holdEffect;
u8 battlerId = MAX_BATTLERS_COUNT;
u8 battler = MAX_BATTLERS_COUNT;
u32 friendshipOnly = FALSE;
u16 heldItem;
u8 effectFlags;
@ -3869,15 +3869,15 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
}
// Cure status
if ((itemEffect[i] & ITEM3_SLEEP) && HealStatusConditions(mon, STATUS1_SLEEP, battlerId) == 0)
if ((itemEffect[i] & ITEM3_SLEEP) && HealStatusConditions(mon, STATUS1_SLEEP, battler) == 0)
retVal = FALSE;
if ((itemEffect[i] & ITEM3_POISON) && HealStatusConditions(mon, STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER, battlerId) == 0)
if ((itemEffect[i] & ITEM3_POISON) && HealStatusConditions(mon, STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER, battler) == 0)
retVal = FALSE;
if ((itemEffect[i] & ITEM3_BURN) && HealStatusConditions(mon, STATUS1_BURN, battlerId) == 0)
if ((itemEffect[i] & ITEM3_BURN) && HealStatusConditions(mon, STATUS1_BURN, battler) == 0)
retVal = FALSE;
if ((itemEffect[i] & ITEM3_FREEZE) && HealStatusConditions(mon, STATUS1_FREEZE | STATUS1_FROSTBITE, battlerId) == 0)
if ((itemEffect[i] & ITEM3_FREEZE) && HealStatusConditions(mon, STATUS1_FREEZE | STATUS1_FROSTBITE, battler) == 0)
retVal = FALSE;
if ((itemEffect[i] & ITEM3_PARALYSIS) && HealStatusConditions(mon, STATUS1_PARALYSIS, battlerId) == 0)
if ((itemEffect[i] & ITEM3_PARALYSIS) && HealStatusConditions(mon, STATUS1_PARALYSIS, battler) == 0)
retVal = FALSE;
break;
@ -4209,7 +4209,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
return retVal;
}
bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId)
bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battler)
{
u32 status = GetMonData(mon, MON_DATA_STATUS, 0);
@ -4217,13 +4217,13 @@ bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId)
{
status &= ~healMask;
SetMonData(mon, MON_DATA_STATUS, &status);
if (gMain.inBattle && battlerId != MAX_BATTLERS_COUNT)
if (gMain.inBattle && battler != MAX_BATTLERS_COUNT)
{
gBattleMons[battlerId].status1 &= ~healMask;
gBattleMons[battler].status1 &= ~healMask;
if((healMask & STATUS1_SLEEP))
{
u32 i = 0;
u32 battlerSide = GetBattlerSide(battlerId);
u32 battlerSide = GetBattlerSide(battler);
struct Pokemon *party = GetSideParty(battlerSide);
for (i = 0; i < PARTY_SIZE; i++)
@ -6238,22 +6238,22 @@ void BattleAnimateBackSprite(struct Sprite *sprite, u16 species)
static u8 UNUSED GetOwnOpposingLinkMultiBattlerId(bool8 rightSide)
{
s32 i;
s32 battlerId = 0;
s32 battler = 0;
u8 multiplayerId = GetMultiplayerId();
switch (gLinkPlayers[multiplayerId].id)
{
case 0:
case 2:
battlerId = rightSide ? 1 : 3;
battler = rightSide ? 1 : 3;
break;
case 1:
case 3:
battlerId = rightSide ? 2 : 0;
battler = rightSide ? 2 : 0;
break;
}
for (i = 0; i < MAX_LINK_PLAYERS; i++)
{
if (gLinkPlayers[i].id == (s16)battlerId)
if (gLinkPlayers[i].id == (s16)battler)
break;
}
return i;
@ -6262,21 +6262,21 @@ static u8 UNUSED GetOwnOpposingLinkMultiBattlerId(bool8 rightSide)
u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId)
{
s32 i;
s32 battlerId = 0;
s32 battler = 0;
switch (gLinkPlayers[multiplayerId].id)
{
case 0:
case 2:
battlerId = rightSide ? 1 : 3;
battler = rightSide ? 1 : 3;
break;
case 1:
case 3:
battlerId = rightSide ? 2 : 0;
battler = rightSide ? 2 : 0;
break;
}
for (i = 0; i < MAX_LINK_PLAYERS; i++)
{
if (gLinkPlayers[i].id == (s16)battlerId)
if (gLinkPlayers[i].id == (s16)battler)
break;
}
return i;

View File

@ -544,14 +544,14 @@ void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId)
void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
{
u8 nature, taskId, animId, battlerId;
u8 nature, taskId, animId, battler;
taskId = CreateTask(Task_HandleMonAnimation, 128);
gTasks[taskId].tPtrHi = (u32)(sprite) >> 16;
gTasks[taskId].tPtrLo = (u32)(sprite);
battlerId = sprite->data[0];
nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battlerId]]);
battler = sprite->data[0];
nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battler]]);
// * 3 below because each back anim has 3 variants depending on nature
animId = 3 * backAnimSet + gNaturesInfo[nature].backAnim;

View File

@ -26,7 +26,7 @@ struct PlayerInfo
u32 trainerId;
u8 name[PLAYER_NAME_LENGTH + 1];
u8 gender;
u16 battlerId;
u16 battler;
u16 language;
};
@ -120,7 +120,7 @@ void RecordedBattle_SetTrainerInfo(void)
{
sPlayers[i].trainerId = gLinkPlayers[i].trainerId;
sPlayers[i].gender = gLinkPlayers[i].gender;
sPlayers[i].battlerId = gLinkPlayers[i].id;
sPlayers[i].battler = gLinkPlayers[i].id;
sPlayers[i].language = gLinkPlayers[i].language;
// Record names
@ -146,7 +146,7 @@ void RecordedBattle_SetTrainerInfo(void)
| (gSaveBlock2Ptr->playerTrainerId[3] << 24);
sPlayers[0].gender = gSaveBlock2Ptr->playerGender;
sPlayers[0].battlerId = 0;
sPlayers[0].battler = 0;
sPlayers[0].language = gGameLanguage;
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
@ -154,32 +154,32 @@ void RecordedBattle_SetTrainerInfo(void)
}
}
void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action)
void RecordedBattle_SetBattlerAction(u8 battler, u8 action)
{
if (sBattlerRecordSizes[battlerId] < BATTLER_RECORD_SIZE && sRecordMode != B_RECORD_MODE_PLAYBACK)
sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]++] = action;
if (sBattlerRecordSizes[battler] < BATTLER_RECORD_SIZE && sRecordMode != B_RECORD_MODE_PLAYBACK)
sBattleRecords[battler][sBattlerRecordSizes[battler]++] = action;
}
void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear)
void RecordedBattle_ClearBattlerAction(u8 battler, u8 bytesToClear)
{
s32 i;
for (i = 0; i < bytesToClear; i++)
{
sBattlerRecordSizes[battlerId]--;
sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]] = 0xFF;
if (sBattlerRecordSizes[battlerId] == 0)
sBattlerRecordSizes[battler]--;
sBattleRecords[battler][sBattlerRecordSizes[battler]] = 0xFF;
if (sBattlerRecordSizes[battler] == 0)
break;
}
}
u8 RecordedBattle_GetBattlerAction(u32 actionType, u8 battlerId)
u8 RecordedBattle_GetBattlerAction(u32 actionType, u8 battler)
{
if (gTestRunnerEnabled)
TestRunner_Battle_CheckBattleRecordActionType(battlerId, sBattlerRecordSizes[battlerId], actionType);
TestRunner_Battle_CheckBattleRecordActionType(battler, sBattlerRecordSizes[battler], actionType);
// Trying to read past array or invalid action byte, battle is over.
if (sBattlerRecordSizes[battlerId] >= BATTLER_RECORD_SIZE || sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]] == 0xFF)
if (sBattlerRecordSizes[battler] >= BATTLER_RECORD_SIZE || sBattleRecords[battler][sBattlerRecordSizes[battler]] == 0xFF)
{
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah
ResetPaletteFadeControl();
@ -189,7 +189,7 @@ u8 RecordedBattle_GetBattlerAction(u32 actionType, u8 battlerId)
}
else
{
return sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]++];
return sBattleRecords[battler][sBattlerRecordSizes[battler]++];
}
}
@ -239,11 +239,11 @@ void RecordedBattle_RecordAllBattlerData(u8 *src)
{
for (size = *src; size != 0;)
{
u8 battlerId = GetNextRecordedDataByte(src, &idx, &size);
u8 battler = GetNextRecordedDataByte(src, &idx, &size);
u8 numActions = GetNextRecordedDataByte(src, &idx, &size);
for (i = 0; i < numActions; i++)
sBattleRecords[battlerId][sBattlerSavedRecordSizes[battlerId]++] = GetNextRecordedDataByte(src, &idx, &size);
sBattleRecords[battler][sBattlerSavedRecordSizes[battler]++] = GetNextRecordedDataByte(src, &idx, &size);
}
}
}
@ -310,7 +310,7 @@ bool32 MoveRecordedBattleToSaveData(void)
battleSave->playersName[i][j] = sPlayers[i].name[j];
battleSave->playersGender[i] = sPlayers[i].gender;
battleSave->playersLanguage[i] = sPlayers[i].language;
battleSave->playersBattlers[i] = sPlayers[i].battlerId;
battleSave->playersBattlers[i] = sPlayers[i].battler;
battleSave->playersTrainerId[i] = sPlayers[i].trainerId;
}
@ -329,16 +329,16 @@ bool32 MoveRecordedBattleToSaveData(void)
}
else if (sBattleFlags & BATTLE_TYPE_MULTI)
{
switch (sPlayers[0].battlerId)
switch (sPlayers[0].battler)
{
case 0:
case 2:
if (!(sPlayers[gRecordedBattleMultiplayerId].battlerId & 1))
if (!(sPlayers[gRecordedBattleMultiplayerId].battler & 1))
battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER;
break;
case 1:
case 3:
if ((sPlayers[gRecordedBattleMultiplayerId].battlerId & 1))
if ((sPlayers[gRecordedBattleMultiplayerId].battler & 1))
battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER;
break;
}
@ -683,35 +683,35 @@ void RecordedBattle_CopyBattlerMoves(u32 battler)
void RecordedBattle_CheckMovesetChanges(u8 mode)
{
s32 battlerId, j, k;
s32 battler, j, k;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
return;
for (battlerId = 0; battlerId < gBattlersCount; battlerId++)
for (battler = 0; battler < gBattlersCount; battler++)
{
// Player's side only
if (GetBattlerSide(battlerId) != B_SIDE_OPPONENT)
if (GetBattlerSide(battler) != B_SIDE_OPPONENT)
{
if (mode == B_RECORD_MODE_RECORDING)
{
// Check if any of the battler's moves have changed.
for (j = 0; j < MAX_MON_MOVES; j++)
{
if (gBattleMons[battlerId].moves[j] != sPlayerMonMoves[battlerId / 2][j])
if (gBattleMons[battler].moves[j] != sPlayerMonMoves[battler / 2][j])
break;
}
if (j != MAX_MON_MOVES)
{
// At least one of the moves has been changed
RecordedBattle_SetBattlerAction(battlerId, ACTION_MOVE_CHANGE);
RecordedBattle_SetBattlerAction(battler, ACTION_MOVE_CHANGE);
for (j = 0; j < MAX_MON_MOVES; j++)
{
for (k = 0; k < MAX_MON_MOVES; k++)
{
if (gBattleMons[battlerId].moves[j] == sPlayerMonMoves[battlerId / 2][k])
if (gBattleMons[battler].moves[j] == sPlayerMonMoves[battler / 2][k])
{
RecordedBattle_SetBattlerAction(battlerId, k);
RecordedBattle_SetBattlerAction(battler, k);
break;
}
}
@ -720,7 +720,7 @@ void RecordedBattle_CheckMovesetChanges(u8 mode)
}
else // B_RECORD_MODE_PLAYBACK
{
if (sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]] == ACTION_MOVE_CHANGE)
if (sBattleRecords[battler][sBattlerRecordSizes[battler]] == ACTION_MOVE_CHANGE)
{
u8 ppBonuses[MAX_MON_MOVES];
u8 moveSlots[MAX_MON_MOVES];
@ -730,55 +730,55 @@ void RecordedBattle_CheckMovesetChanges(u8 mode)
// We know the current action is ACTION_MOVE_CHANGE, retrieve
// it without saving it to move on to the next action.
RecordedBattle_GetBattlerAction(RECORDED_BYTE, battlerId);
RecordedBattle_GetBattlerAction(RECORDED_BYTE, battler);
for (j = 0; j < MAX_MON_MOVES; j++)
ppBonuses[j] = ((gBattleMons[battlerId].ppBonuses & (3 << (j << 1))) >> (j << 1));
ppBonuses[j] = ((gBattleMons[battler].ppBonuses & (3 << (j << 1))) >> (j << 1));
for (j = 0; j < MAX_MON_MOVES; j++)
{
moveSlots[j] = RecordedBattle_GetBattlerAction(RECORDED_BYTE, battlerId);
movePp.moves[j] = gBattleMons[battlerId].moves[moveSlots[j]];
movePp.currentPp[j] = gBattleMons[battlerId].pp[moveSlots[j]];
moveSlots[j] = RecordedBattle_GetBattlerAction(RECORDED_BYTE, battler);
movePp.moves[j] = gBattleMons[battler].moves[moveSlots[j]];
movePp.currentPp[j] = gBattleMons[battler].pp[moveSlots[j]];
movePp.maxPp[j] = ppBonuses[moveSlots[j]];
mimickedMoveSlots[j] = (gDisableStructs[battlerId].mimickedMoves & (1u << j)) >> j;
mimickedMoveSlots[j] = (gDisableStructs[battler].mimickedMoves & (1u << j)) >> j;
}
for (j = 0; j < MAX_MON_MOVES; j++)
{
gBattleMons[battlerId].moves[j] = movePp.moves[j];
gBattleMons[battlerId].pp[j] = movePp.currentPp[j];
gBattleMons[battler].moves[j] = movePp.moves[j];
gBattleMons[battler].pp[j] = movePp.currentPp[j];
}
gBattleMons[battlerId].ppBonuses = 0;
gDisableStructs[battlerId].mimickedMoves = 0;
gBattleMons[battler].ppBonuses = 0;
gDisableStructs[battler].mimickedMoves = 0;
for (j = 0; j < MAX_MON_MOVES; j++)
{
gBattleMons[battlerId].ppBonuses |= movePp.maxPp[j] << (j << 1);
gDisableStructs[battlerId].mimickedMoves |= mimickedMoveSlots[j] << j;
gBattleMons[battler].ppBonuses |= movePp.maxPp[j] << (j << 1);
gDisableStructs[battler].mimickedMoves |= mimickedMoveSlots[j] << j;
}
if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED))
if (!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED))
{
for (j = 0; j < MAX_MON_MOVES; j++)
ppBonuses[j] = (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
ppBonuses[j] = (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
for (j = 0; j < MAX_MON_MOVES; j++)
{
movePp.moves[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + moveSlots[j], NULL);
movePp.currentPp[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP1 + moveSlots[j], NULL);
movePp.moves[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_MOVE1 + moveSlots[j], NULL);
movePp.currentPp[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP1 + moveSlots[j], NULL);
movePp.maxPp[j] = ppBonuses[moveSlots[j]];
}
for (j = 0; j < MAX_MON_MOVES; j++)
{
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + j, &movePp.moves[j]);
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP1 + j, &movePp.currentPp[j]);
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_MOVE1 + j, &movePp.moves[j]);
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP1 + j, &movePp.currentPp[j]);
}
ppBonusSet = 0;
for (j = 0; j < MAX_MON_MOVES; j++)
ppBonusSet |= movePp.maxPp[j] << (j << 1);
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP_BONUSES, &ppBonusSet);
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP_BONUSES, &ppBonusSet);
}
gChosenMoveByBattler[battlerId] = gBattleMons[battlerId].moves[gBattleStruct->chosenMovePositions[battlerId]];
gChosenMoveByBattler[battler] = gBattleMons[battler].moves[gBattleStruct->chosenMovePositions[battler]];
}
}
}

Binary file not shown.

BIN
tools/patchelf/patchelf Executable file

Binary file not shown.

BIN
tools/trainerproc/trainerproc Executable file

Binary file not shown.