#pragma once #include "staticscenenode.h" class cNameCard; class cShadowGeometry; class cGatheringSceneNodeParam : public cStaticSceneNodeParam { public: cGatheringSceneNodeParam(); public: /// ¼­¹ö °ü¸®¿ë À妽º unsigned long mObjectIdx; unsigned long mClassIdx; // pvp »ç¿ë ÆÀÁ¤º¸ unsigned char mTeamType; }; inline cGatheringSceneNodeParam::cGatheringSceneNodeParam() : mObjectIdx(0) , mClassIdx(0) , mTeamType(0) { } class cEffectSceneNode; class cGatheringSceneNode : public cManagedStaticSceneNode { friend class cSceneManager; public: inline unsigned long GetGatheringIndex() { return mObjectIdx; } inline unsigned long GetGatheringClassIdx() { return mClassIdx; } inline bool IsRemove() { return mRemoveFlag; } bool IsEnableGathering(); void Remove(); virtual bool OnVisible(); virtual bool Pick( const cRay& ray ); protected: cGatheringSceneNode( eType type = eGATHERING ); virtual ~cGatheringSceneNode(); /// ÃʱâÈ­ virtual bool Init( cGatheringSceneNodeParam& param ); virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); virtual void AddToVisibleArray(); void AddEffect(); void ClearEffect(); protected: unsigned long mObjectIdx; unsigned long mClassIdx; // unsigned char mTeamType; long mQuestIdx; bool mRemoveFlag; /// °´Ã¼ÀÇ Á¤º¸¸¦ Ç¥½ÃÇϱâ À§ÇÑ °´Ã¼ cNameCard* mpNameCard; float mNameHeight; unsigned long mEffectCheckTimer; unsigned long mEffectIdxByManager; cEffectSceneNode* mEnableGatheringEffect; cShadowGeometry* mShadowGeom; bool mNeedUpdateShadow; };