From 7088d292893e3e20324b04527e93de9b1c73f6aa Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 27 Mar 2026 14:50:55 +0200 Subject: Fix GUI loader to restore serialized prefs --- src/main/java/serialize/VSSerialize.java | 47 ++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 6 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/serialize/VSSerialize.java b/src/main/java/serialize/VSSerialize.java index e8470e3..3ae1455 100644 --- a/src/main/java/serialize/VSSerialize.java +++ b/src/main/java/serialize/VSSerialize.java @@ -219,32 +219,32 @@ public final class VSSerialize { // Copy non-string values from serialized prefs for (String key : serializedPrefs.getIntegerKeySet()) { if (!key.startsWith("lang.")) { - prefs.initInteger(key, serializedPrefs.getInteger(key)); + prefs.setInteger(key, serializedPrefs.getInteger(key)); } } for (String key : serializedPrefs.getBooleanKeySet()) { if (!key.startsWith("lang.")) { - prefs.initBoolean(key, serializedPrefs.getBoolean(key)); + prefs.setBoolean(key, serializedPrefs.getBoolean(key)); } } for (String key : serializedPrefs.getFloatKeySet()) { if (!key.startsWith("lang.")) { - prefs.initFloat(key, serializedPrefs.getFloat(key)); + prefs.setFloat(key, serializedPrefs.getFloat(key)); } } for (String key : serializedPrefs.getColorKeySet()) { if (!key.startsWith("lang.")) { - prefs.initColor(key, serializedPrefs.getColor(key)); + prefs.setColor(key, serializedPrefs.getColor(key)); } } for (String key : serializedPrefs.getVectorKeySet()) { if (!key.startsWith("lang.")) { - prefs.initVector(key, serializedPrefs.getVector(key)); + prefs.setVector(key, serializedPrefs.getVector(key)); } } for (String key : serializedPrefs.getLongKeySet()) { if (!key.startsWith("lang.")) { - prefs.initLong(key, serializedPrefs.getLong(key)); + prefs.setLong(key, serializedPrefs.getLong(key)); } } @@ -257,6 +257,41 @@ public final class VSSerialize { this.setObject("current_prefs", prefs); simulator.deserialize(this, objectInputStream); + // Reapply saved non-localized values after deserialization so any + // simulator-side resets do not leave defaults like sim.seconds=15. + VSPrefs simulatorPrefs = simulator.getPrefs(); + for (String key : serializedPrefs.getIntegerKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setInteger(key, serializedPrefs.getInteger(key)); + } + } + for (String key : serializedPrefs.getBooleanKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setBoolean(key, serializedPrefs.getBoolean(key)); + } + } + for (String key : serializedPrefs.getFloatKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setFloat(key, serializedPrefs.getFloat(key)); + } + } + for (String key : serializedPrefs.getColorKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setColor(key, serializedPrefs.getColor(key)); + } + } + for (String key : serializedPrefs.getVectorKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setVector(key, serializedPrefs.getVector(key)); + } + } + for (String key : serializedPrefs.getLongKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setLong(key, serializedPrefs.getLong(key)); + } + } + simulator.updateFromPrefs(); + } catch (Exception e) { e.printStackTrace(); -- cgit v1.2.3