[Maps] Disable speculars on custom maps
This commit is contained in:
parent
308b49ef0e
commit
db2adce865
@ -846,6 +846,52 @@ namespace Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Game::dvar_t* Maps::GetSpecularDvar()
|
||||||
|
{
|
||||||
|
Game::dvar_t*& r_specular = *reinterpret_cast<Game::dvar_t**>(0x69F0D94);
|
||||||
|
|
||||||
|
if (Maps::IsCustomMap())
|
||||||
|
{
|
||||||
|
static Game::dvar_t noSpecular;
|
||||||
|
ZeroMemory(&noSpecular, sizeof noSpecular);
|
||||||
|
return &noSpecular;
|
||||||
|
}
|
||||||
|
|
||||||
|
return r_specular;
|
||||||
|
}
|
||||||
|
|
||||||
|
__declspec(naked) void Maps::SetSpecularStub1()
|
||||||
|
{
|
||||||
|
__asm
|
||||||
|
{
|
||||||
|
push eax
|
||||||
|
pushad
|
||||||
|
call Maps::GetSpecularDvar
|
||||||
|
|
||||||
|
mov[esp + 20h], eax
|
||||||
|
popad
|
||||||
|
|
||||||
|
pop eax
|
||||||
|
retn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
__declspec(naked) void Maps::SetSpecularStub2()
|
||||||
|
{
|
||||||
|
__asm
|
||||||
|
{
|
||||||
|
push eax
|
||||||
|
pushad
|
||||||
|
call Maps::GetSpecularDvar
|
||||||
|
|
||||||
|
mov[esp + 20h], eax
|
||||||
|
popad
|
||||||
|
|
||||||
|
pop edx
|
||||||
|
retn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Maps::Maps()
|
Maps::Maps()
|
||||||
{
|
{
|
||||||
Dvar::OnInit([]()
|
Dvar::OnInit([]()
|
||||||
@ -929,6 +975,13 @@ namespace Components
|
|||||||
// Disable distortion on custom maps
|
// Disable distortion on custom maps
|
||||||
Utils::Hook(0x50AA47, Maps::SetDistortionStub, HOOK_CALL).install()->quick();
|
Utils::Hook(0x50AA47, Maps::SetDistortionStub, HOOK_CALL).install()->quick();
|
||||||
|
|
||||||
|
// Disable speculars on custom maps
|
||||||
|
Utils::Hook(0x525EA6, Maps::SetSpecularStub1, HOOK_CALL).install()->quick();
|
||||||
|
Utils::Hook(0x51FBC7, Maps::SetSpecularStub2, HOOK_CALL).install()->quick();
|
||||||
|
Utils::Hook(0x522A2E, Maps::SetSpecularStub2, HOOK_CALL).install()->quick();
|
||||||
|
Utils::Hook::Nop(0x51FBCC, 1);
|
||||||
|
Utils::Hook::Nop(0x522A33, 1);
|
||||||
|
|
||||||
// Intercept map loading for usermap initialization
|
// Intercept map loading for usermap initialization
|
||||||
Utils::Hook(0x6245E3, Maps::SpawnServerStub, HOOK_CALL).install()->quick();
|
Utils::Hook(0x6245E3, Maps::SpawnServerStub, HOOK_CALL).install()->quick();
|
||||||
Utils::Hook(0x62493E, Maps::SpawnServerStub, HOOK_CALL).install()->quick();
|
Utils::Hook(0x62493E, Maps::SpawnServerStub, HOOK_CALL).install()->quick();
|
||||||
|
@ -123,6 +123,10 @@ namespace Components
|
|||||||
static Game::dvar_t* GetDistortionDvar();
|
static Game::dvar_t* GetDistortionDvar();
|
||||||
static void SetDistortionStub();
|
static void SetDistortionStub();
|
||||||
|
|
||||||
|
static Game::dvar_t* GetSpecularDvar();
|
||||||
|
static void SetSpecularStub1();
|
||||||
|
static void SetSpecularStub2();
|
||||||
|
|
||||||
void reallocateEntryPool();
|
void reallocateEntryPool();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user