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; } }
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] ); } }
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 ); } }
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); } }