Example #1
0
bool TopMenu::OnIdentityRemoval(IdentityToken_t *owner)
{
	/* First sweep the categories owned by us */
	CVector<unsigned int> obj_list;
	for (size_t i = 0; i < m_Categories.size(); i++)
	{
		if (m_Categories[i]->obj->owner == owner)
		{
			obj_list.push_back(m_Categories[i]->obj->object_id);
		}
	}

	for (size_t i = 0; i < obj_list.size(); i++)
	{
		RemoveFromMenu(obj_list[i]);
	}

	/* Now we can look for actual items */
	for (size_t i = 0; i < m_Objects.size(); i++)
	{
		if (m_Objects[i]->is_free)
		{
			continue;
		}
		if (m_Objects[i]->owner == owner)
		{
			assert(m_Objects[i]->type != TopMenuObject_Category);
			RemoveFromMenu(m_Objects[i]->object_id);
		}
	}

	return true;
}
Example #2
0
TopMenu::~TopMenu()
{
	/* Delete all categories */
	while (m_Categories.size())
	{
		RemoveFromMenu(m_Categories[0]->obj->object_id);
	}

	/* Remove all objects */
	for (size_t i = 0; i < m_Objects.size(); i++)
	{
		assert(m_Objects[i]->is_free == true);
		delete m_Objects[i];
	}

	m_pTitle->OnTopMenuObjectRemoved(this, 0);

	/* Delete all cached config entries */
	for (size_t i = 0; i < m_Config.cats.size(); i++)
	{
		delete m_Config.cats[i];
	}

	if (m_clients != NULL)
	{
		/* Sweep players */
		for (size_t i = 0; i <= (size_t)m_max_clients; i++)
		{
			TearDownClient(&m_clients[i]);
		}
		free(m_clients);
	}
}
Example #3
0
SettingsMenuImpl::~SettingsMenuImpl()
{
	RemoveFromMenu();
	fSettings->ReleaseReference();
}