summaryrefslogtreecommitdiffhomepage
path: root/serialize
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-04-09 20:08:46 +0200
committerStanislaw Halik <sthalik@misaki.pl>2024-04-09 20:09:14 +0200
commitb83f0bb15cf60f018bded68920a423e6918c1d6f (patch)
tree7f440c5e7c253bfca4b84d5d8446747c362bc3e2 /serialize
parent45c5564c9be3561226374d6cc5dafc282fd5d402 (diff)
serialize/save: rewrite to remove scenery's variant
Now it can use inheritance. Tests pass.
Diffstat (limited to 'serialize')
-rw-r--r--serialize/savegame.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/serialize/savegame.cpp b/serialize/savegame.cpp
index 5808dc65..29766269 100644
--- a/serialize/savegame.cpp
+++ b/serialize/savegame.cpp
@@ -222,11 +222,14 @@ struct visitor_
visit(obj.delta, f);
else
{
- fm_assert(IsWriter);
- auto delta_ = uint16_t(obj.delta >> 16);
- visit(delta_, f);
- if constexpr(IsWriter)
+ if constexpr(!IsWriter)
+ {
+ auto delta_ = uint16_t(obj.delta >> 16);
+ visit(delta_, f);
non_const_(obj.delta) = delta_ * 65536u;
+ }
+ else
+ fm_assert(false);
}
visit(obj.frame, f);
visit(obj.r, f);