From 492aac484b5c65e5df21a7d1b1cf781063efef50 Mon Sep 17 00:00:00 2001 From: Matthew Wozniak Date: Sun, 3 Nov 2024 00:20:45 -0400 Subject: purge CR from this project --- main.c | 140 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 70 insertions(+), 70 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 47f6dec..182f149 100644 --- a/main.c +++ b/main.c @@ -1,70 +1,70 @@ -// SPDX-License-Identifier: ISC -// SPDX-FileCopyrightText: 2024 Matthew Wozniak - -#include "api.h" -#include "hook.h" -#include "log.h" -#include "os.h" - -#include -#define WIN32_LEAN_AND_MEAN -#include - -void (*orig_cbuf_addtext)(char *); -void hook_cbuf_addtext(char *str) { - orig_cbuf_addtext(str); - // this is the last thing that happens when the game is opened - if (!strcmp(str, "exec modsettings.cfg mod\n")) { - } -} - -char *cmdline; -char WINAPI *hook_GetCommandLineA(void) { - return cmdline; -} - -void *(WINAPI *orig_LoadLibraryExA)(const char *, void *, int); -void WINAPI *hook_LoadLibraryExA(const char *filename, void *hfile, int flags) { - // if the dll is already loaded, don't run our code again - if (os_dlhandle(filename)) - return orig_LoadLibraryExA(filename, hfile, flags); - void *ret = orig_LoadLibraryExA(filename, hfile, flags); - if (!ret) return ret; - // cut down to basename for display - const char *basename = filename; - for (const char *p = filename; *p; p++) - if (*p == '\\') basename = p + 1; - - if (!strcmp(basename, "engine.dll")) { - if (!api_init()) die("couldn't get apis"); - orig_cbuf_addtext = (void (*)(char *)) - hook_inline((void *)cbuf_addtext, (void *)hook_cbuf_addtext); - } - return ret; -} - -typedef int (*LauncherMain_t)(void *instance, void *prev_inst, char *cmdline, - int cmd_show); - -int main(void/* int argc, char **argv */) { - SetDllDirectoryA("bin/"); - - // TODO: make this changeable by the user - cmdline = "hl2.exe -console -w 1280 -h 720 -window -high -dxlevel 95"; - - hook_init(); - orig_LoadLibraryExA = (typeof(orig_LoadLibraryExA))hook_dllapi("kernel32", - "LoadLibraryExA", (void *)hook_LoadLibraryExA); - hook_dllapi("kernel32", "GetCommandLineA", (void *)hook_GetCommandLineA); - - info("GetCommandLineA() = %s", GetCommandLineA()); - - void *launcher_dll = os_dlopen("launcher"); - LauncherMain_t launcher_main = - (LauncherMain_t)os_dlsym(launcher_dll, "LauncherMain"); - - if (!launcher_main) die("couldn't open launcher"); - launcher_main(NULL, NULL, cmdline, 0); -} - -// vi: sw=4 ts=4 noet tw=80 cc=80 +// SPDX-License-Identifier: ISC +// SPDX-FileCopyrightText: 2024 Matthew Wozniak + +#include "api.h" +#include "hook.h" +#include "log.h" +#include "os.h" + +#include +#define WIN32_LEAN_AND_MEAN +#include + +void (*orig_cbuf_addtext)(char *); +void hook_cbuf_addtext(char *str) { + orig_cbuf_addtext(str); + // this is the last thing that happens when the game is opened + if (!strcmp(str, "exec modsettings.cfg mod\n")) { + } +} + +char *cmdline; +char WINAPI *hook_GetCommandLineA(void) { + return cmdline; +} + +void *(WINAPI *orig_LoadLibraryExA)(const char *, void *, int); +void WINAPI *hook_LoadLibraryExA(const char *filename, void *hfile, int flags) { + // if the dll is already loaded, don't run our code again + if (os_dlhandle(filename)) + return orig_LoadLibraryExA(filename, hfile, flags); + void *ret = orig_LoadLibraryExA(filename, hfile, flags); + if (!ret) return ret; + // cut down to basename for display + const char *basename = filename; + for (const char *p = filename; *p; p++) + if (*p == '\\') basename = p + 1; + + if (!strcmp(basename, "engine.dll")) { + if (!api_init()) die("couldn't get apis"); + orig_cbuf_addtext = (void (*)(char *)) + hook_inline((void *)cbuf_addtext, (void *)hook_cbuf_addtext); + } + return ret; +} + +typedef int (*LauncherMain_t)(void *instance, void *prev_inst, char *cmdline, + int cmd_show); + +int main(void/* int argc, char **argv */) { + SetDllDirectoryA("bin/"); + + // TODO: make this changeable by the user + cmdline = "hl2.exe -console -w 1280 -h 720 -window -high -dxlevel 95"; + + hook_init(); + orig_LoadLibraryExA = (typeof(orig_LoadLibraryExA))hook_dllapi("kernel32", + "LoadLibraryExA", (void *)hook_LoadLibraryExA); + hook_dllapi("kernel32", "GetCommandLineA", (void *)hook_GetCommandLineA); + + info("GetCommandLineA() = %s", GetCommandLineA()); + + void *launcher_dll = os_dlopen("launcher"); + LauncherMain_t launcher_main = + (LauncherMain_t)os_dlsym(launcher_dll, "LauncherMain"); + + if (!launcher_main) die("couldn't open launcher"); + launcher_main(NULL, NULL, cmdline, 0); +} + +// vi: sw=4 ts=4 noet tw=80 cc=80 -- cgit v1.2.3-54-g00ecf