/* ==================================================================== * ÆÄ ÀÏ : GameResourceManager.h * ¸ñ Àû : °ÔÀÓ ¸®¼Ò½º(½ºÅ©¸³Æ® ÆÄÀϵî)ÆÄÀÏ °ü¸® * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2006.06 * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * 2006.06 À̹ý¼® »ý¼º * * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once #include "Player_Common.h" class cUIText; class cUIFuncText; class cParser; class cStatusCalc_Client; class cDamageCalc; class cStatusScript; class cMonsterScript; class cNPCScript; class cLevelScript; class cSkillScript; class cCommunityScript; class cStageScript; class cTotemScript; class cPvPScript; class cGatheringScript; class cVehicleScript; class cMakeSkillScript; class cPostScipt; struct sMonsterScript; struct sRegenMonsterScript; class cBaseObject; class cMonster; struct sTextItem; struct sMapInfo { unsigned long mapNum; unsigned char mapMode; unsigned long folderIdx; bool useTile; cString textureName; cString bgmName; unsigned long bgmWaitTime; }; struct sFaceEmoteInfo { unsigned long index; /// list index unsigned char type; /// 0:base, 1:wink, 2:emote cString textureName[eRACE_MAX*eGENDER_MAX]; }; struct sJobInfo { unsigned long jobNameIndex; unsigned long jobTargetIconIndex; }; enum { eData_Start = 0, eData_End, eData_Error, }; class cGameResourceManager { public: static cGameResourceManager* mpGameResourceManager; cGameResourceManager(); ~cGameResourceManager(); void Exit(); /// ÃʱâÈ­ bool Init(); bool InitLogin(); bool InitServer(); DWORD IntroLoadThread(); DWORD LoginLoadThread(); DWORD ServerLoadThread(); LPCTSTR GetMonsterName( unsigned int nameIdx ); LPCTSTR GetGatheringName( unsigned int nameIdx ); unsigned long GetMapFolderIdx( unsigned long mapIdx, unsigned char mapMode ); tPointerHashMap* GetMapInfo(){ return &mMapInfoMap; } bool IsMapUseTile( unsigned int mapIdx, unsigned char mapMode ); const char* GetModelFileName( unsigned long modelIndex ); void GetMapMode( unsigned long mapIdx, tArray* modeArr ); LPCTSTR GetMapName( unsigned int nameIdx ); LPCTSTR GetMapLoadTexture( unsigned int mapIdx, unsigned char mapMode ); protected: /// Game¿¡ »ç¿ëµÇ´Â °íÁ¤ ÅØ½ºÆ®¸¦ ·ÎµùÇÑ´Ù. bool LoadGameText(); bool LoadPlayerJob(); bool LoadPlayerJobInfo( cParser& parser ); bool LoadPlayerJobTree( cParser& parser, unsigned int depth ); /// Skill °ü·Ã.. /// ¿¬Ãâ ÆÄÀϵµ °°ÀÌ ·ÎµåµÈ´Ù. //bool LoadSkillInfo(); /// ¸ðµ¨Á¤º¸ ¹× ij¸¯ÅÍ ±âº» ÆÄÀÏ Á¤º¸.. /// player, npc, monsterÀÇ ¸ðµ¨ÆÄÀÏÁ¤º¸ kfmÆÄÀÏ bool LoadModelFileInfo(); /// ij¸¯ÅÍÀÇ ±âº» ¿ÜÇüÁ¤º¸ nifÆÄÀÏ.. bool LoadCharacterBaseFileInfo(); /// ij¸¯ÅÍÀÇ Çì¾î Á¤º¸ (¸ðµ¨ÆÄÀÏ / ÅØ½ºÃÄÆÄÀÏ) bool LoadCharacterBaseHairFileInfo(); bool LoadHair( cParser& parser ); bool LoadHairColor( cParser& parser ); bool LoadMapInfo(); bool LoadFaceEmotionInfo(); void AddRaceTree( unsigned char race, unsigned long jobIdx ); bool LoadTarotDramaPattern(); /// ÂüÁ¶ µ¥ÀÌÅ͸¦ Àç·Îµù ÇÒ°æ¿ì¿¡ »ç¿ëÇÏ·Á°í ¸¸µé¾î º»´Ù. void RemovePlayerJobInfo(); void RemoveAllModelFileName(); void RemoveAllCharacterBaseFileInfo(); protected: HANDLE mDataLoadThread; unsigned int mDataLoadFlag; ////////////////////////////////////////////////////////////////////////// // text ¹®¼­ cUIText* mpGameText; cUIText* mpCategoryName; cUIText* mpItemToolTipText; cUIText* mpTarotCardText; cUIText* mpCardBookText; cUIText* mpSkillNameText; cUIText* mpSkillToolTipText; cUIText* mpNpcNameText; cUIText* mpMonsterNameText; cUIText* mpGatheringNameText; cUIText* mpQuestTitleText; cUIText* mpMapNameText; cUIText* mpEmotionFilterText; /// ȣΰü·Ã ÅØ½ºÆ® cUIText* mpTitleText; /// ÆÁ °ü·Ã ÅØ½ºÆ® cUIText* mpTipText; /// npc Ÿ·Ô °ü·Ã ÅØ½ºÆ® cUIText* mpNpcTarotText; /// cUIFuncText* mpMonsterNote; sTextItem* mTextItem; ////////////////////////////////////////////////////////////////////////// // °¢Á¾ °ÔÀÓ Á¤º¸¸¦ À§ÇÑ ÀڷᱸÁ¶µé.. typedef tPointerHashMap cArrayHashMap; typedef tArray cFileNameArray; typedef tArray cJobIndexArray; /// Á÷¾÷ Á¤º¸ cArrayHashMap mJobInfoMap; /// Á÷¾÷À» key·Î ÇÏ´Â ÀüÁ÷ Á÷¾÷µéÀÇ ¸®½ºÆ®¸¦ ÁØ´Ù. cArrayHashMap mJobTree; /// Á¾Á·À» key·Î ÇÏ´Â ¸ðµç Á÷¾÷µéÀÇ ¸®½ºÆ®¸¦ ÁØ´Ù. cArrayHashMap mRaceTree; /// Item¿¡ ¿¬°áµÈ 3Dµ¥ÀÌÅÍÆÄÀϸí.. //cArrayHashMap mItemFileMap; /// kfmÆÄÀÏ ( NiString »ç¿ë ) cArrayHashMap mModelFileNameMap; /// ¸Ó¸® Á¾·ùµé cArrayHashMap mDefaultHairFileNameMap; /// ¸Ó¸® »ö±ò( ÅØ½ºÃÄ ÆÄÀÏ ) cArrayHashMap mHairColorTextureMap; unsigned int mHairColorMax; /// ¾ó±¼ Á¾·ùµé cArrayHashMap mDefaultFaceFileNameMap; /// À妽º -> »óÀÇ ÇÏÀÇ ¼Õ ¹ß °¢°¢ 1°³ÀÇ Á¤º¸¸¦ °®´Â´Ù. cArrayHashMap mDefaultWearFileNameMap; cArrayHashMap mMapInfoMap; cArrayHashMap mTarotDramaPattern; cArrayHashMap mFaceEmotionMap; unsigned int mBaseFaceCount; /// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// /// Loading ÇÁ·Î¼¼½º¸¦ À§ÇÑ ÀڷᱸÁ¶µé..(·ÎµùÇØ¾ßÇҰ͵é..) /// ¸Ê¿ë ÅØ½ºÃÄ ÆÄÀϵé NiTPrimitiveQueue* mpMapTextureFileQueue; /// °´Ã¼ ÆÄÀϵé NiTPrimitiveQueue* mpObjectFileQueue; /// ¸ðµ¨ ÆÄÀϵé NiTPrimitiveQueue* mpModelFileQueue; /// »ç¿îµå ÆÄÀϵé NiTPrimitiveQueue* mpSoundFileQueue; /// ////////////////////////////////////////////////////////////////////////// /// 070115 PKH µ¥¹ÌÁö °è»ê±â //cStatusCalc_Client* mpStatusCalc; cStatusScript* mpStatusScript; /// 070130 PKH ¸ó½ºÅÍ cMonsterScript* mpMonsterScript; /// NPC cNPCScript* mpNpcScript; /// 070515 PKH ·¹º§ Å×À̺í cLevelScript* mpLevelScript; /// 070615 PKH cSkillScript* mpSkillScript; cMakeSkillScript* mpMakeSkillScript; /// cCommunityScript* mpCommunityScript; /// cStageScript* mpStageScript; /// cTotemScript* mpTotemScript; /// cPvPScript* mpPVPScript; /// äÁý ½ºÅ©¸³Æ® cGatheringScript* mpGatheringScript; /// cVehicleScript* mpVehicleScript; }; #define GAMERESOURCEMAN cGameResourceManager::mpGameResourceManager