mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
* Improve ConVar class (fixed several bugs). * Hook CEngineAPI::ModInit() and set m_bRestrictServerCommands from there. * Disable unused ConVar's and purge unused ConCommands in CEngineAPI::ModInit() for dedicated. * Small relocation of malloc related signatures.
68 lines
2.2 KiB
C++
68 lines
2.2 KiB
C++
//====== Copyright 1996-2005, Valve Corporation, All rights reserved. ======//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//===========================================================================//
|
|
|
|
#include "core/stdafx.h"
|
|
#include "tier1/cmd.h"
|
|
#include "tier1/cvar.h"
|
|
#include "engine/sys_dll.h"
|
|
#include "engine/sys_dll2.h"
|
|
#include "client/vengineclient_impl.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Figure out if we're running a Valve mod or not.
|
|
//-----------------------------------------------------------------------------
|
|
static bool IsValveMod(const char* pModName)
|
|
{
|
|
return (_stricmp(pModName, "cstrike") == 0 ||
|
|
_stricmp(pModName, "dod") == 0 ||
|
|
_stricmp(pModName, "hl1mp") == 0 ||
|
|
_stricmp(pModName, "tf") == 0 ||
|
|
_stricmp(pModName, "hl2mp") == 0 ||
|
|
_stricmp(pModName, "csgo") == 0);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Figure out if we're running a Respawn mod or not.
|
|
//-----------------------------------------------------------------------------
|
|
static bool IsRespawnMod(const char* pModName)
|
|
{
|
|
return (_stricmp(pModName, "r1") == 0 ||
|
|
_stricmp(pModName, "r2") == 0 ||
|
|
_stricmp(pModName, "r5") == 0);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Initialization, shutdown of a mod.
|
|
//-----------------------------------------------------------------------------
|
|
bool CEngineAPI::ModInit(CEngineAPI* pEngineAPI, const char* pModName, const char* pGameDir)
|
|
{
|
|
g_pConCommand->InitShipped();
|
|
g_pConCommand->PurgeShipped();
|
|
g_pConVar->InitShipped();
|
|
g_pConVar->PurgeShipped();
|
|
|
|
bool results = CEngineAPI_ModInit(pEngineAPI, pModName, pGameDir);
|
|
if (!IsValveMod(pModName) && IsRespawnMod(pModName))
|
|
{
|
|
*m_bRestrictServerCommands = true; // Restrict commands.
|
|
|
|
ConCommandBase* disconnect = g_pCVar->FindCommandBase("disconnect");
|
|
disconnect->AddFlags(FCVAR_SERVER_CAN_EXECUTE); // Make sure server is not restricted to this.
|
|
}
|
|
return results;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
void SysDll2_Attach()
|
|
{
|
|
DetourAttach((LPVOID*)&CEngineAPI_ModInit, &CEngineAPI::ModInit);
|
|
}
|
|
|
|
void SysDll2_Detach()
|
|
{
|
|
DetourDetach((LPVOID*)&CEngineAPI_ModInit, &CEngineAPI::ModInit);
|
|
} |