From 9b847caa45904ef14ab5233251e8cd83cc15a80a Mon Sep 17 00:00:00 2001 From: Kyzentun Date: Sat, 15 Nov 2014 17:18:42 -0700 Subject: [PATCH] DefaultFailType preference removed because DefaultModifiers was overriding it. DefaultFailType ConfOptionRow now works by putting the fail type in DefaultModifiers. Fixed double InitCommand bug in Foreground. Disabled odd dimension check for screen texture. --- Docs/Changelog_sm5.txt | 5 +++++ src/Foreground.cpp | 4 +++- src/PlayerOptions.cpp | 1 - src/PrefsManager.cpp | 1 - src/PrefsManager.h | 1 - src/RageBitmapTexture.cpp | 7 ++++++ src/ScreenOptionsMasterPrefs.cpp | 38 +++++++++++++++++++++++++++----- 7 files changed, 48 insertions(+), 9 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 8c3efa2d91..a1c06e7e9f 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -4,6 +4,11 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt. ________________________________________________________________________________ +2014/11/15 +---------- +* [Preferences] Default Fail Type preference mechanism changed internally again. + Set your Default Fail Type preference again. + 2014/11/05 ---------- * [ScreenPrompt] Answer OnCommand metrics fixed to actually work. diff --git a/src/Foreground.cpp b/src/Foreground.cpp index 38d73b6ff1..95d3f8fed2 100644 --- a/src/Foreground.cpp +++ b/src/Foreground.cpp @@ -54,7 +54,9 @@ void Foreground::LoadFromSong( const Song *pSong ) if( bga.m_bga == NULL ) continue; bga.m_bga->SetName( sBGName ); - bga.m_bga->PlayCommand( "Init" ); + // ActorUtil::MakeActor calls LoadFromNode to load the actor, and + // LoadFromNode takes care of running the InitCommand, so do not run the + // InitCommand here. -Kyz bga.m_fStartBeat = change.m_fStartBeat; bga.m_bFinished = false; diff --git a/src/PlayerOptions.cpp b/src/PlayerOptions.cpp index a579d1483f..65d37800ce 100644 --- a/src/PlayerOptions.cpp +++ b/src/PlayerOptions.cpp @@ -74,7 +74,6 @@ void PlayerOptions::Init() ZERO( m_bTurns ); ZERO( m_bTransforms ); m_bMuteOnError = false; - m_FailType = PREFSMAN->m_DefaultFailType; m_sNoteSkin = ""; } diff --git a/src/PrefsManager.cpp b/src/PrefsManager.cpp index 54f9059add..7fd7c2e6aa 100644 --- a/src/PrefsManager.cpp +++ b/src/PrefsManager.cpp @@ -286,7 +286,6 @@ PrefsManager::PrefsManager() : m_sCoursesToShowRanking ( "CoursesToShowRanking", "" ), m_bQuirksMode ( "QuirksMode", false ), - m_DefaultFailType("DefaultFailtype", FailType_ImmediateContinue), /* Debug: */ m_bLogToDisk ( "LogToDisk", true ), diff --git a/src/PrefsManager.h b/src/PrefsManager.h index 97d40fb5c4..19f51e07e2 100644 --- a/src/PrefsManager.h +++ b/src/PrefsManager.h @@ -294,7 +294,6 @@ public: /** @brief Enable some quirky behavior used by some older versions of StepMania. */ Preference m_bQuirksMode; - Preference m_DefaultFailType; // Debug: Preference m_bLogToDisk; diff --git a/src/RageBitmapTexture.cpp b/src/RageBitmapTexture.cpp index 17252e7f59..c6628ed6ba 100644 --- a/src/RageBitmapTexture.cpp +++ b/src/RageBitmapTexture.cpp @@ -289,6 +289,13 @@ void RageBitmapTexture::Create() if( !TEXTUREMAN->GetOddDimensionWarning() ) bRunCheck = false; + // Don't check if this is the screen texture, the theme can't do anything + // about it. -Kyz + if(actualID == TEXTUREMAN->GetScreenTextureID()) + { + bRunCheck= false; + } + if( bRunCheck ) { float fFrameWidth = this->GetSourceWidth() / (float)this->GetFramesWide(); diff --git a/src/ScreenOptionsMasterPrefs.cpp b/src/ScreenOptionsMasterPrefs.cpp index 7098210eeb..4b50face7d 100644 --- a/src/ScreenOptionsMasterPrefs.cpp +++ b/src/ScreenOptionsMasterPrefs.cpp @@ -30,10 +30,12 @@ static void GetPrefsDefaultModifiers( PlayerOptions &po, SongOptions &so ) static void SetPrefsDefaultModifiers( const PlayerOptions &po, const SongOptions &so ) { vector as; - if( po.GetString() != "" ) - as.push_back( po.GetString() ); - if( so.GetString() != "" ) - as.push_back( so.GetString() ); +#define remove_empty_back() if(as.back() == "") { as.pop_back(); } + as.push_back(po.GetString()); + remove_empty_back(); + as.push_back(so.GetString()); + remove_empty_back(); +#undef remove_empty_back PREFSMAN->m_sDefaultModifiers.Set( join(", ",as) ); } @@ -336,6 +338,32 @@ static void DefaultNoteSkin( int &sel, bool ToSel, const ConfOption *pConfOption } } +static void DefaultFailChoices(vector& out) +{ + out.push_back("Immediate"); + out.push_back("ImmediateContinue"); + out.push_back("EndOfSong"); + out.push_back("Off"); +} + +static void DefaultFailType(int& sel, bool to_sel, const ConfOption* conf_option) +{ + if(to_sel) + { + PlayerOptions po; + po.FromString(PREFSMAN->m_sDefaultModifiers); + sel= po.m_FailType; + } + else + { + PlayerOptions po; + SongOptions so; + GetPrefsDefaultModifiers(po, so); + po.m_FailType= static_cast(sel); + SetPrefsDefaultModifiers(po, so); + } +} + // Background options static void BGBrightness( int &sel, bool ToSel, const ConfOption *pConfOption ) { @@ -708,7 +736,7 @@ static void InitializeConfOptions() ADD( ConfOption( "ProgressiveLifebar", MovePref, "Off","|1","|2","|3","|4","|5","|6","|7","|8") ); ADD( ConfOption( "ProgressiveStageLifebar", MovePref, "Off","|1","|2","|3","|4","|5","|6","|7","|8","Insanity") ); ADD( ConfOption( "ProgressiveNonstopLifebar", MovePref, "Off","|1","|2","|3","|4","|5","|6","|7","|8","Insanity") ); - ADD( ConfOption( "DefaultFailType", MovePref, "Immediate","ImmediateContinue","EndOfSong","Off" ) ); + ADD( ConfOption( "DefaultFailType", DefaultFailType, DefaultFailChoices ) ); ADD( ConfOption( "CoinsPerCredit", CoinsPerCredit, "|1","|2","|3","|4","|5","|6","|7","|8","|9","|10","|11","|12","|13","|14","|15","|16" ) ); ADD( ConfOption( "Premium", MovePref, "Off","Double for 1 Credit","2 Players for 1 Credit" ) ); ADD( ConfOption( "JointPremium", JointPremium, "Off","2 Players for 1 Credit" ) );