Ejemplo n.º 1
0
void GatherInfoTask::doTask()
{
	auto pUser = getUserCore();

	if (!pUser)
		return;

	try
	{
		uint32 flags = UserCore::Item::ItemInfoI::STATUS_DELETED;

		if (m_bAddToAccount)
			flags = UserCore::Item::ItemInfoI::STATUS_ONACCOUNT;

		pUser->getItemManager()->retrieveItemInfo(getItemId(), flags);

		if (m_bAddToAccount)
		{
			//if we just removed this item from account it will be in a hidden deleted status
			auto info = pUser->getItemManager()->findItemInfo(getItemId());

			if (info)
				info->delSFlag(UserCore::Item::ItemInfoI::STATUS_DELETED);
		}
	}
	catch(gcException &e)
	{
		Warning("Failed to gather item info in task: {0}\n", e);
	}
}
Ejemplo n.º 2
0
gcRefPtr<UserCore::Item::ItemInfoI> DesuraJSBinding::getItemInfoFromId(gcString szId)
{
	auto im = getItemManager();

	if (!im)
		return nullptr;

	DesuraId id(Safe::atoll(szId.c_str()));
	return im->findItemInfo(id);
}
Ejemplo n.º 3
0
std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> DesuraJSBinding::getNewItems()
{
	auto im = getItemManager();

	if (!im)
		return std::vector<gcRefPtr<UserCore::Item::ItemInfoI>>();

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> gList;
	im->getNewItems(gList);
	return gList;
}
Ejemplo n.º 4
0
std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> DesuraJSBinding::getMods(gcRefPtr<UserCore::Item::ItemInfoI> game)
{
	auto im = getItemManager();

	if (!game || !im)
		return std::vector<gcRefPtr<UserCore::Item::ItemInfoI>>();

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> mList;
	im->getModList(game->getId(), mList);
	return mList;
}
Ejemplo n.º 5
0
gcRefPtr<UserCore::ItemManagerI> DesuraJSBinding::getItemManager()
{
	if (!gs_pItemManager)
	{
		auto uc = GetUserCore();

		if (uc)
			gs_pItemManager = uc->getItemManager();
	}

	return gs_pItemManager;
}
Ejemplo n.º 6
0
wxMenu* TBIGameMenu::createMenu(uint32 &lastMenuId)
{
	gcMenu* menu = new gcMenu();
	m_IdMapList.clear();

	auto pItemManager = getItemManager();

	if (!pItemManager)
		return menu;

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> gList;
	pItemManager->getGameList(gList);

	std::sort(gList.begin(), gList.end(), [](gcRefPtr<UserCore::Item::ItemInfoI> left, gcRefPtr<UserCore::Item::ItemInfoI> right){
		return strcmp(left->getName(), right->getName()) <= 0;
	});

	for (size_t x=0; x<gList.size(); x++)
	{
		auto item = gList[x];

		if (!item)
			continue;

		if ((item->getStatus() & UserCore::Item::ItemInfoI::STATUS_DEVELOPER) && !(item->getStatus() & (UserCore::Item::ItemInfoI::STATUS_INSTALLING|UserCore::Item::ItemInfoI::STATUS_DOWNLOADING|UserCore::Item::ItemInfoI::STATUS_UPDATING|UserCore::Item::ItemInfoI::STATUS_READY|UserCore::Item::ItemInfoI::STATUS_INSTALLED)))
			continue;


		wxMenuItem* menuItem = new gcMenuItem(menu, lastMenuId, item->getName());
		menu->Append(menuItem);

		m_IdMapList[lastMenuId] = item->getId();
		loadIcon(menuItem, item->getIcon());

		lastMenuId++;
	}

	if (menu->GetMenuItemCount() == 0)
	{
		wxMenuItem* noItems = new gcMenuItem(menu, lastMenuId, Managers::GetString(L"#TB_NOITEMS"));
		lastMenuId++;

		menu->Append(noItems);
		noItems->Enable(false);
	}

	return menu;
}
Ejemplo n.º 7
0
wxMenu* TBIModMenu::createMenu(uint32 &lastMenuId)
{
	gcMenu* menu = new gcMenu();
	m_IdMapList.clear();

	auto pItemManager = getItemManager();

	if (!pItemManager)
		return menu;

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> gList;
	pItemManager->getGameList(gList);

	std::sort(gList.begin(), gList.end(), [](gcRefPtr<UserCore::Item::ItemInfoI> left, gcRefPtr<UserCore::Item::ItemInfoI> right){
		return strcmp(left->getName(), right->getName()) <= 0;
	});

	for (size_t x=0; x<gList.size(); x++)
	{
		auto game = gList[x];

		std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> mList;
		pItemManager->getModList(game->getId(), mList);

		if (mList.size() == 0)
			continue;

		gcMenu* gameMenu = new gcMenu();

		std::sort(mList.begin(), mList.end(), [](gcRefPtr<UserCore::Item::ItemInfoI> left, gcRefPtr<UserCore::Item::ItemInfoI> right){
			return strcmp(left->getName(), right->getName()) <= 0;
		});

		for (size_t y=0; y<mList.size(); y++)
		{
			auto mod = mList[y];

			wxMenuItem* menuItem = new gcMenuItem(gameMenu, lastMenuId, mod->getName());
			gameMenu->Append(menuItem);

			m_IdMapList[lastMenuId] = mod->getId();
			loadIcon(menuItem, mod->getIcon());

			lastMenuId++;
		}

		wxMenuItem* gameItem = new gcMenuItem(gameMenu, wxID_ANY, game->getName(), "", wxITEM_NORMAL, gameMenu);
		loadIcon(gameItem, game->getIcon());

		menu->Append(gameItem);
	}

	if (menu->GetMenuItemCount() == 0)
	{
		wxMenuItem* noItems = new gcMenuItem(menu, lastMenuId, Managers::GetString(L"#TB_NOITEMS"));
		lastMenuId++;

		menu->Append(noItems);
		noItems->Enable(false);
	}

	return menu;
}