📄 iteminfomanager.cpp
字号:
g_pSerumInfoManager = new SerumInfoManager (); g_pSerumInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_SERUM] = g_pSerumInfoManager; Serum::initItemIDRegistry(); //cout << "Serum" << endl; // initialize VampireETCInfoManager g_pVampireETCInfoManager = new VampireETCInfoManager (); g_pVampireETCInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_VAMPIRE_ETC] = g_pVampireETCInfoManager; VampireETC::initItemIDRegistry(); //cout << "VampireETC" << endl; // initialize SlayerPortalItemInfoManager g_pSlayerPortalItemInfoManager = new SlayerPortalItemInfoManager (); g_pSlayerPortalItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_SLAYER_PORTAL_ITEM] = g_pSlayerPortalItemInfoManager; SlayerPortalItem::initItemIDRegistry(); //cout << "SlayerPortalItem" << endl; // initialize VampirePortalItemInfoManager g_pVampirePortalItemInfoManager = new VampirePortalItemInfoManager (); g_pVampirePortalItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_VAMPIRE_PORTAL_ITEM] = g_pVampirePortalItemInfoManager; VampirePortalItem::initItemIDRegistry(); //cout << "VampirePortalItem" << endl; // initialize EventGiftBoxInfoManager g_pEventGiftBoxInfoManager = new EventGiftBoxInfoManager (); g_pEventGiftBoxInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_EVENT_GIFT_BOX] = g_pEventGiftBoxInfoManager; EventGiftBox::initItemIDRegistry(); //cout << "EventGiftBox" << endl; // initialize EventStarInfoManager g_pEventStarInfoManager = new EventStarInfoManager (); g_pEventStarInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_EVENT_STAR] = g_pEventStarInfoManager; EventStar::initItemIDRegistry(); //cout << "EventStar" << endl; // initialize VampireBraceletInfoManager g_pVampireEarringInfoManager = new VampireEarringInfoManager (); g_pVampireEarringInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_VAMPIRE_EARRING] = g_pVampireEarringInfoManager; VampireEarring::initItemIDRegistry(); //cout << "VampireEarring" << endl; g_pRelicInfoManager = new RelicInfoManager(); g_pRelicInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_RELIC] = g_pRelicInfoManager; Relic::initItemIDRegistry(); // initialize VampireBraceletInfoManager g_pVampireWeaponInfoManager = new VampireWeaponInfoManager (); g_pVampireWeaponInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_VAMPIRE_WEAPON] = g_pVampireWeaponInfoManager; VampireWeapon::initItemIDRegistry(); g_pVampireAmuletInfoManager = new VampireAmuletInfoManager(); g_pVampireAmuletInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_VAMPIRE_AMULET] = g_pVampireAmuletInfoManager; VampireAmulet::initItemIDRegistry(); g_pQuestItemInfoManager = new QuestItemInfoManager (); g_pQuestItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_QUEST_ITEM] = g_pQuestItemInfoManager; QuestItem::initItemIDRegistry(); g_pEventTreeInfoManager = new EventTreeInfoManager (); g_pEventTreeInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_EVENT_TREE] = g_pEventTreeInfoManager; EventTree::initItemIDRegistry(); g_pEventETCInfoManager = new EventETCInfoManager (); g_pEventETCInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_EVENT_ETC] = g_pEventETCInfoManager; EventETC::initItemIDRegistry(); g_pBloodBibleInfoManager = new BloodBibleInfoManager (); g_pBloodBibleInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_BLOOD_BIBLE] = g_pBloodBibleInfoManager; BloodBible::initItemIDRegistry(); g_pCastleSymbolInfoManager = new CastleSymbolInfoManager (); g_pCastleSymbolInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_CASTLE_SYMBOL] = g_pCastleSymbolInfoManager; CastleSymbol::initItemIDRegistry(); g_pCoupleRingInfoManager = new CoupleRingInfoManager (); g_pCoupleRingInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_COUPLE_RING] = g_pCoupleRingInfoManager; CoupleRing::initItemIDRegistry(); g_pVampireCoupleRingInfoManager = new VampireCoupleRingInfoManager (); g_pVampireCoupleRingInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_VAMPIRE_COUPLE_RING] = g_pVampireCoupleRingInfoManager; VampireCoupleRing::initItemIDRegistry(); g_pEventItemInfoManager = new EventItemInfoManager (); g_pEventItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_EVENT_ITEM] = g_pEventItemInfoManager; EventItem::initItemIDRegistry(); g_pDyePotionInfoManager = new DyePotionInfoManager (); g_pDyePotionInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_DYE_POTION] = g_pDyePotionInfoManager; DyePotion::initItemIDRegistry(); g_pResurrectItemInfoManager = new ResurrectItemInfoManager (); g_pResurrectItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_RESURRECT_ITEM] = g_pResurrectItemInfoManager; ResurrectItem::initItemIDRegistry(); g_pMixingItemInfoManager = new MixingItemInfoManager (); g_pMixingItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_MIXING_ITEM] = g_pMixingItemInfoManager; MixingItem::initItemIDRegistry(); g_pOustersArmsbandInfoManager = new OustersArmsbandInfoManager (); g_pOustersArmsbandInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_ARMSBAND] = g_pOustersArmsbandInfoManager; OustersArmsband::initItemIDRegistry(); g_pOustersBootsInfoManager = new OustersBootsInfoManager (); g_pOustersBootsInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_BOOTS] = g_pOustersBootsInfoManager; OustersBoots::initItemIDRegistry(); g_pOustersChakramInfoManager = new OustersChakramInfoManager (); g_pOustersChakramInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_CHAKRAM] = g_pOustersChakramInfoManager; OustersChakram::initItemIDRegistry(); g_pOustersCircletInfoManager = new OustersCircletInfoManager (); g_pOustersCircletInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_CIRCLET] = g_pOustersCircletInfoManager; OustersCirclet::initItemIDRegistry(); g_pOustersCoatInfoManager = new OustersCoatInfoManager (); g_pOustersCoatInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_COAT] = g_pOustersCoatInfoManager; OustersCoat::initItemIDRegistry(); g_pOustersPendentInfoManager = new OustersPendentInfoManager (); g_pOustersPendentInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_PENDENT] = g_pOustersPendentInfoManager; OustersPendent::initItemIDRegistry(); g_pOustersRingInfoManager = new OustersRingInfoManager (); g_pOustersRingInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_RING] = g_pOustersRingInfoManager; OustersRing::initItemIDRegistry(); g_pOustersStoneInfoManager = new OustersStoneInfoManager (); g_pOustersStoneInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_STONE] = g_pOustersStoneInfoManager; OustersStone::initItemIDRegistry(); g_pOustersWristletInfoManager = new OustersWristletInfoManager (); g_pOustersWristletInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_WRISTLET] = g_pOustersWristletInfoManager; OustersWristlet::initItemIDRegistry(); g_pLarvaInfoManager = new LarvaInfoManager (); g_pLarvaInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_LARVA] = g_pLarvaInfoManager; Larva::initItemIDRegistry(); g_pPupaInfoManager = new PupaInfoManager (); g_pPupaInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_PUPA] = g_pPupaInfoManager; Pupa::initItemIDRegistry(); g_pComposMeiInfoManager = new ComposMeiInfoManager (); g_pComposMeiInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_COMPOS_MEI] = g_pComposMeiInfoManager; ComposMei::initItemIDRegistry(); g_pOustersSummonItemInfoManager = new OustersSummonItemInfoManager (); g_pOustersSummonItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_OUSTERS_SUMMON_ITEM] = g_pOustersSummonItemInfoManager; OustersSummonItem::initItemIDRegistry(); g_pEffectItemInfoManager = new EffectItemInfoManager (); g_pEffectItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_EFFECT_ITEM] = g_pEffectItemInfoManager; EffectItem::initItemIDRegistry(); g_pCodeSheetInfoManager = new CodeSheetInfoManager (); g_pCodeSheetInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_CODE_SHEET] = g_pCodeSheetInfoManager; CodeSheet::initItemIDRegistry(); g_pMoonCardInfoManager = new MoonCardInfoManager (); g_pMoonCardInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_MOON_CARD] = g_pMoonCardInfoManager; MoonCard::initItemIDRegistry(); g_pSweeperInfoManager = new SweeperInfoManager (); g_pSweeperInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_SWEEPER] = g_pSweeperInfoManager; Sweeper::initItemIDRegistry(); g_pPetItemInfoManager = new PetItemInfoManager (); g_pPetItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_PET_ITEM] = g_pPetItemInfoManager; PetItem::initItemIDRegistry(); g_pPetFoodInfoManager = new PetFoodInfoManager (); g_pPetFoodInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_PET_FOOD] = g_pPetFoodInfoManager; PetFood::initItemIDRegistry(); g_pPetEnchantItemInfoManager = new PetEnchantItemInfoManager (); g_pPetEnchantItemInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_PET_ENCHANT_ITEM] = g_pPetEnchantItemInfoManager; PetEnchantItem::initItemIDRegistry(); g_pLuckyBagInfoManager = new LuckyBagInfoManager (); g_pLuckyBagInfoManager->init(); m_InfoClassManagers[Item::ITEM_CLASS_LUCKY_BAG] = g_pLuckyBagInfoManager; LuckyBag::initItemIDRegistry(); __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get sub info class manager//////////////////////////////////////////////////////////////////////////////InfoClassManager* ItemInfoManager::getInfoManager (Item::ItemClass Class) const throw (Error){ __BEGIN_TRY Assert(Class < Item::ITEM_CLASS_MAX); Assert(m_InfoClassManagers[Class] != NULL); return m_InfoClassManagers[Class]; __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get item info//////////////////////////////////////////////////////////////////////////////ItemInfo* ItemInfoManager::getItemInfo (Item::ItemClass Class, ItemType_t ItemType) const throw (Error){ __BEGIN_TRY Assert(Class < Item::ITEM_CLASS_MAX); Assert(m_InfoClassManagers[Class] != NULL); return m_InfoClassManagers[Class]->getItemInfo(ItemType); __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get #item-info//////////////////////////////////////////////////////////////////////////////uint ItemInfoManager::getItemCount (Item::ItemClass Class) const throw (Error){ __BEGIN_TRY Assert(Class < Item::ITEM_CLASS_MAX); Assert(m_InfoClassManagers[Class] != NULL); return m_InfoClassManagers[Class]->getInfoCount(); __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get possible item type vector for specific item class//////////////////////////////////////////////////////////////////////////////vector<ItemType_t> ItemInfoManager::getPossibleItemTypes(Item::ItemClass IClass, uint minLevel, uint maxLevel) throw(){ __BEGIN_TRY Assert(IClass < Item::ITEM_CLASS_MAX); Assert(m_InfoClassManagers[IClass] != NULL); vector<ItemType_t> result; uint ItemCount = m_InfoClassManagers[IClass]->getInfoCount(); for (ItemType_t i=0; i<ItemCount; i++) { ItemInfo* pItemInfo = m_InfoClassManagers[IClass]->getItemInfo(i); Assert(pItemInfo != NULL); uint itemLevel = pItemInfo->getItemLevel(); // 泅犁 瘤沥等 酒捞袍狼 饭骇捞 min 饭骇焊促 臭绊, // max 饭骇焊促 撤促搁, 酒捞袍 鸥涝阑 氦磐俊促 歹茄促. if (minLevel <= itemLevel && itemLevel <= maxLevel) { result.push_back(i); } } return result; __END_CATCH}bool ItemInfoManager::isPossibleItem(Item::ItemClass IClass, ItemType_t IType, const list<OptionType_t>& OType) throw(){ __BEGIN_TRY Assert(IClass < Item::ITEM_CLASS_MAX); Assert(m_InfoClassManagers[IClass] != NULL); if (IType < m_InfoClassManagers[IClass]->getInfoCount()) { if (!OType.empty()) { try { //cout << "IM::getOptionInfo(" << (int)OType << ")" << endl; //cout << "IM::getOptionInfo(" << getOptionTypeToString(OType).c_str() << ")" << endl; list<OptionType_t>::const_iterator itr = OType.begin(); for (; itr!=OType.end(); itr++) { OptionType_t optionType = *itr; if (g_pOptionInfoManager->getOptionInfo(optionType)==NULL) { return false; } } return true; } catch (NoSuchElementException& nsee) { cout << nsee.toString().c_str() << endl; return false; } } else { return true; } } return false; __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get debug string//////////////////////////////////////////////////////////////////////////////string ItemInfoManager::toString () const throw (){ __BEGIN_TRY StringStream msg; msg << "ItemInfoManager("; for (uint i = 0; i < Item::ITEM_CLASS_MAX ; i ++) { if (m_InfoClassManagers[i] == NULL) msg << "NULL"; else msg << m_InfoClassManagers[i]->toString(); } msg << ")"; return msg.toString(); __END_CATCH}// global variable declarationItemInfoManager* g_pItemInfoManager = NULL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -