mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-22 06:19:54 -04:00
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:
+58
-20
@@ -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",
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user