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