aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Template/Template_Main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Model/Template/Template_Main.cpp')
-rw-r--r--core/src/Model/Template/Template_Main.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/src/Model/Template/Template_Main.cpp b/core/src/Model/Template/Template_Main.cpp
index 8b659cf..a681c4a 100644
--- a/core/src/Model/Template/Template_Main.cpp
+++ b/core/src/Model/Template/Template_Main.cpp
@@ -8,6 +8,8 @@
#include <imgui.h>
#include <imgui_stdlib.h>
+#include <algorithm>
+#include <cstdint>
#include <fstream>
using namespace std::literals::string_view_literals;
@@ -34,8 +36,13 @@ std::string TemplateAssetList::RetrieveNameFromFile(const fs::path& file) const
std::ifstream ifs(file);
if (!ifs) return "";
+ uint64_t len;
+ ifs >> len;
+
std::string name;
- ifs >> name;
+ name.reserve(len);
+ std::copy_n(std::istreambuf_iterator(ifs), len, std::back_inserter(name));
+
return name;
}
@@ -56,6 +63,7 @@ void TemplateAssetList::SaveEmptyInstance(const SavedAsset& asset) const
std::ofstream ofs(path);
if (!ofs) return;
+ ofs << (uint64_t)asset.Name.size();
ofs << asset.Name;
ofs << static_cast<Template::Kind>(asset.Payload);
}