diff --git a/src/client/component/exception.cpp b/src/client/component/exception.cpp index ea64a4aa..598473ad 100644 --- a/src/client/component/exception.cpp +++ b/src/client/component/exception.cpp @@ -84,9 +84,10 @@ namespace exception void display_error_dialog() { - std::string error_str = utils::string::va("Fatal error (0x%08X) at 0x%p.\n" + std::string error_str = utils::string::va("Fatal error (0x%08X) at 0x%p (0x%p).\n" "A minidump has been written.\n\n", - exception_data.code, exception_data.address); + exception_data.code, exception_data.address, + reinterpret_cast(exception_data.address) - game::base_address); if (!system_check::is_valid()) { @@ -176,6 +177,7 @@ namespace exception line("Clean game: "s + (system_check::is_valid() ? "Yes" : "No")); line(utils::string::va("Exception: 0x%08X", exceptioninfo->ExceptionRecord->ExceptionCode)); line(utils::string::va("Address: 0x%llX", exceptioninfo->ExceptionRecord->ExceptionAddress)); + line(utils::string::va("Base: 0x%llX", game::base_address)); #pragma warning(push) #pragma warning(disable: 4996) @@ -258,4 +260,4 @@ namespace exception }; } -//REGISTER_COMPONENT(exception::component) +REGISTER_COMPONENT(exception::component) diff --git a/src/client/component/scheduler.cpp b/src/client/component/scheduler.cpp index 1c8b7287..177ec4be 100644 --- a/src/client/component/scheduler.cpp +++ b/src/client/component/scheduler.cpp @@ -100,7 +100,6 @@ namespace scheduler void r_end_frame_stub() { execute(pipeline::renderer); - //r_end_frame_hook.invoke(); } void server_frame_stub() @@ -109,10 +108,14 @@ namespace scheduler execute(pipeline::server); } - void main_frame_stub() + void* main_frame_stub() { - main_frame_hook.invoke(); - execute(pipeline::main); + const auto _0 = gsl::finally([]() + { + execute(pipeline::main); + }); + + return main_frame_hook.invoke(); } void hks_frame_stub() @@ -204,9 +207,8 @@ namespace scheduler a.jmp(0x6A6310_b); }), true); - //r_end_frame_hook.create(SELECT_VALUE(0x0, 0x6A6300_b), scheduler::r_end_frame_stub); //g_run_frame_hook.create(SELECT_VALUE(0x0, 0x417940_b), scheduler::server_frame_stub); - //main_frame_hook.create(SELECT_VALUE(0x0, 0x0), scheduler::main_frame_stub); + main_frame_hook.create(SELECT_VALUE(0x0, 0x3438B0_b), scheduler::main_frame_stub); //hks_frame_hook.create(SELECT_VALUE(0x0, 0x0), scheduler::hks_frame_stub); // no scripting for now } diff --git a/src/client/game/demonware/services/bdStorage.cpp b/src/client/game/demonware/services/bdStorage.cpp index 873a8119..1cae2206 100644 --- a/src/client/game/demonware/services/bdStorage.cpp +++ b/src/client/game/demonware/services/bdStorage.cpp @@ -18,7 +18,7 @@ namespace demonware this->register_task(12, &bdStorage::unk12); this->map_publisher_resource("motd-.*\\.txt", DW_MOTD); - this->map_publisher_resource("ffotd-.*\\.ff", DW_FASTFILE); + // this->map_publisher_resource("ffotd-.*\\.ff", DW_FASTFILE); this->map_publisher_resource("playlists(_.+)?\\.aggr", DW_PLAYLISTS); } diff --git a/src/client/game/symbols.hpp b/src/client/game/symbols.hpp index a41be9d5..92c1fe01 100644 --- a/src/client/game/symbols.hpp +++ b/src/client/game/symbols.hpp @@ -101,7 +101,7 @@ namespace game WEAK symbol Key_KeynumToString{0x0, 0x0}; - WEAK symbol Live_SyncOnlineDataFlags{0x0, 0x0}; + WEAK symbol Live_SyncOnlineDataFlags{0x0, 0x1A5C10}; WEAK symbol Material_RegisterHandle{0x0, 0x692360}; @@ -193,7 +193,7 @@ namespace game WEAK symbol Sys_BuildAbsPath{0x0, 0x0}; WEAK symbol Sys_Milliseconds{0x0, 0x0}; - WEAK symbol Sys_IsDatabaseReady2{0x0, 0x0}; + WEAK symbol Sys_IsDatabaseReady2{0x0, 0x4F79C0}; WEAK symbol Sys_SendPacket{0x0, 0x0}; WEAK symbol Sys_FileExists{0x0, 0x0};