aboutsummaryrefslogtreecommitdiff
path: root/source/Ires.hpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2022-04-18 17:54:29 -0700
committerrtk0c <[email protected]>2022-04-18 17:54:29 -0700
commit7af9992ca81c699bc1cf05eb691e284bf424f050 (patch)
tree0f9bf191270791d80a28d7df1f1ffd5223158124 /source/Ires.hpp
parent5424a1d5434e3ddd911a504719918c2df027e2fd (diff)
Changeset: 9 Implement IresSpritesheet
Diffstat (limited to 'source/Ires.hpp')
-rw-r--r--source/Ires.hpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/source/Ires.hpp b/source/Ires.hpp
index 66a931e..9b055af 100644
--- a/source/Ires.hpp
+++ b/source/Ires.hpp
@@ -11,7 +11,7 @@
#include <string_view>
// Forward declarations
-class IresObject;
+class EditorInstance;
class IresManager;
class IresObject : public RefCounted {
@@ -43,12 +43,16 @@ public:
IresManager* GetAssociatedManager() const { return mMan; }
bool IsAnnoymous() const;
const std::string& GetName() const { return mName; }
+ void SetName(std::string name);
+
+ virtual void ShowEditor(EditorInstance& editor);
EditorAttachment* GetEditorAttachment() const { return mEditorAttachment.get(); }
void SetEditorAttachment(EditorAttachment* attachment) { mEditorAttachment.reset(attachment); }
- static rapidjson::Value WriteFull(const IresObject& ires, rapidjson::Document& root);
+ static void WriteFull(IresObject* ires, rapidjson::Value& value, rapidjson::Document& root);
static std::unique_ptr<IresObject> ReadFull(const rapidjson::Value& value);
+ static bool ReadPartial(IresObject* ires, const rapidjson::Value& value);
virtual void Write(rapidjson::Value& value, rapidjson::Document& root) const = 0;
virtual void Read(const rapidjson::Value& value) = 0;
};
@@ -58,7 +62,7 @@ public:
static inline IresManager* instance = nullptr;
private:
- robin_hood::unordered_map<std::string_view, RcPtr<IresObject>, StringHash, StringEqual> mObjects;
+ robin_hood::unordered_map<std::string_view, RcPtr<IresObject>> mObjects;
public:
void DiscoverFilesDesignatedLocation();
@@ -68,6 +72,11 @@ public:
void Delete(IresObject* ires);
bool Rename(IresObject* ires, std::string newName);
+ IresObject* Load(const std::filesystem::path& path);
+ void Reload(IresObject* ires);
+ void Save(IresObject* ires);
+ void Save(IresObject* ires, const std::filesystem::path& filePath);
+
const auto& GetObjects() const { return mObjects; }
IresObject* FindIres(std::string_view path);
};