📄 gameinvitems.h
字号:
#ifndef __GAMEINVITEMS_H__
#define __GAMEINVITEMS_H__
#include "InvItem.h"
#define FLASHLIGHTCHARGETIME 120.0f
#define FLASHLIGHTCHARGE 100
#define GOGGLESCHARGETIME 30.0f
#define GOGGLESCHARGE 100
class CInvFlashlight : public CInvItem
{
public:
CInvFlashlight();
~CInvFlashlight() { Term( ); }
virtual void Init(HOBJECT hOwner);
DBOOL CreateLight();
virtual void Term()
{
CInvItem::Term();
if (!g_pServerDE) return;
if (m_hLight)
{
g_pServerDE->RemoveObject(m_hLight);
m_hLight = DNULL;
}
}
DBOOL AddItem(DBYTE nCount);
int Activate();
int Deactivate();
void Update();
virtual void Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
virtual void Load(HMESSAGEREAD hRead, DDWORD dwLoadFlags);
private:
HOBJECT m_hLight;
DFLOAT m_fDischargeTime;
};
class CInvMedkit : public CInvItem
{
public:
CInvMedkit() : CInvItem(INV_MEDKIT) {}
~CInvMedkit() {}
virtual void Init(HOBJECT hOwner);
DBOOL AddItem(DBYTE nCount);
int Activate();
int Deactivate() { return 0; }
DBOOL ActivateItem(char *msgbuf);
};
class CInvNightGoggles : public CInvItem
{
public:
CInvNightGoggles();
~CInvNightGoggles() { Term( ); }
virtual void Init(HOBJECT hOwner);
virtual void Term()
{
CInvItem::Term();
if (!g_pServerDE) return;
/* if (m_hLight)
{
g_pServerDE->RemoveObject(m_hLight);
m_hLight = DNULL;
}
// Kill any old instance of the sound...
if( m_hLoopingSound )
{
g_pServerDE->KillSound( m_hLoopingSound );
m_hLoopingSound = DNULL;
}
*/
}
DBOOL AddItem(DBYTE nCount);
int Activate();
int Deactivate();
void Update();
virtual void Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
virtual void Load(HMESSAGEREAD hRead, DDWORD dwLoadFlags);
private:
// HOBJECT m_hLight;
// HSOUNDDE m_hLoopingSound;
DFLOAT m_fDischargeTime;
};
class CInvBinoculars : public CInvItem
{
public:
CInvBinoculars() : CInvItem(INV_BINOCULARS) {}
virtual void Init(HOBJECT hOwner);
int Activate();
int Deactivate();
};
class CInvTheEye : public CInvItem
{
public:
CInvTheEye();
~CInvTheEye() { Term( ); }
virtual void Init(HOBJECT hOwner);
virtual void Term();
int Activate();
int Deactivate();
int Dropit();
void PickItUp();
void SetRotation(DRotation* rot);
DBOOL ActivateItem(char *msgbuf);
HOBJECT GetEyeObject() const { return m_hSeeingObject; }
virtual void Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
virtual void Load(HMESSAGEREAD hRead, DDWORD dwLoadFlags);
private:
HOBJECT m_hSeeingObject;
};
class CInvKey : public CInvItem
{
public:
CInvKey() : CInvItem(INV_KEY) {}
~CInvKey() {}
DBOOL Setup(HSTRING hstrIconFile, HSTRING hstrHiIconFile, HSTRING hstrItemName, HSTRING hstrDisplayName, DBYTE byCount)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return DFALSE;
m_hstrPic = pServerDE->CopyString(hstrIconFile);
m_hstrPicH = pServerDE->CopyString(hstrHiIconFile);
m_hstrItemName = pServerDE->CopyString(hstrItemName);
m_hstrDisplayName = pServerDE->CopyString(hstrDisplayName);
m_nCount = byCount;
return DTRUE;
}
int Activate() { return 0; };
int Deactivate() { return 0; };
};
class CInvProxBomb : public CInvItem
{
public:
CInvProxBomb() : CInvItem(INV_PROXIMITY) {}
virtual void Init(HOBJECT hOwner);
DBOOL ActivateItem(char *msgbuf);
int Activate();
int Deactivate() { return 0; };
};
class CInvRemoteBomb : public CInvItem
{
public:
CInvRemoteBomb() : CInvItem(INV_REMOTE) {}
virtual void Init(HOBJECT hOwner);
DBOOL ActivateItem(char *msgbuf);
int Activate();
int Deactivate() { return 0; };
};
class CInvTimeBomb : public CInvItem
{
public:
CInvTimeBomb() : CInvItem(INV_TIMEBOMB) {}
virtual void Init(HOBJECT hOwner);
DBOOL ActivateItem(char *msgbuf);
int Activate();
int Deactivate() { return 0; };
};
#endif // __GAMEINVITEMS_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -