Compare commits

...

3 Commits

Author SHA1 Message Date
Mr-Wiseguy 25e6ca6717 Update runtime to have mod list functionality 2024-09-03 00:04:17 -04:00
Mr-Wiseguy cffda249a7 Update runtime for new mod manifest schema 2024-09-02 23:46:38 -04:00
Mr-Wiseguy f4e8884de6 Parse version number from a string and provide it to the runtime 2024-09-02 20:04:25 -04:00
4 changed files with 21 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 986881e4e1b19d39ad0efd5a301be7ed439434b1

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;
@ -623,8 +631,15 @@ int main(int argc, char** argv) {
recomp::mods::scan_mods();
printf("Found mods:\n");
for (const auto& mod : recomp::mods::get_mod_details("mm")) {
printf(" %s(%s)\n", mod.mod_id.c_str(), mod.version.to_string().c_str());
}
printf("\n");
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();
}