aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDLL/shared
diff options
context:
space:
mode:
Diffstat (limited to 'NorthstarDLL/shared')
-rw-r--r--NorthstarDLL/shared/exploit_fixes/exploitfixes.cpp60
-rw-r--r--NorthstarDLL/shared/exploit_fixes/exploitfixes_utf8parser.cpp6
-rw-r--r--NorthstarDLL/shared/exploit_fixes/ns_limits.cpp64
-rw-r--r--NorthstarDLL/shared/keyvalues.cpp8
-rw-r--r--NorthstarDLL/shared/keyvalues.h2
-rw-r--r--NorthstarDLL/shared/maxplayers.cpp18
-rw-r--r--NorthstarDLL/shared/misccommands.cpp374
-rw-r--r--NorthstarDLL/shared/playlist.cpp4
8 files changed, 268 insertions, 268 deletions
diff --git a/NorthstarDLL/shared/exploit_fixes/exploitfixes.cpp b/NorthstarDLL/shared/exploit_fixes/exploitfixes.cpp
index 2a0a9c2c..a85e05c4 100644
--- a/NorthstarDLL/shared/exploit_fixes/exploitfixes.cpp
+++ b/NorthstarDLL/shared/exploit_fixes/exploitfixes.cpp
@@ -15,16 +15,16 @@ ConVar* Cvar_sv_cheats;
#define BLOCKED_INFO(s) \
( \
- [=]() -> bool \
- { \
- if (Cvar_ns_exploitfixes_log->GetBool()) \
- { \
- std::stringstream stream; \
- stream << "ExploitFixes.cpp: " << BLOCK_PREFIX << s; \
- spdlog::error(stream.str()); \
- } \
- return false; \
- }())
+ [=]() -> bool \
+ { \
+ if (Cvar_ns_exploitfixes_log->GetBool()) \
+ { \
+ std::stringstream stream; \
+ stream << "ExploitFixes.cpp: " << BLOCK_PREFIX << s; \
+ spdlog::error(stream.str()); \
+ } \
+ return false; \
+ }())
// block bad netmessages
// Servers can literally request a screenshot from any client, yeah no
@@ -82,7 +82,7 @@ bool, __fastcall, (void* pMsg)) // 48 8B D1 48 8B 49 18 48 8B 01 48 FF 60 10
bool bIsServerFrame = Tier0::ThreadInServerFrameThread();
std::string BLOCK_PREFIX =
- std::string {"NET_SetConVar ("} + (bIsServerFrame ? "server" : "client") + "): Blocked dangerous/invalid msg: ";
+ std::string {"NET_SetConVar ("} + (bIsServerFrame ? "server" : "client") + "): Blocked dangerous/invalid msg: ";
if (bIsServerFrame)
{
@@ -118,14 +118,14 @@ bool, __fastcall, (void* pMsg)) // 48 8B D1 48 8B 49 18 48 8B 01 48 FF 60 10
if (pVar)
{
memcpy(
- entry->name,
- pVar->m_ConCommandBase.m_pszName,
- strlen(pVar->m_ConCommandBase.m_pszName) + 1); // Force name to match case
+ entry->name,
+ pVar->m_ConCommandBase.m_pszName,
+ strlen(pVar->m_ConCommandBase.m_pszName) + 1); // Force name to match case
int iFlags = bIsServerFrame ? FCVAR_USERINFO : FCVAR_REPLICATED;
if (!pVar->IsFlagSet(iFlags))
return BLOCKED_INFO(
- "Invalid flags (" << std::hex << "0x" << pVar->m_ConCommandBase.m_nFlags << "), var is " << entry->name);
+ "Invalid flags (" << std::hex << "0x" << pVar->m_ConCommandBase.m_nFlags << "), var is " << entry->name);
}
}
else
@@ -214,7 +214,7 @@ void, __fastcall, (void* buf, void* pCmd_move, void* pCmd_from)) // 4C 89 44 24
auto fromCmd = (SV_CUserCmd*)pCmd_from;
std::string BLOCK_PREFIX =
- "ReadUsercmd (command_number delta: " + std::to_string(cmd->command_number - fromCmd->command_number) + "): ";
+ "ReadUsercmd (command_number delta: " + std::to_string(cmd->command_number - fromCmd->command_number) + "): ";
// fix invalid player angles
cmd->worldViewAngles.MakeValid();
@@ -231,8 +231,8 @@ void, __fastcall, (void* buf, void* pCmd_move, void* pCmd_from)) // 4C 89 44 24
if (cmd->frameTime <= 0 || cmd->tick_count == 0 || cmd->command_time <= 0)
{
BLOCKED_INFO(
- "Bogus cmd timing (tick_count: " << cmd->tick_count << ", frameTime: " << cmd->frameTime
- << ", commandTime : " << cmd->command_time << ")");
+ "Bogus cmd timing (tick_count: " << cmd->tick_count << ", frameTime: " << cmd->frameTime
+ << ", commandTime : " << cmd->command_time << ")");
goto INVALID_CMD; // No simulation of bogus-timed cmds
}
@@ -305,14 +305,14 @@ bool, __fastcall, (R2::CBaseClient* self, uint32_t unknown, const char* pCommand
if (!Cvar_sv_cheats->GetBool())
{
constexpr const char* blockedCommands[] = {
- "emit", // Sound-playing exploit (likely for Portal 2 coop devs testing splitscreen sound or something)
+ "emit", // Sound-playing exploit (likely for Portal 2 coop devs testing splitscreen sound or something)
- // These both execute a command for every single entity for some reason, nice one valve
- "pre_go_to_hub",
- "pre_go_to_calibration",
+ // These both execute a command for every single entity for some reason, nice one valve
+ "pre_go_to_hub",
+ "pre_go_to_calibration",
- "end_movie", // Calls "__MovieFinished" script function, not sure exactly what this does but it certainly isn't needed
- "load_recent_checkpoint" // This is the instant-respawn exploit, literally just calls RespawnPlayer()
+ "end_movie", // Calls "__MovieFinished" script function, not sure exactly what this does but it certainly isn't needed
+ "load_recent_checkpoint" // This is the instant-respawn exploit, literally just calls RespawnPlayer()
};
int iCmdLength = strlen(tempCommand.Arg(0));
@@ -348,7 +348,7 @@ void, __fastcall, (void* self))
CBaseClient__SendServerInfo(self);
if (!bWasWritingStringTableSuccessful)
R2::CBaseClient__Disconnect(
- self, 1, "Overflowed CNetworkStringTableContainer::WriteBaselines, try restarting your client and reconnecting");
+ self, 1, "Overflowed CNetworkStringTableContainer::WriteBaselines, try restarting your client and reconnecting");
}
// return null when GetEntByIndex is passed an index >= 0x4000
@@ -427,9 +427,9 @@ ON_DLL_LOAD_RELIESON("server.dll", ServerExploitFixes, ConVar, (CModule module))
// Dumb ANTITAMPER patches (they negatively impact performance and security)
constexpr const char* ANTITAMPER_EXPORTS[] = {
- "ANTITAMPER_SPOTCHECK_CODEMARKER",
- "ANTITAMPER_TESTVALUE_CODEMARKER",
- "ANTITAMPER_TRIGGER_CODEMARKER",
+ "ANTITAMPER_SPOTCHECK_CODEMARKER",
+ "ANTITAMPER_TESTVALUE_CODEMARKER",
+ "ANTITAMPER_TRIGGER_CODEMARKER",
};
// Prevent these from actually doing anything
@@ -445,9 +445,9 @@ ON_DLL_LOAD_RELIESON("server.dll", ServerExploitFixes, ConVar, (CModule module))
}
Cvar_ns_exploitfixes_log =
- new ConVar("ns_exploitfixes_log", "1", FCVAR_GAMEDLL, "Whether to log whenever ExploitFixes.cpp blocks/corrects something");
+ new ConVar("ns_exploitfixes_log", "1", FCVAR_GAMEDLL, "Whether to log whenever ExploitFixes.cpp blocks/corrects something");
Cvar_ns_should_log_all_clientcommands =
- new ConVar("ns_should_log_all_clientcommands", "0", FCVAR_NONE, "Whether to log all clientcommands");
+ new ConVar("ns_should_log_all_clientcommands", "0", FCVAR_NONE, "Whether to log all clientcommands");
Cvar_sv_cheats = R2::g_pCVar->FindVar("sv_cheats");
}
diff --git a/NorthstarDLL/shared/exploit_fixes/exploitfixes_utf8parser.cpp b/NorthstarDLL/shared/exploit_fixes/exploitfixes_utf8parser.cpp
index 3d97f750..d7210bb3 100644
--- a/NorthstarDLL/shared/exploit_fixes/exploitfixes_utf8parser.cpp
+++ b/NorthstarDLL/shared/exploit_fixes/exploitfixes_utf8parser.cpp
@@ -179,11 +179,11 @@ bool, __fastcall, (INT64* a1, DWORD* a2, char* strData)) // 48 89 5C 24 ? 48 89
// only call if we're parsing utf8 data from the network (i.e. communities), otherwise we get perf issues
void* pReturnAddress =
#ifdef _MSC_VER
- _ReturnAddress()
+ _ReturnAddress()
#else
- __builtin_return_address(0)
+ __builtin_return_address(0)
#endif
- ;
+ ;
if (pReturnAddress == targetRetAddr && !CheckUTF8Valid(a1, a2, strData))
return false;
diff --git a/NorthstarDLL/shared/exploit_fixes/ns_limits.cpp b/NorthstarDLL/shared/exploit_fixes/ns_limits.cpp
index c9085cb0..8c169b2a 100644
--- a/NorthstarDLL/shared/exploit_fixes/ns_limits.cpp
+++ b/NorthstarDLL/shared/exploit_fixes/ns_limits.cpp
@@ -29,7 +29,7 @@ void ServerLimitsManager::RunFrame(double flCurrentTime, float flFrameTime)
if (pLimitData->flFrameUserCmdBudget < R2::g_pGlobals->m_flTickInterval * Cvar_sv_antispeedhack_maxtickbudget->GetFloat())
{
pLimitData->flFrameUserCmdBudget += g_pServerLimits->Cvar_sv_antispeedhack_budgetincreasemultiplier->GetFloat() *
- fmax(flFrameTime, R2::g_pGlobals->m_flFrameTime * CEngineServer__GetTimescale());
+ fmax(flFrameTime, R2::g_pGlobals->m_flFrameTime * CEngineServer__GetTimescale());
}
}
}
@@ -40,7 +40,7 @@ void ServerLimitsManager::AddPlayer(R2::CBaseClient* player)
{
PlayerLimitData limitData;
limitData.flFrameUserCmdBudget =
- R2::g_pGlobals->m_flTickInterval * CEngineServer__GetTimescale() * Cvar_sv_antispeedhack_maxtickbudget->GetFloat();
+ R2::g_pGlobals->m_flTickInterval * CEngineServer__GetTimescale() * Cvar_sv_antispeedhack_maxtickbudget->GetFloat();
m_PlayerLimitData.insert(std::make_pair(player, limitData));
}
@@ -116,7 +116,7 @@ char, __fastcall, (void* self, void* buf))
// reset every second
if (startTime - g_pServerLimits->m_PlayerLimitData[sender].lastNetChanProcessingLimitStart >= 1.0 ||
- g_pServerLimits->m_PlayerLimitData[sender].lastNetChanProcessingLimitStart == -1.0)
+ g_pServerLimits->m_PlayerLimitData[sender].lastNetChanProcessingLimitStart == -1.0)
{
g_pServerLimits->m_PlayerLimitData[sender].lastNetChanProcessingLimitStart = startTime;
g_pServerLimits->m_PlayerLimitData[sender].netChanProcessingLimitTime = 0.0;
@@ -124,13 +124,13 @@ char, __fastcall, (void* self, void* buf))
g_pServerLimits->m_PlayerLimitData[sender].netChanProcessingLimitTime += (Tier0::Plat_FloatTime() * 1000) - (startTime * 1000);
if (g_pServerLimits->m_PlayerLimitData[sender].netChanProcessingLimitTime >=
- g_pServerLimits->Cvar_net_chan_limit_msec_per_sec->GetInt())
+ g_pServerLimits->Cvar_net_chan_limit_msec_per_sec->GetInt())
{
spdlog::warn(
- "Client {} hit netchan processing limit with {}ms of processing time this second (max is {})",
- (char*)sender + 0x16,
- g_pServerLimits->m_PlayerLimitData[sender].netChanProcessingLimitTime,
- g_pServerLimits->Cvar_net_chan_limit_msec_per_sec->GetInt());
+ "Client {} hit netchan processing limit with {}ms of processing time this second (max is {})",
+ (char*)sender + 0x16,
+ g_pServerLimits->m_PlayerLimitData[sender].netChanProcessingLimitTime,
+ g_pServerLimits->Cvar_net_chan_limit_msec_per_sec->GetInt());
// never kick local player
if (g_pServerLimits->Cvar_net_chan_limit_mode->GetInt() != NETCHANLIMIT_WARN && strcmp(R2::g_pLocalPlayerUserID, sender->m_UID))
@@ -150,7 +150,7 @@ bool ServerLimitsManager::CheckConnectionlessPacketLimits(R2::netpacket_t* packe
// don't ratelimit datablock packets as long as datablock is enabled
if (packet->adr.type == R2::NA_IP &&
- (!(packet->data[4] == 'N' && Cvar_net_data_block_enabled->GetBool()) || !Cvar_net_data_block_enabled->GetBool()))
+ (!(packet->data[4] == 'N' && Cvar_net_data_block_enabled->GetBool()) || !Cvar_net_data_block_enabled->GetBool()))
{
// bad lookup: optimise later tm
UnconnectedPlayerLimitData* sendData = nullptr;
@@ -183,9 +183,9 @@ bool ServerLimitsManager::CheckConnectionlessPacketLimits(R2::netpacket_t* packe
if (sendData->packetCount >= g_pServerLimits->Cvar_sv_querylimit_per_sec->GetInt())
{
spdlog::warn(
- "Client went over connectionless ratelimit of {} per sec with packet of type {}",
- g_pServerLimits->Cvar_sv_querylimit_per_sec->GetInt(),
- packet->data[4]);
+ "Client went over connectionless ratelimit of {} per sec with packet of type {}",
+ g_pServerLimits->Cvar_sv_querylimit_per_sec->GetInt(),
+ packet->data[4]);
// timeout for a minute
sendData->timeoutEnd = Tier0::Plat_FloatTime() + 60.0;
@@ -199,8 +199,8 @@ bool ServerLimitsManager::CheckConnectionlessPacketLimits(R2::netpacket_t* packe
// this is weird and i'm not sure if it's correct, so not using for now
/*AUTOHOOK(CBasePlayer__PhysicsSimulate, server.dll + 0x5A6E50, bool, __fastcall, (void* self, int a2, char a3))
{
- spdlog::info("CBasePlayer::PhysicsSimulate");
- return CBasePlayer__PhysicsSimulate(self, a2, a3);
+ spdlog::info("CBasePlayer::PhysicsSimulate");
+ return CBasePlayer__PhysicsSimulate(self, a2, a3);
}*/
struct alignas(4) SV_CUserCmd
@@ -263,31 +263,31 @@ ON_DLL_LOAD_RELIESON("engine.dll", ServerLimits, ConVar, (CModule module))
g_pServerLimits = new ServerLimitsManager;
g_pServerLimits->CVar_sv_quota_stringcmdspersecond = new ConVar(
- "sv_quota_stringcmdspersecond",
- "60",
- FCVAR_GAMEDLL,
- "How many string commands per second clients are allowed to submit, 0 to disallow all string commands, -1 to disable");
+ "sv_quota_stringcmdspersecond",
+ "60",
+ FCVAR_GAMEDLL,
+ "How many string commands per second clients are allowed to submit, 0 to disallow all string commands, -1 to disable");
g_pServerLimits->Cvar_net_chan_limit_mode =
- new ConVar("net_chan_limit_mode", "0", FCVAR_GAMEDLL, "The mode for netchan processing limits: 0 = warn, 1 = kick");
+ new ConVar("net_chan_limit_mode", "0", FCVAR_GAMEDLL, "The mode for netchan processing limits: 0 = warn, 1 = kick");
g_pServerLimits->Cvar_net_chan_limit_msec_per_sec = new ConVar(
- "net_chan_limit_msec_per_sec",
- "100",
- FCVAR_GAMEDLL,
- "Netchannel processing is limited to so many milliseconds, abort connection if exceeding budget");
+ "net_chan_limit_msec_per_sec",
+ "100",
+ FCVAR_GAMEDLL,
+ "Netchannel processing is limited to so many milliseconds, abort connection if exceeding budget");
g_pServerLimits->Cvar_sv_querylimit_per_sec = new ConVar("sv_querylimit_per_sec", "15", FCVAR_GAMEDLL, "");
g_pServerLimits->Cvar_sv_max_chat_messages_per_sec = new ConVar("sv_max_chat_messages_per_sec", "5", FCVAR_GAMEDLL, "");
g_pServerLimits->Cvar_sv_antispeedhack_enable =
- new ConVar("sv_antispeedhack_enable", "0", FCVAR_NONE, "whether to enable antispeedhack protections");
+ new ConVar("sv_antispeedhack_enable", "0", FCVAR_NONE, "whether to enable antispeedhack protections");
g_pServerLimits->Cvar_sv_antispeedhack_maxtickbudget = new ConVar(
- "sv_antispeedhack_maxtickbudget",
- "64",
- FCVAR_GAMEDLL,
- "Maximum number of client-issued usercmd ticks that can be replayed in packet loss conditions");
+ "sv_antispeedhack_maxtickbudget",
+ "64",
+ FCVAR_GAMEDLL,
+ "Maximum number of client-issued usercmd ticks that can be replayed in packet loss conditions");
g_pServerLimits->Cvar_sv_antispeedhack_budgetincreasemultiplier = new ConVar(
- "sv_antispeedhack_budgetincreasemultiplier",
- "1",
- FCVAR_GAMEDLL,
- "Increase usercmd processing budget by tickinterval * value per tick");
+ "sv_antispeedhack_budgetincreasemultiplier",
+ "1",
+ FCVAR_GAMEDLL,
+ "Increase usercmd processing budget by tickinterval * value per tick");
CEngineServer__GetTimescale = module.Offset(0x240840).RCast<float (*)()>();
}
diff --git a/NorthstarDLL/shared/keyvalues.cpp b/NorthstarDLL/shared/keyvalues.cpp
index aa22ca65..da180ce2 100644
--- a/NorthstarDLL/shared/keyvalues.cpp
+++ b/NorthstarDLL/shared/keyvalues.cpp
@@ -25,7 +25,7 @@ struct CKeyValuesSystem
const char* (*GetStringForSymbol)(CKeyValuesSystem* self, HKeySymbol symbol);
char pad1[8 * 5];
HKeySymbol (*GetSymbolForStringCaseSensitive)(
- CKeyValuesSystem* self, HKeySymbol& hCaseInsensitiveSymbol, const char* name, bool bCreate);
+ CKeyValuesSystem* self, HKeySymbol& hCaseInsensitiveSymbol, const char* name, bool bCreate);
};
const __VTable* m_pVtable;
@@ -95,7 +95,7 @@ KeyValues::KeyValues(const char* pszSetName, const char* pszFirstKey, int iFirst
// *pszSecondValue -
//-----------------------------------------------------------------------------
KeyValues::KeyValues(
- const char* pszSetName, const char* pszFirstKey, const char* pszFirstValue, const char* pszSecondKey, const char* pszSecondValue)
+ const char* pszSetName, const char* pszFirstKey, const char* pszFirstValue, const char* pszSecondKey, const char* pszSecondValue)
{
Init();
SetName(pszSetName);
@@ -585,7 +585,7 @@ KeyValues* KeyValues::GetNextKey() const
const char* KeyValues::GetName(void) const
{
return KeyValuesSystem()->m_pVtable->GetStringForSymbol(
- KeyValuesSystem(), MAKE_3_BYTES_FROM_1_AND_2(m_iKeyNameCaseSensitive1, m_iKeyNameCaseSensitive2));
+ KeyValuesSystem(), MAKE_3_BYTES_FROM_1_AND_2(m_iKeyNameCaseSensitive1, m_iKeyNameCaseSensitive2));
}
//-----------------------------------------------------------------------------
@@ -974,7 +974,7 @@ void KeyValues::SetName(const char* pszSetName)
{
HKeySymbol hCaseSensitiveKeyName = INVALID_KEY_SYMBOL, hCaseInsensitiveKeyName = INVALID_KEY_SYMBOL;
hCaseSensitiveKeyName =
- KeyValuesSystem()->m_pVtable->GetSymbolForStringCaseSensitive(KeyValuesSystem(), hCaseInsensitiveKeyName, pszSetName, false);
+ KeyValuesSystem()->m_pVtable->GetSymbolForStringCaseSensitive(KeyValuesSystem(), hCaseInsensitiveKeyName, pszSetName, false);
m_iKeyName = hCaseInsensitiveKeyName;
SPLIT_3_BYTES_INTO_1_AND_2(m_iKeyNameCaseSensitive1, m_iKeyNameCaseSensitive2, hCaseSensitiveKeyName);
diff --git a/NorthstarDLL/shared/keyvalues.h b/NorthstarDLL/shared/keyvalues.h
index 64ca0cc7..e40e8cfa 100644
--- a/NorthstarDLL/shared/keyvalues.h
+++ b/NorthstarDLL/shared/keyvalues.h
@@ -58,7 +58,7 @@ class KeyValues
KeyValues(const char* pszSetName, const char* pszFirstKey, const wchar_t* pwszFirstValue);
KeyValues(const char* pszSetName, const char* pszFirstKey, int iFirstValue);
KeyValues(
- const char* pszSetName, const char* pszFirstKey, const char* pszFirstValue, const char* pszSecondKey, const char* pszSecondValue);
+ const char* pszSetName, const char* pszFirstKey, const char* pszFirstValue, const char* pszSecondKey, const char* pszSecondValue);
KeyValues(const char* pszSetName, const char* pszFirstKey, int iFirstValue, const char* pszSecondKey, int iSecondValue);
~KeyValues(void);
diff --git a/NorthstarDLL/shared/maxplayers.cpp b/NorthstarDLL/shared/maxplayers.cpp
index b2a09578..4bab54cc 100644
--- a/NorthstarDLL/shared/maxplayers.cpp
+++ b/NorthstarDLL/shared/maxplayers.cpp
@@ -114,10 +114,10 @@ ON_DLL_LOAD("engine.dll", MaxPlayersOverride_Engine, (CModule module))
// patch max players in userinfo stringtable creation
/*{
- int maxPlayersPowerOf2 = 1;
- while (maxPlayersPowerOf2 < NEW_MAX_PLAYERS)
- maxPlayersPowerOf2 <<= 1;
- ChangeOffset<unsigned char>((char*)baseAddress + 0x114B79 + 3, maxPlayersPowerOf2); // original: 32
+ int maxPlayersPowerOf2 = 1;
+ while (maxPlayersPowerOf2 < NEW_MAX_PLAYERS)
+ maxPlayersPowerOf2 <<= 1;
+ ChangeOffset<unsigned char>((char*)baseAddress + 0x114B79 + 3, maxPlayersPowerOf2); // original: 32
}*/
// this is not supposed to work at all but it does on 64 players (how)
// proper fix below
@@ -184,9 +184,9 @@ void,, (bool a1, float a2))
v3 = *(unsigned char*)(g_pGlobals + 73);
if (*(DWORD*)(qword_1814D9648 + 92) &&
- ((*(unsigned __int8(__fastcall**)(__int64))(*(__int64*)g_pEngineServer + 32))(g_pEngineServer) ||
- !*(DWORD*)(qword_1814DA408 + 92)) &&
- v3)
+ ((*(unsigned __int8(__fastcall**)(__int64))(*(__int64*)g_pEngineServer + 32))(g_pEngineServer) ||
+ !*(DWORD*)(qword_1814DA408 + 92)) &&
+ v3)
{
globals = g_pGlobals;
v5 = 1;
@@ -482,11 +482,11 @@ ON_DLL_LOAD("client.dll", MaxPlayersOverride_Client, (CModule module))
// C_PlayerResource::C_PlayerResource - change m_szName address
ChangeOffset<unsigned int>(
- module.Offset(0x1640D0 + 3), C_PlayerResource_OriginalSize + PlayerResource_Name_Start); // appended to the end of the class
+ module.Offset(0x1640D0 + 3), C_PlayerResource_OriginalSize + PlayerResource_Name_Start); // appended to the end of the class
// C_PlayerResource::C_PlayerResource - change m_szName address
ChangeOffset<unsigned int>(
- module.Offset(0x1640D0 + 3), C_PlayerResource_OriginalSize + PlayerResource_Name_Start); // appended to the end of the class
+ module.Offset(0x1640D0 + 3), C_PlayerResource_OriginalSize + PlayerResource_Name_Start); // appended to the end of the class
// C_PlayerResource::C_PlayerResource - increase memset length to clean newly allocated data
ChangeOffset<unsigned int>(module.Offset(0x1640D0 + 3), 2244 + C_PlayerResource_AddedSize);
diff --git a/NorthstarDLL/shared/misccommands.cpp b/NorthstarDLL/shared/misccommands.cpp
index 5d9ced99..ae3903bd 100644
--- a/NorthstarDLL/shared/misccommands.cpp
+++ b/NorthstarDLL/shared/misccommands.cpp
@@ -113,30 +113,30 @@ void ConCommand_cvar_reset(const CCommand& arg)
void AddMiscConCommands()
{
RegisterConCommand(
- "force_newgame",
- ConCommand_force_newgame,
- "forces a map load through directly setting g_pHostState->m_iNextState to HS_NEW_GAME",
- FCVAR_NONE);
+ "force_newgame",
+ ConCommand_force_newgame,
+ "forces a map load through directly setting g_pHostState->m_iNextState to HS_NEW_GAME",
+ FCVAR_NONE);
RegisterConCommand(
- "ns_start_reauth_and_leave_to_lobby",
- ConCommand_ns_start_reauth_and_leave_to_lobby,
- "called by the server, used to reauth and return the player to lobby when leaving a game",
- FCVAR_SERVER_CAN_EXECUTE);
+ "ns_start_reauth_and_leave_to_lobby",
+ ConCommand_ns_start_reauth_and_leave_to_lobby,
+ "called by the server, used to reauth and return the player to lobby when leaving a game",
+ FCVAR_SERVER_CAN_EXECUTE);
// this is a concommand because we make a deferred call to it from another thread
RegisterConCommand("ns_end_reauth_and_leave_to_lobby", ConCommand_ns_end_reauth_and_leave_to_lobby, "", FCVAR_NONE);
RegisterConCommand(
- "cvar_setdefaultvalue",
- ConCommand_cvar_setdefaultvalue,
- "overwrites the default value of a cvar, for use with script and cvar_reset",
- FCVAR_NONE);
+ "cvar_setdefaultvalue",
+ ConCommand_cvar_setdefaultvalue,
+ "overwrites the default value of a cvar, for use with script and cvar_reset",
+ FCVAR_NONE);
RegisterConCommand(
- "cvar_setvalueanddefaultvalue",
- ConCommand_cvar_setvalueanddefaultvalue,
- "overwrites the current value and default value of a cvar, for use with script and cvar_reset",
- FCVAR_NONE);
+ "cvar_setvalueanddefaultvalue",
+ ConCommand_cvar_setvalueanddefaultvalue,
+ "overwrites the current value and default value of a cvar, for use with script and cvar_reset",
+ FCVAR_NONE);
RegisterConCommand("cvar_reset", ConCommand_cvar_reset, "resets a cvar's value to its default value", FCVAR_NONE);
}
@@ -184,185 +184,185 @@ void FixupCvarFlags()
// array of cvars and the flags we want to add to them
const std::vector<std::tuple<const char*, uint32_t>> CVAR_FIXUP_ADD_FLAGS = {
- // system commands (i.e. necessary for proper functionality)
- // servers need to be able to disconnect
- {"disconnect", FCVAR_SERVER_CAN_EXECUTE},
-
- // cheat commands
- {"give", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"give_server", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"givecurrentammo", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"takecurrentammo", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
-
- {"switchclass", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"set", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"_setClassVarServer", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
-
- {"ent_create", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"ent_throw", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"ent_setname", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"ent_teleport", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"ent_remove", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"ent_remove_all", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"ent_fire", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
-
- {"particle_create", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"particle_recreate", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"particle_kill", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
-
- {"test_setteam", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"melee_lunge_ent", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
-
- // fcvars that should be cheats
- {"net_ignoreAllSnapshots", FCVAR_CHEAT},
- {"highlight_draw", FCVAR_CHEAT},
- // these should potentially be replicated rather than cheat, like sv_footsteps is
- // however they're defined on client, so can't make replicated atm sadly
- {"cl_footstep_event_max_dist", FCVAR_CHEAT},
- {"cl_footstep_event_max_dist_titan", FCVAR_CHEAT},
+ // system commands (i.e. necessary for proper functionality)
+ // servers need to be able to disconnect
+ {"disconnect", FCVAR_SERVER_CAN_EXECUTE},
+
+ // cheat commands
+ {"give", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"give_server", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"givecurrentammo", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"takecurrentammo", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+
+ {"switchclass", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"set", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"_setClassVarServer", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+
+ {"ent_create", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"ent_throw", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"ent_setname", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"ent_teleport", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"ent_remove", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"ent_remove_all", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"ent_fire", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+
+ {"particle_create", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"particle_recreate", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"particle_kill", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+
+ {"test_setteam", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"melee_lunge_ent", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+
+ // fcvars that should be cheats
+ {"net_ignoreAllSnapshots", FCVAR_CHEAT},
+ {"highlight_draw", FCVAR_CHEAT},
+ // these should potentially be replicated rather than cheat, like sv_footsteps is
+ // however they're defined on client, so can't make replicated atm sadly
+ {"cl_footstep_event_max_dist", FCVAR_CHEAT},
+ {"cl_footstep_event_max_dist_titan", FCVAR_CHEAT},
};
// array of cvars and the flags we want to remove from them
const std::vector<std::tuple<const char*, uint32_t>> CVAR_FIXUP_REMOVE_FLAGS = {
- // unsure how this command works, not even sure it's used on retail servers, deffo shouldn't be used on northstar
- {"migrateme", FCVAR_SERVER_CAN_EXECUTE | FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"recheck", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS}, // we don't need this on northstar servers, it's for communities
-
- // unsure how these work exactly (rpt system likely somewhat stripped?), removing anyway since they won't be used
- {"rpt_client_enable", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
- {"rpt_password", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
-
- // these are devonly by default but should be modifyable
- // NOTE: not all of these may actually do anything or work properly in practice
- // network settings
- {"cl_updaterate_mp", FCVAR_DEVELOPMENTONLY},
- {"cl_updaterate_sp", FCVAR_DEVELOPMENTONLY},
- {"clock_bias_sp", FCVAR_DEVELOPMENTONLY},
- {"clock_bias_mp", FCVAR_DEVELOPMENTONLY},
- {"cl_interpolate", FCVAR_DEVELOPMENTONLY}, // super duper ultra fucks anims if changed
- {"cl_interpolateSoAllAnimsLoop", FCVAR_DEVELOPMENTONLY},
- {"cl_cmdrate", FCVAR_DEVELOPMENTONLY},
- {"cl_cmdbackup", FCVAR_DEVELOPMENTONLY},
- {"rate", FCVAR_DEVELOPMENTONLY},
- {"net_minroutable", FCVAR_DEVELOPMENTONLY},
- {"net_maxroutable", FCVAR_DEVELOPMENTONLY},
- {"net_lerpFields", FCVAR_DEVELOPMENTONLY},
- {"net_ignoreAllSnapshots", FCVAR_DEVELOPMENTONLY},
- {"net_chokeloop", FCVAR_DEVELOPMENTONLY},
- {"sv_unlag", FCVAR_DEVELOPMENTONLY},
- {"sv_maxunlag", FCVAR_DEVELOPMENTONLY},
- {"sv_lagpushticks", FCVAR_DEVELOPMENTONLY},
- {"sv_instancebaselines", FCVAR_DEVELOPMENTONLY},
- {"sv_voiceEcho", FCVAR_DEVELOPMENTONLY},
- {"net_compresspackets", FCVAR_DEVELOPMENTONLY},
- {"net_compresspackets_minsize", FCVAR_DEVELOPMENTONLY},
- {"net_verifyEncryption", FCVAR_DEVELOPMENTONLY}, // unsure if functional in retail
-
- // gameplay settings
- {"vel_samples", FCVAR_DEVELOPMENTONLY},
- {"vel_sampleFrequency", FCVAR_DEVELOPMENTONLY},
- {"sv_friction", FCVAR_DEVELOPMENTONLY},
- {"sv_stopspeed", FCVAR_DEVELOPMENTONLY},
- {"sv_airaccelerate", FCVAR_DEVELOPMENTONLY},
- {"sv_forceGrapplesToFail", FCVAR_DEVELOPMENTONLY},
- {"sv_maxvelocity", FCVAR_DEVELOPMENTONLY},
- {"sv_footsteps", FCVAR_DEVELOPMENTONLY},
- // these 2 are flagged as CHEAT above, could be made REPLICATED later potentially
- {"cl_footstep_event_max_dist", FCVAR_DEVELOPMENTONLY},
- {"cl_footstep_event_max_dist_titan", FCVAR_DEVELOPMENTONLY},
- {"sv_balanceTeams", FCVAR_DEVELOPMENTONLY},
- {"rodeo_enable", FCVAR_DEVELOPMENTONLY},
- {"sv_forceRodeoToFail", FCVAR_DEVELOPMENTONLY},
- {"player_find_rodeo_target_per_cmd", FCVAR_DEVELOPMENTONLY}, // todo test before merge
- {"hud_takesshots", FCVAR_DEVELOPMENTONLY}, // very likely does not work but would be cool if it did
-
- {"cam_collision", FCVAR_DEVELOPMENTONLY},
- {"cam_idealdelta", FCVAR_DEVELOPMENTONLY},
- {"cam_ideallag", FCVAR_DEVELOPMENTONLY},
-
- // graphics/visual settings
- {"mat_colorcorrection", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoRadius", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoDepthMax", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoBlurSharpness", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoIntensity", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoBias", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoDistanceLerp", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoBlurRadius", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoExponent", FCVAR_DEVELOPMENTONLY},
- {"r_hbaoDepthFadePctDefault", FCVAR_DEVELOPMENTONLY},
- {"r_drawscreenspaceparticles", FCVAR_DEVELOPMENTONLY},
- {"ui_loadingscreen_fadeout_time", FCVAR_DEVELOPMENTONLY},
- {"ui_loadingscreen_fadein_time", FCVAR_DEVELOPMENTONLY},
- {"ui_loadingscreen_transition_time", FCVAR_DEVELOPMENTONLY},
- {"ui_loadingscreen_mintransition_time", FCVAR_DEVELOPMENTONLY},
- // these 2 could be FCVAR_CHEAT, i guess?
- {"cl_draw_player_model", FCVAR_DEVELOPMENTONLY},
- {"cl_always_draw_3p_player", FCVAR_DEVELOPMENTONLY},
- {"idcolor_neutral", FCVAR_DEVELOPMENTONLY},
- {"idcolor_ally", FCVAR_DEVELOPMENTONLY},
- {"idcolor_ally_cb1", FCVAR_DEVELOPMENTONLY},
- {"idcolor_ally_cb2", FCVAR_DEVELOPMENTONLY},
- {"idcolor_ally_cb3", FCVAR_DEVELOPMENTONLY},
- {"idcolor_enemy", FCVAR_DEVELOPMENTONLY},
- {"idcolor_enemy_cb1", FCVAR_DEVELOPMENTONLY},
- {"idcolor_enemy_cb2", FCVAR_DEVELOPMENTONLY},
- {"idcolor_enemy_cb3", FCVAR_DEVELOPMENTONLY},
- {"playerListPartyColorR", FCVAR_DEVELOPMENTONLY},
- {"playerListPartyColorG", FCVAR_DEVELOPMENTONLY},
- {"playerListPartyColorB", FCVAR_DEVELOPMENTONLY},
- {"playerListUseFriendColor", FCVAR_DEVELOPMENTONLY},
- {"fx_impact_neutral", FCVAR_DEVELOPMENTONLY},
- {"fx_impact_ally", FCVAR_DEVELOPMENTONLY},
- {"fx_impact_enemy", FCVAR_DEVELOPMENTONLY},
- {"hitch_alert_color", FCVAR_DEVELOPMENTONLY},
- {"particles_cull_all", FCVAR_DEVELOPMENTONLY},
- {"particles_cull_dlights", FCVAR_DEVELOPMENTONLY},
- {"map_settings_override", FCVAR_DEVELOPMENTONLY},
- {"highlight_draw", FCVAR_DEVELOPMENTONLY},
-
- // sys/engine settings
- {"sleep_when_meeting_framerate", FCVAR_DEVELOPMENTONLY},
- {"sleep_when_meeting_framerate_headroom_ms", FCVAR_DEVELOPMENTONLY},
- {"not_focus_sleep", FCVAR_DEVELOPMENTONLY},
- {"sp_not_focus_pause", FCVAR_DEVELOPMENTONLY},
- {"joy_requireFocus", FCVAR_DEVELOPMENTONLY},
-
- {"host_thread_mode", FCVAR_DEVELOPMENTONLY},
- {"phys_enable_simd_optimizations", FCVAR_DEVELOPMENTONLY},
- {"phys_enable_experimental_optimizations", FCVAR_DEVELOPMENTONLY},
-
- {"community_frame_run", FCVAR_DEVELOPMENTONLY},
- {"sv_single_core_dedi", FCVAR_DEVELOPMENTONLY},
- {"sv_stressbots", FCVAR_DEVELOPMENTONLY},
-
- {"fatal_script_errors", FCVAR_DEVELOPMENTONLY},
- {"fatal_script_errors_client", FCVAR_DEVELOPMENTONLY},
- {"fatal_script_errors_server", FCVAR_DEVELOPMENTONLY},
- {"script_error_on_midgame_load", FCVAR_DEVELOPMENTONLY}, // idk what this is
-
- {"ai_ainRebuildOnMapStart", FCVAR_DEVELOPMENTONLY},
-
- {"save_enable", FCVAR_DEVELOPMENTONLY},
-
- // cheat commands
- {"switchclass", FCVAR_DEVELOPMENTONLY},
- {"set", FCVAR_DEVELOPMENTONLY},
- {"_setClassVarServer", FCVAR_DEVELOPMENTONLY},
-
- // reparse commands
- {"aisettings_reparse", FCVAR_DEVELOPMENTONLY},
- {"aisettings_reparse_client", FCVAR_DEVELOPMENTONLY},
- {"damagedefs_reparse", FCVAR_DEVELOPMENTONLY},
- {"damagedefs_reparse_client", FCVAR_DEVELOPMENTONLY},
- {"playerSettings_reparse", FCVAR_DEVELOPMENTONLY},
- {"_playerSettings_reparse_Server", FCVAR_DEVELOPMENTONLY},
+ // unsure how this command works, not even sure it's used on retail servers, deffo shouldn't be used on northstar
+ {"migrateme", FCVAR_SERVER_CAN_EXECUTE | FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"recheck", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS}, // we don't need this on northstar servers, it's for communities
+
+ // unsure how these work exactly (rpt system likely somewhat stripped?), removing anyway since they won't be used
+ {"rpt_client_enable", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+ {"rpt_password", FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS},
+
+ // these are devonly by default but should be modifyable
+ // NOTE: not all of these may actually do anything or work properly in practice
+ // network settings
+ {"cl_updaterate_mp", FCVAR_DEVELOPMENTONLY},
+ {"cl_updaterate_sp", FCVAR_DEVELOPMENTONLY},
+ {"clock_bias_sp", FCVAR_DEVELOPMENTONLY},
+ {"clock_bias_mp", FCVAR_DEVELOPMENTONLY},
+ {"cl_interpolate", FCVAR_DEVELOPMENTONLY}, // super duper ultra fucks anims if changed
+ {"cl_interpolateSoAllAnimsLoop", FCVAR_DEVELOPMENTONLY},
+ {"cl_cmdrate", FCVAR_DEVELOPMENTONLY},
+ {"cl_cmdbackup", FCVAR_DEVELOPMENTONLY},
+ {"rate", FCVAR_DEVELOPMENTONLY},
+ {"net_minroutable", FCVAR_DEVELOPMENTONLY},
+ {"net_maxroutable", FCVAR_DEVELOPMENTONLY},
+ {"net_lerpFields", FCVAR_DEVELOPMENTONLY},
+ {"net_ignoreAllSnapshots", FCVAR_DEVELOPMENTONLY},
+ {"net_chokeloop", FCVAR_DEVELOPMENTONLY},
+ {"sv_unlag", FCVAR_DEVELOPMENTONLY},
+ {"sv_maxunlag", FCVAR_DEVELOPMENTONLY},
+ {"sv_lagpushticks", FCVAR_DEVELOPMENTONLY},
+ {"sv_instancebaselines", FCVAR_DEVELOPMENTONLY},
+ {"sv_voiceEcho", FCVAR_DEVELOPMENTONLY},
+ {"net_compresspackets", FCVAR_DEVELOPMENTONLY},
+ {"net_compresspackets_minsize", FCVAR_DEVELOPMENTONLY},
+ {"net_verifyEncryption", FCVAR_DEVELOPMENTONLY}, // unsure if functional in retail
+
+ // gameplay settings
+ {"vel_samples", FCVAR_DEVELOPMENTONLY},
+ {"vel_sampleFrequency", FCVAR_DEVELOPMENTONLY},
+ {"sv_friction", FCVAR_DEVELOPMENTONLY},
+ {"sv_stopspeed", FCVAR_DEVELOPMENTONLY},
+ {"sv_airaccelerate", FCVAR_DEVELOPMENTONLY},
+ {"sv_forceGrapplesToFail", FCVAR_DEVELOPMENTONLY},
+ {"sv_maxvelocity", FCVAR_DEVELOPMENTONLY},
+ {"sv_footsteps", FCVAR_DEVELOPMENTONLY},
+ // these 2 are flagged as CHEAT above, could be made REPLICATED later potentially
+ {"cl_footstep_event_max_dist", FCVAR_DEVELOPMENTONLY},
+ {"cl_footstep_event_max_dist_titan", FCVAR_DEVELOPMENTONLY},
+ {"sv_balanceTeams", FCVAR_DEVELOPMENTONLY},
+ {"rodeo_enable", FCVAR_DEVELOPMENTONLY},
+ {"sv_forceRodeoToFail", FCVAR_DEVELOPMENTONLY},
+ {"player_find_rodeo_target_per_cmd", FCVAR_DEVELOPMENTONLY}, // todo test before merge
+ {"hud_takesshots", FCVAR_DEVELOPMENTONLY}, // very likely does not work but would be cool if it did
+
+ {"cam_collision", FCVAR_DEVELOPMENTONLY},
+ {"cam_idealdelta", FCVAR_DEVELOPMENTONLY},
+ {"cam_ideallag", FCVAR_DEVELOPMENTONLY},
+
+ // graphics/visual settings
+ {"mat_colorcorrection", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoRadius", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoDepthMax", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoBlurSharpness", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoIntensity", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoBias", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoDistanceLerp", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoBlurRadius", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoExponent", FCVAR_DEVELOPMENTONLY},
+ {"r_hbaoDepthFadePctDefault", FCVAR_DEVELOPMENTONLY},
+ {"r_drawscreenspaceparticles", FCVAR_DEVELOPMENTONLY},
+ {"ui_loadingscreen_fadeout_time", FCVAR_DEVELOPMENTONLY},
+ {"ui_loadingscreen_fadein_time", FCVAR_DEVELOPMENTONLY},
+ {"ui_loadingscreen_transition_time", FCVAR_DEVELOPMENTONLY},
+ {"ui_loadingscreen_mintransition_time", FCVAR_DEVELOPMENTONLY},
+ // these 2 could be FCVAR_CHEAT, i guess?
+ {"cl_draw_player_model", FCVAR_DEVELOPMENTONLY},
+ {"cl_always_draw_3p_player", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_neutral", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_ally", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_ally_cb1", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_ally_cb2", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_ally_cb3", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_enemy", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_enemy_cb1", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_enemy_cb2", FCVAR_DEVELOPMENTONLY},
+ {"idcolor_enemy_cb3", FCVAR_DEVELOPMENTONLY},
+ {"playerListPartyColorR", FCVAR_DEVELOPMENTONLY},
+ {"playerListPartyColorG", FCVAR_DEVELOPMENTONLY},
+ {"playerListPartyColorB", FCVAR_DEVELOPMENTONLY},
+ {"playerListUseFriendColor", FCVAR_DEVELOPMENTONLY},
+ {"fx_impact_neutral", FCVAR_DEVELOPMENTONLY},
+ {"fx_impact_ally", FCVAR_DEVELOPMENTONLY},
+ {"fx_impact_enemy", FCVAR_DEVELOPMENTONLY},
+ {"hitch_alert_color", FCVAR_DEVELOPMENTONLY},
+ {"particles_cull_all", FCVAR_DEVELOPMENTONLY},
+ {"particles_cull_dlights", FCVAR_DEVELOPMENTONLY},
+ {"map_settings_override", FCVAR_DEVELOPMENTONLY},
+ {"highlight_draw", FCVAR_DEVELOPMENTONLY},
+
+ // sys/engine settings
+ {"sleep_when_meeting_framerate", FCVAR_DEVELOPMENTONLY},
+ {"sleep_when_meeting_framerate_headroom_ms", FCVAR_DEVELOPMENTONLY},
+ {"not_focus_sleep", FCVAR_DEVELOPMENTONLY},
+ {"sp_not_focus_pause", FCVAR_DEVELOPMENTONLY},
+ {"joy_requireFocus", FCVAR_DEVELOPMENTONLY},
+
+ {"host_thread_mode", FCVAR_DEVELOPMENTONLY},
+ {"phys_enable_simd_optimizations", FCVAR_DEVELOPMENTONLY},
+ {"phys_enable_experimental_optimizations", FCVAR_DEVELOPMENTONLY},
+
+ {"community_frame_run", FCVAR_DEVELOPMENTONLY},
+ {"sv_single_core_dedi", FCVAR_DEVELOPMENTONLY},
+ {"sv_stressbots", FCVAR_DEVELOPMENTONLY},
+
+ {"fatal_script_errors", FCVAR_DEVELOPMENTONLY},
+ {"fatal_script_errors_client", FCVAR_DEVELOPMENTONLY},
+ {"fatal_script_errors_server", FCVAR_DEVELOPMENTONLY},
+ {"script_error_on_midgame_load", FCVAR_DEVELOPMENTONLY}, // idk what this is
+
+ {"ai_ainRebuildOnMapStart", FCVAR_DEVELOPMENTONLY},
+
+ {"save_enable", FCVAR_DEVELOPMENTONLY},
+
+ // cheat commands
+ {"switchclass", FCVAR_DEVELOPMENTONLY},
+ {"set", FCVAR_DEVELOPMENTONLY},
+ {"_setClassVarServer", FCVAR_DEVELOPMENTONLY},
+
+ // reparse commands
+ {"aisettings_reparse", FCVAR_DEVELOPMENTONLY},
+ {"aisettings_reparse_client", FCVAR_DEVELOPMENTONLY},
+ {"damagedefs_reparse", FCVAR_DEVELOPMENTONLY},
+ {"damagedefs_reparse_client", FCVAR_DEVELOPMENTONLY},
+ {"playerSettings_reparse", FCVAR_DEVELOPMENTONLY},
+ {"_playerSettings_reparse_Server", FCVAR_DEVELOPMENTONLY},
};
const std::vector<std::tuple<const char*, const char*>> CVAR_FIXUP_DEFAULT_VALUES = {
- {"sv_stressbots", "0"}, // not currently used but this is probably a bad default if we get bots working
- {"cl_pred_optimize", "0"} // fixes issues with animation prediction in thirdperson
+ {"sv_stressbots", "0"}, // not currently used but this is probably a bad default if we get bots working
+ {"cl_pred_optimize", "0"} // fixes issues with animation prediction in thirdperson
};
for (auto& fixup : CVAR_FIXUP_ADD_FLAGS)
diff --git a/NorthstarDLL/shared/playlist.cpp b/NorthstarDLL/shared/playlist.cpp
index ab7aab22..8967cae3 100644
--- a/NorthstarDLL/shared/playlist.cpp
+++ b/NorthstarDLL/shared/playlist.cpp
@@ -26,7 +26,7 @@ char, __fastcall, (void* a1, void* a2))
{
// the private_match playlist on mp_lobby is the only situation where there should be any legitimate sending of this netmessage
if (!Cvar_ns_use_clc_SetPlaylistVarOverride->GetBool() || strcmp(R2::GetCurrentPlaylistName(), "private_match") ||
- strcmp(R2::g_pGlobals->m_pMapName, "mp_lobby"))
+ strcmp(R2::g_pGlobals->m_pMapName, "mp_lobby"))
return 1;
return clc_SetPlaylistVarOverride__Process(a1, a2);
@@ -114,7 +114,7 @@ ON_DLL_LOAD_RELIESON("engine.dll", PlaylistHooks, (ConCommand, ConVar), (CModule
// disabled altogether, since the custom menus won't use it anyway this should only really be accepted if you want vanilla client
// compatibility
Cvar_ns_use_clc_SetPlaylistVarOverride = new ConVar(
- "ns_use_clc_SetPlaylistVarOverride", "0", FCVAR_GAMEDLL, "Whether the server should accept clc_SetPlaylistVarOverride messages");
+ "ns_use_clc_SetPlaylistVarOverride", "0", FCVAR_GAMEDLL, "Whether the server should accept clc_SetPlaylistVarOverride messages");
// patch to prevent clc_SetPlaylistVarOverride from being able to crash servers if we reach max overrides due to a call to Error (why is
// this possible respawn, wtf) todo: add a warning for this