summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/battle_anim_scripts.s2
-rw-r--r--graphics/battle_anims/masks/unused_level_up.bin (renamed from graphics/battle_anims/masks/unknown_C2EA50.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/battle_anims/masks/unused_level_up.png (renamed from graphics/battle_anims/masks/unknown_C2EA50.png)bin175 -> 175 bytes
-rw-r--r--graphics/reset_rtc_screen/arrow.pal (renamed from graphics/misc/reset_rtc_screen_arrow.pal)0
-rw-r--r--graphics/reset_rtc_screen/arrow_down.png (renamed from graphics/misc/reset_rtc_screen_downarrow.png)bin113 -> 113 bytes
-rw-r--r--graphics/reset_rtc_screen/arrow_right.png (renamed from graphics/misc/reset_rtc_screen_rightarrow.png)bin110 -> 110 bytes
-rw-r--r--graphics/weather/fog.pal (renamed from graphics/weather/0.pal)0
-rw-r--r--graphics_file_rules.mk2
-rw-r--r--include/battle_anim.h24
-rw-r--r--include/field_weather.h2
-rw-r--r--include/graphics.h8
-rw-r--r--include/item_icon.h4
-rw-r--r--include/save.h5
-rw-r--r--src/battle_anim.c30
-rw-r--r--src/battle_anim_dark.c16
-rw-r--r--src/battle_anim_effects_1.c6
-rwxr-xr-xsrc/battle_anim_effects_2.c16
-rwxr-xr-xsrc/battle_anim_effects_3.c14
-rw-r--r--src/battle_anim_fire.c2
-rw-r--r--src/battle_anim_ghost.c41
-rw-r--r--src/battle_anim_ground.c30
-rw-r--r--src/battle_anim_ice.c68
-rw-r--r--src/battle_anim_mons.c113
-rw-r--r--src/battle_anim_normal.c34
-rw-r--r--src/battle_anim_psychic.c10
-rw-r--r--src/battle_anim_rock.c12
-rw-r--r--src/battle_anim_smokescreen.c4
-rw-r--r--src/battle_anim_status_effects.c105
-rwxr-xr-xsrc/battle_anim_throw.c25
-rw-r--r--src/battle_anim_utility_funcs.c154
-rw-r--r--src/battle_anim_water.c8
-rw-r--r--src/berry_fix_program.c284
-rw-r--r--src/field_weather.c5
-rw-r--r--src/graphics.c8
-rw-r--r--src/item_icon.c6
-rw-r--r--src/reset_rtc_screen.c391
-rw-r--r--src/save.c4
-rw-r--r--src/save_failed_screen.c109
38 files changed, 820 insertions, 722 deletions
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 2e42848ab..d1c9bc78b 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -2628,7 +2628,7 @@ Move_FISSURE:
delay 40
restorebg
waitbgfadeout
- setarg 7, 0xFFFF
+ setarg 7, -1
waitbgfadein
end
diff --git a/graphics/battle_anims/masks/unknown_C2EA50.bin b/graphics/battle_anims/masks/unused_level_up.bin
index 712c1ee12..712c1ee12 100644
--- a/graphics/battle_anims/masks/unknown_C2EA50.bin
+++ b/graphics/battle_anims/masks/unused_level_up.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/unknown_C2EA50.png b/graphics/battle_anims/masks/unused_level_up.png
index d0b372cbb..d0b372cbb 100644
--- a/graphics/battle_anims/masks/unknown_C2EA50.png
+++ b/graphics/battle_anims/masks/unused_level_up.png
Binary files differ
diff --git a/graphics/misc/reset_rtc_screen_arrow.pal b/graphics/reset_rtc_screen/arrow.pal
index b2e8a5f5f..b2e8a5f5f 100644
--- a/graphics/misc/reset_rtc_screen_arrow.pal
+++ b/graphics/reset_rtc_screen/arrow.pal
diff --git a/graphics/misc/reset_rtc_screen_downarrow.png b/graphics/reset_rtc_screen/arrow_down.png
index 8f7b3480d..8f7b3480d 100644
--- a/graphics/misc/reset_rtc_screen_downarrow.png
+++ b/graphics/reset_rtc_screen/arrow_down.png
Binary files differ
diff --git a/graphics/misc/reset_rtc_screen_rightarrow.png b/graphics/reset_rtc_screen/arrow_right.png
index 785b3c1db..785b3c1db 100644
--- a/graphics/misc/reset_rtc_screen_rightarrow.png
+++ b/graphics/reset_rtc_screen/arrow_right.png
Binary files differ
diff --git a/graphics/weather/0.pal b/graphics/weather/fog.pal
index 6191b6692..6191b6692 100644
--- a/graphics/weather/0.pal
+++ b/graphics/weather/fog.pal
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index 1c7f711a1..6a3bf4006 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -437,7 +437,7 @@ $(BTLANMSPRGFXDIR)/spark.4bpp: $(BTLANMSPRGFXDIR)/spark_0.4bpp \
$(BTLANMSPRGFXDIR)/spark_1.4bpp
@cat $^ >$@
-$(MASKSGFXDIR)/unknown_C2EA50.4bpp: %.4bpp: %.png
+$(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 14
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
diff --git a/include/battle_anim.h b/include/battle_anim.h
index c1231c2de..34bd774fe 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -65,7 +65,7 @@ s8 BattleAnimAdjustPanning2(s8 pan);
s16 KeepPanInRange(s16 a, int oldPan);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
void sub_80A4720(u16 a, u16 *b, u32 c, u8 d);
-void sub_80A477C(bool8);
+void ResetBattleAnimBg(bool8);
// battle_intro.c
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
@@ -75,8 +75,8 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_mons.c
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite);
-void sub_80A8AEC(struct Sprite *sprite);
-void sub_80A8A6C(struct Sprite *sprite);
+void AnimUnused_80A8AEC(struct Sprite *sprite);
+void AnimUnused_80A8A6C(struct Sprite *sprite);
void AnimWeatherBallUp(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite);
void AnimSpinningSparkle(struct Sprite *sprite);
@@ -108,8 +108,8 @@ u8 GetBattlerSpriteBGPriority(u8 battlerId);
void *LoadPointerFromVars(s16 bottom, s16 top);
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
void sub_80A8278(void);
-void GetDefaultBattleAnimBgData(struct BattleAnimBgData*);
-void sub_80A6B90(struct BattleAnimBgData*, u32 arg1);
+void GetBattleAnimBg1Data(struct BattleAnimBgData*);
+void GetBattleAnimBgData(struct BattleAnimBgData*, u32 arg1);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
void sub_80A6630(struct Sprite *sprite);
@@ -119,12 +119,12 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
-u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
-u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4);
+u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7);
+u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight);
u8 AnimDummyReturnArg(u8 battler);
s16 CloneBattlerSpriteWithBlend(u8);
void obj_delete_but_dont_free_vram(struct Sprite*);
-u8 sub_80A89C8(int, u8, int);
+u8 CreateInvisibleSpriteCopy(int, u8, int);
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, u32);
void AnimLoadCompressedBgGfx(u32, const u32*, u32);
void UpdateAnimBg3ScreenSize(bool8);
@@ -183,7 +183,7 @@ enum
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
bool8 IsBattlerSpritePresent(u8 battlerId);
-void sub_80A6C68(u32 arg0);
+void ClearBattleAnimBg(u32 arg0);
u8 GetAnimBattlerSpriteId(u8 wantedBattler);
bool8 IsDoubleBattle(void);
u8 GetBattleBgPaletteNum(void);
@@ -214,8 +214,8 @@ u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, u8 ballId);
// battle_anim_utility_funcs.c
-void sub_8116EB4(u8);
-void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette);
+void InitStatsChangeAnimation(u8);
+void StartMonScrollingBgMask(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette);
// battle_anim_effects_1.c
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
@@ -231,7 +231,7 @@ void DestroyAnimSpriteAfterTimer(struct Sprite *sprite);
// battle_anim_smokescreen.c
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
-u32 UnpackSelectedBattleAnimPalettes(s16);
+u32 UnpackSelectedBattleBgPalettes(s16);
u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
diff --git a/include/field_weather.h b/include/field_weather.h
index 1af320151..9ecf52501 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -117,7 +117,7 @@ struct Weather
// field_weather.c
extern struct Weather gWeather;
extern struct Weather *const gWeatherPtr;
-extern const u16 gUnknown_083970E8[];
+extern const u16 gFogPalette[];
// field_weather_effect.c
extern const u8 gWeatherFogHorizontalTiles[];
diff --git a/include/graphics.h b/include/graphics.h
index c0bd13e5b..0057563c4 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4199,8 +4199,8 @@ extern const u32 gBattleAnimSpriteGfx_HumanoidFoot[];
extern const u32 gBattleAnimSpriteGfx_MonsterFoot[];
extern const u32 gBattleAnimSpriteGfx_HumanoidHand[];
extern const u32 gBattleAnimSpriteGfx_NoiseLine[];
-extern const u32 gUnknown_08C2EA50[];
-extern const u32 gUnknown_08C2EA9C[];
+extern const u32 UnusedLevelupAnimationGfx[];
+extern const u32 UnusedLevelupAnimationTilemap[];
extern const u32 gBattleAnimSpriteGfx_YellowUnk[];
extern const u32 gBattleAnimSpriteGfx_RedFist[];
extern const u32 gBattleAnimSpriteGfx_SlamHit[];
@@ -4764,8 +4764,8 @@ extern const u32 gMetalShineGfx[];
extern const u32 gMetalShinePalette[];
extern const u32 gMetalShineTilemap[];
-extern const u32 gUnknown_08C20668[];
-extern const u32 gUnknown_08C20684[];
+extern const u32 gBattleAnimMaskImage_Curse[];
+extern const u32 gBattleAnimMaskTilemap_Curse[];
extern const u32 gBattleStatMask_Gfx[];
extern const u32 gBattleStatMask1_Tilemap[];
extern const u32 gBattleStatMask2_Tilemap[];
diff --git a/include/item_icon.h b/include/item_icon.h
index af03473fb..c93a519bb 100644
--- a/include/item_icon.h
+++ b/include/item_icon.h
@@ -1,8 +1,8 @@
#ifndef GUARD_ITEM_ICON_H
#define GUARD_ITEM_ICON_H
-extern void *gItemIconDecompressionBuffer;
-extern void *gItemIcon4x4Buffer;
+extern u8 *gItemIconDecompressionBuffer;
+extern u8 *gItemIcon4x4Buffer;
extern const struct SpriteTemplate gItemIconSpriteTemplate;
diff --git a/include/save.h b/include/save.h
index 18b57502b..948530406 100644
--- a/include/save.h
+++ b/include/save.h
@@ -29,6 +29,11 @@ struct SaveSectionOffsets
u16 size;
};
+// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer
+#define SECTOR_DATA_SIZE 3968
+#define SECTOR_FOOTER_SIZE 128
+#define SECTOR_SIZE (SECTOR_DATA_SIZE + SECTOR_FOOTER_SIZE)
+
// Emerald changes this definition to be the sectors per slot.
#define NUM_SECTORS_PER_SLOT 16
diff --git a/src/battle_anim.c b/src/battle_anim.c
index 0ad6418c8..a10b20b55 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -2300,7 +2300,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
RequestDma3Fill(0xFF, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 0);
}
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
CpuFill16(0, animBg.bgTiles, 0x1000);
CpuFill16(0xFF, animBg.bgTilemap, 0x800);
@@ -2338,7 +2338,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
{
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1);
- sub_80A6B90(&animBg, 2);
+ GetBattleAnimBgData(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
@@ -2371,7 +2371,7 @@ static void sub_80A46A0(void)
if (IsSpeciesNotUnown(gContestResources->moveAnim->species))
{
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
ptr = animBg.bgTilemap;
for (i = 0; i < 8; i++)
{
@@ -2408,20 +2408,20 @@ void sub_80A4720(u16 a, u16 *b, u32 c, u8 d)
}
}
-void sub_80A477C(bool8 to_BG2)
+void ResetBattleAnimBg(bool8 toBG2)
{
struct BattleAnimBgData animBg;
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
- if (!to_BG2 || IsContest())
+ if (!toBG2 || IsContest())
{
- sub_80A6C68(1);
+ ClearBattleAnimBg(1);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
}
else
{
- sub_80A6C68(2);
+ ClearBattleAnimBg(2);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
}
@@ -2435,7 +2435,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
spriteId = gTasks[taskId].data[0];
palIndex = gTasks[taskId].data[6];
- GetDefaultBattleAnimBgData(&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);
@@ -2510,13 +2510,13 @@ static void sub_80A4980(u8 taskId)
if (sMonAnimTaskIdArray[0] != TASK_NONE)
{
- sub_80A477C(to_BG2);
+ ResetBattleAnimBg(to_BG2);
DestroyTask(sMonAnimTaskIdArray[0]);
sMonAnimTaskIdArray[0] = TASK_NONE;
}
if (gTasks[taskId].data[0] > 1)
{
- sub_80A477C(to_BG2 ^ 1);
+ ResetBattleAnimBg(to_BG2 ^ 1);
DestroyTask(sMonAnimTaskIdArray[1]);
sMonAnimTaskIdArray[1] = TASK_NONE;
}
@@ -2617,9 +2617,9 @@ static void sub_80A4BB0(u8 taskId)
toBG_2 = TRUE;
if (IsBattlerSpriteVisible(battlerId))
- sub_80A477C(toBG_2);
+ ResetBattleAnimBg(toBG_2);
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
- sub_80A477C(toBG_2 ^ 1);
+ ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(taskId);
}
@@ -3407,9 +3407,9 @@ static void ScriptCmd_doublebattle_2D(void)
gSprites[spriteId].oam.priority = 3;
if (r4 == 1)
- sub_80A477C(FALSE);
+ ResetBattleAnimBg(FALSE);
else
- sub_80A477C(TRUE);
+ ResetBattleAnimBg(TRUE);
}
}
}
diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c
index 75b5ba404..19e8c9523 100644
--- a/src/battle_anim_dark.c
+++ b/src/battle_anim_dark.c
@@ -423,7 +423,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
if (task->data[3] == 1)
{
- GetDefaultBattleAnimBgData(&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);
@@ -564,7 +564,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
case 1:
if (task->data[3] == 1)
{
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
FillPalette(0, animBg.paletteId * 16, 32);
}
@@ -787,10 +787,10 @@ void AnimTask_InitMementoShadow(u8 taskId)
void sub_8114470(u8 taskId)
{
u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0;
- sub_80A477C(toBG2);
+ ResetBattleAnimBg(toBG2);
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
- sub_80A477C(toBG2 ^ 1);
+ ResetBattleAnimBg(toBG2 ^ 1);
DestroyAnimVisualTask(taskId);
}
@@ -858,9 +858,9 @@ void AnimTask_MetallicShine(u8 taskId)
}
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
- newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species);
+ newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32);
@@ -903,8 +903,8 @@ static void AnimTask_MetallicShine_Step(u8 taskId)
SetGreyscaleOrOriginalPalette(paletteNum, TRUE);
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(animBg.bgId);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(animBg.bgId);
if (gTasks[taskId].data[6] == 1)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
}
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index a2f52304a..03dc75daf 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -4338,7 +4338,7 @@ static void AnimLockOnTarget_Step4(struct Sprite* sprite)
sprite->data[1] = 0;
}
- BlendPalettes(sub_80A75AC(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31));
+ BlendPalettes(GetBattleBgPalettesMask(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31));
if (sprite->data[1] == 16)
{
int pal;
@@ -4991,7 +4991,7 @@ static void AnimMoonlightSparkle_Step(struct Sprite* sprite)
void AnimTask_MoonlightEndFade(u8 taskId)
{
- int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
+ int a = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
int b;
int c;
int d;
@@ -5006,7 +5006,7 @@ void AnimTask_MoonlightEndFade(u8 taskId)
gTasks[taskId].data[7] = 13;
gTasks[taskId].data[8] = 14;
gTasks[taskId].data[9] = 15;
- b = sub_80A76C4(1, 1, 1, 1);
+ b = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
c = a | b;
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index 154c8629b..8142624a2 100755
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -3106,7 +3106,7 @@ static void AnimTask_FakeOut_Step2(u8 taskId)
{
gTasks[taskId].data[11] = 0x88;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN);
- BlendPalettes(sub_80A75AC(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
+ BlendPalettes(GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
}
else if (gTasks[taskId].data[10] > 4)
{
@@ -3248,7 +3248,7 @@ void AnimTask_HeartsBackground(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgGfx(animBg.bgId, &gBattleAnimBgImage_Attract, animBg.tilesOffset);
AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_Attract, 0);
LoadCompressedPalette(&gBattleAnimBgPalette_Attract, animBg.paletteId * 16, 32);
@@ -3295,8 +3295,8 @@ static void AnimTask_HeartsBackground_Step(u8 taskId)
}
break;
case 3:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(animBg.bgId);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(animBg.bgId);
gTasks[taskId].data[12]++;
break;
case 4:
@@ -3326,7 +3326,7 @@ void AnimTask_ScaryFace(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
if (IsContest())
AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFaceContest, 0);
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT)
@@ -3379,9 +3379,9 @@ static void AnimTask_ScaryFace_Step(u8 taskId)
}
break;
case 3:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(1);
- sub_80A6C68(2);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(1);
+ ClearBattleAnimBg(2);
gTasks[taskId].data[12]++;
// fall through
case 4:
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index eee2354b3..81ba475f9 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -2387,7 +2387,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimMaskTilemap_LightBeam, 0);
if (IsContest())
{
@@ -2450,8 +2450,8 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
}
break;
case 4:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(animBg.bgId);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(animBg.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
@@ -2568,7 +2568,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimMaskTilemap_LightBeam, 0);
if (IsContest())
{
@@ -2639,8 +2639,8 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
gTasks[taskId].data[0] = 1;
break;
case 5:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(animBg.bgId);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(animBg.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
@@ -3866,7 +3866,7 @@ static void AnimTask_FacadeColorBlend_Step(u8 taskId)
// The sliding circle effect used by Refresh and Aromatherapy
void AnimTask_StatusClearedEffect(u8 taskId)
{
- sub_8117854(
+ StartMonScrollingBgMask(
taskId,
0,
0x1A0,
diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c
index c90d7f4f1..5b43f4276 100644
--- a/src/battle_anim_fire.c
+++ b/src/battle_anim_fire.c
@@ -1278,7 +1278,7 @@ static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId)
void AnimTask_BlendBackground(u8 taskId)
{
struct BattleAnimBgData animBg;
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
DestroyAnimVisualTask(taskId);
}
diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c
index 98d951108..2e4a2318d 100644
--- a/src/battle_anim_ghost.c
+++ b/src/battle_anim_ghost.c
@@ -13,7 +13,7 @@
static void AnimConfuseRayBallBounce(struct Sprite *);
static void AnimConfuseRayBallBounce_Step1(struct Sprite *);
static void AnimConfuseRayBallBounce_Step2(struct Sprite *);
-static void sub_8111764(struct Sprite *);
+static void UpdateConfuseRayBallBlend(struct Sprite *);
static void AnimConfuseRayBallSpiral(struct Sprite *);
static void AnimConfuseRayBallSpiral_Step(struct Sprite *);
static void AnimTask_NightShadeClone_Step1(u8 taskId);
@@ -39,8 +39,8 @@ static void AnimGhostStatusSprite(struct Sprite *);
static void AnimGhostStatusSprite_Step(struct Sprite *);
static void AnimTask_GrudgeFlames_Step(u8 taskId);
static void AnimGrudgeFlame(struct Sprite *);
-static void sub_8112F60(struct Sprite *);
-static void sub_8112FB8(struct Sprite *);
+static void AnimUnused_8112F60(struct Sprite *);
+static void AnimUnused_8112F60_Step(struct Sprite *);
static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] =
{
@@ -124,16 +124,16 @@ const struct SpriteTemplate gLickSpriteTemplate =
.callback = AnimLick,
};
-static const union AffineAnimCmd gUnknown_08596DA4[] =
+static const union AffineAnimCmd sAnim_Unused_08596DA4[] =
{
AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
AFFINEANIMCMD_END,
};
// Unused
-static const union AffineAnimCmd *const gUnknown_08596DB4[] =
+static const union AffineAnimCmd *const gAnims_Unused_08596DB4[] =
{
- gUnknown_08596DA4,
+ sAnim_Unused_08596DA4,
};
const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate =
@@ -206,7 +206,7 @@ const struct SpriteTemplate gGrudgeFlameSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnknown_08596E48 =
+const struct SpriteTemplate gUnusedSpriteTemplate_08596E48 =
{
.tileTag = 0,
.paletteTag = 0,
@@ -214,12 +214,12 @@ const struct SpriteTemplate gUnknown_08596E48 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8112F60,
+ .callback = AnimUnused_8112F60,
};
static void AnimConfuseRayBallBounce(struct Sprite *sprite)
{
- InitSpritePosToAnimAttacker(sprite, 1);
+ InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
@@ -236,7 +236,7 @@ static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite)
{
s16 r0;
s16 r2;
- sub_8111764(sprite);
+ UpdateConfuseRayBallBlend(sprite);
if (AnimTranslateLinear(sprite))
{
sprite->callback = AnimConfuseRayBallBounce_Step2;
@@ -280,13 +280,11 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite)
sprite->callback = DestroyAnimSpriteAndDisableBlend;
}
else
- sub_8111764(sprite);
+ UpdateConfuseRayBallBlend(sprite);
}
-static void sub_8111764(struct Sprite *sprite)
+static void UpdateConfuseRayBallBlend(struct Sprite *sprite)
{
-
- s16 r0;
if (sprite->data[6] > 0xFF)
{
if (++sprite->data[6] == 0x10d)
@@ -294,10 +292,7 @@ static void sub_8111764(struct Sprite *sprite)
return;
}
- r0 = sprite->data[7];
- sprite->data[7]++;
-
- if ((r0 & 0xFF) == 0)
+ if ((sprite->data[7]++ & 0xFF) == 0)
{
sprite->data[7] &= 0xff00;
if ((sprite->data[7] & 0x100) != 0)
@@ -648,7 +643,7 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId)
break;
case 1:
task->data[14] = (task->data[14] + 16) * 16;
- CpuSet(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 0x4000008);
+ CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 32);
BlendPalette(task->data[4], 16, 10, RGB(13, 0, 15));
task->data[15]++;
break;
@@ -1009,7 +1004,7 @@ static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId)
right = 240;
top = 0;
bottom = 112;
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0));
gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2;
}
@@ -1307,7 +1302,7 @@ static void AnimGrudgeFlame(struct Sprite *sprite)
}
}
-static void sub_8112F60(struct Sprite *sprite)
+static void AnimUnused_8112F60(struct Sprite *sprite)
{
sprite->invisible = TRUE;
sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker];
@@ -1315,12 +1310,12 @@ static void sub_8112F60(struct Sprite *sprite)
sprite->data[1] = 10;
sprite->data[2] = gBattleAnimArgs[0];
sprite->data[3] = gBattleAnimArgs[1];
- sprite->callback = sub_8112FB8;
+ sprite->callback = AnimUnused_8112F60_Step;
gSprites[sprite->data[5]].pos1.y += 8;
}
-static void sub_8112FB8(struct Sprite *sprite)
+static void AnimUnused_8112F60_Step(struct Sprite *sprite)
{
if (sprite->data[3])
{
diff --git a/src/battle_anim_ground.c b/src/battle_anim_ground.c
index 37caf81e7..6dc9c5815 100644
--- a/src/battle_anim_ground.c
+++ b/src/battle_anim_ground.c
@@ -21,11 +21,11 @@ static void AnimTask_DigBounceMovement(u8);
static void AnimTask_DigEndBounceMovementSetInvisible(u8);
static void AnimTask_DigSetVisibleUnderground(u8);
static void AnimTask_DigRiseUpFromHole(u8);
-static void sub_81150E0(u8, s16, s16);
+static void SetDigScanlineEffect(u8, s16, s16);
static void AnimTask_ShakeTerrain(u8);
static void AnimTask_ShakeBattlers(u8);
static void SetBattlersXOffsetForShake(struct Task *);
-static void sub_81156D0(u8);
+static void WaitForFissureCompletion(u8);
static const union AffineAnimCmd sAffineAnim_Bonemerang[] =
{
@@ -299,7 +299,7 @@ void AnimTask_DigDownMovement(u8 taskId)
static void AnimTask_DigBounceMovement(u8 taskId)
{
- u8 var0;
+ u8 y;
struct Task *task = &gTasks[taskId];
switch (task->data[0])
@@ -318,9 +318,9 @@ static void AnimTask_DigBounceMovement(u8 taskId)
task->data[13] = gBattle_BG2_Y;
}
- var0 = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
- task->data[14] = var0 - 32;
- task->data[15] = var0 + 32;
+ y = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
+ task->data[14] = y - 32;
+ task->data[15] = y + 32;
if (task->data[14] < 0)
task->data[14] = 0;
@@ -328,7 +328,7 @@ static void AnimTask_DigBounceMovement(u8 taskId)
task->data[0]++;
break;
case 1:
- sub_81150E0(task->data[11], task->data[14], task->data[15]);
+ SetDigScanlineEffect(task->data[11], task->data[14], task->data[15]);
task->data[0]++;
break;
case 2:
@@ -434,7 +434,7 @@ static void AnimTask_DigRiseUpFromHole(u8 taskId)
task->data[0]++;
break;
case 1:
- sub_81150E0(task->data[11], 0, task->data[15]);
+ SetDigScanlineEffect(task->data[11], 0, task->data[15]);
task->data[0]++;
break;
case 2:
@@ -455,7 +455,7 @@ static void AnimTask_DigRiseUpFromHole(u8 taskId)
}
}
-static void sub_81150E0(u8 useBG1, s16 y, s16 endY)
+static void SetDigScanlineEffect(u8 useBG1, s16 y, s16 endY)
{
s16 bgX;
struct ScanlineEffectParams scanlineParams;
@@ -743,21 +743,23 @@ void AnimTask_PositionFissureBgOnBattler(u8 taskId)
u8 battler = (gBattleAnimArgs[0] & ANIM_TARGET) ? gBattleAnimTarget : gBattleAnimAttacker;
if (gBattleAnimArgs[0] > ANIM_TARGET)
- battler ^= 2;
+ battler = BATTLE_PARTNER(battler);
- newTask = &gTasks[CreateTask(sub_81156D0, gBattleAnimArgs[1])];
- newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, 2)) & 0x1FF;
- newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, 3)) & 0xFF;
+ newTask = &gTasks[CreateTask(WaitForFissureCompletion, gBattleAnimArgs[1])];
+ newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2)) & 0x1FF;
+ newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET)) & 0xFF;
gBattle_BG3_X = newTask->data[1];
gBattle_BG3_Y = newTask->data[2];
newTask->data[3] = gBattleAnimArgs[2];
DestroyAnimVisualTask(taskId);
}
-static void sub_81156D0(u8 taskId)
+static void WaitForFissureCompletion(u8 taskId)
{
struct Task *task = &gTasks[taskId];
+ // Holds the BG3 offsets until gBattleAnimArgs[7]
+ // is set to a special terminator value.
if (gBattleAnimArgs[7] == task->data[3])
{
gBattle_BG3_X = 0;
diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c
index 4babe577a..53aa14cff 100644
--- a/src/battle_anim_ice.c
+++ b/src/battle_anim_ice.c
@@ -20,8 +20,8 @@ struct HailStruct {
s32 unk3:4;
};
-static void sub_810B6C4(struct Sprite *);
-static void sub_810B848(struct Sprite *);
+static void AnimUnused_810B6C4(struct Sprite *);
+static void AnimUnused_810B6C4_Step(struct Sprite *);
static void AnimIcePunchSwirlingParticle(struct Sprite *);
static void AnimIceBeamParticle(struct Sprite *);
static void AnimIceEffectParticle(struct Sprite *);
@@ -44,25 +44,25 @@ static void InitIceBallAnim(struct Sprite *);
static void AnimThrowIceBall(struct Sprite *);
static void InitIceBallParticle(struct Sprite *);
static void AnimIceBallParticle(struct Sprite *);
-static void AnimTask_Haze2(u8);
-static void AnimTask_OverlayFogTiles(u8);
+static void AnimTask_HazeScrollingFog_Step(u8);
+static void AnimTask_LoadMistTiles_Step(u8);
static void AnimTask_Hail2(u8);
static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c);
-static const union AnimCmd gUnknown_08595A48[] =
+static const union AnimCmd sAnim_Unused_08595A48[] =
{
ANIMCMD_FRAME(0, 5, .hFlip = TRUE),
ANIMCMD_FRAME(1, 5, .hFlip = TRUE),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const gUnknown_08595A54[] =
+static const union AnimCmd *const sAnims_Unused_08595A54[] =
{
- gUnknown_08595A48,
+ sAnim_Unused_08595A48,
};
// Unused
-const struct SpriteTemplate gUnknown_08595A58 =
+const struct SpriteTemplate gUnusedSpriteTemplate_08595A58 =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
@@ -70,10 +70,10 @@ const struct SpriteTemplate gUnknown_08595A58 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_810B6C4,
+ .callback = AnimUnused_810B6C4,
};
-static const union AnimCmd gUnknown_08595A70[] =
+static const union AnimCmd sAnim_Unused_08595A70[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
@@ -111,9 +111,9 @@ static const union AnimCmd sAnim_SmallBubblePair[] =
};
// Unused
-static const union AnimCmd *const gUnknown_08595AA4[] =
+static const union AnimCmd *const sAnims_Unused_08595AA4[] =
{
- gUnknown_08595A70,
+ sAnim_Unused_08595A70,
};
static const union AnimCmd *const sAnims_IceCrystalLarge[] =
@@ -337,7 +337,7 @@ const struct SpriteTemplate gSmogCloudSpriteTemplate =
.callback = InitSwirlingFogAnim,
};
-static const u8 sUnknown_08595C5C[] =
+static const u8 sHazeBlendAmounts[] =
{
0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9,
};
@@ -353,7 +353,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate =
.callback = AnimThrowMistBall,
};
-static const u8 sUnknown_08595C88[] =
+static const u8 wMistBlendAmounts[] =
{
0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5,
};
@@ -524,7 +524,7 @@ const struct SpriteTemplate gIceBallImpactShardSpriteTemplate =
};
// Unused
-static void sub_810B6C4(struct Sprite *sprite)
+static void AnimUnused_810B6C4(struct Sprite *sprite)
{
s16 targetX, targetY, attackerX, attackerY;
@@ -560,10 +560,10 @@ static void sub_810B6C4(struct Sprite *sprite)
sub_80A64EC(sprite);
sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6];
- sprite->callback = sub_810B848;
+ sprite->callback = AnimUnused_810B6C4_Step;
}
-static void sub_810B848(struct Sprite *sprite)
+static void AnimUnused_810B6C4_Step(struct Sprite *sprite)
{
if (sprite->data[0] != 0)
{
@@ -998,15 +998,15 @@ void AnimTask_HazeScrollingFog(u8 taskId)
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, 0);
- LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32);
+ LoadPalette(&gFogPalette, animBg.paletteId * 16, 32);
- gTasks[taskId].func = AnimTask_Haze2;
+ gTasks[taskId].func = AnimTask_HazeScrollingFog_Step;
}
-static void AnimTask_Haze2(u8 taskId)
+static void AnimTask_HazeScrollingFog_Step(u8 taskId)
{
struct BattleAnimBgData animBg;
@@ -1020,7 +1020,7 @@ static void AnimTask_Haze2(u8 taskId)
{
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[9]++;
- gTasks[taskId].data[11] = sUnknown_08595C5C[gTasks[taskId].data[9]];
+ gTasks[taskId].data[11] = sHazeBlendAmounts[gTasks[taskId].data[9]];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
if (gTasks[taskId].data[11] == 9)
@@ -1052,12 +1052,10 @@ static void AnimTask_Haze2(u8 taskId)
}
break;
case 3:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(1);
- sub_80A6C68(2);
-
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(1);
+ ClearBattleAnimBg(2);
gTasks[taskId].data[12]++;
-
// fall through
case 4:
if (!IsContest())
@@ -1105,16 +1103,16 @@ void AnimTask_LoadMistTiles(u8 taskId)
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, 0);
- LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32);
+ LoadPalette(&gFogPalette, animBg.paletteId * 16, 32);
gTasks[taskId].data[15] = -1;
- gTasks[taskId].func = AnimTask_OverlayFogTiles;
+ gTasks[taskId].func = AnimTask_LoadMistTiles_Step;
}
-static void AnimTask_OverlayFogTiles(u8 taskId)
+static void AnimTask_LoadMistTiles_Step(u8 taskId)
{
struct BattleAnimBgData animBg;
@@ -1125,7 +1123,7 @@ static void AnimTask_OverlayFogTiles(u8 taskId)
{
case 0:
gTasks[taskId].data[9] += 1;
- gTasks[taskId].data[11] = sUnknown_08595C88[gTasks[taskId].data[9]];
+ gTasks[taskId].data[11] = wMistBlendAmounts[gTasks[taskId].data[9]];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11]));
if (gTasks[taskId].data[11] == 5)
{
@@ -1154,9 +1152,9 @@ static void AnimTask_OverlayFogTiles(u8 taskId)
}
break;
case 3:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(1);
- sub_80A6C68(2);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(1);
+ ClearBattleAnimBg(2);
gTasks[taskId].data[12]++;
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index 24a2ef385..3f4a35475 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -849,7 +849,7 @@ bool8 IsDoubleBattle(void)
return IS_DOUBLE_BATTLE();
}
-void GetDefaultBattleAnimBgData(struct BattleAnimBgData *out)
+void GetBattleAnimBg1Data(struct BattleAnimBgData *out)
{
if (IsContest())
{
@@ -871,68 +871,68 @@ void GetDefaultBattleAnimBgData(struct BattleAnimBgData *out)
}
}
-void sub_80A6B90(struct BattleAnimBgData *unk, u32 arg1)
+void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId)
{
if (IsContest())
{
- unk->bgTiles = gUnknown_0202305C;
- unk->bgTilemap = (u16 *)gUnknown_02023060;
- unk->paletteId = 14;
- unk->bgId = 1;
- unk->tilesOffset = 0;
- unk->unused = 0;
+ out->bgTiles = gUnknown_0202305C;
+ out->bgTilemap = (u16 *)gUnknown_02023060;
+ out->paletteId = 14;
+ out->bgId = 1;
+ out->tilesOffset = 0;
+ out->unused = 0;
}
- else if (arg1 == 1)
+ else if (bgId == 1)
{
- GetDefaultBattleAnimBgData(unk);
+ GetBattleAnimBg1Data(out);
}
else
{
- unk->bgTiles = gUnknown_0202305C;
- unk->bgTilemap = (u16 *)gUnknown_02023060;
- unk->paletteId = 9;
- unk->bgId = 2;
- unk->tilesOffset = 0x300;
- unk->unused = 0;
+ out->bgTiles = gUnknown_0202305C;
+ out->bgTilemap = (u16 *)gUnknown_02023060;
+ out->paletteId = 9;
+ out->bgId = 2;
+ out->tilesOffset = 0x300;
+ out->unused = 0;
}
}
-void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused)
+void sub_80A6BFC(struct BattleAnimBgData *out, u8 unused)
{
- unk->bgTiles = gUnknown_0202305C;
- unk->bgTilemap = (u16 *)gUnknown_02023060;
+ out->bgTiles = gUnknown_0202305C;
+ out->bgTilemap = (u16 *)gUnknown_02023060;
if (IsContest())
{
- unk->paletteId = 14;
- unk->bgId = 1;
- unk->tilesOffset = 0;
- unk->unused = 0;
+ out->paletteId = 14;
+ out->bgId = 1;
+ out->tilesOffset = 0;
+ out->unused = 0;
}
else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
{
- unk->paletteId = 8;
- unk->bgId = 1;
- unk->tilesOffset = 0x200;
- unk->unused = 0;
+ out->paletteId = 8;
+ out->bgId = 1;
+ out->tilesOffset = 0x200;
+ out->unused = 0;
}
else
{
- unk->paletteId = 9;
- unk->bgId = 2;
- unk->tilesOffset = 0x300;
- unk->unused = 0;
+ out->paletteId = 9;
+ out->bgId = 2;
+ out->tilesOffset = 0x300;
+ out->unused = 0;
}
}
-void sub_80A6C68(u32 bgId)
+void ClearBattleAnimBg(u32 bgId)
{
- struct BattleAnimBgData unkStruct;
+ struct BattleAnimBgData bgAnimData;
- sub_80A6B90(&unkStruct, bgId);
- CpuFill32(0, unkStruct.bgTiles, 0x2000);
- LoadBgTiles(unkStruct.bgId, unkStruct.bgTiles, 0x2000, unkStruct.tilesOffset);
- FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 32, 64, 17);
- CopyBgTilemapBufferToVram(unkStruct.bgId);
+ GetBattleAnimBgData(&bgAnimData, bgId);
+ CpuFill32(0, bgAnimData.bgTiles, 0x2000);
+ LoadBgTiles(bgAnimData.bgId, bgAnimData.bgTiles, 0x2000, bgAnimData.tilesOffset);
+ FillBgTilemapBufferRect(bgAnimData.bgId, 0, 0, 0, 32, 64, 17);
+ CopyBgTilemapBufferToVram(bgAnimData.bgId);
}
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset)
@@ -1339,7 +1339,7 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
}
}
-u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7)
+u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7)
{
u32 selectedPalettes = 0;
u32 shift;
@@ -1392,54 +1392,54 @@ u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner,
return selectedPalettes;
}
-u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4)
+u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight)
{
- u32 var = 0;
+ u32 selectedPalettes = 0;
u32 shift;
if (IsContest())
{
- if (a1)
+ if (playerLeft)
{
- var |= 1 << 18;
- return var;
+ selectedPalettes |= 1 << 18;
+ return selectedPalettes;
}
}
else
{
- if (a1)
+ if (playerLeft)
{
if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)))
{
- var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16);
+ selectedPalettes |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16);
}
}
- if (a2)
+ if (playerRight)
{
if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)))
{
shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16;
- var |= 1 << shift;
+ selectedPalettes |= 1 << shift;
}
}
- if (a3)
+ if (opponentLeft)
{
if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)))
{
shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16;
- var |= 1 << shift;
+ selectedPalettes |= 1 << shift;
}
}
- if (a4)
+ if (opponentRight)
{
if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)))
{
shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16;
- var |= 1 << shift;
+ selectedPalettes |= 1 << shift;
}
}
}
- return var;
+ return selectedPalettes;
}
// Presumably something commented here, just returns arg
@@ -2261,7 +2261,7 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x
*y = (battlerY + partnerY) / 2;
}
-u8 sub_80A89C8(int battlerId, u8 spriteId, int species)
+u8 CreateInvisibleSpriteCopy(int battlerId, u8 spriteId, int species)
{
u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
gSprites[newSpriteId] = gSprites[spriteId];
@@ -2273,7 +2273,7 @@ u8 sub_80A89C8(int battlerId, u8 spriteId, int species)
return newSpriteId;
}
-void sub_80A8A6C(struct Sprite *sprite)
+void AnimUnused_80A8A6C(struct Sprite *sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
@@ -2295,7 +2295,8 @@ void sub_80A8A6C(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinearAndFlicker;
}
-void sub_80A8AEC(struct Sprite *sprite)
+// Used by three different unused battle anim sprite templates.
+void AnimUnused_80A8AEC(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c
index e32ff3151..60ec5b083 100644
--- a/src/battle_anim_normal.c
+++ b/src/battle_anim_normal.c
@@ -12,7 +12,7 @@ static void AnimSimplePaletteBlend_Step(struct Sprite *);
static void AnimComplexPaletteBlend(struct Sprite *);
static void AnimComplexPaletteBlend_Step1(struct Sprite *);
static void AnimComplexPaletteBlend_Step2(struct Sprite *);
-static void sub_81159B4(struct Sprite *);
+static void AnimUnused_81159B4(struct Sprite *);
static void AnimShakeMonOrBattleTerrain(struct Sprite *);
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *);
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void);
@@ -92,7 +92,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate =
.callback = AnimComplexPaletteBlend,
};
-static const union AnimCmd gUnknown_085972A4[] =
+static const union AnimCmd sAnim_Unused_085972A4[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3),
@@ -102,21 +102,21 @@ static const union AnimCmd gUnknown_085972A4[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const gUnknown_085972BC[] =
+static const union AnimCmd *const sAnims_Unused_085972BC[] =
{
- gUnknown_085972A4,
+ sAnim_Unused_085972A4,
};
// Unused
-const struct SpriteTemplate gUnknown_085972C0 =
+const struct SpriteTemplate gUnusedSpriteTemplate_085972C0 =
{
.tileTag = ANIM_TAG_SPARKLE_4,
.paletteTag = ANIM_TAG_SPARKLE_4,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gUnknown_085972BC,
+ .anims = sAnims_Unused_085972BC,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81159B4,
+ .callback = AnimUnused_81159B4,
};
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
@@ -304,7 +304,7 @@ static void AnimConfusionDuck_Step(struct Sprite *sprite)
// arg 4: blend color
static void AnimSimplePaletteBlend(struct Sprite *sprite)
{
- u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
+ u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]);
BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]);
sprite->invisible = TRUE;
sprite->callback = AnimSimplePaletteBlend_Step;
@@ -319,7 +319,7 @@ static void AnimSimplePaletteBlend(struct Sprite *sprite)
// 4: gBattleAnimTarget partner OBJ palette
// 5: BG palette 4
// 6: BG palette 5
-u32 UnpackSelectedBattleAnimPalettes(s16 selector)
+u32 UnpackSelectedBattleBgPalettes(s16 selector)
{
u8 battleBackground = selector & 1;
u8 attacker = (selector >> 1) & 1;
@@ -328,7 +328,7 @@ u32 UnpackSelectedBattleAnimPalettes(s16 selector)
u8 targetPartner = (selector >> 4) & 1;
u8 arg5 = (selector >> 5) & 1;
u8 arg6 = (selector >> 6) & 1;
- return sub_80A75AC(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
+ return GetBattleBgPalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
}
static void AnimSimplePaletteBlend_Step(struct Sprite *sprite)
@@ -350,7 +350,7 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite)
sprite->data[6] = gBattleAnimArgs[6];
sprite->data[7] = gBattleAnimArgs[0];
- selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
+ selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]);
BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]);
sprite->invisible = TRUE;
sprite->callback = AnimComplexPaletteBlend_Step1;
@@ -375,7 +375,7 @@ static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite)
return;
}
- selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
+ selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]);
if (sprite->data[1] & 0x100)
BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]);
else
@@ -392,13 +392,13 @@ static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite)
if (!gPaletteFade.active)
{
- selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
+ selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]);
BlendPalettes(selectedPalettes, 0, 0);
DestroyAnimSprite(sprite);
}
}
-static void sub_81159B4(struct Sprite *sprite)
+static void AnimUnused_81159B4(struct Sprite *sprite)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
@@ -442,7 +442,7 @@ void AnimTask_BlendColorCycle(u8 taskId)
static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
{
- u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].tPalSelector);
+ u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gTasks[taskId].tPalSelector);
BeginNormalPaletteFade(
selectedPalettes,
gTasks[taskId].tDelay,
@@ -721,7 +721,7 @@ void AnimTask_InvertScreenColor(u8 taskId)
u8 targetBattler = gBattleAnimTarget;
if (gBattleAnimArgs[0] & 0x100)
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
if (gBattleAnimArgs[1] & 0x100)
selectedPalettes |= (0x10000 << attackerBattler);
@@ -733,7 +733,7 @@ void AnimTask_InvertScreenColor(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8115F94(u8 taskId)
+void UnusedAnimTask_8115F94(u8 taskId)
{
u8 attackerBattler;
u8 targetBattler;
diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c
index 3f451998c..2e7844f76 100644
--- a/src/battle_anim_psychic.c
+++ b/src/battle_anim_psychic.c
@@ -565,14 +565,14 @@ static void AnimDefensiveWall_Step5(struct Sprite *sprite)
u8 battler = battlerCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
u8 rank = GetBattlerSpriteBGPriorityRank(battler);
int var0 = 1;
- u8 toBG_2 = (rank ^ var0) != 0;
+ bool8 toBG2 = (rank ^ var0) != 0;
if (IsBattlerSpriteVisible(battler))
- sub_80A477C(toBG_2);
+ ResetBattleAnimBg(toBG2);
battler = battlerCopy ^ 2;
if (IsBattlerSpriteVisible(battler))
- sub_80A477C(toBG_2 ^ var0);
+ ResetBattleAnimBg(toBG2 ^ var0);
}
sprite->callback = DestroyAnimSprite;
@@ -836,7 +836,7 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId)
}
}
-static void sub_810FB60(struct Sprite *sprite)
+static void AnimRedX_Step(struct Sprite *sprite)
{
if (sprite->data[1] > sprite->data[0] - 10)
sprite->invisible = sprite->data[1] & 1;
@@ -856,7 +856,7 @@ static void AnimRedX(struct Sprite *sprite)
}
sprite->data[0] = gBattleAnimArgs[1];
- sprite->callback = sub_810FB60;
+ sprite->callback = AnimRedX_Step;
}
void AnimTask_SkillSwap(u8 taskId)
diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c
index 64a84d580..245fb43a2 100644
--- a/src/battle_anim_rock.c
+++ b/src/battle_anim_rock.c
@@ -24,7 +24,7 @@ static void AnimRockScatter_Step(struct Sprite *sprite);
static void AnimParticleInVortex(struct Sprite *);
static void AnimParticleInVortex_Step(struct Sprite *sprite);
static void AnimTask_LoadSandstormBackground_Step(u8 taskId);
-static void sub_8111214(struct Task *task);
+static void CreateRolloutDirtSprite(struct Task *task);
static u8 GetRolloutCounter(void);
static const union AnimCmd sAnim_FlyingRock_0[] =
@@ -411,7 +411,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Sandstorm, animBg.tilesOffset);
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Sandstorm, 0);
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32);
@@ -470,8 +470,8 @@ static void AnimTask_LoadSandstormBackground_Step(u8 taskId)
}
break;
case 3:
- GetDefaultBattleAnimBgData(&animBg);
- sub_80A6C68(animBg.bgId);
+ GetBattleAnimBg1Data(&animBg);
+ ClearBattleAnimBg(animBg.bgId);
gTasks[taskId].data[12]++;
break;
case 4:
@@ -659,7 +659,7 @@ static void AnimTask_Rollout_Step(u8 taskId)
if (++task->data[9] >= task->data[10])
{
task->data[9] = 0;
- sub_8111214(task);
+ CreateRolloutDirtSprite(task);
task->data[13] += task->data[14];
PlaySE12WithPanning(SE_M_DIG, task->data[13]);
}
@@ -676,7 +676,7 @@ static void AnimTask_Rollout_Step(u8 taskId)
}
}
-static void sub_8111214(struct Task *task)
+static void CreateRolloutDirtSprite(struct Task *task)
{
const struct SpriteTemplate *spriteTemplate;
int tileOffset;
diff --git a/src/battle_anim_smokescreen.c b/src/battle_anim_smokescreen.c
index 4120dda72..ea7f94843 100644
--- a/src/battle_anim_smokescreen.c
+++ b/src/battle_anim_smokescreen.c
@@ -125,7 +125,7 @@ const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow =
.data = gEnemyMonShadow_Gfx, .size = 0x80, .tag = 55129
};
-static const struct OamData gUnknown_0831C6A8 =
+static const struct OamData sOamData_EnemyShadow =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -146,7 +146,7 @@ const struct SpriteTemplate gSpriteTemplate_EnemyShadow =
{
.tileTag = 55129,
.paletteTag = 55039,
- .oam = &gUnknown_0831C6A8,
+ .oam = &sOamData_EnemyShadow,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c
index 56a8afa53..9221116ba 100644
--- a/src/battle_anim_status_effects.c
+++ b/src/battle_anim_status_effects.c
@@ -17,18 +17,16 @@ extern const u8 *const gBattleAnims_StatusConditions[];
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
extern const struct OamData gOamData_AffineOff_ObjBlend_64x64;
-// This file's functions.
-static void sub_80A9DB4(u8 taskId);
+static void UnusedTask_80A9DB4(u8 taskId);
static void AnimTask_FrozenIceCube_Step1(u8 taskId);
static void AnimTask_FrozenIceCube_Step2(u8 taskId);
static void AnimTask_FrozenIceCube_Step3(u8 taskId);
static void AnimTask_FrozenIceCube_Step4(u8 taskId);
static void Task_DoStatusAnimation(u8 taskId);
-static void sub_80A9E44(struct Sprite *sprite);
-static void sub_80A9E78(struct Sprite *sprite);
+static void AnimUnused_80A9E44(struct Sprite *sprite);
+static void AnimUnused_80A9E44_Step(struct Sprite *sprite);
-// const rom data
-static const union AnimCmd sSpriteAnim_853EDE4[] =
+static const union AnimCmd sAnim_Unused_853EDE4[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(4, 3),
@@ -37,33 +35,33 @@ static const union AnimCmd sSpriteAnim_853EDE4[] =
ANIMCMD_JUMP(0)
};
-static const union AnimCmd *const sSpriteAnimTable_853EDF8[] =
+static const union AnimCmd *const sAnims_Unused_853EDF8[] =
{
- sSpriteAnim_853EDE4
+ sAnim_Unused_853EDE4
};
// Unused
-const struct SpriteTemplate gUnknown_0853EDFC =
+const struct SpriteTemplate gUnusedSpriteTemplate_0853EDFC =
{
.tileTag = ANIM_TAG_ORB,
.paletteTag = ANIM_TAG_ORB,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
- .anims = sSpriteAnimTable_853EDF8,
+ .anims = sAnims_Unused_853EDF8,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8AEC,
+ .callback = AnimUnused_80A8AEC,
};
// Unused
-const struct SpriteTemplate gUnknown_0853EE14 =
+const struct SpriteTemplate gUnusedSpriteTemplate_0853EE14 =
{
.tileTag = ANIM_TAG_ORB,
.paletteTag = ANIM_TAG_ORB,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
- .anims = sSpriteAnimTable_853EDF8,
+ .anims = sAnims_Unused_853EDF8,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8A6C,
+ .callback = AnimUnused_80A8A6C,
};
static const union AnimCmd sAnim_WeatherBallNormal[] =
@@ -99,7 +97,7 @@ const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
.callback = AnimWeatherBallDown,
};
-static const union AnimCmd sSpriteAnim_853EE68[] =
+static const union AnimCmd sAnim_SpinningSparkle[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3),
@@ -109,9 +107,9 @@ static const union AnimCmd sSpriteAnim_853EE68[] =
ANIMCMD_END
};
-static const union AnimCmd *const sSpriteAnimTable_853EE80[] =
+static const union AnimCmd *const sAnims_SpinningSparkle[] =
{
- sSpriteAnim_853EE68
+ sAnim_SpinningSparkle
};
const struct SpriteTemplate gSpinningSparkleSpriteTemplate =
@@ -119,14 +117,14 @@ const struct SpriteTemplate gSpinningSparkleSpriteTemplate =
.tileTag = ANIM_TAG_SPARKLE_4,
.paletteTag = ANIM_TAG_SPARKLE_4,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = sSpriteAnimTable_853EE80,
+ .anims = sAnims_SpinningSparkle,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSpinningSparkle,
};
// Unused
-const struct SpriteTemplate gUnknown_0853EE9C =
+const struct SpriteTemplate gUnusedSpriteTemplate_0853EE9C =
{
.tileTag = ANIM_TAG_MONSTER_FOOT,
.paletteTag = ANIM_TAG_MONSTER_FOOT,
@@ -134,78 +132,79 @@ const struct SpriteTemplate gUnknown_0853EE9C =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8AEC,
+ .callback = AnimUnused_80A8AEC,
};
-static const union AnimCmd sSpriteAnim_853EEB4[] =
+static const union AnimCmd sAnim_Unused_853EEB4[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0)
};
-static const union AnimCmd sSpriteAnim_853EEBC[] =
+static const union AnimCmd sAnim_Unused_853EEBC[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0)
};
-static const union AnimCmd sSpriteAnim_853EEC4[] =
+static const union AnimCmd sAnim_Unused_853EEC4[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0)
};
-static const union AnimCmd *const sSpriteAnimTable_853EECC[] =
+static const union AnimCmd *const sAnims_Unused_853EECC[] =
{
- sSpriteAnim_853EEB4,
- sSpriteAnim_853EEBC,
- sSpriteAnim_853EEC4
+ sAnim_Unused_853EEB4,
+ sAnim_Unused_853EEBC,
+ sAnim_Unused_853EEC4,
};
// Unused
-const struct SpriteTemplate gUnknown_0853EED8 =
+const struct SpriteTemplate gUnusedSpriteTemplate_0853EED8 =
{
.tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = sSpriteAnimTable_853EECC,
+ .anims = sAnims_Unused_853EECC,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8AEC,
+ .callback = AnimUnused_80A8AEC,
};
-static const union AnimCmd sSpriteAnim_853EEF0[] =
+static const union AnimCmd sAnim_Unused_853EEF0[] =
{
ANIMCMD_FRAME(0, 15),
ANIMCMD_JUMP(0)
};
-static const union AnimCmd *const sSpriteAnimTable_853EEF8[] =
+static const union AnimCmd *const sAnims_Unused_853EEF8[] =
{
- sSpriteAnim_853EEF0
+ sAnim_Unused_853EEF0
};
-static const union AffineAnimCmd sSpriteAffineAnim_853EEFC[] =
+static const union AffineAnimCmd sAffineAnim_Unused_853EEFC[] =
{
AFFINEANIMCMD_FRAME(96, 96, 0, 0),
AFFINEANIMCMD_FRAME(2, 2, 0, 1),
AFFINEANIMCMD_JUMP(1)
};
-static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] =
+static const union AffineAnimCmd *const sAffineAnims_Unused_853EEF8[] =
{
- sSpriteAffineAnim_853EEFC
+ sAffineAnim_Unused_853EEFC
};
-const struct SpriteTemplate gUnknown_0853EF18 =
+// Unused
+const struct SpriteTemplate gUnusedSpriteTemplate_0853EF18 =
{
.tileTag = ANIM_TAG_ORB,
.paletteTag = ANIM_TAG_ORB,
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
- .anims = sSpriteAnimTable_853EEF8,
+ .anims = sAnims_Unused_853EEF8,
.images = NULL,
- .affineAnims = sSpriteAffineAnimTable_853EEF8,
- .callback = sub_80A8A6C,
+ .affineAnims = sAffineAnims_Unused_853EEF8,
+ .callback = AnimUnused_80A8A6C,
};
static const struct Subsprite sFrozenIceCubeSubsprites[] =
@@ -260,7 +259,7 @@ static const struct SpriteTemplate gFrozenIceCubeSpriteTemplate =
.callback = SpriteCallbackDummy,
};
-static const struct SpriteTemplate gUnknown_0853EF60 =
+static const struct SpriteTemplate gUnusedSpriteTemplate_0853EF60 =
{
.tileTag = ANIM_TAG_CIRCLE_IMPACT,
.paletteTag = ANIM_TAG_CIRCLE_IMPACT,
@@ -268,14 +267,14 @@ static const struct SpriteTemplate gUnknown_0853EF60 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A9E44,
+ .callback = AnimUnused_80A9E44,
};
// Unused
-u8 sub_80A9C70(u8 battlerId, bool8 b)
+u8 Unused_80A9C70(u8 battlerId, bool8 b)
{
u8 battlerSpriteId = gBattlerSpriteIds[battlerId];
- u8 taskId = CreateTask(sub_80A9DB4, 10);
+ u8 taskId = CreateTask(UnusedTask_80A9DB4, 10);
u8 spriteId2;
u8 i;
@@ -287,7 +286,7 @@ u8 sub_80A9C70(u8 battlerId, bool8 b)
gTasks[taskId].data[1] = RGB_RED;
for (i = 0; i < 10; i++)
{
- spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0);
+ spriteId2 = CreateSprite(&gUnusedSpriteTemplate_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0);
gSprites[spriteId2].data[0] = i * 51;
gSprites[spriteId2].data[1] = -256;
gSprites[spriteId2].invisible = TRUE;
@@ -300,7 +299,7 @@ u8 sub_80A9C70(u8 battlerId, bool8 b)
gTasks[taskId].data[1] = RGB_BLUE;
for (i = 0; i < 10; i++)
{
- spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0);
+ spriteId2 = CreateSprite(&gUnusedSpriteTemplate_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0);
gSprites[spriteId2].data[0] = i * 51;
gSprites[spriteId2].data[1] = 256;
gSprites[spriteId2].invisible = TRUE;
@@ -312,7 +311,7 @@ u8 sub_80A9C70(u8 battlerId, bool8 b)
return taskId;
}
-static void sub_80A9DB4(u8 taskId)
+static void UnusedTask_80A9DB4(u8 taskId)
{
if (gTasks[taskId].data[2] == 2)
{
@@ -345,13 +344,13 @@ static void sub_80A9DB4(u8 taskId)
}
}
-static void sub_80A9E44(struct Sprite *sprite)
+static void AnimUnused_80A9E44(struct Sprite *sprite)
{
if (sprite->data[6] == 0)
{
sprite->invisible = FALSE;
- sprite->callback = sub_80A9E78;
- sub_80A9E78(sprite);
+ sprite->callback = AnimUnused_80A9E44_Step;
+ AnimUnused_80A9E44_Step(sprite);
}
else
{
@@ -359,7 +358,7 @@ static void sub_80A9E44(struct Sprite *sprite)
}
}
-static void sub_80A9E78(struct Sprite *sprite)
+static void AnimUnused_80A9E44_Step(struct Sprite *sprite)
{
sprite->pos2.x = Cos(sprite->data[0], 32);
sprite->pos2.y = Sin(sprite->data[0], 8);
@@ -538,8 +537,8 @@ void AnimTask_StatsChange(u8 taskId)
gBattleAnimArgs[2] = 0;
gBattleAnimArgs[3] = 0;
gBattleAnimArgs[4] = sharply;
- gTasks[taskId].func = sub_8116EB4;
- sub_8116EB4(taskId);
+ gTasks[taskId].func = InitStatsChangeAnimation;
+ InitStatsChangeAnimation(taskId);
}
#undef CASE
diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c
index cc8c3354e..5b355c4bd 100755
--- a/src/battle_anim_throw.c
+++ b/src/battle_anim_throw.c
@@ -48,7 +48,7 @@ enum {
SHINY_STAR_DIAGONAL,
};
-static void sub_8170660(u8);
+static void AnimTask_UnusedLevelUpHealthBox_Step(u8);
static void AnimTask_FlashHealthboxOnLevelUp_Step(u8);
static void AnimTask_ThrowBall_Step(u8);
static void SpriteCB_Ball_Throw(struct Sprite *);
@@ -429,9 +429,12 @@ static const struct SpriteTemplate sSafariRockSpriteTemplate =
extern const struct SpriteTemplate gWishStarSpriteTemplate;
extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate;
-void unref_sub_8170478(u8 taskId)
+// This is an unused function, but it seems likely that it was
+// intended to be an additional effect during the level-up animation.
+// It is an upward blue gradient effect on the mon's healthbox.
+void AnimTask_UnusedLevelUpHealthBox(u8 taskId)
{
- struct BattleAnimBgData unknownStruct;
+ struct BattleAnimBgData animBgData;
u8 healthBoxSpriteId;
u8 battler;
u8 spriteId1, spriteId2, spriteId3, spriteId4;
@@ -464,20 +467,20 @@ void unref_sub_8170478(u8 taskId)
gSprites[spriteId3].callback = SpriteCallbackDummy;
gSprites[spriteId4].callback = SpriteCallbackDummy;
- GetDefaultBattleAnimBgData(&unknownStruct);
- AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C);
- AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset);
- LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32);
+ GetBattleAnimBg1Data(&animBgData);
+ AnimLoadCompressedBgTilemap(animBgData.bgId, UnusedLevelupAnimationTilemap);
+ AnimLoadCompressedBgGfx(animBgData.bgId, UnusedLevelupAnimationGfx, animBgData.tilesOffset);
+ LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32);
gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32;
gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32;
gTasks[taskId].data[1] = 640;
gTasks[taskId].data[0] = spriteId3;
gTasks[taskId].data[2] = spriteId4;
- gTasks[taskId].func = sub_8170660;
+ gTasks[taskId].func = AnimTask_UnusedLevelUpHealthBox_Step;
}
-static void sub_8170660(u8 taskId)
+static void AnimTask_UnusedLevelUpHealthBox_Step(u8 taskId)
{
u8 spriteId1, spriteId2;
u8 battler;
@@ -511,7 +514,7 @@ static void sub_8170660(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_80A477C(0);
+ ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
@@ -686,7 +689,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId)
priority = gSprites[spriteId].oam.priority;
subpriority = gSprites[spriteId].subpriority;
gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
gTasks[taskId].data[11] = LaunchBallFadeMonTask(FALSE, gBattleAnimAttacker, selectedPalettes, ballId);
gTasks[taskId].data[0]++;
break;
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c
index 53ed5698a..9b2b2e03c 100644
--- a/src/battle_anim_utility_funcs.c
+++ b/src/battle_anim_utility_funcs.c
@@ -29,16 +29,16 @@ static void AnimTask_HardwarePaletteFade_Step(u8);
static void AnimTask_TraceMonBlended_Step(u8);
static void AnimMonTrace(struct Sprite*);
static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8);
-static void sub_8116F04(u8);
-static void sub_81170EC(u8);
-static void sub_81172EC(u8);
+static void StatsChangeAnimation_Step1(u8);
+static void StatsChangeAnimation_Step2(u8);
+static void StatsChangeAnimation_Step3(u8);
static void AnimTask_Flash_Step(u8);
-static void sub_81175C4(u32, u16);
+static void SetPalettesToColor(u32, u16);
static void AnimTask_UpdateSlidingBg(u8);
-static void sub_8117A60(u8);
+static void UpdateMonScrollingBgMask(u8);
static void AnimTask_WaitAndRestoreVisibility(u8);
-const u16 gUnknown_08597418 = RGB(31, 31, 31);
+static const u16 sCurseLinesPalette[] = { RGB_WHITE };
// These belong in battle_intro.c, but putting them there causes 2 bytes of alignment padding
// between the two .rodata segments. Perhaps battle_intro.c actually belongs in this file, too.
@@ -47,8 +47,8 @@ const u8 gBattleAnimBgCntGet[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFS
void AnimTask_BlendBattleAnimPal(u8 taskId)
{
- u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
- selectedPalettes |= sub_80A76C4((gBattleAnimArgs[0] >> 7) & 1,
+ u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]);
+ selectedPalettes |= GetBattleMonSpritePalettesMask((gBattleAnimArgs[0] >> 7) & 1,
(gBattleAnimArgs[0] >> 8) & 1,
(gBattleAnimArgs[0] >> 9) & 1,
(gBattleAnimArgs[0] >> 10) & 1);
@@ -62,7 +62,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
u8 animBattlers[2];
animBattlers[1] = 0xFF;
- selectedPalettes = UnpackSelectedBattleAnimPalettes(1);
+ selectedPalettes = UnpackSelectedBattleBgPalettes(1);
switch (gBattleAnimArgs[0])
{
case 2:
@@ -105,7 +105,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
void AnimTask_SetCamouflageBlend(u8 taskId)
{
- u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
+ u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]);
switch (gBattleTerrain)
{
case BATTLE_TERRAIN_GRASS:
@@ -278,7 +278,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
int spriteId, newSpriteId;
u16 var0;
u16 bg1Cnt;
- struct BattleAnimBgData unknownStruct;
+ struct BattleAnimBgData animBgData;
var0 = 0;
gBattle_WIN0H = 0;
@@ -329,11 +329,11 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
}
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
- newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species);
- GetDefaultBattleAnimBgData(&unknownStruct);
- AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gUnknown_08C20684, 0);
- AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset);
- LoadPalette(&gUnknown_08597418, unknownStruct.paletteId * 16 + 1, 2);
+ newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species);
+ GetBattleAnimBg1Data(&animBgData);
+ AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleAnimMaskTilemap_Curse, 0);
+ AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnimMaskImage_Curse, animBgData.tilesOffset);
+ LoadPalette(sCurseLinesPalette, animBgData.paletteId * 16 + 1, 2);
gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32;
gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
@@ -344,7 +344,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
{
- struct BattleAnimBgData unknownStruct;
+ struct BattleAnimBgData animBgData;
struct Sprite *sprite;
u16 bg1Cnt;
@@ -356,7 +356,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
gBattle_BG1_Y += 64;
if (++gTasks[taskId].data[11] == 4)
{
- sub_80A477C(0);
+ ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
@@ -377,8 +377,8 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
sprite = &gSprites[gTasks[taskId].data[0]];
DestroySprite(sprite);
- GetDefaultBattleAnimBgData(&unknownStruct);
- sub_80A6C68(unknownStruct.bgId);
+ GetBattleAnimBg1Data(&animBgData);
+ ClearBattleAnimBg(animBgData.bgId);
if (gTasks[taskId].data[6] == 1)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
@@ -388,7 +388,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
}
}
-void sub_8116EB4(u8 taskId)
+void InitStatsChangeAnimation(u8 taskId)
{
u8 i;
@@ -396,10 +396,10 @@ void sub_8116EB4(u8 taskId)
for (i = 0; i < 8; i++)
sAnimStatsChangeData->data[i] = gBattleAnimArgs[i];
- gTasks[taskId].func = sub_8116F04;
+ gTasks[taskId].func = StatsChangeAnimation_Step1;
}
-static void sub_8116F04(u8 taskId)
+static void StatsChangeAnimation_Step1(u8 taskId)
{
if (sAnimStatsChangeData->data[2] == 0)
sAnimStatsChangeData->battler1 = gBattleAnimAttacker;
@@ -450,56 +450,56 @@ static void sub_8116F04(u8 taskId)
sAnimStatsChangeData->species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[sAnimStatsChangeData->battler1]], MON_DATA_SPECIES);
}
- gTasks[taskId].func = sub_81170EC;
+ gTasks[taskId].func = StatsChangeAnimation_Step2;
}
-static void sub_81170EC(u8 taskId)
+static void StatsChangeAnimation_Step2(u8 taskId)
{
- struct BattleAnimBgData unknownStruct;
+ struct BattleAnimBgData animBgData;
u8 spriteId, spriteId2;
u8 battlerSpriteId;
spriteId2 = 0;
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
- spriteId = sub_80A89C8(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
+ spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
if (sAnimStatsChangeData->data[3])
{
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
- spriteId2 = sub_80A89C8(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
+ spriteId2 = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
}
- GetDefaultBattleAnimBgData(&unknownStruct);
+ GetBattleAnimBg1Data(&animBgData);
if (sAnimStatsChangeData->data[0] == 0)
- AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gBattleStatMask1_Tilemap, 0);
+ AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleStatMask1_Tilemap, 0);
else
- AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gBattleStatMask2_Tilemap, 0);
+ AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleStatMask2_Tilemap, 0);
- AnimLoadCompressedBgGfx(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset);
+ AnimLoadCompressedBgGfx(animBgData.bgId, gBattleStatMask_Gfx, animBgData.tilesOffset);
switch (sAnimStatsChangeData->data[1])
{
case 0:
- LoadCompressedPalette(gBattleStatMask2_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask2_Pal, animBgData.paletteId * 16, 32);
break;
case 1:
- LoadCompressedPalette(gBattleStatMask1_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask1_Pal, animBgData.paletteId * 16, 32);
break;
case 2:
- LoadCompressedPalette(gBattleStatMask3_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask3_Pal, animBgData.paletteId * 16, 32);
break;
case 3:
- LoadCompressedPalette(gBattleStatMask4_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask4_Pal, animBgData.paletteId * 16, 32);
break;
case 4:
- LoadCompressedPalette(gBattleStatMask6_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask6_Pal, animBgData.paletteId * 16, 32);
break;
case 5:
- LoadCompressedPalette(gBattleStatMask7_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask7_Pal, animBgData.paletteId * 16, 32);
break;
case 6:
- LoadCompressedPalette(gBattleStatMask8_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask8_Pal, animBgData.paletteId * 16, 32);
break;
default:
- LoadCompressedPalette(gBattleStatMask5_Pal, unknownStruct.paletteId * 16, 32);
+ LoadCompressedPalette(gBattleStatMask5_Pal, animBgData.paletteId * 16, 32);
break;
}
@@ -532,7 +532,7 @@ static void sub_81170EC(u8 taskId)
gTasks[taskId].data[3] = spriteId2;
gTasks[taskId].data[6] = sAnimStatsChangeData->higherPriority;
gTasks[taskId].data[7] = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
- gTasks[taskId].func = sub_81172EC;
+ gTasks[taskId].func = StatsChangeAnimation_Step3;
if (sAnimStatsChangeData->data[0] == 0)
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64));
@@ -540,7 +540,7 @@ static void sub_81170EC(u8 taskId)
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64));
}
-static void sub_81172EC(u8 taskId)
+static void StatsChangeAnimation_Step3(u8 taskId)
{
gBattle_BG1_Y += gTasks[taskId].data[1];
@@ -568,7 +568,7 @@ static void sub_81172EC(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_80A477C(0);
+ ResetBattleAnimBg(0);
gTasks[taskId].data[15]++;
}
}
@@ -603,12 +603,12 @@ static void sub_81172EC(u8 taskId)
void AnimTask_Flash(u8 taskId)
{
- u32 selectedPalettes = sub_80A76C4(1, 1, 1, 1);
- sub_81175C4(selectedPalettes, 0);
+ u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
+ SetPalettesToColor(selectedPalettes, RGB_BLACK);
gTasks[taskId].data[14] = selectedPalettes >> 16;
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
- sub_81175C4(selectedPalettes, 0xFFFF);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
+ SetPalettesToColor(selectedPalettes, RGB_WHITEALPHA);
gTasks[taskId].data[15] = selectedPalettes;
gTasks[taskId].data[0] = 0;
@@ -662,7 +662,7 @@ static void AnimTask_Flash_Step(u8 taskId)
}
}
-static void sub_81175C4(u32 selectedPalettes, u16 color)
+static void SetPalettesToColor(u32 selectedPalettes, u16 color)
{
u16 i;
@@ -756,8 +756,6 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-#define tInvisible gBattleAnimArgs[0];
-
// For hiding or subsequently revealing all other battlers
void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId)
{
@@ -766,27 +764,25 @@ void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId)
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
{
if (battler != gBattleAnimAttacker && IsBattlerSpriteVisible(battler))
- gSprites[gBattlerSpriteIds[battler]].invisible = tInvisible;
+ gSprites[gBattlerSpriteIds[battler]].invisible = gBattleAnimArgs[0];
}
DestroyAnimVisualTask(taskId);
}
-#undef tInvisible
-
-void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette)
+void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette)
{
u16 species;
u8 spriteId, spriteId2;
u16 bg1Cnt;
- struct BattleAnimBgData unknownStruct;
+ struct BattleAnimBgData animBgData;
u8 battler2;
spriteId2 = 0;
- battler2 = BATTLE_PARTNER(battler1);
+ battler2 = BATTLE_PARTNER(battler);
- if (IsContest() || (arg4 && !IsBattlerSpriteVisible(battler2)))
- arg4 = 0;
+ if (IsContest() || (includePartner && !IsBattlerSpriteVisible(battler2)))
+ includePartner = FALSE;
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
@@ -814,34 +810,34 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
}
else
{
- if (GetBattlerSide(battler1) != B_SIDE_PLAYER)
- species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
+ if (GetBattlerSide(battler) != B_SIDE_PLAYER)
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
else
- species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
}
- spriteId = sub_80A89C8(battler1, gBattlerSpriteIds[battler1], species);
- if (arg4)
- spriteId2 = sub_80A89C8(battler2, gBattlerSpriteIds[battler2], species);
+ spriteId = CreateInvisibleSpriteCopy(battler, gBattlerSpriteIds[battler], species);
+ if (includePartner)
+ spriteId2 = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species);
- GetDefaultBattleAnimBgData(&unknownStruct);
- AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, tilemap, 0);
- AnimLoadCompressedBgGfx(unknownStruct.bgId, gfx, unknownStruct.tilesOffset);
- LoadCompressedPalette(palette, unknownStruct.paletteId * 16, 32);
+ GetBattleAnimBg1Data(&animBgData);
+ AnimLoadCompressedBgTilemapHandleContest(&animBgData, tilemap, 0);
+ AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset);
+ LoadCompressedPalette(palette, animBgData.paletteId * 16, 32);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
- gTasks[taskId].data[1] = arg2;
- gTasks[taskId].data[4] = arg5;
- gTasks[taskId].data[5] = arg7;
- gTasks[taskId].data[6] = arg6;
+ gTasks[taskId].data[1] = scrollSpeed;
+ gTasks[taskId].data[4] = numFadeSteps;
+ gTasks[taskId].data[5] = duration;
+ gTasks[taskId].data[6] = fadeStepDelay;
gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].data[2] = arg4;
+ gTasks[taskId].data[2] = includePartner;
gTasks[taskId].data[3] = spriteId2;
- gTasks[taskId].func = sub_8117A60;
+ gTasks[taskId].func = UpdateMonScrollingBgMask;
}
-static void sub_8117A60(u8 taskId)
+static void UpdateMonScrollingBgMask(u8 taskId)
{
gTasks[taskId].data[13] += gTasks[taskId].data[1] < 0 ? -gTasks[taskId].data[1] : gTasks[taskId].data[1];
if (gTasks[taskId].data[1] < 0)
@@ -874,7 +870,7 @@ static void sub_8117A60(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_80A477C(0);
+ ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
@@ -927,7 +923,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId)
if (gBattleAnimArgs[0] == 0)
{
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
while ((selectedPalettes & 1) == 0)
{
selectedPalettes >>= 1;
@@ -954,7 +950,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId)
if (gBattleAnimArgs[0] == 0)
{
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
while ((selectedPalettes & 1) == 0)
{
selectedPalettes >>= 1;
@@ -981,7 +977,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId)
if (gBattleAnimArgs[0] == 0)
{
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
while ((selectedPalettes & 1) == 0)
{
selectedPalettes >>= 1;
diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c
index 058c1eaa3..43849645e 100644
--- a/src/battle_anim_water.c
+++ b/src/battle_anim_water.c
@@ -811,7 +811,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);
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
if (!IsContest())
{
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
@@ -884,7 +884,7 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
*BGptrX += gTasks[taskId].data[0];
*BGptrY += gTasks[taskId].data[1];
- GetDefaultBattleAnimBgData(&animBg);
+ GetBattleAnimBg1Data(&animBg);
gTasks[taskId].data[2] += gTasks[taskId].data[1];
if (++gTasks[taskId].data[5] == 4)
{
@@ -923,8 +923,8 @@ static void AnimTask_CreateSurfWave_Step2(u8 taskId)
u16 *BGptrY = &gBattle_BG1_Y;
if (gTasks[taskId].data[0] == 0)
{
- sub_80A6C68(1);
- sub_80A6C68(2);
+ ClearBattleAnimBg(1);
+ ClearBattleAnimBg(2);
gTasks[taskId].data[0]++;
}
else
diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c
index 4c4a010b2..31caf79cc 100644
--- a/src/berry_fix_program.c
+++ b/src/berry_fix_program.c
@@ -12,40 +12,42 @@
#include "text.h"
#include "menu.h"
#include "m4a.h"
+#include "constants/rgb.h"
-// Static type declarations
-
-typedef struct {
+struct {
u8 state;
- u8 unk1;
- u16 unk2;
+ u8 curScene;
+ u16 timer;
struct MultiBootParam mb;
-} berryfix_t;
-
-// Static RAM declarations
-
-static berryfix_t *berry_fix_mb_manager;
-
-// Static ROM declarations
-
-static void berry_fix_main(void);
-static void berry_fix_gpu_set(void);
-static int berry_fix_text_update(int);
-static void berry_fix_text_print(int);
-static void berry_fix_bg_hide(void);
+} static * sBerryFix;
-// .rodata
+static void BerryFix_Main(void);
+static void BerryFix_GpuSet(void);
+static int BerryFix_TrySetScene(int);
+static void BerryFix_SetScene(int);
+static void BerryFix_HideScene(void);
static const u8 sText_BerryProgramUpdate[] = _("Berry Program Update");
static const u8 sText_RubySapphire[] = _("Ruby/Sapphire");
static const u8 sText_Emerald[] = _("Emerald");
-
-static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _("The Berry Program on your POKéMON\nRuby/Sapphire Game Pak will be updated.\n{COLOR RED}{SHADOW LIGHT_RED}Press the A Button.");
-static const u8 sText_EnsureGBAConnectionMatches[] = _("Please ensure the connection of your\nGame Boy Advance system matches this.\n{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\nNO: Turn off the power and try again.");
-static const u8 sText_TurnOffPowerHoldingStartSelect[] = _("Please turn on the power of POKéMON\nRuby/Sapphire while holding START and\nSELECT simultaneously. Then, ensure\nthe picture above appears.");
-static const u8 sText_TransmittingPleaseWait[] = _("Transmitting. Please wait.\n{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\nunplug the Game Boy Advance Game\nLink Cable.");
-static const u8 sText_PleaseFollowInstructionsOnScreen[] = _("Please follow the instructions on your\nPOKéMON Ruby/Sapphire screen.");
-static const u8 sText_TransmissionFailureTryAgain[] = _("Transmission failure.\n{COLOR RED}{SHADOW LIGHT_RED}Please try again.");
+static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _("The Berry Program on your POKéMON\n"
+ "Ruby/Sapphire Game Pak will be updated.\n"
+ "{COLOR RED}{SHADOW LIGHT_RED}Press the A Button.");
+static const u8 sText_EnsureGBAConnectionMatches[] = _("Please ensure the connection of your\n"
+ "Game Boy Advance system matches this.\n"
+ "{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\n"
+ "NO: Turn off the power and try again.");
+static const u8 sText_TurnOffPowerHoldingStartSelect[] = _("Please turn on the power of POKéMON\n"
+ "Ruby/Sapphire while holding START and\n"
+ "SELECT simultaneously. Then, ensure\n"
+ "the picture above appears.");
+static const u8 sText_TransmittingPleaseWait[] = _("Transmitting. Please wait.\n"
+ "{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\n"
+ "unplug the Game Boy Advance Game\nLink Cable.");
+static const u8 sText_PleaseFollowInstructionsOnScreen[] = _("Please follow the instructions on your\n"
+ "POKéMON Ruby/Sapphire screen.");
+static const u8 sText_TransmissionFailureTryAgain[] = _("Transmission failure.\n"
+ "{COLOR RED}{SHADOW LIGHT_RED}Please try again.");
static const struct BgTemplate sBerryFixBgTemplates[] = {
{
@@ -108,52 +110,66 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = {
DUMMY_WIN_TEMPLATE
};
-static const u16 sUnknown_08618138[] = {
- 0x7fff, 0x7fff, 0x318c, 0x675a,
- 0x043c, 0x3aff, 0x0664, 0x4bd2,
- 0x6546, 0x7b14, 0x7fff, 0x318c,
- 0x675a, 0, 0, 0
+static const u16 sBerryFixPalColors[] = {
+ RGB_WHITE, RGB_WHITE, RGB(12, 12, 12), RGB(26, 26, 25),
+ RGB(28, 1, 1), RGB(31, 23, 14), RGB(4, 19, 1), RGB(18, 30, 18),
+ RGB(6, 10, 25), RGB(20, 24, 30), RGB_WHITE, RGB(12, 12, 12),
+ RGB(26, 26, 25), RGB_BLACK, RGB_BLACK, RGB_BLACK
};
static const u8 sBerryProgramTextColors[] = {TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3};
static const u8 sGameTitleTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_4};
-static const u8 *const sBerryProgramTexts[] = {
- sText_EnsureGBAConnectionMatches,
- sText_TurnOffPowerHoldingStartSelect,
- sText_TransmittingPleaseWait,
- sText_PleaseFollowInstructionsOnScreen,
- sText_TransmissionFailureTryAgain,
- sText_BerryProgramWillBeUpdatedPressA
+enum {
+ SCENE_ENSURE_CONNECT,
+ SCENE_TURN_OFF_POWER,
+ SCENE_TRANSMITTING,
+ SCENE_FOLLOW_INSTRUCT,
+ SCENE_TRANSMIT_FAILED,
+ SCENE_BEGIN,
+ SCENE_NONE
};
+static const u8 *const sBerryProgramTexts[] = {
+ [SCENE_ENSURE_CONNECT] = sText_EnsureGBAConnectionMatches,
+ [SCENE_TURN_OFF_POWER] = sText_TurnOffPowerHoldingStartSelect,
+ [SCENE_TRANSMITTING] = sText_TransmittingPleaseWait,
+ [SCENE_FOLLOW_INSTRUCT] = sText_PleaseFollowInstructionsOnScreen,
+ [SCENE_TRANSMIT_FAILED] = sText_TransmissionFailureTryAgain,
+ [SCENE_BEGIN] = sText_BerryProgramWillBeUpdatedPressA
+};
static const struct {
const u32 *gfx;
const u32 *tilemap;
- const u16 *pltt;
+ const u16 *palette;
} sBerryFixGraphics[] = {
- {
+ [SCENE_ENSURE_CONNECT] = {
gBerryFixGameboy_Gfx,
gBerryFixGameboy_Tilemap,
gBerryFixGameboy_Pal
- }, {
+ },
+ [SCENE_TURN_OFF_POWER] = {
gBerryFixGameboyLogo_Gfx,
gBerryFixGameboyLogo_Tilemap,
gBerryFixGameboyLogo_Pal
- }, {
+ },
+ [SCENE_TRANSMITTING] = {
gBerryFixGbaTransfer_Gfx,
gBerryFixGbaTransfer_Tilemap,
gBerryFixGbaTransfer_Pal
- }, {
+ },
+ [SCENE_FOLLOW_INSTRUCT] = {
gBerryFixGbaTransferHighlight_Gfx,
gBerryFixGbaTransferHighlight_Tilemap,
gBerryFixGbaTransferHighlight_Pal
- }, {
+ },
+ [SCENE_TRANSMIT_FAILED] = {
gBerryFixGbaTransferError_Gfx,
gBerryFixGbaTransferError_Tilemap,
gBerryFixGbaTransferError_Pal
- }, {
+ },
+ [SCENE_BEGIN] = {
gBerryFixWindow_Gfx,
gBerryFixWindow_Tilemap,
gBerryFixWindow_Pal
@@ -163,7 +179,16 @@ static const struct {
extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4];
extern const u8 gMultiBootProgram_BerryGlitchFix_End[];
-// .text
+enum {
+ MAINSTATE_INIT,
+ MAINSTATE_BEGIN,
+ MAINSTATE_CONNECT,
+ MAINSTATE_INIT_MULTIBOOT,
+ MAINSTATE_MULTIBOOT,
+ MAINSTATE_TRANSMIT,
+ MAINSTATE_EXIT,
+ MAINSTATE_FAILED,
+};
void CB2_InitBerryFixProgram(void)
{
@@ -175,81 +200,79 @@ void CB2_InitBerryFixProgram(void)
ResetTasks();
ScanlineEffect_Stop();
SetGpuReg(REG_OFFSET_DISPCNT, 0);
- berry_fix_mb_manager = AllocZeroed(0x50);
- berry_fix_mb_manager->state = 0;
- berry_fix_mb_manager->unk1 = 6;
- SetMainCallback2(berry_fix_main);
+ sBerryFix = AllocZeroed(sizeof(*sBerryFix));
+ sBerryFix->state = MAINSTATE_INIT;
+ sBerryFix->curScene = SCENE_NONE;
+ SetMainCallback2(BerryFix_Main);
}
-static void berry_fix_main(void)
+#define TryScene(sceneNum) BerryFix_TrySetScene(sceneNum) == (sceneNum)
+
+static void BerryFix_Main(void)
{
- switch (berry_fix_mb_manager->state)
+ switch (sBerryFix->state)
{
- case 0:
- berry_fix_gpu_set();
- berry_fix_mb_manager->state = 1;
+ case MAINSTATE_INIT:
+ BerryFix_GpuSet();
+ sBerryFix->state = MAINSTATE_BEGIN;
break;
- case 1:
- if (berry_fix_text_update(5) == 5 && (JOY_NEW(A_BUTTON)))
- {
- berry_fix_mb_manager->state = 2;
- }
+ case MAINSTATE_BEGIN:
+ if (TryScene(SCENE_BEGIN) && (JOY_NEW(A_BUTTON)))
+ sBerryFix->state = MAINSTATE_CONNECT;
break;
- case 2:
- if (berry_fix_text_update(0) == 0 && (JOY_NEW(A_BUTTON)))
- {
- berry_fix_mb_manager->state = 3;
- }
+ case MAINSTATE_CONNECT:
+ if (TryScene(SCENE_ENSURE_CONNECT) && (JOY_NEW(A_BUTTON)))
+ sBerryFix->state = MAINSTATE_INIT_MULTIBOOT;
break;
- case 3:
- if (berry_fix_text_update(1) == 1)
+ case MAINSTATE_INIT_MULTIBOOT:
+ if (TryScene(SCENE_TURN_OFF_POWER))
{
- berry_fix_mb_manager->mb.masterp = gMultiBootProgram_BerryGlitchFix_Start;
- berry_fix_mb_manager->mb.server_type = 0;
- MultiBootInit(&berry_fix_mb_manager->mb);
- berry_fix_mb_manager->unk2 = 0;
- berry_fix_mb_manager->state = 4;
+ sBerryFix->mb.masterp = gMultiBootProgram_BerryGlitchFix_Start;
+ sBerryFix->mb.server_type = 0;
+ MultiBootInit(&sBerryFix->mb);
+ sBerryFix->timer = 0;
+ sBerryFix->state = MAINSTATE_MULTIBOOT;
}
break;
- case 4:
- MultiBootMain(&berry_fix_mb_manager->mb);
- if (berry_fix_mb_manager->mb.probe_count != 0 || (!(berry_fix_mb_manager->mb.response_bit & 2) || !(berry_fix_mb_manager->mb.client_bit & 2)))
+ case MAINSTATE_MULTIBOOT:
+ MultiBootMain(&sBerryFix->mb);
+ if (sBerryFix->mb.probe_count != 0 || (!(sBerryFix->mb.response_bit & 2) || !(sBerryFix->mb.client_bit & 2)))
{
- berry_fix_mb_manager->unk2 = 0;
+ sBerryFix->timer = 0;
}
- else if (++ berry_fix_mb_manager->unk2 > 180)
+ else if (++sBerryFix->timer > 180)
{
- MultiBootStartMaster(&berry_fix_mb_manager->mb, gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE, (u32)(gMultiBootProgram_BerryGlitchFix_End - (gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE)), 4, 1);
- berry_fix_mb_manager->state = 5;
+ MultiBootStartMaster(&sBerryFix->mb,
+ gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE,
+ (u32)(gMultiBootProgram_BerryGlitchFix_End - (gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE)),
+ 4,
+ 1);
+ sBerryFix->state = MAINSTATE_TRANSMIT;
}
break;
- case 5:
- if (berry_fix_text_update(2) == 2) {
- MultiBootMain(&berry_fix_mb_manager->mb);
- if (MultiBootCheckComplete(&berry_fix_mb_manager->mb)) {
- berry_fix_mb_manager->state = 6;
- }
- else if (!(berry_fix_mb_manager->mb.client_bit & 2)) {
- berry_fix_mb_manager->state = 7;
- }
+ case MAINSTATE_TRANSMIT:
+ if (TryScene(SCENE_TRANSMITTING))
+ {
+ MultiBootMain(&sBerryFix->mb);
+
+ if (MultiBootCheckComplete(&sBerryFix->mb))
+ sBerryFix->state = MAINSTATE_EXIT;
+ else if (!(sBerryFix->mb.client_bit & 2))
+ sBerryFix->state = MAINSTATE_FAILED;
}
break;
- case 6:
- if (berry_fix_text_update(3) == 3 && JOY_NEW(A_BUTTON))
- {
+ case MAINSTATE_EXIT:
+ if (TryScene(SCENE_FOLLOW_INSTRUCT) && JOY_NEW(A_BUTTON))
DoSoftReset();
- }
break;
- case 7:
- if (berry_fix_text_update(4) == 4 && JOY_NEW(A_BUTTON))
- {
- berry_fix_mb_manager->state = 1;
- }
+ case MAINSTATE_FAILED:
+ if (TryScene(SCENE_TRANSMIT_FAILED) && JOY_NEW(A_BUTTON))
+ sBerryFix->state = MAINSTATE_BEGIN;
break;
}
}
-static void berry_fix_gpu_set(void)
+static void BerryFix_GpuSet(void)
{
s32 width, left;
@@ -274,26 +297,26 @@ static void berry_fix_gpu_set(void)
InitWindows(sBerryFixWindowTemplates);
DeactivateAllTextPrinters();
- DmaCopy32(3, sUnknown_08618138, BG_PLTT + 0x1E0, 0x20);
+ DmaCopy32(3, sBerryFixPalColors, BG_PLTT + 0x1E0, sizeof(sBerryFixPalColors));
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP);
FillWindowPixelBuffer(2, PIXEL_FILL(0));
FillWindowPixelBuffer(3, PIXEL_FILL(0));
- FillWindowPixelBuffer(0, PIXEL_FILL(0xA));
+ FillWindowPixelBuffer(0, PIXEL_FILL(10));
width = GetStringWidth(0, sText_Emerald, 0);
- left = (0x78 - width) / 2;
+ left = (120 - width) / 2;
AddTextPrinterParameterized3(2, 0, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_Emerald);
width = GetStringWidth(0, sText_RubySapphire, 0);
- left = (0x78 - width) / 2 + 0x78;
+ left = (120 - width) / 2 + 120;
AddTextPrinterParameterized3(2, 0, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire);
width = GetStringWidth(0, sText_RubySapphire, 0);
- left = (0x70 - width) / 2;
+ left = (112 - width) / 2;
AddTextPrinterParameterized3(3, 0, left, 0, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire);
width = GetStringWidth(1, sText_BerryProgramUpdate, 0);
- left = (0xD0 - width) / 2;
+ left = (208 - width) / 2;
AddTextPrinterParameterized3(0, 1, left, 2, sBerryProgramTextColors, TEXT_SPEED_FF, sText_BerryProgramUpdate);
CopyWindowToVram(2, 2);
@@ -301,56 +324,55 @@ static void berry_fix_gpu_set(void)
CopyWindowToVram(0, 2);
}
-static int berry_fix_text_update(int checkval)
+static int BerryFix_TrySetScene(int scene)
{
- if (berry_fix_mb_manager->unk1 == checkval)
- {
- return checkval;
- }
- if (berry_fix_mb_manager->unk1 == 6)
+ if (sBerryFix->curScene == scene)
+ return scene;
+
+ if (sBerryFix->curScene == SCENE_NONE)
{
- berry_fix_text_print(checkval);
- berry_fix_mb_manager->unk1 = checkval;
+ BerryFix_SetScene(scene);
+ sBerryFix->curScene = scene;
}
else
{
- berry_fix_bg_hide();
- berry_fix_mb_manager->unk1 = 6;
+ BerryFix_HideScene();
+ sBerryFix->curScene = SCENE_NONE;
}
- return berry_fix_mb_manager->unk1;
+ return sBerryFix->curScene;
}
-static void berry_fix_text_print(int scene)
+static void BerryFix_SetScene(int scene)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
- FillWindowPixelBuffer(1, PIXEL_FILL(0xA));
+ FillWindowPixelBuffer(1, PIXEL_FILL(10));
AddTextPrinterParameterized3(1, 1, 0, 0, sBerryProgramTextColors, -1, sBerryProgramTexts[scene]);
PutWindowTilemap(1);
CopyWindowToVram(1, 2);
switch (scene)
{
- case 0:
- case 2:
- case 3:
- case 4:
- PutWindowTilemap(2);
- break;
- case 1:
- PutWindowTilemap(3);
- break;
- case 5:
- PutWindowTilemap(0);
- break;
+ case SCENE_ENSURE_CONNECT:
+ case SCENE_TRANSMITTING:
+ case SCENE_FOLLOW_INSTRUCT:
+ case SCENE_TRANSMIT_FAILED:
+ PutWindowTilemap(2);
+ break;
+ case SCENE_TURN_OFF_POWER:
+ PutWindowTilemap(3);
+ break;
+ case SCENE_BEGIN:
+ PutWindowTilemap(0);
+ break;
}
CopyBgTilemapBufferToVram(0);
LZ77UnCompVram(sBerryFixGraphics[scene].gfx, (void *)BG_CHAR_ADDR(1));
LZ77UnCompVram(sBerryFixGraphics[scene].tilemap, (void *)BG_SCREEN_ADDR(31));
- CpuCopy32(sBerryFixGraphics[scene].pltt, (void *)BG_PLTT, 0x100);
+ CpuCopy32(sBerryFixGraphics[scene].palette, (void *)BG_PLTT, 0x100);
ShowBg(0);
ShowBg(1);
}
-static void berry_fix_bg_hide(void)
+static void BerryFix_HideScene(void)
{
HideBg(0);
HideBg(1);
diff --git a/src/field_weather.c b/src/field_weather.c
index f60c04e34..655e24590 100644
--- a/src/field_weather.c
+++ b/src/field_weather.c
@@ -154,15 +154,14 @@ static const u8 sBasePaletteGammaTypes[32] =
GAMMA_NORMAL,
};
-const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal");
+const u16 gFogPalette[] = INCBIN_U16("graphics/weather/fog.gbapal");
-// code
void StartWeather(void)
{
if (!FuncIsActiveTask(Task_WeatherMain))
{
u8 index = AllocSpritePalette(0x1200);
- CpuCopy32(gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32);
+ CpuCopy32(gFogPalette, &gPlttBufferUnfaded[0x100 + index * 16], 32);
BuildGammaShiftTables();
gWeatherPtr->altGammaSpritePalIndex = index;
gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(0x1201);
diff --git a/src/graphics.c b/src/graphics.c
index 5710d171b..30f5ce91f 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -668,8 +668,8 @@ const u32 gBattleAnimSpritePal_FangAttack[] = INCBIN_U32("graphics/battle_anims/
const u32 gBattleAnimSpriteGfx_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.4bpp.lz");
const u32 gBattleAnimSpritePal_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.gbapal.lz");
-const u32 gUnknown_08C20668[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz");
-const u32 gUnknown_08C20684[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz");
+const u32 gBattleAnimMaskImage_Curse[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz");
+const u32 gBattleAnimMaskTilemap_Curse[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz");
const u32 gBattleAnimSpriteGfx_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.4bpp.lz");
const u32 gBattleAnimSpritePal_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.gbapal.lz");
@@ -911,8 +911,8 @@ const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/spr
const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz");
-const u32 gUnknown_08C2EA50[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz");
-const u32 gUnknown_08C2EA9C[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.bin.lz");
+const u32 UnusedLevelupAnimationGfx[] = INCBIN_U32("graphics/battle_anims/masks/unused_level_up.4bpp.lz");
+const u32 UnusedLevelupAnimationTilemap[] = INCBIN_U32("graphics/battle_anims/masks/unused_level_up.bin.lz");
const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz");
const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz");
diff --git a/src/item_icon.c b/src/item_icon.c
index 487b89b71..dc69d0331 100644
--- a/src/item_icon.c
+++ b/src/item_icon.c
@@ -7,8 +7,8 @@
#include "constants/items.h"
// EWRAM vars
-EWRAM_DATA void *gItemIconDecompressionBuffer = NULL;
-EWRAM_DATA void *gItemIcon4x4Buffer = NULL;
+EWRAM_DATA u8 *gItemIconDecompressionBuffer = NULL;
+EWRAM_DATA u8 *gItemIcon4x4Buffer = NULL;
// const rom data
#include "data/item_icon_table.h"
@@ -55,12 +55,10 @@ const struct SpriteTemplate gItemIconSpriteTemplate =
// code
bool8 AllocItemIconTemporaryBuffers(void)
{
- gItemIconDecompressionBuffer = gItemIconDecompressionBuffer; // needed to match
gItemIconDecompressionBuffer = Alloc(0x120);
if (gItemIconDecompressionBuffer == NULL)
return FALSE;
- gItemIcon4x4Buffer = gItemIcon4x4Buffer; // needed to match
gItemIcon4x4Buffer = AllocZeroed(0x200);
if (gItemIcon4x4Buffer == NULL)
{
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index 052ca820a..cc4da7e16 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -19,24 +19,52 @@
#include "gpu_regs.h"
#include "constants/rgb.h"
-struct ResetRtcStruct
+#define PALTAG_ARROW 0x1000
+
+// Task data for the Task_ResetRtc_* series of tasks, when setting the time on the clock
+// Data from these tasks is also used by the cursors and the main task (Task_ResetRtcScreen)
+enum {
+ DATAIDX_DAYS = 3,
+ DATAIDX_HOURS,
+ DATAIDX_MINS,
+ DATAIDX_SECS,
+ DATAIDX_CONFIRM,
+};
+#define tFinished data[0]
+#define tSetTime data[1]
+#define tSelection data[2]
+#define tDays data[DATAIDX_DAYS]
+#define tHours data[DATAIDX_HOURS]
+#define tMinutes data[DATAIDX_MINS]
+#define tSeconds data[DATAIDX_SECS]
+#define tConfirm data[DATAIDX_CONFIRM]
+#define tWindowId data[8]
+
+enum {
+ SELECTION_DAYS = 1,
+ SELECTION_HOURS,
+ SELECTION_MINS,
+ SELECTION_SECS,
+ SELECTION_CONFIRM,
+ SELECTION_NONE
+};
+
+struct ResetRtcInputMap
{
/*0x0*/ u8 dataIndex;
/*0x2*/ u16 minVal;
/*0x4*/ u16 maxVal;
/*0x6*/ u8 left;
/*0x7*/ u8 right;
- /*0x8*/ u8 unk8;
+ /*0x8*/ u8 unk; // never read
};
-// this file's functions
static void CB2_ResetRtcScreen(void);
static void VBlankCB(void);
static void Task_ResetRtcScreen(u8 taskId);
-static void sub_809F048(void);
+static void InitResetRtcScreenBgAndWindows(void);
-// const rom data
-static const struct BgTemplate sBackgroundTemplates[] =
+static const struct BgTemplate sBgTemplates[] =
{
{
.bg = 0,
@@ -49,60 +77,84 @@ static const struct BgTemplate sBackgroundTemplates[] =
}
};
-static const struct WindowTemplate sUnknown_08510408[] =
+static const struct WindowTemplate sWindowTemplates[] =
{
- {0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155},
- {0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9},
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 19,
+ .height = 9,
+ .paletteNum = 15,
+ .baseBlock = 0x155
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 27,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0xE9
+ },
DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate sUnknown_08510420 = {0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf};
+static const struct WindowTemplate sInputTimeWindow = {
+ .bg = 0,
+ .tilemapLeft = 4,
+ .tilemapTop = 9,
+ .width = 21,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0xBF
+};
-static const struct ResetRtcStruct sUnknown_08510428[5] =
+static const struct ResetRtcInputMap sInputMap[] =
{
- {
- .dataIndex = 3,
+ [SELECTION_DAYS - 1] = {
+ .dataIndex = DATAIDX_DAYS,
.minVal = 1,
.maxVal = 9999,
.left = 0,
.right = 2,
- .unk8 = 0,
+ .unk = 0,
},
- {
- .dataIndex = 4,
+ [SELECTION_HOURS - 1] = {
+ .dataIndex = DATAIDX_HOURS,
.minVal = 0,
.maxVal = 23,
.left = 1,
.right = 3,
- .unk8 = 0,
+ .unk = 0,
},
- {
- .dataIndex = 5,
+ [SELECTION_MINS - 1] = {
+ .dataIndex = DATAIDX_MINS,
.minVal = 0,
.maxVal = 59,
.left = 2,
.right = 4,
- .unk8 = 0,
+ .unk = 0,
},
- {
- .dataIndex = 6,
+ [SELECTION_SECS - 1] = {
+ .dataIndex = DATAIDX_SECS,
.minVal = 0,
.maxVal = 59,
.left = 3,
.right = 5,
- .unk8 = 0,
+ .unk = 0,
},
- {
- .dataIndex = 7,
+ [SELECTION_CONFIRM - 1] = {
+ .dataIndex = DATAIDX_CONFIRM,
.minVal = 0,
.maxVal = 0,
.left = 4,
.right = 0,
- .unk8 = 6,
+ .unk = 6,
},
};
-static const struct OamData sOamData_08510464 =
+static const struct OamData sOamData_Arrow =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -119,148 +171,158 @@ static const struct OamData sOamData_08510464 =
.affineParam = 0,
};
-static const u8 sResetRtcScreen_DownArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_downarrow.4bpp");
-static const u8 sResetRtcScreen_RightArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_rightarrow.4bpp");
-static const u16 sResetRtcScreen_ArrowPal[] = INCBIN_U16("graphics/misc/reset_rtc_screen_arrow.gbapal");
+static const u8 sArrowDown_Gfx[] = INCBIN_U8("graphics/reset_rtc_screen/arrow_down.4bpp");
+static const u8 sArrowRight_Gfx[] = INCBIN_U8("graphics/reset_rtc_screen/arrow_right.4bpp");
+static const u16 sArrow_Pal[] = INCBIN_U16("graphics/reset_rtc_screen/arrow.gbapal");
-static const struct SpriteFrameImage sSpriteImageTable_85104B4[] =
+static const struct SpriteFrameImage sPicTable_Arrow[] =
{
- obj_frame_tiles(sResetRtcScreen_DownArrowGfx),
- obj_frame_tiles(sResetRtcScreen_RightArrowGfx)
+ obj_frame_tiles(sArrowDown_Gfx),
+ obj_frame_tiles(sArrowRight_Gfx)
};
static const struct SpritePalette sSpritePalette_Arrow =
{
- sResetRtcScreen_ArrowPal, 0x1000
+ sArrow_Pal, PALTAG_ARROW
};
-static const union AnimCmd sSpriteAnim_85104CC[] =
+static const union AnimCmd sAnim_Arrow_Down[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sSpriteAnim_85104D4[] =
+static const union AnimCmd sAnim_Arrow_Up[] =
{
ANIMCMD_FRAME(0, 30, .vFlip = TRUE),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sSpriteAnim_85104DC[] =
+static const union AnimCmd sAnim_Arrow_Right[] =
{
ANIMCMD_FRAME(1, 30),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const sSpriteAnimTable_85104E4[] =
+enum {
+ ARROW_DOWN,
+ ARROW_UP,
+ ARROW_RIGHT,
+};
+
+static const union AnimCmd *const sAnims_Arrow[] =
{
- sSpriteAnim_85104CC,
- sSpriteAnim_85104D4,
- sSpriteAnim_85104DC,
+ [ARROW_DOWN] = sAnim_Arrow_Down,
+ [ARROW_UP] = sAnim_Arrow_Up,
+ [ARROW_RIGHT] = sAnim_Arrow_Right,
};
-static const struct SpriteTemplate sSpriteTemplate_85104F0 =
+static const struct SpriteTemplate sSpriteTemplate_Arrow =
{
.tileTag = 0xFFFF,
- .paletteTag = 0x1000,
- .oam = &sOamData_08510464,
- .anims = sSpriteAnimTable_85104E4,
- .images = sSpriteImageTable_85104B4,
+ .paletteTag = PALTAG_ARROW,
+ .oam = &sOamData_Arrow,
+ .anims = sAnims_Arrow,
+ .images = sPicTable_Arrow,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
-// code
-static void SpriteCB_ResetRtcCursor0(struct Sprite *sprite)
+#define sTaskId data[0]
+#define sState data[1]
+
+static void SpriteCB_Cursor_UpOrRight(struct Sprite *sprite)
{
- int state = gTasks[sprite->data[0]].data[2];
- if (state != sprite->data[1])
+ int state = gTasks[sprite->sTaskId].tSelection;
+ if (state != sprite->sState)
{
- sprite->data[1] = state;
+ sprite->sState = state;
switch (state)
{
- case 1:
+ case SELECTION_DAYS:
sprite->invisible = FALSE;
- sprite->animNum = 1;
+ sprite->animNum = ARROW_UP;
sprite->animDelayCounter = 0;
sprite->pos1.x = 53;
sprite->pos1.y = 68;
break;
- case 2:
+ case SELECTION_HOURS:
sprite->invisible = FALSE;
- sprite->animNum = 1;
+ sprite->animNum = ARROW_UP;
sprite->animDelayCounter = 0;
sprite->pos1.x = 86;
sprite->pos1.y = 68;
break;
- case 3:
+ case SELECTION_MINS:
sprite->invisible = FALSE;
- sprite->animNum = 1;
+ sprite->animNum = ARROW_UP;
sprite->animDelayCounter = 0;
sprite->pos1.x = 101;
sprite->pos1.y = 68;
break;
- case 4:
+ case SELECTION_SECS:
sprite->invisible = FALSE;
- sprite->animNum = 1;
+ sprite->animNum = ARROW_UP;
sprite->animDelayCounter = 0;
sprite->pos1.x = 116;
sprite->pos1.y = 68;
break;
- case 5:
+ case SELECTION_CONFIRM:
sprite->invisible = FALSE;
- sprite->animNum = 2;
+ sprite->animNum = ARROW_RIGHT;
sprite->animDelayCounter = 0;
sprite->pos1.x = 153;
sprite->pos1.y = 80;
break;
- case 6:
+ case SELECTION_NONE:
DestroySprite(sprite);
break;
}
}
}
-static void SpriteCB_ResetRtcCursor1(struct Sprite *sprite)
+static void SpriteCB_Cursor_Down(struct Sprite *sprite)
{
- int state = gTasks[sprite->data[0]].data[2];
- if (state != sprite->data[1])
+ int state = gTasks[sprite->sTaskId].tSelection;
+ if (state != sprite->sState)
{
- sprite->data[1] = state;
+ sprite->sState = state;
switch (state)
{
- case 1:
+ case SELECTION_DAYS:
sprite->invisible = FALSE;
- sprite->animNum = 0;
+ sprite->animNum = ARROW_DOWN;
sprite->animDelayCounter = 0;
sprite->pos1.x = 53;
sprite->pos1.y = 92;
break;
- case 2:
+ case SELECTION_HOURS:
sprite->invisible = FALSE;
- sprite->animNum = 0;
+ sprite->animNum = ARROW_DOWN;
sprite->animDelayCounter = 0;
sprite->pos1.x = 86;
sprite->pos1.y = 92;
break;
- case 3:
+ case SELECTION_MINS:
sprite->invisible = FALSE;
- sprite->animNum = 0;
+ sprite->animNum = ARROW_DOWN;
sprite->animDelayCounter = 0;
sprite->pos1.x = 101;
sprite->pos1.y = 92;
break;
- case 4:
+ case SELECTION_SECS:
sprite->invisible = FALSE;
- sprite->animNum = 0;
+ sprite->animNum = ARROW_DOWN;
sprite->animDelayCounter = 0;
sprite->pos1.x = 116;
sprite->pos1.y = 92;
break;
- case 5:
+ case SELECTION_CONFIRM:
+ // The up arrow is used as a right arrow when Confirm is selected
+ // Hide the down arrow
sprite->invisible = TRUE;
break;
- case 6:
+ case SELECTION_NONE:
DestroySprite(sprite);
break;
}
@@ -273,15 +335,15 @@ static void CreateCursor(u8 taskId)
LoadSpritePalette(&sSpritePalette_Arrow);
- spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0);
- gSprites[spriteId].callback = SpriteCB_ResetRtcCursor0;
- gSprites[spriteId].data[0] = taskId;
- gSprites[spriteId].data[1] = -1;
+ spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Arrow, 53, 68, 0);
+ gSprites[spriteId].callback = SpriteCB_Cursor_UpOrRight;
+ gSprites[spriteId].sTaskId = taskId;
+ gSprites[spriteId].sState = -1;
- spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0);
- gSprites[spriteId].callback = SpriteCB_ResetRtcCursor1;
- gSprites[spriteId].data[0] = taskId;
- gSprites[spriteId].data[1] = -1;
+ spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Arrow, 53, 68, 0);
+ gSprites[spriteId].callback = SpriteCB_Cursor_Down;
+ gSprites[spriteId].sTaskId = taskId;
+ gSprites[spriteId].sState = -1;
}
static void FreeCursorPalette(void)
@@ -300,18 +362,22 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u
{
u8 *dest = gStringVar4;
+ // Print days
ConvertIntToDecimalStringN(gStringVar1, days, STR_CONV_MODE_RIGHT_ALIGN, 4);
dest = StringCopy(dest, gStringVar1);
dest = StringCopy(dest, gText_Day);
+ // Print hours
ConvertIntToDecimalStringN(gStringVar1, hours, STR_CONV_MODE_RIGHT_ALIGN, 3);
dest = StringCopy(dest, gStringVar1);
dest = StringCopy(dest, gText_Colon3);
+ // Print minutes
ConvertIntToDecimalStringN(gStringVar1, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
dest = StringCopy(dest, gStringVar1);
dest = StringCopy(dest, gText_Colon3);
+ // Print seconds
ConvertIntToDecimalStringN(gStringVar1, seconds, STR_CONV_MODE_LEADING_ZEROS, 2);
dest = StringCopy(dest, gStringVar1);
@@ -360,31 +426,31 @@ static bool32 MoveTimeUpDown(s16 *val, int minVal, int maxVal, u16 keys)
return TRUE;
}
-static void Task_ResetRtc_3(u8 taskId)
+static void Task_ResetRtc_SetFinished(u8 taskId)
{
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tFinished = TRUE;
}
-static void Task_ResetRtc_2(u8 taskId)
+static void Task_ResetRtc_Exit(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- HideChooseTimeWindow(data[8]);
+ HideChooseTimeWindow(tWindowId);
FreeCursorPalette();
- gTasks[taskId].func = Task_ResetRtc_3;
+ gTasks[taskId].func = Task_ResetRtc_SetFinished;
}
-static void Task_ResetRtc_1(u8 taskId)
+static void Task_ResetRtc_HandleInput(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u8 selection = data[2];
- const struct ResetRtcStruct *selectionInfo = &sUnknown_08510428[selection - 1];
+ u8 selection = tSelection;
+ const struct ResetRtcInputMap *selectionInfo = &sInputMap[selection - 1];
if (JOY_NEW(B_BUTTON))
{
- gTasks[taskId].func = Task_ResetRtc_2;
- data[1] = 0;
- data[2] = 6;
+ gTasks[taskId].func = Task_ResetRtc_Exit;
+ tSetTime = FALSE;
+ tSelection = SELECTION_NONE;
PlaySE(SE_SELECT);
return;
}
@@ -393,7 +459,7 @@ static void Task_ResetRtc_1(u8 taskId)
{
if (selectionInfo->right)
{
- data[2] = selectionInfo->right;
+ tSelection = selectionInfo->right;
PlaySE(SE_SELECT);
return;
}
@@ -403,47 +469,47 @@ static void Task_ResetRtc_1(u8 taskId)
{
if (selectionInfo->left)
{
- data[2] = selectionInfo->left;
+ tSelection = selectionInfo->left;
PlaySE(SE_SELECT);
return;
}
}
- if (selection == 5)
+ if (selection == SELECTION_CONFIRM)
{
if (JOY_NEW(A_BUTTON))
{
- gLocalTime.days = data[3];
- gLocalTime.hours = data[4];
- gLocalTime.minutes = data[5];
- gLocalTime.seconds = data[6];
+ gLocalTime.days = tDays;
+ gLocalTime.hours = tHours;
+ gLocalTime.minutes = tMinutes;
+ gLocalTime.seconds = tSeconds;
PlaySE(SE_SELECT);
- gTasks[taskId].func = Task_ResetRtc_2;
- data[1] = 1;
- data[2] = 6;
+ gTasks[taskId].func = Task_ResetRtc_Exit;
+ tSetTime = TRUE;
+ tSelection = SELECTION_NONE;
}
}
else if (MoveTimeUpDown(&data[selectionInfo->dataIndex], selectionInfo->minVal, selectionInfo->maxVal, JOY_REPEAT(DPAD_UP | DPAD_DOWN)))
{
PlaySE(SE_SELECT);
- PrintTime(data[8], 0, 1, data[3], data[4], data[5], data[6]);
- CopyWindowToVram(data[8], 2);
+ PrintTime(tWindowId, 0, 1, tDays, tHours, tMinutes, tSeconds);
+ CopyWindowToVram(tWindowId, 2);
}
}
-static void Task_ResetRtc_0(u8 taskId)
+static void Task_ResetRtc_Init(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- data[0] = 0;
- data[3] = gLocalTime.days;
- data[4] = gLocalTime.hours;
- data[5] = gLocalTime.minutes;
- data[6] = gLocalTime.seconds;
- data[8] = AddWindow(&sUnknown_08510420);
- ShowChooseTimeWindow(data[8], data[3], data[4], data[5], data[6]);
+ tFinished = FALSE;
+ tDays = gLocalTime.days;
+ tHours = gLocalTime.hours;
+ tMinutes = gLocalTime.minutes;
+ tSeconds = gLocalTime.seconds;
+ tWindowId = AddWindow(&sInputTimeWindow);
+ ShowChooseTimeWindow(tWindowId, tDays, tHours, tMinutes, tSeconds);
CreateCursor(taskId);
- data[2] = 2;
- gTasks[taskId].func = Task_ResetRtc_1;
+ tSelection = SELECTION_HOURS;
+ gTasks[taskId].func = Task_ResetRtc_HandleInput;
}
void CB2_InitResetRtcScreen(void)
@@ -451,7 +517,7 @@ void CB2_InitResetRtcScreen(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
SetVBlankCallback(NULL);
DmaClear16(3, PLTT, PLTT_SIZE);
- DmaFillLarge16(3, 0, (u8 *)VRAM, 0x18000, 0x1000);
+ DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000);
ResetOamRange(0, 128);
LoadOam();
ScanlineEffect_Stop();
@@ -459,21 +525,21 @@ void CB2_InitResetRtcScreen(void)
ResetSpriteData();
ResetTasks();
ResetPaletteFade();
- sub_809F048();
+ InitResetRtcScreenBgAndWindows();
SetVBlankCallback(VBlankCB);
SetMainCallback2(CB2_ResetRtcScreen);
CreateTask(Task_ResetRtcScreen, 80);
}
-static void sub_809F048(void)
+static void InitResetRtcScreenBgAndWindows(void)
{
ClearScheduledBgCopiesToVram();
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates));
+ InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
ScheduleBgCopyTilemapToVram(0);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
ShowBg(0);
- InitWindows(sUnknown_08510408);
+ InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
LoadMessageBoxAndBorderGfx();
}
@@ -501,14 +567,17 @@ static void ShowMessage(const u8 *str)
ScheduleBgCopyTilemapToVram(0);
}
+#define tState data[0]
+
static void Task_ShowResetRtcPrompt(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- switch (data[0])
+ switch (tState)
{
case 0:
DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x214, 0xE);
+
AddTextPrinterParameterized(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0);
PrintTime(
0,
@@ -518,6 +587,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
gLocalTime.hours,
gLocalTime.minutes,
gLocalTime.seconds);
+
AddTextPrinterParameterized(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0);
PrintTime(
0,
@@ -527,18 +597,21 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
gSaveBlock2Ptr->lastBerryTreeUpdate.hours,
gSaveBlock2Ptr->lastBerryTreeUpdate.minutes,
gSaveBlock2Ptr->lastBerryTreeUpdate.seconds);
+
ShowMessage(gText_ResetRTCConfirmCancel);
CopyWindowToVram(0, 2);
ScheduleBgCopyTilemapToVram(0);
- data[0]++;
+ tState++;
case 1:
if (JOY_NEW(B_BUTTON))
{
+ // Cancel, exit without resetting RTC
DestroyTask(taskId);
DoSoftReset();
}
else if (JOY_NEW(A_BUTTON))
{
+ // Confirm
PlaySE(SE_SELECT);
DestroyTask(taskId);
}
@@ -546,53 +619,73 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
}
}
+#undef tState
+
+// Task states for Task_ResetRtcScreen
+enum {
+ MAINSTATE_FADE_IN,
+ MAINSTATE_CHECK_SAVE,
+ MAINSTATE_START_SET_TIME,
+ MAINSTATE_WAIT_SET_TIME,
+ MAINSTATE_SAVE,
+ MAINSTATE_WAIT_EXIT,
+ MAINSTATE_EXIT,
+};
+
+#define tState data[0]
+#define tSubTaskId data[1]
+
static void Task_ResetRtcScreen(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- switch (data[0])
+ switch (tState)
{
- case 0:
+ case MAINSTATE_FADE_IN:
BeginNormalPaletteFade(PALETTES_ALL, 1, 0x10, 0, RGB_WHITEALPHA);
- data[0] = 1;
+ tState = MAINSTATE_CHECK_SAVE;
break;
- case 1:
+ case MAINSTATE_CHECK_SAVE:
if (!gPaletteFade.active)
{
- if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
+ if (gSaveFileStatus == SAVE_STATUS_EMPTY
+ || gSaveFileStatus == SAVE_STATUS_CORRUPT)
{
ShowMessage(gText_NoSaveFileCantSetTime);
- data[0] = 5;
+ tState = MAINSTATE_WAIT_EXIT;
}
else
{
RtcCalcLocalTime();
- data[1] = CreateTask(Task_ShowResetRtcPrompt, 80);
- data[0] = 2;
+ tSubTaskId = CreateTask(Task_ShowResetRtcPrompt, 80);
+ tState = MAINSTATE_START_SET_TIME;
}
}
break;
- case 2:
- if (gTasks[data[1]].isActive != TRUE)
+ case MAINSTATE_START_SET_TIME:
+ // Wait for A or B press on prompt first
+ if (gTasks[tSubTaskId].isActive != TRUE)
{
ClearStdWindowAndFrameToTransparent(0, FALSE);
ShowMessage(gText_PleaseResetTime);
gLocalTime = gSaveBlock2Ptr->lastBerryTreeUpdate;
- data[1] = CreateTask(Task_ResetRtc_0, 80);
- data[0] = 3;
+ tSubTaskId = CreateTask(Task_ResetRtc_Init, 80);
+ tState = MAINSTATE_WAIT_SET_TIME;
}
break;
- case 3:
- if (gTasks[data[1]].data[0])
+ case MAINSTATE_WAIT_SET_TIME:
+ if (gTasks[tSubTaskId].tFinished)
{
- if (!gTasks[data[1]].data[1])
+ if (!gTasks[tSubTaskId].tSetTime)
{
- DestroyTask(data[1]);
- data[0] = 2;
+ // Exited without setting time, return to "Please reset time"
+ DestroyTask(tSubTaskId);
+ tState = MAINSTATE_START_SET_TIME;
}
else
{
- DestroyTask(data[1]);
+ // Time has been chosen, reset rtc and save
+ DestroyTask(tSubTaskId);
RtcReset();
RtcCalcLocalTimeOffset(
gLocalTime.days,
@@ -603,11 +696,11 @@ static void Task_ResetRtcScreen(u8 taskId)
VarSet(VAR_DAYS, gLocalTime.days);
DisableResetRTC();
ShowMessage(gText_ClockHasBeenReset);
- data[0] = 4;
+ tState = MAINSTATE_SAVE;
}
}
break;
- case 4:
+ case MAINSTATE_SAVE:
if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK)
{
ShowMessage(gText_SaveCompleted);
@@ -618,18 +711,20 @@ static void Task_ResetRtcScreen(u8 taskId)
ShowMessage(gText_SaveFailed);
PlaySE(SE_BOO);
}
- data[0] = 5;
- case 5:
+ tState = MAINSTATE_WAIT_EXIT;
+ // fallthrough
+ case MAINSTATE_WAIT_EXIT:
if (JOY_NEW(A_BUTTON))
{
BeginNormalPaletteFade(PALETTES_ALL, 1, 0, 0x10, RGB_WHITEALPHA);
- data[0] = 6;
+ tState = MAINSTATE_EXIT;
+ // fallthrough
}
else
{
break;
}
- case 6:
+ case MAINSTATE_EXIT:
if (!gPaletteFade.active)
{
DestroyTask(taskId);
diff --git a/src/save.c b/src/save.c
index 680f33de0..bbf4e7dbe 100644
--- a/src/save.c
+++ b/src/save.c
@@ -23,10 +23,6 @@ static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
// Divide save blocks into individual chunks to be written to flash sectors
-// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer
-#define SECTOR_DATA_SIZE 3968
-#define SECTOR_FOOTER_SIZE 128
-
/*
* Sector Layout:
*
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index bf6e4d6fb..facdbdc17 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -25,25 +25,25 @@ extern const u8 gText_SaveCompleteGameCannotContinue[];
extern const u8 gText_SaveCompletePressA[];
extern const u8 gText_GamePlayCannotBeContinued[];
-// gSaveFailedClockInfo enum
+// sClockInfo enum
enum
{
CLOCK_RUNNING,
DEBUG_TIMER
};
-// gSaveFailedWindowIds enum
+// sWindowIds enum
enum
{
TEXT_WIN_ID,
CLOCK_WIN_ID
};
-EWRAM_DATA u16 gSaveFailedType = {0};
-EWRAM_DATA u16 gSaveFailedClockInfo[2] = {0};
-EWRAM_DATA u8 gSaveFailedUnused1[12] = {0};
-EWRAM_DATA u8 gSaveFailedWindowIds[2] = {0};
-EWRAM_DATA u8 gSaveFailedUnused2[4] = {0};
+static EWRAM_DATA u16 sSaveFailedType = {0};
+static EWRAM_DATA u16 sClockInfo[2] = {0};
+static EWRAM_DATA u8 sUnused1[12] = {0};
+static EWRAM_DATA u8 sWindowIds[2] = {0};
+static EWRAM_DATA u8 sUnused2[4] = {0};
static const struct OamData sClockOamData =
{
@@ -93,20 +93,9 @@ static const struct BgTemplate sBgTemplates[3] =
},
};
-static const struct WindowTemplate gUnknown_085EFD94[] =
-{
- {
- .bg = 255,
- .tilemapLeft = 0,
- .tilemapTop = 0,
- .width = 0,
- .height = 0,
- .paletteNum = 0,
- .baseBlock = 0,
- }
-};
+static const struct WindowTemplate sDummyWindowTemplate[] = { DUMMY_WIN_TEMPLATE };
-static const struct WindowTemplate gUnknown_085EFD9C[] =
+static const struct WindowTemplate sWindowTemplate_Text[] =
{
{
.bg = 0,
@@ -119,7 +108,7 @@ static const struct WindowTemplate gUnknown_085EFD9C[] =
}
};
-static const struct WindowTemplate gUnknown_085EFDA4[] =
+static const struct WindowTemplate sWindowTemplate_Clock[] =
{
{
.bg = 0,
@@ -157,24 +146,24 @@ static bool8 VerifySectorWipe(u16 sector);
static bool8 WipeSectors(u32);
// Although this is a general text printer, it's only used in this file.
-static void SaveFailedScreenTextPrint(const u8 *text, u8 var1, u8 var2)
+static void SaveFailedScreenTextPrint(const u8 *text, u8 x, u8 y)
{
u8 color[3];
- color[0] = 0;
- color[1] = 15;
- color[2] = 3;
- AddTextPrinterParameterized4(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text);
+ color[0] = TEXT_COLOR_TRANSPARENT;
+ color[1] = TEXT_DYNAMIC_COLOR_6;
+ color[2] = TEXT_COLOR_LIGHT_GREY;
+ AddTextPrinterParameterized4(sWindowIds[TEXT_WIN_ID], 1, x * 8, y * 8 + 1, 0, 0, color, 0, text);
}
void DoSaveFailedScreen(u8 saveType)
{
SetMainCallback2(CB2_SaveFailedScreen);
- gSaveFailedType = saveType;
- gSaveFailedClockInfo[CLOCK_RUNNING] = FALSE;
- gSaveFailedClockInfo[DEBUG_TIMER] = 0;
- gSaveFailedWindowIds[TEXT_WIN_ID] = 0;
- gSaveFailedWindowIds[CLOCK_WIN_ID] = 0;
+ sSaveFailedType = saveType;
+ sClockInfo[CLOCK_RUNNING] = FALSE;
+ sClockInfo[DEBUG_TIMER] = 0;
+ sWindowIds[TEXT_WIN_ID] = 0;
+ sWindowIds[CLOCK_WIN_ID] = 0;
}
static void VBlankCB(void)
@@ -210,17 +199,17 @@ static void CB2_SaveFailedScreen(void)
LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM);
LZ77UnCompVram(gBirchBagTilemap, (void *)(BG_SCREEN_ADDR(14)));
LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(15)));
- LZ77UnCompVram(sSaveFailedClockGfx, (void *)(VRAM + 0x10020));
+ LZ77UnCompVram(sSaveFailedClockGfx, (void *)(OBJ_VRAM0 + 0x20));
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
SetBgTilemapBuffer(0, (void *)&gDecompressionBuffer[0x2000]);
CpuFill32(0, &gDecompressionBuffer[0x2000], 0x800);
LoadBgTiles(0, gTextWindowFrame1_Gfx, 0x120, 0x214);
- InitWindows(gUnknown_085EFD94);
- gSaveFailedWindowIds[TEXT_WIN_ID] = AddWindowWithoutTileMap(gUnknown_085EFD9C);
- SetWindowAttribute(gSaveFailedWindowIds[TEXT_WIN_ID], 7, (u32)&gDecompressionBuffer[0x2800]);
- gSaveFailedWindowIds[CLOCK_WIN_ID] = AddWindowWithoutTileMap(gUnknown_085EFDA4);
- SetWindowAttribute(gSaveFailedWindowIds[CLOCK_WIN_ID], 7, (u32)&gDecompressionBuffer[0x3D00]);
+ InitWindows(sDummyWindowTemplate);
+ sWindowIds[TEXT_WIN_ID] = AddWindowWithoutTileMap(sWindowTemplate_Text);
+ SetWindowAttribute(sWindowIds[TEXT_WIN_ID], 7, (u32)&gDecompressionBuffer[0x2800]);
+ sWindowIds[CLOCK_WIN_ID] = AddWindowWithoutTileMap(sWindowTemplate_Clock);
+ SetWindowAttribute(sWindowIds[CLOCK_WIN_ID], 7, (u32)&gDecompressionBuffer[0x3D00]);
DeactivateAllTextPrinters();
ResetSpriteData();
ResetTasks();
@@ -229,12 +218,12 @@ static void CB2_SaveFailedScreen(void)
LoadPalette(sSaveFailedClockPal, 0x100, 0x20);
LoadPalette(gTextWindowFrame1_Pal, 0xE0, 0x20);
LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
- DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE);
- DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE);
- FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards?
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
- CopyWindowToVram(gSaveFailedWindowIds[CLOCK_WIN_ID], 2); // again?
- CopyWindowToVram(gSaveFailedWindowIds[TEXT_WIN_ID], 1);
+ DrawStdFrameWithCustomTileAndPalette(sWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE);
+ DrawStdFrameWithCustomTileAndPalette(sWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE);
+ FillWindowPixelBuffer(sWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards?
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ CopyWindowToVram(sWindowIds[CLOCK_WIN_ID], 2); // again?
+ CopyWindowToVram(sWindowIds[TEXT_WIN_ID], 1);
SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0);
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
EnableInterrupts(1);
@@ -259,25 +248,25 @@ static void CB2_WipeSave(void)
{
u8 wipeTries = 0;
- gSaveFailedClockInfo[CLOCK_RUNNING] = TRUE;
+ sClockInfo[CLOCK_RUNNING] = TRUE;
while (gDamagedSaveSectors != 0 && wipeTries < 3)
{
- if (WipeSectors(gDamagedSaveSectors) != FALSE)
+ if (WipeSectors(gDamagedSaveSectors))
{
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0);
SetMainCallback2(CB2_GameplayCannotBeContinued);
return;
}
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
SaveFailedScreenTextPrint(gText_CheckCompleted, 1, 0);
- HandleSavingData(gSaveFailedType);
+ HandleSavingData(sSaveFailedType);
if (gDamagedSaveSectors != 0)
{
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0);
}
@@ -286,12 +275,12 @@ static void CB2_WipeSave(void)
if (wipeTries == 3)
{
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0);
}
else
{
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
if (gGameContinueCallback == NULL)
SaveFailedScreenTextPrint(gText_SaveCompleteGameCannotContinue, 1, 0);
@@ -304,11 +293,11 @@ static void CB2_WipeSave(void)
static void CB2_GameplayCannotBeContinued(void)
{
- gSaveFailedClockInfo[CLOCK_RUNNING] = FALSE;
+ sClockInfo[CLOCK_RUNNING] = FALSE;
if (JOY_NEW(A_BUTTON))
{
- FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
+ FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
SaveFailedScreenTextPrint(gText_GamePlayCannotBeContinued, 1, 0);
SetVBlankCallback(VBlankCB);
SetMainCallback2(CB2_FadeAndReturnToTitleScreen);
@@ -317,7 +306,7 @@ static void CB2_GameplayCannotBeContinued(void)
static void CB2_FadeAndReturnToTitleScreen(void)
{
- gSaveFailedClockInfo[CLOCK_RUNNING] = FALSE;
+ sClockInfo[CLOCK_RUNNING] = FALSE;
if (JOY_NEW(A_BUTTON))
{
@@ -351,7 +340,7 @@ static void VBlankCB_UpdateClockGraphics(void)
gMain.oamBuffer[0].x = 112;
gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;
- if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE)
+ if (sClockInfo[CLOCK_RUNNING])
{
gMain.oamBuffer[0].tileNum = sClockFrames[n][0];
gMain.oamBuffer[0].matrixNum = (sClockFrames[n][2] << 4) | (sClockFrames[n][1] << 3);
@@ -363,8 +352,8 @@ static void VBlankCB_UpdateClockGraphics(void)
CpuFastCopy(gMain.oamBuffer, (void *)OAM, 4);
- if (gSaveFailedClockInfo[DEBUG_TIMER])
- gSaveFailedClockInfo[DEBUG_TIMER]--;
+ if (sClockInfo[DEBUG_TIMER])
+ sClockInfo[DEBUG_TIMER]--;
}
static bool8 VerifySectorWipe(u16 sector)
@@ -372,7 +361,7 @@ static bool8 VerifySectorWipe(u16 sector)
u32 *ptr = (u32 *)&gSaveDataBuffer;
u16 i;
- ReadFlash(sector, 0, (u8 *)ptr, 4096);
+ ReadFlash(sector, 0, (u8 *)ptr, SECTOR_SIZE);
for (i = 0; i < 0x400; i++, ptr++)
if (*ptr)
@@ -388,7 +377,7 @@ static bool8 WipeSector(u16 sector)
for (i = 0; failed && i < 130; i++)
{
- for (j = 0; j < 0x1000; j++)
+ for (j = 0; j < SECTOR_SIZE; j++)
ProgramFlashByte(sector, j, 0);
failed = VerifySectorWipe(sector);
@@ -401,7 +390,7 @@ static bool8 WipeSectors(u32 sectorBits)
{
u16 i;
- for (i = 0; i < 0x20; i++)
+ for (i = 0; i < SECTORS_COUNT; i++)
if ((sectorBits & (1 << i)) && !WipeSector(i))
sectorBits &= ~(1 << i);