#pragma once //======================================================================================================================= /// CollectionStateInfo class /* @author Lee Su Tek @since 2009. 2. 23 @remarks @note äÁýǰÀÇ ÇöÀç »óȲÀ» ³ªÅ¸³½´Ù. ÇϳªÀÇ Å¸À̸Ӹ¦ °¡Áö¸ç, Active ½Ã collectable -> Collecting -> Respawning -> spawn -> collectable ´Ü°è·Î º¯ÇÑ´Ù. collectable : äÁý °¡´ÉÇÑ »óÅÂ. Collecting : m_Collector°¡ äÁýÁß. Respawning : m_Collector°¡ äÁýÀ» Á¤»ó ¿Ï·á, ¸®½ºÆù ´ë±â»óÅÂ. spawn : collectable ·Î ÀüÀÌ @history */ //======================================================================================================================= #include #include "StructInPacket.h" struct CollectionInfo; class CollectionStateInfo { public: enum { collectable = 0, Collecting, Collected, Respawning, spawn, cancel }; __DECL_CUSTOMPOOL_PTR( CollectionStateInfo ) public: CollectionStateInfo(); virtual ~CollectionStateInfo() {} public: bool Init( Collection* pCollection, CHARGUID Collector, WzVector& CollectorPos ); void Release(); //.// DWORD GetObjectKey() { return m_pMapObjectInfo->dwMapObjectID; } WzID GetCollectionID() { return m_pMapObjectInfo->CollectionID; } CHARGUID GetCollector() { return m_Collector; } WzVector& GetCollectorPos() { return m_CollectorPos; } DWORD GetRemainedTime() { return m_Timer.GetRemainedTime(); } //»ý¼ºµÈ SCCollection´Â ¹«Á¶°Ç m_pData°¡ NULLÀÌ ¾Æ´Ï´Ù. CollectionInfo* GetCollectionInfo() { return m_pData; } Collection* GetCollection() { return m_pCollection; } MAPOBJECT_INFO* GetMapObjectInfo() { return m_pMapObjectInfo; } //.// bool StartCollect(); bool StartRespawn(); void Cancel(); bool CanCancel(CHARGUID Collector); bool update(OUT BYTE* stat); private: bool _ChangeStat(); CollectionInfo* _FindCollectionInfo( WzID CollectionID ); private: CHARGUID m_Collector; // äÁýÀÚ. WzVector m_CollectorPos; // äÁýÀÚ À§Ä¡. BYTE m_stat; // äÁý»óÅ (äÁýÁß, Àç»ýÁß) util::Timer m_Timer; // äÁý½Ã°£, äÁý¹° Àç»ý½Ã°£ CollectionInfo* m_pData; // äÁýÁ¤º¸ (½ºÅ©¸³Æ® Á¤º¸) MAPOBJECT_INFO* m_pMapObjectInfo; // äÁýÁ¤º¸ (¸ÊÅø Á¤º¸) Collection* m_pCollection; // äÁý¹° ¿ÀºêÁ§Æ® };