1.1 --- a/core/HalfLife2.cpp Wed Aug 15 17:22:21 2007 +0000
1.2 +++ b/core/HalfLife2.cpp Wed Aug 15 18:26:15 2007 +0000
1.3 @@ -33,6 +33,7 @@
1.4 #include "sourcemod.h"
1.5 #include "sourcemm_api.h"
1.6 #include "UserMessages.h"
1.7 +#include "PlayerManager.h"
1.8
1.9 CHalfLife2 g_HL2;
1.10 bool g_IsOriginalEngine = false;
1.11 @@ -333,3 +334,38 @@
1.12
1.13 return true;
1.14 }
1.15 +
1.16 +void CHalfLife2::AddToFakeCliCmdQueue(int client, int userid, const char *cmd)
1.17 +{
1.18 + DelayedFakeCliCmd *pFake;
1.19 +
1.20 + if (m_FreeCmds.empty())
1.21 + {
1.22 + pFake = new DelayedFakeCliCmd;
1.23 + } else {
1.24 + pFake = m_FreeCmds.front();
1.25 + m_FreeCmds.pop();
1.26 + }
1.27 +
1.28 + pFake->client = client;
1.29 + pFake->userid = userid;
1.30 + pFake->cmd.assign(cmd);
1.31 +
1.32 + m_CmdQueue.push(pFake);
1.33 +}
1.34 +
1.35 +void CHalfLife2::ProcessFakeCliCmdQueue()
1.36 +{
1.37 + while (!m_CmdQueue.empty())
1.38 + {
1.39 + DelayedFakeCliCmd *pFake = m_CmdQueue.first();
1.40 +
1.41 + if (g_Players.GetClientOfUserId(pFake->userid) == pFake->client)
1.42 + {
1.43 + CPlayer *pPlayer = g_Players.GetPlayerByIndex(pFake->client);
1.44 + serverpluginhelpers->ClientCommand(pPlayer->GetEdict(), pFake->cmd.c_str());
1.45 + }
1.46 +
1.47 + m_CmdQueue.pop();
1.48 + }
1.49 +}