@MrHunter0815 thanks to claude*
User beware, this mod breaks purchase of all pallets from the store that aren't part of the mod. Log will generate "attempt to call missing method 'getAnimationExists' of table" and game locks up.
Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.
@Sinterra Something still feels off, I was able to reproduce it once, and then i saved and exited, reloaded and it was set correctly. Very strange
Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.
@Sinterra @Sherman200 This bug still persists on the latest version (v1.4.0.6).
1. Set region to not schleswig-holstein, save game. Exit game, re-load save, region setting is reverted back to schleswig-holstein. Super annoying.
Also the weather forecast still doesn't persist between saves.
Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.
@Michalob that bug has been in the mod for as long as the mod has been around, never seems to get fixed annoyingly. Are you on the latest version?
Interesting, i'll keep my eye on this. Do you have a github for issues?
Betreff: 1.4.0.27 – Region/Land-Auswahl wird bei neuem Spielstand zurückgesetzt
Hallo Sherman,
kurzer Fehlerbericht zu 1.4.0.27.
Datei: rwsmSavegameSync.lua
Funktion: RWSM112StateManager.loadState()
Symptom
Bei einem neuen Spielstand wird die Land/Region-Auswahl (z.B. Polen/Mitte) kurz nach dem Setzen automatisch wieder auf den Standard (Deutschland/Nord) zurückgesetzt, noch bevor überhaupt gespeichert wird. Der nächste reguläre Spielstand schreibt dadurch den Standardwert statt der gewählten Einstellung. Bei einem bereits einmal gespeicherten Spielstand tritt das Problem nicht auf.
Ursache
loadState() ruft weather.loadSettings() nur auf, wenn rwsmState_v2.xml bereits existiert:
if not fileExists(path) then
RWSM112StateManager.loaded = true
RWSM112StateManager.existingStateLoaded = false
RWSM112StateManager.saveBlocked = false
RWSM112StateManager.saveBlockReason = nil
RWSM112StateManager.stateRevision = 0
do end
return
end
Bei einem neuen Spielstand existiert die Datei noch nicht, der Zweig kehrt zurück ohne weather.loadSettings() aufzurufen. RWSM53WeatherSystem.loaded bleibt false.
In rainstarWeatherSystem.lua sorgt update(dt) eigentlich für genau diesen Fall (Speicherpfad bei loadMap noch nicht bereit) mit einem Retry:
if not RWSM53WeatherSystem.loaded then
RWSM53WeatherSystem.loadSettings()
end
Das läuft alle ~500ms. Da loaded nie gesetzt wurde, feuert dieser Retry kurz nachdem die Region geändert wurde erneut. WS.loadSettings() in rwsmGlobalClimateExtension.lua setzt locationMode/regionIndex/stateIndex/configRevision dabei bedingungslos auf die Defaults zurück, bevor rainstarWeather.xml gelesen wird - die bei einem neuen Spielstand ebenfalls noch nicht existiert. Der Reset bleibt also stehen, und der nächste Spielstand schreibt ihn fest.
Vorschlag
weather.loadSettings() auch im "Datei existiert nicht"-Zweig aufrufen:
if not fileExists(path) then
RWSM112StateManager.loaded = true
RWSM112StateManager.existingStateLoaded = false
RWSM112StateManager.saveBlocked = false
RWSM112StateManager.saveBlockReason = nil
RWSM112StateManager.stateRevision = 0
if RWSM53WeatherSystem ~= nil and RWSM53WeatherSystem.loadSettings ~= nil then
RWSM53WeatherSystem.loadSettings()
end
return
end
Damit wird loaded schon beim ersten Durchlauf korrekt gesetzt (auf Defaults, da ja nichts zu laden ist), und der Retry in update() greift nicht mehr ein, nachdem die Region geändert wurde.
Getestet auf 1.4.0.27, neuer Spielstand, Wechsel Deutschland -> Polen/Mitte.
Viele Grüße