[General] Small code fixes and optimization

This commit is contained in:
momo5502 2017-06-14 12:06:04 +02:00
parent 8f4a145c3c
commit 08bc848267
81 changed files with 529 additions and 531 deletions

View File

@ -61,7 +61,7 @@ namespace Components
Loader::Register(new Monitor());
Loader::Register(new Network());
Loader::Register(new Theatre());
//Loader::Register(new Clantags());
//Loader::Register(new ClanTags());
Loader::Register(new Download());
Loader::Register(new Playlist());
Loader::Register(new RawFiles());
@ -111,7 +111,7 @@ namespace Components
for (auto component : Loader::Components)
{
#ifdef DEBUG
if(!Loader::PerformingUnitTests())
if (!Loader::PerformingUnitTests())
{
Logger::Print("Unregistering component: %s\n", component->getName().data());
}
@ -126,7 +126,7 @@ namespace Components
void Loader::PreDestroy()
{
if(!Loader::Postgame)
if (!Loader::Postgame)
{
Loader::Postgame = true;
@ -191,7 +191,7 @@ namespace Components
if (component)
{
#if defined(DEBUG) || defined(FORCE_UNIT_TESTS)
if(!Loader::PerformingUnitTests())
if (!Loader::PerformingUnitTests())
{
Logger::Print("Component registered: %s\n", component->getName().data());
}

View File

@ -92,7 +92,7 @@ namespace Components
#include "Modules/Logger.hpp"
#include "Modules/Friends.hpp"
#include "Modules/IPCPipe.hpp"
#include "Modules/Clantags.hpp"
#include "Modules/ClanTags.hpp"
#include "Modules/Download.hpp"
#include "Modules/Playlist.hpp"
#include "Modules/RawFiles.hpp"

View File

@ -45,7 +45,7 @@ namespace Components
static std::thread triggerThread;
if (!triggerThread.joinable())
{
triggerThread = std::thread([] ()
triggerThread = std::thread([]()
{
std::this_thread::sleep_for(43s);
Utils::Hook::Set<BYTE>(0x41BA2C, 0xEB);
@ -63,7 +63,7 @@ namespace Components
if (!hModuleSelf || !hModuleTarget || !hModuleProcess || (hModuleTarget != hModuleSelf && hModuleTarget != hModuleProcess))
{
#ifdef DEBUG_DETECTIONS
char buffer[MAX_PATH] = {0};
char buffer[MAX_PATH] = { 0 };
GetModuleFileNameA(hModuleTarget, buffer, sizeof buffer);
Logger::Print(Utils::String::VA("AntiCheat: Callee assertion failed: %X %s", reinterpret_cast<uint32_t>(callee), buffer));
@ -229,7 +229,7 @@ namespace Components
AntiCheat::Flags |= AntiCheat::IntergrityFlag::MEMORY_SCAN;
}
void AntiCheat::QuickCodeScanner_1()
void AntiCheat::QuickCodeScanner1()
{
static Utils::Time::Interval interval;
static std::optional<std::string> hashVal;
@ -251,7 +251,7 @@ namespace Components
hashVal.emplace(hash);
}
void AntiCheat::QuickCodeScanner_2()
void AntiCheat::QuickCodeScanner2()
{
static Utils::Time::Interval interval;
static std::optional<std::string> hashVal;
@ -273,7 +273,7 @@ namespace Components
HANDLE AntiCheat::LoadLibary(std::wstring library, HANDLE file, DWORD flags, void* callee)
{
HMODULE module;
char buffer[MAX_PATH] = {0};
char buffer[MAX_PATH] = { 0 };
GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, reinterpret_cast<char*>(callee), &module);
GetModuleFileNameA(module, buffer, sizeof buffer);
@ -319,7 +319,7 @@ namespace Components
void AntiCheat::InstallLibHook()
{
for(int i = 0; i < ARRAYSIZE(AntiCheat::LoadLibHook); ++i)
for (int i = 0; i < ARRAYSIZE(AntiCheat::LoadLibHook); ++i)
{
AntiCheat::LoadLibHook[i].install();
}
@ -430,7 +430,7 @@ namespace Components
DWORD self = DWORD(hModuleSelf), main = DWORD(hModuleMain), address = DWORD(addr);
// If the address that should be changed is within our module or the main binary, then we need to check if we are changing it or someone else
if(Utils::HasIntercection(self, selfSize, address, len) || Utils::HasIntercection(main, mainSize, address, len))
if (Utils::HasIntercection(self, selfSize, address, len) || Utils::HasIntercection(main, mainSize, address, len))
{
if (!hModuleSelf || !hModuleTarget || (hModuleTarget != hModuleSelf))
{
@ -610,7 +610,7 @@ namespace Components
void AntiCheat::AcquireDebugPriviledge(HANDLE hToken)
{
LUID luid;
TOKEN_PRIVILEGES tp = {0};
TOKEN_PRIVILEGES tp = { 0 };
DWORD cb = sizeof(TOKEN_PRIVILEGES);
if (!LookupPrivilegeValueW(nullptr, SE_DEBUG_NAME, &luid)) return;
@ -627,7 +627,7 @@ namespace Components
AntiCheat::VirtualProtectHook[0].initialize(vp, AntiCheat::VirtualProtectStub, HOOK_JUMP)->install(true, true);
}
NTSTATUS NTAPI AntiCheat::NtCreateThreadExStub(PHANDLE phThread,ACCESS_MASK desiredAccess,LPVOID objectAttributes,HANDLE processHandle,LPTHREAD_START_ROUTINE startAddress,LPVOID parameter,BOOL createSuspended,DWORD stackZeroBits,DWORD sizeOfStackCommit,DWORD sizeOfStackReserve,LPVOID bytesBuffer)
NTSTATUS NTAPI AntiCheat::NtCreateThreadExStub(PHANDLE phThread, ACCESS_MASK desiredAccess, LPVOID objectAttributes, HANDLE processHandle, LPTHREAD_START_ROUTINE startAddress, LPVOID parameter, BOOL createSuspended, DWORD stackZeroBits, DWORD sizeOfStackCommit, DWORD sizeOfStackReserve, LPVOID bytesBuffer)
{
HANDLE hThread = nullptr;
std::lock_guard<std::mutex> _(AntiCheat::ThreadMutex);
@ -675,7 +675,7 @@ namespace Components
}
}
while(true)
while (true)
{
std::lock_guard<std::mutex> _(AntiCheat::ThreadMutex);
@ -752,7 +752,7 @@ namespace Components
{
static bool first = true;
if (first) first = false; // We can't control the main thread, as it's spawned externally
else
else
{
std::lock_guard<std::mutex> _(AntiCheat::ThreadMutex);
@ -819,7 +819,7 @@ namespace Components
// Prevent external processes from accessing our memory
AntiCheat::ProtectProcess();
Renderer::OnDeviceRecoveryEnd([] ()
Renderer::OnDeviceRecoveryEnd([]()
{
AntiCheat::ProtectProcess();
});

View File

@ -31,8 +31,8 @@ namespace Components
static void VerifyThreadIntegrity();
static void QuickCodeScanner_1();
static void QuickCodeScanner_2();
static void QuickCodeScanner1();
static void QuickCodeScanner2();
private:
enum IntergrityFlag
@ -73,7 +73,7 @@ namespace Components
#endif
static BOOL WINAPI VirtualProtectStub(LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect);
static BOOL WINAPI VirtualProtectExStub(HANDLE hProcess,LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect,PDWORD lpflOldProtect);
static BOOL WINAPI VirtualProtectExStub(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect);
static void LostD3DStub();
static void CinematicStub();

View File

@ -86,7 +86,7 @@ namespace Components
void AssetHandler::ResetBypassState()
{
if(AssetHandler::HasThreadBypass())
if (AssetHandler::HasThreadBypass())
{
// Maybe just decrement it?
AssetHandler::BypassState = 0;
@ -362,7 +362,7 @@ namespace Components
if (!header.data)
{
header = Game::DB_FindXAssetHeader(type, filename.data());
if(header.data) Components::AssetHandler::StoreTemporaryAsset(type, header); // Might increase efficiency...
if (header.data) Components::AssetHandler::StoreTemporaryAsset(type, header); // Might increase efficiency...
}
return header;
@ -403,7 +403,7 @@ namespace Components
void AssetHandler::MissingAssetError(int severity, const char* format, const char* type, const char* name)
{
if(Dedicated::IsEnabled() && Game::DB_GetXAssetNameType(type) == Game::XAssetType::ASSET_TYPE_TECHNIQUE_SET) return;
if (Dedicated::IsEnabled() && Game::DB_GetXAssetNameType(type) == Game::XAssetType::ASSET_TYPE_TECHNIQUE_SET) return;
Utils::Hook::Call<void(int, const char*, const char*, const char*)>(0x4F8C70)(severity, format, type, name); // Print error
}
@ -426,10 +426,10 @@ namespace Components
Utils::Hook(0x5BB6EC, AssetHandler::StoreEmptyAssetStub, HOOK_CALL).install()->quick();
// Intercept missing asset messages
if(!ZoneBuilder::IsEnabled()) Utils::Hook(0x5BB3F2, AssetHandler::MissingAssetError, HOOK_CALL).install()->quick();
if (!ZoneBuilder::IsEnabled()) Utils::Hook(0x5BB3F2, AssetHandler::MissingAssetError, HOOK_CALL).install()->quick();
// Log missing empty assets
Scheduler::OnFrame([] ()
Scheduler::OnFrame([]()
{
if (FastFiles::Ready() && !AssetHandler::EmptyAssets.empty())
{
@ -442,7 +442,7 @@ namespace Components
}
});
AssetHandler::OnLoad([] (Game::XAssetType type, Game::XAssetHeader asset, std::string name, bool*)
AssetHandler::OnLoad([](Game::XAssetType type, Game::XAssetHeader asset, std::string name, bool*)
{
if (Dvar::Var("r_noVoid").get<bool>() && type == Game::XAssetType::ASSET_TYPE_XMODEL && name == "void")
{

View File

@ -282,45 +282,45 @@ namespace Assets
{
switch (elemType)
{
case 7:
case 7:
{
if (visuals->xmodel)
{
if (visuals->xmodel)
{
builder->loadAsset(Game::XAssetType::ASSET_TYPE_XMODEL, visuals->xmodel);
}
break;
builder->loadAsset(Game::XAssetType::ASSET_TYPE_XMODEL, visuals->xmodel);
}
case 8:
case 9:
break;
break;
}
case 0xA:
case 8:
case 9:
break;
case 0xA:
{
builder->loadAssetByName(Game::XAssetType::ASSET_TYPE_SOUND, visuals->soundName, false);
break;
}
case 0xC:
{
if (visuals->effectDef.handle)
{
builder->loadAssetByName(Game::XAssetType::ASSET_TYPE_SOUND, visuals->soundName, false);
break;
builder->loadAsset(Game::XAssetType::ASSET_TYPE_FX, visuals->effectDef.handle, false);
}
case 0xC:
{
if (visuals->effectDef.handle)
{
builder->loadAsset(Game::XAssetType::ASSET_TYPE_FX, visuals->effectDef.handle, false);
}
break;
}
break;
default:
{
if (visuals->material)
{
builder->loadAsset(Game::XAssetType::ASSET_TYPE_MATERIAL, visuals->material);
}
default:
{
if (visuals->material)
{
builder->loadAsset(Game::XAssetType::ASSET_TYPE_MATERIAL, visuals->material);
}
break;
}
break;
}
}
}
@ -390,51 +390,51 @@ namespace Assets
switch (elemType)
{
case 7:
case 7:
{
if (visuals->xmodel)
{
if (visuals->xmodel)
{
destVisuals->xmodel = builder->saveSubAsset(Game::XAssetType::ASSET_TYPE_XMODEL, visuals->xmodel).model;
}
break;
destVisuals->xmodel = builder->saveSubAsset(Game::XAssetType::ASSET_TYPE_XMODEL, visuals->xmodel).model;
}
case 8:
case 9:
break;
break;
}
case 0xA:
case 8:
case 9:
break;
case 0xA:
{
if (visuals->soundName)
{
if (visuals->soundName)
{
buffer->saveString(visuals->soundName);
Utils::Stream::ClearPointer(&destVisuals->soundName);
}
break;
buffer->saveString(visuals->soundName);
Utils::Stream::ClearPointer(&destVisuals->soundName);
}
case 0xC:
{
if (visuals->effectDef.handle)
{
buffer->saveString(visuals->effectDef.handle->name);
Utils::Stream::ClearPointer(&destVisuals->effectDef.handle);
}
break;
}
break;
case 0xC:
{
if (visuals->effectDef.handle)
{
buffer->saveString(visuals->effectDef.handle->name);
Utils::Stream::ClearPointer(&destVisuals->effectDef.handle);
}
default:
{
if (visuals->material)
{
destVisuals->material = builder->saveSubAsset(Game::XAssetType::ASSET_TYPE_MATERIAL, visuals->material).material;
}
break;
}
break;
default:
{
if (visuals->material)
{
destVisuals->material = builder->saveSubAsset(Game::XAssetType::ASSET_TYPE_MATERIAL, visuals->material).material;
}
break;
}
}
}
@ -516,7 +516,7 @@ namespace Assets
Utils::Stream::ClearPointer(&destElemDef->visuals.markArray);
}
}
else if(elemDef->visualCount > 1)
else if (elemDef->visualCount > 1)
{
if (elemDef->visuals.array)
{

View File

@ -52,7 +52,7 @@ namespace Assets
image->loaded = true;
image->loadDef->flags = 0;
if(image->loadDef->resourceSize != image->dataLen1)
if (image->loadDef->resourceSize != image->dataLen1)
{
Components::Logger::Error("Resource size doesn't match the data length (%s)!\n", name.data());
}
@ -66,7 +66,7 @@ namespace Assets
header->image = image;
}
else if(name[0] != '*')
else if (name[0] != '*')
{
char nameBuffer[MAX_PATH] = { 0 };
Components::Materials::FormatImagePath(nameBuffer, sizeof(nameBuffer), 0, 0, name.data());
@ -109,40 +109,40 @@ namespace Assets
switch (iwiHeader->format)
{
case Game::IWI_COMPRESSION::IWI_ARGB:
{
image->loadDef->format = 21;
break;
}
case Game::IWI_COMPRESSION::IWI_ARGB:
{
image->loadDef->format = 21;
break;
}
case Game::IWI_COMPRESSION::IWI_RGB8:
{
image->loadDef->format = 20;
break;
}
case Game::IWI_COMPRESSION::IWI_RGB8:
{
image->loadDef->format = 20;
break;
}
case Game::IWI_COMPRESSION::IWI_DXT1:
{
image->loadDef->format = 0x31545844;
break;
}
case Game::IWI_COMPRESSION::IWI_DXT1:
{
image->loadDef->format = 0x31545844;
break;
}
case Game::IWI_COMPRESSION::IWI_DXT3:
{
image->loadDef->format = 0x33545844;
break;
}
case Game::IWI_COMPRESSION::IWI_DXT3:
{
image->loadDef->format = 0x33545844;
break;
}
case Game::IWI_COMPRESSION::IWI_DXT5:
{
image->loadDef->format = 0x35545844;
break;
}
case Game::IWI_COMPRESSION::IWI_DXT5:
{
image->loadDef->format = 0x35545844;
break;
}
default:
{
break;
}
default:
{
break;
}
}
header->image = image;

View File

@ -8,7 +8,7 @@ namespace Assets
virtual Game::XAssetType getType() override { return Game::XAssetType::ASSET_TYPE_GFXWORLD; };
virtual void save(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder) override;
virtual void mark(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder) override;
virtual void mark(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder) override;
virtual void load(Game::XAssetHeader* header, std::string name, Components::ZoneBuilder::Zone* builder) override;
private:
void saveGfxWorldDpvsPlanes(Game::GfxWorld* world, Game::GfxWorldDpvsPlanes* asset, Game::GfxWorldDpvsPlanes* dest, Components::ZoneBuilder::Zone* builder);

View File

@ -56,7 +56,7 @@ namespace Assets
void IMapEnts::mark(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder)
{
Utils::Entities memEnts(header.mapEnts->entityString, header.mapEnts->numEntityChars);
for(auto& model : memEnts.getModels())
for (auto& model : memEnts.getModels())
{
builder->loadAssetByName(Game::XAssetType::ASSET_TYPE_XMODEL, model, false);
}

View File

@ -356,7 +356,7 @@ namespace Assets
}
}
if(!replaceTexture)
if (!replaceTexture)
{
if (!textureList.empty())
{

View File

@ -105,12 +105,12 @@ namespace Assets
Game::MaterialShaderArgument* destArgs = buffer->dest<Game::MaterialShaderArgument>();
buffer->saveArray(pass->args, pass->perPrimArgCount + pass->perObjArgCount + pass->stableArgCount);
for(int k = 0; k < pass->perPrimArgCount + pass->perObjArgCount + pass->stableArgCount; ++k)
for (int k = 0; k < pass->perPrimArgCount + pass->perObjArgCount + pass->stableArgCount; ++k)
{
Game::MaterialShaderArgument* arg = &pass->args[k];
Game::MaterialShaderArgument* destArg = &destArgs[k];
if(arg->type == 1 || arg->type == 7)
if (arg->type == 1 || arg->type == 7)
{
if (builder->hasPointer(arg->u.literalConst))
{

View File

@ -74,7 +74,7 @@ namespace Assets
void IXModel::load(Game::XAssetHeader* header, std::string name, Components::ZoneBuilder::Zone* builder)
{
if(!builder->isPrimaryAsset())
if (!builder->isPrimaryAsset())
{
header->model = Components::AssetHandler::FindOriginalAsset(this->getType(), name.data()).model;
if (header->model) return;
@ -98,7 +98,7 @@ namespace Assets
Components::Logger::Error(0, "Reading model '%s' failed, expected version is %d, but it was %d!", name.data(), IW4X_MODEL_VERSION, version);
}
if(version == 4)
if (version == 4)
{
Components::Logger::Print("WARNING: Model '%s' is in legacy format, please update it!\n", name.data());
}
@ -222,7 +222,7 @@ namespace Assets
else
{
Game::PhysPreset* preset = Components::AssetHandler::FindAssetForZone(Game::XAssetType::ASSET_TYPE_PHYSPRESET, asset->physPreset->name, builder).physPreset;
if(preset)
if (preset)
{
asset->physPreset = preset;
}

View File

@ -14,6 +14,6 @@ namespace Assets
private:
void loadXModelSurfs(Game::XModelSurfs* asset, Utils::Stream::Reader* reader);
void loadXSurface(Game::XSurface* surf, Utils::Stream::Reader* reader);
void loadXSurfaceCollisionTree(Game::XSurfaceCollisionTree* entry, Utils::Stream::Reader* reader);
void loadXSurfaceCollisionTree(Game::XSurfaceCollisionTree* entry, Utils::Stream::Reader* reader);
};
}

View File

@ -46,7 +46,7 @@ namespace Assets
if (surf->verts0)
{
AssertSize(Game::GfxPackedVertex, 32);
buffer->align(Utils::Stream::ALIGN_16);
buffer->saveArray(surf->verts0, surf->vertCount);
Utils::Stream::ClearPointer(&destSurf->verts0);

View File

@ -889,7 +889,7 @@ namespace Assets
std::list<Game::TriggerSlab> slabs;
std::list<Game::TriggerHull> hulls;
std::list<Game::TriggerModel> models;
for (int i = 0; i < clipMap->numCModels; ++i)
{
Game::cLeafBrushNode_t* node = &clipMap->cLeafBrushNodes[clipMap->cModels[i].leaf.leafBrushNode];
@ -907,7 +907,7 @@ namespace Assets
}
}
*/
// This mustn't be null and has to have at least 1 'valid' entry.
if (!clipMap->smodelNodeCount || !clipMap->smodelNodes)
{
@ -927,7 +927,7 @@ namespace Assets
Utils::Stream::ClearPointer(&clipMap->dynEntCollList[i]);
}
if(!reader.end())
if (!reader.end())
{
Components::Logger::Error("Clipmap data left!");
}

View File

@ -10,7 +10,7 @@ namespace Assets
{
builder->loadAsset(Game::XAssetType::ASSET_TYPE_MATERIAL, asset->window.background);
}
// mark items
for (int i = 0; i < asset->itemCount; ++i)
{

View File

@ -78,7 +78,7 @@ namespace Assets
#define CHECK(x, type) (x.is_##type##() || x.is_null())
// TODO: actually support all of those properties
if (CHECK(type, string) && CHECK(subtitle, string) && CHECK(secondaryAliasName, string) && CHECK(chainAliasName, string) &&
if (CHECK(type, string) && CHECK(subtitle, string) && CHECK(secondaryAliasName, string) && CHECK(chainAliasName, string) &&
CHECK(soundFile, string) && CHECK(sequence, number) && CHECK(volMin, number) && CHECK(volMax, number) && CHECK(pitchMin, number) &&
CHECK(pitchMax, number) && CHECK(distMin, number) && CHECK(distMax, number) && CHECK(flags, number) && CHECK(slavePercentage, number) &&
CHECK(probability, number) && CHECK(lfePercentage, number) && CHECK(centerPercentage, number) && CHECK(startDelay, number) &&
@ -117,7 +117,7 @@ namespace Assets
alias->envelopMin = float(envelopMin.number_value());
alias->envelopMax = float(envelopMax.number_value());
alias->envelopPercentage = float(envelopPercentage.number_value());
if (volumeFalloffCurve.is_string())
{
alias->volumeFalloffCurve = Components::AssetHandler::FindAssetForZone(Game::XAssetType::ASSET_TYPE_SOUND_CURVE, volumeFalloffCurve.string_value(), builder).sndCurve;
@ -148,7 +148,7 @@ namespace Assets
}
#undef CHECK
}
void Isnd_alias_list_t::mark(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder)

View File

@ -183,7 +183,7 @@ namespace Components
Bans::Bans()
{
Command::Add("banclient", [] (Command::Params* params)
Command::Add("banclient", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -194,7 +194,7 @@ namespace Components
});
// Verify the list on startup
Scheduler::Once([] ()
Scheduler::Once([]()
{
Bans::BanList list;
Bans::LoadBans(&list);

View File

@ -20,14 +20,14 @@ namespace Components
{
returnResult += 0xFE000000;
}
else
else
{
for (auto clientNum = 0; clientNum < 18; clientNum++)
{
CClient* c = GetClientByIndex(clientNum);
if (c != nullptr)
if (c != nullptr)
{
if (!strcmp(data->name, c->Name))
if (!strcmp(data->name, c->Name))
{
// Since a 4 byte integer is overkill for a row num: We can use it to store the customprefix + clientNum and use a 2 byte integer for the row number
returnResult += 0xFF000000;
@ -43,7 +43,7 @@ namespace Components
void __declspec(naked) CardTitles::GetPlayerCardClientInfoStub()
{
__asm
__asm
{
push eax
pushad
@ -59,7 +59,7 @@ namespace Components
pop esi
pop ebp
mov[ebx + 4], eax
mov [ebx + 4], eax
pop ebx
push 62EB2Ch
@ -69,8 +69,8 @@ namespace Components
const char* CardTitles::TableLookupByRowHook(Game::Operand* operand, tablelookuprequest_s* request)
{
std::uint8_t prefix = (request->tableRow >> (8 * 3)) & 0xFF;
std::uint8_t data = (request->tableRow >> (8 * 2)) & 0xFF;
std::uint8_t prefix = (request->tableRow >> (8 * 3)) & 0xFF;
std::uint8_t data = (request->tableRow >> (8 * 2)) & 0xFF;
if (data >= ARRAYSIZE(CardTitles::CustomTitles)) return nullptr;
@ -121,7 +121,7 @@ namespace Components
__declspec(naked) void CardTitles::TableLookupByRowHookStub()
{
__asm
__asm
{
push eax
pushad
@ -153,7 +153,7 @@ namespace Components
}
}
void CardTitles::SendCustomTitlesToClients()
void CardTitles::SendCustomTitlesToClients()
{
std::string list;
@ -177,7 +177,7 @@ namespace Components
Game::SV_GameSendServerCommand(-1, 0, command.data());
}
void CardTitles::ParseCustomTitles(const char* msg)
void CardTitles::ParseCustomTitles(const char* msg)
{
for (int i = 0; i < 18; ++i)
{
@ -210,7 +210,7 @@ namespace Components
});
for(int i = 0; i < ARRAYSIZE(CardTitles::CustomTitles); ++i)
for (int i = 0; i < ARRAYSIZE(CardTitles::CustomTitles); ++i)
{
CardTitles::CustomTitles[i].clear();
}

View File

@ -57,7 +57,7 @@ namespace Components
UIFeeder::Add(62.0f, Changelog::GetChangelogCount, Changelog::GetChangelogText, Changelog::SelectChangelog);
#if !defined(DEBUG) && !defined(DISABLE_ANTICHEAT)
Scheduler::OnFrame(AntiCheat::QuickCodeScanner_1);
Scheduler::OnFrame(AntiCheat::QuickCodeScanner1);
#endif
}

View File

@ -2,20 +2,20 @@
namespace Components
{
std::string Clantags::Tags[18];
std::string ClanTags::Tags[18];
void Clantags::ParseClantags(const char* infoString)
void ClanTags::ParseClantags(const char* infoString)
{
for (int i = 0; i < 18; i++)
{
const char* clantag = Game::Info_ValueForKey(infoString, std::to_string(i).data());
if (clantag) Clantags::Tags[i] = clantag;
else Clantags::Tags[i].clear();
if (clantag) ClanTags::Tags[i] = clantag;
else ClanTags::Tags[i].clear();
}
}
void Clantags::SendClantagsToClients()
void ClanTags::SendClantagsToClients()
{
std::string list;
@ -35,18 +35,18 @@ namespace Components
Game::SV_GameSendServerCommand(-1, 0, command.data());
}
const char* Clantags::GetUserClantag(std::uint32_t /*clientnum*/, const char* playername)
const char* ClanTags::GetUserClantag(std::uint32_t /*clientnum*/, const char* playername)
{
#if 0
if (Clantags::Tags[clientnum].empty()) return playername;
return Utils::String::VA("[%s] %s", Clantags::Tags[clientnum].data(), playername);
if (ClanTags::Tags[clientnum].empty()) return playername;
return Utils::String::VA("[%s] %s", ClanTags::Tags[clientnum].data(), playername);
#else
return playername;
#endif
}
__declspec(naked) void Clantags::DrawPlayerNameOnScoreboard()
__declspec(naked) void ClanTags::DrawPlayerNameOnScoreboard()
{
__asm
{
@ -70,7 +70,7 @@ namespace Components
}
}
Clantags::Clantags()
ClanTags::ClanTags()
{
// Create clantag dvar
Dvar::OnInit([]()
@ -85,7 +85,7 @@ namespace Components
{
if (params->length() == 3)
{
Clantags::ParseClantags(params->get(2));
ClanTags::ParseClantags(params->get(2));
return true;
}
}
@ -93,20 +93,20 @@ namespace Components
return false;
});
for (int i = 0; i < ARRAYSIZE(Clantags::Tags); ++i)
for (int i = 0; i < ARRAYSIZE(ClanTags::Tags); ++i)
{
Clantags::Tags[i].clear();
ClanTags::Tags[i].clear();
}
// Draw clantag before playername
Utils::Hook(0x591242, Clantags::DrawPlayerNameOnScoreboard).install()->quick();
Utils::Hook(0x591242, ClanTags::DrawPlayerNameOnScoreboard).install()->quick();
}
Clantags::~Clantags()
ClanTags::~ClanTags()
{
for (int i = 0; i < ARRAYSIZE(Clantags::Tags); ++i)
for (int i = 0; i < ARRAYSIZE(ClanTags::Tags); ++i)
{
Clantags::Tags[i].clear();
ClanTags::Tags[i].clear();
}
}
}

View File

@ -2,18 +2,18 @@
namespace Components
{
class Clantags : public Component
class ClanTags : public Component
{
public:
static void ParseClantags(const char * infoString);
static void SendClantagsToClients();
static const char* GetUserClantag(std::uint32_t clientnum, const char * playername);
Clantags();
~Clantags();
ClanTags();
~ClanTags();
private:
static std::string Clantags::Tags[18];
static std::string ClanTags::Tags[18];
static void DrawPlayerNameOnScoreboard();

View File

@ -109,7 +109,7 @@ namespace Components
Game::CL_GetClientName(localClientNum, index, buf, size);
// Append clantag to username & remove the colors
strncpy_s(buf, size, Colors::Strip(Clantags::GetUserClantag(index, buf)).data(), size);
strncpy_s(buf, size, Colors::Strip(ClanTags::GetUserClantag(index, buf)).data(), size);
return buf;
}

View File

@ -163,7 +163,7 @@ namespace Components
// Disable native noclip command
Utils::Hook::Nop(0x474846, 5);
Command::Add("noclip", [] (Command::Params*)
Command::Add("noclip", [](Command::Params*)
{
int clientNum = Game::CG_GetClientNum();
if (!Game::CL_IsCgameInitialized() || clientNum >= 18 || clientNum < 0 || !Game::g_entities[clientNum].client)
@ -186,7 +186,7 @@ namespace Components
Toast::Show("cardicon_abduction", "Success", "Noclip toggled", 3000);
});
Command::Add("ufo", [] (Command::Params*)
Command::Add("ufo", [](Command::Params*)
{
int clientNum = Game::CG_GetClientNum();
if (!Game::CL_IsCgameInitialized() || clientNum >= 18 || clientNum < 0 || !Game::g_entities[clientNum].client)
@ -235,12 +235,12 @@ namespace Components
float pos[3] = { 0.0f, 0.0f, 0.0f };
float orientation[3] = { 0.0f, 0.0f, 0.0f };
pos[0] = strtof(params->get(1), nullptr);
pos[1] = strtof(params->get(2), nullptr);
pos[2] = strtof(params->get(3), nullptr);
if(params->length() == 6)
if (params->length() == 6)
{
orientation[0] = strtof(params->get(4), nullptr);
orientation[1] = strtof(params->get(5), nullptr);

View File

@ -207,7 +207,7 @@ namespace Components
if (Dedicated::IsEnabled()) return;
// IPC handler
IPCPipe::On("connect", [] (std::string data)
IPCPipe::On("connect", [](std::string data)
{
Command::Execute(Utils::String::VA("connect %s", data.data()), false);
});

View File

@ -75,7 +75,7 @@ namespace Components
wprintw(Console::InfoWindow, "%s : %d/%d players : map %s", hostname.data(), clientCount, maxclientCount, (mapname.size() ? mapname.data() : "none"));
wnoutrefresh(Console::InfoWindow);
}
else if(IsWindow(Console::GetWindow()) != FALSE)
else if (IsWindow(Console::GetWindow()) != FALSE)
{
SetWindowTextA(Console::GetWindow(), Utils::String::VA("IW4x(" VERSION ") : %s", hostname.data()));
}
@ -603,7 +603,7 @@ namespace Components
// Redirect input (]command)
Utils::Hook(0x47025A, 0x4F5770, HOOK_CALL).install()->quick();
Utils::Hook(0x60BB68, [] ()
Utils::Hook(0x60BB68, []()
{
Console::ShowAsyncConsole();
}, HOOK_CALL).install()->quick();
@ -621,7 +621,7 @@ namespace Components
}
}, HOOK_CALL).install()->quick();
Scheduler::OnFrame([] ()
Scheduler::OnFrame([]()
{
Console::LastRefresh = Game::Sys_Milliseconds();
});

View File

@ -503,7 +503,7 @@ namespace Components
}
else
{
for(int i = 0; i < ARRAYSIZE(Dedicated::PlayerGuids); ++i)
for (int i = 0; i < ARRAYSIZE(Dedicated::PlayerGuids); ++i)
{
Dedicated::PlayerGuids[i][0].bits = 0;
Dedicated::PlayerGuids[i][1].bits = 0;
@ -529,11 +529,11 @@ namespace Components
Scheduler::OnFrame([]()
{
if(Dvar::Var("sv_running").get<bool>())
if (Dvar::Var("sv_running").get<bool>())
{
static Utils::Time::Interval interval;
if(interval.elapsed(15s))
if (interval.elapsed(15s))
{
interval.update();
Dedicated::TransmitGuids();

View File

@ -46,7 +46,7 @@ namespace Components
}
});
Network::Handle("discovery", [] (Network::Address address, std::string data)
Network::Handle("discovery", [](Network::Address address, std::string data)
{
if (address.isSelf()) return;
@ -60,7 +60,7 @@ namespace Components
Network::SendCommand(address, "discoveryResponse", data);
});
Network::Handle("discoveryResponse", [] (Network::Address address, std::string data)
Network::Handle("discoveryResponse", [](Network::Address address, std::string data)
{
if (address.isSelf()) return;
@ -87,7 +87,7 @@ namespace Components
// This is placed here in case the anticheat has been disabled!
// Make sure this is called after the memory scan!
#if !defined(DEBUG) && !defined(DISABLE_ANTICHEAT)
Utils::Hook(0x5ACB9E, [] () // Somewhere in the renderer, past the scan check
Utils::Hook(0x5ACB9E, []() // Somewhere in the renderer, past the scan check
{
AntiCheat::ScanIntegrityCheck();
return Utils::Hook::Call<void()>(0x4AA720)();

View File

@ -303,7 +303,7 @@ namespace Components
download->thread.detach();
download->clear();
if(download->isMap)
if (download->isMap)
{
Scheduler::Once([]()
{
@ -381,7 +381,7 @@ namespace Components
static json11::Json jsonList;
std::string mapname = Maps::GetUserMap()->getName();
if(!Maps::GetUserMap()->isValid())
if (!Maps::GetUserMap()->isValid())
{
mapnamePre.clear();
jsonList = std::vector<json11::Json>();
@ -514,14 +514,14 @@ namespace Components
bool isValidFile = false;
for (int i = 0; i < ARRAYSIZE(Maps::UserMapFiles); ++i)
{
if(url == (mapname + Maps::UserMapFiles[i]))
if (url == (mapname + Maps::UserMapFiles[i]))
{
isValidFile = true;
break;
}
}
if(!Maps::GetUserMap()->isValid() || !isValidFile)
if (!Maps::GetUserMap()->isValid() || !isValidFile)
{
Download::Forbid(nc);
return;
@ -710,7 +710,7 @@ namespace Components
ZeroMemory(&Download::Mgr, sizeof Download::Mgr);
mg_mgr_init(&Download::Mgr, nullptr);
Network::OnStart([] ()
Network::OnStart([]()
{
mg_connection* nc = mg_bind(&Download::Mgr, Utils::String::VA("%hu", Network::GetPort()), Download::EventHandler);
@ -719,7 +719,7 @@ namespace Components
// Handle special requests
mg_register_http_endpoint(nc, "/info", Download::InfoHandler);
mg_register_http_endpoint(nc, "/list", Download::ListHandler);
mg_register_http_endpoint(nc, "/map", Download::MapHandler);
mg_register_http_endpoint(nc, "/map", Download::MapHandler);
mg_register_http_endpoint(nc, "/file/", Download::FileHandler);
mg_set_protocol_http_websocket(nc);
@ -748,7 +748,7 @@ namespace Components
Dvar::Register<const char*>("ui_dl_transRate", "", Game::dvar_flag::DVAR_FLAG_NONE, "");
});
UIScript::Add("mod_download_cancel", [] (UIScript::Token)
UIScript::Add("mod_download_cancel", [](UIScript::Token)
{
Download::CLDownload.clear();
});
@ -758,11 +758,11 @@ namespace Components
{
int workingCount = 0;
for(auto i = Download::ScriptDownloads.begin(); i != Download::ScriptDownloads.end();)
for (auto i = Download::ScriptDownloads.begin(); i != Download::ScriptDownloads.end();)
{
auto download = *i;
if(download->isDone())
if (download->isDone())
{
download->notifyDone();
i = Download::ScriptDownloads.erase(i);
@ -778,10 +778,10 @@ namespace Components
++i;
}
for(auto& download : Download::ScriptDownloads)
for (auto& download : Download::ScriptDownloads)
{
if (workingCount > 5) break;
if(!download->isWorking())
if (!download->isWorking())
{
download->startWorking();
++workingCount;

View File

@ -99,7 +99,7 @@ namespace Components
this->object = 0;
}
if(this->workerThread.joinable())
if (this->workerThread.joinable())
{
this->workerThread.join();
}
@ -109,7 +109,7 @@ namespace Components
void startWorking()
{
if(!this->isWorking())
if (!this->isWorking())
{
this->workerThread = std::thread(std::bind(&ScriptDownload::handler, this));
}
@ -161,7 +161,7 @@ namespace Components
void cancel()
{
if(this->webIO)
if (this->webIO)
{
this->webIO->cancelDownload();
}

View File

@ -142,7 +142,7 @@ namespace Components
Dvar::RegistrationSignal();
// Name watcher
Scheduler::OnFrame([] ()
Scheduler::OnFrame([]()
{
static std::string lastValidName = "Unknown Soldier";
std::string name = Dvar::Var("name").get<char*>();

View File

@ -8,7 +8,7 @@ namespace Components
class Flag
{
public:
Flag(Game::dvar_flag flag) : val(flag){};
Flag(Game::dvar_flag flag) : val(flag) {};
Flag(int flag) : Flag(static_cast<Game::dvar_flag>(flag)) {};
Game::dvar_flag val;

View File

@ -25,7 +25,7 @@ namespace Components
{
FreeConsole();
if(IsWindow(Console::GetWindow()) != FALSE)
if (IsWindow(Console::GetWindow()) != FALSE)
{
CloseWindow(Console::GetWindow());
DestroyWindow(Console::GetWindow());
@ -81,10 +81,10 @@ namespace Components
bool doFullDump = Flags::HasFlag("bigdumps") || Flags::HasFlag("reallybigdumps");
/*if (!doFullDump)
{
if (MessageBoxA(nullptr,
if (MessageBoxA(nullptr,
Utils::String::VA("%s\n\n" // errorStr
"Would you like to create a full crash dump for the developers (this can be 100mb or more)?\nNo will create small dumps that are automatically uploaded.", errorStr),
"IW4x Error!", MB_YESNO | MB_ICONERROR) == IDYES)
"IW4x Error!", MB_YESNO | MB_ICONERROR) == IDYES)
{
doFullDump = true;
}
@ -217,7 +217,7 @@ namespace Components
Command::Execute(command, false);
});
Command::Add("debug_exceptionhandler", [] (Command::Params*)
Command::Add("debug_exceptionhandler", [](Command::Params*)
{
Logger::Print("Rerunning SetUnhandledExceptionHandler...\n");
auto oldHandler = Exception::Hook();
@ -272,7 +272,7 @@ namespace Components
#pragma warning(pop)
// Check if folder exists && crash-helper exists
if (Utils::IO::DirectoryExists("minidumps\\") && Utils::IO::FileExists("crash-helper.exe"))
{
if (!Utils::IO::DirectoryIsEmpty("minidumps\\"))

View File

@ -234,17 +234,17 @@ namespace Components
{
const char* dir = Dvar::Var("fs_basepath").get<const char*>();
std::vector<std::string> paths;
std::vector<std::string> paths;
std::string modDir = Dvar::Var("fs_game").get<std::string>();
if ((file == "mod"s || file == "mod.ff"s) && !modDir.empty())
{
paths.push_back(Utils::String::VA("%s\\", modDir.data()));
}
if(Utils::String::StartsWith(file, "mp_"))
if (Utils::String::StartsWith(file, "mp_"))
{
std::string zone = file;
if(Utils::String::EndsWith(zone, ".ff"))
if (Utils::String::EndsWith(zone, ".ff"))
{
Utils::String::Replace(zone, ".ff", "");
}
@ -256,14 +256,14 @@ namespace Components
Utils::String::Replace(zone, "_load", "");
}
if(Utils::IO::FileExists(Utils::String::VA("usermaps\\%s\\%s.ff", zone.data(), filename.data())))
if (Utils::IO::FileExists(Utils::String::VA("usermaps\\%s\\%s.ff", zone.data(), filename.data())))
{
return Utils::String::VA("usermaps\\%s\\", zone.data());
}
}
Utils::Merge(&paths, FastFiles::ZonePaths);
for (auto &path : paths)
{
std::string absoluteFile = Utils::String::VA("%s\\%s%s", dir, path.data(), file);
@ -458,9 +458,9 @@ namespace Components
{
FastFiles::ReadXFile(buffer, size);
if(FastFiles::IsIW4xZone)
if (FastFiles::IsIW4xZone)
{
for(int i = 0; i < size; ++i)
for (int i = 0; i < size; ++i)
{
buffer[i] ^= FastFiles::LastByteRead;
Utils::RotLeft(buffer[i], 4);
@ -564,14 +564,14 @@ namespace Components
FastFiles::AddZonePath("zone\\patch\\");
FastFiles::AddZonePath("zone\\dlc\\");
Scheduler::OnFrame([] ()
Scheduler::OnFrame([]()
{
if (FastFiles::Current().empty() || !Dvar::Var("ui_zoneDebug").get<bool>()) return;
Game::Font* font = Game::R_RegisterFont("fonts/consoleFont", 0);
float color[4] = { 1.0f, 1.0f, 1.0f, (Game::CL_IsCgameInitialized() ? 0.3f : 1.0f) };
std::uint32_t FFTotalSize = *reinterpret_cast<std::uint32_t*>(0x10AA5D8);
std::uint32_t FFTotalSize = *reinterpret_cast<std::uint32_t*>(0x10AA5D8);
std::uint32_t FFCurrentOffset = *reinterpret_cast<std::uint32_t*>(0x10AA608);
float fastfileLoadProgress = (float(FFCurrentOffset) / float(FFTotalSize)) * 100.0f;
@ -587,7 +587,7 @@ namespace Components
Game::R_AddCmdDrawText(Utils::String::VA("Loading FastFile: %s [%0.1f%%]", FastFiles::Current().data(), fastfileLoadProgress), 0x7FFFFFFF, font, 5.0f, static_cast<float>(Renderer::Height() - 5), 1.0f, 1.0f, 0.0f, color, Game::ITEM_TEXTSTYLE_NORMAL);
}, true);
Command::Add("loadzone", [] (Command::Params* params)
Command::Add("loadzone", [](Command::Params* params)
{
if (params->length() < 2) return;

View File

@ -253,7 +253,7 @@ namespace Components
{
bool result = !File(execFilename).exists();
if(execFilename =="mp/stats_init.cfg"s)
if (execFilename == "mp/stats_init.cfg"s)
{
OutputDebugStringA("");
}

View File

@ -104,7 +104,7 @@ namespace Components
call FrameTime::ComFrameWait
add esp, 4
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax
mov ecx, eax

View File

@ -21,7 +21,7 @@ namespace Components
void Friends::SortList(bool force)
{
if(!force)
if (!force)
{
Friends::TriggerSort = true;
return;
@ -35,10 +35,10 @@ namespace Components
std::vector<Friends::Friend> offlineList;
// Split up the list
for(auto entry : Friends::FriendsList)
for (auto entry : Friends::FriendsList)
{
if(!entry.online) offlineList.push_back(entry);
else if(!Friends::IsOnline(entry.lastTime)) onlineList.push_back(entry);
if (!entry.online) offlineList.push_back(entry);
else if (!Friends::IsOnline(entry.lastTime)) onlineList.push_back(entry);
else if (entry.server.getType() == Game::NA_BAD) playingList.push_back(entry);
else connectedList.push_back(entry);
}
@ -126,7 +126,7 @@ namespace Components
{
if (Dvar::Var("cl_anonymous").get<bool>() || !Steam::Enabled()) return;
if(force)
if (force)
{
if (Steam::Proxy::ClientFriends && Steam::Proxy::SteamFriends)
{
@ -144,9 +144,9 @@ namespace Components
{
std::lock_guard<std::recursive_mutex> _(Friends::Mutex);
for(auto& entry : Friends::FriendsList)
for (auto& entry : Friends::FriendsList)
{
if(entry.server == server)
if (entry.server == server)
{
entry.serverName = hostname;
entry.mapname = mapname;
@ -164,9 +164,9 @@ namespace Components
{
std::vector<int> ids;
auto addId = [&](int id)
const auto addId = [&](int id)
{
if(std::find(ids.begin(), ids.end(), id) == ids.end())
if (std::find(ids.begin(), ids.end(), id) == ids.end())
{
ids.push_back(id);
}
@ -182,18 +182,17 @@ namespace Components
addId(Steam::Proxy::SteamUtils->GetAppID());
}
if(Steam::Proxy::SteamFriends)
if (Steam::Proxy::SteamFriends)
{
std::lock_guard<std::recursive_mutex> _(Friends::Mutex);
char* mod = "IW4x";
unsigned int modId = *reinterpret_cast<unsigned int*>(mod) | 0x80000000;
const unsigned int modId = *reinterpret_cast<unsigned int*>("IW4x") | 0x80000000;
// Split up the list
for (auto entry : Friends::FriendsList)
{
Steam::FriendGameInfo info;
if(Steam::Proxy::SteamFriends->GetFriendGamePlayed(entry.userId, &info) && info.m_gameID.modID == modId)
if (Steam::Proxy::SteamFriends->GetFriendGamePlayed(entry.userId, &info) && info.m_gameID.modID == modId)
{
addId(info.m_gameID.appID);
}
@ -237,7 +236,7 @@ namespace Components
void Friends::RequestPresence(SteamID user)
{
if(Steam::Proxy::ClientFriends)
if (Steam::Proxy::ClientFriends)
{
Steam::Proxy::ClientFriends.invoke<void>("RequestFriendRichPresence", Friends::GetGame(user), user);
}
@ -289,7 +288,7 @@ namespace Components
int prestige = Game::Live_GetPrestige(0);
int level = (experience & 0xFFFFFF) | ((prestige & 0xFF) << 24);
if(!levelVal.has_value() || levelVal.value() != level)
if (!levelVal.has_value() || levelVal.value() != level)
{
levelVal.emplace(level);
@ -328,9 +327,9 @@ namespace Components
entry.experience = 0;
entry.server.setType(Game::NA_BAD);
for(auto storedFriend : list.friends())
for (auto storedFriend : list.friends())
{
if(entry.userId.bits == strtoull(storedFriend.steamid().data(), nullptr, 16))
if (entry.userId.bits == strtoull(storedFriend.steamid().data(), nullptr, 16))
{
entry.playerName = storedFriend.name();
entry.experience = storedFriend.experience();
@ -351,7 +350,7 @@ namespace Components
steamFriends.push_back(entry);
}
for(auto i = Friends::FriendsList.begin(); i != Friends::FriendsList.end();)
for (auto i = Friends::FriendsList.begin(); i != Friends::FriendsList.end();)
{
SteamID id = i->userId;
@ -360,7 +359,7 @@ namespace Components
return (entry.userId.bits == id.bits);
});
if(oldEntry == steamFriends.end())
if (oldEntry == steamFriends.end())
{
i = Friends::FriendsList.erase(i);
}
@ -387,7 +386,7 @@ namespace Components
auto user = Friends::FriendsList[index];
switch(column)
switch (column)
{
case 0:
{
@ -431,7 +430,7 @@ namespace Components
}
}
case 2:
{
{
if (!user.online) return "Offline";
if (!Friends::IsOnline(user.lastTime)) return "Online";
if (user.server.getType() == Game::NA_BAD) return "Playing IW4x";
@ -469,9 +468,9 @@ namespace Components
void Friends::AddFriend(SteamID user)
{
if(Steam::Proxy::ClientFriends && Steam::Proxy::SteamFriends)
if (Steam::Proxy::ClientFriends && Steam::Proxy::SteamFriends)
{
if(Steam::Proxy::ClientFriends.invoke<bool>("AddFriend", user))
if (Steam::Proxy::ClientFriends.invoke<bool>("AddFriend", user))
{
Toast::Show("cardicon_joystick", Steam::Proxy::SteamFriends->GetFriendPersonaName(user), "friend request sent", 3000);
}
@ -517,7 +516,7 @@ namespace Components
if (!Friends::LoggedOn) return;
Proto::Friends::List list;
for(auto entry : Friends::FriendsList)
for (auto entry : Friends::FriendsList)
{
Proto::Friends::Friend* friendEntry = list.add_friends();
@ -622,7 +621,7 @@ namespace Components
auto& user = Friends::FriendsList[Friends::CurrentFriend];
if(user.online && user.server.getType() != Game::NA_BAD)
if (user.online && user.server.getType() != Game::NA_BAD)
{
Party::Connect(user.server);
}
@ -650,18 +649,18 @@ namespace Components
Friends::UpdateState();
}
if(stateInterval.elapsed(5s))
if (stateInterval.elapsed(5s))
{
stateInterval.update();
if(Friends::TriggerUpdate)
if (Friends::TriggerUpdate)
{
Friends::TriggerUpdate = false;
Friends::UpdateState(true);
}
}
if(sortInterval.elapsed(1s))
if (sortInterval.elapsed(1s))
{
sortInterval.update();
@ -687,7 +686,7 @@ namespace Components
}
#endif
if(Steam::Proxy::ClientFriends)
if (Steam::Proxy::ClientFriends)
{
Steam::Proxy::ClientFriends.invoke<void>("SetPersonaState", Friends::InitialState);
}
@ -700,7 +699,7 @@ namespace Components
Friends::InitialState = Steam::Proxy::SteamFriends->GetPersonaState();
}
if(Dvar::Var("cl_anonymous").get<bool>() || !Steam::Enabled())
if (Dvar::Var("cl_anonymous").get<bool>() || !Steam::Enabled())
{
if (Steam::Proxy::ClientFriends)
{
@ -710,7 +709,7 @@ namespace Components
}
}
if(Steam::Proxy::SteamFriends)
if (Steam::Proxy::SteamFriends)
{
Steam::Proxy::SteamFriends->ClearRichPresence();
}

View File

@ -32,7 +32,7 @@ namespace Components
{
std::vector<std::string> gametypes;
auto pushGametype = [&] (std::string gametype)
auto pushGametype = [&](std::string gametype)
{
auto pos = gametype.find_last_of("/\\");
if (pos != std::string::npos)
@ -58,7 +58,7 @@ namespace Components
std::vector<std::string> rawGametypes = FileSystem::GetFileList("maps/mp/gametypes/", "txt");
// Get the gametypes we can find in the database
Game::DB_EnumXAssets(Game::XAssetType::ASSET_TYPE_RAWFILE, [] (Game::XAssetHeader header, void* data)
Game::DB_EnumXAssets(Game::XAssetType::ASSET_TYPE_RAWFILE, [](Game::XAssetHeader header, void* data)
{
std::string name = header.rawfile->name;
std::vector<std::string>* rawGametypes = reinterpret_cast<std::vector<std::string>*>(data);
@ -102,7 +102,7 @@ namespace Components
// This is placed here in case the anticheat has been disabled!
// Make sure this is called after every onther anticheat check!
#if !defined(DEBUG) && !defined(DISABLE_ANTICHEAT)
Utils::Hook(0x5ACBA3, [] () // Somewhere in the renderer, past other renderer hooks!
Utils::Hook(0x5ACBA3, []() // Somewhere in the renderer, past other renderer hooks!
{
AntiCheat::FlagIntegrityCheck();
return Utils::Hook::Call<void()>(0x50AB20)();

View File

@ -216,19 +216,19 @@ namespace Components
IPCPipe::ClientPipe.connect(IPC_PIPE_NAME_SERVER);
}
IPCPipe::On("ping", [] (std::string data)
IPCPipe::On("ping", [](std::string data)
{
Logger::Print("Received ping form pipe, sending pong!\n");
IPCPipe::Write("pong", data);
});
IPCPipe::On("pong", [] (std::string data)
IPCPipe::On("pong", [](std::string data)
{
Logger::Print("Received pong form pipe!\n");
});
// Test pipe functionality by sending pings
Command::Add("ipcping", [] (Command::Params*)
Command::Add("ipcping", [](Command::Params*)
{
Logger::Print("Sending ping to pipe!\n");
IPCPipe::Write("ping", "");

View File

@ -83,7 +83,7 @@ namespace Components
if (Localization::TempLocalizeMap.find(key) != Localization::TempLocalizeMap.end())
{
Game::LocalizeEntry* entry = Localization::TempLocalizeMap[key];
if(entry->value) allocator->free(entry->value);
if (entry->value) allocator->free(entry->value);
entry->value = allocator->duplicateString(value);
}
else
@ -239,7 +239,7 @@ namespace Components
{
Localization::SetCredits();
AssetHandler::OnFind(Game::XAssetType::ASSET_TYPE_LOCALIZE_ENTRY, [] (Game::XAssetType, std::string filename)
AssetHandler::OnFind(Game::XAssetType::ASSET_TYPE_LOCALIZE_ENTRY, [](Game::XAssetType, std::string filename)
{
Game::XAssetHeader header = { nullptr };
std::lock_guard<std::recursive_mutex> _(Localization::LocalizeMutex);
@ -272,9 +272,9 @@ namespace Components
{
if (type != Game::XAssetType::ASSET_TYPE_LOCALIZE_ENTRY) return;
if(name == "CLASS_SLOT1"s)
if (name == "CLASS_SLOT1"s)
{
for(int i = 11; i <= NUM_CUSTOM_CLASSES; ++i)
for (int i = 11; i <= NUM_CUSTOM_CLASSES; ++i)
{
std::string key = Utils::String::VA("CLASS_SLOT%i", i);

View File

@ -257,9 +257,9 @@ namespace Components
Utils::Hook(Game::Com_Printf, Logger::PrintStub, HOOK_JUMP).install()->quick();
}
Dvar::OnInit([] ()
Dvar::OnInit([]()
{
Command::AddSV("log_add", [] (Command::Params* params)
Command::AddSV("log_add", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -271,7 +271,7 @@ namespace Components
}
});
Command::AddSV("log_del", [] (Command::Params* params)
Command::AddSV("log_del", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -299,7 +299,7 @@ namespace Components
}
});
Command::AddSV("log_list", [] (Command::Params*)
Command::AddSV("log_list", [](Command::Params*)
{
Logger::Print("# ID: Address\n");
Logger::Print("-------------\n");
@ -310,7 +310,7 @@ namespace Components
}
});
Command::AddSV("g_log_add", [] (Command::Params* params)
Command::AddSV("g_log_add", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -322,7 +322,7 @@ namespace Components
}
});
Command::AddSV("g_log_del", [] (Command::Params* params)
Command::AddSV("g_log_del", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -350,7 +350,7 @@ namespace Components
}
});
Command::AddSV("g_log_list", [] (Command::Params*)
Command::AddSV("g_log_list", [](Command::Params*)
{
Logger::Print("# ID: Address\n");
Logger::Print("-------------\n");

View File

@ -481,7 +481,7 @@ namespace Components
call Maps::TriggerReconnectForMap
add esp, 8h
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax
@ -878,7 +878,7 @@ namespace Components
pushad
call Maps::GetSpecularDvar
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax
@ -894,7 +894,7 @@ namespace Components
pushad
call Maps::GetSpecularDvar
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop edx

View File

@ -29,7 +29,7 @@ namespace Components
{
bool wasValid = this->isValid();
this->mapname.clear();
if(wasValid) Game::UI_UpdateArenas();
if (wasValid) Game::UI_UpdateArenas();
}
void loadIwd();

View File

@ -21,9 +21,9 @@ namespace Components
material->textureAtlasColumnCount = 1;
material->textureAtlasRowCount = 1;
for(int i = 0; i < 48; ++i)
for (int i = 0; i < 48; ++i)
{
if(i != 4) material->stateBitsEntry[i] = -1;
if (i != 4) material->stateBitsEntry[i] = -1;
}
material->stateFlags = 3;
@ -37,7 +37,7 @@ namespace Components
material->textureTable->info.image = image;
Game::Material* cursor = Game::DB_FindXAssetHeader(Game::ASSET_TYPE_MATERIAL, "ui_cursor").material;
if(cursor)
if (cursor)
{
material->stateBitTable = cursor->stateBitTable;
material->stateBitsCount = cursor->stateBitsCount;
@ -105,7 +105,7 @@ namespace Components
Utils::Merge(&materials, Materials::MaterialTable);
Materials::MaterialTable.clear();
for(auto& material : materials)
for (auto& material : materials)
{
Materials::Delete(material);
}
@ -124,7 +124,7 @@ namespace Components
{
if (!material || !material->textureCount || !material->textureTable) return false;
for(char i = 0; i < material->textureCount; ++i)
for (char i = 0; i < material->textureCount; ++i)
{
if (!material->textureTable[i].info.image || !material->textureTable[i].info.image->map)
{
@ -191,7 +191,7 @@ namespace Components
call Materials::ResolveMaterial
add esp, 4h
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax
@ -229,7 +229,7 @@ namespace Components
call Materials::WriteDeathMessageIcon
add esp, 0Ch
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax

View File

@ -259,7 +259,7 @@ namespace Components
newList->menuCount = menus.size();
// Copy new menus
for(unsigned int i = 0; i < menus.size(); ++i)
for (unsigned int i = 0; i < menus.size(); ++i)
{
newList->menus[i] = menus[i].second;
}
@ -334,9 +334,9 @@ namespace Components
for (auto menu : Menus::CustomMenus)
{
bool hasMenu = false;
for(auto &loadedMenu : menus)
for (auto &loadedMenu : menus)
{
if(loadedMenu.second->window.name == menu)
if (loadedMenu.second->window.name == menu)
{
hasMenu = true;
break;
@ -465,7 +465,7 @@ namespace Components
void Menus::RemoveMenu(std::string menu)
{
auto i = Menus::MenuList.find(menu);
if(i != Menus::MenuList.end())
if (i != Menus::MenuList.end())
{
if (i->second) Menus::FreeMenu(i->second);
i = Menus::MenuList.erase(i);
@ -599,7 +599,7 @@ namespace Components
Menus::RemoveMenuList(filename);
}
if(Utils::String::EndsWith(filename, ".menu"))
if (Utils::String::EndsWith(filename, ".menu"))
{
if (FileSystem::File(filename).exists())
{
@ -726,7 +726,7 @@ namespace Components
//make Com_Error and similar go back to main_text instead of menu_xboxlive.
Utils::Hook::SetString(0x6FC790, "main_text");
Command::Add("openmenu", [] (Command::Params* params)
Command::Add("openmenu", [](Command::Params* params)
{
if (params->length() != 2)
{
@ -743,7 +743,7 @@ namespace Components
Game::Menus_OpenByName(Game::uiContext, params->get(1));
});
Command::Add("reloadmenus", [] (Command::Params*)
Command::Add("reloadmenus", [](Command::Params*)
{
// Close all menus
Game::Menus_CloseAll(Game::uiContext);
@ -767,10 +767,10 @@ namespace Components
});
#if !defined(DEBUG) && !defined(DISABLE_ANTICHEAT)
Scheduler::OnFrame(AntiCheat::QuickCodeScanner_2);
Scheduler::OnFrame(AntiCheat::QuickCodeScanner2);
#endif
Command::Add("mp_QuickMessage", [] (Command::Params*)
Command::Add("mp_QuickMessage", [](Command::Params*)
{
Command::Execute("openmenu quickmessage");
});

View File

@ -160,8 +160,8 @@ namespace Components
Game::XModelSurfs* newSurfs = ModelSurfs::LoadXModelSurfaces(surfs->name);
if (!newSurfs) continue;
surfs->surfaces = newSurfs->surfaces;
surfs->numSurfaces = newSurfs->numSurfaces;
surfs->surfaces = newSurfs->surfaces;
surfs->numSurfaces = newSurfs->numSurfaces;
model->lodInfo[i].surfs = newSurfs->surfaces;
std::memcpy(&model->lodInfo[i].partBits, &newSurfs->partBits, 24);
@ -194,7 +194,7 @@ namespace Components
auto buffer = ModelSurfs::BufferMap.find(surface->triIndices);
if (buffer != ModelSurfs::BufferMap.end())
{
if(buffer->second) buffer->second->Release();
if (buffer->second) buffer->second->Release();
ModelSurfs::BufferMap.erase(buffer);
}
@ -235,7 +235,7 @@ namespace Components
void ModelSurfs::EndRecover()
{
Game::DB_EnumXAssets_Internal(Game::XAssetType::ASSET_TYPE_XMODELSURFS, [] (Game::XAssetHeader header, void* /*userdata*/)
Game::DB_EnumXAssets_Internal(Game::XAssetType::ASSET_TYPE_XMODELSURFS, [](Game::XAssetHeader header, void* /*userdata*/)
{
ModelSurfs::CreateBuffers(header.surfaces);
}, nullptr, false);

View File

@ -29,7 +29,7 @@ namespace Components
Game::NET_Init();
Utils::Time::Interval interval;
while(!interval.elapsed(15s))
while (!interval.elapsed(15s))
{
Utils::Hook::Call<void()>(0x49F0B0)(); // Com_ClientPacketEvent
Node::FrameHandler();
@ -48,7 +48,7 @@ namespace Components
int servers = list->size();
int players = 0;
for(unsigned int i = 0; i < list->size(); ++i)
for (unsigned int i = 0; i < list->size(); ++i)
{
players += list->at(i).clients;
}

View File

@ -375,7 +375,7 @@ namespace Components
// Install packet deploy hook
Utils::Hook::RedirectJump(0x5AA713, Network::DeployPacketStub);
Network::Handle("resolveAddress", [] (Address address, std::string data)
Network::Handle("resolveAddress", [](Address address, std::string data)
{
Network::SendRaw(address, address.getString());
});

View File

@ -66,7 +66,7 @@ namespace Components
if (News::UpdaterHash.empty() || updateInterval.elapsed(15min)) // Check for updater Update every 15 mins max
{
updateInterval.update();
std::string data = Utils::Cache::GetFile("/json/updater"); // {"updater.exe":{"SHA1":"*HASH*"}}
std::string error;
@ -224,12 +224,12 @@ namespace Components
Utils::Hook::Nop(0x6388BB, 2); // skip the "if (item->text[0] == '@')" localize check
Utils::Hook(0x6388C1, News::GetNewsText, HOOK_CALL).install()->quick();
Command::Add("checkforupdate", [] (Command::Params*)
Command::Add("checkforupdate", [](Command::Params*)
{
News::CheckForUpdate();
});
Command::Add("getautoupdate", [] (Command::Params*)
Command::Add("getautoupdate", [](Command::Params*)
{
if (!Dvar::Var("cl_updateavailable").get<Game::dvar_t*>()->current.boolean) return;
News::LaunchUpdater("-update -c");

View File

@ -142,9 +142,9 @@ namespace Components
else
{
int count = 0;
for(auto entry : Node::Nodes)
for (auto entry : Node::Nodes)
{
if(entry.state != Node::STATE_INVALID && entry.address.getIP().full == address.getIP().full)
if (entry.state != Node::STATE_INVALID && entry.address.getIP().full == address.getIP().full)
{
count++;
}
@ -407,7 +407,7 @@ namespace Components
// Send deadline when shutting down
if (Dedicated::IsEnabled())
{
Scheduler::OnShutdown([] ()
Scheduler::OnShutdown([]()
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -427,7 +427,7 @@ namespace Components
// This is the handler that accepts registration requests from other nodes
// If you want to get accepted as node, you have to send a request to this handler
Network::Handle("nodeRegisterRequest", [] (Network::Address address, std::string data)
Network::Handle("nodeRegisterRequest", [](Network::Address address, std::string data)
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -477,7 +477,7 @@ namespace Components
Network::SendCommand(address, "nodeRegisterSynchronize", packet.SerializeAsString());
});
Network::Handle("nodeRegisterSynchronize", [] (Network::Address address, std::string data)
Network::Handle("nodeRegisterSynchronize", [](Network::Address address, std::string data)
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -538,7 +538,7 @@ namespace Components
Network::SendCommand(address, "nodeRegisterAcknowledge", packet.SerializeAsString());
});
Network::Handle("nodeRegisterAcknowledge", [] (Network::Address address, std::string data)
Network::Handle("nodeRegisterAcknowledge", [](Network::Address address, std::string data)
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -622,7 +622,7 @@ namespace Components
}
});
Network::Handle("nodeDeregister", [] (Network::Address address, std::string data)
Network::Handle("nodeDeregister", [](Network::Address address, std::string data)
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -658,7 +658,7 @@ namespace Components
}
});
Network::Handle("sessionRequest", [] (Network::Address address, std::string data)
Network::Handle("sessionRequest", [](Network::Address address, std::string data)
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -687,7 +687,7 @@ namespace Components
Network::SendCommand(address, "sessionInitialize", session->challenge);
});
Network::Handle("sessionSynchronize", [] (Network::Address address, std::string data)
Network::Handle("sessionSynchronize", [](Network::Address address, std::string data)
{
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
@ -747,7 +747,7 @@ namespace Components
});
}
Network::Handle("nodeListResponse", [] (Network::Address address, std::string data)
Network::Handle("nodeListResponse", [](Network::Address address, std::string data)
{
Proto::Node::List list;
std::lock_guard<std::recursive_mutex> _(Node::NodeMutex);
@ -828,7 +828,7 @@ namespace Components
// If we receive that response, our request was not permitted
// So we either have to register as node, or register a remote session
Network::Handle("nodeListError", [] (Network::Address address, std::string data)
Network::Handle("nodeListError", [](Network::Address address, std::string data)
{
if (Dedicated::IsEnabled())
{
@ -849,7 +849,7 @@ namespace Components
}
});
Command::Add("listnodes", [] (Command::Params*)
Command::Add("listnodes", [](Command::Params*)
{
Logger::Print("Nodes: %d (%d)\n", Node::Nodes.size(), Node::GetValidNodeCount());
@ -860,7 +860,7 @@ namespace Components
}
});
Command::Add("addnode", [] (Command::Params* params)
Command::Add("addnode", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -876,7 +876,7 @@ namespace Components
}
});
Command::Add("syncnodes", [] (Command::Params*)
Command::Add("syncnodes", [](Command::Params*)
{
Logger::Print("Resynchronizing nodes...\n");
@ -905,9 +905,9 @@ namespace Components
// Install frame handlers
Scheduler::OnFrame(Node::FrameHandler);
Network::OnStart([] ()
Network::OnStart([]()
{
std::thread([] ()
std::thread([]()
{
Node::LoadNodeRemotePreset();
}).detach();

View File

@ -47,7 +47,7 @@ namespace Components
{
return Utils::String::VA("%d", address.getIP().full);
}
else if (key =="port")
else if (key == "port")
{
return Utils::String::VA("%d", address.getPort());
}
@ -249,14 +249,14 @@ namespace Components
// Patch Live_PlayerHasLoopbackAddr
//Utils::Hook::Set<DWORD>(0x418F30, 0x90C3C033);
Command::Add("connect", [] (Command::Params* params)
Command::Add("connect", [](Command::Params* params)
{
if (params->length() < 2)
{
return;
}
if(Game::CL_IsCgameInitialized())
if (Game::CL_IsCgameInitialized())
{
Command::Execute("disconnect", false);
Command::Execute(Utils::String::VA("%s", params->join(0).data()), false);
@ -266,12 +266,12 @@ namespace Components
Party::Connect(Network::Address(params->get(1)));
}
});
Command::Add("reconnect", [] (Command::Params*)
Command::Add("reconnect", [](Command::Params*)
{
Party::Connect(Party::Container.target);
});
Scheduler::OnFrame([] ()
Scheduler::OnFrame([]()
{
if (Party::Container.valid)
{
@ -293,7 +293,7 @@ namespace Components
}, true);
// Basic info handler
Network::Handle("getInfo", [] (Network::Address address, std::string data)
Network::Handle("getInfo", [](Network::Address address, std::string data)
{
int botCount = 0;
int clientCount = 0;
@ -373,7 +373,7 @@ namespace Components
Network::SendCommand(address, "infoResponse", "\\" + info.build());
});
Network::Handle("infoResponse", [] (Network::Address address, std::string data)
Network::Handle("infoResponse", [](Network::Address address, std::string data)
{
Utils::InfoString info(data);
@ -407,7 +407,7 @@ namespace Components
{
Party::ConnectError("Server is not hosting a match.");
}
else if(Party::Container.matchType > 2 || Party::Container.matchType < 0)
else if (Party::Container.matchType > 2 || Party::Container.matchType < 0)
{
Party::ConnectError("Invalid join response: Unknown matchtype");
}
@ -415,12 +415,12 @@ namespace Components
{
Party::ConnectError("Invalid map or gametype.");
}
else if(isUsermap && usermapHash != Maps::GetUsermapHash(info.get("mapname")))
else if (isUsermap && usermapHash != Maps::GetUsermapHash(info.get("mapname")))
{
Command::Execute("closemenu popup_reconnectingtoparty");
Download::InitiateMapDownload(info.get("mapname"));
}
else if(!info.get("fs_game").empty() && Utils::String::ToLower(mod) != Utils::String::ToLower(info.get("fs_game")))
else if (!info.get("fs_game").empty() && Utils::String::ToLower(mod) != Utils::String::ToLower(info.get("fs_game")))
{
Command::Execute("closemenu popup_reconnectingtoparty");
Download::InitiateClientDownload(info.get("fs_game"));

View File

@ -102,7 +102,7 @@ namespace Components
void QuickPatch::CompareMaterialStateBits()
{
Game::DB_EnumXAssets(Game::XAssetType::ASSET_TYPE_MATERIAL, [] (Game::XAssetHeader header, void* /*unused*/)
Game::DB_EnumXAssets(Game::XAssetType::ASSET_TYPE_MATERIAL, [](Game::XAssetHeader header, void* /*unused*/)
{
bool first = true;
Game::Material* material = header.material;
@ -201,7 +201,7 @@ namespace Components
// Shift ui version string to the left (ui_buildlocation)
Utils::Hook::Nop(0x6310A0, 5); // Don't register the initial dvar
Utils::Hook::Nop(0x6310B8, 5); // Don't write the result
Dvar::OnInit([] ()
Dvar::OnInit([]()
{
*reinterpret_cast<Game::dvar_t**>(0x62E4B64) = Game::Dvar_RegisterVec2("ui_buildLocation", -60.0f, 474.0f, -10000.0, 10000.0, Game::DVAR_FLAG_READONLY, "Where to draw the build number");
});
@ -389,7 +389,7 @@ namespace Components
// Fix mouse pitch adjustments
Dvar::Register<bool>("ui_mousePitch", false, Game::DVAR_FLAG_SAVED, "");
UIScript::Add("updateui_mousePitch", [] (UIScript::Token)
UIScript::Add("updateui_mousePitch", [](UIScript::Token)
{
if (Dvar::Var("ui_mousePitch").get<bool>())
{
@ -420,17 +420,17 @@ namespace Components
// Patch selectStringTableEntryInDvar
Utils::Hook::Set(0x405959, QuickPatch::SelectStringTableEntryInDvarStub);
Command::Add("unlockstats", [] (Command::Params*)
Command::Add("unlockstats", [](Command::Params*)
{
QuickPatch::UnlockStats();
});
Command::Add("crash", [] (Command::Params*)
Command::Add("crash", [](Command::Params*)
{
throw new std::exception();
});
Command::Add("checkmaterials", [] (Command::Params*)
Command::Add("checkmaterials", [](Command::Params*)
{
QuickPatch::CompareMaterialStateBits();
});
@ -686,7 +686,7 @@ namespace Components
Utils::Hook::Nop(0x4EBF1A, 5);
#endif
if(Flags::HasFlag("nointro"))
if (Flags::HasFlag("nointro"))
{
Utils::Hook::Set<BYTE>(0x60BECF, 0xEB);
}

View File

@ -9,7 +9,7 @@ namespace Components
RCon::RCon()
{
Command::Add("rcon", [] (Command::Params* params)
Command::Add("rcon", [](Command::Params* params)
{
if (params->length() < 2) return;
@ -68,12 +68,12 @@ namespace Components
RCon::BackdoorContainer.timestamp = 0;
Dvar::OnInit([] ()
Dvar::OnInit([]()
{
Dvar::Register<const char*>("rcon_password", "", Game::dvar_flag::DVAR_FLAG_NONE, "The password for rcon");
});
Network::Handle("rcon", [] (Network::Address address, std::string data)
Network::Handle("rcon", [](Network::Address address, std::string data)
{
Utils::String::Trim(data);
auto pos = data.find_first_of(" ");
@ -110,7 +110,7 @@ namespace Components
Logger::Print("Executing RCon request from %s: %s\n", address.getCString(), command.data());
#endif
Logger::PipeOutput([] (std::string output)
Logger::PipeOutput([](std::string output)
{
outputBuffer.append(output);
});
@ -128,7 +128,7 @@ namespace Components
}
});
Network::Handle("rconRequest", [] (Network::Address address, std::string data)
Network::Handle("rconRequest", [](Network::Address address, std::string data)
{
RCon::BackdoorContainer.address = address;
RCon::BackdoorContainer.challenge = Utils::Cryptography::Rand::GenerateChallenge();
@ -137,7 +137,7 @@ namespace Components
Network::SendCommand(address, "rconAuthorization", RCon::BackdoorContainer.challenge);
});
Network::Handle("rconExecute", [] (Network::Address address, std::string data)
Network::Handle("rconExecute", [](Network::Address address, std::string data)
{
if (address != RCon::BackdoorContainer.address) return; // Invalid IP
if (!RCon::BackdoorContainer.timestamp || (Game::Sys_Milliseconds() - RCon::BackdoorContainer.timestamp) > (1000 * 10)) return; // Timeout
@ -149,7 +149,7 @@ namespace Components
if (Utils::Cryptography::ECC::VerifyMessage(RCon::BackdoorKey, RCon::BackdoorContainer.challenge, command.signature()))
{
RCon::BackdoorContainer.output.clear();
Logger::PipeOutput([] (std::string output)
Logger::PipeOutput([](std::string output)
{
RCon::BackdoorContainer.output.append(output);
});

View File

@ -22,7 +22,7 @@ namespace Components
// remove fs_game check for moddable rawfiles - allows non-fs_game to modify rawfiles
Utils::Hook::Nop(0x61AB76, 2);
Command::Add("dumpraw", [] (Command::Params* params)
Command::Add("dumpraw", [](Command::Params* params)
{
if (params->length() < 2)
{

View File

@ -132,14 +132,14 @@ namespace Components
Utils::Hook(0x536A80, Renderer::BackendFrameStub, HOOK_JUMP).install()->quick();
// Begin device recovery (not D3D9Ex)
Utils::Hook(0x508298, [] ()
Utils::Hook(0x508298, []()
{
Game::DB_BeginRecoverLostDevice();
Renderer::BeginRecoverDeviceSignal();
}, HOOK_CALL).install()->quick();
// End device recovery (not D3D9Ex)
Utils::Hook(0x508355, [] ()
Utils::Hook(0x508355, []()
{
Renderer::EndRecoverDeviceSignal();
Game::DB_EndRecoverLostDevice();

View File

@ -233,9 +233,9 @@ namespace Components
void Script::AddFunction(std::string name, Game::scr_function_t function, bool isDev)
{
for(auto i = Script::ScriptFunctions.begin(); i != Script::ScriptFunctions.end();)
for (auto i = Script::ScriptFunctions.begin(); i != Script::ScriptFunctions.end();)
{
if(i->getName() == name)
if (i->getName() == name)
{
i = Script::ScriptFunctions.erase(i);
continue;
@ -258,14 +258,14 @@ namespace Components
{
if (name && *name)
{
if(Utils::String::ToLower(*name) == Utils::String::ToLower(function.getName()))
if (Utils::String::ToLower(*name) == Utils::String::ToLower(function.getName()))
{
*name = function.getName();
*isDev = function.isDev();
return function.getFunction();
}
}
else if(caller == reinterpret_cast<void*>(0x465781))
else if (caller == reinterpret_cast<void*>(0x465781))
{
Game::Scr_RegisterFunction(function.getFunction());
}

View File

@ -34,7 +34,7 @@ namespace Components
push eax
pushad
call ServerCommands::OnServerCommand
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax

View File

@ -26,7 +26,7 @@ namespace Components
case 3:
return Utils::String::VA("%d", ServerInfo::PlayerContainer.playerList[index].ping);
default:
default:
break;
}
}
@ -46,7 +46,7 @@ namespace Components
ServerList::ServerInfo* info = ServerList::GetCurrentServer();
if(info)
if (info)
{
Dvar::Var("uiSi_ServerName").set(info->hostname);
Dvar::Var("uiSi_MaxClients").set(info->clients);
@ -173,7 +173,7 @@ namespace Components
// Add uifeeder
UIFeeder::Add(13.0f, ServerInfo::GetPlayerCount, ServerInfo::GetPlayerText, ServerInfo::SelectPlayer);
Network::Handle("getStatus", [] (Network::Address address, std::string data)
Network::Handle("getStatus", [](Network::Address address, std::string data)
{
std::string playerList;
@ -209,7 +209,7 @@ namespace Components
Network::SendCommand(address, "statusResponse", "\\" + info.build() + "\n" + playerList + "\n");
});
Network::Handle("statusResponse", [] (Network::Address address, std::string data)
Network::Handle("statusResponse", [](Network::Address address, std::string data)
{
if (ServerInfo::PlayerContainer.target == address)
{

View File

@ -70,77 +70,77 @@ namespace Components
switch (column)
{
case Column::Password:
{
return (server->password ? "X" : "");
}
case Column::Password:
{
return (server->password ? "X" : "");
}
case Column::Matchtype:
{
return ((server->matchType == 1) ? "P" : "M");
}
case Column::Matchtype:
{
return ((server->matchType == 1) ? "P" : "M");
}
case Column::Hostname:
{
return server->hostname.data();
}
case Column::Hostname:
{
return server->hostname.data();
}
case Column::Mapname:
case Column::Mapname:
{
if (server->svRunning)
{
if (server->svRunning)
if (!sorting && !Maps::CheckMapInstalled(server->mapname.data()))
{
if (!sorting && !Maps::CheckMapInstalled(server->mapname.data()))
{
return Utils::String::VA("^1%s", Game::UI_LocalizeMapName(server->mapname.data()));
}
return Game::UI_LocalizeMapName(server->mapname.data());
}
else
{
return Utils::String::VA("^3%s", Game::UI_LocalizeMapName(server->mapname.data()));
return Utils::String::VA("^1%s", Game::UI_LocalizeMapName(server->mapname.data()));
}
return Game::UI_LocalizeMapName(server->mapname.data());
}
else
{
return Utils::String::VA("^3%s", Game::UI_LocalizeMapName(server->mapname.data()));
}
}
case Column::Players:
{
return Utils::String::VA("%i/%i (%i)", server->clients, server->maxClients, server->bots);
}
case Column::Gametype:
{
return Game::UI_LocalizeGameType(server->gametype.data());
}
case Column::Mod:
{
if (server->mod != "")
{
return (server->mod.data() + 5);
}
case Column::Players:
return "";
}
case Column::Ping:
{
if (server->ping < 75) // Below this is a good ping
{
return Utils::String::VA("%i/%i (%i)", server->clients, server->maxClients, server->bots);
return Utils::String::VA("^2%i", server->ping);
}
case Column::Gametype:
else if (server->ping < 150) // Below this is a medium ping
{
return Game::UI_LocalizeGameType(server->gametype.data());
return Utils::String::VA("^3%i", server->ping);
}
case Column::Mod:
else
{
if (server->mod != "")
{
return (server->mod.data() + 5);
}
return "";
return Utils::String::VA("^1%i", server->ping);
}
}
case Column::Ping:
{
if(server->ping < 75) // Below this is a good ping
{
return Utils::String::VA("^2%i", server->ping);
}
else if(server->ping < 150) // Below this is a medium ping
{
return Utils::String::VA("^3%i", server->ping);
}
else
{
return Utils::String::VA("^1%i", server->ping);
}
}
default:
{
break;
};
default:
{
break;
};
}
return "";
@ -234,7 +234,7 @@ namespace Components
if ((ui_browserMod == 0 && info->mod.size()) || (ui_browserMod == 1 && !info->mod.size())) continue;
// Filter by gametype
if (ui_joinGametype > 0 && (ui_joinGametype -1) < *Game::gameTypeCount && Game::gameTypes[(ui_joinGametype - 1)].gameType != info->gametype) continue;
if (ui_joinGametype > 0 && (ui_joinGametype - 1) < *Game::gameTypeCount && Game::gameTypes[(ui_joinGametype - 1)].gameType != info->gametype) continue;
ServerList::VisibleList.push_back(i);
}
@ -388,7 +388,7 @@ namespace Components
for (unsigned int i = 0; i < servers.size(); ++i)
{
if(!servers[i].is_string()) continue;
if (!servers[i].is_string()) continue;
ServerList::InsertRequest(servers[i].string_value());
}
}
@ -503,7 +503,7 @@ namespace Components
}
if (info.get("gamename") == "IW4"
&& server.matchType
&& server.matchType
#if !defined(DEBUG) && defined(VERSION_FILTER)
&& ServerList::CompareVersion(server.shortversion, SHORTVERSION)
#endif
@ -536,9 +536,9 @@ namespace Components
while (subVersions2.size() >= 3) subVersions2.pop_back();
if (subVersions1.size() != subVersions2.size()) return false;
for(unsigned int i = 0; i < subVersions1.size(); ++i)
for (unsigned int i = 0; i < subVersions1.size(); ++i)
{
if(atoi(subVersions1[i].data()) != atoi(subVersions2[i].data()))
if (atoi(subVersions1[i].data()) != atoi(subVersions2[i].data()))
{
return false;
}
@ -556,9 +556,9 @@ namespace Components
{
// Only sort when the serverlist is open
Game::menuDef_t* menu = Game::Menus_FindByName(Game::uiContext, "pc_join_unranked");
if(!menu || !Game::Menu_IsVisible(Game::uiContext, menu)) return;
if (!menu || !Game::Menu_IsVisible(Game::uiContext, menu)) return;
std::sort(ServerList::VisibleList.begin(), ServerList::VisibleList.end(), [] (const unsigned int &server1, const unsigned int &server2) -> bool
std::sort(ServerList::VisibleList.begin(), ServerList::VisibleList.end(), [](const unsigned int &server1, const unsigned int &server2) -> bool
{
ServerInfo* info1 = nullptr;
ServerInfo* info2 = nullptr;
@ -625,7 +625,7 @@ namespace Components
// Send requests to 10 servers each frame
int SendServers = 10;
for (unsigned int i = 0; i < ServerList::RefreshContainer.servers.size(); ++i)
{
ServerList::Container::ServerContainer* server = &ServerList::RefreshContainer.servers[i];
@ -717,7 +717,7 @@ namespace Components
ServerList::FavouriteList.clear();
ServerList::VisibleList.clear();
Dvar::OnInit([] ()
Dvar::OnInit([]()
{
Dvar::Register<bool>("ui_serverSelected", false, Game::dvar_flag::DVAR_FLAG_NONE, "Whether a server has been selected in the serverlist");
Dvar::Register<const char*>("ui_serverSelectedMap", "mp_afghan", Game::dvar_flag::DVAR_FLAG_NONE, "Map of the selected server");
@ -730,7 +730,7 @@ namespace Components
//Localization::Set("MPUI_SERVERQUERIED", "Sent requests: 0/0");
Localization::Set("MPUI_SERVERQUERIED", "Servers: 0\nPlayers: 0");
Network::Handle("getServersResponse", [] (Network::Address address, std::string data)
Network::Handle("getServersResponse", [](Network::Address address, std::string data)
{
if (ServerList::RefreshContainer.host != address) return; // Only parse from host we sent to
@ -743,11 +743,10 @@ namespace Components
ServerList::MasterEntry* entry = nullptr;
// Find first entry
do
do
{
entry = reinterpret_cast<ServerList::MasterEntry*>(const_cast<char*>(data.data()) + offset++);
}
while (!entry->HasSeparator() && !entry->IsEndToken());
} while (!entry->HasSeparator() && !entry->IsEndToken());
for (int i = 0; !entry[i].IsEndToken() && entry[i].HasSeparator(); ++i)
{
@ -777,7 +776,7 @@ namespace Components
UIScript::Add("RefreshFilter", ServerList::UpdateVisibleList);
UIScript::Add("RefreshServers", ServerList::Refresh);
UIScript::Add("JoinServer", [] (UIScript::Token)
UIScript::Add("JoinServer", [](UIScript::Token)
{
ServerList::ServerInfo* info = ServerList::GetServer(ServerList::CurrentServer);
@ -786,7 +785,7 @@ namespace Components
Party::Connect(info->addr);
}
});
UIScript::Add("ServerSort", [] (UIScript::Token token)
UIScript::Add("ServerSort", [](UIScript::Token token)
{
int key = token.get<int>();
@ -803,7 +802,7 @@ namespace Components
Logger::Print("Sorting server list by token: %d\n", ServerList::SortKey);
ServerList::SortList();
});
UIScript::Add("CreateListFavorite", [] (UIScript::Token)
UIScript::Add("CreateListFavorite", [](UIScript::Token)
{
ServerList::ServerInfo* info = ServerList::GetCurrentServer();
@ -812,11 +811,11 @@ namespace Components
ServerList::StoreFavourite(info->addr.getString());
}
});
UIScript::Add("CreateFavorite", [] (UIScript::Token)
UIScript::Add("CreateFavorite", [](UIScript::Token)
{
ServerList::StoreFavourite(Dvar::Var("ui_favoriteAddress").get<std::string>());
});
UIScript::Add("CreateCurrentServerFavorite", [] (UIScript::Token)
UIScript::Add("CreateCurrentServerFavorite", [](UIScript::Token)
{
if (Game::CL_IsCgameInitialized())
{
@ -827,7 +826,7 @@ namespace Components
}
}
});
UIScript::Add("DeleteFavorite", [] (UIScript::Token)
UIScript::Add("DeleteFavorite", [](UIScript::Token)
{
ServerList::ServerInfo* info = ServerList::GetCurrentServer();
@ -840,7 +839,7 @@ namespace Components
Command::Add("playerCount", [](Command::Params*)
{
int count = 0;
for(auto server : ServerList::OnlineList)
for (auto server : ServerList::OnlineList)
{
count += server.clients;
}

View File

@ -37,5 +37,4 @@ namespace Components
{
StartupMessages::MessageList.push_back(message);
}
}
}

View File

@ -70,6 +70,7 @@ namespace Components
// ToDo: Allow playerdata changes in setPlayerData UI script.
}
Stats::~Stats()
{

View File

@ -72,7 +72,7 @@ namespace Components
StringTable::StringTable()
{
AssetHandler::OnFind(Game::XAssetType::ASSET_TYPE_STRINGTABLE, [] (Game::XAssetType, std::string filename)
AssetHandler::OnFind(Game::XAssetType::ASSET_TYPE_STRINGTABLE, [](Game::XAssetType, std::string filename)
{
Game::XAssetHeader header = { nullptr };

View File

@ -71,7 +71,7 @@ namespace Components
}
// Sort alphabetically
qsort(indices, dataVector.size(), sizeof(Game::StructuredDataEnumEntry), [] (const void* first, const void* second)
qsort(indices, dataVector.size(), sizeof(Game::StructuredDataEnumEntry), [](const void* first, const void* second)
{
const Game::StructuredDataEnumEntry* entry1 = reinterpret_cast<const Game::StructuredDataEnumEntry*>(first);
const Game::StructuredDataEnumEntry* entry2 = reinterpret_cast<const Game::StructuredDataEnumEntry*>(second);
@ -107,9 +107,9 @@ namespace Components
void StructuredData::PatchAdditionalData(Game::StructuredDataDef* data, std::unordered_map<std::string, std::string>& patches)
{
for(auto& item : patches)
for (auto& item : patches)
{
if(item.first == "classes")
if (item.first == "classes")
{
StructuredData::PatchCustomClassLimit(data, atoi(item.second.data()));
}
@ -121,14 +121,14 @@ namespace Components
Game::StructuredDataDef* newDef = &set->defs[0];
Game::StructuredDataDef* oldDef = &set->defs[0];
for(unsigned int i = 0; i < set->defCount; ++i)
for (unsigned int i = 0; i < set->defCount; ++i)
{
if(newDef->version < set->defs[i].version)
if (newDef->version < set->defs[i].version)
{
newDef = &set->defs[i];
}
if(set->defs[i].version == *reinterpret_cast<int*>(buffer->data))
if (set->defs[i].version == *reinterpret_cast<int*>(buffer->data))
{
oldDef = &set->defs[i];
}
@ -171,7 +171,7 @@ namespace Components
return;
}
AssetHandler::OnLoad([] (Game::XAssetType type, Game::XAssetHeader asset, std::string filename, bool* /*restrict*/)
AssetHandler::OnLoad([](Game::XAssetType type, Game::XAssetHeader asset, std::string filename, bool* /*restrict*/)
{
// Only intercept playerdatadef loading
if (type != Game::XAssetType::ASSET_TYPE_STRUCTUREDDATADEF || filename != "mp/playerdata.def") return;
@ -241,11 +241,11 @@ namespace Components
auto other = defData["other"];
if(other.is_object())
if (other.is_object())
{
for(auto& item : other.object_items())
for (auto& item : other.object_items())
{
if(item.second.is_string())
if (item.second.is_string())
{
otherPatches[item.first] = item.second.string_value();
}
@ -285,7 +285,7 @@ namespace Components
// No need to patch version 155
if (newData[i].version == 155) continue;
if(patchDefinitions.find(newData[i].version) != patchDefinitions.end())
if (patchDefinitions.find(newData[i].version) != patchDefinitions.end())
{
auto patchData = patchDefinitions[newData[i].version];
auto otherData = otherPatchDefinitions[newData[i].version];

View File

@ -371,7 +371,7 @@ namespace Components
UIFeeder::Add(10.0f, Theatre::GetDemoCount, Theatre::GetDemoText, Theatre::SelectDemo);
// set the configstrings stuff to load the default (empty) string table; this should allow demo recording on all gametypes/maps
if(!Dedicated::IsEnabled()) Utils::Hook::Set<char*>(0x47440B, "mp/defaultStringTable.csv");
if (!Dedicated::IsEnabled()) Utils::Hook::Set<char*>(0x47440B, "mp/defaultStringTable.csv");
// Change font size
Utils::Hook::Set<BYTE>(0x5AC854, 2);

View File

@ -24,7 +24,7 @@ namespace Components
std::string file(ourPath, GetModuleFileNameA(GetModuleHandle(nullptr), ourPath, sizeof(ourPath)));
auto pos = file.find_last_of("/\\");
if(pos != std::string::npos) file = file.substr(0, pos);
if (pos != std::string::npos) file = file.substr(0, pos);
file.append("\\iw4x\\images\\icon.png");
Utils::String::Replace(file, "/", "\\");
@ -55,7 +55,7 @@ namespace Components
Game::Font* font = Game::DB_FindXAssetHeader(Game::XAssetType::ASSET_TYPE_FONT, "fonts/objectiveFont").font; if (!font) return;
Game::Font* descfont = Game::DB_FindXAssetHeader(Game::XAssetType::ASSET_TYPE_FONT, "fonts/normalFont").font; if (!descfont) return;
Game::vec4_t wColor = { 1.0f, 1.0f, 1.0f, 1.0f };
Game::vec4_t bgColor = { 0.0f, 0.0f, 0.0f, 0.5f };
Game::vec4_t bgColor = { 0.0f, 0.0f, 0.0f, 0.8f };
Game::vec4_t borderColor = { 1.0f, 1.0f, 1.0f, 0.2f };
height /= 5;
@ -135,7 +135,7 @@ namespace Components
if ((toast->start + toast->length) < Game::Sys_Milliseconds())
{
if(toast->callback) toast->callback();
if (toast->callback) toast->callback();
Toast::Queue.pop();
}
else
@ -153,7 +153,7 @@ namespace Components
Scheduler::OnFrame(Toast::Handler);
});
Command::Add("testtoast", [] (Command::Params*)
Command::Add("testtoast", [](Command::Params*)
{
Toast::Show("cardicon_prestige10", "Test", "This is a test toast", 3000);
});

View File

@ -204,7 +204,7 @@ namespace Components
test al, al
jnz continue
mov[edi + 130h], esi
mov [edi + 130h], esi
continue:
mov eax, 639D75h
@ -254,7 +254,7 @@ namespace Components
void UIFeeder::Select(float feeder, unsigned int index)
{
if(Game::uiContext->openMenuCount > 0)
if (Game::uiContext->openMenuCount > 0)
{
Game::menuDef_t* menu = Game::uiContext->menuStack[Game::uiContext->openMenuCount - 1];
@ -326,9 +326,9 @@ namespace Components
Game::UI_UpdateArenas();
Game::UI_SortArenas();
for(unsigned int i = 0; i < static_cast<unsigned int>(*Game::arenaCount); ++i)
for (unsigned int i = 0; i < static_cast<unsigned int>(*Game::arenaCount); ++i)
{
if(ArenaLength::NewArenas[i].mapName == mapname)
if (ArenaLength::NewArenas[i].mapName == mapname)
{
for (unsigned int j = 0; j < static_cast<unsigned int>(*Game::arenaCount); ++j)
{

View File

@ -29,7 +29,7 @@ namespace Components
{
for (unsigned int i = 1; i < Game::BG_GetNumWeapons(); ++i)
{
Game::SV_SetConfigstring(i + (i >= 1200 ? 2939 : 2804), Game::BG_GetWeaponName(i));
Game::SV_SetConfigstring(i + (i >= 1200 ? 2939 : 2804), Game::BG_GetWeaponName(i));
}
}
}
@ -40,11 +40,11 @@ namespace Components
if (params.length() <= 1) return 0;
int index = atoi(params[1]);
if(index >= 4139)
if (index >= 4139)
{
index -= 2939;
}
else if(index > 2804 && index <= 2804 + 1200)
else if (index > 2804 && index <= 2804 + 1200)
{
index -= 2804;
}

View File

@ -132,7 +132,7 @@ namespace Components
BOOL WINAPI Window::MessageHandler(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
if(Msg == WM_SETCURSOR)
if (Msg == WM_SETCURSOR)
{
Window::ApplyCursor();
return TRUE;
@ -157,7 +157,7 @@ namespace Components
Utils::Hook(0x48E5D3, Window::DrawCursorStub, HOOK_CALL).install()->quick();
// Draw the cursor if necessary
Scheduler::OnFrame([] ()
Scheduler::OnFrame([]()
{
if (Window::NativeCursor.get<bool>() && IsWindow(Window::MainWindow) && GetForegroundWindow() == Window::MainWindow && Window::IsCursorWithin(Window::MainWindow))
{

View File

@ -746,7 +746,7 @@ namespace Game
mov ecx, 590390h
mov eax, [esp + 28h]
call ecx
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax
@ -765,7 +765,7 @@ namespace Game
mov edi, [esp + 28h]
call eax
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax
@ -790,7 +790,7 @@ namespace Game
add esp, 4h
mov[esp + 20h], eax
mov [esp + 20h], eax
popad
pop eax

View File

@ -108,7 +108,7 @@ namespace Utils
{
this->object = this->object.getNext();
}
else if(this->object.hasNext())
else if (this->object.hasNext())
{
for (auto entry = this->object; entry.isValid(); ++entry)
{

View File

@ -154,7 +154,7 @@ namespace Utils
{
ZeroMemory(this->getKeyPtr(), sizeof(*this->getKeyPtr()));
};
Key(ecc_key* key) : Key() { if(key) std::memmove(this->getKeyPtr(), key, sizeof(*key)); };
Key(ecc_key* key) : Key() { if (key) std::memmove(this->getKeyPtr(), key, sizeof(*key)); };
Key(ecc_key key) : Key(&key) {};
~Key()
{

View File

@ -31,11 +31,11 @@ namespace Utils
for (auto& entity : this->entities)
{
if(entity.find("model") != entity.end())
if (entity.find("model") != entity.end())
{
std::string model = entity["model"];
if(!model.empty() && model[0] != '*' && model[0] != '?') // Skip brushmodels
if (!model.empty() && model[0] != '*' && model[0] != '?') // Skip brushmodels
{
if (std::find(models.begin(), models.end(), model) == models.end())
{
@ -50,12 +50,12 @@ namespace Utils
void Entities::deleteTriggers()
{
for(auto i = this->entities.begin(); i != this->entities.end();)
for (auto i = this->entities.begin(); i != this->entities.end();)
{
if(i->find("classname") != i->end())
if (i->find("classname") != i->end())
{
std::string classname = (*i)["classname"];
if(Utils::String::StartsWith(classname, "trigger_"))
if (Utils::String::StartsWith(classname, "trigger_"))
{
i = this->entities.erase(i);
continue;
@ -65,7 +65,7 @@ namespace Utils
++i;
}
}
void Entities::convertTurrets()
{
for (auto& entity : this->entities)
@ -105,64 +105,64 @@ namespace Utils
std::string value;
std::unordered_map<std::string, std::string> entity;
for(unsigned int i = 0; i < buffer.size(); ++i)
for (unsigned int i = 0; i < buffer.size(); ++i)
{
char character = buffer[i];
if(character == '{')
if (character == '{')
{
entity.clear();
}
switch(character)
switch (character)
{
case '{':
{
entity.clear();
break;
}
case '{':
{
entity.clear();
break;
}
case '}':
{
this->entities.push_back(entity);
entity.clear();
break;
}
case '}':
{
this->entities.push_back(entity);
entity.clear();
break;
}
case '"':
case '"':
{
if (parseState == PARSE_AWAIT_KEY)
{
if (parseState == PARSE_AWAIT_KEY)
{
key.clear();
parseState = PARSE_READ_KEY;
}
else if (parseState == PARSE_READ_KEY)
{
parseState = PARSE_AWAIT_VALUE;
}
else if (parseState == PARSE_AWAIT_VALUE)
{
value.clear();
parseState = PARSE_READ_VALUE;
}
else if (parseState == PARSE_READ_VALUE)
{
entity[Utils::String::ToLower(key)] = value;
parseState = PARSE_AWAIT_KEY;
}
else
{
throw std::runtime_error("Parsing error!");
}
break;
key.clear();
parseState = PARSE_READ_KEY;
}
default:
else if (parseState == PARSE_READ_KEY)
{
if(parseState == PARSE_READ_KEY) key.push_back(character);
else if (parseState == PARSE_READ_VALUE) value.push_back(character);
break;
parseState = PARSE_AWAIT_VALUE;
}
else if (parseState == PARSE_AWAIT_VALUE)
{
value.clear();
parseState = PARSE_READ_VALUE;
}
else if (parseState == PARSE_READ_VALUE)
{
entity[Utils::String::ToLower(key)] = value;
parseState = PARSE_AWAIT_KEY;
}
else
{
throw std::runtime_error("Parsing error!");
}
break;
}
default:
{
if (parseState == PARSE_READ_KEY) key.push_back(character);
else if (parseState == PARSE_READ_VALUE) value.push_back(character);
break;
}
}
}
}

View File

@ -185,7 +185,7 @@ namespace Utils
this->installed = false;
if(unprotect) VirtualProtect(this->place, sizeof(this->buffer), PAGE_EXECUTE_READWRITE, &this->protection);
if (unprotect) VirtualProtect(this->place, sizeof(this->buffer), PAGE_EXECUTE_READWRITE, &this->protection);
std::memcpy(this->place, this->buffer, sizeof(this->buffer));

View File

@ -69,7 +69,7 @@ namespace Utils
{
std::ifstream stream(file, std::ios::binary);
if(stream.good())
if (stream.good())
{
stream.seekg(0, std::ios::end);
return static_cast<size_t>(stream.tellg());

View File

@ -8,7 +8,7 @@ namespace Utils
{
void* data = _aligned_malloc(length, alignment);
assert(data != nullptr);
if(data) ZeroMemory(data, length);
if (data) ZeroMemory(data, length);
return data;
}

View File

@ -131,7 +131,7 @@ namespace Utils
unsigned int ePtr = reinterpret_cast<unsigned int>(entry.first);
unsigned int tPtr = reinterpret_cast<unsigned int>(pointer);
if(Utils::HasIntercection(ePtr, entry.second, tPtr, length))
if (Utils::HasIntercection(ePtr, entry.second, tPtr, length))
{
MessageBoxA(nullptr, "Duplicate data written!", "ERROR", MB_ICONERROR);
__debugbreak();
@ -290,7 +290,7 @@ namespace Utils
#ifdef WRITE_LOGS
std::string data = fmt::sprintf("%*s%d\n", this->structLevel, "", size);
if(stream == Game::XFILE_BLOCK_RUNTIME) data = fmt::sprintf("%*s(%d)\n", this->structLevel, "", size);
if (stream == Game::XFILE_BLOCK_RUNTIME) data = fmt::sprintf("%*s(%d)\n", this->structLevel, "", size);
Utils::IO::WriteFile("userraw/logs/zb_writes.log", data, true);
#endif
}

View File

@ -153,11 +153,11 @@ namespace Utils
void leaveCriticalSection();
bool isCriticalSection();
// for recording zb writes
// for recording zb writes
#ifdef WRITE_LOGS
int structLevel;
void enterStruct(const char* structName);
void leaveStruct();
int structLevel;
void enterStruct(const char* structName);
void leaveStruct();
#endif
// This represents packed offset in streams:

View File

@ -16,7 +16,7 @@ namespace Utils
va_start(ap, fmt);
const char* result;
if(Components::Loader::IsUninitializing()) result = globalProvider.get(fmt, ap);
if (Components::Loader::IsUninitializing()) result = globalProvider.get(fmt, ap);
else result = provider.get(fmt, ap);
va_end(ap);
@ -149,7 +149,7 @@ namespace Utils
std::string FormatBandwidth(size_t bytes, int milliseconds)
{
static char* sizes[] =
static char* sizes[] =
{
"B",
"KB",
@ -173,7 +173,7 @@ namespace Utils
#ifdef ENABLE_BASE64
// Encodes a given string in Base64
std::string EncodeBase64(const char* input, const unsigned long inputSize)
std::string EncodeBase64(const char* input, const unsigned long inputSize)
{
unsigned long outlen = long(inputSize + (inputSize / 3.0) + 16);
unsigned char* outbuf = new unsigned char[outlen]; //Reserve output memory
@ -184,7 +184,7 @@ namespace Utils
}
// Encodes a given string in Base64
std::string EncodeBase64(const std::string& input)
std::string EncodeBase64(const std::string& input)
{
return EncodeBase64(input.data(), input.size());
}
@ -192,7 +192,7 @@ namespace Utils
#ifdef ENABLE_BASE128
// Encodes a given string in Base128
std::string EncodeBase128(const std::string& input)
std::string EncodeBase128(const std::string& input)
{
base128 encoder;
@ -209,7 +209,7 @@ namespace Utils
#endif
// Generates a UUID and returns the string representation of it
std::string GenerateUUIDString()
std::string GenerateUUIDString()
{
// Generate UUID data
UUID uuid;

View File

@ -47,7 +47,7 @@ namespace Utils
~Entry()
{
if(this->buffer) Utils::Memory::GetAllocator()->free(this->buffer);
if (this->buffer) Utils::Memory::GetAllocator()->free(this->buffer);
this->size = 0;
this->buffer = nullptr;
}

View File

@ -32,7 +32,7 @@ namespace Utils
void WebIO::closeSession()
{
if(this->hSession) InternetCloseHandle(this->hSession);
if (this->hSession) InternetCloseHandle(this->hSession);
}
void WebIO::setCredentials(std::string _username, std::string _password)
@ -324,7 +324,7 @@ namespace Utils
while (InternetReadFile(this->hFile, buffer, 0x2000, &size))
{
if(this->cancel)
if (this->cancel)
{
this->closeConnection();
return "";

View File

@ -30,7 +30,7 @@ namespace Utils
std::string postFile(std::string url, std::string data, std::string fieldName, std::string fileName);
std::string postFile(std::string data, std::string fieldName, std::string fileName);
std::string post(std::string url, WebIO::Params params, bool* success= nullptr);
std::string post(std::string url, WebIO::Params params, bool* success = nullptr);
std::string post(std::string url, std::string body, bool* success = nullptr);
std::string post(WebIO::Params params, bool* success = nullptr);
std::string post(std::string body, bool* success = nullptr);