Guest User

ItemData.h

a guest
Aug 3rd, 2016
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.33 KB | None | 0 0
  1. #pragma once
  2.  
  3. // NOTE : Item의 통합 관리 클래스다.
  4. //        Icon, Model (droped on ground), Game Data
  5.  
  6. #include "../eterLib/GrpSubImage.h"
  7. #include "../eterGrnLib/Thing.h"
  8.  
  9. class CItemData
  10. {
  11.     public:
  12.         enum
  13.         {
  14.             ITEM_NAME_MAX_LEN = 24,
  15.             ITEM_LIMIT_MAX_NUM = 2,
  16.             ITEM_VALUES_MAX_NUM = 6,
  17.             ITEM_SMALL_DESCR_MAX_LEN = 256,
  18.             ITEM_APPLY_MAX_NUM = 3,
  19.             ITEM_SOCKET_MAX_NUM = 3,
  20.         };
  21.  
  22.         enum EItemType
  23.         {
  24.             ITEM_TYPE_NONE,                 //0
  25.             ITEM_TYPE_WEAPON,               //1//무기
  26.             ITEM_TYPE_ARMOR,                //2//갑옷
  27.             ITEM_TYPE_USE,                  //3//아이템 사용
  28.             ITEM_TYPE_AUTOUSE,              //4
  29.             ITEM_TYPE_MATERIAL,             //5
  30.             ITEM_TYPE_SPECIAL,              //6 //스페셜 아이템
  31.             ITEM_TYPE_TOOL,                 //7
  32.             ITEM_TYPE_LOTTERY,              //8//복권
  33.             ITEM_TYPE_ELK,                  //9//돈
  34.             ITEM_TYPE_METIN,                //10
  35.             ITEM_TYPE_CONTAINER,            //11
  36.             ITEM_TYPE_FISH,                 //12//낚시
  37.             ITEM_TYPE_ROD,                  //13
  38.             ITEM_TYPE_RESOURCE,             //14
  39.             ITEM_TYPE_CAMPFIRE,             //15
  40.             ITEM_TYPE_UNIQUE,               //16
  41.             ITEM_TYPE_SKILLBOOK,            //17
  42.             ITEM_TYPE_QUEST,                //18
  43.             ITEM_TYPE_POLYMORPH,            //19
  44.             ITEM_TYPE_TREASURE_BOX,         //20//보물상자
  45.             ITEM_TYPE_TREASURE_KEY,         //21//보물상자 열쇠
  46.             ITEM_TYPE_SKILLFORGET,          //22
  47.             ITEM_TYPE_GIFTBOX,              //23
  48.             ITEM_TYPE_PICK,                 //24
  49.             ITEM_TYPE_HAIR,                 //25//머리
  50.             ITEM_TYPE_TOTEM,                //26//토템
  51.             ITEM_TYPE_BLEND,                //27//생성될때 랜덤하게 속성이 붙는 약물
  52.             ITEM_TYPE_COSTUME,              //28//코스츔 아이템 (2011년 8월 추가된 코스츔 시스템용 아이템)
  53.             ITEM_TYPE_DS,                   //29 //용혼석
  54.             ITEM_TYPE_SPECIAL_DS,           //30 // 특수한 용혼석 (DS_SLOT에 착용하는 UNIQUE 아이템이라 생각하면 됨)
  55.             ITEM_TYPE_EXTRACT,                  //31 추출도구.
  56.             ITEM_TYPE_SECONDARY_COIN,           //32 명도전.
  57.             ITEM_TYPE_RING,                     //33 반지 (유니크 슬롯이 아닌 순수 반지 슬롯)
  58.             ITEM_TYPE_BELT,                     //34 벨트
  59.  
  60.             ITEM_TYPE_MAX_NUM,             
  61.         };
  62.  
  63.         enum EWeaponSubTypes
  64.         {
  65.             WEAPON_SWORD,
  66.             WEAPON_DAGGER,
  67.             WEAPON_BOW,
  68.             WEAPON_TWO_HANDED,
  69.             WEAPON_BELL,
  70.             WEAPON_FAN,
  71.             WEAPON_ARROW,
  72.             WEAPON_MOUNT_SPEAR,
  73.             WEAPON_CLAW,
  74.             WEAPON_NUM_TYPES,
  75.             WEAPON_NONE = WEAPON_NUM_TYPES+1,
  76.         };
  77.  
  78.         enum EMaterialSubTypes
  79.         {
  80.             MATERIAL_LEATHER,
  81.             MATERIAL_BLOOD,
  82.             MATERIAL_ROOT,
  83.             MATERIAL_NEEDLE,
  84.             MATERIAL_JEWEL,
  85.             MATERIAL_DS_REFINE_NORMAL,
  86.             MATERIAL_DS_REFINE_BLESSED,
  87.             MATERIAL_DS_REFINE_HOLLY,
  88.         };
  89.  
  90.         enum EArmorSubTypes
  91.         {
  92.             ARMOR_BODY,
  93.             ARMOR_HEAD,
  94.             ARMOR_SHIELD,
  95.             ARMOR_WRIST,
  96.             ARMOR_FOOTS,
  97.             ARMOR_NECK,
  98.             ARMOR_EAR,
  99.             ARMOR_NUM_TYPES
  100.         };
  101.  
  102.         enum ECostumeSubTypes
  103.         {
  104.             COSTUME_BODY,               //0 갑옷(main look)
  105.             COSTUME_HAIR,               //1 헤어(탈착가능)
  106.             COSTUME_NUM_TYPES,
  107.         };
  108.  
  109.         enum EUseSubTypes
  110.         {
  111.             USE_POTION,                 // 0
  112.             USE_TALISMAN,
  113.             USE_TUNING,
  114.             USE_MOVE,
  115.             USE_TREASURE_BOX,
  116.             USE_MONEYBAG,
  117.             USE_BAIT,
  118.             USE_ABILITY_UP,
  119.             USE_AFFECT,
  120.             USE_CREATE_STONE,
  121.             USE_SPECIAL,                // 10
  122.             USE_POTION_NODELAY,
  123.             USE_CLEAR,
  124.             USE_INVISIBILITY,
  125.             USE_DETACHMENT,
  126.             USE_BUCKET,
  127.             USE_POTION_CONTINUE,
  128.             USE_CLEAN_SOCKET,
  129.             USE_CHANGE_ATTRIBUTE,
  130.             USE_ADD_ATTRIBUTE,
  131.             USE_ADD_ACCESSORY_SOCKET,   // 20
  132.             USE_PUT_INTO_ACCESSORY_SOCKET,
  133.             USE_ADD_ATTRIBUTE2,
  134.             USE_RECIPE,
  135.             USE_CHANGE_ATTRIBUTE2,
  136.             USE_BIND,
  137.             USE_UNBIND,
  138.             USE_TIME_CHARGE_PER,
  139.             USE_TIME_CHARGE_FIX,                // 28
  140.             USE_PUT_INTO_BELT_SOCKET,           // 29 벨트 소켓에 사용할 수 있는 아이템
  141.             USE_PUT_INTO_RING_SOCKET,           // 30 반지 소켓에 사용할 수 있는 아이템 (유니크 반지 말고, 새로 추가된 반지 슬롯)
  142.         };
  143.  
  144.         enum EDragonSoulSubType
  145.         {
  146.             DS_SLOT1,
  147.             DS_SLOT2,
  148.             DS_SLOT3,
  149.             DS_SLOT4,
  150.             DS_SLOT5,
  151.             DS_SLOT6,
  152.             DS_SLOT_NUM_TYPES = 6,
  153.         };
  154.  
  155.         enum EMetinSubTypes
  156.         {
  157.             METIN_NORMAL,
  158.             METIN_GOLD,
  159.         };
  160.  
  161.         enum ELimitTypes
  162.         {
  163.             LIMIT_NONE,
  164.  
  165.             LIMIT_LEVEL,
  166.             LIMIT_STR,
  167.             LIMIT_DEX,
  168.             LIMIT_INT,
  169.             LIMIT_CON,
  170.             LIMIT_PCBANG,
  171.  
  172.             /// 착용 여부와 상관 없이 실시간으로 시간 차감 (socket0에 소멸 시간이 박힘: unix_timestamp 타입)
  173.             LIMIT_REAL_TIME,                       
  174.  
  175.             /// 아이템을 맨 처음 사용(혹은 착용) 한 순간부터 리얼타임 타이머 시작
  176.             /// 최초 사용 전에는 socket0에 사용가능시간(초단위, 0이면 프로토의 limit value값 사용) 값이 쓰여있다가
  177.             /// 아이템 사용시 socket1에 사용 횟수가 박히고 socket0에 unix_timestamp 타입의 소멸시간이 박힘.
  178.             LIMIT_REAL_TIME_START_FIRST_USE,
  179.  
  180.             /// 아이템을 착용 중일 때만 사용 시간이 차감되는 아이템
  181.             /// socket0에 남은 시간이 초단위로 박힘. (아이템 최초 사용시 해당 값이 0이면 프로토의 limit value값을 socket0에 복사)
  182.             LIMIT_TIMER_BASED_ON_WEAR,
  183.  
  184.             LIMIT_MAX_NUM
  185.         };
  186.  
  187.         enum EItemAntiFlag
  188.         {
  189.             ITEM_ANTIFLAG_FEMALE = (1 << 0),
  190.             ITEM_ANTIFLAG_MALE = (1 << 1),
  191.             ITEM_ANTIFLAG_WARRIOR = (1 << 2),
  192.             ITEM_ANTIFLAG_ASSASSIN = (1 << 3),
  193.             ITEM_ANTIFLAG_SURA = (1 << 4),
  194.             ITEM_ANTIFLAG_SHAMAN = (1 << 5),
  195.             ITEM_ANTIFLAG_GET = (1 << 6),
  196.             ITEM_ANTIFLAG_DROP = (1 << 7),
  197.             ITEM_ANTIFLAG_SELL = (1 << 8),
  198.             ITEM_ANTIFLAG_EMPIRE_A = (1 << 9),
  199.             ITEM_ANTIFLAG_EMPIRE_B = (1 << 10),
  200.             ITEM_ANTIFLAG_EMPIRE_R = (1 << 11),
  201.             ITEM_ANTIFLAG_SAVE = (1 << 12),
  202.             ITEM_ANTIFLAG_GIVE = (1 << 13),
  203.             ITEM_ANTIFLAG_PKDROP = (1 << 14),
  204.             ITEM_ANTIFLAG_STACK = (1 << 15),
  205.             ITEM_ANTIFLAG_MYSHOP = (1 << 16),
  206.             ITEM_ANTIFLAG_SAFEBOX = (1 << 17),
  207.             ITEM_ANTIFLAG_WOLFMAN = (1 << 18),
  208.         };
  209.  
  210.         enum EItemFlag
  211.         {
  212.             ITEM_FLAG_REFINEABLE        = (1 << 0),     // 개량 가능
  213.             ITEM_FLAG_SAVE              = (1 << 1),
  214.             ITEM_FLAG_STACKABLE         = (1 << 2),     // 여러개 합칠 수 있음
  215.             ITEM_FLAG_COUNT_PER_1GOLD   = (1 << 3),     // 가격이 개수 / 가격으로 변함
  216.             ITEM_FLAG_SLOW_QUERY        = (1 << 4),     // 게임 종료시에만 SQL에 쿼리함
  217.             ITEM_FLAG_RARE              = (1 << 5),
  218.             ITEM_FLAG_UNIQUE            = (1 << 6),
  219.             ITEM_FLAG_MAKECOUNT         = (1 << 7),
  220.             ITEM_FLAG_IRREMOVABLE       = (1 << 8),
  221.             ITEM_FLAG_CONFIRM_WHEN_USE  = (1 << 9),
  222.             ITEM_FLAG_QUEST_USE         = (1 << 10),    // 퀘스트 스크립트 돌리는지?
  223.             ITEM_FLAG_QUEST_USE_MULTIPLE= (1 << 11),    // 퀘스트 스크립트 돌리는지?
  224.             ITEM_FLAG_UNUSED03          = (1 << 12),    // UNUSED03
  225.             ITEM_FLAG_LOG               = (1 << 13),    // 사용시 로그를 남기는 아이템인가?
  226.             ITEM_FLAG_APPLICABLE        = (1 << 14),
  227.         };
  228.  
  229.         enum EWearPositions
  230.         {
  231.             WEAR_BODY,          // 0
  232.             WEAR_HEAD,          // 1
  233.             WEAR_FOOTS,         // 2
  234.             WEAR_WRIST,         // 3
  235.             WEAR_WEAPON,        // 4
  236.             WEAR_NECK,          // 5
  237.             WEAR_EAR,           // 6
  238.             WEAR_UNIQUE1,       // 7
  239.             WEAR_UNIQUE2,       // 8
  240.             WEAR_ARROW,         // 9
  241.             WEAR_SHIELD,        // 10
  242.             WEAR_MAX_NUM,
  243.         };
  244.  
  245.         enum EItemWearableFlag
  246.         {
  247.             WEARABLE_BODY       = (1 << 0),
  248.             WEARABLE_HEAD       = (1 << 1),
  249.             WEARABLE_FOOTS      = (1 << 2),
  250.             WEARABLE_WRIST      = (1 << 3),
  251.             WEARABLE_WEAPON     = (1 << 4),
  252.             WEARABLE_NECK       = (1 << 5),
  253.             WEARABLE_EAR        = (1 << 6),
  254.             WEARABLE_UNIQUE     = (1 << 7),
  255.             WEARABLE_SHIELD     = (1 << 8),
  256.             WEARABLE_ARROW      = (1 << 9),
  257.         };
  258.  
  259.         enum EApplyTypes
  260.         {
  261.             APPLY_NONE,
  262.             APPLY_MAX_HP,
  263.             APPLY_MAX_SP,
  264.             APPLY_CON,
  265.             APPLY_INT,
  266.             APPLY_STR,
  267.             APPLY_DEX,
  268.             APPLY_ATT_SPEED,
  269.             APPLY_MOV_SPEED,
  270.             APPLY_CAST_SPEED,
  271.             APPLY_HP_REGEN,
  272.             APPLY_SP_REGEN,
  273.             APPLY_POISON_PCT,
  274.             APPLY_STUN_PCT,
  275.             APPLY_SLOW_PCT,
  276.             APPLY_CRITICAL_PCT,
  277.             APPLY_PENETRATE_PCT,
  278.             APPLY_ATTBONUS_HUMAN,
  279.             APPLY_ATTBONUS_ANIMAL,
  280.             APPLY_ATTBONUS_ORC,
  281.             APPLY_ATTBONUS_MILGYO,
  282.             APPLY_ATTBONUS_UNDEAD,
  283.             APPLY_ATTBONUS_DEVIL,
  284.             APPLY_STEAL_HP,
  285.             APPLY_STEAL_SP,
  286.             APPLY_MANA_BURN_PCT,
  287.             APPLY_DAMAGE_SP_RECOVER,
  288.             APPLY_BLOCK,
  289.             APPLY_DODGE,
  290.             APPLY_RESIST_SWORD,
  291.             APPLY_RESIST_TWOHAND,
  292.             APPLY_RESIST_DAGGER,
  293.             APPLY_RESIST_BELL,
  294.             APPLY_RESIST_FAN,
  295.             APPLY_RESIST_BOW,
  296.             APPLY_RESIST_FIRE,
  297.             APPLY_RESIST_ELEC,
  298.             APPLY_RESIST_MAGIC,
  299.             APPLY_RESIST_WIND,
  300.             APPLY_REFLECT_MELEE,
  301.             APPLY_REFLECT_CURSE,
  302.             APPLY_POISON_REDUCE,
  303.             APPLY_KILL_SP_RECOVER,
  304.             APPLY_EXP_DOUBLE_BONUS,
  305.             APPLY_GOLD_DOUBLE_BONUS,
  306.             APPLY_ITEM_DROP_BONUS,
  307.             APPLY_POTION_BONUS,
  308.             APPLY_KILL_HP_RECOVER,
  309.             APPLY_IMMUNE_STUN,
  310.             APPLY_IMMUNE_SLOW,
  311.             APPLY_IMMUNE_FALL,
  312.             APPLY_SKILL,
  313.             APPLY_BOW_DISTANCE,
  314.             APPLY_ATT_GRADE_BONUS,
  315.             APPLY_DEF_GRADE_BONUS,
  316.             APPLY_MAGIC_ATT_GRADE,
  317.             APPLY_MAGIC_DEF_GRADE,
  318.             APPLY_CURSE_PCT,
  319.             APPLY_MAX_STAMINA,
  320.             APPLY_ATT_BONUS_TO_WARRIOR,
  321.             APPLY_ATT_BONUS_TO_ASSASSIN,
  322.             APPLY_ATT_BONUS_TO_SURA,
  323.             APPLY_ATT_BONUS_TO_SHAMAN,
  324.             APPLY_ATT_BONUS_TO_MONSTER,
  325.             APPLY_MALL_ATTBONUS,
  326.             APPLY_MALL_DEFBONUS,
  327.             APPLY_MALL_EXPBONUS,
  328.             APPLY_MALL_ITEMBONUS,
  329.             APPLY_MALL_GOLDBONUS,
  330.             APPLY_MAX_HP_PCT,
  331.             APPLY_MAX_SP_PCT,
  332.             APPLY_SKILL_DAMAGE_BONUS,
  333.             APPLY_NORMAL_HIT_DAMAGE_BONUS,
  334.             APPLY_SKILL_DEFEND_BONUS,
  335.             APPLY_NORMAL_HIT_DEFEND_BONUS,
  336.             APPLY_EXTRACT_HP_PCT,
  337.             APPLY_PC_BANG_EXP_BONUS,
  338.             APPLY_PC_BANG_DROP_BONUS,
  339.             APPLY_RESIST_WARRIOR,
  340.             APPLY_RESIST_ASSASSIN,
  341.             APPLY_RESIST_SURA,
  342.             APPLY_RESIST_SHAMAN,
  343.             APPLY_ENERGY,
  344.             APPLY_DEF_GRADE,
  345.             APPLY_COSTUME_ATTR_BONUS,
  346.             APPLY_MAGIC_ATTBONUS_PER,
  347.             APPLY_MELEE_MAGIC_ATTBONUS_PER,
  348.             APPLY_RESIST_ICE,
  349.             APPLY_RESIST_EARTH,
  350.             APPLY_RESIST_DARK,
  351.             APPLY_ANTI_CRITICAL_PCT,
  352.             APPLY_ANTI_PENETRATE_PCT,
  353.             APPLY_BLEEDING_PCT,
  354.             APPLY_BLEEDING_REDUCE,
  355.             APPLY_ATT_BONUS_TO_WOLFMAN,
  356.             APPLY_RESIST_WOLFMAN,
  357.             APPLY_RESIST_CLAW,
  358.             MAX_APPLY_NUM,
  359.         };
  360.  
  361.         enum EImmuneFlags
  362.         {
  363.             IMMUNE_PARA         = (1 << 0),
  364.             IMMUNE_CURSE        = (1 << 1),
  365.             IMMUNE_STUN         = (1 << 2),
  366.             IMMUNE_SLEEP        = (1 << 3),
  367.             IMMUNE_SLOW         = (1 << 4),
  368.             IMMUNE_POISON       = (1 << 5),
  369.             IMMUNE_TERROR       = (1 << 6),
  370.         };
  371.  
  372. #pragma pack(push)
  373. #pragma pack(1)
  374.         typedef struct SItemLimit
  375.         {
  376.             BYTE        bType;
  377.             long        lValue;
  378.         } TItemLimit;
  379.  
  380.         typedef struct SItemApply
  381.         {
  382.             BYTE        bType;
  383.             long        lValue;
  384.         } TItemApply;
  385.  
  386.         typedef struct SItemTable
  387.         {
  388.             DWORD       dwVnum;
  389.             DWORD       dwVnumRange;
  390.             char        szName[ITEM_NAME_MAX_LEN + 1];
  391.             char        szLocaleName[ITEM_NAME_MAX_LEN + 1];
  392.             BYTE        bType;
  393.             BYTE        bSubType;
  394.            
  395.             BYTE        bWeight;
  396.             BYTE        bSize;
  397.            
  398.             DWORD       dwAntiFlags;
  399.             DWORD       dwFlags;
  400.             DWORD       dwWearFlags;
  401.             DWORD       dwImmuneFlag;
  402.                        
  403.             DWORD       dwIBuyItemPrice;           
  404.             DWORD       dwISellItemPrice;
  405.            
  406.             TItemLimit  aLimits[ITEM_LIMIT_MAX_NUM];
  407.             TItemApply  aApplies[ITEM_APPLY_MAX_NUM];
  408.             long        alValues[ITEM_VALUES_MAX_NUM];
  409.             long        alSockets[ITEM_SOCKET_MAX_NUM];
  410.             DWORD       dwRefinedVnum;
  411.             WORD        wRefineSet;
  412.             BYTE        bAlterToMagicItemPct;
  413.             BYTE        bSpecular;
  414.             BYTE        bGainSocketPct;
  415.         } TItemTable;
  416.  
  417. //      typedef struct SItemTable
  418. //      {
  419. //          DWORD       dwVnum;
  420. //          char        szItemName[ITEM_NAME_MAX_LEN + 1];
  421. //          BYTE        bType;
  422. //          BYTE        bSubType;
  423. //          BYTE        bSize;
  424. //          DWORD       dwAntiFlags;
  425. //          DWORD       dwFlags;
  426. //          DWORD       dwWearFlags;
  427. //          DWORD       dwIBuyItemPrice;
  428. //          DWORD       dwISellItemPrice;
  429. //          TItemLimit  aLimits[ITEM_LIMIT_MAX_NUM];
  430. //          TItemApply  aApplies[ITEM_APPLY_MAX_NUM];
  431. //          long        alValues[ITEM_VALUES_MAX_NUM];
  432. //          long        alSockets[ITEM_SOCKET_MAX_NUM];
  433. //          DWORD       dwRefinedVnum;
  434. //          BYTE        bSpecular;
  435. //          DWORD       dwIconNumber;
  436. //      } TItemTable;
  437. #pragma pack(pop)
  438.  
  439.     public:
  440.         CItemData();
  441.         virtual ~CItemData();
  442.  
  443.         void Clear();
  444.         void SetSummary(const std::string& c_rstSumm);
  445.         void SetDescription(const std::string& c_rstDesc);
  446.  
  447.         CGraphicThing * GetModelThing();
  448.         CGraphicThing * GetSubModelThing();
  449.         CGraphicThing * GetDropModelThing();
  450.         CGraphicSubImage * GetIconImage();
  451.  
  452.         DWORD GetLODModelThingCount();
  453.         BOOL GetLODModelThingPointer(DWORD dwIndex, CGraphicThing ** ppModelThing);
  454.  
  455.         DWORD GetAttachingDataCount();
  456.         BOOL GetCollisionDataPointer(DWORD dwIndex, const NRaceData::TAttachingData ** c_ppAttachingData);
  457.         BOOL GetAttachingDataPointer(DWORD dwIndex, const NRaceData::TAttachingData ** c_ppAttachingData);
  458.  
  459.         /////
  460.         const TItemTable*   GetTable() const;
  461.         DWORD GetIndex() const;
  462.         const char * GetName() const;
  463.         const char * GetDescription() const;
  464.         const char * GetSummary() const;
  465.         BYTE GetType() const;
  466.         BYTE GetSubType() const;
  467.         UINT GetRefine() const;
  468.         const char* GetUseTypeString() const;
  469.         DWORD GetWeaponType() const;
  470.         BYTE GetSize() const;
  471.         BOOL IsAntiFlag(DWORD dwFlag) const;
  472.         BOOL IsFlag(DWORD dwFlag) const;
  473.         BOOL IsWearableFlag(DWORD dwFlag) const;
  474.         BOOL HasNextGrade() const;
  475.         DWORD GetWearFlags() const;
  476.         DWORD GetIBuyItemPrice() const;
  477.         DWORD GetISellItemPrice() const;
  478.         BOOL GetLimit(BYTE byIndex, TItemLimit * pItemLimit) const;
  479.         BOOL GetApply(BYTE byIndex, TItemApply * pItemApply) const;
  480.         long GetValue(BYTE byIndex) const;
  481.         long GetSocket(BYTE byIndex) const;
  482.         long SetSocket(BYTE byIndex,DWORD value);
  483.         int GetSocketCount() const;
  484.         DWORD GetIconNumber() const;
  485.  
  486.         UINT    GetSpecularPoweru() const;
  487.         float   GetSpecularPowerf() const;
  488.    
  489.         /////
  490.  
  491.         BOOL IsEquipment() const;
  492.  
  493.         /////
  494.  
  495.         //BOOL LoadItemData(const char * c_szFileName);
  496.         void SetDefaultItemData(const char * c_szIconFileName, const char * c_szModelFileName  = NULL);
  497.         void SetItemTableData(TItemTable * pItemTable);
  498.  
  499.     protected:
  500.         void __LoadFiles();
  501.         void __SetIconImage(const char * c_szFileName);
  502.  
  503.     protected:
  504.         std::string m_strModelFileName;
  505.         std::string m_strSubModelFileName;
  506.         std::string m_strDropModelFileName;
  507.         std::string m_strIconFileName;
  508.         std::string m_strDescription;
  509.         std::string m_strSummary;
  510.         std::vector<std::string> m_strLODModelFileNameVector;
  511.  
  512.         CGraphicThing * m_pModelThing;
  513.         CGraphicThing * m_pSubModelThing;
  514.         CGraphicThing * m_pDropModelThing;
  515.         CGraphicSubImage * m_pIconImage;
  516.         std::vector<CGraphicThing *> m_pLODModelThingVector;
  517.  
  518.         NRaceData::TAttachingDataVector m_AttachingDataVector;
  519.         DWORD       m_dwVnum;
  520.         TItemTable m_ItemTable;
  521.        
  522.     public:
  523.         static void DestroySystem();
  524.  
  525.         static CItemData* New();
  526.         static void Delete(CItemData* pkItemData);
  527.  
  528.         static CDynamicPool<CItemData>      ms_kPool;
  529. };
Advertisement
Add Comment
Please, Sign In to add comment