Wide apply env (#460)
* Wide apply env * [MapRotation] Use std::format where possible
This commit is contained in:
parent
4370de45aa
commit
78e495f9f2
@ -181,13 +181,13 @@ namespace Components
|
|||||||
{
|
{
|
||||||
assert(!map.empty());
|
assert(!map.empty());
|
||||||
|
|
||||||
if (Dvar::Var("sv_cheats").get<bool>())
|
if ((*Game::sv_cheats)->current.enabled)
|
||||||
{
|
{
|
||||||
Command::Execute(Utils::String::VA("devmap %s", map.data()), true);
|
Command::Execute(std::format("devmap {}", map), true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Command::Execute(Utils::String::VA("map %s", map.data()), true);
|
Command::Execute(std::format("map {}", map), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ namespace Utils
|
|||||||
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||||
if (hSnapshot == INVALID_HANDLE_VALUE) return 0;
|
if (hSnapshot == INVALID_HANDLE_VALUE) return 0;
|
||||||
|
|
||||||
Utils::Memory::Allocator allocator;
|
Memory::Allocator allocator;
|
||||||
allocator.reference(hSnapshot, [](void* handle) { CloseHandle(handle); });
|
allocator.reference(hSnapshot, [](void* handle) { CloseHandle(handle); });
|
||||||
|
|
||||||
PROCESSENTRY32 pe32;
|
PROCESSENTRY32 pe32;
|
||||||
@ -81,12 +81,12 @@ namespace Utils
|
|||||||
|
|
||||||
void* GetThreadStartAddress(HANDLE hThread)
|
void* GetThreadStartAddress(HANDLE hThread)
|
||||||
{
|
{
|
||||||
HMODULE ntdll = Utils::GetNTDLL();
|
HMODULE ntdll = GetNTDLL();
|
||||||
if (!ntdll) return nullptr;
|
if (!ntdll) return nullptr;
|
||||||
|
|
||||||
|
|
||||||
static uint8_t ntQueryInformationThread[] = { 0xB1, 0x8B, 0xAE, 0x8A, 0x9A, 0x8D, 0x86, 0xB6, 0x91, 0x99, 0x90, 0x8D, 0x92, 0x9E, 0x8B, 0x96, 0x90, 0x91, 0xAB, 0x97, 0x8D, 0x9A, 0x9E, 0x9B }; // NtQueryInformationThread
|
static uint8_t ntQueryInformationThread[] = { 0xB1, 0x8B, 0xAE, 0x8A, 0x9A, 0x8D, 0x86, 0xB6, 0x91, 0x99, 0x90, 0x8D, 0x92, 0x9E, 0x8B, 0x96, 0x90, 0x91, 0xAB, 0x97, 0x8D, 0x9A, 0x9E, 0x9B }; // NtQueryInformationThread
|
||||||
NtQueryInformationThread_t NtQueryInformationThread = NtQueryInformationThread_t(GetProcAddress(ntdll, Utils::String::XOR(std::string(reinterpret_cast<char*>(ntQueryInformationThread), sizeof ntQueryInformationThread), -1).data()));
|
NtQueryInformationThread_t NtQueryInformationThread = NtQueryInformationThread_t(GetProcAddress(ntdll, String::XOR(std::string(reinterpret_cast<char*>(ntQueryInformationThread), sizeof ntQueryInformationThread), -1).data()));
|
||||||
if (!NtQueryInformationThread) return nullptr;
|
if (!NtQueryInformationThread) return nullptr;
|
||||||
|
|
||||||
HANDLE dupHandle, currentProcess = GetCurrentProcess();
|
HANDLE dupHandle, currentProcess = GetCurrentProcess();
|
||||||
@ -106,18 +106,18 @@ namespace Utils
|
|||||||
|
|
||||||
void SetEnvironment()
|
void SetEnvironment()
|
||||||
{
|
{
|
||||||
char* buffer{};
|
wchar_t* buffer{};
|
||||||
std::size_t size{};
|
std::size_t size{};
|
||||||
if (_dupenv_s(&buffer, &size, "XLABS_MW2_INSTALL") != 0 || buffer == nullptr)
|
if (_wdupenv_s(&buffer, &size, L"XLABS_MW2_INSTALL") != 0 || buffer == nullptr)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto _0 = gsl::finally([&] { std::free(buffer); });
|
const auto _0 = gsl::finally([&] { std::free(buffer); });
|
||||||
|
|
||||||
std::string dir{buffer, size};
|
const std::wstring dir{buffer, size};
|
||||||
SetCurrentDirectoryA(dir.data());
|
SetCurrentDirectoryW(dir.data());
|
||||||
SetDllDirectoryA(dir.data());
|
SetDllDirectoryW(dir.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
HMODULE GetNTDLL()
|
HMODULE GetNTDLL()
|
||||||
|
Loading…
Reference in New Issue
Block a user