summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--serialize/savegame.cpp12
-rw-r--r--src/object-type.hpp2
2 files changed, 12 insertions, 2 deletions
diff --git a/serialize/savegame.cpp b/serialize/savegame.cpp
index 6b473833..e7d24195 100644
--- a/serialize/savegame.cpp
+++ b/serialize/savegame.cpp
@@ -146,10 +146,17 @@ struct visitor_
case object_type::light:
static_cast<Derived&>(*this).visit(non_const(obj.atlas), atlas_type::vobj, f);
break;
- default:
+ case object_type::scenery:
+ case object_type::critter:
+ case object_type::door_new:
static_cast<Derived&>(*this).visit(non_const(obj.atlas), atlas_type::anim, f);
break;
+ case object_type::none:
+ case object_type::COUNT:
+ break;
}
+ if (!obj.atlas)
+ fm_throw("invalid object type {}"_cf, (int)type);
//do_visit(*obj.c, f);
auto pt = obj.coord.local();
@@ -165,6 +172,7 @@ struct visitor_
switch (type)
{
+ case object_type::door_new: fm_assert(false && "todo");
case object_type::critter: do_visit(static_cast<critter&>(obj), f); return;
case object_type::scenery: do_visit(static_cast<scenery&>(obj), f); return;
case object_type::light: do_visit(static_cast<light&>(obj), f); return;
@@ -730,6 +738,8 @@ struct reader final : visitor_<reader>
case object_type::none:
case object_type::COUNT:
break;
+ case object_type::door_new:
+ fm_assert(false && "todo");
case object_type::light:
obj = w.make_unconnected_object<light>(); goto ok;
case object_type::critter:
diff --git a/src/object-type.hpp b/src/object-type.hpp
index 8c84c31a..d723e4ba 100644
--- a/src/object-type.hpp
+++ b/src/object-type.hpp
@@ -3,7 +3,7 @@
namespace floormat {
enum class object_type : unsigned char {
- none, critter, scenery, light, COUNT,
+ none, critter, scenery, light, door_new, COUNT,
};
} // namespace floormat