diff --git a/src/Etterna/Actor/Gameplay/Player.cpp b/src/Etterna/Actor/Gameplay/Player.cpp index 4000342abd..02a740f73f 100644 --- a/src/Etterna/Actor/Gameplay/Player.cpp +++ b/src/Etterna/Actor/Gameplay/Player.cpp @@ -3380,7 +3380,7 @@ Player::SetCombo(unsigned int iCombo, unsigned int iMisses) bPastBeginning = m_pPlayerState->m_Position.m_fMusicSeconds > - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds * PERCENT_UNTIL_COLOR_COMBO; + GAMESTATE->m_pCurSteps->GetLengthSeconds() * PERCENT_UNTIL_COLOR_COMBO; if (m_bSendJudgmentAndComboMessages) { Message msg("Combo"); diff --git a/src/Etterna/Models/NoteData/NoteDataUtil.cpp b/src/Etterna/Models/NoteData/NoteDataUtil.cpp index a8273f8d4d..1bfe95cff3 100644 --- a/src/Etterna/Models/NoteData/NoteDataUtil.cpp +++ b/src/Etterna/Models/NoteData/NoteDataUtil.cpp @@ -1092,7 +1092,6 @@ DoRowEndRadarCalc(crv_state& state, RadarValues& out) void NoteDataUtil::CalculateRadarValues(const NoteData& in, - float fSongSeconds, RadarValues& out, TimingData* td) { diff --git a/src/Etterna/Models/NoteData/NoteDataUtil.h b/src/Etterna/Models/NoteData/NoteDataUtil.h index 3339060924..a5e5391a7f 100644 --- a/src/Etterna/Models/NoteData/NoteDataUtil.h +++ b/src/Etterna/Models/NoteData/NoteDataUtil.h @@ -71,7 +71,6 @@ InsertHoldTails(NoteData& inout); void CalculateRadarValues(const NoteData& in, - float fSongSeconds, RadarValues& out, TimingData* td = nullptr); diff --git a/src/Etterna/Models/NoteData/NoteDataWithScoring.cpp b/src/Etterna/Models/NoteData/NoteDataWithScoring.cpp index 612bdf2fe7..311f7f2ca7 100644 --- a/src/Etterna/Models/NoteData/NoteDataWithScoring.cpp +++ b/src/Etterna/Models/NoteData/NoteDataWithScoring.cpp @@ -185,7 +185,6 @@ UpdateHittable(const int& curr_row, int& first, int& last) void NoteDataWithScoring::GetActualRadarValues(const NoteData& in, const PlayerStageStats& pss, - const float& song_seconds, RadarValues& out) { // Anybody editing this function should also examine diff --git a/src/Etterna/Models/NoteData/NoteDataWithScoring.h b/src/Etterna/Models/NoteData/NoteDataWithScoring.h index 79f1898f78..a9ea9a850e 100644 --- a/src/Etterna/Models/NoteData/NoteDataWithScoring.h +++ b/src/Etterna/Models/NoteData/NoteDataWithScoring.h @@ -30,7 +30,6 @@ LastTapNoteWithResult(const NoteData& in, const unsigned& row) void GetActualRadarValues(const NoteData& in, const PlayerStageStats& pss, - const float& song_seconds, RadarValues& out); } // namespace NoteDataWithScoring diff --git a/src/Etterna/Models/NoteLoaders/NotesLoaderOSU.cpp b/src/Etterna/Models/NoteLoaders/NotesLoaderOSU.cpp index 7ecead3204..c2497c7c3a 100644 --- a/src/Etterna/Models/NoteLoaders/NotesLoaderOSU.cpp +++ b/src/Etterna/Models/NoteLoaders/NotesLoaderOSU.cpp @@ -343,7 +343,6 @@ OsuLoader::LoadNoteDataFromParsedData( TAP_ORIGINAL_LIFT); } - // out->m_pSong->m_fMusicLengthSeconds = 80; // what's going on with this out->m_pSong->m_SongTiming.m_fBeat0OffsetInSeconds = -firstTap / 1000.0f; out->SetNoteData(newNoteData); diff --git a/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.cpp b/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.cpp index 123d0bf8b0..95c15f65e0 100644 --- a/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.cpp +++ b/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.cpp @@ -124,13 +124,11 @@ ScoreKeeperNormal::Load(const vector& apSongs, iTotalPossibleDancePoints += this->GetPossibleDancePoints(&ndPre, &ndPost, - pSteps->GetTimingData(), - pSong->m_fMusicLengthSeconds); + pSteps->GetTimingData()); iTotalPossibleGradePoints += this->GetPossibleGradePoints(&ndPre, &ndPost, - pSteps->GetTimingData(), - pSong->m_fMusicLengthSeconds); + pSteps->GetTimingData()); GAMESTATE->SetProcessedTimingData(nullptr); } @@ -698,14 +696,13 @@ ScoreKeeperNormal::HandleHoldScore(const TapNote& tn) int ScoreKeeperNormal::GetPossibleDancePoints(NoteData* nd, - const TimingData* td, - float fSongSeconds) + const TimingData* td) { /* Note: If W1 timing is disabled or not active (not course mode), * W2 will be used instead. */ // XXX: That's not actually implemented! RadarValues radars; - NoteDataUtil::CalculateRadarValues(*nd, fSongSeconds, radars); + NoteDataUtil::CalculateRadarValues(*nd, radars); auto ret = 0; @@ -731,26 +728,24 @@ ScoreKeeperNormal::GetPossibleDancePoints(NoteData* nd, int ScoreKeeperNormal::GetPossibleDancePoints(NoteData* ndPre, NoteData* ndPost, - const TimingData* td, - float fSongSeconds) + const TimingData* td) { /* The logic here is that if you use a modifier that adds notes, you should * have to hit the new notes to get a high grade. However, if you use one * that removes notes, they should simply be counted as misses. */ - return std::max(GetPossibleDancePoints(ndPre, td, fSongSeconds), - GetPossibleDancePoints(ndPost, td, fSongSeconds)); + return std::max(GetPossibleDancePoints(ndPre, td), + GetPossibleDancePoints(ndPost, td)); } int ScoreKeeperNormal::GetPossibleGradePoints(NoteData* nd, - const TimingData* td, - float fSongSeconds) + const TimingData* td) { /* Note: if W1 timing is disabled or not active (not course mode), * W2 will be used instead. */ // XXX: That's not actually implemented! RadarValues radars; - NoteDataUtil::CalculateRadarValues(*nd, fSongSeconds, radars); + NoteDataUtil::CalculateRadarValues(*nd, radars); auto ret = 0; @@ -770,14 +765,13 @@ ScoreKeeperNormal::GetPossibleGradePoints(NoteData* nd, int ScoreKeeperNormal::GetPossibleGradePoints(NoteData* ndPre, NoteData* ndPost, - const TimingData* td, - float fSongSeconds) + const TimingData* td) { /* The logic here is that if you use a modifier that adds notes, you should * have to hit the new notes to get a high grade. However, if you use one * that removes notes, they should simply be counted as misses. */ - return std::max(GetPossibleGradePoints(ndPre, td, fSongSeconds), - GetPossibleGradePoints(ndPost, td, fSongSeconds)); + return std::max(GetPossibleGradePoints(ndPre, td), + GetPossibleGradePoints(ndPost, td)); } int diff --git a/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.h b/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.h index 1072ff7c41..c69fe404e7 100644 --- a/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.h +++ b/src/Etterna/Models/ScoreKeepers/ScoreKeeperNormal.h @@ -83,19 +83,15 @@ class ScoreKeeperNormal : public ScoreKeeper // This must be calculated using only cached radar values so that we can // do it quickly. static auto GetPossibleDancePoints(NoteData* nd, - const TimingData* td, - float fSongSeconds) -> int; + const TimingData* td) -> int; static auto GetPossibleDancePoints(NoteData* ndPre, NoteData* ndPost, - const TimingData* td, - float fSongSeconds) -> int; + const TimingData* td) -> int; static auto GetPossibleGradePoints(NoteData* nd, - const TimingData* td, - float fSongSeconds) -> int; + const TimingData* td) -> int; static auto GetPossibleGradePoints(NoteData* ndPre, NoteData* ndPost, - const TimingData* td, - float fSongSeconds) -> int; + const TimingData* td) -> int; auto TapNoteScoreToDancePoints(TapNoteScore tns) const -> int; auto HoldNoteScoreToDancePoints(HoldNoteScore hns) const -> int; diff --git a/src/Etterna/Models/Songs/Song.cpp b/src/Etterna/Models/Songs/Song.cpp index f0e50648c3..11298f40e7 100644 --- a/src/Etterna/Models/Songs/Song.cpp +++ b/src/Etterna/Models/Songs/Song.cpp @@ -1091,7 +1091,7 @@ Song::ReCalculateRadarValuesAndLastSecond(bool fromCache, // string with a compressed format for both cache and internal // use but not yet n->CalcEtternaMetadata(calc); - n->CalculateRadarValues(m_fMusicLengthSeconds); + n->CalculateRadarValues(); // calculate lastSecond localFirst = std::min(localFirst, n->firstsecond); diff --git a/src/Etterna/Models/StepsAndStyles/Steps.cpp b/src/Etterna/Models/StepsAndStyles/Steps.cpp index 4f90875bf8..1bbaa2b83a 100644 --- a/src/Etterna/Models/StepsAndStyles/Steps.cpp +++ b/src/Etterna/Models/StepsAndStyles/Steps.cpp @@ -289,7 +289,7 @@ Steps::TidyUpData() } void -Steps::CalculateRadarValues(float fMusicLengthSeconds) +Steps::CalculateRadarValues() { if (m_bAreCachedRadarValuesJustLoaded) { m_bAreCachedRadarValuesJustLoaded = false; @@ -312,7 +312,7 @@ Steps::CalculateRadarValues(float fMusicLengthSeconds) auto td = this->GetTimingData(); GAMESTATE->SetProcessedTimingData(td); NoteDataUtil::CalculateRadarValues( - *m_pNoteData, fMusicLengthSeconds, m_CachedRadarValues, td); + *m_pNoteData, m_CachedRadarValues, td); GAMESTATE->SetProcessedTimingData(nullptr); } @@ -579,8 +579,7 @@ Steps::Compress() const void Steps::CopyFrom(Steps* pSource, - StepsType ntTo, - float fMusicLengthSeconds) // pSource does not have to be of the + StepsType ntTo) // pSource does not have to be of the // same StepsType { m_StepsType = ntTo; @@ -594,7 +593,7 @@ Steps::CopyFrom(Steps* pSource, this->SetDescription(pSource->GetDescription()); this->SetDifficulty(pSource->GetDifficulty()); this->SetMeter(pSource->GetMeter()); - this->CalculateRadarValues(fMusicLengthSeconds); + this->CalculateRadarValues(); } void diff --git a/src/Etterna/Models/StepsAndStyles/Steps.h b/src/Etterna/Models/StepsAndStyles/Steps.h index 3bbb550edf..64a4d249e9 100644 --- a/src/Etterna/Models/StepsAndStyles/Steps.h +++ b/src/Etterna/Models/StepsAndStyles/Steps.h @@ -48,7 +48,7 @@ class Steps ~Steps(); // initializers - void CopyFrom(Steps* pSource, StepsType ntTo, float fMusicLengthSeconds); + void CopyFrom(Steps* pSource, StepsType ntTo); void CreateBlank(StepsType ntTo); void Compress() const; @@ -149,7 +149,7 @@ class Steps void GetETTNoteData(std::string& notes_comp_out) const; void TidyUpData(); - void CalculateRadarValues(float fMusicLengthSeconds); + void CalculateRadarValues(); /** * @brief The TimingData used by the Steps. diff --git a/src/Etterna/Screen/Gameplay/ScreenGameplay.cpp b/src/Etterna/Screen/Gameplay/ScreenGameplay.cpp index 3ff2256f75..b3bc880de6 100644 --- a/src/Etterna/Screen/Gameplay/ScreenGameplay.cpp +++ b/src/Etterna/Screen/Gameplay/ScreenGameplay.cpp @@ -712,7 +712,7 @@ ScreenGameplay::StartPlayingSong(float fMinTimeToNotes, float fMinTimeToMusic) fSecondsToStartTransitioningOut); if (fSecondsToStartFadingOutMusic < - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds) { + GAMESTATE->m_pCurSteps->lastsecond) { p.m_fFadeOutSeconds = MUSIC_FADE_OUT_SECONDS; p.m_LengthSeconds = fSecondsToStartFadingOutMusic + MUSIC_FADE_OUT_SECONDS - p.m_StartSecond; @@ -837,7 +837,7 @@ void ScreenGameplay::GetMusicEndTiming(float& fSecondsToStartFadingOutMusic, float& fSecondsToStartTransitioningOut) { - float fLastStepSeconds = GAMESTATE->m_pCurSong->GetLastSecond(); + float fLastStepSeconds = GAMESTATE->m_pCurSteps->lastsecond; fLastStepSeconds += Player::GetMaxStepDistanceSeconds(); float fTransitionLength; @@ -849,12 +849,12 @@ ScreenGameplay::GetMusicEndTiming(float& fSecondsToStartFadingOutMusic, float fSecondsToFinishFadingOutMusic = fSecondsToStartTransitioningOut + fTransitionLength; if (fSecondsToFinishFadingOutMusic < - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds) + GAMESTATE->m_pCurSteps->GetLengthSeconds()) fSecondsToStartFadingOutMusic = fSecondsToFinishFadingOutMusic - MUSIC_FADE_OUT_SECONDS; else fSecondsToStartFadingOutMusic = - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds; // don't fade + GAMESTATE->m_pCurSteps->GetLengthSeconds(); // don't fade /* Make sure we keep going long enough to register a miss for the last note, * and never start fading before the last note. */ @@ -1434,8 +1434,6 @@ ScreenGameplay::Input(const InputEventPlus& input) void ScreenGameplay::SaveStats() { - float fMusicLen = GAMESTATE->m_pCurSong->m_fMusicLengthSeconds; - /* Note that adding stats is only meaningful for the counters (eg. * RadarCategory_Jumps), not for the percentages (RadarCategory_Air). */ RadarValues rv; @@ -1444,9 +1442,9 @@ ScreenGameplay::SaveStats() PlayerNumber pn = m_vPlayerInfo.m_pn; GAMESTATE->SetProcessedTimingData(GAMESTATE->m_pCurSteps->GetTimingData()); - NoteDataUtil::CalculateRadarValues(nd, fMusicLen, rv); + NoteDataUtil::CalculateRadarValues(nd, rv); pss.m_radarPossible += rv; - NoteDataWithScoring::GetActualRadarValues(nd, pss, fMusicLen, rv); + NoteDataWithScoring::GetActualRadarValues(nd, pss, rv); pss.m_radarActual += rv; GAMESTATE->SetProcessedTimingData(nullptr); } diff --git a/src/Etterna/Screen/Gameplay/ScreenGameplayReplay.cpp b/src/Etterna/Screen/Gameplay/ScreenGameplayReplay.cpp index 2c5a87da49..6dc6368a82 100644 --- a/src/Etterna/Screen/Gameplay/ScreenGameplayReplay.cpp +++ b/src/Etterna/Screen/Gameplay/ScreenGameplayReplay.cpp @@ -343,7 +343,7 @@ ScreenGameplayReplay::SetRate(float newRate) // Set up the music so we don't wait for an Etternaty when messing around // near the end of the song. if (fSecondsToStartFadingOutMusic < - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds) { + GAMESTATE->m_pCurSteps->lastsecond) { p.m_fFadeOutSeconds = MUSIC_FADE_OUT_SECONDS; p.m_LengthSeconds = fSecondsToStartFadingOutMusic + MUSIC_FADE_OUT_SECONDS - p.m_StartSecond; @@ -508,7 +508,7 @@ ScreenGameplayReplay::TogglePause() p.m_StartSecond = fSeconds - 0.25f; p.m_fSpeed = rate; if (fSecondsToStartFadingOutMusic < - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds) { + GAMESTATE->m_pCurSteps->lastsecond) { p.m_fFadeOutSeconds = MUSIC_FADE_OUT_SECONDS; p.m_LengthSeconds = fSecondsToStartFadingOutMusic + MUSIC_FADE_OUT_SECONDS - p.m_StartSecond; @@ -530,7 +530,7 @@ ScreenGameplayReplay::TogglePause() RageSoundParams p; p.m_fSpeed = rate; if (fSecondsToStartFadingOutMusic < - GAMESTATE->m_pCurSong->m_fMusicLengthSeconds) { + GAMESTATE->m_pCurSteps->lastsecond) { p.m_fFadeOutSeconds = MUSIC_FADE_OUT_SECONDS; p.m_LengthSeconds = fSecondsToStartFadingOutMusic + MUSIC_FADE_OUT_SECONDS - p.m_StartSecond; diff --git a/src/Etterna/Screen/Others/ScreenSelectMusic.cpp b/src/Etterna/Screen/Others/ScreenSelectMusic.cpp index 692ff02e77..38d6a03dae 100644 --- a/src/Etterna/Screen/Others/ScreenSelectMusic.cpp +++ b/src/Etterna/Screen/Others/ScreenSelectMusic.cpp @@ -1859,7 +1859,6 @@ class LunaScreenSelectMusic : public Luna NoteData nd; Steps* steps = GAMESTATE->m_pCurSteps; steps->GetNoteData(nd); - float songlength = GAMESTATE->m_pCurSong->m_fMusicLengthSeconds; ss.Init(); SCOREMAN->camefromreplay = false; // disallow viewing online score eval screens -mina @@ -1889,7 +1888,7 @@ class LunaScreenSelectMusic : public Luna pss.m_iSongsPlayed = 1; GAMESTATE->SetProcessedTimingData( GAMESTATE->m_pCurSteps->GetTimingData()); - NoteDataUtil::CalculateRadarValues(nd, songlength, rv); + NoteDataUtil::CalculateRadarValues(nd, rv); pss.m_radarPossible += rv; RadarValues realRV; PlayerAI::CalculateRadarValuesForReplay(realRV, rv);