📄 flagobjects.h
字号:
/****************************************************************************
;
; MODULE: FLAGOBJECTS (.H)
;
; PURPOSE: Flag Objects for CTF
;
; HISTORY: 12/30/98 [blg] This file was created
;
; COMMENT: Copyright (c) 1998, Monolith Productions Inc.
;
****************************************************************************/
#ifndef _FLAGOBJECTS_H_
#define _FLAGOBJECTS_H_
// Includes...
#include "B2BaseClass.h"
// Classes...
class FlagObject : public B2BaseClass
{
// Member functions...
public:
FlagObject();
~FlagObject();
int GetTeamID() { return(m_nTeamID); }
void SetTeamID(int nID) { m_nTeamID = nID; }
void SetPos(DVector* pPos);
DDWORD EngineMessageFn(DDWORD messageID, void* pData, DFLOAT fData);
DDWORD ObjectMessageFn(HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead);
DBOOL IsInFlagStand() { return(m_bInStand); }
DBOOL IsOnGround() { return(m_bOnGround); }
DBOOL IsWithPlayer() { return(m_bWithPlayer); }
DBOOL IsOtherFlagInStand();
void GiveToPlayer();
void ReturnToFlagStand();
void DropToGround();
void TriggerPlayer(HOBJECT hPlayer);
protected:
DBOOL ReadProp(ObjectCreateStruct* pStruct);
void PostPropRead(ObjectCreateStruct* pStruct);
void OnInitialUpdate(void* pData, DFLOAT fData);
void OnTouchNotify(HOBJECT hObj);
// Member variables...
private:
int m_nTeamID;
DVector m_vStand;
DRotation m_rStand;
HSTRING m_hFlagGrabString;
DBOOL m_bInStand;
DBOOL m_bOnGround;
DBOOL m_bWithPlayer;
};
class FlagStand : public B2BaseClass
{
// Member functions...
public:
FlagStand();
~FlagStand();
int GetTeamID() { return(m_nTeamID); }
DDWORD EngineMessageFn(DDWORD messageID, void* pData, DFLOAT fData);
DDWORD ObjectMessageFn(HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead);
DBOOL SpawnFlag();
void TriggerPlayer(HOBJECT hPlayer);
protected:
DBOOL ReadProp(ObjectCreateStruct* pStruct);
void PostPropRead(ObjectCreateStruct* pStruct);
void OnInitialUpdate(void* pData, DFLOAT fData);
void OnTouchNotify(HOBJECT hObj);
// Member variables...
private:
int m_nTeamID;
HOBJECT m_hFlagObject;
HSTRING m_hFlagGiveString;
};
// Inlines...
inline FlagObject::FlagObject() : B2BaseClass(OT_MODEL)
{
m_nTeamID = 0;
m_hFlagGrabString = DNULL;
m_bInStand = DFALSE;
m_bOnGround = DFALSE;
m_bWithPlayer = DFALSE;
}
inline FlagStand::FlagStand() : B2BaseClass(OT_MODEL)
{
m_nTeamID = 0;
m_hFlagGiveString = DNULL;
m_hFlagObject = DNULL;
}
inline FlagStand::~FlagStand()
{
if (g_pServerDE && m_hFlagGiveString)
{
g_pServerDE->FreeString(m_hFlagGiveString);
}
}
// EOF...
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -