/* ===================================================================== * ÆÄ ÀÏ : DramaturgyManager.h , DramaturgyManager.cpp * ¸ñ Àû : ¿¬ÃâÁ¤º¸°ü¸® , ¿¬ÃâÆÄÀÏ ÆÄ½Ì * ÀÛ ¼º ÀÚ : Á¤¿øÁÖ * ÀÛ ¼º ÀÏ : 2006³â 10¿ù 16ÀÏ * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * * ÁÖÀÇ»çÇ× : . * =======================================================================*/ #pragma once #include "DramaturgyInfo.h" enum eMONSTERATTACK_TYPE; enum eAPPLYDRAMA_TYPE { eAPPLYDRAMA_DAMAGE = 0, eAPPLYDRAMA_CRITICAL, eAPPLYDRAMA_DIE1, eAPPLYDRAMA_DIE2, eAPPLYDRAMA_MAX, }; /// ±âº»°ø°Ý - Á¾Á·*¼ºº°*¹«±â (3 * 2 * 7 = 42) /// ½ºÅ³ - Á¾Á·*¼ºº° (3 * 2 = 6) class cDramaturgyManager { public: static cDramaturgyManager* mpDramaturgyManager; cDramaturgyManager(); ~cDramaturgyManager(); bool Init(); /// ¿¬Ãâ¿¡ Æ÷ÇÔµÈ 3DÁ¤º¸¸¦ ¹Ì¸® ·ÎµùÇϴµ¥ »ç¿ëÇÑ´Ù. void DirectLoadPlayerDramaObj( unsigned long skillIdx ); void DirectLoadMonsterDramaObj( unsigned long monsterIdx ); void DirectLoadPlayerApplyDramaObj( unsigned char race, unsigned char gender ); void DirectLoadMonsterApplyDramaObj( unsigned long monsterIdx ); void DirectLoadInfluenceDramaObj( unsigned long influenceIdx ); void DirectLoadActInfluenceDramaObj( unsigned long Idx ); /// ¿¬ÃâÁ¤º¸ ȹµæ (¿¬Ãⰴü´Â Thread Loading) cDramaturgyInfo* GetPlayerDramaturgyInfo( unsigned long skillIdx, unsigned short weaponstate, unsigned char race, unsigned char gender ); cDramaturgyInfo* GetPlayerDramaturgyInfo( unsigned long skillIdx, unsigned short dramaKey ); cDramaturgyInfo* GetMonsterDramaturgyInfo( unsigned long monsterIdx, eMONSTERATTACK_TYPE type ); cDramaturgyInfo* GetPlayerApplyDramaInfo( unsigned char race, unsigned char gender, eAPPLYDRAMA_TYPE type ); cDramaturgyInfo* GetMonsterApplyDramaInfo( unsigned long monsterIdx, eAPPLYDRAMA_TYPE type ); /// cDramaturgyInfo* GetInfluenceDramaInfo( unsigned long influenceIdx ); cDramaturgyInfo* GetActInfluenceDramaInfo( unsigned long actIdx ); void ReLoadDramaturgyFileList(); /// È¿°ú ¿¬ÃâÀº ¿ÜºÎÈ£Ãâ bool LoadInfluenceDrama( unsigned long influenceIdx, const cString& fileName, bool loadObject = false ); bool LoadActInfluenceDrama( unsigned long Idx, const cString& fileName, bool loadObject = false ); protected: /// "PlayerDramaFileList.txt" load bool LoadPlayerDramaturgyFileList(); /// "MonsterDramaFileList.txt" bool LoadMonsterDramaturgyFileList(); /// "ApplyDramaList.txt" load bool LoadApplyDramaturgyFileList(); protected: /// typedef tPointerHashMap cSkillDramaMap; /// key = ((race*gender_max)+gender)*weaponstate_max + weaponstate; typedef tPointerHashMap cDramaturgyInfoMap; /// ¿¬ÃâÆÄÀÏ ¸Þ¸ð¸® /// key = skillIdx, value = cDramatugyInfoMap pointer; cSkillDramaMap mPlayerDramaturgyInfoMap; /// key = monsterIdx, value = cDramatugyInfo pointer; cSkillDramaMap mMonsterDramaturgyInfoMap; /// È¿°ú ¿¬Ãâ ÆÄÀÏ cSkillDramaMap mInfluenceDramaInfoMap; cSkillDramaMap mActInfluenceDramaInfoMap; /// key = monster Index (¿¹¿Ü - 1001ÀÌ»óÀº ij¸¯ÅÍ Ç¥Çö) cSkillDramaMap mApplyDramaMap; }; #define DRAMATURGYMAN cDramaturgyManager::mpDramaturgyManager