⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameinvitems.h

📁 Blood 2全套源码
💻 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 + -