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

📄 partnerwaitingmanager.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
#ifndef __PARTNER_WAITING_MANAGER_H__#define __PARTNER_WAITING_MANAGER_H__#include <hash_map>#include "Exception.h"#include "Types.h"#include "Timeval.h"#include "PlayerCreature.h"class Zone;enum WaitType{	WAIT_FOR_MEET,		// 0	WAIT_FOR_APART		// 1};class PartnerWaitInfo{protected:	PartnerWaitInfo( PlayerCreature* pWaitingPC, string RequestedPCName );public:	virtual ~PartnerWaitInfo() { }	// Factory Method	static PartnerWaitInfo*	getPartnerWaitInfo(PlayerCreature* pWaitingPC, string RequestedPCName, WaitType waitType) throw(Error);public:	virtual uint			waitPartner( PlayerCreature* pTargetPC ) throw(Error) = 0;	virtual uint			acceptPartner( PlayerCreature* pPC ) throw(Error) = 0;	virtual void			timeExpired() throw(Error) = 0;	virtual WaitType		getWaitType() = 0;public:	PlayerCreature*	getWaitingPC() const;	Timeval			getDeadline() const { return m_Deadline; }public:	static Item::ItemClass getItemClass( PlayerCreature* pPC )	{		return ( pPC->getRace() == RACE_SLAYER )? Item::ITEM_CLASS_COUPLE_RING : Item::ITEM_CLASS_VAMPIRE_COUPLE_RING;	}	static ItemType_t getItemType( PlayerCreature* pPC ) { return ( pPC->getSex() == FEMALE )? 1 : 0; }	static bool	isMatchCoupleRing( PlayerCreature* pPC, Item* pRing )	{		return pRing->getItemClass() == getItemClass( pPC ) &&	pRing->getItemType() == getItemType( pPC );	}private:	string			m_RequestedPCName;	ObjectID_t		m_WaitingPCOID;	Zone*			m_pZone;	Timeval			m_Deadline;};class PartnerWaitingManager{public:	typedef hash_map<string, PartnerWaitInfo*>	WaitInfoHashMap;public:	PartnerWaitingManager( WaitType waitType ) : m_WaitType( waitType ) { };	virtual ~PartnerWaitingManager();public:	WaitType	getWaitType() const { return m_WaitType; }public:	uint		waitForPartner( PlayerCreature* pWaitingPC, string RequestedPCName ) throw(Error);	bool		stopWaitForPartner( PlayerCreature* pWaitingPC ) throw(Error);	uint		acceptPartner( PlayerCreature* pRequestedPC ) throw(Error);	bool		isWaitForPartner( PlayerCreature* pRequestedPC ) throw(Error);	PlayerCreature* getWaitingPartner( PlayerCreature* pRequestedPC ) throw(Error);public:	void		heartbeat() throw(Error);private:	WaitInfoHashMap	m_WaitInfos;	WaitType		m_WaitType;};#endif// __PARTNER_WAITING_MANAGER_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -