4#ifndef GAME_CONSTANTS_AND_TYPES_H
5#define GAME_CONSTANTS_AND_TYPES_H
8#include "Etterna/Models/NoteData/NoteDataStructures.h"
13const int MIN_METER = 1;
20const int MAX_METER = 35;
26const int ARBITRARY_MIN_GAMEPLAY_NUMBER = -200000;
30const float MISS_WINDOW_BEGIN_SEC = 0.18F;
33const float MINE_WINDOW_SEC = 0.075F;
38const float TAP_IN_HOLD_REQ_SEC = 0.135F;
42const float HOLD_DROP_SEC = 0.250F;
45const float ROLL_DROP_SEC = 0.500F;
47const float MIN_MUSIC_RATE = 0.05F;
48const float MAX_MUSIC_RATE = 3.F;
53 GameplayMode_Practice,
60SkillsetToString(Skillset ss) ->
const std::string&;
62auto CalcPatternModToString(CalcPatternMod) ->
const std::string&;
63auto CalcDiffValueToString(CalcDiffValue) ->
const std::string&;
64auto CalcDebugMiscToString(CalcDebugMisc) ->
const std::string&;
66enum NSScoreBoardColumn
71 NUM_NSScoreBoardColumn,
72 NSScoreBoardColumn_Invalid
77 ValidationKey_Brittle,
80 ValidationKey_Invalid,
84ValidationKeyToString(ValidationKey ss) ->
const std::string&;
94 RadarCategory_TapsAndHolds,
103 RadarCategory_Invalid
111RadarCategoryToString(RadarCategory cat) ->
const std::string&;
118RadarCategoryToLocalizedString(RadarCategory cat) ->
const std::string&;
119LuaDeclareType(RadarCategory);
122enum StepsTypeCategory
124 StepsTypeCategory_Single,
125 StepsTypeCategory_Double,
131 StepsType_dance_single = 0,
132 StepsType_dance_double,
133 StepsType_dance_solo,
134 StepsType_dance_threepanel,
135 StepsType_pump_single,
136 StepsType_pump_halfdouble,
137 StepsType_pump_double,
138 StepsType_kb7_single,
139 StepsType_ez2_single,
140 StepsType_ez2_double,
142 StepsType_ds3ddx_single,
143 StepsType_beat_single5,
144 StepsType_beat_double5,
145 StepsType_beat_single7,
146 StepsType_beat_double7,
147 StepsType_maniax_single,
148 StepsType_maniax_double,
154LuaDeclareType(StepsType);
192SortOrderToString(SortOrder so) ->
const std::string&;
199SortOrderToLocalizedString(SortOrder so) ->
const std::string&;
206StringToSortOrder(
const std::string& str) -> SortOrder;
207LuaDeclareType(SortOrder);
214IsSongSort(SortOrder so) ->
bool
216 return so >= SORT_GROUP && so <= SORT_GENRE;
235 TapNoteScore_Invalid,
243TapNoteScoreToString(TapNoteScore tns) ->
const std::string&;
250TapNoteScoreToLocalizedString(TapNoteScore tns) ->
const std::string&;
257StringToTapNoteScore(
const std::string& str) -> TapNoteScore;
258LuaDeclareType(TapNoteScore);
269 HoldNoteScore_Invalid,
277HoldNoteScoreToString(HoldNoteScore hns) ->
const std::string&;
285HoldNoteScoreToLocalizedString(HoldNoteScore hns) ->
const std::string&;
292StringToHoldNoteScore(
const std::string& str) -> HoldNoteScore;
293LuaDeclareType(HoldNoteScore);
310TimingWindowToString(TimingWindow tw) ->
const std::string&;
330ScoreEventToString(ScoreEvent se) ->
const std::string&;
340enum TapNoteScoreJudgeType
342 TapNoteScoreJudgeType_MinimumScore,
343 TapNoteScoreJudgeType_LastScore,
344 NUM_TapNoteScoreJudgeType,
345 TapNoteScoreJudgeType_Invalid,
348TapNoteScoreJudgeTypeToString(TapNoteScoreJudgeType jt) ->
const std::string&;
349LuaDeclareType(TapNoteScoreJudgeType);
361ProfileSlotToString(ProfileSlot ps) ->
const std::string&;
362LuaDeclareType(ProfileSlot);
364extern const std::string RANKING_TO_FILL_IN_MARKER;
366IsRankingToFillIn(
const std::string& sName) ->
bool
368 return !sName.empty() && sName[0] ==
'#';
372extern const std::string GROUP_ALL;
381 NUM_PlayerController,
382 PlayerController_Invalid
385PlayerControllerToString(PlayerController pc) ->
const std::string&;
386LuaDeclareType(PlayerController);
398LuaDeclareType(HealthState);
412 [[nodiscard]]
auto GetMin()
const -> float;
417 [[nodiscard]]
auto GetMax()
const -> float;
424 [[nodiscard]]
auto GetMaxWithin(
float highest = FLT_MAX)
const -> float;
434 [[nodiscard]]
auto IsSecret()
const -> bool;
444 StyleType_OnePlayerOneSide,
445 StyleType_OnePlayerTwoSides,
450StyleTypeToString(StyleType s) ->
const std::string&;
452StringToStyleType(
const std::string& s) -> StyleType;
453LuaDeclareType(StyleType);
468enum SampleMusicPreviewMode
470 SampleMusicPreviewMode_Normal,
472 SampleMusicPreviewMode_StartToPreview,
473 SampleMusicPreviewMode_ScreenMusic,
476 SampleMusicPreviewMode_LastSong,
477 SampleMusicPreviewMode_Nothing,
478 NUM_SampleMusicPreviewMode,
479 SampleMusicPreviewMode_Invalid,
481auto SampleMusicPreviewModeToString(SampleMusicPreviewMode)
482 ->
const std::string&;
484StringToSampleMusicPreviewMode(
const std::string& s) -> SampleMusicPreviewMode;
485LuaDeclareType(SampleMusicPreviewMode);
513StageToString(Stage s) ->
const std::string&;
514LuaDeclareType(Stage);
516StageToLocalizedString(Stage i) ->
const std::string&;
519enum ProfileLoadResult
521 ProfileLoadResult_Success,
522 ProfileLoadResult_FailedNoProfile,
523 ProfileLoadResult_FailedTampered
527enum MultiPlayerStatus
529 MultiPlayerStatus_Joined,
530 MultiPlayerStatus_NotJoined,
531 MultiPlayerStatus_Unplugged,
532 MultiPlayerStatus_MissingMultitap,
533 NUM_MultiPlayerStatus,
534 MultiPlayerStatus_Invalid
537MultiPlayerStatusToString(MultiPlayerStatus i) ->
const std::string&;
543 FailType_ImmediateContinue,
551FailTypeToString(FailType cat) ->
const std::string&;
553FailTypeToLocalizedString(FailType cat) ->
const std::string&;
554LuaDeclareType(FailType);
The list of BPMs to display.
Definition GameConstantsAndTypes.h:402
auto GetMaxWithin(float highest=FLT_MAX) const -> float
Retrieve the maximum BPM of the set, but no higher than a certain value.
Definition GameConstantsAndTypes.cpp:362
auto GetMax() const -> float
Retrieve the maximum BPM of the set.
Definition GameConstantsAndTypes.cpp:356
void Add(float f)
Add a BPM to the list.
Definition GameConstantsAndTypes.cpp:337
auto BpmIsConstant() const -> bool
Determine if the BPM is really constant.
Definition GameConstantsAndTypes.cpp:373
std::vector< float > vfBpms
The list of the BPMs for the song.
Definition GameConstantsAndTypes.h:438
auto GetMin() const -> float
Retrieve the minimum BPM of the set.
Definition GameConstantsAndTypes.cpp:343
auto IsSecret() const -> bool
Determine if the BPM is meant to be a secret.
Definition GameConstantsAndTypes.cpp:379