diff options
Diffstat (limited to 'game/server/player_command.h')
| -rw-r--r-- | game/server/player_command.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/game/server/player_command.h b/game/server/player_command.h new file mode 100644 index 0000000..574fc8d --- /dev/null +++ b/game/server/player_command.h @@ -0,0 +1,64 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef PLAYER_COMMAND_H +#define PLAYER_COMMAND_H +#pragma once + + +#include "edict.h" +#include "usercmd.h" + + +class IMoveHelper; +class CMoveData; +class CBasePlayer; + +//----------------------------------------------------------------------------- +// Purpose: Server side player movement +//----------------------------------------------------------------------------- +class CPlayerMove +{ +public: + DECLARE_CLASS_NOBASE( CPlayerMove ); + + // Construction/destruction + CPlayerMove( void ); + virtual ~CPlayerMove( void ) {} + + // Public interfaces: + // Run a movement command from the player + void RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper *moveHelper ); + +protected: + // Prepare for running movement + virtual void SetupMove( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ); + + // Finish movement + virtual void FinishMove( CBasePlayer *player, CUserCmd *ucmd, CMoveData *move ); + + // Called before and after any movement processing + virtual void StartCommand( CBasePlayer *player, CUserCmd *cmd ); + void FinishCommand( CBasePlayer *player ); + + // Helper to determine if the user is standing on ground + void CheckMovingGround( CBasePlayer *player, double frametime ); + + // Helpers to call pre and post think for player, and to call think if a think function is set + void RunPreThink( CBasePlayer *player ); + void RunThink (CBasePlayer *ent, double frametime ); + void RunPostThink( CBasePlayer *player ); +}; + + +//----------------------------------------------------------------------------- +// Singleton accessor +//----------------------------------------------------------------------------- +CPlayerMove *PlayerMove(); + + +#endif // PLAYER_COMMAND_H |