diff --git a/scripts/_00e_autosavesystem_functions.pex b/scripts/_00e_autosavesystem_functions.pex index 39de2ed0..952fad39 100644 Binary files a/scripts/_00e_autosavesystem_functions.pex and b/scripts/_00e_autosavesystem_functions.pex differ diff --git a/source/scripts/_00e_autosavesystem_functions.psc b/source/scripts/_00e_autosavesystem_functions.psc index f4caec0e..c17396bb 100644 --- a/source/scripts/_00e_autosavesystem_functions.psc +++ b/source/scripts/_00e_autosavesystem_functions.psc @@ -17,7 +17,11 @@ Event OnUpdate() Actor PlayerREF = Game.GetForm(0x14) as Actor - If PlayerREF.IsInCombat() || PlayerREF.IsOnMount() || PlayerREF.IsSwimming() || ! Game.IsFightingControlsEnabled() || PlayerREF.IsDead() || Utility.IsInMenuMode() || UI.IsTextInputEnabled() || UI.IsMenuOpen("Dialogue Menu") + if PlayerREF.IsDead() + return + endif + + If PlayerREF.IsInCombat() || PlayerREF.IsOnMount() || PlayerREF.IsSwimming() || ! Game.IsFightingControlsEnabled() || Utility.IsInMenuMode() || UI.IsTextInputEnabled() || UI.IsMenuOpen("Dialogue Menu") RegisterForSingleUpdate(5) return endif @@ -41,16 +45,26 @@ Function UpdateAutoSaveInterval() UnregisterForUpdate() return endif - + fUpdateTime = Utility.GetIniFloat("fAutosaveEveryXMins:SaveGame") If fUpdateTime <= 0.0 ; just in case - fUpdateTime = 30 + fUpdateTime = 30.0 EndIf RegisterForSingleUpdate(fUpdateTime*60) + RegisterForMenu("Journal Menu") EndFunction +Event OnMenuClose(String MenuName) + float fAutosaveEveryXMins = Utility.GetIniFloat("fAutosaveEveryXMins:SaveGame") + + if fUpdateTime as int != fAutosaveEveryXMins as int + fUpdateTime = fAutosaveEveryXMins + RegisterForSingleUpdate(fUpdateTime*60) + endif +EndEvent + int iAutosaveIndex = 0 float fUpdateTime