From 51d3d4a40c8579e29571bc80d35bbb62fa50661b Mon Sep 17 00:00:00 2001 From: BobTheBob <32057864+BobTheBob9@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:17:11 +0100 Subject: add temp console support --- NorthstarDedicatedTest/sourceconsole.cpp | 33 +++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'NorthstarDedicatedTest/sourceconsole.cpp') diff --git a/NorthstarDedicatedTest/sourceconsole.cpp b/NorthstarDedicatedTest/sourceconsole.cpp index c862356e..775ec856 100644 --- a/NorthstarDedicatedTest/sourceconsole.cpp +++ b/NorthstarDedicatedTest/sourceconsole.cpp @@ -1,14 +1,37 @@ #include "pch.h" #include "sourceconsole.h" #include "sourceinterface.h" +#include "hookutils.h" +#include -SourceInterface* g_SourceGameConsole; +SourceInterface* g_pSourceGameConsole; + +typedef void(*weaponlisttype)(); +weaponlisttype weaponlist; +void CommandWeaponListHook() +{ + std::cout << "TEMP: toggling console... REPLACE THIS WITH ACTUAL CONCOMMAND SUPPORT SOON" << std::endl; + + (*g_pSourceGameConsole)->Activate(); +} + +CreateInterfaceFn createInterface; +void* __fastcall InitialiseConsoleOnUIInit(const char* pName, int* pReturnCode) +{ + std::cout << pName << std::endl; + void* ret = createInterface(pName, pReturnCode); + + if (!strcmp(pName, "GameClientExports001")) + (*g_pSourceGameConsole)->Initialize(); + + return ret; +} void InitialiseSourceConsole(HMODULE baseAddress) { - SourceInterface console = SourceInterface("client.dll", "CGameConsole"); - console->Initialize(); - console->Activate(); + g_pSourceGameConsole = new SourceInterface("client.dll", "GameConsole004"); - g_SourceGameConsole = &console; + HookEnabler hook; + ENABLER_CREATEHOOK(hook, (char*)baseAddress + 0x73BA00, &InitialiseConsoleOnUIInit, reinterpret_cast(&createInterface)); + ENABLER_CREATEHOOK(hook, (char*)baseAddress + 0x10C080, &CommandWeaponListHook, reinterpret_cast(&weaponlist)); } \ No newline at end of file -- cgit v1.2.3