📄 basecharacter.h
字号:
// ----------------------------------------------------------------------- //
//
// MODULE : BaseCharacter.h
//
// PURPOSE : Base class for player and AI
//
// CREATED : 10/6/97
//
// ----------------------------------------------------------------------- //
#ifndef __BASE_CHARACTER_H__
#define __BASE_CHARACTER_H__
#include "cpp_engineobjects_de.h"
#include "Destructable.h"
#include "InventoryMgr.h"
#include "Anim_Sound.h"
#include "ContainerCodes.h"
#include "ObjectUtilities.h"
#include "B2BaseClass.h"
#include "movement.h"
class VolumeBrush;
#define DEFAULT_LADDER_VEL 400.0f
#define DEFAULT_SWIM_VEL 175.0f
#define MAX_NUM_WEAPONS 5
class CBaseCharacter : public B2BaseClass
{
public :
CBaseCharacter(DBYTE nType=OT_MODEL); // : BaseClass(nType) {}
virtual ~CBaseCharacter() {};
DBOOL IsDead() const { return m_damage.IsDead(); }
CDestructable *GetDestructable() { return &m_damage; }
DDWORD GetSurfaceType() { return m_dwSurfType; }
DBOOL Trap(char nTrap, DBOOL bGravity);
DBOOL IsTrapped() { return m_nTrapped; }
// For Treat assessments
CWeapon* CurrentWeapon() { return m_InventoryMgr.GetCurrentWeapon(); }
DFLOAT HitPoints() const { return (DFLOAT)m_damage.GetHitPoints(); }
DFLOAT ArmorPoints() const { return (DFLOAT)m_damage.GetArmorPoints(); }
CInventoryMgr* GetInventoryMgr() { return &m_InventoryMgr; }
DBOOL IsItemActive(int nItem) { return m_InventoryMgr.IsItemActive(nItem); }
void UpdateInLiquid(VolumeBrush* pBrush, ContainerPhysics* pCPStruct);
void UpdateOnLadder(VolumeBrush* pBrush, ContainerPhysics* pCPStruct);
CInventoryMgr m_InventoryMgr;
private:
void Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
void Load(HMESSAGEREAD hWrite, DDWORD dwSaveFlags);
protected :
DDWORD EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData);
//for model key string parsing
virtual void OnStringKey(ArgList* pArgList);
CDestructable m_damage;
CMovement m_MoveObj;
CAnim_Sound m_Anim_Sound;
ContainerCode m_eContainerCode;
ContainerCode m_eLastContainerCode;
DBOOL m_bBodyInLiquid;
DBOOL m_bBodyOnLadder;
DBOOL m_bSwimmingOnSurface;
DDWORD m_dwSurfType;
DFLOAT m_fSwimVel;
DFLOAT m_fLadderVel;
// Used to stop any movement from the character (flayer)
int m_nTrapped;
DBOOL m_bTrappedGrav;
};
#endif // __BASE_CHARACTER_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -