Name symbols in battle_anim_special.c

This commit is contained in:
PikalaxALT
2021-03-14 16:29:33 -04:00
parent 75b9fbc92f
commit 99ec579deb
39 changed files with 472 additions and 456 deletions
+3 -3
View File
@@ -1,3 +1,3 @@
sUnknown_3005424
sUnknown_3005428
sUnknown_300542C
gMonShrinkDuration
gMonShrinkDelta
gMonShrinkDistance
+11 -11
View File
@@ -10557,7 +10557,7 @@ General_SubstituteAppear:: @ 81D5C04
end
General_BaitThrow:: @ 81D5C0C
createvisualtask sub_80F1C8C, 2, 0
createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0
createvisualtask AnimTask_LoadBaitGfx, 2,
delay 0
waitplaysewithpan SE_M_JUMP_KICK, 192, 22
@@ -10898,7 +10898,7 @@ General_WishHeal:: @ 81D6250
end
General_MonScared:: @ 81D628A
createvisualtask sub_80F1C8C, 2, 1
createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1
waitforvisualfinish
loadspritegfx ANIM_TAG_SWEAT_BEAD
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 10, 26336
@@ -10915,7 +10915,7 @@ General_MonScared:: @ 81D628A
end
General_GhostGetOut:: @ 81D6301
createvisualtask sub_80F1C8C, 2, 1
createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1
waitforvisualfinish
fadetobg 2
waitbgfadeout
@@ -10950,7 +10950,7 @@ General_SilphScoped:: @ 81D637B
end
General_SafariRockThrow:: @ 81D6394
createvisualtask sub_80F1C8C, 2, 0
createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0
waitforvisualfinish
loadspritegfx ANIM_TAG_ROCKS
loadspritegfx ANIM_TAG_IMPACT
@@ -10970,14 +10970,14 @@ General_SafariRockThrow:: @ 81D6394
end
General_SafariReaction:: @ 81D63DC
createvisualtask sub_80F1CE4, 2,
createvisualtask AnimTask_SafariGetReaction, 2,
waitforvisualfinish
jumpargeq 7, 0, gUnknown_81D63FD
jumpargeq 7, 1, gUnknown_81D6425
jumpargeq 7, 2, gUnknown_81D644E
jumpargeq 7, 0, SafariReaction_WatchingCarefully
jumpargeq 7, 1, SafariReaction_Angry
jumpargeq 7, 2, SafariReaction_Eating
end
gUnknown_81D63FD:: @ 81D63FD
SafariReaction_WatchingCarefully:: @ 81D63FD
playsewithpan SE_M_TAKE_DOWN, 63
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2
waitforvisualfinish
@@ -10985,7 +10985,7 @@ gUnknown_81D63FD:: @ 81D63FD
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2
end
gUnknown_81D6425:: @ 81D6425
SafariReaction_Angry:: @ 81D6425
loadspritegfx ANIM_TAG_ANGER
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -20
playsewithpan SE_M_SWAGGER2, 63
@@ -10995,7 +10995,7 @@ gUnknown_81D6425:: @ 81D6425
playsewithpan SE_M_SWAGGER2, 63
end
gUnknown_81D644E:: @ 81D644E
SafariReaction_Eating:: @ 81D644E
playsewithpan SE_M_TAKE_DOWN, 63
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2
waitforvisualfinish
+16 -7
View File
@@ -36,6 +36,15 @@ struct BattleAnimBackground
#define ANIM_ARGS_COUNT 8
// Linear Translation
#define sTransl_Speed data[0]
#define sTransl_Duration data[0] // for Fast
#define sTransl_InitX data[1]
#define sTransl_DestX data[2]
#define sTransl_InitY data[3]
#define sTransl_DestY data[4]
#define sTransl_ArcAmpl data[5]
extern void (*gAnimScriptCallback)(void);
extern bool8 gAnimScriptActive;
extern u8 gAnimVisualTaskCount;
@@ -129,7 +138,7 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64;
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
void MoveBattlerSpriteToBG(u8 battlerId, u8);
void sub_8073128(u8);
void ResetBattleAnimBg(u8);
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
@@ -306,12 +315,12 @@ void AnimKnockOffStrike(struct Sprite *);
void AnimRecycle(struct Sprite *);
// battle_anim_special.c
void sub_80F1720(u8 battler, struct Pokemon *mon);
void TryShinyAnimation(u8 battler, struct Pokemon *mon);
u8 ItemIdToBallId(u16 itemId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
void sub_80EEFC8(u8 *, u8 *, u8 battlerId);
void sub_80EF0E0(u8 batterId);
void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId);
void DoFreeHealthboxPalsForLevelUp(u8 batterId);
enum
{
@@ -382,7 +391,7 @@ u8 GetBattlerPosition(u8 battlerId);
u8 GetBattlerAtPosition(u8 position);
bool8 IsBattlerSpritePresent(u8 battlerId);
bool8 IsDoubleBattle(void);
void sub_80752A0(struct BattleAnimBgData *animBgData);
void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData);
void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1);
void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused);
void sub_8075358(u32 bgId);
@@ -397,7 +406,7 @@ void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite);
void sub_80755B8(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite);
void sub_807563C(struct Sprite *sprite);
void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite);
void sub_8075678(struct Sprite *sprite);
void sub_80756A4(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
+2 -2
View File
@@ -80,8 +80,8 @@ void sub_8012100(struct Sprite *sprite);
void sub_8012110(struct Sprite *sprite);
void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
void EndBounceEffect(u8 battler, u8 which);
void sub_8012354(struct Sprite *sprite);
void sub_801236C(struct Sprite *sprite);
void SpriteCB_PlayerThrowInit(struct Sprite *sprite);
void UpdatePlayerPosInThrowAnim(struct Sprite *sprite);
void nullsub_12(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);
+10
View File
@@ -16,8 +16,10 @@
#if MODERN
#define NOINLINE __attribute__((noinline))
#define HERE __attribute__((no_reorder))
#else
#define NOINLINE
#define HERE
#endif
#define ALIGNED(n) __attribute__((aligned(n)))
@@ -92,7 +94,15 @@
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
// Some functions are strictly inline asm
#define NAKED __attribute__((naked))
// Silence IDE warnings
#if __GNUC__ >= 4
#define USED __attribute__((used))
#else
#define USED
#endif
#define UNUSED __attribute__((unused))
#endif // GUARD_GBA_DEFINES
+3 -5
View File
@@ -31,9 +31,7 @@
#define __(x) (x)
#endif // __APPLE__
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
// GF's lingo
#define NELEMS ARRAY_COUNT
#define NELEMS(array) (sizeof(array) / sizeof((array)[0]))
#define SWAP(a, b, temp) \
{ \
@@ -293,7 +291,7 @@ struct SaveBlock2
/*0xB10*/ struct BerryPickingResults berryPick;
/*0xB20*/ u8 filler_B20[0x400];
/*0xF20*/ u32 encryptionKey;
};
}; // size: 0xF24
extern struct SaveBlock2 *gSaveBlock2Ptr;
@@ -826,7 +824,7 @@ struct SaveBlock1
/*0x3D24*/ u8 filler3D24[0x10];
/*0x3D34*/ u32 towerChallengeId;
/*0x3D38*/ struct TrainerTower trainerTower[NUM_TOWER_CHALLENGE_TYPES];
};
}; // size: 0x3D68
struct MapPosition
{
+1
View File
@@ -6,6 +6,7 @@
extern bool32 gFlashMemoryPresent;
extern struct SaveBlock1 gSaveBlock1;
extern struct SaveBlock2 gSaveBlock2;
extern struct PokemonStorage gPokemonStorage;
void ClearSav2(void);
void ClearSav1(void);
+10 -10
View File
@@ -2259,7 +2259,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2326,10 +2326,10 @@ void sub_80730C0(u16 a, u16 *b, s32 c, u8 d)
}
}
void sub_8073128(bool8 to_BG2)
void ResetBattleAnimBg(bool8 to_BG2)
{
struct BattleAnimBgData animBg;
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
if (!to_BG2)
{
@@ -2353,7 +2353,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
spriteId = gTasks[taskId].data[0];
palIndex = gTasks[taskId].data[6];
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x);
y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y);
@@ -2429,13 +2429,13 @@ static void sub_807331C(u8 taskId)
if (sMonAnimTaskIdArray[0] != 0xFF)
{
sub_8073128(toBG_2);
ResetBattleAnimBg(toBG_2);
DestroyTask(sMonAnimTaskIdArray[0]);
sMonAnimTaskIdArray[0] = 0xFF;
}
if (gTasks[taskId].data[0] > 1)
{
sub_8073128(toBG_2 ^ 1);
ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(sMonAnimTaskIdArray[1]);
sMonAnimTaskIdArray[1] = 0xFF;
}
@@ -2541,10 +2541,10 @@ static void sub_8073558(u8 taskId)
toBG_2 = TRUE;
if (IsBattlerSpriteVisible(battlerId))
sub_8073128(toBG_2);
ResetBattleAnimBg(toBG_2);
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
sub_8073128(toBG_2 ^ 1);
ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(taskId);
}
@@ -3303,9 +3303,9 @@ static void ScriptCmd_doublebattle_2D(void)
gSprites[spriteId].oam.priority = 3;
if (priority == 1)
sub_8073128(FALSE);
ResetBattleAnimBg(FALSE);
else
sub_8073128(TRUE);
ResetBattleAnimBg(TRUE);
}
}
}
+4 -4
View File
@@ -3232,7 +3232,7 @@ void AnimTask_HeartsBackground(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimBg_AttractPal, animBg.paletteId * 16, 32);
@@ -3282,7 +3282,7 @@ static void HeartsBackground_Step(u8 taskId)
}
break;
case 3:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
gTasks[taskId].data[12]++;
break;
@@ -3313,7 +3313,7 @@ void AnimTask_ScaryFace(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
if (IsContest())
LZDecompressVram(gBattleAnimBgTilemap_ScaryFaceContest, animBg.bgTilemap);
@@ -3370,7 +3370,7 @@ static void ScaryFace_Step(u8 taskId)
}
break;
case 3:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(1);
sub_8075358(2);
gTasks[taskId].data[12]++;
+4 -4
View File
@@ -2287,7 +2287,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32);
@@ -2348,7 +2348,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
}
break;
case 4:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
@@ -2467,7 +2467,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32);
@@ -2540,7 +2540,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
gTasks[taskId].data[0] = 1;
break;
case 5:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
+29 -29
View File
@@ -695,10 +695,10 @@ void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset)
void InitAnimArcTranslation(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
sprite->data[6] = 0x8000 / sprite->data[0];
sprite->data[6] = 0x8000 / sprite->sTransl_Speed;
sprite->data[7] = 0;
}
@@ -707,7 +707,7 @@ bool8 TranslateAnimHorizontalArc(struct Sprite *sprite)
if (AnimTranslateLinear(sprite))
return TRUE;
sprite->data[7] += sprite->data[6];
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->sTransl_ArcAmpl);
return FALSE;
}
@@ -716,7 +716,7 @@ bool8 TranslateAnimVerticalArc(struct Sprite *sprite)
if (AnimTranslateLinear(sprite))
return TRUE;
sprite->data[7] += sprite->data[6];
sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->sTransl_ArcAmpl);
return FALSE;
}
@@ -801,7 +801,7 @@ bool8 IsDoubleBattle(void)
return IS_DOUBLE_BATTLE();
}
void sub_80752A0(struct BattleAnimBgData *animBgData)
void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData)
{
animBgData->bgTiles = gUnknown_2022BB8;
animBgData->bgTilemap = (u16 *)gUnknown_2022BBC;
@@ -815,7 +815,7 @@ void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1)
{
if (arg1 == 1)
{
sub_80752A0(animBgData);
GetBattleAnimBg1Data(animBgData);
}
else
{
@@ -919,15 +919,15 @@ void InitSpriteDataForLinearTranslation(struct Sprite *sprite)
void InitAnimLinearTranslation(struct Sprite *sprite)
{
s32 x = sprite->data[2] - sprite->data[1];
s32 y = sprite->data[4] - sprite->data[3];
s32 x = sprite->sTransl_DestX - sprite->sTransl_InitX;
s32 y = sprite->sTransl_DestY - sprite->sTransl_InitY;
bool8 movingLeft = x < 0;
bool8 movingUp = y < 0;
u16 xDelta = abs(x) << 8;
u16 yDelta = abs(y) << 8;
xDelta = xDelta / sprite->data[0];
yDelta = yDelta / sprite->data[0];
xDelta = xDelta / sprite->sTransl_Speed;
yDelta = yDelta / sprite->sTransl_Speed;
if (movingLeft)
xDelta |= 1;
@@ -947,17 +947,17 @@ void InitAnimLinearTranslation(struct Sprite *sprite)
void StartAnimLinearTranslation(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
sprite->callback = sub_807563C;
sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
sprite->callback(sprite);
}
void sub_80755B8(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
sprite->callback = sub_8075658;
sprite->callback(sprite);
@@ -990,7 +990,7 @@ bool8 AnimTranslateLinear(struct Sprite *sprite)
return FALSE;
}
void sub_807563C(struct Sprite *sprite)
void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite)
{
if (AnimTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite);
@@ -998,39 +998,39 @@ void sub_807563C(struct Sprite *sprite)
static void sub_8075658(struct Sprite *sprite)
{
sub_801236C(sprite);
UpdatePlayerPosInThrowAnim(sprite);
if (AnimTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite);
}
void sub_8075678(struct Sprite *sprite)
{
s32 v1 = abs(sprite->data[2] - sprite->data[1]) << 8;
s32 v1 = abs(sprite->sTransl_DestX - sprite->sTransl_InitX) << 8;
sprite->data[0] = v1 / sprite->data[0];
sprite->sTransl_Speed = v1 / sprite->sTransl_Duration;
InitAnimLinearTranslation(sprite);
}
void sub_80756A4(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y;
sub_8075678(sprite);
sprite->callback = sub_807563C;
sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
sprite->callback(sprite);
}
static void InitAnimFastLinearTranslation(struct Sprite *sprite)
{
s32 xDiff = sprite->data[2] - sprite->data[1];
s32 yDiff = sprite->data[4] - sprite->data[3];
s32 xDiff = sprite->sTransl_DestX - sprite->sTransl_InitX;
s32 yDiff = sprite->sTransl_DestY - sprite->sTransl_InitY;
bool8 xSign = xDiff < 0;
bool8 ySign = yDiff < 0;
u16 x2 = abs(xDiff) << 4;
u16 y2 = abs(yDiff) << 4;
x2 /= sprite->data[0];
y2 /= sprite->data[0];
x2 /= sprite->sTransl_Duration;
y2 /= sprite->sTransl_Duration;
if (xSign)
x2 |= 1;
else
@@ -1047,8 +1047,8 @@ static void InitAnimFastLinearTranslation(struct Sprite *sprite)
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y;
InitAnimFastLinearTranslation(sprite);
sprite->callback = sub_80757E8;
sprite->callback(sprite);
+275 -275
View File
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -331,7 +331,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
sub_80752A0(&animBgData);
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
@@ -358,7 +358,7 @@ static void sub_80BAF38(u8 taskId)
gBattle_BG1_Y += 64;
if (++gTasks[taskId].data[11] == 4)
{
sub_8073128(0);
ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
@@ -377,7 +377,7 @@ static void sub_80BAF38(u8 taskId)
sprite = &gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)]; // unused
sprite = &gSprites[gTasks[taskId].data[0]];
DestroySprite(sprite);
sub_80752A0(&animBgData);
GetBattleAnimBg1Data(&animBgData);
sub_8075358(animBgData.bgId);
if (gTasks[taskId].data[6] == 1)
++gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority;
@@ -452,7 +452,7 @@ static void sub_80BB2A0(u8 taskId)
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
newSpriteId = sub_8076E34(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
}
sub_80752A0(&animBgData);
GetBattleAnimBg1Data(&animBgData);
if (sAnimStatsChangeData->data[0] == 0)
AnimLoadCompressedBgTilemap(animBgData.bgId, gBattleStatMask1_Tilemap);
else
@@ -548,7 +548,7 @@ static void sub_80BB4B8(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
sub_8073128(0);
ResetBattleAnimBg(0);
++gTasks[taskId].data[15];
}
}
@@ -755,7 +755,7 @@ void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
spriteId = sub_8076E34(battler1, gBattlerSpriteIds[battler1], species);
if (arg4)
newSpriteId = sub_8076E34(battler2, gBattlerSpriteIds[battler2], species);
sub_80752A0(&animBgData);
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
@@ -805,7 +805,7 @@ static void sub_80BBC2C(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
sub_8073128(0);
ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
+4 -4
View File
@@ -244,9 +244,9 @@ static void sub_803A9CC(void)
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80)
sub_80F1720(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == 3)
{
if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 1)
@@ -282,7 +282,7 @@ static void sub_803AC14(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -392,7 +392,7 @@ static void sub_803AFFC(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
+1 -1
View File
@@ -349,7 +349,7 @@ static void sub_80D4944(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
+5 -5
View File
@@ -401,10 +401,10 @@ static void sub_80E7B4C(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
@@ -628,7 +628,7 @@ static void sub_80E835C(void)
case 0:
if (!gPaletteFade.active)
{
sub_80EEFC8(&gBattleStruct->field_95, &gBattleStruct->field_97, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
DoLoadHealthboxPalsForLevelUp(&gBattleStruct->field_95, &gBattleStruct->field_97, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
BeginNormalPaletteFade(0xFFFFFF7E,
4,
0,
@@ -703,7 +703,7 @@ static void sub_80E835C(void)
case 8:
if (!gPaletteFade.active)
{
sub_80EF0E0(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
DoFreeHealthboxPalsForLevelUp(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
sub_80EB524();
gBattleStruct->field_94 = 0;
OakOldManBufferExecCompleted();
@@ -806,7 +806,7 @@ static void sub_80E8704(void)
case 0:
if (!gPaletteFade.active)
{
sub_80EEFC8(&gBattleStruct->field_95, &gBattleStruct->field_97, gActiveBattler);
DoLoadHealthboxPalsForLevelUp(&gBattleStruct->field_95, &gBattleStruct->field_97, gActiveBattler);
BeginNormalPaletteFade(0xFFFFFF7E,
4,
0,
+4 -4
View File
@@ -242,9 +242,9 @@ static void sub_8035C30(void)
static void sub_8035DF0(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
sub_80F1720(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
@@ -276,7 +276,7 @@ static void sub_8035FE8(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -397,7 +397,7 @@ static void sub_8036334(void)
static void sub_8036408(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
+4 -4
View File
@@ -912,9 +912,9 @@ static void sub_802FA58(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80)
sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler ^ BIT_FLANK]]);
@@ -965,7 +965,7 @@ static void sub_802FD18(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !(gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive))
{
@@ -1235,7 +1235,7 @@ static void sub_80303A8(u8 taskId)
}
break;
case 5:
sub_8073128(v6);
ResetBattleAnimBg(v6);
++data[15];
break;
case 4:
+6 -6
View File
@@ -598,7 +598,7 @@ static void sub_8156184(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -656,7 +656,7 @@ static void sub_81563A8(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !(gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive))
{
@@ -750,10 +750,10 @@ static void sub_8156624(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
@@ -2518,7 +2518,7 @@ static void sub_8159D04(void)
case 0:
if (!gPaletteFade.active)
{
sub_80EEFC8(&gBattleStruct->field_95,
DoLoadHealthboxPalsForLevelUp(&gBattleStruct->field_95,
&gBattleStruct->field_94,
GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
BeginNormalPaletteFade(0xFFFFFF7F, 4, 0, 8, RGB_BLACK);
@@ -2576,7 +2576,7 @@ static void sub_8159D04(void)
BattleStopLowHpSound();
PlayBGM(MUS_VICTORY_WILD);
}
sub_80EF0E0(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
DoFreeHealthboxPalsForLevelUp(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
sub_80EB524();
sub_8159B78();
}
+8 -8
View File
@@ -83,7 +83,7 @@ static void sub_8012060(struct Sprite *sprite);
static void oac_poke_ally_(struct Sprite *sprite);
static void SpriteCallbackDummy3(struct Sprite *sprite);
static void SpriteCB_BounceEffect(struct Sprite *sprite);
static void sub_8012398(struct Sprite *sprite);
static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite);
static void BattleStartClearSetData(void);
static void BattleIntroGetMonsData(void);
static void TurnValuesCleanUp(bool8 var0);
@@ -301,7 +301,7 @@ static const union AffineAnimCmd *const gUnknown_824F044[] =
gUnknown_824F02C,
};
static const s8 gUnknown_824F048[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
static const s8 sPlayerThrowXTranslation[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
// format: attacking type, defending type, damage multiplier
// the multiplier is a (decimal) fixed-point number:
@@ -2153,21 +2153,21 @@ static void SpriteCB_BounceEffect(struct Sprite *sprite)
sprite->sSinIndex = (sprite->sSinIndex + sprite->sDelta) & 0xFF;
}
void sub_8012354(struct Sprite *sprite)
void SpriteCB_PlayerThrowInit(struct Sprite *sprite)
{
StartSpriteAnim(sprite, 1);
sprite->callback = sub_8012398;
sprite->callback = SpriteCB_PlayerThrowUpdate;
}
void sub_801236C(struct Sprite *sprite)
void UpdatePlayerPosInThrowAnim(struct Sprite *sprite)
{
if (sprite->animDelayCounter == 0)
sprite->centerToCornerVecX = gUnknown_824F048[sprite->animCmdIndex];
sprite->centerToCornerVecX = sPlayerThrowXTranslation[sprite->animCmdIndex];
}
static void sub_8012398(struct Sprite *sprite)
static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite)
{
sub_801236C(sprite);
UpdatePlayerPosInThrowAnim(sprite);
if (sprite->animEnded)
sprite->callback = SpriteCallbackDummy3;
}
+6 -6
View File
@@ -409,7 +409,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
if (task->data[3] == 1)
{
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
FillPalette(0, animBg.paletteId * 16, 32);
@@ -540,7 +540,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
case 1:
if (task->data[3] == 1)
{
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
FillPalette(0, animBg.paletteId * 16, 32);
}
@@ -742,9 +742,9 @@ void sub_80B8664(u8 taskId)
{
bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE;
sub_8073128(toBG2);
ResetBattleAnimBg(toBG2);
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
sub_8073128(toBG2 ^ 1);
ResetBattleAnimBg(toBG2 ^ 1);
DestroyAnimVisualTask(taskId);
}
@@ -800,7 +800,7 @@ void AnimTask_MetallicShine(u8 taskId)
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32);
@@ -839,7 +839,7 @@ static void sub_80B8920(u8 taskId)
if (gTasks[taskId].data[1] == 0)
SetGreyscaleOrOriginalPalette(paletteNum, 1);
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
if (gTasks[taskId].data[6] == 1)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
+6 -6
View File
@@ -790,7 +790,7 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
u8 i;
u8 selectedIvs[INHERITED_IV_COUNT];
u8 availableIVs[NUM_STATS];
u8 whichParent[ARRAY_COUNT(selectedIvs)];
u8 whichParent[NELEMS(selectedIvs)];
u8 iv;
// Initialize a list of IV indices.
@@ -800,7 +800,7 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
}
// Select the 3 IVs that will be inherited.
for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
for (i = 0; i < NELEMS(selectedIvs); i++)
{
// Randomly pick an IV from the available list and stop from being chosen again.
selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
@@ -808,13 +808,13 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
}
// Determine which parent each of the selected IVs should inherit from.
for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
for (i = 0; i < NELEMS(selectedIvs); i++)
{
whichParent[i] = Random() % DAYCARE_MON_COUNT;
}
// Set each of inherited IVs on the egg mon.
for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
for (i = 0; i < NELEMS(selectedIvs); i++)
{
switch (selectedIvs[i])
{
@@ -858,7 +858,7 @@ static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
numEggMoves = 0;
eggMoveIdx = 0;
species = GetMonData(pokemon, MON_DATA_SPECIES);
for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; i++)
for (i = 0; i < NELEMS(gEggMoves) - 1; i++)
{
if (gEggMoves[i] == species + EGG_MOVES_SPECIES_OFFSET)
{
@@ -1787,7 +1787,7 @@ static void CB2_EggHatch_0(void)
ResetTempTileDataBuffers();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch));
InitBgsFromTemplates(0, sBgTemplates_EggHatch, NELEMS(sBgTemplates_EggHatch));
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
+1 -1
View File
@@ -1567,7 +1567,7 @@ static void sub_8155EA0(void)
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(FALSE);
InitBgsFromTemplates(0, sUnknown_847565C, ARRAY_COUNT(sUnknown_847565C));
InitBgsFromTemplates(0, sUnknown_847565C, NELEMS(sUnknown_847565C));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
+1 -1
View File
@@ -704,7 +704,7 @@ static bool8 UnlockedECMonOrMove(u16 wordIndex, u8 groupId)
static bool32 EC_IsDeoxys(u16 species)
{
u32 i;
for (i = 0; i < ARRAY_COUNT(sDeoxysValue); i++)
for (i = 0; i < NELEMS(sDeoxysValue); i++)
{
if (sDeoxysValue[i] == species)
return TRUE;
+1 -1
View File
@@ -450,7 +450,7 @@ static void MainCB2_LoadFameChecker(void)
sBg1TilemapBuffer = AllocZeroed(0x1000);
sBg2TilemapBuffer = AllocZeroed(0x800);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sUIBgTemplates, ARRAY_COUNT(sUIBgTemplates));
InitBgsFromTemplates(0, sUIBgTemplates, NELEMS(sUIBgTemplates));
SetBgTilemapBuffer(3, sBg3TilemapBuffer);
SetBgTilemapBuffer(2, sBg2TilemapBuffer);
SetBgTilemapBuffer(1, sBg1TilemapBuffer);
+2 -2
View File
@@ -788,7 +788,7 @@ static void sub_80B111C(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3);
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_807563C;
sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
}
}
@@ -874,7 +874,7 @@ static void AnimSuperpowerFireball(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(battler, 3);
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_807563C;
sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
}
static void sub_80B13D4(struct Sprite *sprite)
+1 -1
View File
@@ -1160,7 +1160,7 @@ void AnimTask_BlendBackground(u8 taskId)
{
struct BattleAnimBgData animBg;
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
DestroyAnimVisualTask(taskId);
}
+4 -4
View File
@@ -941,7 +941,7 @@ void AnimTask_Haze1(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimFogTilemap);
LoadPalette(&gUnknown_83C2CE0, animBg.paletteId * 16, 32);
@@ -992,7 +992,7 @@ static void AnimTask_Haze2(u8 taskId)
}
break;
case 3:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(1);
sub_8075358(2);
++gTasks[taskId].data[12];
@@ -1039,7 +1039,7 @@ void AnimTask_LoadMistTiles(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimFogTilemap);
LoadPalette(&gUnknown_83C2CE0, animBg.paletteId * 16, 32);
@@ -1087,7 +1087,7 @@ static void AnimTask_OverlayFogTiles(u8 taskId)
}
break;
case 3:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(1);
sub_8075358(2);
++gTasks[taskId].data[12];
+7 -7
View File
@@ -23,14 +23,14 @@ struct LoadedSaveData
};
// EWRAM DATA
EWRAM_DATA struct SaveBlock2 gSaveBlock2 = {0};
EWRAM_DATA u8 gSaveBlock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA HERE struct SaveBlock2 gSaveBlock2 = {0};
EWRAM_DATA HERE u8 gSaveBlock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct SaveBlock1 gSaveBlock1 = {0};
EWRAM_DATA u8 gSaveBlock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA HERE struct SaveBlock1 gSaveBlock1 = {0};
EWRAM_DATA HERE u8 gSaveBlock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
EWRAM_DATA u8 gSaveBlock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA HERE struct PokemonStorage gPokemonStorage = {0};
EWRAM_DATA HERE u8 gSaveBlock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = 0;
@@ -70,7 +70,7 @@ void SetSaveBlocksPointers(void)
struct SaveBlock1** sav1_LocalVar = &gSaveBlock1Ptr;
void *oldSave = (void *)gSaveBlock1Ptr;
offset = (Random()) & (SAVEBLOCK_MOVE_RANGE - 4);
offset = (Random()) & ((SAVEBLOCK_MOVE_RANGE - 1) & ~3);
gSaveBlock2Ptr = (void*)(&gSaveBlock2) + offset;
*sav1_LocalVar = (void*)(&gSaveBlock1) + offset;
+1 -1
View File
@@ -375,7 +375,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader)
ScanlineEffect_Stop();
ResetBgsAndClearDma3BusyFlags(1);
InitBgsFromTemplates(0, sBGTemplates, ARRAY_COUNT(sBGTemplates));
InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
+8 -8
View File
@@ -2339,7 +2339,7 @@ static void sub_8136BC4(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sUnknown_8463EFC, ARRAY_COUNT(sUnknown_8463EFC));
InitBgsFromTemplates(0, sUnknown_8463EFC, NELEMS(sUnknown_8463EFC));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
@@ -3902,20 +3902,20 @@ static void sub_8139768(struct Sprite * sprite)
{
case 0:
sprite->pos1.y += sUnknown_8463FBE[sUnknown_203B170->unk00++];
v0 = ARRAY_COUNT(sUnknown_8463FBE);
v0 = NELEMS(sUnknown_8463FBE);
break;
case 1:
sprite->pos1.y += sUnknown_8463FC1[sUnknown_203B170->unk00++];
v0 = ARRAY_COUNT(sUnknown_8463FC1);
v0 = NELEMS(sUnknown_8463FC1);
break;
case 2:
sprite->pos1.y += sUnknown_8463FC6[sUnknown_203B170->unk00++];
v0 = ARRAY_COUNT(sUnknown_8463FC6);
v0 = NELEMS(sUnknown_8463FC6);
break;
case 3:
default:
sprite->pos1.y += sUnknown_8463FCD[sUnknown_203B170->unk00++];
v0 = ARRAY_COUNT(sUnknown_8463FCD);
v0 = NELEMS(sUnknown_8463FCD);
break;
}
@@ -3941,7 +3941,7 @@ static void sub_8139868(struct Sprite * sprite)
if (sUnknown_203B170->unk04++ >= 120)
{
sprite->pos1.x += sUnknown_8463FD4[sUnknown_203B170->unk00];
if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FD4))
if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FD4))
{
sUnknown_203B170->unk00 = 0;
sUnknown_203B170->unk04 = 0;
@@ -3953,7 +3953,7 @@ static void sub_8139868(struct Sprite * sprite)
if (sUnknown_203B170->unk04++ >= 90)
{
sprite->pos1.x += sUnknown_8463FDF[sUnknown_203B170->unk00];
if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FDF))
if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FDF))
{
sUnknown_203B170->unk00 = 0;
sUnknown_203B170->unk04 = 0;
@@ -3965,7 +3965,7 @@ static void sub_8139868(struct Sprite * sprite)
if (sUnknown_203B170->unk04++ >= 60)
{
sprite->pos1.x += sUnknown_8463FEA[sUnknown_203B170->unk00];
if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FEA))
if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FEA))
{
sUnknown_203B170->unk00 = 0;
sUnknown_203B170->unk04 = 0;
+2 -2
View File
@@ -523,10 +523,10 @@ static void sub_80B3168(struct Sprite *sprite)
bool8 toBG2 = (rank ^ var0) != 0;
if (IsBattlerSpriteVisible(battler))
sub_8073128(toBG2);
ResetBattleAnimBg(toBG2);
battler = battlerCopy ^ 2;
if (IsBattlerSpriteVisible(battler))
sub_8073128(toBG2 ^ var0);
ResetBattleAnimBg(toBG2 ^ var0);
}
sprite->callback = DestroyAnimSprite;
}
+1 -1
View File
@@ -35,7 +35,7 @@ static void (*const gUnknown_8471EDC[])(void) = {
void sub_8150454(u8 a0)
{
if (a0 < ARRAY_COUNT(gUnknown_8471EDC))
if (a0 < NELEMS(gUnknown_8471EDC))
gUnknown_8471EDC[a0]();
}
+3 -3
View File
@@ -94,7 +94,7 @@ void CreateInitialRoamerMon(void)
saveRoamer.smart = GetMonData(tmpMon, MON_DATA_SMART);
saveRoamer.tough = GetMonData(tmpMon, MON_DATA_TOUGH);
sRoamerLocation[MAP_GRP] = 3;
sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (NELEMS(sRoamerLocations) - 1)][0];
}
void InitRoamer(void)
@@ -125,7 +125,7 @@ void RoamerMoveToOtherLocationSet(void)
while (1)
{
mapNum = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
mapNum = sRoamerLocations[Random() % (NELEMS(sRoamerLocations) - 1)][0];
if (sRoamerLocation[MAP_NUM] != mapNum)
{
sRoamerLocation[MAP_NUM] = mapNum;
@@ -150,7 +150,7 @@ void RoamerMove(void)
if (!roamer->active)
return;
while (locSet < (ARRAY_COUNT(sRoamerLocations) - 1))
while (locSet < (NELEMS(sRoamerLocations) - 1))
{
if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0])
{
+2 -2
View File
@@ -407,7 +407,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32);
@@ -464,7 +464,7 @@ static void sub_80B490C(u8 taskId)
}
break;
case 3:
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
++gTasks[taskId].data[12];
break;
+14 -16
View File
@@ -45,26 +45,24 @@
min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
} \
// TODO: use gSaveblock2, gSaveblock1, gPokemonStorage instead of structs
// Will be done when load_save is decompiled.
const struct SaveSectionOffsets gSaveSectionOffsets[] =
{
SAVEBLOCK_CHUNK(struct SaveBlock2, 0),
SAVEBLOCK_CHUNK(gSaveBlock2, 0),
SAVEBLOCK_CHUNK(struct SaveBlock1, 0),
SAVEBLOCK_CHUNK(struct SaveBlock1, 1),
SAVEBLOCK_CHUNK(struct SaveBlock1, 2),
SAVEBLOCK_CHUNK(struct SaveBlock1, 3),
SAVEBLOCK_CHUNK(gSaveBlock1, 0),
SAVEBLOCK_CHUNK(gSaveBlock1, 1),
SAVEBLOCK_CHUNK(gSaveBlock1, 2),
SAVEBLOCK_CHUNK(gSaveBlock1, 3),
SAVEBLOCK_CHUNK(struct PokemonStorage, 0),
SAVEBLOCK_CHUNK(struct PokemonStorage, 1),
SAVEBLOCK_CHUNK(struct PokemonStorage, 2),
SAVEBLOCK_CHUNK(struct PokemonStorage, 3),
SAVEBLOCK_CHUNK(struct PokemonStorage, 4),
SAVEBLOCK_CHUNK(struct PokemonStorage, 5),
SAVEBLOCK_CHUNK(struct PokemonStorage, 6),
SAVEBLOCK_CHUNK(struct PokemonStorage, 7),
SAVEBLOCK_CHUNK(struct PokemonStorage, 8)
SAVEBLOCK_CHUNK(gPokemonStorage, 0),
SAVEBLOCK_CHUNK(gPokemonStorage, 1),
SAVEBLOCK_CHUNK(gPokemonStorage, 2),
SAVEBLOCK_CHUNK(gPokemonStorage, 3),
SAVEBLOCK_CHUNK(gPokemonStorage, 4),
SAVEBLOCK_CHUNK(gPokemonStorage, 5),
SAVEBLOCK_CHUNK(gPokemonStorage, 6),
SAVEBLOCK_CHUNK(gPokemonStorage, 7),
SAVEBLOCK_CHUNK(gPokemonStorage, 8)
};
// Sector num to begin writing save data. Sectors are rotated each time the game is saved. (possibly to avoid wear on flash memory?)
+2 -2
View File
@@ -487,7 +487,7 @@ u8 *GetExpandedPlaceholder(u32 id)
[PLACEHOLDER_ID_KYOGRE] = ExpandPlaceholder_Kyogre,
};
if (id >= ARRAY_COUNT(funcs))
if (id >= NELEMS(funcs))
return gExpandedPlaceholder_Empty;
else
return funcs[id]();
@@ -627,7 +627,7 @@ u8 GetExtCtrlCodeLength(u8 code)
};
u8 length = 0;
if (code < ARRAY_COUNT(lengths))
if (code < NELEMS(lengths))
length = lengths[code];
return length;
}
+1 -1
View File
@@ -1472,7 +1472,7 @@ static bool8 SetTrainerCardBgsAndPals(void)
switch (sTrainerCardDataPtr->bgPalLoadState)
{
case 0:
LoadBgTiles(3, sTrainerCardDataPtr->badgeTiles, ARRAY_COUNT(sTrainerCardDataPtr->badgeTiles), 0);
LoadBgTiles(3, sTrainerCardDataPtr->badgeTiles, NELEMS(sTrainerCardDataPtr->badgeTiles), 0);
break;
case 1:
LoadBgTiles(0, sTrainerCardDataPtr->cardTiles, 0x1800, 0);
+2 -2
View File
@@ -812,7 +812,7 @@ void AnimTask_CreateSurfWave(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
if (!IsContest())
{
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
@@ -889,7 +889,7 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
*BGptrX += gTasks[taskId].data[0];
*BGptrY += gTasks[taskId].data[1];
sub_80752A0(&animBg);
GetBattleAnimBg1Data(&animBg);
gTasks[taskId].data[2] += gTasks[taskId].data[1];
if (++gTasks[taskId].data[5] == 4)
{