summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-27 14:50:55 +0200
committerPaul Buetow <paul@buetow.org>2026-03-27 14:50:55 +0200
commit7088d292893e3e20324b04527e93de9b1c73f6aa (patch)
tree3b2b98a993c8d2f2a205e444e02c1bafe702637c /src/main/java
parent3919d141328dd51e6e9c5f94bb7e58e216e4e13a (diff)
Fix GUI loader to restore serialized prefs
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/serialize/VSSerialize.java47
1 files changed, 41 insertions, 6 deletions
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();