From 84a0328b3342d9f0e28afba0866bca26b52989e2 Mon Sep 17 00:00:00 2001 From: TheROPFather Date: Mon, 23 Jul 2018 07:28:25 +0100 Subject: [PATCH 1/6] Client data key update. --- src/DownloadManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DownloadManager.cpp b/src/DownloadManager.cpp index db1827c581..617277a3fe 100644 --- a/src/DownloadManager.cpp +++ b/src/DownloadManager.cpp @@ -36,7 +36,7 @@ static Preference serverURL("UploadServerAPIURL", "https://api.etternao static Preference automaticSync("automaticScoreSync", 1); static Preference downloadPacksToAdditionalSongs("downloadPacksToAdditionalSongs", 0); static const string TEMP_ZIP_MOUNT_POINT = "/@temp-zip/"; -static const string CLIENT_DATA_KEY = "1C563ADA30BEDBFAABF885AF47E58BE012B21D421B421F3469A9898D0C6D6906"; +static const string CLIENT_DATA_KEY = "6EE45A0D6997622C67A6064AFAE8D93A8CAEE575D17D5E16DA3EDBFC8D7D2477"; static const string DL_DIR = SpecialFiles::CACHE_DIR + "Downloads/"; size_t write_memory_buffer(void *contents, size_t size, size_t nmemb, void *userp) From 8c145b020d19127c3031a20e07aff725bedbb46c Mon Sep 17 00:00:00 2001 From: theropfather Date: Mon, 23 Jul 2018 21:52:50 +0100 Subject: [PATCH 2/6] Nick12 fixed urls not being written correctly to XML --- src/HighScore.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/HighScore.cpp b/src/HighScore.cpp index c32d1b4ef1..e4955f3538 100644 --- a/src/HighScore.cpp +++ b/src/HighScore.cpp @@ -291,10 +291,9 @@ XNode *HighScoreImpl::CreateNode() const pNode->AppendChild("NoChordCohesion", bNoChordCohesion); pNode->AppendChild("EtternaValid", bEtternaValid); if (!uploaded.empty()) { - XNode *pServerNode = new XNode("Servers"); + XNode *pServerNode = pNode->AppendChild("Servers"); for (auto server : uploaded) pServerNode->AppendChild("server", server); - pNode->AppendChild(pServerNode); } if (vOffsetVector.size() > 1) { pNode->AppendChild("Offsets", OffsetsToString(vOffsetVector)); @@ -360,10 +359,9 @@ XNode *HighScoreImpl::CreateEttNode() const { pNode->AppendChild("DateTime", dateTime.GetString()); pNode->AppendChild("TopScore", TopScore); if (!uploaded.empty()) { - XNode *pServerNode = new XNode("Servers"); + XNode *pServerNode = pNode->AppendChild("Servers"); for (auto server : uploaded) pServerNode->AppendChild("server", server); - pNode->AppendChild(pServerNode); } XNode* pTapNoteScores = pNode->AppendChild("TapNoteScores"); From 24067c43728327dfabeca38da1991b9aebd93bcc Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 23 Jul 2018 20:57:09 -0400 Subject: [PATCH 3/6] remove dead code relating to composite charts --- src/NoteData.cpp | 15 ------ src/NoteData.h | 1 - src/NoteDataUtil.cpp | 110 ++----------------------------------------- src/NoteDataUtil.h | 4 +- src/Steps.cpp | 6 +-- 5 files changed, 5 insertions(+), 131 deletions(-) diff --git a/src/NoteData.cpp b/src/NoteData.cpp index b937cbc834..75e87575ec 100644 --- a/src/NoteData.cpp +++ b/src/NoteData.cpp @@ -30,17 +30,6 @@ void NoteData::SetNumTracks( int iNewNumTracks ) CalcNumTracksLCD(); } -bool NoteData::IsComposite() const -{ - return false; - for( int track = 0; track < GetNumTracks(); ++track ) - { - FOREACHM_CONST( int, TapNote, m_TapNotes[track], tn ) - if( tn->second.pn != PLAYER_INVALID ) - return true; - } -} - // Clear (rowBegin,rowEnd). void NoteData::ClearRangeForTrack( int rowBegin, int rowEnd, int iTrack ) { @@ -790,10 +779,6 @@ int NoteData::GetNumFakes( int iStartIndex, int iEndIndex ) const bool NoteData::IsPlayer1(const int track, const TapNote &tn) const { - if (this->IsComposite()) - { - return tn.pn == PLAYER_1; - } return track < (this->GetNumTracks() / 2); } diff --git a/src/NoteData.h b/src/NoteData.h index 836f6fbb0a..bd38be9e1c 100644 --- a/src/NoteData.h +++ b/src/NoteData.h @@ -183,7 +183,6 @@ class NoteData int GetNumTracks() const { return m_TapNotes.size(); } void SetNumTracks( int iNewNumTracks ); - bool IsComposite() const; bool operator==( const NoteData &nd ) const { return m_TapNotes == nd.m_TapNotes; } bool operator!=( const NoteData &nd ) const { return m_TapNotes != nd.m_TapNotes; } diff --git a/src/NoteDataUtil.cpp b/src/NoteDataUtil.cpp index c5303b2e38..86c57eaeb5 100644 --- a/src/NoteDataUtil.cpp +++ b/src/NoteDataUtil.cpp @@ -496,7 +496,7 @@ void NoteDataUtil::LoadFromETTNoteDataString( NoteData& out, const RString &sSMN out.RevalidateATIs(vector(), false); } -void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, const RString &sSMNoteData_, bool bComposite ) +void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, const RString &sSMNoteData_) { // Load note data RString sSMNoteData; @@ -520,31 +520,7 @@ void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, const RString &sSMNo int iNumTracks = out.GetNumTracks(); out.Init(); out.SetNumTracks( iNumTracks ); - - if( !bComposite ) - { - LoadFromSMNoteDataStringWithPlayer( out, sSMNoteData, 0, sSMNoteData.size(), - PLAYER_INVALID, iNumTracks ); - return; - } - - int start = 0, size = -1; - - vector vParts; - FOREACH_PlayerNumber( pn ) - { - // Split in place. - split( sSMNoteData, "&", start, size, false ); - if( unsigned(start) == sSMNoteData.size() ) - break; - vParts.push_back( NoteData() ); - NoteData &nd = vParts.back(); - - nd.SetNumTracks( iNumTracks ); - LoadFromSMNoteDataStringWithPlayer( nd, sSMNoteData, start, size, pn, iNumTracks ); - } - CombineCompositeNoteData( out, vParts ); - out.RevalidateATIs(vector(), false); + LoadFromSMNoteDataStringWithPlayer( out, sSMNoteData, 0, sSMNoteData.size(), PLAYER_INVALID, iNumTracks ); } void NoteDataUtil::InsertHoldTails( NoteData &inout ) @@ -578,8 +554,6 @@ void NoteDataUtil::GetSMNoteDataString( const NoteData &in, RString &sRet ) vector parts; float fLastBeat = -1.0f; - SplitCompositeNoteData( in, parts ); - FOREACH( NoteData, parts, nd ) { InsertHoldTails( *nd ); @@ -657,7 +631,6 @@ void NoteDataUtil::GetETTNoteDataString(const NoteData &in, RString &sRet) { // Get note data vector parts; float fLastBeat = -1.f; - SplitCompositeNoteData(in, parts); FOREACH(NoteData, parts, nd) { fLastBeat = max(fLastBeat, nd->GetLastBeat()); @@ -810,72 +783,6 @@ void NoteDataUtil::GetETTNoteDataString(const NoteData &in, RString &sRet) { sRet.shrink_to_fit(); } -void NoteDataUtil::SplitCompositeNoteData( const NoteData &in, vector &out ) -{ - if( !in.IsComposite() ) - { - out.push_back( in ); - return; - } - - FOREACH_PlayerNumber( pn ) - { - out.push_back( NoteData() ); - out.back().SetNumTracks( in.GetNumTracks() ); - } - - for( int t = 0; t < in.GetNumTracks(); ++t ) - { - for( NoteData::const_iterator iter = in.begin(t); iter != in.end(t); ++iter ) - { - int row = iter->first; - TapNote tn = iter->second; - /* - XXX: This code is (hopefully) a temporary hack to make sure that - routine charts don't have any notes without players assigned to them. - I suspect this is due to a related bug that these problems were - occuring to begin with, but at this time, I am unsure how to deal with it. - Hopefully this hack can be removed soon. -- Jason "Wolfman2000" Felds - */ - const Style *curStyle = GAMESTATE->GetCurrentStyle(PLAYER_INVALID); - if( (curStyle == NULL || curStyle->m_StyleType == StyleType_TwoPlayersSharedSides ) - && static_cast( tn.pn ) > NUM_PlayerNumber ) - { - tn.pn = PLAYER_1; - } - unsigned index = static_cast( tn.pn ); - - ASSERT_M( index < NUM_PlayerNumber, ssprintf("We have a note not assigned to a player. The note in question is on beat %f, column %i.", NoteRowToBeat(row), t + 1) ); - tn.pn = PLAYER_INVALID; - out[index].SetTapNote( t, row, tn ); - } - } -} - -void NoteDataUtil::CombineCompositeNoteData( NoteData &out, const vector &in ) -{ - FOREACH_CONST( NoteData, in, nd ) - { - const int iMaxTracks = min( out.GetNumTracks(), nd->GetNumTracks() ); - - for( int track = 0; track < iMaxTracks; ++track ) - { - for( NoteData::const_iterator i = nd->begin(track); i != nd->end(track); ++i ) - { - int row = i->first; - if( out.IsHoldNoteAtRow(track, i->first) ) - continue; - if( i->second.type == TapNoteType_HoldHead ) - out.AddHoldNote( track, row, row + i->second.iDuration, i->second ); - else - out.SetTapNote( track, row, i->second ); - } - } - } - out.RevalidateATIs(vector(), false); -} - - void NoteDataUtil::LoadTransformedSlidingWindow( const NoteData &in, NoteData &out, int iNewNumTracks ) { // reset all notes @@ -1282,18 +1189,7 @@ void NoteDataUtil::RemoveSimultaneousNotes( NoteData &in, int iMaxSimultaneous, // given time. Never touch data outside of the range given; if many hold notes are overlapping // iStartIndex, and we'd have to change those holds to obey iMaxSimultaneous, just do the best // we can without doing so. - if( in.IsComposite() ) - { - // Do this per part. - vector vParts; - - SplitCompositeNoteData( in, vParts ); - FOREACH( NoteData, vParts, nd ) - RemoveSimultaneousNotes( *nd, iMaxSimultaneous, iStartIndex, iEndIndex ); - in.Init(); - in.SetNumTracks( vParts.front().GetNumTracks() ); - CombineCompositeNoteData( in, vParts ); - } + FOREACH_NONEMPTY_ROW_ALL_TRACKS_RANGE( in, r, iStartIndex, iEndIndex ) { set viTracksHeld; diff --git a/src/NoteDataUtil.h b/src/NoteDataUtil.h index f801c64368..85e410ebf0 100644 --- a/src/NoteDataUtil.h +++ b/src/NoteDataUtil.h @@ -24,12 +24,10 @@ namespace NoteDataUtil { NoteType GetSmallestNoteTypeForMeasure( const NoteData &nd, int iMeasureIndex ); NoteType GetSmallestNoteTypeInRange( const NoteData &nd, int iStartIndex, int iEndIndex ); - void LoadFromSMNoteDataString( NoteData &out, const RString &sSMNoteData, bool bComposite ); + void LoadFromSMNoteDataString( NoteData &out, const RString &sSMNoteData); void LoadFromETTNoteDataString(NoteData& out, const RString &sSMNoteData); void GetSMNoteDataString( const NoteData &in, RString ¬es_out ); void GetETTNoteDataString(const NoteData &in, RString ¬es_out); - void SplitCompositeNoteData( const NoteData &in, vector &out ); - void CombineCompositeNoteData( NoteData &out, const vector &in ); /** * @brief Autogenerate notes from one type to another. * diff --git a/src/Steps.cpp b/src/Steps.cpp index db462b8d57..aa839b92b8 100644 --- a/src/Steps.cpp +++ b/src/Steps.cpp @@ -325,14 +325,10 @@ void Steps::Decompress() { /* there is no data, do nothing */ return; } - - // load from compressed - bool bComposite = false; m_bNoteDataIsFilled = true; m_pNoteData->SetNumTracks(GAMEMAN->GetStepsTypeInfo(m_StepsType).iNumTracks); - NoteDataUtil::LoadFromSMNoteDataString(*m_pNoteData, m_sNoteDataCompressed, bComposite); - + NoteDataUtil::LoadFromSMNoteDataString(*m_pNoteData, m_sNoteDataCompressed); } bool Steps::IsRecalcValid() { From 2565009258461f4214766c00b9a11ebf155523bb Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 23 Jul 2018 20:58:54 -0400 Subject: [PATCH 4/6] remove dead code relating to gameplay pausing --- src/ScreenGameplay.cpp | 74 ------------------------------------------ src/ScreenGameplay.h | 9 ----- 2 files changed, 83 deletions(-) diff --git a/src/ScreenGameplay.cpp b/src/ScreenGameplay.cpp index 655ee0faac..b94236bc19 100644 --- a/src/ScreenGameplay.cpp +++ b/src/ScreenGameplay.cpp @@ -329,7 +329,6 @@ void ScreenGameplay::Init() } m_pSoundMusic = NULL; - set_paused_internal(false); if( GAMESTATE->m_pCurSong == NULL) return; // ScreenDemonstration will move us to the next screen. We just need to survive for one update without crashing. @@ -1168,8 +1167,6 @@ void ScreenGameplay::StartPlayingSong( float fMinTimeToNotes, float fMinTimeToMu } } m_pSoundMusic->Play(false, &p); - if( m_bPaused ) - m_pSoundMusic->Pause( true ); /* Make sure GAMESTATE->m_fMusicSeconds is set up. */ GAMESTATE->m_Position.m_fMusicSeconds = -5000; @@ -1185,42 +1182,6 @@ void ScreenGameplay::StartPlayingSong( float fMinTimeToNotes, float fMinTimeToMu } } -void ScreenGameplay::set_paused_internal(bool p) -{ - m_bPaused= p; - GAMESTATE->SetPaused(p); -} - -void ScreenGameplay::PauseGame( bool bPause, GameController gc ) { - return; // completely disable the functionality of this rather than various avenues to it (pending full removal) -mina - - if( m_bPaused == bPause ) - { - LOG->Trace( "ScreenGameplay::PauseGame(%i) received, but already in that state; ignored", bPause ); - return; - } - - // Don't pause if we're already tweening out. - if( bPause && m_DancingState == STATE_OUTRO ) - return; - - ResetGiveUpTimers(false); - - set_paused_internal(bPause); - m_PauseController = gc; - - m_pSoundMusic->Pause( bPause ); - if( bPause ) - this->PlayCommand( "Pause" ); - else - this->PlayCommand( "Unpause" ); - - FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) - { - pi->m_pPlayer->SetPaused( m_bPaused ); - } -} - // play assist ticks void ScreenGameplay::PlayTicks() { @@ -1374,10 +1335,6 @@ void ScreenGameplay::Update( float fDeltaTime ) if( SCREENMAN->GetTopScreen() != this ) return; - /* Update actors when paused, but never move on to another state. */ - if( m_bPaused ) - return; - //LOG->Trace( "m_fOffsetInBeats = %f, m_fBeatsPerSecond = %f, m_Music.GetPositionSeconds = %f", m_fOffsetInBeats, m_fBeatsPerSecond, m_Music.GetPositionSeconds() ); m_AutoKeysounds.Update(fDeltaTime); @@ -1869,24 +1826,6 @@ bool ScreenGameplay::Input( const InputEventPlus &input ) if( m_Codes.InputMessage(input, msg) ) this->HandleMessage( msg ); - if( m_bPaused ) - { - /* If we're paused, only accept GAME_BUTTON_START to unpause. */ - if( GAMESTATE->IsHumanPlayer(input.pn) && input.MenuI == GAME_BUTTON_START && input.type == IET_FIRST_PRESS ) - { - if( m_PauseController == GameController_Invalid || m_PauseController == input.GameI.controller ) - { - // IMO, it's better to have this configurable. -DaisuMaster - if( UNPAUSE_WITH_START ) - { - this->PauseGame( false ); - return true; - } - } - } - return false; - } - if(m_DancingState != STATE_OUTRO && GAMESTATE->IsHumanPlayer(input.pn) && !m_Cancel.IsTransitioning() ) @@ -2382,15 +2321,6 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) SOUND->PlayOnceFromAnnouncer( "gameplay failed" ); } - else if( SM == SM_Pause ) - { - // Ignore SM_Pause when in demonstration. - if( GAMESTATE->m_bDemonstrationOrJukebox ) - return; - - if( !m_bPaused ) - PauseGame( true ); - } ScreenWithMenuElements::HandleScreenMessage( SM ); } @@ -2581,8 +2511,6 @@ class LunaScreenGameplay: public Luna pi->PushSelf( L ); return 1; } - static int PauseGame( T* p, lua_State *L ) { p->Pause( BArg(1)); return 0; } - static int IsPaused( T* p, lua_State *L ) { lua_pushboolean( L, p->IsPaused() ); return 1; } static bool TurningPointsValid(lua_State* L, int index) { size_t size= lua_objlen(L, index); @@ -2630,8 +2558,6 @@ class LunaScreenGameplay: public Luna ADD_METHOD( GetPlayerInfo ); ADD_METHOD( GetDummyPlayerInfo ); // sm-ssc additions: - ADD_METHOD( PauseGame ); - ADD_METHOD( IsPaused ); ADD_METHOD(begin_backing_out); ADD_METHOD( GetTrueBPS ); } diff --git a/src/ScreenGameplay.h b/src/ScreenGameplay.h index 61cfdaf34e..b60ab35895 100644 --- a/src/ScreenGameplay.h +++ b/src/ScreenGameplay.h @@ -151,8 +151,6 @@ class ScreenGameplay : public ScreenWithMenuElements LifeMeter *GetLifeMeter( PlayerNumber pn ); PlayerInfo *GetPlayerInfo( PlayerNumber pn ); PlayerInfo *GetDummyPlayerInfo( int iDummyIndex ); - void Pause(bool bPause) { PauseGame(bPause); } - bool IsPaused() const { return m_bPaused; } void FailFadeRemovePlayer(PlayerInfo* pi); void FailFadeRemovePlayer(PlayerNumber pn); @@ -192,7 +190,6 @@ class ScreenGameplay : public ScreenWithMenuElements virtual void LoadNextSong(); void StartPlayingSong( float fMinTimeToNotes, float fMinTimeToMusic ); void GetMusicEndTiming( float &fSecondsToStartFadingOutMusic, float &fSecondsToStartTransitioningOut ); - void PauseGame( bool bPause, GameController gc = GameController_Invalid ); void PlayAnnouncer( const RString &type, float fSeconds, float *fDeltaSeconds ); void PlayAnnouncer( const RString &type, float fSeconds ) { PlayAnnouncer(type, fSeconds, &m_fTimeSinceLastDancingComment); } void SendCrossedMessages(); @@ -218,13 +215,7 @@ class ScreenGameplay : public ScreenWithMenuElements } /** @brief The specific point within ScreenGameplay. */ m_DancingState; private: - bool m_bPaused; - // set_paused_internal exists because GameState's pause variable needs to - // be kept in sync with ScreenGameplay's. - void set_paused_internal(bool p); protected: - - GameController m_PauseController; /** * @brief The songs left to play. * From 77a4f8a3b3339a991afc184204bba8a514f4ca3c Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 23 Jul 2018 20:59:03 -0400 Subject: [PATCH 5/6] fix uninitialized var --- src/PlayerStageStats.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PlayerStageStats.cpp b/src/PlayerStageStats.cpp index 89c1298b38..c11c77f5be 100644 --- a/src/PlayerStageStats.cpp +++ b/src/PlayerStageStats.cpp @@ -70,6 +70,7 @@ void PlayerStageStats::InternalInit() filehadnegbpms = false; filegotmines = false; gaveuplikeadumbass = false; + filegotholds = false; ZERO( m_iTapNoteScores ); ZERO( m_iHoldNoteScores ); From adfccb93e5fb0859463652dcfa79f32fcdf2d50b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 23 Jul 2018 20:59:23 -0400 Subject: [PATCH 6/6] update gitignore more --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3f007173b5..94b29368ba 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,5 @@ tests/*.err nsis_strings_temp\.inc BatchRecalc/* + +Xcode/Info\.Etterna\.plist