summaryrefslogtreecommitdiffhomepage
path: root/loader/scenery-cell.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'loader/scenery-cell.hpp')
-rw-r--r--loader/scenery-cell.hpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/loader/scenery-cell.hpp b/loader/scenery-cell.hpp
index 28f35368..2b74cfef 100644
--- a/loader/scenery-cell.hpp
+++ b/loader/scenery-cell.hpp
@@ -1,19 +1,34 @@
#pragma once
#include "compat/vector-wrapper-fwd.hpp"
+#include "compat/safe-ptr.hpp"
#include "src/scenery.hpp"
#include <memory>
#include <cr/String.h>
+#include <cr/Optional.h>
namespace floormat {
+struct json_wrapper;
struct scenery_proto;
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-dtor"
+#endif
+
struct scenery_cell final
{
String name;
- scenery_proto proto;
+ safe_ptr<json_wrapper> data{make_json_wrapper()};
+ Optional<scenery_proto> proto;
+ ~scenery_cell() noexcept;
static vector_wrapper<const scenery_cell> load_atlases_from_json();
+ [[nodiscard]] static json_wrapper* make_json_wrapper();
};
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
} // namespace floormat