Various fixes and stuff.

This commit is contained in:
momo5502 2016-01-15 22:51:47 +01:00
parent 5ad9fdf914
commit 0050429654
4 changed files with 49 additions and 4 deletions

View File

@ -51,7 +51,7 @@ workspace "iw4x"
location "./build"
objdir "%{wks.location}/obj"
targetdir "%{wks.location}/bin/%{cfg.buildcfg}"
configurations { "Normal", "Debug", "DebugStatic", "Release", "ReleaseStatic" }
configurations { "Debug", "DebugStatic", "Release", "ReleaseStatic" }
-- VS 2015 toolset only
toolset "msc-140"
@ -78,9 +78,6 @@ workspace "iw4x"
files { "./src/**.hpp", "./src/**.cpp" }
includedirs { "%{prj.location}", "./src" }
architecture "x32"
configmap {
["Normal"] = "Debug"
}
-- Pre-compiled header
pchheader "STDInclude.hpp" -- must be exactly same as used in #include directives

View File

@ -49,7 +49,25 @@ namespace Components
Exception::Exception()
{
#ifndef DEBUG
Utils::Hook::Set(0x6D70AC, Exception::SetUnhandledExceptionFilterStub);
SetUnhandledExceptionFilter(&Exception::ExceptionFilter);
#endif
Command::Add("stressTest", [] (Command::Params params)
{
std::string command;
for (int i = 0;; i++)
{
char* mapname = (char*)0x7471D0 + 40 * i;
if (!*mapname) break;
if(i % 2) command.append(Utils::VA("wait 500;disconnect;wait 500;", mapname)); // Test a disconnect
else command.append(Utils::VA("wait 500;", mapname)); // Test direct map switch
command.append(Utils::VA("map %s;", mapname));
}
Command::Execute(command, false);
});
}
}

View File

@ -90,5 +90,8 @@ namespace Components
// ignore 'no iwd files found in main'
Utils::Hook::Nop(0x642A4B, 5);
// Ignore bad magic, when trying to free hunk when it's already cleared
Utils::Hook::Set<WORD>(0x49AACE, 0xC35E);
}
}

View File

@ -139,6 +139,33 @@ namespace Components
Utils::Hook::Nop(0x4AA89F, 2);
Utils::Hook::Nop(0x4AA8A1, 6);
// remove activeAction execution (exploit in mods)
Utils::Hook::Set<BYTE>(0x5A1D43, 0xEB);
// disable bind protection
Utils::Hook::Set<BYTE>(0x4DACA2, 0xEB);
// require Windows 5
Utils::Hook::Set<BYTE>(0x467ADF, 5);
Utils::Hook::Set<char>(0x6DF5D6, '5');
// disable 'ignoring asset' notices
Utils::Hook::Nop(0x5BB902, 5);
// disable migration_dvarErrors
Utils::Hook::Set<BYTE>(0x60BDA7, 0);
// allow joining 'developer 1' servers
Utils::Hook::Set<BYTE>(0x478BA2, 0xEB);
// fs_game fixes
Utils::Hook::Nop(0x4A5D74, 2); // remove fs_game profiles
Utils::Hook::Set<BYTE>(0x4081FD, 0xEB); // defaultweapon
// Filter log (initially com_logFilter, but I don't see why that dvar is needed)
Utils::Hook::Nop(0x647466, 5); // 'dvar set' lines
Utils::Hook::Nop(0x5DF4F2, 5); // 'sending splash open' lines
// intro stuff
Utils::Hook::Nop(0x60BEE9, 5); // Don't show legals
Utils::Hook::Set<char*>(0x60BED2, "unskippablecinematic IW_logo\n");