summaryrefslogtreecommitdiff
path: root/src/pokenav_conditions_2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokenav_conditions_2.c')
-rw-r--r--src/pokenav_conditions_2.c589
1 files changed, 295 insertions, 294 deletions
diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c
index 7c536cd6a..dc845ecab 100644
--- a/src/pokenav_conditions_2.c
+++ b/src/pokenav_conditions_2.c
@@ -15,22 +15,22 @@
#include "strings.h"
#include "text.h"
-u32 sub_81CE37C(s32);
-u32 sub_81CE2D0(s32);
-u32 sub_81CE4D8(s32);
-u32 sub_81CE5E4(s32);
-u32 sub_81CE6BC(s32);
-u32 sub_81CE700(s32);
+u32 LoopedTask_TransitionMons(s32);
+u32 LoopedTask_ExitPartyConditionMenu(s32);
+u32 LoopedTask_MoveCursorNoTransition(s32);
+u32 LoopedTask_SlideMonOut(s32);
+u32 LoopedTask_OpenMonMarkingsWindow(s32);
+u32 LoopedTask_CloseMonMarkingsWindow(s32);
BSS_DATA u8 gUnknown_030012BC;
const u16 gConditionGraphData_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph_data.gbapal");
const u16 gConditionText_Pal[] = INCBIN_U16("graphics/pokenav/condition/text.gbapal");
const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz");
-const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz");
-const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal");
+const u32 sConditionGraph_Tilemap[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz");
+const u16 sConditionGraphMonMarkingsPal[] = INCBIN_U16("graphics/pokenav/8623338.gbapal");
-const struct BgTemplate gUnknown_08623358[3] =
+const struct BgTemplate sPartyConditionBgTemplates[3] =
{
{
.bg = 1,
@@ -61,7 +61,7 @@ const struct BgTemplate gUnknown_08623358[3] =
}
};
-const struct WindowTemplate gUnknown_08623364 =
+const struct WindowTemplate sMonNameGenderWindowTemplate =
{
.bg = 1,
.tilemapLeft = 13,
@@ -72,7 +72,7 @@ const struct WindowTemplate gUnknown_08623364 =
.baseBlock = 2
};
-const struct WindowTemplate gUnknown_0862336C =
+const struct WindowTemplate sConditionGraphListIdWindowTemplate =
{
.bg = 1,
.tilemapLeft = 1,
@@ -83,7 +83,7 @@ const struct WindowTemplate gUnknown_0862336C =
.baseBlock = 0x36
};
-const struct WindowTemplate gUnknown_08623374 =
+const struct WindowTemplate sUnusedWindowTemplate1 =
{
.bg = 1,
.tilemapLeft = 1,
@@ -94,7 +94,7 @@ const struct WindowTemplate gUnknown_08623374 =
.baseBlock = 0x44
};
-const struct WindowTemplate gUnknown_0862337C =
+const struct WindowTemplate sUnusedWindowTemplate2 =
{
.bg = 1,
.tilemapLeft = 13,
@@ -105,15 +105,15 @@ const struct WindowTemplate gUnknown_0862337C =
.baseBlock = 0x44
};
-const LoopedTask gUnknown_08623384[] =
+const LoopedTask sPartyConditionLoopedTaskFuncs[] =
{
- NULL,
- sub_81CE37C,
- sub_81CE2D0,
- sub_81CE4D8,
- sub_81CE5E4,
- sub_81CE6BC,
- sub_81CE700
+ [PARTY_CONDITION_FUNC_NONE] = NULL,
+ [PARTY_CONDITION_FUNC_SLIDE_MON_IN] = LoopedTask_TransitionMons,
+ [PARTY_CONDITION_FUNC_RETURN] = LoopedTask_ExitPartyConditionMenu,
+ [PARTY_CONDITION_FUNC_NO_TRANSITION] = LoopedTask_MoveCursorNoTransition,
+ [PARTY_CONDITION_FUNC_SLIDE_MON_OUT] = LoopedTask_SlideMonOut,
+ [PARTY_CONDITION_FUNC_ADD_MARKINGS] = LoopedTask_OpenMonMarkingsWindow,
+ [PARTY_CONDITION_FUNC_CLOSE_MARKINGS] = LoopedTask_CloseMonMarkingsWindow
};
struct Pokenav7Struct
@@ -121,84 +121,84 @@ struct Pokenav7Struct
u32 loopedTaskId;
u8 tilemapBuffers[3][BG_SCREEN_SIZE];
u8 filler[2];
- u8 unk1806[10];
- u32 (*unk1810)(void);
- s16 unk1814;
- u8 unk1816;
- u16 unk1818;
- u16 unk181A;
+ u8 partyPokeballSpriteIds[10];
+ u32 (*callback)(void);
+ s16 monTransitionX;
+ u8 monPicSpriteId;
+ u16 monPalIndex;
+ u16 monGfxTileStart;
void *unk181C;
- u8 unk1820;
- u8 unk1821;
- u8 unk1822;
- u8 unk1823;
+ u8 nameGenderWindowId;
+ u8 listIndexWindowId;
+ u8 unusedWindowId1;
+ u8 unusedWindowId2;
struct PokemonMarkMenu monMarks;
- struct Sprite *unk28dc;
- struct Sprite *unk28e0[MAX_CONDITION_SPARKLES];
- u8 unk2908;
+ struct Sprite *monMarksSprite;
+ struct Sprite *conditionSparkleSprites[MAX_CONDITION_SPARKLES];
+ u8 windowModeState;
u8 filler2[0x38ac - 0x2909];
};
-extern s8 sub_81CDC84(void); // This function's declaration here is different than its definition in pokenav_unk_6. u8/s8
+extern s8 GetMonMarkIndex(void); // This function's declaration here is different than its definition in pokenav_unk_6. u8/s8
-u32 sub_81CDE94(s32 state);
-u32 sub_81CDE80(void);
-void sub_81CED30(u8 var);
-void sub_81CE9E4(void);
-void sub_81CE934(void);
-bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2);
+u32 LoopedTask_OpenPartyConditionGraph(s32 state);
+u32 GetPartyConditionLoopedTaskActive(void);
+void CreateConditionMonPic(u8 var);
+void CreateMonMarkingsOrPokeballIndicators(void);
+void CopyUnusedConditionWindowsToVram(void);
+bool32 UpdateConditionGraphWindows(u8 a0, u16 a1, bool8 a2);
void sub_81CEE44(void);
-void sub_81CEE90(void);
+void DoConditionGraphTransition(void);
void sub_81CEEC8(void);
void sub_81CEE68(void);
-void sub_81CEE74(bool8 showBg);
+void ToggleBg2(bool8 showBg);
// code
-bool32 sub_81CDDD4(void)
+bool32 OpenPartyConditionMenu(void)
{
- struct Pokenav7Struct *structPtr = AllocSubstruct(0xC, sizeof(struct Pokenav7Struct));
+ struct Pokenav7Struct *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_MON_MARK_MENU, sizeof(struct Pokenav7Struct));
if (structPtr == NULL)
return FALSE;
- structPtr->unk1816 = 0xFF;
- structPtr->loopedTaskId = CreateLoopedTask(sub_81CDE94, 1);
- structPtr->unk1810 = sub_81CDE80;
- structPtr->unk2908 = 0;
+ structPtr->monPicSpriteId = 0xFF;
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_OpenPartyConditionGraph, 1);
+ structPtr->callback = GetPartyConditionLoopedTaskActive;
+ structPtr->windowModeState = 0;
return TRUE;
}
-void sub_81CDE2C(s32 id)
+void CreatePartyConditionLoopedTask(s32 id)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08623384[id], 1);
- structPtr->unk1810 = sub_81CDE80;
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ structPtr->loopedTaskId = CreateLoopedTask(sPartyConditionLoopedTaskFuncs[id], 1);
+ structPtr->callback = GetPartyConditionLoopedTaskActive;
}
-u32 sub_81CDE64(void)
+u32 IsPartyConditionLoopedTaskActive(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- return structPtr->unk1810();
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ return structPtr->callback();
}
-u32 sub_81CDE80(void)
+u32 GetPartyConditionLoopedTaskActive(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
return IsLoopedTaskActive(structPtr->loopedTaskId);
}
-u32 sub_81CDE94(s32 state)
+u32 LoopedTask_OpenPartyConditionGraph(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
- if (sub_81CD3C4() != TRUE)
+ if (LoadPartyConditionMenuGfx() != TRUE)
return LT_PAUSE;
return LT_INC_AND_PAUSE;
case 1:
- InitBgTemplates(gUnknown_08623358, ARRAY_COUNT(gUnknown_08623358));
+ InitBgTemplates(sPartyConditionBgTemplates, ARRAY_COUNT(sPartyConditionBgTemplates));
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
ChangeBgX(2, 0, 0);
@@ -221,23 +221,23 @@ u32 sub_81CDE94(s32 state)
LZ77UnCompVram(gPokenavCondition_Tilemap, structPtr->tilemapBuffers[0]);
SetBgTilemapBuffer(3, structPtr->tilemapBuffers[0]);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
CopyToBgTilemapBufferRect(3, gPokenavOptions_Tilemap, 0, 5, 9, 4);
CopyBgTilemapBufferToVram(3);
CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20);
CopyPaletteIntoBufferUnfaded(gConditionText_Pal, 0xF0, 0x20);
- structPtr->unk1814 = -80;
+ structPtr->monTransitionX = -80;
return LT_INC_AND_PAUSE;
case 4:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]);
+ LZ77UnCompVram(sConditionGraph_Tilemap, structPtr->tilemapBuffers[2]);
SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]);
CopyBgTilemapBufferToVram(2);
CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, 0x30, 0x20);
- sub_81D21DC(2);
+ SetConditionGraphIOWindows(2);
return LT_INC_AND_PAUSE;
case 5:
sub_8199DF0(1, 0, 0, 1);
@@ -249,85 +249,85 @@ u32 sub_81CDE94(s32 state)
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- structPtr->unk1820 = AddWindow(&gUnknown_08623364);
- if (sub_81CDD5C() == TRUE)
+ structPtr->nameGenderWindowId = AddWindow(&sMonNameGenderWindowTemplate);
+ if (IsConditionMenuSearchMode() == TRUE)
{
- structPtr->unk1821 = AddWindow(&gUnknown_0862336C);
- structPtr->unk1822 = AddWindow(&gUnknown_08623374);
- structPtr->unk1823 = AddWindow(&gUnknown_0862337C);
+ structPtr->listIndexWindowId = AddWindow(&sConditionGraphListIdWindowTemplate);
+ structPtr->unusedWindowId1 = AddWindow(&sUnusedWindowTemplate1);
+ structPtr->unusedWindowId2 = AddWindow(&sUnusedWindowTemplate2);
}
DeactivateAllTextPrinters();
return LT_INC_AND_PAUSE;
case 7:
- sub_81CED30(0);
+ CreateConditionMonPic(0);
return LT_INC_AND_PAUSE;
case 8:
- sub_81CE9E4();
+ CreateMonMarkingsOrPokeballIndicators();
return LT_INC_AND_PAUSE;
case 9:
- if (sub_81CDD5C() == TRUE)
- sub_81CE934();
+ if (IsConditionMenuSearchMode() == TRUE)
+ CopyUnusedConditionWindowsToVram();
return LT_INC_AND_PAUSE;
case 10:
- sub_81CE754(0, sub_81CDC84(), TRUE);
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), TRUE);
return LT_INC_AND_PAUSE;
case 11:
- sub_81CE754(1, sub_81CDC84(), TRUE);
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), TRUE);
return LT_INC_AND_PAUSE;
case 12:
- sub_81CE754(2, sub_81CDC84(), TRUE);
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), TRUE);
return LT_INC_AND_PAUSE;
case 13:
- if (sub_81CE754(3, sub_81CDC84(), TRUE) != TRUE)
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), TRUE) != TRUE)
return LT_PAUSE;
- PutWindowTilemap(structPtr->unk1820);
- if (sub_81CDD5C() == TRUE)
+ PutWindowTilemap(structPtr->nameGenderWindowId);
+ if (IsConditionMenuSearchMode() == TRUE)
{
- PutWindowTilemap(structPtr->unk1821);
- PutWindowTilemap(structPtr->unk1822);
- PutWindowTilemap(structPtr->unk1823);
+ PutWindowTilemap(structPtr->listIndexWindowId);
+ PutWindowTilemap(structPtr->unusedWindowId1);
+ PutWindowTilemap(structPtr->unusedWindowId2);
}
return LT_INC_AND_PAUSE;
case 14:
ShowBg(1);
HideBg(2);
ShowBg(3);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
return LT_INC_AND_PAUSE;
case 15:
PokenavFadeScreen(1);
- if (!sub_81CDD5C())
+ if (!IsConditionMenuSearchMode())
{
- LoadLeftHeaderGfxForIndex(6);
- sub_81C7FA0(1, TRUE, 0);
- sub_81C7FA0(6, TRUE, 0);
+ LoadLeftHeaderGfxForIndex(POKENAV_GFX_PARTY_MENU);
+ ShowLeftHeaderGfx(POKENAV_GFX_CONDITION_MENU, TRUE, 0);
+ ShowLeftHeaderGfx(POKENAV_GFX_PARTY_MENU, TRUE, 0);
}
return LT_INC_AND_PAUSE;
case 16:
if (IsPaletteFadeActive())
return LT_PAUSE;
- if (!sub_81CDD5C() && sub_81C8010())
+ if (!IsConditionMenuSearchMode() && AreLeftHeaderSpritesMoving())
return LT_PAUSE;
SetVBlankCallback_(sub_81CEE44);
return LT_INC_AND_PAUSE;
case 17:
- sub_81CEE90();
- sub_81D20AC(sub_81CDC70());
+ DoConditionGraphTransition();
+ InitConditionGraphState(GetConditionGraphDataPtr());
return LT_INC_AND_PAUSE;
case 18:
- if (sub_81D20BC(sub_81CDC70()))
+ if (SetupConditionGraphScanlineParams(GetConditionGraphDataPtr()))
return LT_PAUSE;
return LT_INC_AND_PAUSE;
case 19:
- sub_81CEE74(TRUE);
+ ToggleBg2(TRUE);
return LT_INC_AND_PAUSE;
case 20:
- if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814))
+ if (!TryUpdateConditionMonTransitionOn(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
{
- ResetConditionSparkleSprites(structPtr->unk28e0);
- if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50())
- CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
+ ResetConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ if (IsConditionMenuSearchMode() == TRUE || GetConditionGraphCurrentMonIndex() != GetMonListCount())
+ CreateConditionSparkleSprites(structPtr->conditionSparkleSprites, structPtr->monPicSpriteId, GetMonSheen());
return LT_FINISH;
}
@@ -337,211 +337,211 @@ u32 sub_81CDE94(s32 state)
return LT_FINISH;
}
-u32 sub_81CE2D0(s32 state)
+u32 LoopedTask_ExitPartyConditionMenu(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
sub_81CEEC8();
- DestroyConditionSparkleSprites(structPtr->unk28e0);
- return 1;
+ DestroyConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ return LT_INC_AND_CONTINUE;
case 1:
- if (TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814))
+ if (TryUpdateConditionMonTransitionOff(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
return 2;
- sub_81CEE74(FALSE);
- return 1;
+ ToggleBg2(FALSE);
+ return LT_INC_AND_CONTINUE;
case 2:
PokenavFadeScreen(0);
- if (!sub_81CDD5C())
- sub_81C78A0();
- return 0;
+ if (!IsConditionMenuSearchMode())
+ SlideMenuHeaderDown();
+ return LT_INC_AND_PAUSE;
case 3:
if (IsPaletteFadeActive() || MainMenuLoopedTaskIsBusy())
- return 2;
- FreeConditionSparkles(structPtr->unk28e0);
+ return LT_PAUSE;
+ FreeConditionSparkles(structPtr->conditionSparkleSprites);
HideBg(1);
HideBg(2);
HideBg(3);
- return 1;
+ return LT_INC_AND_CONTINUE;
}
return LT_FINISH;
}
-u32 sub_81CE37C(s32 state)
+u32 LoopedTask_TransitionMons(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- struct ConditionGraph *unkPtr = sub_81CDC70();
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ struct ConditionGraph *unkPtr = GetConditionGraphDataPtr();
switch (state)
{
case 0:
- sub_81CD548(0);
- return 1;
+ SetConditionGraphData(0);
+ return LT_INC_AND_CONTINUE;
case 1:
- sub_81CD548(1);
- return 1;
+ SetConditionGraphData(1);
+ return LT_INC_AND_CONTINUE;
case 2:
- sub_81CD548(2);
- DestroyConditionSparkleSprites(structPtr->unk28e0);
- return 1;
+ SetConditionGraphData(2);
+ DestroyConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ return LT_INC_AND_CONTINUE;
case 3:
TransitionConditionGraph(unkPtr);
- return 1;
+ return LT_INC_AND_CONTINUE;
case 4:
- if (!MoveConditionMonOffscreen(&structPtr->unk1814))
+ if (!MoveConditionMonOffscreen(&structPtr->monTransitionX))
{
- sub_81CED30(sub_81CDC84());
- return 1;
+ CreateConditionMonPic(GetMonMarkIndex());
+ return LT_INC_AND_CONTINUE;
}
- return 2;
+ return LT_PAUSE;
case 5:
- sub_81CE754(0, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 6:
- sub_81CE754(1, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 7:
- sub_81CE754(2, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 8:
- if (sub_81CE754(3, sub_81CDC84(), FALSE) == TRUE)
- return 1;
- return 2;
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), FALSE) == TRUE)
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
case 9:
- unkPtr = sub_81CDC70();
- if (!TryUpdateConditionMonTransitionOn(unkPtr, &structPtr->unk1814))
+ unkPtr = GetConditionGraphDataPtr();
+ if (!TryUpdateConditionMonTransitionOn(unkPtr, &structPtr->monTransitionX))
{
- ResetConditionSparkleSprites(structPtr->unk28e0);
- if (sub_81CDD5C() != TRUE && sub_81CDC60() == sub_81CDC50())
- return 1;
+ ResetConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ if (IsConditionMenuSearchMode() != TRUE && GetConditionGraphCurrentMonIndex() == GetMonListCount())
+ return LT_INC_AND_CONTINUE;
- CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
- return 1;
+ CreateConditionSparkleSprites(structPtr->conditionSparkleSprites, structPtr->monPicSpriteId, GetMonSheen());
+ return LT_INC_AND_CONTINUE;
}
- return 2;
+ return LT_PAUSE;
}
return LT_FINISH;
}
-u32 sub_81CE4D8(s32 state)
+u32 LoopedTask_MoveCursorNoTransition(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
- sub_81CD548(0);
- return 1;
+ SetConditionGraphData(0);
+ return LT_INC_AND_CONTINUE;
case 1:
- sub_81CD548(1);
- return 1;
+ SetConditionGraphData(1);
+ return LT_INC_AND_CONTINUE;
case 2:
- sub_81CD548(2);
- return 1;
+ SetConditionGraphData(2);
+ return LT_INC_AND_CONTINUE;
case 3:
- sub_81CED30(sub_81CDC84());
- return 1;
+ CreateConditionMonPic(GetMonMarkIndex());
+ return LT_INC_AND_CONTINUE;
case 4:
- sub_81CE754(0, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 5:
- sub_81CE754(1, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 6:
- sub_81CE754(2, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 7:
- if (sub_81CE754(3, sub_81CDC84(), FALSE) == TRUE)
- return 1;
- return 2;
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), FALSE) == TRUE)
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
case 8:
- if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814))
+ if (!TryUpdateConditionMonTransitionOn(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
{
- ResetConditionSparkleSprites(structPtr->unk28e0);
- CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
- return 1;
+ ResetConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ CreateConditionSparkleSprites(structPtr->conditionSparkleSprites, structPtr->monPicSpriteId, GetMonSheen());
+ return LT_INC_AND_CONTINUE;
}
- return 2;
+ return LT_PAUSE;
}
return LT_FINISH;
}
-u32 sub_81CE5E4(s32 state)
+u32 LoopedTask_SlideMonOut(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
- sub_81CD548(0);
- return 1;
+ SetConditionGraphData(0);
+ return LT_INC_AND_CONTINUE;
case 1:
- sub_81CD548(1);
- return 1;
+ SetConditionGraphData(1);
+ return LT_INC_AND_CONTINUE;
case 2:
- sub_81CD548(2);
- DestroyConditionSparkleSprites(structPtr->unk28e0);
- return 1;
+ SetConditionGraphData(2);
+ DestroyConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ return LT_INC_AND_CONTINUE;
case 3:
- if (!TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814))
- return 1;
- return 2;
+ if (!TryUpdateConditionMonTransitionOff(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
case 4:
- sub_81CE754(0, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 5:
- sub_81CE754(1, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 6:
- sub_81CE754(2, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 7:
- if (sub_81CE754(3, sub_81CDC84(), FALSE) == TRUE)
- return 1;
- return 2;
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), FALSE) == TRUE)
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
}
return LT_FINISH;
}
-u32 sub_81CE6BC(s32 state)
+u32 LoopedTask_OpenMonMarkingsWindow(s32 state)
{
switch (state)
{
case 0:
- sub_811FAA4(sub_81CDD7C(), 176, 32);
- return 1;
+ sub_811FAA4(TryGetMonMarkId(), 176, 32);
+ return LT_INC_AND_CONTINUE;
case 1:
PrintHelpBarText(HELPBAR_CONDITION_MARKINGS);
- return 1;
+ return LT_INC_AND_CONTINUE;
case 2:
if (WaitForHelpBar() == TRUE)
- return 2;
- return 1;
+ return LT_PAUSE;
+ return LT_INC_AND_CONTINUE;
}
return LT_FINISH;
}
-u32 sub_81CE700(s32 state)
+u32 LoopedTask_CloseMonMarkingsWindow(s32 state)
{
switch (state)
{
case 0:
sub_811FAF8();
- return 1;
+ return LT_INC_AND_CONTINUE;
case 1:
PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
- return 1;
+ return LT_INC_AND_CONTINUE;
case 2:
if (WaitForHelpBar() == TRUE)
- return 2;
- return 1;
+ return LT_PAUSE;
+ return LT_INC_AND_CONTINUE;
}
return LT_FINISH;
@@ -555,68 +555,68 @@ static u8 *UnusedPrintNumberString(u8 *dst, u16 num)
return txtPtr;
}
-bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2)
+bool32 UpdateConditionGraphWindows(u8 mode, u16 bufferIndex, bool8 winMode)
{
u8 text[32];
const u8 *str;
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- switch (a0)
+ switch (mode)
{
case 0:
- FillWindowPixelBuffer(structPtr->unk1820, 0);
- if (sub_81CDD5C() == TRUE)
- FillWindowPixelBuffer(structPtr->unk1821, 0);
+ FillWindowPixelBuffer(structPtr->nameGenderWindowId, 0);
+ if (IsConditionMenuSearchMode() == TRUE)
+ FillWindowPixelBuffer(structPtr->listIndexWindowId, 0);
break;
case 1:
- if (sub_81CDC60() != sub_81CDC50() - 1 || sub_81CDD5C() == TRUE)
+ if (GetConditionGraphCurrentMonIndex() != GetMonListCount() - 1 || IsConditionMenuSearchMode() == TRUE)
{
- str = sub_81CDD04(a1);
- AddTextPrinterParameterized(structPtr->unk1820, 1, str, 0, 1, 0, NULL);
+ str = GetConditionMonNameBuffer(bufferIndex);
+ AddTextPrinterParameterized(structPtr->nameGenderWindowId, 1, str, 0, 1, 0, NULL);
}
break;
case 2:
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
- str = sub_81CDD24(a1);
- AddTextPrinterParameterized(structPtr->unk1820, 1, str, 0, 17, 0, NULL);
+ str = GetConditionMonLocationBuffer(bufferIndex);
+ AddTextPrinterParameterized(structPtr->nameGenderWindowId, 1, str, 0, 17, 0, NULL);
text[0] = EXT_CTRL_CODE_BEGIN;
text[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
text[2] = TEXT_COLOR_BLUE;
text[3] = TEXT_COLOR_TRANSPARENT;
text[4] = TEXT_COLOR_LIGHT_BLUE;
StringCopy(text + 5, gText_Number2);
- AddTextPrinterParameterized(structPtr->unk1821, 1, text, 4, 1, 0, NULL);
- ConvertIntToDecimalStringN(text + 5, sub_81CDD48(), STR_CONV_MODE_RIGHT_ALIGN, 4);
- AddTextPrinterParameterized(structPtr->unk1821, 1, text, 28, 1, 0, NULL);
+ AddTextPrinterParameterized(structPtr->listIndexWindowId, 1, text, 4, 1, 0, NULL);
+ ConvertIntToDecimalStringN(text + 5, GetConditionMonDataBuffer(), STR_CONV_MODE_RIGHT_ALIGN, 4);
+ AddTextPrinterParameterized(structPtr->listIndexWindowId, 1, text, 28, 1, 0, NULL);
}
break;
case 3:
- switch (structPtr->unk2908)
+ switch (structPtr->windowModeState)
{
case 0:
- if (a2)
- CopyWindowToVram(structPtr->unk1820, 3);
+ if (winMode)
+ CopyWindowToVram(structPtr->nameGenderWindowId, 3);
else
- CopyWindowToVram(structPtr->unk1820, 2);
+ CopyWindowToVram(structPtr->nameGenderWindowId, 2);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
- structPtr->unk2908++;
+ structPtr->windowModeState++;
return FALSE;
}
else
{
- structPtr->unk2908 = 0;
+ structPtr->windowModeState = 0;
return TRUE;
}
case 1:
- if (a2)
- CopyWindowToVram(structPtr->unk1821, 3);
+ if (winMode)
+ CopyWindowToVram(structPtr->listIndexWindowId, 3);
else
- CopyWindowToVram(structPtr->unk1821, 2);
+ CopyWindowToVram(structPtr->listIndexWindowId, 2);
- structPtr->unk2908 = 0;
+ structPtr->windowModeState = 0;
return TRUE;
}
}
@@ -624,36 +624,36 @@ bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2)
return FALSE;
}
-void sub_81CE934(void)
+void CopyUnusedConditionWindowsToVram(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- CopyWindowToVram(structPtr->unk1822, 3);
- CopyWindowToVram(structPtr->unk1823, 3);
+ CopyWindowToVram(structPtr->unusedWindowId1, 3);
+ CopyWindowToVram(structPtr->unusedWindowId2, 3);
}
void sub_81CE964(struct Sprite *sprite)
{
- if (sprite->data[0] == sub_81CDC60())
+ if (sprite->data[0] == GetConditionGraphCurrentMonIndex())
StartSpriteAnim(sprite, 0);
else
StartSpriteAnim(sprite, 1);
}
-void sub_81CE990(struct Sprite *sprite)
+void HighlightCurrentPartyIndexPokeball(struct Sprite *sprite)
{
- if (sub_81CDC60() == sub_81CDC50() - 1)
+ if (GetConditionGraphCurrentMonIndex() == GetMonListCount() - 1)
sprite->oam.paletteNum = IndexOfSpritePaletteTag(0x65);
else
sprite->oam.paletteNum = IndexOfSpritePaletteTag(0x66);
}
-void sub_81CE9C8(struct Sprite *sprite)
+void MonMarkingsCallback(struct Sprite *sprite)
{
- StartSpriteAnim(sprite, sub_81CDD7C());
+ StartSpriteAnim(sprite, TryGetMonMarkId());
}
-void sub_81CE9E4(void)
+void CreateMonMarkingsOrPokeballIndicators(void)
{
struct SpriteSheet sprSheets[4];
struct SpriteTemplate sprTemplate;
@@ -661,39 +661,40 @@ void sub_81CE9E4(void)
struct SpriteSheet sprSheet;
struct Sprite *sprite;
u16 i, spriteId;
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
LoadConditionSelectionIcons(sprSheets, &sprTemplate, sprPals);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
structPtr->monMarks.baseTileTag = 0x6A;
structPtr->monMarks.basePaletteTag = 0x6A;
sub_811F90C(&structPtr->monMarks);
sub_811FA90();
- sprite = sub_811FF94(0x69, 0x69, gUnknown_08623338);
+ sprite = CreateMonMarkingsSpriteWithPal(0x69, 0x69, sConditionGraphMonMarkingsPal);
sprite->oam.priority = 3;
sprite->pos1.x = 192;
sprite->pos1.y = 32;
- sprite->callback = sub_81CE9C8;
- structPtr->unk28dc = sprite;
- sub_81C7990(IndexOfSpritePaletteTag(0x69), 0);
+ sprite->callback = MonMarkingsCallback;
+ structPtr->monMarksSprite = sprite;
+ PokenavFillPalette(IndexOfSpritePaletteTag(0x69), 0);
}
else
{
+ // party mode -> add pokeballs on right hand side
LoadSpriteSheets(sprSheets);
Pokenav_AllocAndLoadPalettes(sprPals);
- for (i = 0; i < sub_81CDC50() - 1; i++)
+ for (i = 0; i < GetMonListCount() - 1; i++)
{
spriteId = CreateSprite(&sprTemplate, 226, (i * 20) + 8, 0);
if (spriteId != MAX_SPRITES)
{
- structPtr->unk1806[i] = spriteId;
+ structPtr->partyPokeballSpriteIds[i] = spriteId;
gSprites[spriteId].data[0] = i;
gSprites[spriteId].callback = sub_81CE964;
}
else
{
- structPtr->unk1806[i] = 0xFF;
+ structPtr->partyPokeballSpriteIds[i] = 0xFF;
}
}
@@ -704,27 +705,27 @@ void sub_81CE9E4(void)
spriteId = CreateSprite(&sprTemplate, 230, (i * 20) + 8, 0);
if (spriteId != MAX_SPRITES)
{
- structPtr->unk1806[i] = spriteId;
+ structPtr->partyPokeballSpriteIds[i] = spriteId;
gSprites[spriteId].oam.size = 0;
}
else
{
- structPtr->unk1806[i] = 0xFF;
+ structPtr->partyPokeballSpriteIds[i] = 0xFF;
}
}
sprTemplate.tileTag = 0x66;
- sprTemplate.callback = sub_81CE990;
+ sprTemplate.callback = HighlightCurrentPartyIndexPokeball;
spriteId = CreateSprite(&sprTemplate, 222, (i * 20) + 8, 0);
if (spriteId != MAX_SPRITES)
{
- structPtr->unk1806[i] = spriteId;
+ structPtr->partyPokeballSpriteIds[i] = spriteId;
gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16);
gSprites[spriteId].oam.size = SPRITE_SIZE(32x16);
}
else
{
- structPtr->unk1806[i] = 0xFF;
+ structPtr->partyPokeballSpriteIds[i] = 0xFF;
}
}
@@ -738,9 +739,9 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr)
{
u8 i;
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
- DestroySprite(structPtr->unk28dc);
+ DestroySprite(structPtr->monMarksSprite);
FreeSpriteTilesByTag(0x6A);
FreeSpriteTilesByTag(0x69);
FreeSpritePaletteByTag(0x6A);
@@ -749,7 +750,7 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr)
else
{
for (i = 0; i < 7; i++)
- DestroySprite(&gSprites[structPtr->unk1806[i]]);
+ DestroySprite(&gSprites[structPtr->partyPokeballSpriteIds[i]]);
FreeSpriteTilesByTag(0x65);
FreeSpriteTilesByTag(0x66);
@@ -758,83 +759,83 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr)
FreeSpritePaletteByTag(0x66);
}
- if (structPtr->unk1816 != 0xFF)
+ if (structPtr->monPicSpriteId != 0xFF)
{
- DestroySprite(&gSprites[structPtr->unk1816]);
+ DestroySprite(&gSprites[structPtr->monPicSpriteId]);
FreeSpriteTilesByTag(0x64);
FreeSpritePaletteByTag(0x64);
}
}
-void sub_81CECA0(void)
+void FreePartyConditionSubstruct2(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- RemoveWindow(structPtr->unk1820);
- if (sub_81CDD5C() == TRUE)
+ RemoveWindow(structPtr->nameGenderWindowId);
+ if (IsConditionMenuSearchMode() == TRUE)
{
- RemoveWindow(structPtr->unk1821);
- RemoveWindow(structPtr->unk1822);
- RemoveWindow(structPtr->unk1823);
+ RemoveWindow(structPtr->listIndexWindowId);
+ RemoveWindow(structPtr->unusedWindowId1);
+ RemoveWindow(structPtr->unusedWindowId2);
}
else
{
- sub_81C7FDC();
+ SetLeftHeaderSpritesInvisibility();
}
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP);
sub_81CEBF4(structPtr);
sub_81CEE68();
- FreePokenavSubstruct(0xC);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MON_MARK_MENU);
}
-void sub_81CED10(struct Sprite *sprite)
+void MonPicGfxSpriteCallback(struct Sprite *sprite)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- sprite->pos1.x = structPtr->unk1814 + 38;
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ sprite->pos1.x = structPtr->monTransitionX + 38;
}
-void sub_81CED30(u8 var)
+void CreateConditionMonPic(u8 id)
{
struct SpriteTemplate sprTemplate;
struct SpriteSheet sprSheet;
struct SpritePalette sprPal;
u8 spriteId;
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- if (structPtr->unk1816 == 0xFF)
+ if (structPtr->monPicSpriteId == 0xFF)
{
LoadConditionMonPicTemplate(&sprSheet, &sprTemplate, &sprPal);
- sprSheet.data = sub_81CDCB4(var);
- sprPal.data = sub_81CDCD4(var);
- structPtr->unk1818 = LoadSpritePalette(&sprPal);
- structPtr->unk181A = LoadSpriteSheet(&sprSheet);
+ sprSheet.data = GetConditionMonPicGfx(id);
+ sprPal.data = GetConditionMonPal(id);
+ structPtr->monPalIndex = LoadSpritePalette(&sprPal);
+ structPtr->monGfxTileStart = LoadSpriteSheet(&sprSheet);
spriteId = CreateSprite(&sprTemplate, 38, 104, 0);
- structPtr->unk1816 = spriteId;
+ structPtr->monPicSpriteId = spriteId;
if (spriteId == MAX_SPRITES)
{
FreeSpriteTilesByTag(0x64);
FreeSpritePaletteByTag(0x64);
- structPtr->unk1816 = 0xFF;
+ structPtr->monPicSpriteId = 0xFF;
}
else
{
- structPtr->unk1816 = spriteId;
- gSprites[structPtr->unk1816].callback = sub_81CED10;
- structPtr->unk181C = (void*)(VRAM) + 0x10000 + (structPtr->unk181A * 32);
- structPtr->unk1818 = (structPtr->unk1818 * 16) + 0x100;
+ structPtr->monPicSpriteId = spriteId;
+ gSprites[structPtr->monPicSpriteId].callback = MonPicGfxSpriteCallback;
+ structPtr->unk181C = (void*)(VRAM) + 0x10000 + (structPtr->monGfxTileStart * 32);
+ structPtr->monPalIndex = (structPtr->monPalIndex * 16) + 0x100;
}
}
else
{
- DmaCopy16Defvars(3, sub_81CDCB4(var), structPtr->unk181C, 0x800);
- LoadPalette(sub_81CDCD4(var), structPtr->unk1818, 0x20);
+ DmaCopy16Defvars(3, GetConditionMonPicGfx(id), structPtr->unk181C, 0x800);
+ LoadPalette(GetConditionMonPal(id), structPtr->monPalIndex, 0x20);
}
}
void sub_81CEE44(void)
{
- struct ConditionGraph *unk = sub_81CDC70();
+ struct ConditionGraph *unk = GetConditionGraphDataPtr();
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -847,7 +848,7 @@ void sub_81CEE68(void)
SetPokenavVBlankCallback();
}
-void sub_81CEE74(bool8 showBg)
+void ToggleBg2(bool8 showBg)
{
if (showBg)
ShowBg(2);
@@ -855,29 +856,29 @@ void sub_81CEE74(bool8 showBg)
HideBg(2);
}
-void sub_81CEE90(void)
+void DoConditionGraphTransition(void)
{
- struct ConditionGraph *unk = sub_81CDC70();
- u8 id = sub_81CDC84();
+ struct ConditionGraph *conditionPtr = GetConditionGraphDataPtr();
+ u8 id = GetMonMarkIndex();
gUnknown_030012BC = id;
- sub_81D1F84(unk, unk->unk14[3], unk->unk14[id]);
- TransitionConditionGraph(unk);
+ sub_81D1F84(conditionPtr, conditionPtr->unk14[3], conditionPtr->unk14[id]);
+ TransitionConditionGraph(conditionPtr);
}
void sub_81CEEC8(void)
{
- struct ConditionGraph *unk = sub_81CDC70();
+ struct ConditionGraph *conditionPtr = GetConditionGraphDataPtr();
- if (sub_81CDD5C() || sub_81CDC60() != sub_81CDC50() - 1)
- sub_81D1F84(unk, unk->unk14[sub_81CDC84()], unk->unk14[3]);
+ if (IsConditionMenuSearchMode() || GetConditionGraphCurrentMonIndex() != GetMonListCount() - 1)
+ sub_81D1F84(conditionPtr, conditionPtr->unk14[GetMonMarkIndex()], conditionPtr->unk14[3]);
}
-u8 sub_81CEF14(void)
+u8 GetMonMarkingsData(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- if (sub_81CDD5C() == 1)
+ if (IsConditionMenuSearchMode() == 1)
return structPtr->monMarks.markings;
else
return 0;