4#include "Etterna/Models/Misc/Difficulty.h"
5#include "Etterna/Models/Misc/GameConstantsAndTypes.h"
6#include "RageUtil/Utils/RageUtil_CachedObject.h"
41 return pSong == other.pSong &&
pSteps == other.pSteps;
50 if (
pSong != other.pSong) {
51 return pSong < other.pSong;
53 return pSteps < other.pSteps;
60CompareNotesPointersByRadarValues(
const Steps* pSteps1,
const Steps* pSteps2)
63CompareNotesPointersByMeter(
const Steps* pSteps1,
const Steps* pSteps2) -> bool;
65CompareNotesPointersByDifficulty(
const Steps* pSteps1,
const Steps* pSteps2)
68SortNotesArrayByDifficulty(std::vector<Steps*>& vpStepsInOut);
70CompareStepsPointersByTypeAndDifficulty(
const Steps* pStep1,
71 const Steps* pStep2) -> bool;
73SortStepsByTypeAndDifficulty(std::vector<Steps*>& vpStepsInOut);
75SortStepsPointerArrayByNumPlays(std::vector<Steps*>& vpStepsInOut,
79SortStepsPointerArrayByNumPlays(std::vector<Steps*>& vpStepsInOut,
83CompareStepsPointersByDescription(
const Steps* pStep1,
const Steps* pStep2)
86SortStepsByDescription(std::vector<Steps*>& vpStepsInOut);
91 StepsType st{ StepsType_Invalid };
92 Difficulty dc{ Difficulty_Invalid };
94 std::string sDescription;
108 void Unset() { FromSteps(
nullptr); }
109 void FromSteps(
const Steps* p);
110 auto ToSteps(
const Song* p,
bool bAllowNull)
const ->
Steps*;
129 auto operator<(
const StepsID& rhs)
const -> bool;
130 auto operator==(
const StepsID& rhs)
const -> bool;
131 auto MatchesStepsType(StepsType s)
const ->
bool {
return st == s; }
133 auto CreateNode() const ->
XNode*;
134 void LoadFromNode(const
XNode* pNode);
135 auto ToString() const -> std::
string;
136 auto IsValid() const ->
bool;
138 auto GetStepsType() const -> StepsType {
return st; }
139 auto GetDifficulty() const -> Difficulty {
return dc; }
140 auto GetKey() const -> std::
string {
return ck; }
141 auto GetDescription() const -> std::
string
143 return (dc == Difficulty_Edit ? sDescription : std::string());
145 auto GetHash() const ->
unsigned {
return uHash; }
Definition RageUtil_CachedObject.h:117
Player data that persists between sessions.
Definition Profile.h:130
A Song and one of its Steps.
Definition StepsUtil.h:15
SongAndSteps()=default
Set up a blank Song and Step.
auto operator<(const SongAndSteps &other) const -> bool
Compare two sets of Songs and Steps to see if they are not equal.
Definition StepsUtil.h:48
auto operator==(const SongAndSteps &other) const -> bool
Compare two sets of Songs and Steps to see if they are equal.
Definition StepsUtil.h:39
SongAndSteps(Song *pSong_, Steps *pSteps_)
Set up the specified Song and Step.
Definition StepsUtil.h:29
Steps * pSteps
the Steps we're using.
Definition StepsUtil.h:20
Song * pSong
the Song we're using.
Definition StepsUtil.h:18
Holds all music metadata and steps for one song.
Definition Song.h:65
Definition StepsUtil.h:90
StepsID()
Set up the StepsID with default values.
Definition StepsUtil.h:104
Holds note information for a Song.
Definition Steps.h:42
Utility functions for working with Steps.
Definition StepsUtil.h:58