mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
74 lines
2.4 KiB
C++
74 lines
2.4 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 "tier1/strtools.h"
|
|
#include "engine/sys_dll.h"
|
|
#include "engine/sys_dll2.h"
|
|
#ifndef DEDICATED
|
|
#include "client/vengineclient_impl.h"
|
|
#endif // !DEDICATED
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Figure out if we're running a Valve mod or not.
|
|
//-----------------------------------------------------------------------------
|
|
static bool IsValveMod(const char* pModName)
|
|
{
|
|
return (Q_stricmp(pModName, "cstrike") == 0 ||
|
|
Q_stricmp(pModName, "dod") == 0 ||
|
|
Q_stricmp(pModName, "hl1mp") == 0 ||
|
|
Q_stricmp(pModName, "tf") == 0 ||
|
|
Q_stricmp(pModName, "hl2mp") == 0 ||
|
|
Q_stricmp(pModName, "csgo") == 0);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Figure out if we're running a Respawn mod or not.
|
|
//-----------------------------------------------------------------------------
|
|
static bool IsRespawnMod(const char* pModName)
|
|
{
|
|
return (Q_stricmp(pModName, "r1") == 0 ||
|
|
Q_stricmp(pModName, "r2") == 0 ||
|
|
Q_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))
|
|
{
|
|
#ifndef DEDICATED
|
|
g_pEngineClient->SetRestrictServerCommands(true); // Restrict server commands.
|
|
g_pEngineClient->SetRestrictClientCommands(true); // Restrict client commands.
|
|
#endif // !DEDICATED
|
|
|
|
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);
|
|
} |