18 friend struct CompareSongPointerArrayBySectionName;
23 void Load(
const std::string& sType)
override;
26 auto ChangeSort(SortOrder new_so,
27 bool allowSameSort =
false)
29 auto NextSort() -> bool;
30 auto IsRouletting()
const -> bool;
34 auto GetSelectedType() -> WheelItemDataType
36 return GetCurWheelItemData(m_iSelection)->m_Type;
38 auto GetSelectedSong() ->
Song*;
39 auto GetSelectedSection() -> std::string
41 return GetCurWheelItemData(m_iSelection)->m_sText;
44 auto GetPreferredSelectionForRandomOrPortal() ->
Song*;
46 auto SelectSong(
const Song* p) -> bool;
47 auto SelectSection(
const std::string& SectionName) -> bool;
48 void SetOpenSection(
const std::string& group)
override;
49 void ChangeMusic(
int dist)
override;
50 void FinishChangingSorts();
53 auto JumpToNextGroup() -> std::string;
54 auto JumpToPrevGroup() -> std::string;
60 void ReloadSongList(
bool searching,
const std::string& findme)
override;
61 void SetHashList(
const std::vector<std::string>& newHashList);
62 void SetOutHashList(
const std::vector<std::string>& newOutHashList);
65 bool packlistFiltering{
false };
67 std::vector<Song*> allSongsFiltered;
69 std::vector<std::map<std::string, std::vector<Song*>>>
70 allSongsByGroupFiltered{ NUM_SortOrder };
72 std::vector<std::map<std::string, int>> packProgressByGroup{
75 auto SelectSongOrCourse() -> bool;
76 void SelectSongAfterSearch();
79 void PushSelf(lua_State* L)
override;
84 std::vector<std::string> hashList;
85 std::vector<std::string> outHashList;
87 void GetSongList(std::vector<Song*>& arraySongs, SortOrder so)
const;
88 auto SelectModeMenuItem() -> bool;
90 void FilterByAndAgainstStepKeys(std::vector<Song*>& inv);
91 void FilterBySearch(std::vector<Song*>& inv, std::string findme_);
92 auto SearchGroupNames(
const std::string& findme) -> bool;
93 static void FilterBySkillsets(std::vector<Song*>& inv);
94 std::string lastvalidsearch;
95 std::string groupnamesearchmatch;
97 void UpdateSwitch()
override;
99 auto getWheelItemsData(SortOrder so) -> std::vector<MusicWheelItemData*>&;
100 void readyWheelItemsData(SortOrder so,
102 const std::string& findme);
104 std::string m_sLastModeMenuItem;
107 auto WheelItemIsVisible(
int n) -> bool;
122 std::vector<int> m_viWheelPositions;
134 } m_WheelItemDatasStatus[NUM_SortOrder]{};
138 std::vector<MusicWheelItemData*> m__WheelItemDatas[NUM_SortOrder];
139 std::vector<std::unique_ptr<MusicWheelItemData>> m__UnFilteredWheelItemDatas[NUM_SortOrder];
144 void BuildWheelItemDatas(
145 std::vector<std::unique_ptr<MusicWheelItemData>>& arrayWheelItemDatas,
148 const std::string& findme);
154 std::vector<std::unique_ptr<MusicWheelItemData>>& aUnFilteredDatas,
155 std::vector<MusicWheelItemData*>& aFilteredData,
156 const Song* currentSong,
157 const std::string& currentText,
158 const WheelItemDataType& currentType)
const;