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" ) );