📄 corpse.h
字号:
#ifndef __CORPSE_H__
#define __CORPSE_H__
#include "basedefs_de.h"
#include "destructablemodel.h"
#include "cpp_engineobjects_de.h"
#include "cpp_server_de.h"
#include "generic_msg_de.h"
#include "ai_mgr.h"
#include "B2BaseClass.h"
class CCorpse : public B2BaseClass
{
public:
CCorpse() : B2BaseClass(OT_MODEL)
{
AddAggregate(&m_damage);
m_pServerDE = DNULL;
m_fMass = 200.0f;
m_fHitPoints = 50.0f;
m_bDead = DFALSE;
m_bSetShutdown = DFALSE;
m_hFireSource = DNULL;
m_fBurnStart = 0.0f;
m_hAttach = DNULL;
m_hSmokeSource = DNULL;
m_fSmokeStart = 0.0f;
m_fRemoveTime = 0.0f;
m_bLimbLoss = DTRUE;
m_hLoopSound = DNULL;
m_szSoundDir[0] = '\0';
}
~CCorpse()
{
if( m_hLoopSound )
{
g_pServerDE->KillSound( m_hCurSound );
}
if( m_hLoopSound )
{
g_pServerDE->KillSound( m_hCurSound );
}
}
void Setup(HOBJECT hFireObj = DNULL, DBOOL bLimbLoss = DTRUE);
protected:
DDWORD EngineMessageFn(DDWORD messageID, void *pData, float lData);
DDWORD ObjectMessageFn(HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead);
private:
DBOOL ReadProp(ObjectCreateStruct *pStruct);
void PostPropRead(ObjectCreateStruct *pStruct);
void InitialUpdate(DVector *pMovement);
DBOOL Update();
DBOOL HandleDamage(DVector vDir, DFLOAT fDamage, int nType, DVector vPos);
int CalculateHitLimb(DVector vDir, DVector vPos);
int SetProperNode(int nNode);
DBOOL CreateGibs(DVector vDir, int nNumGibs, int nType, DFLOAT fDamage);
void GenerateHitSpheres();
void Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
void Load(HMESSAGEREAD hRead, DDWORD dwLoadFlags);
void OnStringKey(ArgList* pArgList);
DBOOL PlayAISound(char* szSound, DFLOAT fRadius, DDWORD dwFlags, int nVol);
void CreateBloodPool();
CDestructable m_damage;
CServerDE* m_pServerDE;
AI_Shared AIShared; // Shared functions
DFLOAT m_fHitSpheres[NUM_STD_NODES];
DFLOAT m_fMass;
DFLOAT m_fHitPoints;
DBOOL m_bDead;
char m_szSoundDir[256];
HSOUNDDE m_hCurSound;
DBOOL m_bSetShutdown;
HOBJECT m_hFireSource;
DFLOAT m_fBurnStart;
HATTACHMENT m_hAttach;
HOBJECT m_hSmokeSource;
DFLOAT m_fSmokeStart;
DFLOAT m_fRemoveTime;
DBOOL m_bLimbLoss;
HSOUNDDE m_hLoopSound;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -