#pragma once //------------------------------------------------------------------------------ /** ·Î¶Ç npc @author ±¤¼ö @since 09.07.24 @remarks 09.08.05 ¼Ò½ºÁ¤¸® */ #include "NPC.h" //¼ýÀÚÀÚ¸´¼ö(15ÀÚ¸®) #define MAX_BONE_POS 15 //¼ýÀÚÀ¯´Ö°¹¼ö(0~9 + °ø¹é) #define NUM_MAX_UNIT 11 //·Î¶Ç¸®¼Ò½º typedef struct _RC_LOTTO_INFO { RESOURCECODE m_rNumberCode; RESOURCECODE m_rBaseCode; }RC_LOTTO_INFO; class LottoNPC : public NPC { public: LottoNPC( void ); virtual ~LottoNPC( void ); virtual BOOL Create( DWORD dwObjectKey, DWORD dwID = 0 ); virtual void Destroy( void ); virtual BOOL Process( DWORD dwTick ); virtual BOOL Render(); void SetDrawNumber( INT64 Number); virtual void SetExtraInfo( EXTRA_NPCINFO * pExtraInfo); //·Î¶Ç¼ýÀÚÆÇ È°¼º.ºñȰ¼º(Ãß÷Áß¿¡´Â ºñȰ¼º) void SetLottoActive(BOOL bActive); private: //¼ýÀÚÃßÃâÇØ ¹è¿­¿¡ ´ã±â void SetparateNumber(INT64 Number); //¼ýÀÚ°»½Å(UnitDraw¿¡ Unit¼ÂÆÃ) void RefreshNumber(); //º»À妽º ÃßÃâ void ExtractBoneIndex(); //ºôº¸µå Àû¿ë void SetBillBoard(); //¼ýÀھִϸÞÀÌ¼Ç void AnimationNumber(DWORD dwTick); //¼ýÀھִϸÞÀÌ¼Ç void AnimationNumberChaos(DWORD dwTick); //¸®¼Ò½º·Îµå void LoadNumberObject(); //¸®¼Ò½ºÇØÁ¦ void FreeNumberObject(); private: //¸®¼Ò½ºÁ¤º¸ RC_LOTTO_INFO m_ResInfo; //¼ýÀ򮂦§±â CWzUnitDraw* m_pBasePart; //ÀÚ¸´¼öÀÇ ¼ýÀÚDraw CWzUnitDraw* m_ppRenderPart[MAX_BONE_POS]; //¼ýÀÚÀ¯´Ö CWzUnit * m_ppNumberUnit[NUM_MAX_UNIT]; //¼ýÀ򮂦§±âÀÇ ÀÚ¸´¼öº»À§Ä¡ int m_arBonPosition[MAX_BONE_POS]; //¼ýÀھִϸ¦ À§ÇѺ¯¼ö int m_arCurNumber[MAX_BONE_POS]; int m_arOldNumber[MAX_BONE_POS]; INT64 m_iOldNumber; BOOL m_bNumberAni; //·Î¶Ç¼ýÀÚÆÇ È°¼ºÈ­»óÅ BOOL m_bLottoActive; };