Optimize game_data struct
This commit is contained in:
parent
7beab899a6
commit
5e2b015cc0
Binary file not shown.
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
#include <game.h>
|
||||||
|
|
||||||
void ace_fake_driver_files();
|
void ace_fake_driver_files();
|
||||||
|
|
||||||
HMODULE ace_load_base_module(const char *exeName);
|
HMODULE ace_load_base_module(struct game_data *game);
|
||||||
HMODULE ace_load_driver_module();
|
HMODULE ace_load_driver_module();
|
||||||
|
@ -22,9 +22,8 @@ typedef void (*unityplayer_callback_t)(HMODULE unityModule);
|
|||||||
|
|
||||||
struct game_data {
|
struct game_data {
|
||||||
enum game_id id; // Temporary
|
enum game_id id; // Temporary
|
||||||
const char *name;
|
const char *base_module_name;
|
||||||
const char *assembly_name;
|
const char *assembly_name;
|
||||||
const char *tp6_section_name; // Unused for now
|
|
||||||
const char *tvm_section_name;
|
const char *tvm_section_name;
|
||||||
|
|
||||||
unityplayer_callback_t unityplayer_callback;
|
unityplayer_callback_t unityplayer_callback;
|
||||||
|
@ -70,10 +70,9 @@ static HMODULE _load_module_patched(wchar_t *path) {
|
|||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMODULE ace_load_base_module(const char *exeName) {
|
HMODULE ace_load_base_module(struct game_data *game) {
|
||||||
wchar_t baseModuleName[MAX_PATH];
|
wchar_t baseModuleName[MAX_PATH];
|
||||||
swprintf(baseModuleName, MAX_PATH, L"%sBase.dll", exeName);
|
MultiByteToWideChar(CP_UTF8, 0, game->base_module_name, strlen(game->base_module_name) + 1, baseModuleName, MAX_PATH);
|
||||||
wcslwr(baseModuleName);
|
|
||||||
|
|
||||||
return _load_module_patched(baseModuleName);
|
return _load_module_patched(baseModuleName);
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
|
|
||||||
#include <game.h>
|
#include <game.h>
|
||||||
|
|
||||||
const char *HI3_NAME = "BH3";
|
const char *HI3_BASE_MODULE_NAME = "BH3Base.dll";
|
||||||
const char *HI3_ASSEMBLY_NAME = "UserAssembly.dll";
|
const char *HI3_ASSEMBLY_NAME = "UserAssembly.dll";
|
||||||
const char *HI3_TP6_SECTION_NAME = ".bh3";
|
|
||||||
const char *HI3_TVM_SECTION_NAME = ".tvm0";
|
const char *HI3_TVM_SECTION_NAME = ".tvm0";
|
||||||
|
|
||||||
struct crc_id_pair {
|
struct crc_id_pair {
|
||||||
@ -39,9 +38,8 @@ void hi3_fill_data(struct game_data *buf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
buf->id = id;
|
buf->id = id;
|
||||||
buf->name = HI3_NAME;
|
buf->base_module_name = HI3_BASE_MODULE_NAME;
|
||||||
buf->assembly_name = HI3_ASSEMBLY_NAME;
|
buf->assembly_name = HI3_ASSEMBLY_NAME;
|
||||||
buf->tp6_section_name = HI3_TP6_SECTION_NAME;
|
|
||||||
buf->tvm_section_name = HI3_TVM_SECTION_NAME;
|
buf->tvm_section_name = HI3_TVM_SECTION_NAME;
|
||||||
|
|
||||||
buf->unityplayer_callback = NULL;
|
buf->unityplayer_callback = NULL;
|
||||||
|
@ -4,9 +4,8 @@
|
|||||||
|
|
||||||
#include <game.h>
|
#include <game.h>
|
||||||
|
|
||||||
const char *HSR_NAME = "StarRail";
|
const char *HSR_BASE_MODULE_NAME = "StarRailBase.dll";
|
||||||
const char *HSR_ASSEMBLY_NAME = "GameAssembly.dll";
|
const char *HSR_ASSEMBLY_NAME = "GameAssembly.dll";
|
||||||
const char *HSR_TP6_SECTION_NAME = ".ace";
|
|
||||||
const char *HSR_TVM_SECTION_NAME = ".tvm0";
|
const char *HSR_TVM_SECTION_NAME = ".tvm0";
|
||||||
|
|
||||||
struct crc_id_pair {
|
struct crc_id_pair {
|
||||||
@ -85,9 +84,8 @@ void hsr_fill_data(struct game_data *buf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
buf->id = id;
|
buf->id = id;
|
||||||
buf->name = HSR_NAME;
|
buf->base_module_name = HSR_BASE_MODULE_NAME;
|
||||||
buf->assembly_name = HSR_ASSEMBLY_NAME;
|
buf->assembly_name = HSR_ASSEMBLY_NAME;
|
||||||
buf->tp6_section_name = HSR_TP6_SECTION_NAME;
|
|
||||||
buf->tvm_section_name = HSR_TVM_SECTION_NAME;
|
buf->tvm_section_name = HSR_TVM_SECTION_NAME;
|
||||||
|
|
||||||
buf->unityplayer_callback = &_unityplayer_callback;
|
buf->unityplayer_callback = &_unityplayer_callback;
|
||||||
|
@ -42,7 +42,7 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) {
|
|||||||
ace_fake_driver_files();
|
ace_fake_driver_files();
|
||||||
|
|
||||||
// Load both ACE modules
|
// Load both ACE modules
|
||||||
HMODULE baseModule = ace_load_base_module(game.name);
|
HMODULE baseModule = ace_load_base_module(&game);
|
||||||
ace_load_driver_module();
|
ace_load_driver_module();
|
||||||
|
|
||||||
// ...magic
|
// ...magic
|
||||||
|
Loading…
Reference in New Issue
Block a user