mirror of
https://github.com/YohannDR/mzm.git
synced 2025-02-21 22:10:39 +00:00
Defines pause screen functions, decompile process oam functions
This commit is contained in:
parent
e5f8dfcacb
commit
13812668ca
46
include/menus/pause_screen.h
Normal file
46
include/menus/pause_screen.h
Normal file
@ -0,0 +1,46 @@
|
||||
#ifndef PAUSE_SCREEN_MENU_H
|
||||
#define PAUSE_SCREEN_MENU_H
|
||||
|
||||
#include "types.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/cutscene.h"
|
||||
|
||||
u8 unk_68168(u16 param_1, u8 param_2, u8 param_3);
|
||||
u8 unk_681c8(void);
|
||||
u32 PauseScreenUpdateOrStartFading(u8 stage);
|
||||
void PauseScreenCopyPalramToEwram_Unused(u8 param_1);
|
||||
void PauseScreenCopyBackgroundPalette_Unused(void);
|
||||
void PauseScreenUpdateMapArrows(void);
|
||||
void PauseScreenUpdateBossIcons(void);
|
||||
void PauseScreenDrawInfo(void);
|
||||
u8 unk_68a58(u8 param_1);
|
||||
u8 PauseScreenDrawStatusScreenSamus(u8 param_1);
|
||||
void PauseScreenUpdateWireframeSamus(u8 param_1);
|
||||
void unk_68ec0(void);
|
||||
void PauseScreenUpdateWorldMapHighlight(u8 area);
|
||||
void PauseScreenUpdateWorldMap(u8 onWorldMap);
|
||||
void PauseScreenLoadAreaNamesAndIcons(void);
|
||||
void PauseScreenProcessOam(void);
|
||||
void ProcessMenuOam(u8 length, struct MenuOamData* pOam, const struct OamArray* pOamData);
|
||||
void ProcessComplexMenuOam(u8 length, struct MenuOamData* pOam, const struct OamArray* pOamData);
|
||||
void ProcessCutsceneOam(u8 length, struct CutsceneOamData* pOam, const struct OamArray* pOamData);
|
||||
u32 PauseScreenSubroutine(void);
|
||||
void PauseScreenVBlank(void);
|
||||
void PauseScreenVBlank_Empty(void);
|
||||
void PauseScreenInit(void);
|
||||
void PauseScreenDetermineMapsViewable(void);
|
||||
void PauseScreenUpdateBottomVisorOverlay(u8 param_1, u8 param_2);
|
||||
void PauseScreenGetMinimapData(u8 area, u16* dst);
|
||||
u32 PauseScreenCallCurrentSubroutine(void);
|
||||
void PauseScreenMoveDebugCursor(u8 allowOverflow);
|
||||
u32 unk_6b66c(u16* param_1, u16 param_2);
|
||||
u32 unk_6b6c4(u16* param_1, u16 param_2);
|
||||
void PauseScreenUpdateTopVisorOverlay(u8 oamId);
|
||||
i32 PauseScreenSuitChangingStart(void);
|
||||
i32 PauseScreenStatusScreenInit(void);
|
||||
i32 PauseScreenQuitStatusScreen(void);
|
||||
i32 PauseScreenEasySleepInit(void);
|
||||
i32 PauseScreenQuitEasySleep(void);
|
||||
void CheckForMaintainedInput(void);
|
||||
|
||||
#endif /* PAUSE_SCREEN_MENU_H */
|
@ -1,5 +1,5 @@
|
||||
#ifndef STATUE_SCREEN_MENU_H
|
||||
#define STATUE_SCREEN_MENU_H
|
||||
#ifndef STATUS_SCREEN_MENU_H
|
||||
#define STATUS_SCREEN_MENU_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
@ -32,4 +32,4 @@ u32 StatusScreenToggleItem(u8 statusSlot, u8 action);
|
||||
void StatusScreenMoveCursor(void);
|
||||
u32 StatusScreenGetDestinationSlot(i8 offset, u8 previousSlot);
|
||||
|
||||
#endif /* STATUE_SCREEN_MENU_H */
|
||||
#endif /* STATUS_SCREEN_MENU_H */
|
||||
|
@ -125,10 +125,10 @@ struct CutsceneOamData {
|
||||
u8 currentAnimationFrame;
|
||||
u8 oamID;
|
||||
u16 priority:2;
|
||||
u16 unk_B_4:2;
|
||||
u16 objMode:2;
|
||||
u16 ended:1;
|
||||
u16 notDrawn:1;
|
||||
u16 idChanged:2;
|
||||
u16 exists:2;
|
||||
u8 boundBackground:4;
|
||||
u8 rotationScaling:1;
|
||||
u8 actions;
|
||||
|
@ -16,13 +16,14 @@ struct MenuOamData {
|
||||
u8 oamID;
|
||||
// B
|
||||
u16 priority:2;
|
||||
u16 unk_B_4:2;
|
||||
u16 objMode:2;
|
||||
u16 ended:1;
|
||||
u16 notDrawn:1;
|
||||
u16 idChanged:2;
|
||||
u16 exists:2;
|
||||
|
||||
// C
|
||||
u8 boundBackground:4;
|
||||
u8 rotationScaling:1;
|
||||
i16 unk_E;
|
||||
};
|
||||
|
||||
|
@ -353,7 +353,7 @@ u8 EnterTourianInit(void)
|
||||
CutsceneSetBackgroundPosition(CUTSCENE_BG_EDIT_HOFS, sEnterTourianPageData[1].bg, 0x800);
|
||||
|
||||
CUTSCENE_DATA.oam[1].oamID = 6;
|
||||
CUTSCENE_DATA.oam[1].idChanged = TRUE;
|
||||
CUTSCENE_DATA.oam[1].exists = TRUE;
|
||||
CUTSCENE_DATA.oam[1].boundBackground = 3;
|
||||
CUTSCENE_DATA.oam[1].priority = sEnterTourianPageData[0].priority;
|
||||
CUTSCENE_DATA.oam[1].actions = 1;
|
||||
@ -370,7 +370,7 @@ u8 EnterTourianInit(void)
|
||||
|
||||
|
||||
CUTSCENE_DATA.oam[0].oamID = 2;
|
||||
CUTSCENE_DATA.oam[0].idChanged = TRUE;
|
||||
CUTSCENE_DATA.oam[0].exists = TRUE;
|
||||
CUTSCENE_DATA.oam[0].boundBackground = 3;
|
||||
CUTSCENE_DATA.oam[0].priority = sEnterTourianPageData[0].priority;
|
||||
|
||||
|
@ -199,10 +199,10 @@ void GettingFullyPoweredSuitUpdateSparkleAroundRing(struct CutsceneOamData* pOam
|
||||
pOam->actions = 2;
|
||||
}
|
||||
}
|
||||
else if (!pOam->idChanged)
|
||||
else if (!pOam->exists)
|
||||
pOam->actions = 0;
|
||||
|
||||
if (pOam->idChanged)
|
||||
if (pOam->exists)
|
||||
{
|
||||
pOam->xPosition = CUTSCENE_DATA.oam[6].xPosition + sGettingFullyPoweredSuitRingSparklesSpawnPositions[sparkleId][0];
|
||||
pOam->yPosition = CUTSCENE_DATA.oam[6].yPosition + sGettingFullyPoweredSuitRingSparklesSpawnPositions[sparkleId][1];
|
||||
@ -294,7 +294,7 @@ u8 GettingFullyPoweredSuitInit(void)
|
||||
CUTSCENE_DATA.oam[6].xPosition = BLOCK_SIZE * 8 - QUARTER_BLOCK_SIZE;
|
||||
CUTSCENE_DATA.oam[6].yPosition = BLOCK_SIZE * 22;
|
||||
CUTSCENE_DATA.oam[6].priority = sGettingFullyPoweredSuitPageData[0].priority;
|
||||
CUTSCENE_DATA.oam[6].unk_B_4 = 0;
|
||||
CUTSCENE_DATA.oam[6].objMode = 0;
|
||||
CUTSCENE_DATA.oam[6].boundBackground = 2;
|
||||
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[6], GETTING_FULLY_POWERED_SUIT_OAM_ID_RING_BOTTOM);
|
||||
|
@ -127,7 +127,7 @@ struct CutsceneOamData* KraidRisingUpdatePuff(struct CutsceneOamData* pOam, u8 p
|
||||
u8* data;
|
||||
i32 offset;
|
||||
|
||||
if (!pOam->idChanged)
|
||||
if (!pOam->exists)
|
||||
{
|
||||
if (pOam->timer != 0)
|
||||
pOam->timer--;
|
||||
@ -157,7 +157,7 @@ struct CutsceneOamData* KraidRisingUpdateDebris(struct CutsceneOamData* pOam, u8
|
||||
pOam->timer--;
|
||||
else
|
||||
{
|
||||
if (!pOam->idChanged)
|
||||
if (!pOam->exists)
|
||||
{
|
||||
// Set spawn X (base + [0-0x3F])
|
||||
pOam->xPosition = sKraidRisingDebrisSpawnXPosition[debrisID] + (sRandomNumberTable[~((gFrameCounter8Bit + debrisID) & 0xFF)] & 0x3F);
|
||||
@ -182,7 +182,7 @@ struct CutsceneOamData* KraidRisingUpdateDebris(struct CutsceneOamData* pOam, u8
|
||||
pOam->yPosition += pOam->unk_10;
|
||||
if (pOam->yPosition > 0x2DF)
|
||||
{
|
||||
pOam->idChanged = FALSE;
|
||||
pOam->exists = FALSE;
|
||||
// Set random timer
|
||||
pOam->timer = (sRandomNumberTable[(gFrameCounter8Bit + debrisID) & 0xFF] & 0xF) + 1;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ u8 MechaRidleySeesSamusEyeOpen(void)
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (!CUTSCENE_DATA.oam[0].idChanged)
|
||||
if (!CUTSCENE_DATA.oam[0].exists)
|
||||
{
|
||||
CUTSCENE_DATA.timeInfo.timer = 0;
|
||||
CUTSCENE_DATA.timeInfo.subStage++;
|
||||
|
@ -405,7 +405,7 @@ void MotherBrainCloseUpUpdateEye(u8 lookingAtSamus)
|
||||
pOam->priority = sMotherBrainCloseUpPageData[2].priority;
|
||||
pOam->boundBackground = 3;
|
||||
pOam->oamID = 0;
|
||||
pOam->idChanged = TRUE;
|
||||
pOam->exists = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -413,7 +413,7 @@ void MotherBrainCloseUpUpdateEye(u8 lookingAtSamus)
|
||||
pOam->yPosition = BLOCK_SIZE * 5 + 4;
|
||||
pOam->priority = sMotherBrainCloseUpPageData[4].priority;
|
||||
pOam->boundBackground = 1;
|
||||
pOam->unk_B_4 = 1;
|
||||
pOam->objMode = 1;
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[1], 5);
|
||||
|
||||
pOam[1].xPosition = BLOCK_SIZE * 7 + HALF_BLOCK_SIZE;
|
||||
@ -422,7 +422,7 @@ void MotherBrainCloseUpUpdateEye(u8 lookingAtSamus)
|
||||
pOam[1].priority = sMotherBrainCloseUpPageData[4].priority;
|
||||
|
||||
pOam[1].boundBackground = 1;
|
||||
pOam[1].unk_B_4 = 1;
|
||||
pOam[1].objMode = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -437,7 +437,7 @@ void MotherBrainCloseUpUpdateBubble(struct CutsceneOamData* pOam)
|
||||
yPosition -= gBG3VOFS_NonGameplay;
|
||||
|
||||
if (yPosition < -0x90)
|
||||
pOam->idChanged = FALSE;
|
||||
pOam->exists = FALSE;
|
||||
else if (yPosition > 0x300)
|
||||
{
|
||||
if (!(pOam->notDrawn))
|
||||
@ -459,7 +459,7 @@ u8 MotherBrainCloseUpInitBubbles(u8 packId)
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
if (CUTSCENE_DATA.oam[i].idChanged)
|
||||
if (CUTSCENE_DATA.oam[i].exists)
|
||||
continue;
|
||||
|
||||
CUTSCENE_DATA.oam[i].xPosition = sMotherBrainCloseUpBubblesSpawnPositions[packId][0];
|
||||
|
@ -404,8 +404,8 @@ u8 RidleyInSpaceViewOfShip(void)
|
||||
case 4:
|
||||
if (CUTSCENE_DATA.timeInfo.timer > 60 * 2)
|
||||
{
|
||||
CUTSCENE_DATA.oam[0].unk_B_4 = TRUE;
|
||||
CUTSCENE_DATA.oam[1].unk_B_4 = TRUE;
|
||||
CUTSCENE_DATA.oam[0].objMode = TRUE;
|
||||
CUTSCENE_DATA.oam[1].objMode = TRUE;
|
||||
|
||||
CutsceneStartBackgroundEffect(BLDCNT_ALPHA_BLENDING_EFFECT | BLDCNT_BG3_SECOND_TARGET_PIXEL |
|
||||
BLDCNT_OBJ_SECOND_TARGET_PIXEL | BLDCNT_BACKDROP_SECOND_TARGET_PIXEL, 14, 0, 32, 1);
|
||||
@ -624,7 +624,7 @@ void RidleyInSpaceViewOfShipParticles(void)
|
||||
{
|
||||
for (i = 3; i < 29; i++)
|
||||
{
|
||||
if (CUTSCENE_DATA.oam[i].idChanged)
|
||||
if (CUTSCENE_DATA.oam[i].exists)
|
||||
continue;
|
||||
|
||||
CUTSCENE_DATA.oam[i].actions = 0;
|
||||
@ -647,14 +647,14 @@ void RidleyInSpaceViewOfShipParticles(void)
|
||||
|
||||
for (i = 3; i < 29; i++)
|
||||
{
|
||||
if (!CUTSCENE_DATA.oam[i].idChanged)
|
||||
if (!CUTSCENE_DATA.oam[i].exists)
|
||||
continue;
|
||||
|
||||
oamId = RidleyInSpaceViewOfShipUpdateParticle(&CUTSCENE_DATA.oam[i]);
|
||||
if (oamId != 0)
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[i], oamId);
|
||||
|
||||
if (CUTSCENE_DATA.oam[i].idChanged == 0)
|
||||
if (CUTSCENE_DATA.oam[i].exists == 0)
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[i], 0);
|
||||
}
|
||||
}
|
||||
@ -678,7 +678,7 @@ u32 RidleyInSpaceViewOfShipUpdateParticle(struct CutsceneOamData* pOam)
|
||||
if (pOam->unk_E | pOam->unk_10)
|
||||
pOam->actions = 1;
|
||||
else
|
||||
pOam->idChanged = 0;
|
||||
pOam->exists = 0;
|
||||
}
|
||||
else if (pOam->timer < 100)
|
||||
{
|
||||
@ -692,14 +692,14 @@ u32 RidleyInSpaceViewOfShipUpdateParticle(struct CutsceneOamData* pOam)
|
||||
pOam->yPosition = pOam->unk_10 / divisor + 0x140;
|
||||
|
||||
if ((u16)(xPosition + 0xC0) > 0x400)
|
||||
pOam->idChanged = 0;
|
||||
pOam->exists = 0;
|
||||
else if (pOam->yPosition > 0x2A0)
|
||||
pOam->idChanged = 0;
|
||||
pOam->exists = 0;
|
||||
else if (pOam->yPosition < -0x20)
|
||||
pOam->idChanged = 0;
|
||||
pOam->exists = 0;
|
||||
}
|
||||
else
|
||||
pOam->idChanged = 0;
|
||||
pOam->exists = 0;
|
||||
|
||||
pOam->timer++;
|
||||
return oamId;
|
||||
@ -718,7 +718,7 @@ void RidleyInSpaceShipLeavingParticles(void)
|
||||
{
|
||||
for (i = 3; i < 15; i++)
|
||||
{
|
||||
if (CUTSCENE_DATA.oam[i].idChanged)
|
||||
if (CUTSCENE_DATA.oam[i].exists)
|
||||
continue;
|
||||
|
||||
CUTSCENE_DATA.oam[i].actions = 0;
|
||||
@ -745,12 +745,12 @@ void RidleyInSpaceShipLeavingParticles(void)
|
||||
|
||||
for (i = 3; i < 15; i++)
|
||||
{
|
||||
if (!CUTSCENE_DATA.oam[i].idChanged)
|
||||
if (!CUTSCENE_DATA.oam[i].exists)
|
||||
continue;
|
||||
|
||||
RidleyInSpaceViewOfShipUpdateParticle(&CUTSCENE_DATA.oam[i]);
|
||||
|
||||
if (CUTSCENE_DATA.oam[i].idChanged == 0)
|
||||
if (CUTSCENE_DATA.oam[i].exists == 0)
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[i], 0);
|
||||
}
|
||||
}
|
||||
@ -772,6 +772,6 @@ struct CutsceneOamData* RidleyInSpaceShipLeavingUpdateParticle(struct CutsceneOa
|
||||
{
|
||||
pOam->xPosition += pOam->unk_E;
|
||||
if (pOam->xPosition > 0x3E0)
|
||||
pOam->idChanged = 0;
|
||||
pOam->exists = 0;
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ u8 RidleySpawnRidleyFlyingIn(void)
|
||||
CUTSCENE_DATA.oam[0].rotationScaling = TRUE;
|
||||
CUTSCENE_DATA.oam[0].notDrawn = FALSE;
|
||||
CUTSCENE_DATA.oam[0].priority = 0;
|
||||
CUTSCENE_DATA.oam[0].unk_B_4 = FALSE;
|
||||
CUTSCENE_DATA.oam[0].objMode = FALSE;
|
||||
|
||||
gCurrentOamScaling = 0x120;
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[0], RIDLEY_SPAWN_OAM_ID_RIDLEY_FLYING);
|
||||
@ -145,7 +145,7 @@ u8 RidleySpawnHelmetReflection(void)
|
||||
|
||||
CUTSCENE_DATA.oam[0].priority = sRidleySpawnPageData[2].priority;
|
||||
CUTSCENE_DATA.oam[0].rotationScaling = TRUE;
|
||||
CUTSCENE_DATA.oam[0].unk_B_4 = TRUE;
|
||||
CUTSCENE_DATA.oam[0].objMode = TRUE;
|
||||
|
||||
gCurrentOamScaling = 0x40;
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[0], RIDLEY_SPAWN_OAM_ID_RIDLEY_FLYING_REFLECTION);
|
||||
@ -264,7 +264,7 @@ u8 RidleySpawnInit(void)
|
||||
CUTSCENE_DATA.oam[0].yPosition = sRidleySpawnRidleyPositions[2].y;
|
||||
CUTSCENE_DATA.oam[0].priority = sRidleySpawnPageData[0].priority;
|
||||
CUTSCENE_DATA.oam[0].rotationScaling = TRUE;
|
||||
CUTSCENE_DATA.oam[0].unk_B_4 = TRUE;
|
||||
CUTSCENE_DATA.oam[0].objMode = TRUE;
|
||||
|
||||
gCurrentOamScaling = 0x100;
|
||||
UpdateCutsceneOamDataID(&CUTSCENE_DATA.oam[0], RIDLEY_SPAWN_OAM_ID_SAMUS);
|
||||
|
@ -152,13 +152,13 @@ u8 StatueOpeningInit(void)
|
||||
CUTSCENE_DATA.oam[0].yPosition = BLOCK_SIZE * 7;
|
||||
CUTSCENE_DATA.oam[0].priority = 0;
|
||||
CUTSCENE_DATA.oam[0].boundBackground = 1;
|
||||
CUTSCENE_DATA.oam[0].idChanged = 1;
|
||||
CUTSCENE_DATA.oam[0].exists = 1;
|
||||
|
||||
CUTSCENE_DATA.oam[1].xPosition = BLOCK_SIZE * 8;
|
||||
CUTSCENE_DATA.oam[1].yPosition = BLOCK_SIZE * 7;
|
||||
CUTSCENE_DATA.oam[1].priority = 0;
|
||||
CUTSCENE_DATA.oam[1].boundBackground = 1;
|
||||
CUTSCENE_DATA.oam[1].idChanged = 1;
|
||||
CUTSCENE_DATA.oam[1].exists = 1;
|
||||
|
||||
if (EventFunction(EVENT_ACTION_CHECKING, EVENT_KRAID_STATUE_OPENED))
|
||||
oamId = STATUE_OPENING_OAM_ID_KRAID_OPENED;
|
||||
|
@ -165,10 +165,10 @@ const struct MenuOamData sTitleScreenTopSparkleBaseOam = {
|
||||
.currentAnimationFrame = 0,
|
||||
.oamID = TITLE_SCREEN_OAM_ID_SPARKLE_IDLE,
|
||||
.priority = 0,
|
||||
.unk_B_4 = 0,
|
||||
.objMode = 0,
|
||||
.ended = FALSE,
|
||||
.notDrawn = FALSE,
|
||||
.idChanged = TRUE,
|
||||
.exists = TRUE,
|
||||
.boundBackground = 0,
|
||||
.unk_E = 0
|
||||
};
|
||||
@ -184,10 +184,10 @@ const struct MenuOamData sTitleScreenBottomSparkleBaseOam = {
|
||||
.currentAnimationFrame = 0,
|
||||
.oamID = TITLE_SCREEN_OAM_ID_SPARKLE_IDLE,
|
||||
.priority = 0,
|
||||
.unk_B_4 = 0,
|
||||
.objMode = 0,
|
||||
.ended = FALSE,
|
||||
.notDrawn = FALSE,
|
||||
.idChanged = TRUE,
|
||||
.exists = TRUE,
|
||||
.boundBackground = 0,
|
||||
.unk_E = 0
|
||||
};
|
||||
|
@ -183,10 +183,10 @@ void EraseSramApplyInput(void)
|
||||
break;
|
||||
}
|
||||
|
||||
ERASE_SRAM_DATA.oam[1].idChanged = TRUE << 1;
|
||||
ERASE_SRAM_DATA.oam[2].idChanged = TRUE << 1;
|
||||
ERASE_SRAM_DATA.oam[1].exists = TRUE << 1;
|
||||
ERASE_SRAM_DATA.oam[2].exists = TRUE << 1;
|
||||
ERASE_SRAM_DATA.oam[0].oamID = ERASE_SRAM_OAM_ID_CURSOR_IDLE;
|
||||
ERASE_SRAM_DATA.oam[0].idChanged = TRUE << 1;
|
||||
ERASE_SRAM_DATA.oam[0].exists = TRUE << 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -280,7 +280,7 @@ u32 EraseSramCheckForInput(void)
|
||||
if (exiting)
|
||||
{
|
||||
ERASE_SRAM_DATA.oam[0].oamID = ERASE_SRAM_OAM_ID_CURSOR_SELECTING;
|
||||
ERASE_SRAM_DATA.oam[0].idChanged = TRUE << 1;
|
||||
ERASE_SRAM_DATA.oam[0].exists = TRUE << 1;
|
||||
sound = 1;
|
||||
}
|
||||
|
||||
@ -392,15 +392,15 @@ void EraseSramResetOAM(void)
|
||||
ERASE_SRAM_DATA.oam[2].oamID = sEraseSramQuestionWindowNoSelectedOamId;
|
||||
ERASE_SRAM_DATA.oam[2].yPosition = sEraseSramMenuCursorPosition[0][1];
|
||||
ERASE_SRAM_DATA.oam[2].xPosition = sEraseSramMenuCursorPosition[0][0];
|
||||
ERASE_SRAM_DATA.oam[2].idChanged = TRUE;
|
||||
ERASE_SRAM_DATA.oam[2].exists = TRUE;
|
||||
|
||||
ERASE_SRAM_DATA.oam[1].oamID = 0;
|
||||
ERASE_SRAM_DATA.oam[1].yPosition = sEraseSramMenuCursorPosition[1][1];
|
||||
ERASE_SRAM_DATA.oam[1].xPosition = sEraseSramMenuCursorPosition[1][0];
|
||||
ERASE_SRAM_DATA.oam[1].idChanged = TRUE;
|
||||
ERASE_SRAM_DATA.oam[1].exists = TRUE;
|
||||
|
||||
ERASE_SRAM_DATA.oam[0].oamID = ERASE_SRAM_OAM_ID_CURSOR_IDLE;
|
||||
ERASE_SRAM_DATA.oam[0].idChanged = TRUE;
|
||||
ERASE_SRAM_DATA.oam[0].exists = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -120,13 +120,13 @@ void FileSelectResetOAM(void)
|
||||
|
||||
// Check enable metroid logos (completed save file indicator)
|
||||
if (gSaveFilesInfo[0].completedGame)
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].idChanged = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].exists = TRUE;
|
||||
|
||||
if (gSaveFilesInfo[1].completedGame)
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].idChanged = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].exists = TRUE;
|
||||
|
||||
if (gSaveFilesInfo[2].completedGame)
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_LOGO].idChanged = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_LOGO].exists = TRUE;
|
||||
|
||||
if (gSaveFilesInfo[0].corruptionFlag)
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].notDrawn = TRUE;
|
||||
@ -220,32 +220,32 @@ void FileSelectUpdateCursor(u8 cursorPose, u8 position)
|
||||
|
||||
if (position != FILE_SELECT_CURSOR_POSITION_FILE_A)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].objMode = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].objMode = 1;
|
||||
}
|
||||
|
||||
if (position != FILE_SELECT_CURSOR_POSITION_FILE_B)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].objMode = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].objMode = 1;
|
||||
}
|
||||
|
||||
if (position != FILE_SELECT_CURSOR_POSITION_FILE_C)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_LOGO].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].objMode = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_LOGO].objMode = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case CURSOR_POSE_DESELECTING_FILE:
|
||||
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR], ++oamId);
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].unk_B_4 = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].unk_B_4 = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].unk_B_4 = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].unk_B_4 = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].unk_B_4 = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_LOGO].unk_B_4 = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].objMode = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].objMode = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].objMode = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].objMode = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].objMode = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_LOGO].objMode = 0;
|
||||
break;
|
||||
|
||||
case CURSOR_POSE_STARTING_GAME:
|
||||
@ -313,7 +313,7 @@ void FileSelectUpdateCopyCursor(u8 cursorPose, u8 fileNumber)
|
||||
|
||||
case CURSOR_COPY_POSE_COPIED:
|
||||
// Kill copy cursor OAM
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].exists = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].oamID = 0;
|
||||
|
||||
// Reset every file marker to non-selected
|
||||
@ -397,7 +397,7 @@ void FileSelectUpdateCopyArrow(u8 arrowPose, u8 dstFileNumber)
|
||||
|
||||
case ARROW_COPY_POSE_KILL:
|
||||
// Kill arrow OAM
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_COPY_ARROW].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_COPY_ARROW].exists = FALSE;
|
||||
|
||||
// Reset every file marker
|
||||
if (dstFileNumber == FILE_SELECT_CURSOR_POSITION_FILE_A)
|
||||
@ -481,7 +481,7 @@ void FileSelectUpdateEraseCursor(u8 cursorPose, u8 fileNumber)
|
||||
|
||||
case CURSOR_ERASE_POSE_ERASED:
|
||||
// Kill erase cursor OAM
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].exists = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].oamID = 0;
|
||||
|
||||
// Reset every file marker to non-selected
|
||||
@ -933,7 +933,7 @@ u32 FileSelectCopyFileSubroutine(void)
|
||||
FileSelectDisplaySaveFileTimer(FILE_SELECT_DATA.currentFile);
|
||||
FileSelectDisplaySaveFileMiscInfo(&gSaveFilesInfo[FILE_SELECT_DATA.currentFile], FILE_SELECT_DATA.currentFile);
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[sFileSelect_760b79[FILE_SELECT_DATA.currentFile][1]].idChanged =
|
||||
FILE_SELECT_DATA.fileScreenOam[sFileSelect_760b79[FILE_SELECT_DATA.currentFile][1]].exists =
|
||||
gSaveFilesInfo[FILE_SELECT_DATA.currentFile].completedGame ? 2 : 0;
|
||||
|
||||
FileScreenSetEnabledMenuFlags();
|
||||
@ -1129,7 +1129,7 @@ u32 FileSelectEraseFileSubroutine(void)
|
||||
FileSelectDisplaySaveFileMiscInfo(&gSaveFilesInfo[FILE_SELECT_DATA.eraseFile], FILE_SELECT_DATA.eraseFile);
|
||||
|
||||
if (!gSaveFilesInfo[FILE_SELECT_DATA.eraseFile].completedGame)
|
||||
FILE_SELECT_DATA.fileScreenOam[sFileSelect_760b79[FILE_SELECT_DATA.eraseFile][1]].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[sFileSelect_760b79[FILE_SELECT_DATA.eraseFile][1]].exists = FALSE;
|
||||
|
||||
FileScreenSetEnabledMenuFlags();
|
||||
DMATransfer(3, sEwramPointer + 0x800, VRAM_BASE + 0xD800, 0x800, 16);
|
||||
@ -1342,10 +1342,10 @@ void unk_79ecc(void)
|
||||
FILE_SELECT_DATA.bg2cnt = FILE_SELECT_DATA.unk_20;
|
||||
FILE_SELECT_DATA.dispcnt |= (DCNT_BG2 | DCNT_OBJ);
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER ].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR].unk_B_4 = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].objMode = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].objMode = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER ].objMode = 1;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR].objMode = 1;
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].notDrawn = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_LOGO].notDrawn = TRUE;
|
||||
@ -1563,10 +1563,10 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
|
||||
BLDCNT_BG1_SECOND_TARGET_PIXEL | BLDCNT_BG2_SECOND_TARGET_PIXEL | BLDCNT_BG3_SECOND_TARGET_PIXEL |
|
||||
BLDCNT_OBJ_SECOND_TARGET_PIXEL | BLDCNT_BACKDROP_SECOND_TARGET_PIXEL;
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].unk_B_4 = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].unk_B_4 = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].unk_B_4 = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR].unk_B_4 = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].objMode = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].objMode = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].objMode = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR].objMode = TRUE;
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[12].notDrawn = TRUE;
|
||||
FILE_SELECT_DATA.fileScreenOam[13].notDrawn = TRUE;
|
||||
@ -1795,10 +1795,10 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
|
||||
if (!fadeEnded)
|
||||
break;
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].unk_B_4 = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].unk_B_4 = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].unk_B_4 = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR].unk_B_4 = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_MARKER].objMode = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_B_MARKER].objMode = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_C_MARKER].objMode = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_CURSOR].objMode = FALSE;
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[12].notDrawn = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[13].notDrawn = FALSE;
|
||||
@ -2313,7 +2313,7 @@ u8 OptionsSoundTestSubroutine(void)
|
||||
|
||||
case 7:
|
||||
// Wait for panel to disappear
|
||||
if (!FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_SOUND_TEST_PANEL].idChanged)
|
||||
if (!FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_SOUND_TEST_PANEL].exists)
|
||||
FILE_SELECT_DATA.subroutineStage++;
|
||||
break;
|
||||
|
||||
@ -2605,8 +2605,8 @@ u8 OptionsTimeAttackRecordsSubroutine(void)
|
||||
break;
|
||||
|
||||
case 11:
|
||||
if (FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_LARGE_PANEL].idChanged |
|
||||
FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_HUGE_PANEL].idChanged)
|
||||
if (FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_LARGE_PANEL].exists |
|
||||
FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_HUGE_PANEL].exists)
|
||||
break;
|
||||
|
||||
FILE_SELECT_DATA.subroutineTimer++;
|
||||
@ -4601,7 +4601,7 @@ void unk_7e3fc(u8 param_1, u8 param_2)
|
||||
if (param_2 == 0x81)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SUB_CURSOR].exists = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4627,7 +4627,7 @@ void unk_7e3fc(u8 param_1, u8 param_2)
|
||||
if (param_2 == 0x81)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[3].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].exists = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4657,7 +4657,7 @@ void unk_7e3fc(u8 param_1, u8 param_2)
|
||||
if (param_2 == 0x81)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[3].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].exists = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4690,7 +4690,7 @@ void unk_7e3fc(u8 param_1, u8 param_2)
|
||||
if (param_2 == 0x81)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[3].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].exists = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4720,7 +4720,7 @@ void unk_7e3fc(u8 param_1, u8 param_2)
|
||||
if (param_2 == 0x81)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[3].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].exists = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4752,7 +4752,7 @@ void unk_7e3fc(u8 param_1, u8 param_2)
|
||||
if (param_2 == 0x81)
|
||||
{
|
||||
FILE_SELECT_DATA.fileScreenOam[3].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[3].exists = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -5054,7 +5054,7 @@ u32 FileSelectUpdateTilemap(u8 request)
|
||||
case 0x23:
|
||||
FILE_SELECT_DATA.dispcnt &= ~DCNT_BG0;
|
||||
FILE_SELECT_DATA.fileScreenOam[0].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[0].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[0].exists = FALSE;
|
||||
|
||||
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL].oamID = FILE_SELECT_OAM_ID_LARGE_PANEL + 1;
|
||||
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_CLOSE_SUB_MENU);
|
||||
@ -5062,7 +5062,7 @@ u32 FileSelectUpdateTilemap(u8 request)
|
||||
|
||||
case 0x25:
|
||||
FILE_SELECT_DATA.fileScreenOam[0].oamID = 0;
|
||||
FILE_SELECT_DATA.fileScreenOam[0].idChanged = FALSE;
|
||||
FILE_SELECT_DATA.fileScreenOam[0].exists = FALSE;
|
||||
|
||||
DMATransfer(3, sEwramPointer + 0x3300, VRAM_BASE + 0xE000, 0x300, 16);
|
||||
break;
|
||||
|
1049
src/menus/pause_screen.c
Normal file
1049
src/menus/pause_screen.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -662,7 +662,7 @@ void TitleScreenProcessComets(struct TitleScrenOamTiming* pTiming, struct MenuOa
|
||||
pOam->currentAnimationFrame = 0;
|
||||
pOam->oamID = TITLE_SCREEN_OAM_ID_COMET_SPAWNING;
|
||||
|
||||
pOam->idChanged = TRUE;
|
||||
pOam->exists = TRUE;
|
||||
pOam->boundBackground = 3;
|
||||
pOam->notDrawn = FALSE;
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
void UpdateMenuOamDataID(struct MenuOamData* pOam, u8 oamId)
|
||||
{
|
||||
pOam->oamID = oamId;
|
||||
pOam->idChanged = oamId ? 2 : 0;
|
||||
pOam->exists = oamId ? 2 : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -21,5 +21,5 @@ void UpdateMenuOamDataID(struct MenuOamData* pOam, u8 oamId)
|
||||
void UpdateCutsceneOamDataID(struct CutsceneOamData* pOam, u8 oamId)
|
||||
{
|
||||
pOam->oamID = oamId;
|
||||
pOam->idChanged = oamId ? 2 : 0;
|
||||
pOam->exists = oamId ? 2 : 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user