summaryrefslogtreecommitdiffhomepage
path: root/loader/scenery-traits.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'loader/scenery-traits.hpp')
-rw-r--r--loader/scenery-traits.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/loader/scenery-traits.hpp b/loader/scenery-traits.hpp
index 6f70f09b..13d52708 100644
--- a/loader/scenery-traits.hpp
+++ b/loader/scenery-traits.hpp
@@ -1 +1,27 @@
#pragma once
+#include "atlas-loader-fwd.hpp"
+#include <memory>
+
+namespace floormat { struct scenery_cell; struct scenery_proto; }
+
+namespace floormat::loader_detail {
+
+template<> struct atlas_loader_traits<scenery_proto>
+{
+ using Atlas = scenery_proto;
+ using Cell = scenery_cell;
+ using Self = atlas_loader_traits<Atlas>;
+ using Storage = atlas_storage<Atlas, Self>;
+
+ static StringView loader_name();
+ static const scenery_proto& atlas_of(const Cell& x);
+ static scenery_proto& atlas_of(Cell& x);
+ static StringView name_of(const Cell& x);
+ static String& name_of(Cell& x);
+ static void atlas_list(Storage& st);
+ static Cell make_invalid_atlas(Storage& st);
+ static scenery_proto make_atlas(StringView name, const Cell& c);
+ static Optional<Cell> make_cell(StringView name);
+};
+
+} // namespace floormat::loader_detail