Пример #1
0
float Letter::compare(Letter to_compare)
{
	float score = 0;
	int no_points = 0;

	for (int x = 0; x < SIZE; x++)
		for (int y = 0; y < SIZE; y++)
			if (pattern[x][y] == true)
				score += compare_slots(x, y, to_compare),
				++no_points;

	return score/no_points;
}
//------------------------------------------------------------------------
bool CInventory::AddItem(EntityId id)
{
	if (FindItem(id)>-1)
		return true;

	if (m_stats.slots.size() >= gEnv->pConsole->GetCVar("i_inventory_capacity")->GetIVal())
		return false;

	AddItemToCategorySlot(id);

	m_stats.slots.push_back(id);
	std::sort(m_stats.slots.begin(), m_stats.slots.end(), compare_slots());

	TListenerVec::iterator iter = m_listeners.begin();
	m_iteratingListeners = true;
	while (iter != m_listeners.end())
	{
		(*iter)->OnAddItem(id);
		++iter;
	}
	m_iteratingListeners = false;

	return true;
}