Add SaveInfo substruct to SaveContext (#1191)

* SaveInfo

* fix accesses in sram_NES.c

* some more fixing

* more fixes

* format

* fix unk

* namefixer

* format

* bss

* review

* weekeventregconvert

* namefixer

* bss
This commit is contained in:
Anghelo Carvajal
2023-04-18 18:54:32 -04:00
committed by GitHub
parent b8af819165
commit 3c107cb148
81 changed files with 1126 additions and 1051 deletions
+58 -20
View File
@@ -761,41 +761,41 @@ wordReplace = {
"gSaveContext.unk_3F22": "gSaveContext.hudVisibility",
"gSaveContext.unk_3F24": "gSaveContext.hudVisibilityTimer",
"gSaveContext.unk_3F26": "gSaveContext.prevHudVisibility",
"gSaveContext.weekEventReg": "gSaveContext.save.weekEventReg",
"gSaveContext.weekEventReg": "gSaveContext.save.saveInfo.weekEventReg",
"gSaveContext.playerForm": "gSaveContext.save.playerForm",
"gSaveContext.day": "gSaveContext.save.day",
"gSaveContext.isNight": "gSaveContext.save.isNight",
"gSaveContext.environmentTime": "gSaveContext.skyboxTime",
"gSaveContext.naviTimer": "gSaveContext.save.playerData.tatlTimer",
"gSaveContext.tatlTimer": "gSaveContext.save.playerData.tatlTimer",
"gSaveContext.rupees": "gSaveContext.save.playerData.rupees",
"gSaveContext.magicAcquired": "gSaveContext.save.playerData.isMagicAcquired",
"gSaveContext.doubleMagic": "gSaveContext.save.playerData.isDoubleMagicAcquired",
"gSaveContext.doubleDefense": "gSaveContext.save.playerData.doubleDefense",
"gSaveContext.playerName": "gSaveContext.save.playerData.playerName",
"gSaveContext.inventory": "gSaveContext.save.inventory",
"gSaveContext.naviTimer": "gSaveContext.save.saveInfo.playerData.tatlTimer",
"gSaveContext.tatlTimer": "gSaveContext.save.saveInfo.playerData.tatlTimer",
"gSaveContext.rupees": "gSaveContext.save.saveInfo.playerData.rupees",
"gSaveContext.magicAcquired": "gSaveContext.save.saveInfo.playerData.isMagicAcquired",
"gSaveContext.doubleMagic": "gSaveContext.save.saveInfo.playerData.isDoubleMagicAcquired",
"gSaveContext.doubleDefense": "gSaveContext.save.saveInfo.playerData.doubleDefense",
"gSaveContext.playerName": "gSaveContext.save.saveInfo.playerData.playerName",
"gSaveContext.inventory": "gSaveContext.save.saveInfo.inventory",
"gSaveContext.equippedMask": "gSaveContext.save.equippedMask",
"gSaveContext.entranceIndex": "gSaveContext.save.entrance",
"gSaveContext.time": "gSaveContext.save.time",
"gSaveContext.save.daySpeed": "gSaveContext.save.timeSpeedOffset",
"gSaveContext.unk_14": "gSaveContext.save.timeSpeedOffset",
"gSaveContext.unk_FE6": "gSaveContext.save.bombersCaughtNum",
"gSaveContext.unk_FE7": "gSaveContext.save.bombersCaughtOrder",
"gSaveContext.unk_FE6": "gSaveContext.save.saveInfo.bombersCaughtNum",
"gSaveContext.unk_FE7": "gSaveContext.save.saveInfo.bombersCaughtOrder",
"gSaveContext.linkAge": "gSaveContext.save.linkAge",
"gSaveContext.dekuPlaygroundHighScores": "gSaveContext.save.dekuPlaygroundHighScores",
"gSaveContext.lotteryCodeGuess": "gSaveContext.save.lotteryCodeGuess",
"gSaveContext.permanentSceneFlags": "gSaveContext.save.permanentSceneFlags",
"gSaveContext.bomberCode": "gSaveContext.save.bomberCode",
"gSaveContext.skullTokenCount": "gSaveContext.save.skullTokenCount",
"gSaveContext.dekuPlaygroundHighScores": "gSaveContext.save.saveInfo.dekuPlaygroundHighScores",
"gSaveContext.lotteryCodeGuess": "gSaveContext.save.saveInfo.lotteryCodeGuess",
"gSaveContext.permanentSceneFlags": "gSaveContext.save.saveInfo.permanentSceneFlags",
"gSaveContext.bomberCode": "gSaveContext.save.saveInfo.bomberCode",
"gSaveContext.skullTokenCount": "gSaveContext.save.saveInfo.skullTokenCount",
"gSaveContext.cutscene": "gSaveContext.save.cutscene",
"gSaveContext.health": "gSaveContext.save.playerData.health",
"gSaveContext.equips": "gSaveContext.save.equips",
"gSaveContext.health": "gSaveContext.save.saveInfo.playerData.health",
"gSaveContext.equips": "gSaveContext.save.saveInfo.equips",
"gSaveContext.unk_1016": "gSaveContext.jinxTimer",
"gSaveContext.unk_3F58": "gSaveContext.sunsSongState",
"gSaveContext.equips.buttonItems": "gSaveContext.save.equips.buttonItems",
"gSaveContext.unk_48C8": "gSaveContext.dungeonIndex",
"gSaveContext.save.playerData.magicAcquired": "gSaveContext.save.playerData.isMagicAcquired",
"gSaveContext.save.playerDatadoubleMagic": "gSaveContext.save.playerData.isDoubleMagicAcquired",
"gSaveContext.save.saveInfo.playerData.magicAcquired": "gSaveContext.save.saveInfo.playerData.isMagicAcquired",
"gSaveContext.save.playerDatadoubleMagic": "gSaveContext.save.saveInfo.playerData.isDoubleMagicAcquired",
"gSaveContext.unk_3F28": "gSaveContext.magicState",
"gSaveContext.unk_3F30": "gSaveContext.magicFillTarget",
"gSaveContext.unk_3F2C": "gSaveContext.magicFlag",
@@ -805,6 +805,44 @@ wordReplace = {
"gSaveContext.nightSeqIndex": "gSaveContext.ambienceId",
"gSaveContext.minigameState": "gSaveContext.minigameStatus",
"gSaveContext.unk_3F3C": "gSaveContext.minigameHiddenScore",
"gSaveContext.save.playerData": "gSaveContext.save.saveInfo.playerData",
"gSaveContext.save.equips": "gSaveContext.save.saveInfo.equips",
"gSaveContext.save.inventory": "gSaveContext.save.saveInfo.inventory",
"gSaveContext.save.permanentSceneFlags": "gSaveContext.save.saveInfo.permanentSceneFlags",
"gSaveContext.save.unk_E18": "gSaveContext.save.saveInfo.unk_E5C",
"gSaveContext.save.dekuPlaygroundHighScores": "gSaveContext.save.saveInfo.dekuPlaygroundHighScores",
"gSaveContext.save.pictoFlags0": "gSaveContext.save.saveInfo.pictoFlags0",
"gSaveContext.save.pictoFlags1": "gSaveContext.save.saveInfo.pictoFlags1",
"gSaveContext.save.unk_E84": "gSaveContext.save.saveInfo.unk_E60",
"gSaveContext.save.unk_E88": "gSaveContext.save.saveInfo.unk_E64",
"gSaveContext.save.scenesVisible": "gSaveContext.save.saveInfo.scenesVisible",
"gSaveContext.save.skullTokenCount": "gSaveContext.save.saveInfo.skullTokenCount",
"gSaveContext.save.unk_EC4": "gSaveContext.save.saveInfo.unk_EA0",
"gSaveContext.save.unk_EC8": "gSaveContext.save.saveInfo.unk_EA4",
"gSaveContext.save.unk_ECC": "gSaveContext.save.saveInfo.unk_EA8",
"gSaveContext.save.stolenItems": "gSaveContext.save.saveInfo.stolenItems",
"gSaveContext.save.unk_DD8": "gSaveContext.save.saveInfo.unk_EB4",
"gSaveContext.save.bankRupees": "gSaveContext.save.saveInfo.bankRupees",
"gSaveContext.save.unk_EE0": "gSaveContext.save.saveInfo.unk_EBC",
"gSaveContext.save.unk_EE4": "gSaveContext.save.saveInfo.unk_EC0",
"gSaveContext.save.unk_EE8": "gSaveContext.save.saveInfo.unk_EC4",
"gSaveContext.save.horseBackBalloonHighScore": "gSaveContext.save.saveInfo.horseBackBalloonHighScore",
"gSaveContext.save.lotteryCodeGuess": "gSaveContext.save.saveInfo.lotteryCodeGuess",
"gSaveContext.save.shootingGalleryHighScores": "gSaveContext.save.saveInfo.shootingGalleryHighScores",
"gSaveContext.save.weekEventReg": "gSaveContext.save.saveInfo.weekEventReg",
"gSaveContext.save.regionsVisited": "gSaveContext.save.saveInfo.regionsVisited",
"gSaveContext.save.worldMapCloudVisibility": "gSaveContext.save.saveInfo.worldMapCloudVisibility",
"gSaveContext.save.unk_F64": "gSaveContext.save.saveInfo.unk_F40",
"gSaveContext.save.unk_F65": "gSaveContext.save.saveInfo.unk_F41",
"gSaveContext.save.scarecrowSpawnSong": "gSaveContext.save.saveInfo.scarecrowSpawnSong",
"gSaveContext.save.bombersCaughtNum": "gSaveContext.save.saveInfo.bombersCaughtNum",
"gSaveContext.save.bombersCaughtOrder": "gSaveContext.save.saveInfo.bombersCaughtOrder",
"gSaveContext.save.lotteryCodes": "gSaveContext.save.saveInfo.lotteryCodes",
"gSaveContext.save.spiderHouseMaskOrder": "gSaveContext.save.saveInfo.spiderHouseMaskOrder",
"gSaveContext.save.bomberCode": "gSaveContext.save.saveInfo.bomberCode",
"gSaveContext.save.horseData": "gSaveContext.save.saveInfo.horseData",
"gSaveContext.save.checksum": "gSaveContext.save.saveInfo.checksum",
"player->unk_A87": "player->exchangeItemId",
"player->leftHandActor": "player->heldActor",
+6 -6
View File
@@ -843,20 +843,20 @@ def applyChange(fileContents: str, compiledRegex: re.Pattern, callback) -> str:
def updateCheck(fileContents: str) -> str:
# gSaveContext.save.weekEventReg[86] & 2
checkRegex = re.compile(rf"gSaveContext.save.weekEventReg\[(?P<index>{NUMBER_PATTERN})\]\s*\&\s*(?P<mask>{NUMBER_PATTERN})")
# gSaveContext.save.saveInfo.weekEventReg[86] & 2
checkRegex = re.compile(rf"gSaveContext.save.saveInfo.weekEventReg\[(?P<index>{NUMBER_PATTERN})\]\s*\&\s*(?P<mask>{NUMBER_PATTERN})")
return applyChange(fileContents, checkRegex, getCheckMacro)
def updateSet(fileContents: str) -> str:
# gSaveContext.save.weekEventReg[51] |= 0x10
setRegex = re.compile(rf"gSaveContext.save.weekEventReg\[(?P<index>{NUMBER_PATTERN})\]\s*\|=\s*(?P<mask>{NUMBER_PATTERN})")
# gSaveContext.save.saveInfo.weekEventReg[51] |= 0x10
setRegex = re.compile(rf"gSaveContext.save.saveInfo.weekEventReg\[(?P<index>{NUMBER_PATTERN})\]\s*\|=\s*(?P<mask>{NUMBER_PATTERN})")
return applyChange(fileContents, setRegex, getSetMacro)
def updateClear(fileContents: str) -> str:
# gSaveContext.save.weekEventReg[85] &= (u8)~0x80
clearRegex = re.compile(rf"gSaveContext.save.weekEventReg\[(?P<index>{NUMBER_PATTERN})\]\s*\&=\s*(\(u8\))?~(?P<mask>{NUMBER_PATTERN})")
# gSaveContext.save.saveInfo.weekEventReg[85] &= (u8)~0x80
clearRegex = re.compile(rf"gSaveContext.save.saveInfo.weekEventReg\[(?P<index>{NUMBER_PATTERN})\]\s*\&=\s*(\(u8\))?~(?P<mask>{NUMBER_PATTERN})")
return applyChange(fileContents, clearRegex, getClearMacro)