diff options
Diffstat (limited to 'core/src/Model/Template/Template_Main.cpp')
-rw-r--r-- | core/src/Model/Template/Template_Main.cpp | 10 |
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); } |