195 array<MissionWorkshopItem> missionItemsAll = {};
199 for (
int i = missionItemsAll.Count() - 1; i >= 0; i--)
210 missionItemsAll.Remove(i);
213 for (
int i = missionItemsAll.Count() - 1; i >= 0; i--)
216 missionItemsAll.Remove(i);
223 array<MissionWorkshopItem> missionItemsTabFiltered = {};
232 missionItemsTabFiltered.Insert(m);
246 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionTimeSinceLastPlay>.HeapSort(missionItemsAll,
false);
251 int dt = missionItemsAll[i].GetTimeSinceLastPlay();
253 missionItemsTabFiltered.Insert(missionItemsAll[i]);
280 missionItemsTabFiltered.Insert(m);
293 if (missionItemsAll.IsEmpty())
307 missionItemsTabFiltered.Insert(m);
317 if (!scriptedItem || !save)
318 missionItemsTabFiltered.Insert(m);
326 string searchStr =
m_Widgets.m_FilterPanelComponent.GetEditBoxSearch().GetValue();
327 array<MissionWorkshopItem> missionItemsSearched =
SearchScenarios(missionItemsTabFiltered, searchStr);
330 if (missionItemsSearched.IsEmpty())
362 array<MissionWorkshopItem> missionItems = missionItemsSearched;
364 string currentSortingItem =
m_Widgets.m_SortingHeaderComponent.GetSortElementName();
366 bool sortOrder =
false;
371 if (currentSortingItem.IsEmpty())
373 currentSortingItem =
"name";
376 switch (currentSortingItem)
383 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionAddonName>.HeapSort(missionItems, sortOrder);
387 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionName>.HeapSort(missionItems, sortOrder);
392 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionPlayerCount>.HeapSort(missionItems, sortOrder);
397 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionFavourite>.HeapSort(missionItems, sortOrder);
402 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionTimeSinceLastPlay>.HeapSort(missionItems, sortOrder);
410 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionName>.HeapSort(missionItems, sortOrder);
414 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionAddonName>.HeapSort(missionItems, sortOrder);
520 void SetPanelsMode(
bool showEmptyPanel,
string messagePresetTag =
string.Empty)
523 m_Widgets.m_EmptyPanel.SetVisible(showEmptyPanel);
524 m_Widgets.m_FilterPanel.SetVisible(!showEmptyPanel);
525 m_Widgets.m_LeftPanel.SetVisible(!showEmptyPanel);
528 m_Widgets.m_EmptyPanelMessage.SetVisible(!messagePresetTag.IsEmpty());
529 m_Widgets.m_MainPanelMessage.SetVisible(!messagePresetTag.IsEmpty());
532 if (!messagePresetTag.IsEmpty())
535 m_Widgets.m_EmptyPanelMessageComponent.SetContentFromPreset(messagePresetTag);
537 m_Widgets.m_MainPanelMessageComponent.SetContentFromPreset(messagePresetTag);
545 array<MissionWorkshopItem>
SearchScenarios(array<MissionWorkshopItem> scenarios,
string searchStr)
547 array<MissionWorkshopItem> scenariosOut = {};
549 if (!searchStr.IsEmpty())
551 string searchStrLower = searchStr;
552 searchStrLower.ToLower();
556 if (SearchStringLocalized(scenario.Name(), searchStrLower))
558 scenariosOut.Insert(scenario);
563 if (SearchStringLocalized(scenario.Description(), searchStrLower))
565 scenariosOut.Insert(scenario);
572 scenariosOut.Copy(scenarios);
586 string name1 = ResolveName(left.Name());
587 string name2 = ResolveName(right.Name());
589 if (name1.Compare(name2) == -1)
596 static string ResolveName(
string name)
598 if (name.StartsWith(
"#"))
606class SCR_CompareMissionAddonName : SCR_SortCompare<MissionWorkshopItem>
613 string name1 = ResolveAddonName(left);
614 string name2 = ResolveAddonName(right);
616 if (name1.Compare(name2) == -1)
void SetSaveItem(WorldSaveItem saveItem)