You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.9 KiB
65 lines
1.9 KiB
5 years ago
|
//========= 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
|