partnerwaitingmanager.h
来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C头文件 代码 · 共 84 行
H
84 行
#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 + =
减小字号Ctrl + -
显示快捷键?