summaryrefslogtreecommitdiffhomepage
path: root/loader/scenery-traits.hpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-02-13 07:02:14 +0100
committerStanislaw Halik <sthalik@misaki.pl>2024-02-13 07:02:14 +0100
commit9b70fb78e70a509ba5bfa1c1d0a839eddd0902dc (patch)
tree8b662923591c273e8761787d3e74f3b659606c07 /loader/scenery-traits.hpp
parent985ce7d9b033d16f49170af8505af46ddcf29081 (diff)
wip atlas
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