static variables to hall of fame c
This commit is contained in:
+1
-1
@@ -26,7 +26,7 @@ sub_81754DC: @ 81754DC
|
|||||||
ands r0, r1
|
ands r0, r1
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
beq _08175522
|
beq _08175522
|
||||||
ldr r0, =HasHallOfFameRecords
|
ldr r0, =gHasHallOfFameRecords
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
beq _08175522
|
beq _08175522
|
||||||
|
|||||||
+2
-2
@@ -4043,12 +4043,12 @@ sub_8137734: @ 8137734
|
|||||||
lsrs r1, r0, 24
|
lsrs r1, r0, 24
|
||||||
cmp r1, 0x1
|
cmp r1, 0x1
|
||||||
bne _08137760
|
bne _08137760
|
||||||
ldr r0, =HasHallOfFameRecords
|
ldr r0, =gHasHallOfFameRecords
|
||||||
strb r1, [r0]
|
strb r1, [r0]
|
||||||
b _0813776C
|
b _0813776C
|
||||||
.pool
|
.pool
|
||||||
_08137760:
|
_08137760:
|
||||||
ldr r1, =HasHallOfFameRecords
|
ldr r1, =gHasHallOfFameRecords
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strb r0, [r1]
|
strb r0, [r1]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
|
|||||||
+46
-62
@@ -39,35 +39,19 @@ struct HallofFameMons
|
|||||||
struct HallofFameMon mons[6];
|
struct HallofFameMon mons[6];
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct HallofFameMons *gHofMonsPtr;
|
|
||||||
|
|
||||||
struct HofGfx
|
struct HofGfx
|
||||||
{
|
{
|
||||||
u16 state;
|
u16 state;
|
||||||
u8 field_2;
|
u8 field_2[16];
|
||||||
u8 field_3;
|
|
||||||
u8 field_4;
|
|
||||||
u8 field_5;
|
|
||||||
u8 field_6;
|
|
||||||
u8 field_7;
|
|
||||||
u8 field_8;
|
|
||||||
u8 field_9;
|
|
||||||
u8 field_A;
|
|
||||||
u8 field_B;
|
|
||||||
u8 field_C;
|
|
||||||
u8 field_D;
|
|
||||||
u8 field_E;
|
|
||||||
u8 field_F;
|
|
||||||
u8 field_10;
|
|
||||||
u8 field_11;
|
|
||||||
u8 tilemap1[0x1000];
|
u8 tilemap1[0x1000];
|
||||||
u8 tilemap2[0x1000];
|
u8 tilemap2[0x1000];
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct HofGfx *gUnknown_0203BCDC;
|
static EWRAM_DATA struct HallofFameMons *sHofMonsPtr = NULL;
|
||||||
|
static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL;
|
||||||
|
|
||||||
|
extern bool8 gHasHallOfFameRecords;
|
||||||
extern u32 gUnknown_0203BCD4;
|
extern u32 gUnknown_0203BCD4;
|
||||||
extern bool8 HasHallOfFameRecords;
|
|
||||||
extern u8 gDecompressionBuffer[];
|
extern u8 gDecompressionBuffer[];
|
||||||
extern struct MusicPlayerInfo gMPlay_BGM;
|
extern struct MusicPlayerInfo gMPlay_BGM;
|
||||||
extern MainCallback gGameContinueCallback;
|
extern MainCallback gGameContinueCallback;
|
||||||
@@ -532,7 +516,7 @@ static bool8 InitHallOfFameScreen(void)
|
|||||||
case 0:
|
case 0:
|
||||||
SetVBlankCallback(NULL);
|
SetVBlankCallback(NULL);
|
||||||
ClearVramOamPltt_LoadHofPal();
|
ClearVramOamPltt_LoadHofPal();
|
||||||
gUnknown_0203BCDC = AllocZeroed(sizeof(*gUnknown_0203BCDC));
|
sHofGfxPtr = AllocZeroed(sizeof(*sHofGfxPtr));
|
||||||
gMain.state = 1;
|
gMain.state = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@@ -544,7 +528,7 @@ static bool8 InitHallOfFameScreen(void)
|
|||||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0x710);
|
SetGpuReg(REG_OFFSET_BLDALPHA, 0x710);
|
||||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||||
sub_8174FAC();
|
sub_8174FAC();
|
||||||
gUnknown_0203BCDC->state = 0;
|
sHofGfxPtr->state = 0;
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -581,7 +565,7 @@ void CB2_DoHallOfFameScreen(void)
|
|||||||
{
|
{
|
||||||
u8 taskId = CreateTask(Task_Hof_InitMonData, 0);
|
u8 taskId = CreateTask(Task_Hof_InitMonData, 0);
|
||||||
gTasks[taskId].tDontSaveData = FALSE;
|
gTasks[taskId].tDontSaveData = FALSE;
|
||||||
gHofMonsPtr = AllocZeroed(sizeof(*gHofMonsPtr));
|
sHofMonsPtr = AllocZeroed(sizeof(*sHofMonsPtr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -591,7 +575,7 @@ void CB2_DoHallOfFameScreenDontSaveData(void)
|
|||||||
{
|
{
|
||||||
u8 taskId = CreateTask(Task_Hof_InitMonData, 0);
|
u8 taskId = CreateTask(Task_Hof_InitMonData, 0);
|
||||||
gTasks[taskId].tDontSaveData = TRUE;
|
gTasks[taskId].tDontSaveData = TRUE;
|
||||||
gHofMonsPtr = AllocZeroed(sizeof(*gHofMonsPtr));
|
sHofMonsPtr = AllocZeroed(sizeof(*sHofMonsPtr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,24 +590,24 @@ static void Task_Hof_InitMonData(u8 taskId)
|
|||||||
u8 nick[POKEMON_NAME_LENGTH + 2];
|
u8 nick[POKEMON_NAME_LENGTH + 2];
|
||||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
|
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
|
||||||
{
|
{
|
||||||
gHofMonsPtr->mons[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
|
sHofMonsPtr->mons[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
|
||||||
gHofMonsPtr->mons[i].tid = GetMonData(&gPlayerParty[i], MON_DATA_OT_ID);
|
sHofMonsPtr->mons[i].tid = GetMonData(&gPlayerParty[i], MON_DATA_OT_ID);
|
||||||
gHofMonsPtr->mons[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
|
sHofMonsPtr->mons[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
|
||||||
gHofMonsPtr->mons[i].lvl = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
|
sHofMonsPtr->mons[i].lvl = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
|
||||||
GetMonData(&gPlayerParty[i], MON_DATA_NICKNAME, nick);
|
GetMonData(&gPlayerParty[i], MON_DATA_NICKNAME, nick);
|
||||||
for (j = 0; j < POKEMON_NAME_LENGTH; j++)
|
for (j = 0; j < POKEMON_NAME_LENGTH; j++)
|
||||||
{
|
{
|
||||||
gHofMonsPtr->mons[i].nick[j] = nick[j];
|
sHofMonsPtr->mons[i].nick[j] = nick[j];
|
||||||
}
|
}
|
||||||
gTasks[taskId].tPokesNumber++;
|
gTasks[taskId].tPokesNumber++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gHofMonsPtr->mons[i].species = 0;
|
sHofMonsPtr->mons[i].species = 0;
|
||||||
gHofMonsPtr->mons[i].tid = 0;
|
sHofMonsPtr->mons[i].tid = 0;
|
||||||
gHofMonsPtr->mons[i].personality = 0;
|
sHofMonsPtr->mons[i].personality = 0;
|
||||||
gHofMonsPtr->mons[i].lvl = 0;
|
sHofMonsPtr->mons[i].lvl = 0;
|
||||||
gHofMonsPtr->mons[i].nick[0] = EOS;
|
sHofMonsPtr->mons[i].nick[0] = EOS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -647,7 +631,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
|
|||||||
u16 i;
|
u16 i;
|
||||||
struct HallofFameMons* lastSavedTeam = (struct HallofFameMons*)(gDecompressionBuffer);
|
struct HallofFameMons* lastSavedTeam = (struct HallofFameMons*)(gDecompressionBuffer);
|
||||||
|
|
||||||
if (!HasHallOfFameRecords)
|
if (!gHasHallOfFameRecords)
|
||||||
{
|
{
|
||||||
memset(gDecompressionBuffer, 0, 0x2000);
|
memset(gDecompressionBuffer, 0, 0x2000);
|
||||||
}
|
}
|
||||||
@@ -673,7 +657,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
|
|||||||
}
|
}
|
||||||
lastSavedTeam--;
|
lastSavedTeam--;
|
||||||
}
|
}
|
||||||
*lastSavedTeam = *gHofMonsPtr;
|
*lastSavedTeam = *sHofMonsPtr;
|
||||||
|
|
||||||
sub_81973C4(0, 0);
|
sub_81973C4(0, 0);
|
||||||
AddTextPrinterParametrized(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
|
AddTextPrinterParametrized(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
|
||||||
@@ -690,10 +674,10 @@ static void Task_Hof_TrySaveData(u8 taskId)
|
|||||||
UnsetBgTilemapBuffer(3);
|
UnsetBgTilemapBuffer(3);
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
|
|
||||||
if (gUnknown_0203BCDC != NULL)
|
if (sHofGfxPtr != NULL)
|
||||||
FREE_AND_SET_NULL(gUnknown_0203BCDC);
|
FREE_AND_SET_NULL(sHofGfxPtr);
|
||||||
if (gHofMonsPtr != NULL)
|
if (sHofMonsPtr != NULL)
|
||||||
FREE_AND_SET_NULL(gHofMonsPtr);
|
FREE_AND_SET_NULL(sHofMonsPtr);
|
||||||
|
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
@@ -728,7 +712,7 @@ static void Task_Hof_DisplayMon(u8 taskId)
|
|||||||
s16 xPos, yPos, field4, field6;
|
s16 xPos, yPos, field4, field6;
|
||||||
|
|
||||||
u16 currMonId = gTasks[taskId].tDisplayedMonId;
|
u16 currMonId = gTasks[taskId].tDisplayedMonId;
|
||||||
struct HallofFameMon* currMon = &gHofMonsPtr->mons[currMonId];
|
struct HallofFameMon* currMon = &sHofMonsPtr->mons[currMonId];
|
||||||
|
|
||||||
if (gTasks[taskId].tPokesNumber > 3)
|
if (gTasks[taskId].tPokesNumber > 3)
|
||||||
{
|
{
|
||||||
@@ -762,7 +746,7 @@ static void Task_Hof_DisplayMon(u8 taskId)
|
|||||||
static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId)
|
static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 currMonId = gTasks[taskId].tDisplayedMonId;
|
u16 currMonId = gTasks[taskId].tDisplayedMonId;
|
||||||
struct HallofFameMon* currMon = &gHofMonsPtr->mons[currMonId];
|
struct HallofFameMon* currMon = &sHofMonsPtr->mons[currMonId];
|
||||||
struct Sprite *monSprite = &gSprites[gTasks[taskId].tMonSpriteId(currMonId)];
|
struct Sprite *monSprite = &gSprites[gTasks[taskId].tMonSpriteId(currMonId)];
|
||||||
|
|
||||||
if (monSprite->callback == SpriteCallbackDummy)
|
if (monSprite->callback == SpriteCallbackDummy)
|
||||||
@@ -777,7 +761,7 @@ static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId)
|
|||||||
static void Task_Hof_TryDisplayAnotherMon(u8 taskId)
|
static void Task_Hof_TryDisplayAnotherMon(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 currPokeID = gTasks[taskId].tDisplayedMonId;
|
u16 currPokeID = gTasks[taskId].tDisplayedMonId;
|
||||||
struct HallofFameMon* currMon = &gHofMonsPtr->mons[currPokeID];
|
struct HallofFameMon* currMon = &sHofMonsPtr->mons[currPokeID];
|
||||||
|
|
||||||
if (gTasks[taskId].tFrameCount != 0)
|
if (gTasks[taskId].tFrameCount != 0)
|
||||||
{
|
{
|
||||||
@@ -931,10 +915,10 @@ static void Task_Hof_HandleExit(u8 taskId)
|
|||||||
ResetBgsAndClearDma3BusyFlags(0);
|
ResetBgsAndClearDma3BusyFlags(0);
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
|
|
||||||
if (gUnknown_0203BCDC != NULL)
|
if (sHofGfxPtr != NULL)
|
||||||
FREE_AND_SET_NULL(gUnknown_0203BCDC);
|
FREE_AND_SET_NULL(sHofGfxPtr);
|
||||||
if (gHofMonsPtr != NULL)
|
if (sHofMonsPtr != NULL)
|
||||||
FREE_AND_SET_NULL(gHofMonsPtr);
|
FREE_AND_SET_NULL(sHofMonsPtr);
|
||||||
|
|
||||||
SetCallback2AfterHallOfFameDisplay();
|
SetCallback2AfterHallOfFameDisplay();
|
||||||
}
|
}
|
||||||
@@ -966,7 +950,7 @@ void CB2_DoHallOfFamePC(void)
|
|||||||
default:
|
default:
|
||||||
SetVBlankCallback(NULL);
|
SetVBlankCallback(NULL);
|
||||||
ClearVramOamPltt_LoadHofPal();
|
ClearVramOamPltt_LoadHofPal();
|
||||||
gUnknown_0203BCDC = AllocZeroed(sizeof(*gUnknown_0203BCDC));
|
sHofGfxPtr = AllocZeroed(sizeof(*sHofGfxPtr));
|
||||||
gMain.state = 1;
|
gMain.state = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@@ -1012,7 +996,7 @@ void CB2_DoHallOfFamePC(void)
|
|||||||
gTasks[taskId].tMonSpriteId(i) = 0xFF;
|
gTasks[taskId].tMonSpriteId(i) = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
gHofMonsPtr = AllocZeroed(0x2000);
|
sHofMonsPtr = AllocZeroed(0x2000);
|
||||||
SetMainCallback2(CB2_HallOfFame);
|
SetMainCallback2(CB2_HallOfFame);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1031,8 +1015,8 @@ static void Task_HofPC_CopySaveData(u8 taskId)
|
|||||||
u16 i;
|
u16 i;
|
||||||
struct HallofFameMons* savedTeams;
|
struct HallofFameMons* savedTeams;
|
||||||
|
|
||||||
CpuCopy16(gDecompressionBuffer, gHofMonsPtr, 0x2000);
|
CpuCopy16(gDecompressionBuffer, sHofMonsPtr, 0x2000);
|
||||||
savedTeams = gHofMonsPtr;
|
savedTeams = sHofMonsPtr;
|
||||||
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
|
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
|
||||||
{
|
{
|
||||||
if (savedTeams->mons[0].species == SPECIES_NONE)
|
if (savedTeams->mons[0].species == SPECIES_NONE)
|
||||||
@@ -1052,7 +1036,7 @@ static void Task_HofPC_CopySaveData(u8 taskId)
|
|||||||
|
|
||||||
static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
|
static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
|
||||||
{
|
{
|
||||||
struct HallofFameMons* savedTeams = gHofMonsPtr;
|
struct HallofFameMons* savedTeams = sHofMonsPtr;
|
||||||
struct HallofFameMon* currMon;
|
struct HallofFameMon* currMon;
|
||||||
u16 i;
|
u16 i;
|
||||||
|
|
||||||
@@ -1118,7 +1102,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
|
|||||||
|
|
||||||
static void Task_HofPC_PrintMonInfo(u8 taskId)
|
static void Task_HofPC_PrintMonInfo(u8 taskId)
|
||||||
{
|
{
|
||||||
struct HallofFameMons* savedTeams = gHofMonsPtr;
|
struct HallofFameMons* savedTeams = sHofMonsPtr;
|
||||||
struct HallofFameMon* currMon;
|
struct HallofFameMon* currMon;
|
||||||
u16 i;
|
u16 i;
|
||||||
u16 currMonID;
|
u16 currMonID;
|
||||||
@@ -1239,10 +1223,10 @@ static void Task_HofPC_HandleExit(u8 taskId)
|
|||||||
ResetBgsAndClearDma3BusyFlags(0);
|
ResetBgsAndClearDma3BusyFlags(0);
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
|
|
||||||
if (gUnknown_0203BCDC != NULL)
|
if (sHofGfxPtr != NULL)
|
||||||
FREE_AND_SET_NULL(gUnknown_0203BCDC);
|
FREE_AND_SET_NULL(sHofGfxPtr);
|
||||||
if (gHofMonsPtr != NULL)
|
if (sHofMonsPtr != NULL)
|
||||||
FREE_AND_SET_NULL(gHofMonsPtr);
|
FREE_AND_SET_NULL(sHofMonsPtr);
|
||||||
|
|
||||||
sub_8137C3C();
|
sub_8137C3C();
|
||||||
}
|
}
|
||||||
@@ -1453,8 +1437,8 @@ static void sub_8174FAC(void)
|
|||||||
{
|
{
|
||||||
ResetBgsAndClearDma3BusyFlags(0);
|
ResetBgsAndClearDma3BusyFlags(0);
|
||||||
InitBgsFromTemplates(0, sHof_BgTemplates, ARRAY_COUNT(sHof_BgTemplates));
|
InitBgsFromTemplates(0, sHof_BgTemplates, ARRAY_COUNT(sHof_BgTemplates));
|
||||||
SetBgTilemapBuffer(1, gUnknown_0203BCDC->tilemap1);
|
SetBgTilemapBuffer(1, sHofGfxPtr->tilemap1);
|
||||||
SetBgTilemapBuffer(3, gUnknown_0203BCDC->tilemap2);
|
SetBgTilemapBuffer(3, sHofGfxPtr->tilemap2);
|
||||||
ChangeBgX(0, 0, 0);
|
ChangeBgX(0, 0, 0);
|
||||||
ChangeBgY(0, 0, 0);
|
ChangeBgY(0, 0, 0);
|
||||||
ChangeBgX(1, 0, 0);
|
ChangeBgX(1, 0, 0);
|
||||||
@@ -1465,7 +1449,7 @@ static void sub_8174FAC(void)
|
|||||||
|
|
||||||
static bool8 sub_8175024(void)
|
static bool8 sub_8175024(void)
|
||||||
{
|
{
|
||||||
switch (gUnknown_0203BCDC->state)
|
switch (sHofGfxPtr->state)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
decompress_and_copy_tile_data_to_vram(1, sHallOfFame_Gfx, 0, 0, 0);
|
decompress_and_copy_tile_data_to_vram(1, sHallOfFame_Gfx, 0, 0, 0);
|
||||||
@@ -1492,11 +1476,11 @@ static bool8 sub_8175024(void)
|
|||||||
ShowBg(0);
|
ShowBg(0);
|
||||||
ShowBg(1);
|
ShowBg(1);
|
||||||
ShowBg(3);
|
ShowBg(3);
|
||||||
gUnknown_0203BCDC->state = 0;
|
sHofGfxPtr->state = 0;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gUnknown_0203BCDC->state++;
|
sHofGfxPtr->state++;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-6
@@ -1404,11 +1404,7 @@ gUnknown_0203BCD0: @ 203BCD0
|
|||||||
gUnknown_0203BCD4: @ 203BCD4
|
gUnknown_0203BCD4: @ 203BCD4
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
gHofMonsPtr: @ 203BCD8
|
.include "src/hall_of_fame.o"
|
||||||
.space 0x4
|
|
||||||
|
|
||||||
gUnknown_0203BCDC: @ 203BCDC
|
|
||||||
.space 0x4
|
|
||||||
|
|
||||||
gUnknown_0203BCE0: @ 203BCE0
|
gUnknown_0203BCE0: @ 203BCE0
|
||||||
.space 0x2
|
.space 0x2
|
||||||
@@ -1416,7 +1412,7 @@ gUnknown_0203BCE0: @ 203BCE0
|
|||||||
gUnknown_0203BCE2: @ 203BCE2
|
gUnknown_0203BCE2: @ 203BCE2
|
||||||
.space 0x2
|
.space 0x2
|
||||||
|
|
||||||
HasHallOfFameRecords: @ 203BCE4
|
gHasHallOfFameRecords: @ 203BCE4
|
||||||
.space 0x1
|
.space 0x1
|
||||||
|
|
||||||
gUnknown_0203BCE5: @ 203BCE5
|
gUnknown_0203BCE5: @ 203BCE5
|
||||||
|
|||||||
Reference in New Issue
Block a user