35 lines
879 B
C++
35 lines
879 B
C++
|
#include <libreborn/libreborn.h>
|
||
|
#include <libreborn/minecraft.h>
|
||
|
|
||
|
#include "version.h"
|
||
|
#include "../init/init.h"
|
||
|
|
||
|
// Get New Version
|
||
|
char *version_get() {
|
||
|
static char *version = NULL;
|
||
|
// Load
|
||
|
if (version == NULL) {
|
||
|
safe_asprintf(&version, "%s / Reborn v" VERSION, *minecraft_pi_version);
|
||
|
}
|
||
|
// Return
|
||
|
return version;
|
||
|
}
|
||
|
// Free
|
||
|
__attribute__((destructor)) static void _free_version() {
|
||
|
free(version_get());
|
||
|
}
|
||
|
|
||
|
// Injection For Touch GUI Version
|
||
|
static std::string Common_getGameVersionString_injection(__attribute__((unused)) std::string const& version_suffix) {
|
||
|
// Set Version
|
||
|
return version_get();
|
||
|
}
|
||
|
|
||
|
// Init
|
||
|
void init_version() {
|
||
|
// Touch GUI
|
||
|
overwrite((void *) Common_getGameVersionString, (void *) Common_getGameVersionString_injection);
|
||
|
// Normal GUI
|
||
|
patch_address((void *) minecraft_pi_version, version_get());
|
||
|
}
|