1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-08 00:44:42 +00:00

Restructure event flags in z64save.h (1/?) (#2380)

* Simplify most event flags

* EVENTINF_HORSES_INDEX -> EVENTINF_INDEX_HORSES

* Add missing index numbers

* pr suggestions

* Clean up INGO_RACE flags
This commit is contained in:
mzxrules 2024-12-21 16:03:10 -05:00 committed by GitHub
parent 471fe51c82
commit ee4b3474a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 166 additions and 164 deletions

View file

@ -299,7 +299,7 @@ u8 Inventory_DeleteEquipment(PlayState* play, s16 equipment) {
if (equipment == EQUIP_TYPE_SWORD) {
gSaveContext.save.info.equips.buttonItems[0] = ITEM_NONE;
gSaveContext.save.info.infTable[INFTABLE_1DX_INDEX] = 1;
gSaveContext.save.info.infTable[INFTABLE_INDEX_1DX] = 1;
}
Player_SetEquipmentData(play, player);

View file

@ -496,7 +496,7 @@ void Minimap_Draw(PlayState* play) {
(LINK_AGE_IN_YEARS != YEARS_ADULT)) {
if ((gMapData->owEntranceFlag[sEntranceIconMapIndex] == 0xFFFF) ||
((gMapData->owEntranceFlag[sEntranceIconMapIndex] != 0xFFFF) &&
(gSaveContext.save.info.infTable[INFTABLE_1AX_INDEX] &
(gSaveContext.save.info.infTable[INFTABLE_INDEX_1AX] &
gBitFlags[gMapData->owEntranceFlag[mapIndex]]))) {
gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b,
@ -513,7 +513,7 @@ void Minimap_Draw(PlayState* play) {
}
if ((play->sceneId == SCENE_ZORAS_FOUNTAIN) &&
(gSaveContext.save.info.infTable[INFTABLE_1AX_INDEX] & gBitFlags[INFTABLE_1A9_SHIFT])) {
(gSaveContext.save.info.infTable[INFTABLE_INDEX_1AX] & gBitFlags[INFTABLE_1A9_SHIFT])) {
gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8,
8, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);

View file

@ -852,7 +852,7 @@ void func_80083108(PlayState* play) {
(gSaveContext.save.info.equips.buttonItems[0] == ITEM_BOMBCHU) ||
(gSaveContext.save.info.equips.buttonItems[0] == ITEM_NONE)) {
if ((gSaveContext.save.info.equips.buttonItems[0] != ITEM_NONE) ||
(gSaveContext.save.info.infTable[INFTABLE_1DX_INDEX] == 0)) {
(gSaveContext.save.info.infTable[INFTABLE_INDEX_1DX] == 0)) {
gSaveContext.save.info.equips.buttonItems[0] = gSaveContext.buttonStatus[0];
sp28 = true;
@ -876,7 +876,7 @@ void func_80083108(PlayState* play) {
(gSaveContext.save.info.equips.buttonItems[0] == ITEM_BOMBCHU) ||
(gSaveContext.save.info.equips.buttonItems[0] == ITEM_NONE)) {
if ((gSaveContext.save.info.equips.buttonItems[0] != ITEM_NONE) ||
(gSaveContext.save.info.infTable[INFTABLE_1DX_INDEX] == 0)) {
(gSaveContext.save.info.infTable[INFTABLE_INDEX_1DX] == 0)) {
gSaveContext.save.info.equips.buttonItems[0] = gSaveContext.buttonStatus[0];
sp28 = true;
@ -1346,7 +1346,7 @@ void func_80084BF4(PlayState* play, u16 flag) {
}
} else if (gSaveContext.save.info.equips.buttonItems[0] == ITEM_NONE) {
if ((gSaveContext.save.info.equips.buttonItems[0] != ITEM_NONE) ||
(gSaveContext.save.info.infTable[INFTABLE_1DX_INDEX] == 0)) {
(gSaveContext.save.info.infTable[INFTABLE_INDEX_1DX] == 0)) {
gSaveContext.save.info.equips.buttonItems[0] = gSaveContext.buttonStatus[0];
Interface_LoadItemIcon1(play, 0);
}
@ -3545,11 +3545,11 @@ void Interface_Draw(PlayState* play) {
for (svar1 = 0; svar1 < ARRAY_COUNT(gSpoilingItems); svar1++) {
if (INV_CONTENT(ITEM_TRADE_ADULT) == gSpoilingItems[svar1]) {
#if OOT_VERSION >= NTSC_1_1
gSaveContext.eventInf[EVENTINF_HORSES_INDEX] &=
(u16) ~(EVENTINF_INGO_RACE_STATE_MASK | EVENTINF_INGO_RACE_HORSETYPE_MASK |
EVENTINF_INGO_RACE_LOST_ONCE_MASK | EVENTINF_INGO_RACE_SECOND_RACE_MASK |
EVENTINF_INGO_RACE_0F_MASK);
PRINTF("EVENT_INF=%x\n", gSaveContext.eventInf[EVENTINF_HORSES_INDEX]);
gSaveContext.eventInf[EVENTINF_INDEX_HORSES] &=
(u16) ~(EVENTINF_INGO_RACE_STATE_MASK | EVENTINF_MASK(EVENTINF_INGO_RACE_HORSETYPE) |
EVENTINF_MASK(EVENTINF_INGO_RACE_LOST_ONCE) |
EVENTINF_MASK(EVENTINF_INGO_RACE_SECOND_RACE) | EVENTINF_MASK(EVENTINF_INGO_RACE_0F));
PRINTF("EVENT_INF=%x\n", gSaveContext.eventInf[EVENTINF_INDEX_HORSES]);
#endif
play->nextEntranceIndex = spoilingItemEntrances[svar1];
INV_CONTENT(gSpoilingItemReverts[svar1]) = gSpoilingItemReverts[svar1];

View file

@ -162,7 +162,7 @@ void Sram_InitNewSave(void) {
gSaveContext.save.info.horseData.pos.z = 5497;
gSaveContext.save.info.horseData.angle = -0x6AD9;
gSaveContext.save.info.playerData.magicLevel = 0;
gSaveContext.save.info.infTable[INFTABLE_1DX_INDEX] = 1;
gSaveContext.save.info.infTable[INFTABLE_INDEX_1DX] = 1;
gSaveContext.save.info.sceneFlags[SCENE_WATER_TEMPLE].swch = 0x40000000;
}
@ -325,8 +325,15 @@ void Sram_InitDebugSave(void) {
gSaveContext.save.info.horseData.pos.y = 72;
gSaveContext.save.info.horseData.pos.z = 5497;
gSaveContext.save.info.horseData.angle = -0x6AD9;
gSaveContext.save.info.infTable[0] |= 0x5009;
gSaveContext.save.info.eventChkInf[0] |= 0x123F;
gSaveContext.save.info.infTable[INFTABLE_INDEX_0] |= INFTABLE_MASK(INFTABLE_00) | INFTABLE_MASK(INFTABLE_03) |
INFTABLE_MASK(INFTABLE_0C) | INFTABLE_MASK(INFTABLE_0E);
gSaveContext.save.info.eventChkInf[EVENTCHKINF_INDEX_0] |=
EVENTCHKINF_MASK(EVENTCHKINF_00_UNUSED) | EVENTCHKINF_MASK(EVENTCHKINF_01_UNUSED) |
EVENTCHKINF_MASK(EVENTCHKINF_MIDO_DENIED_DEKU_TREE_ACCESS) | EVENTCHKINF_MASK(EVENTCHKINF_03) |
EVENTCHKINF_MASK(EVENTCHKINF_04) | EVENTCHKINF_MASK(EVENTCHKINF_05) | EVENTCHKINF_MASK(EVENTCHKINF_09) |
EVENTCHKINF_MASK(EVENTCHKINF_0C);
SET_EVENTCHKINF(EVENTCHKINF_80);
SET_EVENTCHKINF(EVENTCHKINF_C4);
@ -498,8 +505,8 @@ void Sram_OpenSave(SramContext* sramCtx) {
// if zelda cutscene has been watched but lullaby was not obtained, restore cutscene and take away letter
if (GET_EVENTCHKINF(EVENTCHKINF_40) && !CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) {
i = gSaveContext.save.info.eventChkInf[EVENTCHKINF_40_INDEX] & ~EVENTCHKINF_40_MASK;
gSaveContext.save.info.eventChkInf[EVENTCHKINF_40_INDEX] = i;
i = gSaveContext.save.info.eventChkInf[EVENTCHKINF_INDEX_40] & ~EVENTCHKINF_MASK(EVENTCHKINF_40);
gSaveContext.save.info.eventChkInf[EVENTCHKINF_INDEX_40] = i;
INV_CONTENT(ITEM_ZELDAS_LETTER) = ITEM_CHICKEN;