本文整理汇总了C++中usercore::item::ItemInfoI::getParentId方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemInfoI::getParentId方法的具体用法?C++ ItemInfoI::getParentId怎么用?C++ ItemInfoI::getParentId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类usercore::item::ItemInfoI
的用法示例。
在下文中一共展示了ItemInfoI::getParentId方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onChoice
void InstallBranch::onChoice(wxCommandEvent& event)
{
MCFBranch b = getBranch();
if (b == UINT_MAX || b == (UINT_MAX - 1))
{
if (b == UINT_MAX)
m_butInstall->SetLabel(Managers::GetString(L"#PLAY"));
else
m_butInstall->SetLabel(Managers::GetString(L"#FIND"));
m_butInstall->Enable(true);
return;
}
UserCore::Item::ItemInfoI* pItemInfo = GetUserCore()->getItemManager()->findItemInfo(m_Item);
if ((m_bIsMod || m_bIsExpansion) && !m_bSelectBranch)
pItemInfo = GetUserCore()->getItemManager()->findItemInfo(pItemInfo->getParentId());
UserCore::Item::BranchInfoI* bi = pItemInfo->getBranchById(b);
m_bBuy = (!(bi->getFlags()&UserCore::Item::BranchInfoI::BF_ONACCOUNT) && !(bi->getFlags()&UserCore::Item::BranchInfoI::BF_FREE));
if (m_bBuy)
m_butInstall->SetLabel(Managers::GetString(L"#PURCHASE"));
else
m_butInstall->SetLabel(Managers::GetString(L"#INSTALL"));
bool noRelease = HasAllFlags(bi->getFlags(), UserCore::Item::BranchInfoI::BF_NORELEASES);
bool isPreorder = bi->isPreOrder();
bool onAccount = HasAllFlags(bi->getFlags(), UserCore::Item::BranchInfoI::BF_ONACCOUNT);
m_butInstall->Enable(!(noRelease && isPreorder && onAccount));
}
示例2: onButtonClick
void InstallBranch::onButtonClick(wxCommandEvent &event)
{
if (event.GetId() == m_butInfo->GetId())
{
if ((m_bIsMod || m_bIsExpansion) && !m_bSelectBranch)
g_pMainApp->handleInternalLink(m_Item, ACTION_PROFILE, FormatArgs("?help=needgame"));
else
g_pMainApp->handleInternalLink(m_Item, ACTION_PROFILE, FormatArgs("?help=branches"));
EndModal(wxID_CANCEL);
}
else if (event.GetId() == m_butInstall->GetId())
{
MCFBranch b = getBranch();
if (b == UINT_MAX)
{
UserCore::Item::ItemInfoI* pItemInfo = GetUserCore()->getItemManager()->findItemInfo(m_Item);
if ((m_bIsMod || m_bIsExpansion) && !m_bSelectBranch)
pItemInfo = GetUserCore()->getItemManager()->findItemInfo(pItemInfo->getParentId());
pItemInfo->addSFlag(UserCore::Item::ItemInfoI::STATUS_LINK|UserCore::Item::ItemInfoI::STATUS_INSTALLED|UserCore::Item::ItemInfoI::STATUS_READY);
EndModal(wxID_OK);
}
else if (b == (UINT_MAX - 1))
{
g_pMainApp->handleInternalLink(m_Item, ACTION_SHOWSETTINGS, FormatArgs("tab=cip"));
EndModal(wxID_CANCEL);
}
else if (m_bBuy)
{
MCFBranch g = getGlobal();
gcString args;
if (g == 0 || !g.isGlobal())
args = gcString("?help=buy&branch={0}", b);
else
args = gcString("?help=buy&branchglobal={0}", g);
g_pMainApp->handleInternalLink(m_Item, ACTION_PROFILE, FormatArgs(args));
EndModal(wxID_CANCEL);
}
else
{
EndModal(wxID_OK);
}
}
else if (event.GetId() == m_butCancel->GetId())
{
EndModal(wxID_CANCEL);
}
}
示例3: setInfo
int InstallBranch::setInfo(DesuraId id, bool selectBranch)
{
m_bSelectBranch = selectBranch;
UserCore::Item::ItemInfoI* pItemInfo = GetUserCore()->getItemManager()->findItemInfo(id);
if (!pItemInfo)
return 1;
m_bIsMod = id.getType() == DesuraId::TYPE_MOD;
m_bIsExpansion = m_bIsMod == false && pItemInfo->getParentId().getType() == DesuraId::TYPE_GAME;
m_Item = id;
gcWString parName;
gcWString itemName = pItemInfo->getName();
DesuraId par = pItemInfo->getParentId();
UserCore::Item::ItemInfoI *parInfo = NULL;
if (par.isOk())
{
parInfo = GetUserCore()->getItemManager()->findItemInfo(par);
if (parInfo)
parName = gcWString(parInfo->getName());
}
fixName(parName);
fixName(itemName);
if (selectBranch == false && m_bIsMod)
{
m_labInfo->SetLabel(gcWString(Managers::GetString(L"#IF_NOTFOUND"), itemName, parName));
m_labInfo->Wrap( 350 );
}
else if (selectBranch == false && m_bIsExpansion)
{
m_labInfo->SetLabel(gcWString(Managers::GetString(L"#IF_NOTFOUND_GAME"), itemName, parName));
m_labInfo->Wrap( 350 );
}
else
{
m_labInfo->SetLabel(gcWString(Managers::GetString(L"#IF_BRANCHINFO"), itemName));
m_labInfo->Wrap( 350 );
}
uint32 count = 0;
int32 full = -1;
uint32 fullReadyCount = 0;
m_bBuy = true;
UserCore::Item::ItemInfoI *i = pItemInfo;
bool isCheckingParent = (m_bIsMod || m_bIsExpansion) && !selectBranch;
if (isCheckingParent)
{
if (!parInfo)
{
gcMessageBox(GetParent(), Managers::GetString(L"#IF_IIPARENT"), Managers::GetString(L"#IF_IIERRTITLE"));
return 1;
}
i = parInfo;
}
std::vector<UserCore::Item::BranchInfoI*> bList;
for (uint32 x=0; x<i->getBranchCount(); x++)
{
UserCore::Item::BranchInfoI* bi = i->getBranch(x);
if (!bi)
continue;
uint32 flags = bi->getFlags();
bool noRelease = HasAllFlags(flags, UserCore::Item::BranchInfoI::BF_NORELEASES);
bool isPreorder = bi->isPreOrder();
bool isDemo = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_DEMO);
bool onAccount = HasAllFlags(flags, UserCore::Item::BranchInfoI::BF_ONACCOUNT);
bool locked = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_MEMBERLOCK|UserCore::Item::BranchInfoI::BF_REGIONLOCK);
bool test = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_TEST);
bool free = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_FREE);
if (noRelease && !isPreorder)
continue;
if (!onAccount && locked)
continue;
if (!selectBranch && (isDemo || test))
continue;
if ((free || onAccount) && isPreorder && !selectBranch)
continue;
bool globalFound = false;
for (size_t x=0; x<bList.size(); x++)
{
//.........这里部分代码省略.........
示例4: validate
uint32 GatherInfoTask::validate()
{
UserCore::Item::ItemInfoI* pItemInfo = getItemHandle()->getItemInfo();
uint32 isValid = 0;
if (!pItemInfo)
return UserCore::Item::Helper::V_BADINFO;
DesuraId par = pItemInfo->getParentId();
UserCore::Item::ItemInfoI *parInfo = nullptr;
if (par.isOk())
{
parInfo = getUserCore()->getItemManager()->findItemInfo(par);
if (!parInfo || !(parInfo->getStatus() & UserCore::Item::ItemInfoI::STATUS_INSTALLED))
isValid |= UserCore::Item::Helper::V_PARENT;
}
const char* path = pItemInfo->getPath(getMcfBranch());
if (!path)
{
isValid |= UserCore::Item::Helper::V_BADPATH;
}
else
{
const char *comAppPath = getUserCore()->getAppDataPath();
uint64 inFreeSpace = UTIL::OS::getFreeSpace(path);
uint64 dlFreeSpace = UTIL::OS::getFreeSpace(comAppPath);
//if they are on the same drive:
if (strncmp(comAppPath, path, 3) == 0)
{
if ((inFreeSpace+dlFreeSpace) < (pItemInfo->getDownloadSize()+pItemInfo->getInstallSize()))
{
isValid |= (UserCore::Item::Helper::V_FREESPACE|UserCore::Item::Helper::V_FREESPACE_DL|UserCore::Item::Helper::V_FREESPACE_INS);
}
}
else
{
if (dlFreeSpace < pItemInfo->getDownloadSize())
isValid |= UserCore::Item::Helper::V_FREESPACE|UserCore::Item::Helper::V_FREESPACE_DL;
if (inFreeSpace < pItemInfo->getInstallSize())
isValid |= UserCore::Item::Helper::V_FREESPACE|UserCore::Item::Helper::V_FREESPACE_INS;
}
if (pItemInfo->getStatus() & UserCore::Item::ItemInfoI::STATUS_INSTALLCOMPLEX)
{
const char* primPath = pItemInfo->getInsPrimary();
if (primPath && strcmp(primPath, "") != 0 && UTIL::FS::isValidFolder(primPath) && !UTIL::FS::isFolderEmpty(primPath))
isValid |= UserCore::Item::Helper::V_NONEMPTY;
}
else if (pItemInfo->getStatus() & UserCore::Item::ItemInfoI::STATUS_DLC)
{
if (!parInfo || gcString(path) != gcString(parInfo->getPath()))
{
if (!UTIL::FS::isFolderEmpty(path))
isValid |= UserCore::Item::Helper::V_NONEMPTY;
}
}
else if (!UTIL::FS::isFolderEmpty(path))
{
isValid |= UserCore::Item::Helper::V_NONEMPTY;
}
}
#ifdef NIX
UserCore::Item::BranchInfoI* bi = pItemInfo->getBranchById(getMcfBranch());
std::vector<DesuraId> toolList;
bi->getToolList(toolList);
uint32 res = getUserCore()->getToolManager()->hasNonInstallableTool(toolList);
switch (res)
{
case 0:
isValid |= UserCore::Item::Helper::V_JAVA_SUN;
break;
case 1:
isValid |= UserCore::Item::Helper::V_JAVA;
break;
case 2:
isValid |= UserCore::Item::Helper::V_MONO;
break;
case 3:
isValid |= UserCore::Item::Helper::V_AIR;
break;
};
#endif
return isValid;
}
示例5: launchItem
void InternalLink::launchItem(DesuraId id, Args args)
{
bool cdKeyArg = args.containsArg("cdkey");
bool noUpdateArg = args.containsArg("noupdate");
bool exeNumArg = args.containsArg("exe");
std::string exe = args.getArgValue("exe");
if (exe == "")
exeNumArg = false;
g_pMainApp->showPlay();
if (checkForPreorder(id))
return;
UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo(id);
bool delFlag=false;
if (!item || !item->isLaunchable())
{
installItem(id, Args());
return;
}
if (!item->hasAcceptedEula())
{
showPrompt(id, FormatArgs("prompt=eula"));
return;
}
if (!exeNumArg && item->getExeCount(true) > 1)
{
showExeSelect(id, cdKeyArg);
return;
}
else if (exe.size() > 0)
{
item->setActiveExe(exe.c_str());
}
bool hasCDKey = item->getCurrentBranch() && item->getCurrentBranch()->hasCDKey();
bool hasDLCDKey = item->getCurrentBranch() && item->getCurrentBranch()->isCDKeyValid();
if (!cdKeyArg && ((item->isFirstLaunch() && hasCDKey) || (hasCDKey && !hasDLCDKey)))
{
showCDKey(id, FormatArgs("launch=true", std::string("exe=") + exe));
return;
}
bool shouldShowGameDisk = false;
if (args.containsArg("gamedisk") == false && HasAnyFlags(item->getOptions(), UserCore::Item::ItemInfoI::OPTION_DONTPROMPTGAMEDISK) == false)
{
size_t x=0;
while (g_GameDiskList[x].isOk())
{
if (item->getId() == g_GameDiskList[x] || item->getParentId() == g_GameDiskList[x])
{
shouldShowGameDisk = true;
break;
}
x++;
}
}
if (shouldShowGameDisk)
{
showGameDisk(id, exe.c_str(), cdKeyArg);
return;
}
if (noUpdateArg && !HasAnyFlags(item->getOptions(), UserCore::Item::ItemInfoI::OPTION_NOTREMINDUPDATE))
{
item->addOFlag(UserCore::Item::ItemInfoI::OPTION_NOTREMINDUPDATE);
delFlag = true;
}
UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_LAUNCH);
if (!form)
Warning(gcString("Cant find item (or item not ready) for launch [{0}].\n", id.toInt64()));
if (item && delFlag)
item->delOFlag(UserCore::Item::ItemInfoI::OPTION_NOTREMINDUPDATE);
}