Exemplo n.º 1
0
bool CUIEventsWnd::ItemHasDescription(CUITaskItem* itm)
{
	if(itm->ObjectiveIdx()==0)// root
	{
		bool bHasLocation	= itm->GameTask()->HasLinkedMapLocations();
		return bHasLocation;
	}else
	{
		SGameTaskObjective	*obj				= itm->Objective();
		CMapLocation* ml						= obj->LinkedMapLocation();
		bool bHasLocation						= (NULL != ml);
		bool bIsMapMode							= GetDescriptionMode(); 
		bool b									= (bIsMapMode&&bHasLocation&&ml->SpotEnabled());
		return b;
	}
}
Exemplo n.º 2
0
void UISecondTaskItem::update_view()
{
	VERIFY( m_task );
	CMapLocation* ml = m_task->LinkedMapLocation();

	if ( ml && ml->SpotEnabled() )
	{
		m_bt_view->SetCheck( false );
	}
	else
	{
		m_bt_view->SetCheck( true );
	}


	m_name->SetTextST( m_task->m_Title.c_str() );
	m_name->AdjustHeightToText();
	float h1 = m_name->GetWndPos().y + m_name->GetHeight() + 10.0f;
	h1 = _max( h1, GetHeight() );
	SetHeight( h1 );

	CGameTask* activ_task = Level().GameTaskManager().ActiveTask( eTaskTypeAdditional );

	if ( m_task == activ_task )
	{
		m_name->SetTextColor( m_color_states[stt_activ] );
	}
	else if ( m_task->m_read )
	{
		m_name->SetTextColor( m_color_states[stt_read] );
	}
	else
	{
		m_name->SetTextColor( m_color_states[stt_unread] );
	}

}
Exemplo n.º 3
0
void UITaskListWndItem::update_view()
{
	VERIFY( m_task );
	CMapLocation* ml = m_task->LinkedMapLocation();
	if ( ml && ml->SpotEnabled() )
		m_bt_focus->Show(true);
	else
		m_bt_focus->Show(false);

	if(m_task->GetTaskType()==eTaskTypeStoryline)
		m_st_story->InitTexture("ui_inGame2_PDA_icon_Primary_mission");
	else
		m_st_story->InitTexture("ui_inGame2_PDA_icon_Secondary_mission");

	m_name->TextItemControl()->SetTextST( m_task->m_Title.c_str() );
	m_name->AdjustHeightToText();
	float h1 = m_name->GetWndPos().y + m_name->GetHeight() + 10.0f;
	h1 = _max( h1, GetHeight() );
	SetHeight( h1 );

	CGameTask* activ_task = Level().GameTaskManager().ActiveTask();

	if ( m_task == activ_task )
	{
		m_name->SetStateTextColor( m_color_states[stt_activ], S_Enabled );
	}
	else if ( m_task->m_read )
	{
		m_name->SetStateTextColor( m_color_states[stt_read], S_Enabled );
	}
	else
	{
		m_name->SetStateTextColor( m_color_states[stt_unread], S_Enabled );
	}

}
Exemplo n.º 4
0
void CUIEventsWnd::ShowDescription			(CGameTask* t, int idx)
{
	if(GetDescriptionMode()){//map
		SGameTaskObjective& o		= t->Objective(idx);
		CMapLocation* ml			= o.LinkedMapLocation();

		if(ml&&ml->SpotEnabled())
			m_UIMapWnd->SetTargetMap(ml->LevelName(), ml->Position(), true);
	}else
	{//articles
		SGameTaskObjective& o		= t->Objective(0);
		idx							= 0;

		m_UITaskInfoWnd->ClearAll	();

		if(Actor()->encyclopedia_registry->registry().objects_ptr())
		{
			string512	need_group;
			if(0==idx){
				strcpy(need_group,*t->m_ID);
			}else
			if(o.article_key.size())
			{
				sprintf_s(need_group, "%s/%s", *t->m_ID, *o.article_key);
			}else
			{
				sprintf_s(need_group, "%s/%d", *t->m_ID, idx);
			}

			ARTICLE_VECTOR::const_iterator it		= Actor()->encyclopedia_registry->registry().objects_ptr()->begin();

			for(; it != Actor()->encyclopedia_registry->registry().objects_ptr()->end(); ++it)
			{
				if (ARTICLE_DATA::eTaskArticle == it->article_type)
				{
					CEncyclopediaArticle	A;
					A.Load					(it->article_id);

					const shared_str& group = A.data()->group;

					if( strstr(group.c_str(), need_group)== group.c_str() )
					{
						u32 sz			= xr_strlen(need_group);
						if ( group.size()== sz || group.c_str()[sz]=='/' )
							m_UITaskInfoWnd->AddArticle(&A);
					}else
					if(o.article_id.size() && it->article_id ==o.article_id)
					{
						CEncyclopediaArticle			A;
						A.Load							(it->article_id);
						m_UITaskInfoWnd->AddArticle		(&A);
					}
				}
			}
		}
	}

	int sz			= m_ListWnd->GetSize		();

	for(int i=0; i<sz;++i)
	{
		CUITaskItem* itm			= (CUITaskItem*)m_ListWnd->GetItem(i);

		if((itm->GameTask()==t) && (itm->ObjectiveIdx()==idx) )	
			itm->MarkSelected		(true);
		else
			itm->MarkSelected		(false);
	}
}