24 void Init(PlayerNumber pn);
25 void Init(MultiPlayer pn);
27 std::vector<NoteInfo> serializednd;
34 static auto GetGrade(
float p) -> Grade;
35 [[nodiscard]]
auto GetGrade() const -> Grade;
36 static auto MakePercentScore(
int iActual,
int iPossible) ->
float;
37 static auto FormatPercentScore(
float fPercentScore) -> std::
string;
40 auto GetWifeGrade() -> Grade;
41 [[nodiscard]] auto CalcSSR(
float ssrpercent) const -> std::vector<
float>;
42 void GenerateValidationKeys(
HighScore& hs) const;
43 [[nodiscard]] auto GetPercentDancePoints() const ->
float;
44 [[nodiscard]] auto GetWifeScore() const ->
float;
45 [[nodiscard]] auto GetCurWifeScore() const ->
float;
46 [[nodiscard]] auto GetMaxWifeScore() const ->
float;
47 [[nodiscard]] auto GetTimingScale() const ->
float;
48 [[nodiscard]] auto GetInputDataVector() const -> std::vector<
InputDataEvent>;
49 [[nodiscard]] auto GetMissDataVector() const
51 [[nodiscard]] auto GetOffsetVector() const -> std::vector<
float>;
52 [[nodiscard]] auto GetNoteRowVector() const -> std::vector<
int>;
53 [[nodiscard]] auto GetTrackVector() const -> std::vector<
int>;
54 [[nodiscard]] auto GetTapNoteTypeVector() const -> std::vector<TapNoteType>;
55 [[nodiscard]] auto GetHoldReplayDataVector() const
57 [[nodiscard]] auto GetMineReplayDataVector() const
59 [[nodiscard]] auto GetCurMaxPercentDancePoints() const ->
float;
61 [[nodiscard]] auto GetLessonScoreActual() const ->
int;
62 [[nodiscard]] auto GetLessonScoreNeeded() const ->
int;
63 void ResetScoreForLesson();
65 bool m_for_multiplayer{};
66 PlayerNumber m_player_number;
67 MultiPlayer m_multiplayer_number;
68 const Style* m_pStyle{};
71 bool m_bPlayerCanAchieveFullCombo{};
72 std::vector<Steps*> m_vpPossibleSteps;
85 int m_iPossibleDancePoints{};
86 int m_iCurPossibleDancePoints{};
87 int m_iActualDancePoints{};
88 int m_iPossibleGradePoints{};
92 float m_fTimingScale{};
93 std::vector<MineReplayResult> m_vMineReplayData;
94 std::vector<HoldReplayResult> m_vHoldReplayData;
95 std::vector<float> m_vOffsetVector;
96 std::vector<int> m_vNoteRowVector;
97 std::vector<TapNoteType> m_vTapNoteTypeVector;
98 std::vector<int> m_vTrackVector;
99 std::vector<InputDataEvent> InputData;
100 std::vector<MissReplayResult> m_vNoteMissVector;
101 int m_iTapNoteScores[NUM_TapNoteScore]{};
102 int m_iHoldNoteScores[NUM_HoldNoteScore]{};
109 int m_iCurScoreMultiplier{};
135 float m_iNumControllerSteps{};
137 bool everusedautoplay{};
140 bool gaveuplikeadumbass{};
143 bool usedDoubleSetup{};
145 std::map<float, float> m_fLifeRecord;
146 void SetLifeRecordAt(
float fLife,
float fStepsSecond);
147 void GetLifeRecord(
float* fLifeOut,
149 float fStepsEndSecond)
const;
150 [[nodiscard]]
auto GetLifeRecordAt(
float fStepsSecond)
const -> float;
151 [[nodiscard]]
auto GetLifeRecordLerpAt(
float fStepsSecond)
const -> float;
152 [[nodiscard]]
auto GetCurrentLife() const ->
float;
154 std::map<
float,
float> WifeRecord;
155 void SetWifeRecordAt(
float Wife,
float fStepsSecond);
156 void GetWifeRecord(
float* WifeOut,
158 float fStepsEndSecond) const;
159 [[nodiscard]] auto GetWifeRecordAt(
float fStepsSecond) const ->
float;
160 [[nodiscard]] auto GetWifeRecordLerpAt(
float fStepsSecond) const ->
float;
170 float m_fStartSecond{ 0 };
175 float m_fSizeSeconds{ 0 };
192 return m_cnt - m_rollover;
196 [[nodiscard]]
auto IsZero() const ->
bool {
return m_fStartSecond < 0; }
198 std::vector<Combo_t> m_ComboList;
199 float m_fFirstSecond{};
200 float m_fLastSecond{};
202 [[nodiscard]]
auto GetComboAtStartOfStage() const ->
int;
203 [[nodiscard]] auto FullComboOfScore(TapNoteScore tnsAllGreaterOrEqual) const
205 [[nodiscard]] auto FullCombo() const ->
bool
207 return FullComboOfScore(TNS_W3);
209 [[nodiscard]]
auto GetBestFullComboTapNoteScore() const -> TapNoteScore;
210 [[nodiscard]] auto SingleDigitsOfScore(
211 TapNoteScore tnsAllGreaterOrEqual) const ->
bool;
212 [[nodiscard]] auto OneOfScore(TapNoteScore tnsAllGreaterOrEqual) const
214 [[nodiscard]] auto GetTotalTaps() const ->
int;
215 [[nodiscard]] auto GetPercentageOfTaps(TapNoteScore tns) const ->
float;
216 void UpdateComboList(
float fSecond,
bool rollover);
217 [[nodiscard]] auto GetMaxCombo() const -> Combo_t;
219 int m_iPersonalHighScoreIndex{};
220 int m_iMachineHighScoreIndex{};
221 bool m_bDisqualified{};
222 [[nodiscard]]
auto IsDisqualified() const ->
bool;
224 void UnloadReplayData();
227 float m_fPlayedSeconds{};
230 void PushSelf(lua_State* L);