summaryrefslogtreecommitdiff
path: root/src/Companion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Companion.cpp')
-rw-r--r--src/Companion.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp
index 2ef7cf2..be80ee5 100644
--- a/src/Companion.cpp
+++ b/src/Companion.cpp
@@ -1335,6 +1335,11 @@ void Companion::Process() {
}
}
+ if(!this->gVersion.empty()) {
+ auto data = this->ParseVersionString(this->gVersion);
+ wrapper->AddFile("assetVersion", data);
+ }
+
SPDLOG_CRITICAL("Writing version file");
wrapper->AddFile("version", vWriter.ToVector());
vWriter.Close();
@@ -1359,8 +1364,7 @@ void Companion::Process() {
Instance = nullptr;
}
-void Companion::Pack(const std::string& folder, const std::string& output, const ArchiveType otrMode) {
-
+void Companion::Pack(const std::string& folder, const std::string& output, const ArchiveType otrMode, const std::string& version) {
spdlog::set_level(spdlog::level::debug);
spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%l] %v");
@@ -1405,6 +1409,12 @@ void Companion::Pack(const std::string& folder, const std::string& output, const
SPDLOG_CRITICAL("> Added {}", normalized);
}
+ if(!version.empty()) {
+ SPDLOG_CRITICAL("Adding version file");
+ auto data = this->ParseVersionString(version);
+ wrapper->AddFile("assetVersion", data);
+ }
+
auto end = duration_cast<milliseconds>(system_clock::now().time_since_epoch());
SPDLOG_CRITICAL("Done! Took {}ms", end.count() - start.count());
SPDLOG_CRITICAL("Exported to {}", output);
@@ -1766,3 +1776,20 @@ std::optional<YAML::Node> Companion::AddAsset(YAML::Node asset) {
return std::nullopt;
}
+
+std::vector<char> Companion::ParseVersionString(const std::string& version) {
+ uint16_t major = 0;
+ uint16_t minor = 0;
+ uint16_t patch = 0;
+
+ std::sscanf(version.c_str(), "%hu.%hu.%hu", &major, &minor, &patch);
+
+ auto wv = LUS::BinaryWriter();
+ wv.SetEndianness(Torch::Endianness::Big);
+ wv.Write(major);
+ wv.Write(minor);
+ wv.Write(patch);
+ wv.Close();
+
+ return wv.ToVector();
+} \ No newline at end of file