rodecomp/Source/Client/Application/Launcher.cpp
ragnarok-clanker 9312817430 Maintenance: Define two globals that main reads but never defines. g_applicationDirectory (gl_24584, 0x173AD78, char[0x80]) has one w
Batch #1570 by ragnarok-clanker: no function's compiled code changes; checked with 5 compiled unit(s), including every includer of Source/Client/Application/Launcher.h, Source/Client/Input/InputCharset.h.
2026-10-28 18:59:30 +00:00

46 lines
1.1 KiB
C++

#include "Client/Application/Launcher.h"
#include <cstdint>
#include <cstring>
#include <windows.h>
// STATIC: 0x0173ad64
// GLOBAL: gl_24472
std::uint32_t g_clientVersion;
// GLOBAL: gl_24584
char g_applicationDirectory[0x80];
// OFFSET: 0x00E58820
// FUNCTION: fn_24363
bool RestartFromCommandLine(char* commandLine) {
char* marker = std::strstr(commandLine, "/launcherRESTART:");
if (!marker) {
return false;
}
STARTUPINFOA startup = {};
startup.cb = sizeof(startup);
startup.dwFlags = STARTF_USESHOWWINDOW;
startup.wShowWindow = SW_SHOWNORMAL;
PROCESS_INFORMATION process;
CreateProcessA(nullptr, marker + std::strlen("/launcherRESTART:"), nullptr, nullptr, FALSE, 0, nullptr, nullptr, &startup, &process);
CloseHandle(process.hProcess);
CloseHandle(process.hThread);
return true;
}
// INLINED
void ExitForProtectionCheck(const char* commandLine) {
if (std::strstr(commandLine, "/check_themida")) {
ExitProcess(0);
}
}
// INLINED
bool AcquireInstanceMutex(HANDLE* mutex) {
*mutex = CreateMutexA(nullptr, TRUE, "MutexInit");
return GetLastError() != ERROR_ALREADY_EXISTS;
}