summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_main.c6
-rw-r--r--src/contest_link.c4
-rw-r--r--src/credits.c411
-rw-r--r--src/debug/start_menu_debug.c2
-rw-r--r--src/decoration.c94
-rw-r--r--src/hall_of_fame.c2
-rw-r--r--src/intro.c4
-rw-r--r--src/intro_credits_graphics.c10
-rw-r--r--src/pokeblock.c18
-rw-r--r--src/pokeblock_feed.c52
-rw-r--r--src/save.c16
11 files changed, 313 insertions, 306 deletions
diff --git a/src/battle_main.c b/src/battle_main.c
index 5b259b1d1..e1ed2fbbe 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -767,7 +767,7 @@ void CB2_HandleStartMultiBattle(void)
}
}
SetAllPlayersBerryData();
- memcpy(ewram1D000, gPlayerParty, sizeof(struct Pokemon) * 3);
+ memcpy(eMultiBattleSetupPartySendBuffer, gPlayerParty, sizeof(struct Pokemon) * 3);
taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90;
@@ -799,7 +799,7 @@ void CB2_HandleStartMultiBattle(void)
case 2:
if (IsLinkTaskFinished())
{
- SendBlock(bitmask_all_link_players_but_self(), ewram1D000, sizeof(struct Pokemon) * 2);
+ SendBlock(bitmask_all_link_players_but_self(), eMultiBattleSetupPartySendBuffer, sizeof(struct Pokemon) * 2);
gBattleCommunication[0]++;
}
}
@@ -863,7 +863,7 @@ void CB2_HandleStartMultiBattle(void)
case 4:
if (IsLinkTaskFinished())
{
- SendBlock(bitmask_all_link_players_but_self(), ewram1D000 + 2, sizeof(struct Pokemon));
+ SendBlock(bitmask_all_link_players_but_self(), eMultiBattleSetupPartySendBuffer + 2, sizeof(struct Pokemon));
gBattleCommunication[0]++;
}
break;
diff --git a/src/contest_link.c b/src/contest_link.c
index 2ba7a3e39..974b9ef5d 100644
--- a/src/contest_link.c
+++ b/src/contest_link.c
@@ -16,8 +16,8 @@ static void de_sub_80C9294(bool32 arg0);
static void SendBlockToAllOpponents(const void *data, u16 size)
{
- memcpy(eContestLinkSendBuffer, data, size);
- SendBlock(bitmask_all_link_players_but_self(), eContestLinkSendBuffer, size);
+ memcpy(gDecompressionBuffer, data, size);
+ SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, size);
}
static bool8 HasPlayerReceivedBlock(u8 who)
diff --git a/src/credits.c b/src/credits.c
index 3f1335cd8..2d39765be 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -146,15 +146,16 @@ enum
};
-struct Unk201C000
+struct CreditsData
{
- u16 unk0[POKEMON_TILE_COUNT];
- u16 unk88;
- u16 unk8A;
- u16 unk8C;
- u16 unk8E;
- u16 unk90[386];
- u16 unk394;
+ u16 monToShow[POKEMON_TILE_COUNT]; // List of Pokemon species ids that will show during the credits
+ u16 imgCounter; //how many mon images have been shown
+ u16 nextImgPos; //if the next image spawns left/center/right
+ u16 currShownMon; //index into monToShow
+ u16 numMonToShow; //number of pokemon to show, always NUM_MON_SLIDES after determine function
+ u16 caughtMonIds[NATIONAL_DEX_COUNT]; //temporary location to hold a condensed array of all caught pokemon
+ u16 numCaughtMon; //count of filled spaces in caughtMonIds
+ u16 unused[7];
};
struct CreditsEntry
@@ -163,19 +164,16 @@ struct CreditsEntry
const u8 *text;
};
-extern u8 unk_201e800[0x800];
-extern u8 unk_201f000[0x800];
-
extern struct SpriteTemplate gCreatingSpriteTemplate;
extern u16 gUnknown_02039358;
extern s16 gUnknown_0203935A;
-extern s16 gUnknown_0203935C;
+extern s16 gIntroCredits_MovingSceneryState;
static EWRAM_DATA s16 gUnknown_02039320 = 0;
-static EWRAM_DATA u16 gUnknown_02039322 = 0; // TASK A
+static EWRAM_DATA u16 sSavedTaskId = 0; // TASK A
EWRAM_DATA u8 gHasHallOfFameRecords = 0;
-static EWRAM_DATA u8 gUnknown_02039325 = 0;
+static EWRAM_DATA u8 sUsedSpeedUp = 0;
extern u8 gReservedSpritePaletteCount;
@@ -186,9 +184,9 @@ extern void *gUnknown_0840B5A0[];
const u16 gUnknown_0840B7BC[] = INCBIN_U16("graphics/credits/palette_1.gbapal");
const u8 gUnknown_0840B7FC[] = INCBIN_U8("graphics/credits/ampersand.4bpp");
-void spritecb_814580C(struct Sprite *sprite);
+void SpriteCB_CreditsMonBg(struct Sprite *sprite);
-const u8 gUnknown_0840B83C[] =
+const u8 sTheEnd_LetterMap_T[] =
{
0, 1, 0,
0xFF, 1, 0xFF,
@@ -197,7 +195,7 @@ const u8 gUnknown_0840B83C[] =
0xFF, 1, 0xFF,
};
-const u8 gUnknown_0840B84B[] =
+const u8 sTheEnd_LetterMap_H[] =
{
1, 0xFF, 1,
1, 0xFF, 1,
@@ -206,7 +204,7 @@ const u8 gUnknown_0840B84B[] =
1, 0xFF, 1,
};
-const u8 gUnknown_0840B85A[] =
+const u8 sTheEnd_LetterMap_E[] =
{
1, 0, 0,
1, 0xFF, 0xFF,
@@ -215,7 +213,7 @@ const u8 gUnknown_0840B85A[] =
1, 0x80, 0x80,
};
-const u8 gUnknown_0840B869[] =
+const u8 sTheEnd_LetterMap_N[] =
{
1, 3, 1,
1, 4, 1,
@@ -224,26 +222,32 @@ const u8 gUnknown_0840B869[] =
1, 0xC3, 1,
};
-const u8 gUnknown_0840B878[] =
+const u8 sTheEnd_LetterMap_D[] =
{
1, 6, 7,
1, 8, 9,
1, 0xFF, 1,
1, 0x88, 0x89,
1, 0x86, 0x87,
+};
+
#ifdef GERMAN
+const u8 sTheEnd_LetterMap_F[] = {
1, 0, 0,
1, 0xFF, 0xFF,
1, 0x80, 0x8A,
1, 0xFF, 0xFF,
1, 0xFF, 0xFF,
+};
+
+const u8 sTheEnd_LetterMap_I[] = {
0, 1, 0,
0xFF, 1, 0xFF,
0xFF, 1, 0xFF,
0xFF, 1, 0xFF,
0x80, 1, 0x80,
-#endif
};
+#endif
#ifdef GERMAN
#include "data/credits_de.h"
@@ -251,7 +255,7 @@ const u8 gUnknown_0840B878[] =
#include "data/credits_en.h"
#endif
-const u8 gUnknown_0840CA00[][2] =
+const u8 sMonSpritePos[][2] =
{
{104, 36},
{120, 36},
@@ -332,8 +336,8 @@ static const union AnimCmd *const gSpriteAnimTable_0840CA94[] =
gSpriteAnim_840CA8C,
};
-static const struct SpriteSheet gUnknown_0840CAA0[] = {{ewram1E000_2, 6144, 1001}, {0}};
-static const struct SpritePalette gUnknown_0840CAB0[] = {{ewram_1F800_2, 1001}, {0}};
+static const struct SpriteSheet gUnknown_0840CAA0[] = {{gDecompressionBuffer, 0x1800, 1001}, {0}};
+static const struct SpritePalette gUnknown_0840CAB0[] = {{(u16 *)(gDecompressionBuffer + 0x1800), 1001}, {0}};
static const struct OamData gOamData_840CAC0 =
{
@@ -385,47 +389,47 @@ static const struct SpriteTemplate gSpriteTemplate_840CAEC =
.anims = gSpriteAnimTable_840CAE0,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = spritecb_814580C,
+ .callback = SpriteCB_CreditsMonBg,
};
// graphics
extern u8 gCreditsCopyrightEnd_Gfx[];
extern u16 gIntroCopyright_Pal[16];
-static void task_a_8143B38(u8 taskIdA);
-static void task_a_8143B68(u8 taskIdA);
-static void task_a_8143BFC(u8 taskIdA);
-static void task_a_80C9BFC(u8 taskIdA);
-static void task_a_8143CC0(u8 taskIdA);
-static void task_a_8143D04(u8 taskIdA);
-static void task_a_8143EBC(u8 taskIdA);
-static void task_a_8143F04(u8 taskIdA);
-static void task_a_8143F3C(u8 taskIdA);
-static void task_a_8143FDC(u8 taskIdA);
-static void task_a_8144024(u8 taskIdA);
-static void task_a_8144080(u8 taskIdA);
-static void task_a_8144114(u8 taskIdA);
-static void sub_8144130(void);
-static void task_b_81441B8(u8 taskIdB);
-static u8 sub_8144454(u8 page, u8 taskIdA);
-static void task_d_8144514(u8 taskIdD);
-static bool8 sub_8144ECC(u8 data, u8 taskIdA);
-static void sub_81450AC(u8 taskIdA);
-static void sub_8145128(u16, u16, u16);
-static void sub_81452D0(u16 arg0, u16 palette);
-static void spritecb_player_8145378(struct Sprite *sprite);
-static void spritecb_rival_8145420(struct Sprite *sprite);
-static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position);
-static void sub_81458DC(void);
-
-static void vblank_8143948(void)
+static void Task_WaitPaletteFade(u8 taskIdA);
+static void Task_CreditsMain(u8 taskIdA);
+static void Task_ReadyBikeScene(u8 taskIdA);
+static void Task_SetBikeScene(u8 taskIdA);
+static void Task_ReadyShowMons(u8 taskIdA);
+static void Task_LoadShowMons(u8 taskIdA);
+static void Task_CreditsTheEnd1(u8 taskIdA);
+static void Task_CreditsTheEnd2(u8 taskIdA);
+static void Task_CreditsTheEnd3(u8 taskIdA);
+static void Task_CreditsTheEnd4(u8 taskIdA);
+static void Task_CreditsTheEnd5(u8 taskIdA);
+static void Task_CreditsTheEnd6(u8 taskIdA);
+static void Task_CreditsSoftReset(u8 taskIdA);
+static void ResetGpuAndVram(void);
+static void Task_UpdatePage(u8 taskIdB);
+static u8 CheckChangeScene(u8 page, u8 taskIdA);
+static void Task_ShowMons(u8 taskIdD);
+static bool8 LoadBikeScene(u8 data, u8 taskIdA);
+static void ResetCreditsTasks(u8 taskIdA);
+static void LoadTheEndScreen(u16, u16, u16);
+static void DrawTheEnd(u16 arg0, u16 palette);
+static void SpriteCB_Player(struct Sprite *sprite);
+static void SpriteCB_Rival(struct Sprite *sprite);
+static u8 CreateCreditsMonSprite(u16 species, u16 x, u16 y, u16 position);
+static void DeterminePokemonToShow(void);
+
+static void VBlankCB_Credits(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-static void sub_814395C(void)
+static void CB2_Credits(void)
{
RunTasks();
AnimateSprites();
@@ -434,31 +438,31 @@ static void sub_814395C(void)
if ((gMain.heldKeys & B_BUTTON)
&& gHasHallOfFameRecords != 0
- && gTasks[gUnknown_02039322].func == task_a_8143B68)
+ && gTasks[sSavedTaskId].func == Task_CreditsMain)
{
- vblank_8143948();
+ VBlankCB_Credits();
RunTasks();
AnimateSprites();
BuildOamBuffer();
UpdatePaletteFade();
- gUnknown_02039325 = 1;
+ sUsedSpeedUp = 1;
}
}
-void sub_81439D0(void)
+void CB2_StartCreditsSequence(void)
{
u8 taskIdA;
s16 taskIdC;
u8 taskIdB;
u16 savedIme;
- struct Unk201C000 *c000;
+ struct CreditsData *pCreditsData;
- sub_8144130();
+ ResetGpuAndVram();
SetVBlankCallback(NULL);
ResetPaletteFade();
ResetTasks();
- taskIdA = CreateTask(task_a_8143B38, 0);
+ taskIdA = CreateTask(Task_WaitPaletteFade, 0);
gTasks[taskIdA].data[TDA_4] = 0;
gTasks[taskIdA].data[TDA_7] = 0;
@@ -467,7 +471,7 @@ void sub_81439D0(void)
while (TRUE)
{
- if (sub_8144ECC(0, taskIdA))
+ if (LoadBikeScene(0, taskIdA))
break;
}
@@ -482,7 +486,7 @@ void sub_81439D0(void)
REG_BG0VOFS = 0xFFFC;
- taskIdB = CreateTask(task_b_81441B8, 0);
+ taskIdB = CreateTask(Task_UpdatePage, 0);
gTasks[taskIdB].data[TDB_TASK_A_ID] = taskIdA;
gTasks[taskIdA].data[TDA_TASK_B_ID] = taskIdB;
@@ -496,29 +500,29 @@ void sub_81439D0(void)
REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- SetVBlankCallback(vblank_8143948);
+ SetVBlankCallback(VBlankCB_Credits);
m4aSongNumStart(MUS_CREDITS);
- SetMainCallback2(sub_814395C);
- gUnknown_02039325 = 0;
+ SetMainCallback2(CB2_Credits);
+ sUsedSpeedUp = 0;
- c000 = &ewram1c000;
+ pCreditsData = &sCreditsData;
- sub_81458DC();
+ DeterminePokemonToShow();
- c000->unk88 = 0;
- c000->unk8A = 0;
- c000->unk8C = 0;
+ pCreditsData->imgCounter = 0;
+ pCreditsData->nextImgPos = 0;
+ pCreditsData->currShownMon = 0;
- gUnknown_02039322 = taskIdA;
+ sSavedTaskId = taskIdA;
}
-static void task_a_8143B38(u8 taskIdA)
+static void Task_WaitPaletteFade(u8 taskIdA)
{
if (!gPaletteFade.active)
- gTasks[taskIdA].func = task_a_8143B68;
+ gTasks[taskIdA].func = Task_CreditsMain;
}
-static void task_a_8143B68(u8 taskIdA)
+static void Task_CreditsMain(u8 taskIdA)
{
u16 data1;
@@ -530,7 +534,7 @@ static void task_a_8143B68(u8 taskIdA)
gTasks[taskIdC].data[TDC_0] = 30;
gTasks[taskIdA].data[TDA_12] = 0x100;
- gTasks[taskIdA].func = task_a_8143EBC;
+ gTasks[taskIdA].func = Task_CreditsTheEnd1;
return;
}
@@ -542,34 +546,34 @@ static void task_a_8143B68(u8 taskIdA)
gTasks[taskIdA].data[TDA_13] = data1;
gTasks[taskIdA].data[TDA_11] = 0;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
- gTasks[taskIdA].func = task_a_8143BFC;
+ gTasks[taskIdA].func = Task_ReadyBikeScene;
}
else if (gTasks[taskIdA].data[TDA_11] == 2)
{
gTasks[taskIdA].data[TDA_13] = data1;
gTasks[taskIdA].data[TDA_11] = 0;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
- gTasks[taskIdA].func = task_a_8143CC0;
+ gTasks[taskIdA].func = Task_ReadyShowMons;
}
}
-static void task_a_8143BFC(u8 taskIdA)
+static void Task_ReadyBikeScene(u8 taskIdA)
{
if (!gPaletteFade.active)
{
REG_DISPCNT = 0;
- sub_81450AC(taskIdA);
- gTasks[taskIdA].func = task_a_80C9BFC;
+ ResetCreditsTasks(taskIdA);
+ gTasks[taskIdA].func = Task_SetBikeScene;
}
}
-static void task_a_80C9BFC(u8 taskIdA)
+static void Task_SetBikeScene(u8 taskIdA)
{
u16 backup;
SetVBlankCallback(NULL);
- if (sub_8144ECC(gTasks[taskIdA].data[TDA_7], taskIdA))
+ if (LoadBikeScene(gTasks[taskIdA].data[TDA_7], taskIdA))
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0));
@@ -579,22 +583,22 @@ static void task_a_80C9BFC(u8 taskIdA)
REG_IME = backup;
REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- SetVBlankCallback(vblank_8143948);
- gTasks[taskIdA].func = task_a_8143B38;
+ SetVBlankCallback(VBlankCB_Credits);
+ gTasks[taskIdA].func = Task_WaitPaletteFade;
}
}
-static void task_a_8143CC0(u8 taskIdA)
+static void Task_ReadyShowMons(u8 taskIdA)
{
if (!gPaletteFade.active)
{
REG_DISPCNT = 0;
- sub_81450AC(taskIdA);
- gTasks[taskIdA].func = task_a_8143D04;
+ ResetCreditsTasks(taskIdA);
+ gTasks[taskIdA].func = Task_LoadShowMons;
}
}
-void task_a_8143D04(u8 taskIdA)
+void Task_LoadShowMons(u8 taskIdA)
{
switch (gMain.state)
{
@@ -611,16 +615,16 @@ void task_a_8143D04(u8 taskIdA)
LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2);
for (i = 0; i < 0x800; i++)
- HALL_OF_FAME_SHEET_0[i] = 0x11;
+ gDecompressionBuffer[i] = 0x11;
for (i = 0; i < 0x800; i++)
- HALL_OF_FAME_SHEET_1[i] = 0x22;
+ (gDecompressionBuffer + 0x800)[i] = 0x22;
for (i = 0; i < 0x800; i++)
- HALL_OF_FAME_SHEET_2[i] = 0x33;
+ (gDecompressionBuffer + 0x1000)[i] = 0x33;
- EWRAM_1F800[0] = 0;
- EWRAM_1F800[1] = 0x53FF; // light yellow
- EWRAM_1F800[2] = 0x529F; // light red
- EWRAM_1F800[3] = 0x7E94; // light blue
+ ((u16 *)(gDecompressionBuffer + 0x1800))[0] = RGB( 0, 0, 0); // black
+ ((u16 *)(gDecompressionBuffer + 0x1800))[1] = RGB(31, 31, 20); // light yellow
+ ((u16 *)(gDecompressionBuffer + 0x1800))[2] = RGB(31, 20, 20); // light red
+ ((u16 *)(gDecompressionBuffer + 0x1800))[3] = RGB(20, 20, 31); // light blue
LoadSpriteSheet(gUnknown_0840CAA0);
LoadSpritePalette(gUnknown_0840CAB0);
@@ -629,7 +633,7 @@ void task_a_8143D04(u8 taskIdA)
break;
}
case 1:
- gTasks[taskIdA].data[TDA_TASK_D_ID] = CreateTask(task_d_8144514, 0);
+ gTasks[taskIdA].data[TDA_TASK_D_ID] = CreateTask(Task_ShowMons, 0);
gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_STATE] = 1;
gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_TASK_A_ID] = taskIdA;
gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_2] = gTasks[taskIdA].data[TDA_7];
@@ -641,13 +645,13 @@ void task_a_8143D04(u8 taskIdA)
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
gMain.state = 0;
- gUnknown_0203935C = 0;
- gTasks[taskIdA].func = task_a_8143B38;
+ gIntroCredits_MovingSceneryState = 0;
+ gTasks[taskIdA].func = Task_WaitPaletteFade;
break;
}
}
-static void task_a_8143EBC(u8 taskIdA)
+static void Task_CreditsTheEnd1(u8 taskIdA)
{
if (gTasks[taskIdA].data[TDA_12])
{
@@ -656,25 +660,25 @@ static void task_a_8143EBC(u8 taskIdA)
}
BeginNormalPaletteFade(0xFFFFFFFF, 12, 0, 16, RGB(0, 0, 0));
- gTasks[taskIdA].func = task_a_8143F04;
+ gTasks[taskIdA].func = Task_CreditsTheEnd2;
}
-static void task_a_8143F04(u8 taskIdA)
+static void Task_CreditsTheEnd2(u8 taskIdA)
{
if (!gPaletteFade.active)
{
- sub_81450AC(taskIdA);
- gTasks[taskIdA].func = task_a_8143F3C;
+ ResetCreditsTasks(taskIdA);
+ gTasks[taskIdA].func = Task_CreditsTheEnd3;
}
}
-static void task_a_8143F3C(u8 taskIdA)
+static void Task_CreditsTheEnd3(u8 taskIdA)
{
u16 backup;
- sub_8144130();
+ ResetGpuAndVram();
ResetPaletteFade();
- sub_8145128(0, 0x3800, 0);
+ LoadTheEndScreen(0, 0x3800, 0);
ResetSpriteData();
FreeAllSpritePalettes();
BeginNormalPaletteFade(0xFFFFFFFF, 8, 16, 0, RGB(0, 0, 0));
@@ -688,10 +692,10 @@ static void task_a_8143F3C(u8 taskIdA)
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON;
gTasks[taskIdA].data[TDA_0] = 0x100;
- gTasks[taskIdA].func = task_a_8143FDC;
+ gTasks[taskIdA].func = Task_CreditsTheEnd4;
}
-static void task_a_8143FDC(u8 taskIdA)
+static void Task_CreditsTheEnd4(u8 taskIdA)
{
if (gTasks[taskIdA].data[TDA_0])
{
@@ -700,22 +704,22 @@ static void task_a_8143FDC(u8 taskIdA)
}
BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 16, RGB(0, 0, 0));
- gTasks[taskIdA].func = task_a_8144024;
+ gTasks[taskIdA].func = Task_CreditsTheEnd5;
}
-static void task_a_8144024(u8 taskIdA)
+static void Task_CreditsTheEnd5(u8 taskIdA)
{
if (!gPaletteFade.active)
{
- sub_81452D0(0x3800, 0);
+ DrawTheEnd(0x3800, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB(0, 0, 0));
gTasks[taskIdA].data[TDA_0] = 7200;
- gTasks[taskIdA].func = task_a_8144080;
+ gTasks[taskIdA].func = Task_CreditsTheEnd6;
}
}
-static void task_a_8144080(u8 taskIdA)
+static void Task_CreditsTheEnd6(u8 taskIdA)
{
if (!gPaletteFade.active)
{
@@ -723,7 +727,7 @@ static void task_a_8144080(u8 taskIdA)
{
FadeOutBGM(4);
BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, FADE_COLOR_WHITE);
- gTasks[taskIdA].func = task_a_8144114;
+ gTasks[taskIdA].func = Task_CreditsSoftReset;
return;
}
@@ -731,7 +735,7 @@ static void task_a_8144080(u8 taskIdA)
{
FadeOutBGM(4);
BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, FADE_COLOR_WHITE);
- gTasks[taskIdA].func = task_a_8144114;
+ gTasks[taskIdA].func = Task_CreditsSoftReset;
return;
}
@@ -747,13 +751,13 @@ static void task_a_8144080(u8 taskIdA)
}
}
-static void task_a_8144114(u8 taskIdA)
+static void Task_CreditsSoftReset(u8 taskIdA)
{
if (!gPaletteFade.active)
SoftReset(0xFF);
}
-static void sub_8144130(void)
+static void ResetGpuAndVram(void)
{
REG_DISPCNT = 0;
@@ -775,7 +779,7 @@ static void sub_8144130(void)
DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
}
-static void task_b_81441B8(u8 taskIdB)
+static void Task_UpdatePage(u8 taskIdB)
{
u16 i;
@@ -805,7 +809,7 @@ static void task_b_81441B8(u8 taskIdB)
return;
case 2:
REG_DISPCNT &= ~DISPCNT_BG0_ON;
- if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == task_a_8143B68)
+ if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == Task_CreditsMain)
{
if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT)
{
@@ -843,7 +847,7 @@ static void task_b_81441B8(u8 taskIdB)
return;
}
- if (sub_8144454((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID]))
+ if (CheckChangeScene((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID]))
{
gTasks[taskIdB].data[TDB_0] += 1;
return;
@@ -869,7 +873,7 @@ static void task_b_81441B8(u8 taskIdB)
}
}
-static u8 sub_8144454(u8 page, u8 taskIdA)
+static u8 CheckChangeScene(u8 page, u8 taskIdA)
{
// Starts with bike + ocean + morning
@@ -934,9 +938,9 @@ static u8 sub_8144454(u8 page, u8 taskIdA)
return FALSE;
}
-static void task_d_8144514(u8 taskIdD)
+static void Task_ShowMons(u8 taskIdD)
{
- struct Unk201C000 *r6 = &ewram1c000;
+ struct CreditsData *r6 = &sCreditsData;
u8 r2;
switch (gTasks[taskIdD].data[TDD_STATE])
@@ -944,30 +948,30 @@ static void task_d_8144514(u8 taskIdD)
case 0:
break;
case 1:
- if (r6->unk8A == 0 && gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] == 0)
+ if (r6->nextImgPos == 0 && gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] == 0)
break;
gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] = 0;
gTasks[taskIdD].data[TDD_STATE]++;
break;
case 2:
- if (r6->unk88 == POKEMON_TILE_COUNT || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != task_a_8143B68)
+ if (r6->imgCounter == POKEMON_TILE_COUNT || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != Task_CreditsMain)
break;
- r2 = sub_81456B4(r6->unk0[r6->unk8C], gUnknown_0840CA00[r6->unk8A][0], gUnknown_0840CA00[r6->unk8A][1], r6->unk8A);
- if (r6->unk8C < r6->unk8E - 1)
+ r2 = CreateCreditsMonSprite(r6->monToShow[r6->currShownMon], sMonSpritePos[r6->nextImgPos][0], sMonSpritePos[r6->nextImgPos][1], r6->nextImgPos);
+ if (r6->currShownMon < r6->numMonToShow - 1)
{
- r6->unk8C++;
+ r6->currShownMon++;
gSprites[r2].data[3] = 50;
}
else
{
- r6->unk8C = 0;
+ r6->currShownMon = 0;
gSprites[r2].data[3] = 512;
}
- r6->unk88++;
- if (r6->unk8A == 2)
- r6->unk8A = 0;
+ r6->imgCounter++;
+ if (r6->nextImgPos == 2)
+ r6->nextImgPos = 0;
else
- r6->unk8A++;
+ r6->nextImgPos++;
gTasks[taskIdD].data[TDD_3] = 50;
gTasks[taskIdD].data[TDD_STATE]++;
break;
@@ -980,7 +984,7 @@ static void task_d_8144514(u8 taskIdD)
}
}
-void task_c_8144664(u8 taskIdC)
+void Task_BikeScene(u8 taskIdC)
{
switch (gTasks[taskIdC].data[TDC_0])
{
@@ -1063,7 +1067,7 @@ void task_c_8144664(u8 taskIdC)
}
}
-void task_e_8144934(u8 taskIdE)
+void Task_CycleSceneryPalette(u8 taskIdE)
{
s16 taskIdC;
@@ -1080,10 +1084,10 @@ void task_e_8144934(u8 taskIdE)
gTasks[taskIdE].data[TDE_1] = 0x7FFF;
}
}
- sub_8149020(0);
+ CycleSceneryPalette(0);
break;
case 1:
- sub_8149020(0);
+ CycleSceneryPalette(0);
break;
case 2:
if (gTasks[taskIdE].data[TDE_1] != 0x7FFF)
@@ -1097,7 +1101,7 @@ void task_e_8144934(u8 taskIdE)
gTasks[taskIdE].data[TDE_1] = 0x7FFF;
}
}
- sub_8149020(1);
+ CycleSceneryPalette(1);
break;
case 3:
if (gTasks[taskIdE].data[TDE_1] != 0x7FFF)
@@ -1113,15 +1117,15 @@ void task_e_8144934(u8 taskIdE)
gTasks[taskIdE].data[TDE_1] += 1;
}
}
- sub_8149020(1);
+ CycleSceneryPalette(1);
break;
case 4:
- sub_8149020(2);
+ CycleSceneryPalette(2);
break;
}
}
-static void sub_8144A68(u8 data, u8 taskIdA)
+static void SetBikeScene(u8 data, u8 taskIdA)
{
switch (data)
{
@@ -1182,12 +1186,12 @@ static void sub_8144A68(u8 data, u8 taskIdA)
break;
}
- gTasks[taskIdA].data[TDA_TASK_E_ID] = CreateTask(task_e_8144934, 0);
+ gTasks[taskIdA].data[TDA_TASK_E_ID] = CreateTask(Task_CycleSceneryPalette, 0);
gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_0] = data;
gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_1] = 0;
gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_TASK_A_ID] = taskIdA;
- gTasks[taskIdA].data[TDA_TASK_C_ID] = CreateTask(task_c_8144664, 0);
+ gTasks[taskIdA].data[TDA_TASK_C_ID] = CreateTask(Task_BikeScene, 0);
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_0] = 0;
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_1] = taskIdA;
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_2] = gTasks[taskIdA].data[TDA_PLAYER_CYCLIST];
@@ -1198,7 +1202,7 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_5] = UNK_DEFINE_45;
}
-static bool8 sub_8144ECC(u8 data, u8 taskIdA)
+static bool8 LoadBikeScene(u8 data, u8 taskIdA)
{
u8 spriteId;
@@ -1235,12 +1239,12 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA)
spriteId = intro_create_brendan_sprite(120, 46);
gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId;
- gSprites[spriteId].callback = spritecb_player_8145378;
+ gSprites[spriteId].callback = SpriteCB_Player;
gSprites[spriteId].anims = gSpriteAnimTable_0840CA54;
spriteId = intro_create_may_sprite(272, 46);
gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId;
- gSprites[spriteId].callback = spritecb_rival_8145420;
+ gSprites[spriteId].callback = SpriteCB_Rival;
gSprites[spriteId].anims = gSpriteAnimTable_0840CA94;
}
else
@@ -1252,18 +1256,18 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA)
spriteId = intro_create_may_sprite(120, 46);
gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId;
- gSprites[spriteId].callback = spritecb_player_8145378;
+ gSprites[spriteId].callback = SpriteCB_Player;
gSprites[spriteId].anims = gSpriteAnimTable_0840CA54;
spriteId = intro_create_brendan_sprite(272, 46);
gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId;
- gSprites[spriteId].callback = spritecb_rival_8145420;
+ gSprites[spriteId].callback = SpriteCB_Rival;
gSprites[spriteId].anims = gSpriteAnimTable_0840CA94;
};
gMain.state += 1;
break;
case 3:
- sub_8144A68(data, taskIdA);
+ SetBikeScene(data, taskIdA);
sub_8148E90(data);
gMain.state = 0;
return TRUE;
@@ -1271,7 +1275,7 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA)
return FALSE;
}
-static void sub_81450AC(u8 taskIdA)
+static void ResetCreditsTasks(u8 taskIdA)
{
if (gTasks[taskIdA].data[TDA_0] != 0)
{
@@ -1297,10 +1301,10 @@ static void sub_81450AC(u8 taskIdA)
gTasks[taskIdA].data[TDA_TASK_D_ID] = 0;
}
- gUnknown_0203935C = 1;
+ gIntroCredits_MovingSceneryState = 1;
}
-static void sub_8145128(u16 arg0, u16 arg1, u16 arg2)
+static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 arg2)
{
u16 baseTile;
u16 i;
@@ -1326,7 +1330,7 @@ static void sub_8145128(u16 arg0, u16 arg1, u16 arg2)
((u16 *) (VRAM + arg1))[13 * 32 + 4 + i] = i + 66 + baseTile;
}
-u16 sub_8145208(u8 arg0)
+u16 GetLetterMapTile(u8 arg0)
{
u16 out = (arg0 & 0x3F) + 80;
@@ -1341,7 +1345,7 @@ u16 sub_8145208(u8 arg0)
return out;
}
-void sub_814524C(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
+void DrawLetterMapTiles(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
{
u8 y, x;
const u16 tileOffset = (palette / 16) << 12;
@@ -1349,11 +1353,11 @@ void sub_814524C(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
for (y = 0; y < 5; y++)
{
for (x = 0; x < 3; x++)
- ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + sub_8145208(arg0[y * 3 + x]);
+ ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + GetLetterMapTile(arg0[y * 3 + x]);
}
}
-static void sub_81452D0(u16 arg0, u16 palette)
+static void DrawTheEnd(u16 arg0, u16 palette)
{
u16 pos;
u16 baseTile = (palette / 16) << 12;
@@ -1362,23 +1366,23 @@ static void sub_81452D0(u16 arg0, u16 palette)
((u16 *) (VRAM + arg0))[pos] = baseTile + 1;
#if ENGLISH
- sub_814524C(gUnknown_0840B83C, 3, 7, arg0, palette);
- sub_814524C(gUnknown_0840B84B, 7, 7, arg0, palette);
- sub_814524C(gUnknown_0840B85A, 11, 7, arg0, palette);
- sub_814524C(gUnknown_0840B85A, 16, 7, arg0, palette);
- sub_814524C(gUnknown_0840B869, 20, 7, arg0, palette);
- sub_814524C(gUnknown_0840B878, 24, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_T, 3, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_H, 7, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_E, 11, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_E, 16, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_N, 20, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_D, 24, 7, arg0, palette);
#elif GERMAN
- sub_814524C(gUnknown_0840B85A, 7, 7, arg0, palette);
- sub_814524C(gUnknown_0840B869, 11, 7, arg0, palette);
- sub_814524C(gUnknown_0840B878, 15, 7, arg0, palette);
- sub_814524C(gUnknown_0840B85A, 19, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_E, 7, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_N, 11, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_D, 15, 7, arg0, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_E, 19, 7, arg0, palette);
#endif
}
-static void spritecb_player_8145378(struct Sprite *sprite)
+static void SpriteCB_Player(struct Sprite *sprite)
{
- if (gUnknown_0203935C != 0)
+ if (gIntroCredits_MovingSceneryState != 0)
{
DestroySprite(sprite);
return;
@@ -1413,9 +1417,9 @@ static void spritecb_player_8145378(struct Sprite *sprite)
}
}
-static void spritecb_rival_8145420(struct Sprite *sprite)
+static void SpriteCB_Rival(struct Sprite *sprite)
{
- if (gUnknown_0203935C != 0)
+ if (gIntroCredits_MovingSceneryState != 0)
{
DestroySprite(sprite);
return;
@@ -1450,9 +1454,9 @@ static void spritecb_rival_8145420(struct Sprite *sprite)
}
}
-void spritecb_81454E0(struct Sprite *sprite)
+void SpriteCB_CreditsMon(struct Sprite *sprite)
{
- if (gUnknown_0203935C)
+ if (gIntroCredits_MovingSceneryState)
{
DestroySprite(sprite);
return;
@@ -1536,7 +1540,7 @@ void spritecb_81454E0(struct Sprite *sprite)
}
}
-static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
+static u8 CreateCreditsMonSprite(u16 species, u16 x, u16 y, u16 position)
{
u32 personality;
const u8 *lzPaletteData;
@@ -1577,7 +1581,7 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
gSprites[spriteId].oam.priority = 1;
gSprites[spriteId].data[1] = position + 1;
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].callback = spritecb_81454E0;
+ gSprites[spriteId].callback = SpriteCB_CreditsMon;
spriteId2 = CreateSprite(&gSpriteTemplate_840CAEC, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1);
gSprites[spriteId2].data[0] = spriteId;
@@ -1587,9 +1591,10 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
return spriteId;
}
-void spritecb_814580C(struct Sprite *sprite)
+void SpriteCB_CreditsMonBg(struct Sprite *sprite)
{
- if (gSprites[sprite->data[0]].data[0] == 10 || gUnknown_0203935C)
+ if (gSprites[sprite->data[0]].data[0] == 10
+ || gIntroCredits_MovingSceneryState != 0)
{
DestroySprite(sprite);
return;
@@ -1603,9 +1608,9 @@ void spritecb_814580C(struct Sprite *sprite)
sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
}
-static void sub_81458DC(void)
+static void DeterminePokemonToShow(void)
{
- struct Unk201C000 *unk201C000 = &ewram1c000;
+ struct CreditsData *creditsData = &sCreditsData;
u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON)));
u16 seenTypesCount;
u16 page;
@@ -1616,62 +1621,62 @@ static void sub_81458DC(void)
{
if (GetSetPokedexFlag(dexNum, 1))
{
- unk201C000->unk90[seenTypesCount] = dexNum;
+ creditsData->caughtMonIds[seenTypesCount] = dexNum;
seenTypesCount++;
}
}
for (dexNum = seenTypesCount; dexNum < 386; dexNum++)
- unk201C000->unk90[dexNum] = 0;
+ creditsData->caughtMonIds[dexNum] = 0;
- unk201C000->unk394 = seenTypesCount;
- if (unk201C000->unk394 < POKEMON_TILE_COUNT)
- unk201C000->unk8E = seenTypesCount;
+ creditsData->numCaughtMon = seenTypesCount;
+ if (creditsData->numCaughtMon < POKEMON_TILE_COUNT)
+ creditsData->numMonToShow = seenTypesCount;
else
- unk201C000->unk8E = POKEMON_TILE_COUNT;
+ creditsData->numMonToShow = POKEMON_TILE_COUNT;
j = 0;
do
{
- page = Random() % unk201C000->unk394;
- unk201C000->unk0[j] = unk201C000->unk90[page];
+ page = Random() % creditsData->numCaughtMon;
+ creditsData->monToShow[j] = creditsData->caughtMonIds[page];
j++;
- unk201C000->unk90[page] = 0;
- unk201C000->unk394--;
- if (page != unk201C000->unk394)
+ creditsData->caughtMonIds[page] = 0;
+ creditsData->numCaughtMon--;
+ if (page != creditsData->numCaughtMon)
{
- unk201C000->unk90[page] = unk201C000->unk90[unk201C000->unk394];
- unk201C000->unk90[unk201C000->unk394] = 0;
+ creditsData->caughtMonIds[page] = creditsData->caughtMonIds[creditsData->numCaughtMon];
+ creditsData->caughtMonIds[creditsData->numCaughtMon] = 0;
}
}
- while (unk201C000->unk394 != 0 && j < POKEMON_TILE_COUNT);
+ while (creditsData->numCaughtMon != 0 && j < POKEMON_TILE_COUNT);
- if (unk201C000->unk8E < POKEMON_TILE_COUNT)
+ if (creditsData->numMonToShow < POKEMON_TILE_COUNT)
{
- for (j = unk201C000->unk8E, page = 0; j < POKEMON_TILE_COUNT; j++)
+ for (j = creditsData->numMonToShow, page = 0; j < POKEMON_TILE_COUNT; j++)
{
- unk201C000->unk0[j] = unk201C000->unk0[page];
+ creditsData->monToShow[j] = creditsData->monToShow[page];
page++;
- if (page == unk201C000->unk8E)
+ if (page == creditsData->numMonToShow)
page = 0;
}
- unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter;
+ creditsData->monToShow[POKEMON_TILE_COUNT - 1] = starter;
}
else
{
- for (dexNum = 0; unk201C000->unk0[dexNum] != starter && dexNum < POKEMON_TILE_COUNT; dexNum++);
+ for (dexNum = 0; creditsData->monToShow[dexNum] != starter && dexNum < POKEMON_TILE_COUNT; dexNum++);
- if (dexNum < unk201C000->unk8E - 1)
+ if (dexNum < creditsData->numMonToShow - 1)
{
- unk201C000->unk0[dexNum] = unk201C000->unk0[POKEMON_TILE_COUNT - 1];
- unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter;
+ creditsData->monToShow[dexNum] = creditsData->monToShow[POKEMON_TILE_COUNT - 1];
+ creditsData->monToShow[POKEMON_TILE_COUNT - 1] = starter;
}
else
{
- unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter;
+ creditsData->monToShow[POKEMON_TILE_COUNT - 1] = starter;
}
}
- unk201C000->unk8E = POKEMON_TILE_COUNT;
+ creditsData->numMonToShow = POKEMON_TILE_COUNT;
}
diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c
index acb7a97b1..b1d12afe3 100644
--- a/src/debug/start_menu_debug.c
+++ b/src/debug/start_menu_debug.c
@@ -905,7 +905,7 @@ u8 DebugMenu_OpenWatanabe(void)
u8 DebugMenu_EndSequenceDemo(void)
{
CloseMenu();
- SetMainCallback2(sub_81439D0);
+ SetMainCallback2(CB2_StartCreditsSequence);
ScriptContext2_Enable();
return TRUE;
}
diff --git a/src/decoration.c b/src/decoration.c
index 35b9ff47f..c2d7096b4 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1457,19 +1457,19 @@ void DecorationPC(u8 taskId)
void Task_SecretBasePC_Decoration(u8 taskId)
{
DecorationPC(taskId);
- ewram_1f000.items = gSaveBlock1.secretBases[0].decorations;
- ewram_1f000.pos = gSaveBlock1.secretBases[0].decorationPos;
- ewram_1f000.size = sizeof gSaveBlock1.secretBases[0].decorations;
- ewram_1f000.isPlayerRoom = 0;
+ sDecorationContext.items = gSaveBlock1.secretBases[0].decorations;
+ sDecorationContext.pos = gSaveBlock1.secretBases[0].decorationPos;
+ sDecorationContext.size = sizeof gSaveBlock1.secretBases[0].decorations;
+ sDecorationContext.isPlayerRoom = 0;
}
void DoPlayerPCDecoration(u8 taskId)
{
DecorationPC(taskId);
- ewram_1f000.items = gSaveBlock1.playerRoomDecor;
- ewram_1f000.pos = gSaveBlock1.playerRoomDecorPos;
- ewram_1f000.size = sizeof gSaveBlock1.playerRoomDecor;
- ewram_1f000.isPlayerRoom = 1;
+ sDecorationContext.items = gSaveBlock1.playerRoomDecor;
+ sDecorationContext.pos = gSaveBlock1.playerRoomDecorPos;
+ sDecorationContext.size = sizeof gSaveBlock1.playerRoomDecor;
+ sDecorationContext.isPlayerRoom = 1;
}
void sub_80FE2B4(void)
@@ -1522,7 +1522,7 @@ void gpu_pal_decompress_alloc_tag_and_upload(u8 taskId)
Menu_EraseWindowRect(0, 0, 10, 9);
Menu_BlankWindowRect(2, 15, 27, 18);
FreeSpritePaletteByTag(6);
- if (ewram_1f000.isPlayerRoom == 0)
+ if (sDecorationContext.isPlayerRoom == 0)
{
ScriptContext1_SetupScript(SecretBase_EventScript_PCCancel);
DestroyTask(taskId);
@@ -1572,7 +1572,7 @@ void sub_80FE528(u8 taskId) // PrintDecorationCategorySelectionMenuStrings
Menu_DrawStdWindowFrame(0, 0, 14, 19);
for (decoCat=0; decoCat<8; decoCat++)
{
- if (ewram_1f000.isPlayerRoom == 1 && gTasks[taskId].data[11] == 0 && decoCat != DECORCAT_DOLL && decoCat != DECORCAT_CUSHION)
+ if (sDecorationContext.isPlayerRoom == 1 && gTasks[taskId].data[11] == 0 && decoCat != DECORCAT_DOLL && decoCat != DECORCAT_CUSHION)
{
sub_80FE470(decoCat, 1, 2 * decoCat + 1, 13); // Selectable
} else
@@ -1811,7 +1811,7 @@ void sub_80FEABC(u8 taskId, u8 dummy1)
}
if (gUnknown_020388D0[i])
{
- if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION && gTasks[taskId].data[11] == 0)
+ if (sDecorationContext.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION && gTasks[taskId].data[11] == 0)
{
StringCopy(gStringVar1, gDecorations[gUnknown_020388D0[i]].name);
sub_8072A18(gUnknown_083EC65A, 0x08, 8 * ni, 0x68, 1);
@@ -2180,9 +2180,9 @@ void sub_80FF474(void)
bool8 sub_80FF58C/*IsThereRoomForMoreDecorations*/(void)
{
u16 i;
- for (i=0; i<ewram_1f000.size; i++)
+ for (i=0; i<sDecorationContext.size; i++)
{
- if (ewram_1f000.items[i] == 0)
+ if (sDecorationContext.items[i] == 0)
{
return TRUE;
}
@@ -2192,7 +2192,7 @@ bool8 sub_80FF58C/*IsThereRoomForMoreDecorations*/(void)
void sub_80FF5BC(u8 taskId)
{
- if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION)
+ if (sDecorationContext.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION)
{
sub_80FEF74();
sub_80FED1C();
@@ -2208,8 +2208,8 @@ void sub_80FF5BC(u8 taskId)
{
sub_80FEF74();
sub_80FED1C();
- ConvertIntToDecimalStringN(gStringVar1, ewram_1f000.size, STR_CONV_MODE_RIGHT_ALIGN, 2);
- if (!ewram_1f000.isPlayerRoom)
+ ConvertIntToDecimalStringN(gStringVar1, sDecorationContext.size, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ if (!sDecorationContext.isPlayerRoom)
{
StringExpandPlaceholders(gStringVar4, gSecretBaseText_NoMoreDecor);
} else
@@ -2573,16 +2573,16 @@ void sub_81000C4(u8 taskId)
void sub_8100174(u8 taskId)
{
u16 i;
- for (i=0; i<ewram_1f000.size; i++)
+ for (i=0; i<sDecorationContext.size; i++)
{
- if (ewram_1f000.items[i] == 0)
+ if (sDecorationContext.items[i] == 0)
{
- ewram_1f000.items[i] = gUnknown_020388D0[gUnknown_020388F5];
- ewram_1f000.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7);
+ sDecorationContext.items[i] = gUnknown_020388D0[gUnknown_020388F5];
+ sDecorationContext.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7);
break;
}
}
- if (!ewram_1f000.isPlayerRoom)
+ if (!sDecorationContext.isPlayerRoom)
{
for (i=0; i<16; i++)
{
@@ -3066,8 +3066,8 @@ void sub_8100A0C(u8 taskId)
void sub_8100A60(u8 a0)
{
- ewram_1f000.items[a0] = 0;
- ewram_1f000.pos[a0] = 0;
+ sDecorationContext.items[a0] = 0;
+ sDecorationContext.pos[a0] = 0;
}
void sub_8100A7C(void)
@@ -3078,7 +3078,7 @@ void sub_8100A7C(void)
if (gSpecialVar_0x8004 == gUnknown_02039234)
{
gSpecialVar_Result = 1;
- } else if (gDecorations[ewram_1f000.items[gUnknown_020391B4[gSpecialVar_0x8004].decorId]].permission == DECORPERM_SOLID_MAT)
+ } else if (gDecorations[sDecorationContext.items[gUnknown_020391B4[gSpecialVar_0x8004].decorId]].permission == DECORPERM_SOLID_MAT)
{
gSpecialVar_0x8005 = gUnknown_020391B4[gSpecialVar_0x8004].flagId;
sub_8100A60(gUnknown_020391B4[gSpecialVar_0x8004].decorId);
@@ -3116,12 +3116,12 @@ void sub_8100B6C(void)
u8 permission;
for (i=0; i<gUnknown_02039234; i++)
{
- permission = gDecorations[ewram_1f000.items[gUnknown_020391B4[i].decorId]].permission;
- x = ewram_1f000.pos[gUnknown_020391B4[i].decorId] >> 4;
- y = ewram_1f000.pos[gUnknown_020391B4[i].decorId] & 0xf;
+ permission = gDecorations[sDecorationContext.items[gUnknown_020391B4[i].decorId]].permission;
+ x = sDecorationContext.pos[gUnknown_020391B4[i].decorId] >> 4;
+ y = sDecorationContext.pos[gUnknown_020391B4[i].decorId] & 0xf;
if (permission != DECORPERM_SOLID_MAT)
{
- if (ewram_1f000.items[gUnknown_020391B4[i].decorId] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(x + 7, y + 7) == 0x28c)
+ if (sDecorationContext.items[gUnknown_020391B4[i].decorId] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(x + 7, y + 7) == 0x28c)
{
gUnknown_020391B4[i].height++;
}
@@ -3173,9 +3173,9 @@ void sub_8100C88(u8 taskId)
bool8 sub_8100D38(u8 taskId)
{
u16 i;
- for (i=0; i<ewram_1f000.size; i++)
+ for (i=0; i<sDecorationContext.size; i++)
{
- if (ewram_1f000.items[i] != 0)
+ if (sDecorationContext.items[i] != 0)
{
gTasks[taskId].data[13] = i;
return TRUE;
@@ -3357,9 +3357,9 @@ bool8 sub_8101200(u8 taskId, u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B
u8 yOff;
x = gTasks[taskId].data[0] - 7;
y = gTasks[taskId].data[1] - 7;
- xOff = ewram_1f000.pos[decorIdx] >> 4;
- yOff = ewram_1f000.pos[decorIdx] & 0xf;
- if (ewram_1f000.items[decorIdx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28c)
+ xOff = sDecorationContext.pos[decorIdx] >> 4;
+ yOff = sDecorationContext.pos[decorIdx] & 0xf;
+ if (sDecorationContext.items[decorIdx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28c)
{
unk_020391B4->height--;
}
@@ -3376,8 +3376,8 @@ void sub_81012A0(void)
u8 xOff;
u8 yOff;
u16 i;
- xOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].decorId] >> 4;
- yOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].decorId] & 0xf;
+ xOff = sDecorationContext.pos[gUnknown_020391B4[gUnknown_02039234].decorId] >> 4;
+ yOff = sDecorationContext.pos[gUnknown_020391B4[gUnknown_02039234].decorId] & 0xf;
for (i=0; i<0x40; i++)
{
if (gSaveBlock1.objectEventTemplates[i].x == xOff && gSaveBlock1.objectEventTemplates[i].y == yOff && !FlagGet(gSaveBlock1.objectEventTemplates[i].flagId))
@@ -3391,13 +3391,13 @@ void sub_81012A0(void)
bool8 sub_8101340(u8 taskId)
{
u16 i;
- for (i=0; i<ewram_1f000.size; i++)
+ for (i=0; i<sDecorationContext.size; i++)
{
- if (ewram_1f000.items[i] != 0)
+ if (sDecorationContext.items[i] != 0)
{
- if (gDecorations[ewram_1f000.items[i]].permission == DECORPERM_SOLID_MAT)
+ if (gDecorations[sDecorationContext.items[i]].permission == DECORPERM_SOLID_MAT)
{
- sub_8101118(ewram_1f000.items[i], gUnknown_020391B4);
+ sub_8101118(sDecorationContext.items[i], gUnknown_020391B4);
if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE)
{
gUnknown_020391B4->decorId = i;
@@ -3417,11 +3417,11 @@ void sub_81013B8(u8 a0, u8 a1, u8 a2, u8 a3)
u8 xOff;
u8 yOff;
u8 decorIdx;
- for (i=0; i<ewram_1f000.size; i++)
+ for (i=0; i<sDecorationContext.size; i++)
{
- decorIdx = ewram_1f000.items[i];
- xOff = ewram_1f000.pos[i] >> 4;
- yOff = ewram_1f000.pos[i] & 0xf;
+ decorIdx = sDecorationContext.items[i];
+ xOff = sDecorationContext.pos[i] >> 4;
+ yOff = sDecorationContext.pos[i] & 0xf;
if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && a0 <= xOff && a1 <= yOff && a2 >= xOff && a3 >= yOff)
{
gUnknown_020391B4[gUnknown_02039234].decorId = i;
@@ -3442,9 +3442,9 @@ void sub_8101460(u8 taskId)
gUnknown_02039234 = 0;
if (sub_8101340(taskId) != TRUE)
{
- for (i = 0; i < ewram_1f000.size; i++)
+ for (i = 0; i < sDecorationContext.size; i++)
{
- var1 = ewram_1f000.items[i];
+ var1 = sDecorationContext.items[i];
if (var1 != 0)
{
sub_8101118(var1, gUnknown_020391B4);
@@ -3458,8 +3458,8 @@ void sub_8101460(u8 taskId)
}
if (gUnknown_02039234 != 0)
{
- xOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] >> 4;
- yOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] & 0xf;
+ xOff = sDecorationContext.pos[gUnknown_020391B4[0].decorId] >> 4;
+ yOff = sDecorationContext.pos[gUnknown_020391B4[0].decorId] & 0xf;
var1 = yOff - gUnknown_020391B4[0].height + 1;
var2 = gUnknown_020391B4[0].width + xOff - 1;
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index ca0022b39..b3cc6d0ad 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -756,7 +756,7 @@ static void sub_81428A0(u8 taskID)
if (!gPaletteFade.active)
{
DestroyTask(taskID);
- SetMainCallback2(sub_81439D0);
+ SetMainCallback2(CB2_StartCreditsSequence);
}
}
diff --git a/src/intro.c b/src/intro.c
index 5b4dc87dd..2c8b45e18 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -1153,9 +1153,9 @@ static void Task_IntroHandleBikeAndEonMovement(u8 taskId)
if (gTasks[taskId].data[3] < 512)
gTasks[taskId].data[3]++;
#ifdef SAPPHIRE
- sub_8149020(0);
+ CycleSceneryPalette(0);
#else
- sub_8149020(1);
+ CycleSceneryPalette(1);
#endif
}
diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c
index 73210c5d9..d20049136 100644
--- a/src/intro_credits_graphics.c
+++ b/src/intro_credits_graphics.c
@@ -303,7 +303,7 @@ const struct CompressedSpriteSheet gUnknown_08416E34[] = {
EWRAM_DATA u16 gUnknown_02039358 = 0;
EWRAM_DATA s16 gUnknown_0203935A = 0;
-EWRAM_DATA s16 gUnknown_0203935C = 0;
+EWRAM_DATA s16 gIntroCredits_MovingSceneryState = 0;
extern u8 gReservedSpritePaletteCount;
@@ -335,7 +335,7 @@ void load_intro_part2_graphics(u8 a)
sub_8149264();
break;
}
- gUnknown_0203935C = 0;
+ gIntroCredits_MovingSceneryState = 0;
gReservedSpritePaletteCount = 8;
}
@@ -407,7 +407,7 @@ void sub_8148CB0(u8 a)
break;
}
gReservedSpritePaletteCount = 8;
- gUnknown_0203935C = 0;
+ gIntroCredits_MovingSceneryState = 0;
}
void sub_8148E90(u8 a)
@@ -480,7 +480,7 @@ void sub_8148F3C(u8 taskId)
}
}
-void sub_8149020(u8 mode)
+void CycleSceneryPalette(u8 mode)
{
u16 x;
u16 y;
@@ -527,7 +527,7 @@ void sub_8149020(u8 mode)
void sub_814910C(struct Sprite *sprite)
{
- if (gUnknown_0203935C)
+ if (gIntroCredits_MovingSceneryState)
{
DestroySprite(sprite);
}
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 6e3f5d9e1..5a0ea0810 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -316,7 +316,7 @@ static bool8 sub_810B6C0(void)
case 10:
if (MultistepInitMenuWindowContinue())
{
- ewram1FFFF = 0;
+ ePokeblockGfxState = 0;
gMain.state++;
}
break;
@@ -334,7 +334,7 @@ static bool8 sub_810B6C0(void)
gMain.state++;
break;
case 13:
- ewram1FFFE = sub_810BA50(0x38, 0x40, 0);
+ ePokeblockCaseSpriteId = sub_810BA50(0x38, 0x40, 0);
gMain.state++;
break;
case 14:
@@ -386,27 +386,27 @@ void sub_810B96C(void)
static bool8 sub_810B998(void)
{
- switch (ewram1FFFF)
+ switch (ePokeblockGfxState)
{
case 0:
LZDecompressVram(gMenuPokeblock_Gfx, BG_CHAR_ADDR(2));
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 1:
LZDecompressWram(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 2:
LoadCompressedPalette(gMenuPokeblock_Pal, 0, 0xc0);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 3:
LoadCompressedObjectPic(&gUnknown_083F7F74);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 4:
LoadCompressedObjectPalette(&gUnknown_083F7F7C);
- ewram1FFFF = 0;
+ ePokeblockGfxState = 0;
return TRUE;
}
return FALSE;
@@ -627,7 +627,7 @@ static void sub_810BDAC(bool8 flag)
static void sub_810BF38(bool8 flag)
{
PlaySE(SE_SELECT);
- gSprites[ewram1FFFE].callback = sub_810C8D4;
+ gSprites[ePokeblockCaseSpriteId].callback = sub_810C8D4;
sub_810BDAC(flag);
}
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index b3dafef72..6a5a6eaa1 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -540,7 +540,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
case 6:
if (MultistepInitMenuWindowContinue())
{
- ewram1FFFF = 0;
+ ePokeblockGfxState = 0;
gMain.state++;
}
break;
@@ -551,11 +551,11 @@ static bool8 TransitionToPokeblockFeedScene(void)
}
break;
case 8:
- ewram1FFFD = sub_81480B4();
+ ePokeblockFeedCaseSpriteId = sub_81480B4();
gMain.state++;
break;
case 9:
- ewram1FFFE = PokeblockFeed_CreatePokeSprite(&gPlayerParty[gPokeblockMonID]);
+ ePokeblockMonSpriteId = PokeblockFeed_CreatePokeSprite(&gPlayerParty[gPokeblockMonID]);
gMain.state++;
break;
case 10:
@@ -611,13 +611,13 @@ static bool8 sub_8147B20(struct Pokemon* mon)
{
u16 species;
u32 PiD, TiD;
- switch (ewram1FFFF)
+ switch (ePokeblockGfxState)
{
case 0:
species = GetMonData(mon, MON_DATA_SPECIES2);
PiD = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (void *)EWRAM, gMonSpriteGfx_Sprite_ptr[1], species, PiD);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 1:
{
@@ -629,37 +629,37 @@ static bool8 sub_8147B20(struct Pokemon* mon)
palette = GetMonSpritePalStructFromOtIdPersonality(species, TiD, PiD);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(palette->tag, 1);
- ewram1FFFF++;
+ ePokeblockGfxState++;
}
break;
case 2:
LoadCompressedObjectPic(&gUnknown_083F7F74);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 3:
LoadCompressedObjectPalette(&gUnknown_083F7F7C);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 4:
LoadCompressedObjectPic(&sUnknown_084121DC);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 5:
SetPokeblockFeedSpritePal(gSpecialVar_ItemId);
LoadCompressedObjectPalette(&sPokeblockFeedSpritePal);
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 6:
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM));
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 7:
LZDecompressVram(gUnknown_08E782FC, (void*)(VRAM + 0xE800));
- ewram1FFFF++;
+ ePokeblockGfxState++;
break;
case 8:
LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- ewram1FFFF = 0;
+ ePokeblockGfxState = 0;
return TRUE;
}
return FALSE;
@@ -684,13 +684,13 @@ static void sub_8147CC8(u8 taskID)
sub_81481DC();
break;
case 255:
- sub_8148108(ewram1FFFD, gTasks[taskID].data[1]);
+ sub_8148108(ePokeblockFeedCaseSpriteId, gTasks[taskID].data[1]);
break;
case 269:
- ewram1FFFC = CreatePokeblockSprite();
+ ePokeblockSpriteId = CreatePokeblockSprite();
break;
case 281:
- sub_8148044(ewram1FFFE);
+ sub_8148044(ePokeblockMonSpriteId);
break;
case 297:
gTasks[taskID].func = Task_PrintAtePokeblockText;
@@ -932,8 +932,8 @@ static bool8 sub_81485CC(void)
{
u16 var = gUnknown_03005FA0[12] - gUnknown_03005FA0[4];
- gPokeblockFeedPokeSprite->pos2.x = ewram1D000_2[var];
- gPokeblockFeedPokeSprite->pos2.y = ewram1D400[var];
+ gPokeblockFeedPokeSprite->pos2.x = ePokeblockFeedMonAnimX[var];
+ gPokeblockFeedPokeSprite->pos2.y = ePokeblockFeedMonAnimY[var];
if (--gUnknown_03005FA0[4] == 0)
return TRUE;
@@ -957,18 +957,18 @@ static void sub_814862C(void)
for (i = 0; i < r7 - 1; i++)
{
- s16* r3 = &ewram1D000_2[r8 + i];
+ s16* r3 = &ePokeblockFeedMonAnimX[r8 + i];
s16 r1 = *r3 - (var3);
- s16* r5 = &ewram1D400[r8 + i];
+ s16* r5 = &ePokeblockFeedMonAnimY[r8 + i];
s16 r4 = *r5 - r9;
*r3 -= r1 * (i + 1) / r7;
*r5 -= r4 * (i + 1) / r7;
}
- ewram1D000_2[(r8 + r7) - 1] = var3;
- ewram1D400[(r8 + r7) - 1] = r9;
+ ePokeblockFeedMonAnimX[(r8 + r7) - 1] = var3;
+ ePokeblockFeedMonAnimY[(r8 + r7) - 1] = r9;
}
void sub_8148710(void)
@@ -996,13 +996,13 @@ void sub_8148710(void)
if (!var_24)
{
- ewram1D000_2[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] + r5 / 256) + r8;
- ewram1D400[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] + r5 / 256) + r7;
+ ePokeblockFeedMonAnimX[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] + r5 / 256) + r8;
+ ePokeblockFeedMonAnimY[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] + r5 / 256) + r7;
}
else
{
- ewram1D000_2[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] - r5 / 256) + r8;
- ewram1D400[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] - r5 / 256) + r7;
+ ePokeblockFeedMonAnimX[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] - r5 / 256) + r8;
+ ePokeblockFeedMonAnimY[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] - r5 / 256) + r7;
}
gUnknown_03005FA0[0] += gUnknown_03005FA0[1];
diff --git a/src/save.c b/src/save.c
index 3b6cabe6a..c03f3349e 100644
--- a/src/save.c
+++ b/src/save.c
@@ -97,11 +97,13 @@ static EWRAM_DATA u32 gLastSaveSectorStatus = 0; // used but in an unferenced fu
// Divide save blocks into individual chunks to be written to flash sectors
-#define SAVEBLOCK_CHUNK(structure, chunkNum) \
-{ \
- (u8 *)&structure + chunkNum * SECTOR_DATA_SIZE, \
- min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
-} \
+#define SAVEBLOCK_CHUNK_EX(structure, size, chunkNum) \
+{ \
+ (u8 *)structure + chunkNum * SECTOR_DATA_SIZE, \
+ min(size - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
+} \
+
+#define SAVEBLOCK_CHUNK(structure, chunkNum) SAVEBLOCK_CHUNK_EX(&structure, sizeof(structure), chunkNum)
static const struct SaveBlockChunk sSaveBlockChunks[] =
{
@@ -125,8 +127,8 @@ static const struct SaveBlockChunk sSaveBlockChunks[] =
static const struct SaveBlockChunk sHallOfFameChunks[] =
{
- SAVEBLOCK_CHUNK(*eHallOfFame, 0),
- SAVEBLOCK_CHUNK(*eHallOfFame, 1),
+ SAVEBLOCK_CHUNK_EX(gDecompressionBuffer, 2 * SECTOR_DATA_SIZE, 0),
+ SAVEBLOCK_CHUNK_EX(gDecompressionBuffer, 2 * SECTOR_DATA_SIZE, 1),
};
void Save_EraseAllData(void)