mirror of
https://github.com/zeldaret/mm.git
synced 2026-05-24 07:10:44 -04:00
z_sram_NES with 2 NON_MATCHINGs and 1 NON_EQUIVALENTs (#531)
* Rename Sram_InitDebugSave * Sram_InitDebugSave * err * Sram_IncrementDay * non_matchings * func_80146F5C and protos * func_80146EE8 * func_80145698 * func_80143A54 * Split SaveContext * problems with bss * Fix bss * more * a small bunch * Fix warnings * almost everything * two attempts * at least compiles * import data * bss * format * stuff? * Progress? * More progress * clean up data a little * More progress * disaster * re split data * A bit less of a disaster * Fix renamed stuff * data stuff * fix conflicts * format * CycleSceneFlags * some enums * cleanup * Fix merge issues * format * some changes * format * Lots of progress on z_sram_NES, but no matches yet * SaveContent Documentation * Oops * Oops2 * Document more SaveContext * Oops, don't need that anymore * add small comment * Another comment * dekuPlaygroundPlayerName * Fix merge issues * format * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * remove magic number * format * fix merge issues * bss * format * macro cleanup * review * merge issues * review * cleanup * UNK_TYPE1 * Fix * Remove comment * small change * conflicts * review * fix * fixes * format * Update actorCtx renames part * Match func_80143B0C thanks to Petrie and Anon * minor cleaning pass * format * cleanup * more minor cleanups * Macros for accessing gSaveContext.save.stolenItems * Introduce STOLEN_ITEM_NONE and remove CLEAR_STOLEN_ITEM_ * format * Update include/macros.h Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_sram_NES.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * @hensldm review * Update include/functions.h Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update include/functions.h Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Rename QUEST_SONG_NEW_WAVE * Add scene name comments to D_801C5FC0 * rename horseData.yaw * Update include/functions.h Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_sram_NES.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * // = CUR_UPG_VALUE(UPG_WALLET); * run actorfixer and format * fix bss * Fix merge problems and run format * Some improvements to func_801457CC by anon * bss * format * run actorfixer * actorfixer, bss and format * Use original names for the RESPAWN_MODE enum because the current ones are bad * QUEST_SONG_BOSSA_NOVA * some minor fixes on the SaveContext struct according to the debug rom * Merge Inventory.items and Inventory.masks * a * simplify saveBuf accesses * A few func renames * actorfixer * bss * fixes * bss * actorfixer * actorfixer and format * actorfixer * whoops * whops * bss Co-authored-by: engineer124 <engineer124engineer124@gmail.com> Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
This commit is contained in:
+24
-21
@@ -504,7 +504,7 @@ void Inventory_ChangeEquipment(s16 value) {
|
||||
u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
||||
if (CUR_EQUIP_VALUE_VOID(EQUIP_SHIELD) != 0) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != 0) {
|
||||
SET_EQUIP_VALUE(EQUIP_SHIELD, 0);
|
||||
Player_SetEquipmentData(globalCtx, player);
|
||||
return true;
|
||||
@@ -514,12 +514,12 @@ u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment) {
|
||||
}
|
||||
|
||||
void Inventory_ChangeUpgrade(s16 upgrade, u32 value) {
|
||||
u32 upgrades = gSaveContext.inventory.upgrades;
|
||||
u32 upgrades = gSaveContext.save.inventory.upgrades;
|
||||
|
||||
upgrades &= gUpgradeNegMasks[upgrade];
|
||||
upgrades |= value << gUpgradeShifts[upgrade];
|
||||
|
||||
gSaveContext.inventory.upgrades = upgrades;
|
||||
gSaveContext.save.inventory.upgrades = upgrades;
|
||||
}
|
||||
|
||||
s32 Inventory_IsMapVisible(s16 sceneNum) {
|
||||
@@ -546,7 +546,7 @@ s32 Inventory_IsMapVisible(s16 sceneNum) {
|
||||
}
|
||||
}
|
||||
|
||||
if (gSaveContext.scenesVisible[index] & gBitFlags[sceneNum - (index << 5)]) {
|
||||
if (gSaveContext.save.scenesVisible[index] & gBitFlags[sceneNum - (index << 5)]) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -659,23 +659,23 @@ void Inventory_SetMapVisibility(s16 tingleIndex) {
|
||||
index = 6;
|
||||
}
|
||||
|
||||
gSaveContext.scenesVisible[index] =
|
||||
gSaveContext.scenesVisible[index] | gBitFlags[(s16)(*tingleMapSceneIndices)[i] - (index << 5)];
|
||||
gSaveContext.save.scenesVisible[index] =
|
||||
gSaveContext.save.scenesVisible[index] | gBitFlags[(s16)(*tingleMapSceneIndices)[i] - (index << 5)];
|
||||
i++;
|
||||
}
|
||||
|
||||
if ((*tingleMapSceneIndices) == sScenesPerTingleMap[0]) {
|
||||
gSaveContext.mapsVisible |= 3;
|
||||
gSaveContext.save.mapsVisible |= 3;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[1]) {
|
||||
gSaveContext.mapsVisible |= 0x1C;
|
||||
gSaveContext.save.mapsVisible |= 0x1C;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[2]) {
|
||||
gSaveContext.mapsVisible |= 0xE0;
|
||||
gSaveContext.save.mapsVisible |= 0xE0;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[3]) {
|
||||
gSaveContext.mapsVisible |= 0x100;
|
||||
gSaveContext.save.mapsVisible |= 0x100;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[4]) {
|
||||
gSaveContext.mapsVisible |= 0x1E00;
|
||||
gSaveContext.save.mapsVisible |= 0x1E00;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[5]) {
|
||||
gSaveContext.mapsVisible |= 0x6000;
|
||||
gSaveContext.save.mapsVisible |= 0x6000;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -688,32 +688,34 @@ void Inventory_SetMapVisibility(s16 tingleIndex) {
|
||||
void Inventory_SaveDekuPlaygroundHighScore(s16 timerId) {
|
||||
s16 i;
|
||||
|
||||
gSaveContext.dekuPlaygroundHighScores[CURRENT_DAY - 1] = gSaveContext.unk_3DE0[timerId];
|
||||
gSaveContext.save.dekuPlaygroundHighScores[CURRENT_DAY - 1] = gSaveContext.unk_3DE0[timerId];
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
gSaveContext.inventory.dekuPlaygroundPlayerName[CURRENT_DAY - 1][i] = gSaveContext.playerName[i];
|
||||
gSaveContext.save.inventory.dekuPlaygroundPlayerName[CURRENT_DAY - 1][i] =
|
||||
gSaveContext.save.playerData.playerName[i];
|
||||
}
|
||||
}
|
||||
|
||||
void Inventory_IncrementSkullTokenCount(s16 sceneIndex) {
|
||||
if (sceneIndex == SCENE_KINSTA1) {
|
||||
// Swamp Spider House (increment high bits of skullTokenCount)
|
||||
gSaveContext.skullTokenCount = ((u16)(((gSaveContext.skullTokenCount & 0xFFFF0000) >> 0x10) + 1) << 0x10) |
|
||||
(gSaveContext.skullTokenCount & 0xFFFF);
|
||||
gSaveContext.save.skullTokenCount =
|
||||
((u16)(((gSaveContext.save.skullTokenCount & 0xFFFF0000) >> 0x10) + 1) << 0x10) |
|
||||
(gSaveContext.save.skullTokenCount & 0xFFFF);
|
||||
} else {
|
||||
// Ocean Spider House (increment low bits of skullTokenCount)
|
||||
gSaveContext.skullTokenCount =
|
||||
(((u16)gSaveContext.skullTokenCount + 1) & 0xFFFF) | (gSaveContext.skullTokenCount & 0xFFFF0000);
|
||||
gSaveContext.save.skullTokenCount =
|
||||
(((u16)gSaveContext.save.skullTokenCount + 1) & 0xFFFF) | (gSaveContext.save.skullTokenCount & 0xFFFF0000);
|
||||
}
|
||||
}
|
||||
|
||||
s16 Inventory_GetSkullTokenCount(s16 sceneIndex) {
|
||||
if (sceneIndex == SCENE_KINSTA1) {
|
||||
// Swamp Spider House
|
||||
return (gSaveContext.skullTokenCount & 0xFFFF0000) >> 0x10;
|
||||
return (gSaveContext.save.skullTokenCount & 0xFFFF0000) >> 0x10;
|
||||
} else {
|
||||
// Ocean Spider House
|
||||
return gSaveContext.skullTokenCount & 0xFFFF;
|
||||
return gSaveContext.save.skullTokenCount & 0xFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -723,5 +725,6 @@ void Inventory_SaveLotteryCodeGuess(GlobalContext* globalCtx) {
|
||||
lotteryCodeGuess = ((globalCtx->msgCtx.unk12054[0] & 0xF) << 8); // First Digit
|
||||
lotteryCodeGuess |= ((globalCtx->msgCtx.unk12054[1] & 0xF) << 4); // Second Digit
|
||||
lotteryCodeGuess |= (globalCtx->msgCtx.unk12054[2] & 0xF); // Third Digit
|
||||
gSaveContext.lotteryCodeGuess = (gSaveContext.lotteryCodeGuess & 0xFFFF0000) | (lotteryCodeGuess & 0xFFFF);
|
||||
gSaveContext.save.lotteryCodeGuess =
|
||||
(gSaveContext.save.lotteryCodeGuess & 0xFFFF0000) | (lotteryCodeGuess & 0xFFFF);
|
||||
}
|
||||
|
||||
+102
-102
@@ -12,106 +12,106 @@
|
||||
#include "global.h"
|
||||
|
||||
static FlagSetEntry sFlagEntries[] = {
|
||||
{ &gSaveContext.weekEventReg[0], "week_event_reg[0]" },
|
||||
{ &gSaveContext.weekEventReg[1], "week_event_reg[1]" },
|
||||
{ &gSaveContext.weekEventReg[2], "week_event_reg[2]" },
|
||||
{ &gSaveContext.weekEventReg[3], "week_event_reg[3]" },
|
||||
{ &gSaveContext.weekEventReg[4], "week_event_reg[4]" },
|
||||
{ &gSaveContext.weekEventReg[5], "week_event_reg[5]" },
|
||||
{ &gSaveContext.weekEventReg[6], "week_event_reg[6]" },
|
||||
{ &gSaveContext.weekEventReg[7], "week_event_reg[7]" },
|
||||
{ &gSaveContext.weekEventReg[8], "week_event_reg[8]" },
|
||||
{ &gSaveContext.weekEventReg[9], "week_event_reg[9]" },
|
||||
{ &gSaveContext.weekEventReg[10], "week_event_reg[10]" },
|
||||
{ &gSaveContext.weekEventReg[11], "week_event_reg[11]" },
|
||||
{ &gSaveContext.weekEventReg[12], "week_event_reg[12]" },
|
||||
{ &gSaveContext.weekEventReg[13], "week_event_reg[13]" },
|
||||
{ &gSaveContext.weekEventReg[14], "week_event_reg[14]" },
|
||||
{ &gSaveContext.weekEventReg[15], "week_event_reg[15]" },
|
||||
{ &gSaveContext.weekEventReg[16], "week_event_reg[16]" },
|
||||
{ &gSaveContext.weekEventReg[17], "week_event_reg[17]" },
|
||||
{ &gSaveContext.weekEventReg[18], "week_event_reg[18]" },
|
||||
{ &gSaveContext.weekEventReg[19], "week_event_reg[19]" },
|
||||
{ &gSaveContext.weekEventReg[20], "week_event_reg[20]" },
|
||||
{ &gSaveContext.weekEventReg[21], "week_event_reg[21]" },
|
||||
{ &gSaveContext.weekEventReg[22], "week_event_reg[22]" },
|
||||
{ &gSaveContext.weekEventReg[23], "week_event_reg[23]" },
|
||||
{ &gSaveContext.weekEventReg[24], "week_event_reg[24]" },
|
||||
{ &gSaveContext.weekEventReg[25], "week_event_reg[25]" },
|
||||
{ &gSaveContext.weekEventReg[26], "week_event_reg[26]" },
|
||||
{ &gSaveContext.weekEventReg[27], "week_event_reg[27]" },
|
||||
{ &gSaveContext.weekEventReg[28], "week_event_reg[28]" },
|
||||
{ &gSaveContext.weekEventReg[29], "week_event_reg[29]" },
|
||||
{ &gSaveContext.weekEventReg[30], "week_event_reg[30]" },
|
||||
{ &gSaveContext.weekEventReg[31], "week_event_reg[31]" },
|
||||
{ &gSaveContext.weekEventReg[32], "week_event_reg[32]" },
|
||||
{ &gSaveContext.weekEventReg[33], "week_event_reg[33]" },
|
||||
{ &gSaveContext.weekEventReg[34], "week_event_reg[34]" },
|
||||
{ &gSaveContext.weekEventReg[35], "week_event_reg[35]" },
|
||||
{ &gSaveContext.weekEventReg[36], "week_event_reg[36]" },
|
||||
{ &gSaveContext.weekEventReg[37], "week_event_reg[37]" },
|
||||
{ &gSaveContext.weekEventReg[38], "week_event_reg[38]" },
|
||||
{ &gSaveContext.weekEventReg[39], "week_event_reg[39]" },
|
||||
{ &gSaveContext.weekEventReg[40], "week_event_reg[40]" },
|
||||
{ &gSaveContext.weekEventReg[41], "week_event_reg[41]" },
|
||||
{ &gSaveContext.weekEventReg[42], "week_event_reg[42]" },
|
||||
{ &gSaveContext.weekEventReg[43], "week_event_reg[43]" },
|
||||
{ &gSaveContext.weekEventReg[44], "week_event_reg[44]" },
|
||||
{ &gSaveContext.weekEventReg[45], "week_event_reg[45]" },
|
||||
{ &gSaveContext.weekEventReg[46], "week_event_reg[46]" },
|
||||
{ &gSaveContext.weekEventReg[47], "week_event_reg[47]" },
|
||||
{ &gSaveContext.weekEventReg[48], "week_event_reg[48]" },
|
||||
{ &gSaveContext.weekEventReg[49], "week_event_reg[49]" },
|
||||
{ &gSaveContext.weekEventReg[50], "week_event_reg[50]" },
|
||||
{ &gSaveContext.weekEventReg[51], "week_event_reg[51]" },
|
||||
{ &gSaveContext.weekEventReg[52], "week_event_reg[52]" },
|
||||
{ &gSaveContext.weekEventReg[53], "week_event_reg[53]" },
|
||||
{ &gSaveContext.weekEventReg[54], "week_event_reg[54]" },
|
||||
{ &gSaveContext.weekEventReg[55], "week_event_reg[55]" },
|
||||
{ &gSaveContext.weekEventReg[56], "week_event_reg[56]" },
|
||||
{ &gSaveContext.weekEventReg[57], "week_event_reg[57]" },
|
||||
{ &gSaveContext.weekEventReg[58], "week_event_reg[58]" },
|
||||
{ &gSaveContext.weekEventReg[59], "week_event_reg[59]" },
|
||||
{ &gSaveContext.weekEventReg[60], "week_event_reg[60]" },
|
||||
{ &gSaveContext.weekEventReg[61], "week_event_reg[61]" },
|
||||
{ &gSaveContext.weekEventReg[62], "week_event_reg[62]" },
|
||||
{ &gSaveContext.weekEventReg[63], "week_event_reg[63]" },
|
||||
{ &gSaveContext.weekEventReg[64], "week_event_reg[64]" },
|
||||
{ &gSaveContext.weekEventReg[65], "week_event_reg[65]" },
|
||||
{ &gSaveContext.weekEventReg[66], "week_event_reg[66]" },
|
||||
{ &gSaveContext.weekEventReg[67], "week_event_reg[67]" },
|
||||
{ &gSaveContext.weekEventReg[68], "week_event_reg[68]" },
|
||||
{ &gSaveContext.weekEventReg[69], "week_event_reg[69]" },
|
||||
{ &gSaveContext.weekEventReg[70], "week_event_reg[70]" },
|
||||
{ &gSaveContext.weekEventReg[71], "week_event_reg[71]" },
|
||||
{ &gSaveContext.weekEventReg[72], "week_event_reg[72]" },
|
||||
{ &gSaveContext.weekEventReg[73], "week_event_reg[73]" },
|
||||
{ &gSaveContext.weekEventReg[74], "week_event_reg[74]" },
|
||||
{ &gSaveContext.weekEventReg[75], "week_event_reg[75]" },
|
||||
{ &gSaveContext.weekEventReg[76], "week_event_reg[76]" },
|
||||
{ &gSaveContext.weekEventReg[77], "week_event_reg[77]" },
|
||||
{ &gSaveContext.weekEventReg[78], "week_event_reg[78]" },
|
||||
{ &gSaveContext.weekEventReg[79], "week_event_reg[79]" },
|
||||
{ &gSaveContext.weekEventReg[80], "week_event_reg[80]" },
|
||||
{ &gSaveContext.weekEventReg[81], "week_event_reg[81]" },
|
||||
{ &gSaveContext.weekEventReg[82], "week_event_reg[82]" },
|
||||
{ &gSaveContext.weekEventReg[83], "week_event_reg[83]" },
|
||||
{ &gSaveContext.weekEventReg[84], "week_event_reg[84]" },
|
||||
{ &gSaveContext.weekEventReg[85], "week_event_reg[85]" },
|
||||
{ &gSaveContext.weekEventReg[86], "week_event_reg[86]" },
|
||||
{ &gSaveContext.weekEventReg[87], "week_event_reg[87]" },
|
||||
{ &gSaveContext.weekEventReg[88], "week_event_reg[88]" },
|
||||
{ &gSaveContext.weekEventReg[89], "week_event_reg[89]" },
|
||||
{ &gSaveContext.weekEventReg[90], "week_event_reg[90]" },
|
||||
{ &gSaveContext.weekEventReg[91], "week_event_reg[91]" },
|
||||
{ &gSaveContext.weekEventReg[92], "week_event_reg[92]" },
|
||||
{ &gSaveContext.weekEventReg[93], "week_event_reg[93]" },
|
||||
{ &gSaveContext.weekEventReg[94], "week_event_reg[94]" },
|
||||
{ &gSaveContext.weekEventReg[95], "week_event_reg[95]" },
|
||||
{ &gSaveContext.weekEventReg[96], "week_event_reg[96]" },
|
||||
{ &gSaveContext.weekEventReg[97], "week_event_reg[97]" },
|
||||
{ &gSaveContext.weekEventReg[98], "week_event_reg[98]" },
|
||||
{ &gSaveContext.weekEventReg[99], "week_event_reg[99]" },
|
||||
{ &gSaveContext.save.weekEventReg[0], "week_event_reg[0]" },
|
||||
{ &gSaveContext.save.weekEventReg[1], "week_event_reg[1]" },
|
||||
{ &gSaveContext.save.weekEventReg[2], "week_event_reg[2]" },
|
||||
{ &gSaveContext.save.weekEventReg[3], "week_event_reg[3]" },
|
||||
{ &gSaveContext.save.weekEventReg[4], "week_event_reg[4]" },
|
||||
{ &gSaveContext.save.weekEventReg[5], "week_event_reg[5]" },
|
||||
{ &gSaveContext.save.weekEventReg[6], "week_event_reg[6]" },
|
||||
{ &gSaveContext.save.weekEventReg[7], "week_event_reg[7]" },
|
||||
{ &gSaveContext.save.weekEventReg[8], "week_event_reg[8]" },
|
||||
{ &gSaveContext.save.weekEventReg[9], "week_event_reg[9]" },
|
||||
{ &gSaveContext.save.weekEventReg[10], "week_event_reg[10]" },
|
||||
{ &gSaveContext.save.weekEventReg[11], "week_event_reg[11]" },
|
||||
{ &gSaveContext.save.weekEventReg[12], "week_event_reg[12]" },
|
||||
{ &gSaveContext.save.weekEventReg[13], "week_event_reg[13]" },
|
||||
{ &gSaveContext.save.weekEventReg[14], "week_event_reg[14]" },
|
||||
{ &gSaveContext.save.weekEventReg[15], "week_event_reg[15]" },
|
||||
{ &gSaveContext.save.weekEventReg[16], "week_event_reg[16]" },
|
||||
{ &gSaveContext.save.weekEventReg[17], "week_event_reg[17]" },
|
||||
{ &gSaveContext.save.weekEventReg[18], "week_event_reg[18]" },
|
||||
{ &gSaveContext.save.weekEventReg[19], "week_event_reg[19]" },
|
||||
{ &gSaveContext.save.weekEventReg[20], "week_event_reg[20]" },
|
||||
{ &gSaveContext.save.weekEventReg[21], "week_event_reg[21]" },
|
||||
{ &gSaveContext.save.weekEventReg[22], "week_event_reg[22]" },
|
||||
{ &gSaveContext.save.weekEventReg[23], "week_event_reg[23]" },
|
||||
{ &gSaveContext.save.weekEventReg[24], "week_event_reg[24]" },
|
||||
{ &gSaveContext.save.weekEventReg[25], "week_event_reg[25]" },
|
||||
{ &gSaveContext.save.weekEventReg[26], "week_event_reg[26]" },
|
||||
{ &gSaveContext.save.weekEventReg[27], "week_event_reg[27]" },
|
||||
{ &gSaveContext.save.weekEventReg[28], "week_event_reg[28]" },
|
||||
{ &gSaveContext.save.weekEventReg[29], "week_event_reg[29]" },
|
||||
{ &gSaveContext.save.weekEventReg[30], "week_event_reg[30]" },
|
||||
{ &gSaveContext.save.weekEventReg[31], "week_event_reg[31]" },
|
||||
{ &gSaveContext.save.weekEventReg[32], "week_event_reg[32]" },
|
||||
{ &gSaveContext.save.weekEventReg[33], "week_event_reg[33]" },
|
||||
{ &gSaveContext.save.weekEventReg[34], "week_event_reg[34]" },
|
||||
{ &gSaveContext.save.weekEventReg[35], "week_event_reg[35]" },
|
||||
{ &gSaveContext.save.weekEventReg[36], "week_event_reg[36]" },
|
||||
{ &gSaveContext.save.weekEventReg[37], "week_event_reg[37]" },
|
||||
{ &gSaveContext.save.weekEventReg[38], "week_event_reg[38]" },
|
||||
{ &gSaveContext.save.weekEventReg[39], "week_event_reg[39]" },
|
||||
{ &gSaveContext.save.weekEventReg[40], "week_event_reg[40]" },
|
||||
{ &gSaveContext.save.weekEventReg[41], "week_event_reg[41]" },
|
||||
{ &gSaveContext.save.weekEventReg[42], "week_event_reg[42]" },
|
||||
{ &gSaveContext.save.weekEventReg[43], "week_event_reg[43]" },
|
||||
{ &gSaveContext.save.weekEventReg[44], "week_event_reg[44]" },
|
||||
{ &gSaveContext.save.weekEventReg[45], "week_event_reg[45]" },
|
||||
{ &gSaveContext.save.weekEventReg[46], "week_event_reg[46]" },
|
||||
{ &gSaveContext.save.weekEventReg[47], "week_event_reg[47]" },
|
||||
{ &gSaveContext.save.weekEventReg[48], "week_event_reg[48]" },
|
||||
{ &gSaveContext.save.weekEventReg[49], "week_event_reg[49]" },
|
||||
{ &gSaveContext.save.weekEventReg[50], "week_event_reg[50]" },
|
||||
{ &gSaveContext.save.weekEventReg[51], "week_event_reg[51]" },
|
||||
{ &gSaveContext.save.weekEventReg[52], "week_event_reg[52]" },
|
||||
{ &gSaveContext.save.weekEventReg[53], "week_event_reg[53]" },
|
||||
{ &gSaveContext.save.weekEventReg[54], "week_event_reg[54]" },
|
||||
{ &gSaveContext.save.weekEventReg[55], "week_event_reg[55]" },
|
||||
{ &gSaveContext.save.weekEventReg[56], "week_event_reg[56]" },
|
||||
{ &gSaveContext.save.weekEventReg[57], "week_event_reg[57]" },
|
||||
{ &gSaveContext.save.weekEventReg[58], "week_event_reg[58]" },
|
||||
{ &gSaveContext.save.weekEventReg[59], "week_event_reg[59]" },
|
||||
{ &gSaveContext.save.weekEventReg[60], "week_event_reg[60]" },
|
||||
{ &gSaveContext.save.weekEventReg[61], "week_event_reg[61]" },
|
||||
{ &gSaveContext.save.weekEventReg[62], "week_event_reg[62]" },
|
||||
{ &gSaveContext.save.weekEventReg[63], "week_event_reg[63]" },
|
||||
{ &gSaveContext.save.weekEventReg[64], "week_event_reg[64]" },
|
||||
{ &gSaveContext.save.weekEventReg[65], "week_event_reg[65]" },
|
||||
{ &gSaveContext.save.weekEventReg[66], "week_event_reg[66]" },
|
||||
{ &gSaveContext.save.weekEventReg[67], "week_event_reg[67]" },
|
||||
{ &gSaveContext.save.weekEventReg[68], "week_event_reg[68]" },
|
||||
{ &gSaveContext.save.weekEventReg[69], "week_event_reg[69]" },
|
||||
{ &gSaveContext.save.weekEventReg[70], "week_event_reg[70]" },
|
||||
{ &gSaveContext.save.weekEventReg[71], "week_event_reg[71]" },
|
||||
{ &gSaveContext.save.weekEventReg[72], "week_event_reg[72]" },
|
||||
{ &gSaveContext.save.weekEventReg[73], "week_event_reg[73]" },
|
||||
{ &gSaveContext.save.weekEventReg[74], "week_event_reg[74]" },
|
||||
{ &gSaveContext.save.weekEventReg[75], "week_event_reg[75]" },
|
||||
{ &gSaveContext.save.weekEventReg[76], "week_event_reg[76]" },
|
||||
{ &gSaveContext.save.weekEventReg[77], "week_event_reg[77]" },
|
||||
{ &gSaveContext.save.weekEventReg[78], "week_event_reg[78]" },
|
||||
{ &gSaveContext.save.weekEventReg[79], "week_event_reg[79]" },
|
||||
{ &gSaveContext.save.weekEventReg[80], "week_event_reg[80]" },
|
||||
{ &gSaveContext.save.weekEventReg[81], "week_event_reg[81]" },
|
||||
{ &gSaveContext.save.weekEventReg[82], "week_event_reg[82]" },
|
||||
{ &gSaveContext.save.weekEventReg[83], "week_event_reg[83]" },
|
||||
{ &gSaveContext.save.weekEventReg[84], "week_event_reg[84]" },
|
||||
{ &gSaveContext.save.weekEventReg[85], "week_event_reg[85]" },
|
||||
{ &gSaveContext.save.weekEventReg[86], "week_event_reg[86]" },
|
||||
{ &gSaveContext.save.weekEventReg[87], "week_event_reg[87]" },
|
||||
{ &gSaveContext.save.weekEventReg[88], "week_event_reg[88]" },
|
||||
{ &gSaveContext.save.weekEventReg[89], "week_event_reg[89]" },
|
||||
{ &gSaveContext.save.weekEventReg[90], "week_event_reg[90]" },
|
||||
{ &gSaveContext.save.weekEventReg[91], "week_event_reg[91]" },
|
||||
{ &gSaveContext.save.weekEventReg[92], "week_event_reg[92]" },
|
||||
{ &gSaveContext.save.weekEventReg[93], "week_event_reg[93]" },
|
||||
{ &gSaveContext.save.weekEventReg[94], "week_event_reg[94]" },
|
||||
{ &gSaveContext.save.weekEventReg[95], "week_event_reg[95]" },
|
||||
{ &gSaveContext.save.weekEventReg[96], "week_event_reg[96]" },
|
||||
{ &gSaveContext.save.weekEventReg[97], "week_event_reg[97]" },
|
||||
{ &gSaveContext.save.weekEventReg[98], "week_event_reg[98]" },
|
||||
{ &gSaveContext.save.weekEventReg[99], "week_event_reg[99]" },
|
||||
|
||||
{ &gSaveContext.eventInf[0], "event_inf[0]" },
|
||||
{ &gSaveContext.eventInf[1], "event_inf[1]" },
|
||||
@@ -245,8 +245,8 @@ void FlagSet_Update(GameState* gameState) {
|
||||
if (CHECK_BTN_ALL(input->cur.button, BTN_START)) {
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
|
||||
s16 i;
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.weekEventReg); i++) {
|
||||
gSaveContext.weekEventReg[i] = 0;
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.save.weekEventReg); i++) {
|
||||
gSaveContext.save.weekEventReg[i] = 0;
|
||||
}
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.eventInf); i++) {
|
||||
gSaveContext.eventInf[i] = 0;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
|
||||
#define RSP_DONE_MSG 667
|
||||
|
||||
+4
-4
@@ -2224,7 +2224,7 @@ void func_800B90F4(GlobalContext* globalCtx) {
|
||||
void func_800B9120(ActorContext* actorCtx) {
|
||||
s32 phi_v0 = CURRENT_DAY * 2;
|
||||
|
||||
if (gSaveContext.time < CLOCK_TIME(6, 0) || gSaveContext.time > CLOCK_TIME(18, 0)) {
|
||||
if (gSaveContext.save.time < CLOCK_TIME(6, 0) || gSaveContext.save.time > CLOCK_TIME(18, 0)) {
|
||||
phi_v0++;
|
||||
}
|
||||
|
||||
@@ -2236,7 +2236,7 @@ void Actor_InitContext(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEn
|
||||
CycleSceneFlags* cycleFlags;
|
||||
s32 i;
|
||||
|
||||
gSaveContext.weekEventReg[92] |= 0x80;
|
||||
gSaveContext.save.weekEventReg[92] |= 0x80;
|
||||
cycleFlags = &gSaveContext.cycleSceneFlags[Play_GetOriginalSceneNumber(globalCtx->sceneNum)];
|
||||
|
||||
bzero(actorCtx, sizeof(ActorContext));
|
||||
@@ -2252,8 +2252,8 @@ void Actor_InitContext(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEn
|
||||
}
|
||||
|
||||
actorCtx->flags.chest = cycleFlags->chest;
|
||||
actorCtx->flags.switches[0] = cycleFlags->swch0;
|
||||
actorCtx->flags.switches[1] = cycleFlags->swch1;
|
||||
actorCtx->flags.switches[0] = cycleFlags->switch0;
|
||||
actorCtx->flags.switches[1] = cycleFlags->switch1;
|
||||
if (globalCtx->sceneNum == SCENE_INISIE_R) {
|
||||
cycleFlags = &gSaveContext.cycleSceneFlags[globalCtx->sceneNum];
|
||||
}
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
#define DYNA_RAYCAST_WALLS 2
|
||||
#define DYNA_RAYCAST_CEILINGS 4
|
||||
|
||||
static u32 sWallFlags[32] = {
|
||||
u32 sWallFlags[32] = {
|
||||
0, 1, 3, 5, 8, 16, 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
|
||||
static u16 sSurfaceTypeSfx[] = {
|
||||
u16 sSurfaceTypeSfx[] = {
|
||||
/* 0x00 */ NA_SE_PL_WALK_GROUND - SFX_FLAG,
|
||||
/* 0x01 */ NA_SE_PL_WALK_SAND - SFX_FLAG,
|
||||
/* 0x02 */ NA_SE_PL_WALK_CONCRETE - SFX_FLAG,
|
||||
@@ -28,7 +28,7 @@ static u16 sSurfaceTypeSfx[] = {
|
||||
/* 0x0E */ NA_SE_PL_WALK_SNOW - SFX_FLAG
|
||||
};
|
||||
|
||||
static u8 D_801B46C0[] = {
|
||||
u8 D_801B46C0[] = {
|
||||
/* 0x00 */ 1,
|
||||
/* 0x01 */ 1,
|
||||
/* 0x02 */ 0,
|
||||
@@ -46,7 +46,7 @@ static u8 D_801B46C0[] = {
|
||||
/* 0x0E */ 1
|
||||
};
|
||||
|
||||
static s16 sSmallMemScenes[] = {
|
||||
s16 sSmallMemScenes[] = {
|
||||
SCENE_F01,
|
||||
};
|
||||
|
||||
@@ -55,7 +55,7 @@ typedef struct {
|
||||
u32 memSize;
|
||||
} BgCheckSceneMemEntry;
|
||||
|
||||
static BgCheckSceneMemEntry sSceneMemList[] = {
|
||||
BgCheckSceneMemEntry sSceneMemList[] = {
|
||||
{ SCENE_00KEIKOKU, 0xC800 },
|
||||
};
|
||||
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
SaveContext gSaveContext;
|
||||
|
||||
void SaveContext_Init(void) {
|
||||
bzero(&gSaveContext, sizeof(gSaveContext));
|
||||
gSaveContext.playerForm = 0;
|
||||
bzero(&gSaveContext, sizeof(SaveContext));
|
||||
|
||||
gSaveContext.save.playerForm = 0;
|
||||
gSaveContext.seqIndex = (u8)NA_BGM_DISABLED;
|
||||
gSaveContext.nightSeqIndex = 0xFF;
|
||||
gSaveContext.unk_3F46 = NA_BGM_GENERAL_SFX;
|
||||
@@ -16,7 +17,8 @@ void SaveContext_Init(void) {
|
||||
gSaveContext.dogIsLost = true;
|
||||
gSaveContext.nextTransition = 0xFF;
|
||||
gSaveContext.unk_3F26 = 50;
|
||||
gSaveContext.language = 1;
|
||||
gSaveContext.audioSetting = 0;
|
||||
gSaveContext.zTargetSetting = 0;
|
||||
|
||||
gSaveContext.options.language = 1;
|
||||
gSaveContext.options.audioSetting = 0;
|
||||
gSaveContext.options.zTargetSetting = 0;
|
||||
}
|
||||
|
||||
+39
-38
@@ -68,7 +68,7 @@ CutsceneStateHandler sCsStateHandlers1[] = {
|
||||
};
|
||||
|
||||
void Cutscene_Update1(GlobalContext* globalCtx, CutsceneContext* csCtx) {
|
||||
if (gSaveContext.cutscene < 0xFFF0) {
|
||||
if (gSaveContext.save.cutscene < 0xFFF0) {
|
||||
sCsStateHandlers1[csCtx->state](globalCtx, csCtx);
|
||||
}
|
||||
}
|
||||
@@ -87,11 +87,11 @@ void Cutscene_Update2(GlobalContext* globalCtx, CutsceneContext* csCtx) {
|
||||
}
|
||||
|
||||
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_0)) {
|
||||
gSaveContext.cutscene = 0xFFFD;
|
||||
gSaveContext.save.cutscene = 0xFFFD;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
}
|
||||
|
||||
if (gSaveContext.cutscene >= 0xFFF0) {
|
||||
if (gSaveContext.save.cutscene >= 0xFFF0) {
|
||||
func_800EDA84(globalCtx, csCtx);
|
||||
sCsStateHandlers2[csCtx->state](globalCtx, csCtx);
|
||||
}
|
||||
@@ -250,12 +250,12 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
gSaveContext.sunsSongState = SUNSSONG_START;
|
||||
break;
|
||||
case 0x12:
|
||||
if (!gSaveContext.isNight) {
|
||||
time = gSaveContext.time;
|
||||
gSaveContext.time = time - (u16)REG(15);
|
||||
if (!gSaveContext.save.isNight) {
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = time - (u16)REG(15);
|
||||
} else {
|
||||
time = gSaveContext.time;
|
||||
gSaveContext.time = time - (u16)(2 * REG(15));
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = time - (u16)(2 * REG(15));
|
||||
}
|
||||
break;
|
||||
case 0x13:
|
||||
@@ -270,7 +270,7 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
EnvFlags_Set(globalCtx, 4);
|
||||
break;
|
||||
case 0x16:
|
||||
gSaveContext.playerForm = PLAYER_FORM_DEKU;
|
||||
gSaveContext.save.playerForm = PLAYER_FORM_DEKU;
|
||||
break;
|
||||
case 0x17:
|
||||
player->stateFlags2 |= 0x4000000;
|
||||
@@ -279,9 +279,9 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
player->stateFlags2 &= ~0x4000000;
|
||||
break;
|
||||
case 0x19:
|
||||
sCutsceneStoredPlayerForm = gSaveContext.playerForm;
|
||||
gSaveContext.playerForm = PLAYER_FORM_HUMAN;
|
||||
gSaveContext.equippedMask = PLAYER_MASK_NONE;
|
||||
sCutsceneStoredPlayerForm = gSaveContext.save.playerForm;
|
||||
gSaveContext.save.playerForm = PLAYER_FORM_HUMAN;
|
||||
gSaveContext.save.equippedMask = PLAYER_MASK_NONE;
|
||||
break;
|
||||
case 0x1A:
|
||||
func_8019F128(NA_SE_EV_EARTHQUAKE_LAST2 - SFX_FLAG);
|
||||
@@ -306,7 +306,7 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
}
|
||||
break;
|
||||
case 0x1D:
|
||||
gSaveContext.playerForm = sCutsceneStoredPlayerForm;
|
||||
gSaveContext.save.playerForm = sCutsceneStoredPlayerForm;
|
||||
break;
|
||||
case 0x1E:
|
||||
D_801F4DE0 = true;
|
||||
@@ -316,7 +316,7 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
break;
|
||||
case 0x21:
|
||||
if (isStartFrame) {
|
||||
func_80146EE8(globalCtx);
|
||||
Sram_SaveSpecialEnterClockTown(globalCtx);
|
||||
}
|
||||
break;
|
||||
case 0x22:
|
||||
@@ -329,10 +329,10 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
D_801BB15C = csCtx->frames;
|
||||
|
||||
if (REG(15) != 0) {
|
||||
time = gSaveContext.time;
|
||||
gSaveContext.time = (u16)REG(15) + time;
|
||||
time = gSaveContext.time;
|
||||
gSaveContext.time = (u16)gSaveContext.unk_14 + time;
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = (u16)REG(15) + time;
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = (u16)gSaveContext.save.daySpeed + time;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -349,7 +349,7 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
case 0x26:
|
||||
// Seems to be used to trigger "Dawn of A New Day"
|
||||
|
||||
gSaveContext.day = 9;
|
||||
gSaveContext.save.day = 9;
|
||||
|
||||
{
|
||||
GameState* gameState = &globalCtx->state;
|
||||
@@ -357,11 +357,11 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
}
|
||||
SET_NEXT_GAMESTATE(&globalCtx->state, Daytelop_Init, DaytelopContext);
|
||||
|
||||
func_80146F5C(globalCtx);
|
||||
Sram_SaveSpecialNewDay(globalCtx);
|
||||
break;
|
||||
|
||||
case 0x27:
|
||||
gSaveContext.playerForm = PLAYER_FORM_ZORA;
|
||||
gSaveContext.save.playerForm = PLAYER_FORM_ZORA;
|
||||
break;
|
||||
|
||||
case 0x28:
|
||||
@@ -442,7 +442,7 @@ void func_800EADB0(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
|
||||
u8 dayMinusOne;
|
||||
|
||||
if (csCtx->frames == cmd->startFrame) {
|
||||
dayMinusOne = (gSaveContext.day - 1);
|
||||
dayMinusOne = (gSaveContext.save.day - 1);
|
||||
if (dayMinusOne >= 3) {
|
||||
dayMinusOne = 0;
|
||||
}
|
||||
@@ -557,7 +557,7 @@ void Cutscene_Command_SetTime(GlobalContext* globalCtx, CutsceneContext* csCtx,
|
||||
minutes = CLOCK_TIME_ALT_F(0, cmd->minute + 1);
|
||||
|
||||
nextTime = hourAsMinutes + minutes;
|
||||
gSaveContext.time = nextTime;
|
||||
gSaveContext.save.time = nextTime;
|
||||
gSaveContext.environmentTime = nextTime;
|
||||
}
|
||||
}
|
||||
@@ -572,7 +572,7 @@ void Cutscene_TerminatorImpl(GlobalContext* globalCtx, CutsceneContext* csCtx, C
|
||||
gSaveContext.unk_3F1E = 1;
|
||||
}
|
||||
|
||||
gSaveContext.cutscene = 0;
|
||||
gSaveContext.save.cutscene = 0;
|
||||
if (cmd->base == 1) {
|
||||
globalCtx->nextEntranceIndex = globalCtx->csCtx.sceneCsList[globalCtx->csCtx.currentCsIndex].nextEntranceIndex;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
@@ -607,7 +607,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
|
||||
|
||||
switch (D_801F4DE2) {
|
||||
case 0x1F:
|
||||
if (gSaveContext.weekEventReg[0x14] & 2) {
|
||||
if (gSaveContext.save.weekEventReg[20] & 2) {
|
||||
globalCtx->nextEntranceIndex = 0x3010;
|
||||
globalCtx->sceneLoadFlag = 0x14;
|
||||
globalCtx->unk_1887F = 3;
|
||||
@@ -620,7 +620,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
|
||||
break;
|
||||
|
||||
case 0x44:
|
||||
if (gSaveContext.weekEventReg[0x21] & 0x80) {
|
||||
if (gSaveContext.save.weekEventReg[33] & 0x80) {
|
||||
globalCtx->nextEntranceIndex = 0xAE70;
|
||||
globalCtx->sceneLoadFlag = 0x14;
|
||||
globalCtx->unk_1887F = 3;
|
||||
@@ -633,7 +633,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
|
||||
break;
|
||||
|
||||
case 0x5F:
|
||||
gSaveContext.weekEventReg[0x37] |= 0x80;
|
||||
gSaveContext.save.weekEventReg[55] |= 0x80;
|
||||
globalCtx->nextEntranceIndex = 0x6A80;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF0;
|
||||
globalCtx->sceneLoadFlag = 0x14;
|
||||
@@ -641,7 +641,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
|
||||
break;
|
||||
|
||||
case 0x36:
|
||||
gSaveContext.weekEventReg[0x34] |= 0x20;
|
||||
gSaveContext.save.weekEventReg[52] |= 0x20;
|
||||
globalCtx->nextEntranceIndex = 0x2000;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF1;
|
||||
globalCtx->sceneLoadFlag = 0x14;
|
||||
@@ -813,7 +813,7 @@ void Cutscene_Command_GiveTatlToPlayer(GlobalContext* globalCtx, CutsceneContext
|
||||
|
||||
if (csCtx->frames == cmd->startFrame) {
|
||||
if (cmd->base == 1) {
|
||||
gSaveContext.hasTatl = true;
|
||||
gSaveContext.save.hasTatl = true;
|
||||
if (player->tatlActor != NULL) {
|
||||
return;
|
||||
}
|
||||
@@ -1093,7 +1093,7 @@ void Cutscene_Command_Textbox(GlobalContext* globalCtx, CutsceneContext* csCtx,
|
||||
}
|
||||
}
|
||||
|
||||
if (dialogState == 5 && Message_ShouldAdvance(globalCtx) != 0) {
|
||||
if (dialogState == 5 && Message_ShouldAdvance(globalCtx)) {
|
||||
func_80152434(globalCtx, cmd->base);
|
||||
}
|
||||
}
|
||||
@@ -1424,7 +1424,7 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx,
|
||||
/* End of command handling section */
|
||||
|
||||
void func_800ED980(GlobalContext* globalCtx, CutsceneContext* csCtx) {
|
||||
if (gSaveContext.cutscene >= 0xFFF0) {
|
||||
if (gSaveContext.save.cutscene >= 0xFFF0) {
|
||||
csCtx->frames++;
|
||||
Cutscene_ProcessCommands(globalCtx, csCtx, (u8*)globalCtx->csCtx.csData);
|
||||
}
|
||||
@@ -1448,7 +1448,7 @@ void func_800EDA04(GlobalContext* globalCtx, CutsceneContext* csCtx) {
|
||||
csCtx->actorActions[i] = NULL;
|
||||
}
|
||||
|
||||
gSaveContext.cutscene = 0;
|
||||
gSaveContext.save.cutscene = 0;
|
||||
gSaveContext.gameMode = 0;
|
||||
ActorCutscene_Stop(0x7F);
|
||||
Audio_SetCutsceneFlag(false);
|
||||
@@ -1458,10 +1458,10 @@ void func_800EDA04(GlobalContext* globalCtx, CutsceneContext* csCtx) {
|
||||
|
||||
void func_800EDA84(GlobalContext* globalCtx, CutsceneContext* csCtx) {
|
||||
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_0) && !Player_InCsMode(&globalCtx->state)) {
|
||||
gSaveContext.cutscene = 0xFFFD;
|
||||
gSaveContext.save.cutscene = 0xFFFD;
|
||||
}
|
||||
|
||||
if ((gSaveContext.cutscene >= 0xFFF0) && (csCtx->state == CS_STATE_0)) {
|
||||
if ((gSaveContext.save.cutscene >= 0xFFF0) && (csCtx->state == CS_STATE_0)) {
|
||||
s16 i;
|
||||
|
||||
D_801BB124 = 0;
|
||||
@@ -1515,8 +1515,9 @@ void func_800EDBE0(GlobalContext* globalCtx) {
|
||||
ActorCutscene_Start(sp2A, NULL);
|
||||
gSaveContext.showTitleCard = false;
|
||||
} else if (!((1 << (temp_a3[temp_v0_3].unk7 % 8)) &
|
||||
gSaveContext.weekEventReg[temp_a3[temp_v0_3].unk7 / 8])) {
|
||||
gSaveContext.weekEventReg[(temp_a3[temp_v0_3].unk7 / 8)] |= 1 << (temp_a3[temp_v0_3].unk7 % 8);
|
||||
gSaveContext.save.weekEventReg[temp_a3[temp_v0_3].unk7 / 8])) {
|
||||
gSaveContext.save.weekEventReg[(temp_a3[temp_v0_3].unk7 / 8)] |=
|
||||
1 << (temp_a3[temp_v0_3].unk7 % 8);
|
||||
ActorCutscene_Start(sp2A, NULL);
|
||||
gSaveContext.showTitleCard = false;
|
||||
}
|
||||
@@ -1530,8 +1531,8 @@ void func_800EDBE0(GlobalContext* globalCtx) {
|
||||
if ((gSaveContext.respawnFlag == 0) || (gSaveContext.respawnFlag == -2)) {
|
||||
sp24 = globalCtx->loadedScene;
|
||||
if ((sp24->titleTextId != 0) && gSaveContext.showTitleCard) {
|
||||
if ((Entrance_GetTransitionFlags(gSaveContext.sceneSetupIndex + gSaveContext.entranceIndex) & 0x4000) !=
|
||||
0) {
|
||||
if ((Entrance_GetTransitionFlags(gSaveContext.sceneSetupIndex + gSaveContext.save.entranceIndex) &
|
||||
0x4000) != 0) {
|
||||
func_80151A68(globalCtx, sp24->titleTextId);
|
||||
}
|
||||
}
|
||||
|
||||
+13
-13
@@ -7,17 +7,17 @@ u16 ElfMessage_GetFirstCycleHint(GlobalContext* globalCtx) {
|
||||
if (CURRENT_DAY <= 0) {
|
||||
return 0;
|
||||
}
|
||||
if (gSaveContext.weekEventReg[88] & 0x20) {
|
||||
if (gSaveContext.save.weekEventReg[88] & 0x20) {
|
||||
return 0;
|
||||
}
|
||||
if (gSaveContext.weekEventReg[79] & 0x10) {
|
||||
if (gSaveContext.weekEventReg[8] & 0x40) {
|
||||
if (gSaveContext.save.weekEventReg[79] & 0x10) {
|
||||
if (gSaveContext.save.weekEventReg[8] & 0x40) {
|
||||
return 0;
|
||||
}
|
||||
return 0x224;
|
||||
}
|
||||
if (!(gSaveContext.weekEventReg[8] & 0x80)) {
|
||||
if (gSaveContext.weekEventReg[9] & 1) {
|
||||
if (!(gSaveContext.save.weekEventReg[8] & 0x80)) {
|
||||
if (gSaveContext.save.weekEventReg[9] & 1) {
|
||||
return 0x21E;
|
||||
}
|
||||
if (globalCtx->sceneNum == SCENE_YOUSEI_IZUMI) {
|
||||
@@ -25,7 +25,7 @@ u16 ElfMessage_GetFirstCycleHint(GlobalContext* globalCtx) {
|
||||
}
|
||||
return 0x21D;
|
||||
}
|
||||
if (gSaveContext.magicAcquired != true) {
|
||||
if (gSaveContext.save.playerData.magicAcquired != true) {
|
||||
return 0x21F;
|
||||
}
|
||||
if (INV_CONTENT(ITEM_DEED_LAND) == ITEM_DEED_LAND) {
|
||||
@@ -35,27 +35,27 @@ u16 ElfMessage_GetFirstCycleHint(GlobalContext* globalCtx) {
|
||||
return 0;
|
||||
}
|
||||
if (INV_CONTENT(ITEM_MOON_TEAR) == ITEM_MOON_TEAR) {
|
||||
if (gSaveContext.weekEventReg[86] & 4) {
|
||||
if (gSaveContext.save.weekEventReg[86] & 4) {
|
||||
return 0x242;
|
||||
}
|
||||
return 0x243;
|
||||
}
|
||||
if (gSaveContext.weekEventReg[74] & 0x20) {
|
||||
if (gSaveContext.save.weekEventReg[74] & 0x20) {
|
||||
return 0x223;
|
||||
}
|
||||
if (gSaveContext.weekEventReg[73] & 0x80) {
|
||||
if (gSaveContext.save.weekEventReg[73] & 0x80) {
|
||||
return 0x222;
|
||||
}
|
||||
if (gSaveContext.weekEventReg[73] & 0x20) {
|
||||
if (gSaveContext.save.weekEventReg[73] & 0x20) {
|
||||
return 0x221;
|
||||
}
|
||||
if (gSaveContext.weekEventReg[77] & 2) {
|
||||
if (gSaveContext.weekEventReg[73] & 0x10) {
|
||||
if (gSaveContext.save.weekEventReg[77] & 2) {
|
||||
if (gSaveContext.save.weekEventReg[73] & 0x10) {
|
||||
return 0x240;
|
||||
}
|
||||
return 0x241;
|
||||
}
|
||||
if ((gSaveContext.weekEventReg[86] & 2) || (gSaveContext.weekEventReg[73] & 0x40)) {
|
||||
if ((gSaveContext.save.weekEventReg[86] & 2) || (gSaveContext.save.weekEventReg[73] & 0x40)) {
|
||||
return 0x23F;
|
||||
}
|
||||
return 0x220;
|
||||
|
||||
+12
-10
@@ -822,13 +822,14 @@ s16 func_800A7650(s16 dropId) {
|
||||
(((dropId == ITEM00_ARROWS_10) || (dropId == ITEM00_ARROWS_30) || (dropId == ITEM00_ARROWS_40) ||
|
||||
(dropId == ITEM00_ARROWS_50)) &&
|
||||
(INV_CONTENT(ITEM_BOW) == ITEM_NONE)) ||
|
||||
(((dropId == ITEM00_MAGIC_LARGE) || (dropId == ITEM00_MAGIC_SMALL)) && (gSaveContext.magicLevel == 0))) {
|
||||
(((dropId == ITEM00_MAGIC_LARGE) || (dropId == ITEM00_MAGIC_SMALL)) &&
|
||||
(gSaveContext.save.playerData.magicLevel == 0))) {
|
||||
return ITEM00_NO_DROP;
|
||||
}
|
||||
|
||||
if (dropId == ITEM00_HEART) {
|
||||
healthCapacity = gSaveContext.healthCapacity;
|
||||
if (healthCapacity == gSaveContext.health) {
|
||||
healthCapacity = gSaveContext.save.playerData.healthCapacity;
|
||||
if (healthCapacity == gSaveContext.save.playerData.health) {
|
||||
return ITEM00_RUPEE_GREEN;
|
||||
}
|
||||
}
|
||||
@@ -1049,7 +1050,7 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
|
||||
dropQuantity = sDropTableAmounts[params + dropTableIndex];
|
||||
|
||||
if (dropId == ITEM00_MASK) {
|
||||
switch (gSaveContext.playerForm) {
|
||||
switch (gSaveContext.save.playerForm) {
|
||||
case PLAYER_FORM_HUMAN:
|
||||
dropId = ITEM00_ARROWS_10;
|
||||
break;
|
||||
@@ -1085,26 +1086,27 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
|
||||
}
|
||||
|
||||
if (dropId == ITEM00_FLEXIBLE) {
|
||||
if (gSaveContext.health <= 0x10) {
|
||||
if (gSaveContext.save.playerData.health <= 0x10) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, spawnPos->x, spawnPos->y + 40.0f,
|
||||
spawnPos->z, 0, 0, 0, 2);
|
||||
SoundSource_PlaySfxAtFixedWorldPos(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
|
||||
return;
|
||||
}
|
||||
|
||||
if (gSaveContext.health <= 0x30) {
|
||||
if (gSaveContext.save.playerData.health <= 0x30) {
|
||||
params = 0x10;
|
||||
dropId = ITEM00_HEART;
|
||||
dropQuantity = 3;
|
||||
} else if (gSaveContext.health <= 0x50) {
|
||||
} else if (gSaveContext.save.playerData.health <= 0x50) {
|
||||
params = 0x10;
|
||||
dropId = ITEM00_HEART;
|
||||
dropQuantity = 1;
|
||||
} else if ((gSaveContext.magicLevel != 0) && (gSaveContext.magic == 0)) {
|
||||
} else if ((gSaveContext.save.playerData.magicLevel != 0) && (gSaveContext.save.playerData.magic == 0)) {
|
||||
params = 0xD0;
|
||||
dropId = ITEM00_MAGIC_LARGE;
|
||||
dropQuantity = 1;
|
||||
} else if ((gSaveContext.magicLevel != 0) && ((gSaveContext.magicLevel >> 1) >= gSaveContext.magic)) {
|
||||
} else if ((gSaveContext.save.playerData.magicLevel != 0) &&
|
||||
((gSaveContext.save.playerData.magicLevel >> 1) >= gSaveContext.save.playerData.magic)) {
|
||||
params = 0xD0;
|
||||
dropId = ITEM00_MAGIC_LARGE;
|
||||
dropQuantity = 1;
|
||||
@@ -1116,7 +1118,7 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
|
||||
params = 0xB0;
|
||||
dropId = ITEM00_BOMBS_A;
|
||||
dropQuantity = 1;
|
||||
} else if (gSaveContext.rupees < 11) {
|
||||
} else if (gSaveContext.save.playerData.rupees < 11) {
|
||||
params = 0xA0;
|
||||
dropId = ITEM00_RUPEE_RED;
|
||||
dropQuantity = 1;
|
||||
|
||||
@@ -44,7 +44,7 @@ void GameOver_Update(GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
gSaveContext.unk_3DC0 = 2000;
|
||||
gSaveContext.tatlTimer = 0;
|
||||
gSaveContext.save.playerData.tatlTimer = 0;
|
||||
gSaveContext.seqIndex = (u8)NA_BGM_DISABLED;
|
||||
gSaveContext.nightSeqIndex = 0xFF;
|
||||
gSaveContext.eventInf[0] = 0;
|
||||
@@ -72,11 +72,11 @@ void GameOver_Update(GlobalContext* globalCtx) {
|
||||
gSaveContext.respawnFlag = -6;
|
||||
}
|
||||
gSaveContext.nextTransition = 2;
|
||||
gSaveContext.health = 48;
|
||||
gSaveContext.save.playerData.health = 48;
|
||||
gameOverCtx->state++;
|
||||
if (INV_CONTENT(ITEM_MASK_DEKU) == ITEM_MASK_DEKU) {
|
||||
gSaveContext.playerForm = PLAYER_FORM_HUMAN;
|
||||
gSaveContext.equippedMask = PLAYER_MASK_NONE;
|
||||
gSaveContext.save.playerForm = PLAYER_FORM_HUMAN;
|
||||
gSaveContext.save.equippedMask = PLAYER_MASK_NONE;
|
||||
}
|
||||
func_8013EE24();
|
||||
}
|
||||
|
||||
+14
-14
@@ -38,7 +38,7 @@ void LifeMeter_Init(GlobalContext* globalCtx) {
|
||||
|
||||
interfaceCtx->unkTimer = 320;
|
||||
|
||||
interfaceCtx->health = gSaveContext.health;
|
||||
interfaceCtx->health = gSaveContext.save.playerData.health;
|
||||
|
||||
interfaceCtx->lifeColorChange = 0;
|
||||
interfaceCtx->lifeColorChangeDirection = 0;
|
||||
@@ -168,7 +168,7 @@ void LifeMeter_UpdateColors(GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
s32 LifeMeter_SaveInterfaceHealth(GlobalContext* globalCtx) {
|
||||
gSaveContext.health = globalCtx->interfaceCtx.health;
|
||||
gSaveContext.save.playerData.health = globalCtx->interfaceCtx.health;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -178,8 +178,8 @@ s32 LifeMeter_IncreaseInterfaceHealth(GlobalContext* globalCtx) {
|
||||
|
||||
interfaceCtx->unkTimer = 320;
|
||||
interfaceCtx->health += 0x10;
|
||||
if (globalCtx->interfaceCtx.health >= gSaveContext.health) {
|
||||
globalCtx->interfaceCtx.health = gSaveContext.health;
|
||||
if (globalCtx->interfaceCtx.health >= gSaveContext.save.playerData.health) {
|
||||
globalCtx->interfaceCtx.health = gSaveContext.save.playerData.health;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -195,7 +195,7 @@ s32 LifeMeter_DecreaseInterfaceHealth(GlobalContext* globalCtx) {
|
||||
interfaceCtx->health -= 0x10;
|
||||
if (interfaceCtx->health <= 0) {
|
||||
interfaceCtx->health = 0;
|
||||
globalCtx->damagePlayer(globalCtx, -(((void)0, gSaveContext.health) + 1));
|
||||
globalCtx->damagePlayer(globalCtx, -(((void)0, gSaveContext.save.playerData.health) + 1));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -216,18 +216,18 @@ void LifeMeter_Draw(GlobalContext* globalCtx) {
|
||||
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
Vtx* beatingHeartVtx = interfaceCtx->beatingHeartVtx;
|
||||
s32 fractionHeartCount = gSaveContext.health % 0x10;
|
||||
s16 healthCapacity = gSaveContext.healthCapacity / 0x10;
|
||||
s16 fullHeartCount = gSaveContext.health / 0x10;
|
||||
s32 fractionHeartCount = gSaveContext.save.playerData.health % 0x10;
|
||||
s16 healthCapacity = gSaveContext.save.playerData.healthCapacity / 0x10;
|
||||
s16 fullHeartCount = gSaveContext.save.playerData.health / 0x10;
|
||||
s32 pad2;
|
||||
f32 lifesize = interfaceCtx->lifeSizeChange * 0.1f;
|
||||
u32 curCombineModeSet = 0;
|
||||
TexturePtr temp = NULL;
|
||||
s32 ddCount = gSaveContext.inventory.dungeonKeys[9] - 1;
|
||||
s32 ddCount = gSaveContext.save.inventory.dungeonKeys[9] - 1;
|
||||
|
||||
OPEN_DISPS(gfxCtx);
|
||||
|
||||
if ((gSaveContext.health % 0x10) == 0) {
|
||||
if ((gSaveContext.save.playerData.health % 0x10) == 0) {
|
||||
fullHeartCount--;
|
||||
}
|
||||
offsetY = 0.0f;
|
||||
@@ -417,19 +417,19 @@ void LifeMeter_UpdateSizeAndBeep(GlobalContext* globalCtx) {
|
||||
u32 LifeMeter_IsCritical(void) {
|
||||
s16 criticalThreshold;
|
||||
|
||||
if (gSaveContext.healthCapacity <= 80) { // healthCapacity <= 5 hearts?
|
||||
if (gSaveContext.save.playerData.healthCapacity <= 80) { // healthCapacity <= 5 hearts?
|
||||
criticalThreshold = 16;
|
||||
|
||||
} else if (gSaveContext.healthCapacity <= 160) { // healthCapacity <= 10 hearts?
|
||||
} else if (gSaveContext.save.playerData.healthCapacity <= 160) { // healthCapacity <= 10 hearts?
|
||||
criticalThreshold = 24;
|
||||
|
||||
} else if (gSaveContext.healthCapacity <= 240) { // healthCapacity <= 15 hearts?
|
||||
} else if (gSaveContext.save.playerData.healthCapacity <= 240) { // healthCapacity <= 15 hearts?
|
||||
criticalThreshold = 32;
|
||||
} else {
|
||||
criticalThreshold = 44;
|
||||
}
|
||||
|
||||
if ((criticalThreshold >= gSaveContext.health) && (gSaveContext.health > 0)) {
|
||||
if ((criticalThreshold >= gSaveContext.save.playerData.health) && (gSaveContext.save.playerData.health > 0)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -391,12 +391,12 @@ void func_80151BB4(GlobalContext* globalCtx, u8 arg1) {
|
||||
u8 temp = arg1;
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_BOMBERS_NOTEBOOK)) {
|
||||
if ((gSaveContext.weekEventReg[D_801C6B28[arg1] >> 8] & (u8)D_801C6B28[arg1]) == 0) {
|
||||
if ((gSaveContext.save.weekEventReg[D_801C6B28[arg1] >> 8] & (u8)D_801C6B28[arg1]) == 0) {
|
||||
msgCtx->unk120B2[msgCtx->unk120B1] = temp;
|
||||
msgCtx->unk120B1++;
|
||||
}
|
||||
} else if (arg1 >= 20) {
|
||||
if ((gSaveContext.weekEventReg[D_801C6B28[arg1] >> 8] & (u8)D_801C6B28[arg1]) == 0) {
|
||||
if ((gSaveContext.save.weekEventReg[D_801C6B28[arg1] >> 8] & (u8)D_801C6B28[arg1]) == 0) {
|
||||
msgCtx->unk120B2[msgCtx->unk120B1] = temp;
|
||||
msgCtx->unk120B1++;
|
||||
}
|
||||
@@ -413,10 +413,10 @@ u32 func_80151C9C(GlobalContext* globalCtx) {
|
||||
}
|
||||
msgCtx->unk120B1--;
|
||||
|
||||
if ((gSaveContext.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8] &
|
||||
if ((gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8] &
|
||||
(u8)D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]]) == 0) {
|
||||
flag = gSaveContext.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8];
|
||||
gSaveContext.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8] =
|
||||
flag = gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8];
|
||||
gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8] =
|
||||
flag | (u8)D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]];
|
||||
if ((D_801C6AB8[msgCtx->unk120B2[msgCtx->unk120B1]] != 0) && CHECK_QUEST_ITEM(QUEST_BOMBERS_NOTEBOOK)) {
|
||||
func_80151938(globalCtx, D_801C6AB8[msgCtx->unk120B2[msgCtx->unk120B1]]);
|
||||
@@ -474,7 +474,7 @@ void func_80152EC0(GlobalContext* globalCtx) {
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_80153750.s")
|
||||
|
||||
void func_80153E7C(GlobalContext* globalCtx, void* arg1) {
|
||||
if ((gSaveContext.language == 0) && (globalCtx->msgCtx.unk12090 == 0)) {
|
||||
if ((gSaveContext.options.language == 0) && (globalCtx->msgCtx.unk12090 == 0)) {
|
||||
func_8014ADBC(globalCtx, arg1);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -131,15 +131,15 @@ void Message_LoadLocalizedRupeesNES(GlobalContext* globalCtx, s16* decodedBufPos
|
||||
msgCtx->decodedBuffer.schar[p] = ' ';
|
||||
p++;
|
||||
|
||||
for (j = 0; j < D_801D0710[gSaveContext.language - 1]; j++) {
|
||||
Font_LoadCharNES(globalCtx, D_801D06F0[gSaveContext.language - 1][j], o);
|
||||
msgCtx->decodedBuffer.schar[p] = D_801D06F0[gSaveContext.language - 1][j];
|
||||
for (j = 0; j < D_801D0710[gSaveContext.options.language - 1]; j++) {
|
||||
Font_LoadCharNES(globalCtx, D_801D06F0[gSaveContext.options.language - 1][j], o);
|
||||
msgCtx->decodedBuffer.schar[p] = D_801D06F0[gSaveContext.options.language - 1][j];
|
||||
o += FONT_CHAR_TEX_SIZE;
|
||||
p++;
|
||||
}
|
||||
|
||||
p--;
|
||||
f += 16.0f * msgCtx->unk12098 * (D_801D0710[gSaveContext.language - 1] + 1);
|
||||
f += 16.0f * msgCtx->unk12098 * (D_801D0710[gSaveContext.options.language - 1] + 1);
|
||||
*decodedBufPos = p;
|
||||
*offset = o;
|
||||
*arg3 = f;
|
||||
@@ -200,10 +200,10 @@ void Message_LoadTimeNES(GlobalContext* globalCtx, u8 arg1, s32* offset, f32* ar
|
||||
s16 i;
|
||||
|
||||
if (arg1 == 0xCF) {
|
||||
day = gSaveContext.day;
|
||||
dayTime = 0x40000 - ((day % 5) << 16) - (u16)(-0x4000 + gSaveContext.time);
|
||||
day = gSaveContext.save.day;
|
||||
dayTime = 0x40000 - ((day % 5) << 16) - (u16)(-0x4000 + gSaveContext.save.time);
|
||||
} else {
|
||||
dayTime = 0x10000 - (u16)(-0x4000 + gSaveContext.time);
|
||||
dayTime = 0x10000 - (u16)(-0x4000 + gSaveContext.save.time);
|
||||
}
|
||||
timeInMinutes = TIME_TO_MINUTES_F(dayTime);
|
||||
|
||||
|
||||
+9
-9
@@ -158,8 +158,8 @@ void Play_SaveCycleSceneFlags(GameState* gameState) {
|
||||
|
||||
cycleSceneFlags = &gSaveContext.cycleSceneFlags[Play_GetOriginalSceneNumber(globalCtx->sceneNum)];
|
||||
cycleSceneFlags->chest = globalCtx->actorCtx.flags.chest;
|
||||
cycleSceneFlags->swch0 = globalCtx->actorCtx.flags.switches[0];
|
||||
cycleSceneFlags->swch1 = globalCtx->actorCtx.flags.switches[1];
|
||||
cycleSceneFlags->switch0 = globalCtx->actorCtx.flags.switches[0];
|
||||
cycleSceneFlags->switch1 = globalCtx->actorCtx.flags.switches[1];
|
||||
|
||||
if (globalCtx->sceneNum == SCENE_INISIE_R) { // Inverted Stone Tower Temple
|
||||
cycleSceneFlags = &gSaveContext.cycleSceneFlags[globalCtx->sceneNum];
|
||||
@@ -178,7 +178,7 @@ void Play_SetRespawnData(GameState* gameState, s32 respawnMode, u16 entranceInde
|
||||
gSaveContext.respawn[respawnMode].pos = *pos;
|
||||
gSaveContext.respawn[respawnMode].yaw = yaw;
|
||||
gSaveContext.respawn[respawnMode].playerParams = playerParams;
|
||||
gSaveContext.respawn[respawnMode].tempSwchFlags = globalCtx->actorCtx.flags.switches[2];
|
||||
gSaveContext.respawn[respawnMode].tempSwitchFlags = globalCtx->actorCtx.flags.switches[2];
|
||||
gSaveContext.respawn[respawnMode].unk_18 = globalCtx->actorCtx.flags.collectible[1];
|
||||
gSaveContext.respawn[respawnMode].tempCollectFlags = globalCtx->actorCtx.flags.collectible[2];
|
||||
}
|
||||
@@ -188,7 +188,7 @@ void Play_SetupRespawnPoint(GameState* gameState, s32 respawnMode, s32 playerPar
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
||||
if (globalCtx->sceneNum != SCENE_KAKUSIANA) { // Grottos
|
||||
Play_SetRespawnData(&globalCtx->state, respawnMode, (u16)((void)0, gSaveContext.entranceIndex),
|
||||
Play_SetRespawnData(&globalCtx->state, respawnMode, (u16)((void)0, gSaveContext.save.entranceIndex),
|
||||
globalCtx->roomCtx.currRoom.num, playerParams, &player->actor.world.pos,
|
||||
player->actor.shape.rot.y);
|
||||
}
|
||||
@@ -207,10 +207,10 @@ void func_80169ECC(GlobalContext* globalCtx) {
|
||||
void func_80169EFC(GameState* gameState) {
|
||||
GlobalContext* globalCtx = (GlobalContext*)gameState;
|
||||
|
||||
gSaveContext.respawn[0].tempSwchFlags = globalCtx->actorCtx.flags.switches[2];
|
||||
gSaveContext.respawn[0].unk_18 = globalCtx->actorCtx.flags.collectible[1];
|
||||
gSaveContext.respawn[0].tempCollectFlags = globalCtx->actorCtx.flags.collectible[2];
|
||||
globalCtx->nextEntranceIndex = gSaveContext.respawn[0].entranceIndex;
|
||||
gSaveContext.respawn[RESTART_MODE_DOWN].tempSwitchFlags = globalCtx->actorCtx.flags.switches[2];
|
||||
gSaveContext.respawn[RESTART_MODE_DOWN].unk_18 = globalCtx->actorCtx.flags.collectible[1];
|
||||
gSaveContext.respawn[RESTART_MODE_DOWN].tempCollectFlags = globalCtx->actorCtx.flags.collectible[2];
|
||||
globalCtx->nextEntranceIndex = gSaveContext.respawn[RESTART_MODE_DOWN].entranceIndex;
|
||||
gSaveContext.respawnFlag = 1;
|
||||
func_80169ECC(globalCtx);
|
||||
globalCtx->sceneLoadFlag = 0x14;
|
||||
@@ -222,7 +222,7 @@ void func_80169EFC(GameState* gameState) {
|
||||
void func_80169F78(GameState* gameState) {
|
||||
GlobalContext* globalCtx = (GlobalContext*)gameState;
|
||||
|
||||
globalCtx->nextEntranceIndex = gSaveContext.respawn[2].entranceIndex;
|
||||
globalCtx->nextEntranceIndex = gSaveContext.respawn[RESTART_MODE_TOP].entranceIndex;
|
||||
gSaveContext.respawnFlag = -1;
|
||||
func_80169ECC(globalCtx);
|
||||
globalCtx->sceneLoadFlag = 0x14;
|
||||
|
||||
+11
-11
@@ -151,7 +151,7 @@ void Scene_HeaderCmdSpawnList(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
globalCtx->linkActorEntry = (ActorEntry*)Lib_SegmentedToVirtual(cmd->spawnList.segment) +
|
||||
globalCtx->setupEntranceList[globalCtx->curSpawn].spawn;
|
||||
if ((globalCtx->linkActorEntry->params & 0x0F00) >> 8 == 0x0C ||
|
||||
(gSaveContext.respawnFlag == 0x02 && gSaveContext.respawn[1].playerParams == 0x0CFF)) {
|
||||
(gSaveContext.respawnFlag == 0x02 && gSaveContext.respawn[RESTART_MODE_RETURN].playerParams == 0x0CFF)) {
|
||||
// Skull Kid Object
|
||||
Object_Spawn(&globalCtx->objectCtx, OBJECT_STK);
|
||||
return;
|
||||
@@ -161,7 +161,7 @@ void Scene_HeaderCmdSpawnList(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
nextObject = globalCtx2->objectCtx.status[globalCtx2->objectCtx.num].segment;
|
||||
globalCtx->objectCtx.num = loadedCount;
|
||||
globalCtx->objectCtx.spawnedObjectCount = loadedCount;
|
||||
playerForm = gSaveContext.playerForm;
|
||||
playerForm = gSaveContext.save.playerForm;
|
||||
playerObjectId = gLinkFormObjectIndexes[playerForm];
|
||||
gActorOverlayTable[0].initInfo->objectId = playerObjectId;
|
||||
Object_Spawn(&globalCtx->objectCtx, playerObjectId);
|
||||
@@ -383,7 +383,7 @@ void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
u32 dayTime;
|
||||
|
||||
if (cmd->timeSettings.hour != 0xFF && cmd->timeSettings.min != 0xFF) {
|
||||
gSaveContext.environmentTime = gSaveContext.time =
|
||||
gSaveContext.environmentTime = gSaveContext.save.time =
|
||||
(u16)(((cmd->timeSettings.hour + (cmd->timeSettings.min / 60.0f)) * 60.0f) / 0.021972656f);
|
||||
}
|
||||
|
||||
@@ -393,7 +393,7 @@ void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
globalCtx->envCtx.timeIncrement = 0;
|
||||
}
|
||||
|
||||
if ((gSaveContext.inventory.items[SLOT_OCARINA] == ITEM_NONE) && (globalCtx->envCtx.timeIncrement != 0)) {
|
||||
if ((gSaveContext.save.inventory.items[SLOT_OCARINA] == ITEM_NONE) && (globalCtx->envCtx.timeIncrement != 0)) {
|
||||
globalCtx->envCtx.timeIncrement = 5;
|
||||
}
|
||||
|
||||
@@ -401,15 +401,15 @@ void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
REG(15) = globalCtx->envCtx.timeIncrement;
|
||||
}
|
||||
|
||||
dayTime = gSaveContext.time;
|
||||
dayTime = gSaveContext.save.time;
|
||||
globalCtx->envCtx.unk_4 = -(Math_SinS(dayTime - 0x8000) * 120.0f) * 25.0f;
|
||||
dayTime = gSaveContext.time;
|
||||
dayTime = gSaveContext.save.time;
|
||||
globalCtx->envCtx.unk_8 = (Math_CosS(dayTime - 0x8000) * 120.0f) * 25.0f;
|
||||
dayTime = gSaveContext.time;
|
||||
dayTime = gSaveContext.save.time;
|
||||
globalCtx->envCtx.unk_C = (Math_CosS(dayTime - 0x8000) * 20.0f) * 25.0f;
|
||||
|
||||
if (globalCtx->envCtx.timeIncrement == 0 && gSaveContext.cutscene < 0xFFF0) {
|
||||
gSaveContext.environmentTime = gSaveContext.time;
|
||||
if (globalCtx->envCtx.timeIncrement == 0 && gSaveContext.save.cutscene < 0xFFF0) {
|
||||
gSaveContext.environmentTime = gSaveContext.save.time;
|
||||
|
||||
if (gSaveContext.environmentTime >= CLOCK_TIME(4, 0) && gSaveContext.environmentTime < CLOCK_TIME(6, 30)) {
|
||||
gSaveContext.environmentTime = CLOCK_TIME(5, 0);
|
||||
@@ -527,7 +527,7 @@ void Scene_HeaderCmdSetAreaVisitedFlag(GlobalContext* globalCtx, SceneCmd* cmd)
|
||||
}
|
||||
|
||||
if (i < ARRAY_COUNT(gScenesPerRegion)) {
|
||||
gSaveContext.mapsVisited = (gBitFlags[i] | gSaveContext.mapsVisited) | gSaveContext.mapsVisited;
|
||||
gSaveContext.save.mapsVisited = (gBitFlags[i] | gSaveContext.save.mapsVisited) | gSaveContext.save.mapsVisited;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -610,5 +610,5 @@ u16 Entrance_CreateIndex(s32 sceneIndex, s32 spawnIndex, s32 sceneSetup) {
|
||||
* Creates an entrance index from the current entrance index with the given spawn index.
|
||||
*/
|
||||
u16 Entrance_CreateIndexFromSpawn(s32 spawnIndex) {
|
||||
return Entrance_CreateIndex(gSaveContext.entranceIndex >> 9, spawnIndex, 0);
|
||||
return Entrance_CreateIndex(gSaveContext.save.entranceIndex >> 9, spawnIndex, 0);
|
||||
}
|
||||
|
||||
+9
-9
@@ -12,8 +12,8 @@ s32 func_8013A240(GlobalContext* globalCtx) {
|
||||
s32 seen;
|
||||
s32 count = 0;
|
||||
|
||||
gSaveContext.pictoFlags0 = 0;
|
||||
gSaveContext.pictoFlags1 = 0;
|
||||
gSaveContext.save.pictoFlags0 = 0;
|
||||
gSaveContext.save.pictoFlags1 = 0;
|
||||
|
||||
if (globalCtx->sceneNum == SCENE_20SICHITAI) {
|
||||
func_8013A41C(1);
|
||||
@@ -76,19 +76,19 @@ s32 func_8013A240(GlobalContext* globalCtx) {
|
||||
|
||||
void func_8013A41C(s32 flag) {
|
||||
if (flag < 0x20) {
|
||||
gSaveContext.pictoFlags0 |= (1 << flag);
|
||||
gSaveContext.save.pictoFlags0 |= (1 << flag);
|
||||
} else {
|
||||
flag &= 0x1F;
|
||||
gSaveContext.pictoFlags1 |= (1 << flag);
|
||||
gSaveContext.save.pictoFlags1 |= (1 << flag);
|
||||
}
|
||||
}
|
||||
|
||||
void func_8013A46C(s32 flag) {
|
||||
if (flag < 0x20) {
|
||||
gSaveContext.pictoFlags0 &= ~(1 << flag);
|
||||
gSaveContext.save.pictoFlags0 &= ~(1 << flag);
|
||||
} else {
|
||||
flag &= 0x1F;
|
||||
gSaveContext.pictoFlags1 &= ~(1 << flag);
|
||||
gSaveContext.save.pictoFlags1 &= ~(1 << flag);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,10 +96,10 @@ u32 func_8013A4C4(s32 flag) {
|
||||
SaveContext* saveCtx = &gSaveContext;
|
||||
|
||||
if (flag < 0x20) {
|
||||
return saveCtx->pictoFlags0 & (1 << flag);
|
||||
return saveCtx->save.pictoFlags0 & (1 << flag);
|
||||
} else {
|
||||
flag &= 0x1F;
|
||||
return saveCtx->pictoFlags1 & (1 << flag);
|
||||
return saveCtx->save.pictoFlags1 & (1 << flag);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos,
|
||||
Actor_GetProjectedPos(globalCtx, pos, &screenSpace, &distance);
|
||||
x = (s16)(screenSpace.x * distance * 160.0f + 160.0f) - 85;
|
||||
y = (s16)(screenSpace.y * distance * -120.0f + 120.0f) - 67;
|
||||
if ((x < 0) || (0x96 < x) || (y < 0) || (0x69 < y)) {
|
||||
if ((x < 0) || (150 < x) || (y < 0) || (105 < y)) {
|
||||
func_8013A41C(0x3D);
|
||||
ret |= 0x3D;
|
||||
}
|
||||
|
||||
+1640
-31
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user