core/HalfLife2.cpp
changeset 1338 1ba17552b7b1
parent 1330 ab94316bb52b
child 1423 e73b3563f254
     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 +}