Parse version number from a string and provide it to the runtime

This commit is contained in:
Mr-Wiseguy 2024-09-02 20:00:47 -04:00
parent a9bb035c0b
commit f4e8884de6
4 changed files with 15 additions and 4 deletions

View File

@ -58,7 +58,7 @@
</div>
</div>
<div class="bottom-left">
<label>{{version_number}}</label>
<label>v{{version_number}}</label>
</div>
</div>
</div>

@ -1 +1 @@
Subproject commit 5699906f34fcc82905303092d081ad92aa74f926
Subproject commit 09f5759d3a68437d407d54922e3fddf0c52f4dad

View File

@ -37,6 +37,8 @@
#include "../../lib/rt64/src/contrib/stb/stb_image.h"
const std::string version_string = "1.2.0-dev";
template<typename... Ts>
void exit_error(const char* str, Ts ...args) {
// TODO pop up an error
@ -527,6 +529,12 @@ void release_preload(PreloadContext& context) {
#endif
int main(int argc, char** argv) {
recomp::Version project_version{};
if (!recomp::Version::from_string(version_string, project_version)) {
ultramodern::error_handling::message_box(("Invalid version string: " + version_string).c_str());
return EXIT_FAILURE;
}
// Map this executable into memory and lock it, which should keep it in physical memory. This ensures
// that there are no stutters from the OS having to load new pages of the executable whenever a new code page is run.
PreloadContext preload_context;
@ -625,6 +633,7 @@ int main(int argc, char** argv) {
recomp::start(
64 * 1024 * 1024, // 64MB to have plenty of room for loading mods
project_version,
{},
rsp_callbacks,
renderer_callbacks,

View File

@ -6,7 +6,7 @@
#include "nfd.h"
#include <filesystem>
std::string version_number = "v1.1.1";
static std::string version_string;
Rml::DataModelHandle model_handle;
bool mm_rom_valid = false;
@ -103,7 +103,9 @@ public:
Rml::DataModelConstructor constructor = context->CreateDataModel("launcher_model");
constructor.Bind("mm_rom_valid", &mm_rom_valid);
constructor.Bind("version_number", &version_number);
version_string = recomp::get_project_version().to_string();
constructor.Bind("version_number", &version_string);
model_handle = constructor.GetModelHandle();
}