summaryrefslogtreecommitdiffhomepage
path: root/editor
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-04-13 17:42:30 +0200
committerStanislaw Halik <sthalik@misaki.pl>2024-04-13 17:42:30 +0200
commit2260ab972100f1d6679690b730b6f0aa7409b014 (patch)
tree18386a59968c1e7933db702281fc13fe62ff9b1e /editor
parentcb13eb86db3593e723ce06c48a5cb2c94505d6ae (diff)
instantiate scenery in a uniform manner
Now using world::make_scenery(). Add `std::monostate` to the `scenery_proto` variant to catch potential bugs.
Diffstat (limited to 'editor')
-rw-r--r--editor/scenery-editor.cpp18
1 files changed, 1 insertions, 17 deletions
diff --git a/editor/scenery-editor.cpp b/editor/scenery-editor.cpp
index 28d94263..55e194bf 100644
--- a/editor/scenery-editor.cpp
+++ b/editor/scenery-editor.cpp
@@ -103,25 +103,9 @@ start:
}
else
{
- const auto sc_type = s.proto.scenery_type();
// todo check collision at pos
- switch (sc_type)
- {
- case scenery_type::none:
- case scenery_type::COUNT:
- break;
- case scenery_type::generic:
- w.make_object<generic_scenery>(w.make_id(), pos, std::get<generic_scenery_proto>(s.proto.subtype), s.proto);
- goto ok;
- case scenery_type::door:
- w.make_object<door_scenery>(w.make_id(), pos, std::get<door_scenery_proto>(s.proto.subtype), s.proto);
- goto ok;
- }
- fm_abort("place_tile: wrong scenery type %d", (int)sc_type);
-ok:
- void();
+ w.make_scenery(w.make_id(), pos, scenery_proto(s.proto));
}
-
}
} // namespace floormat