From 7caea1e41a2fed55a9c245077b307f01d123ec5f Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 20 Apr 2005 08:54:12 +0000 Subject: [PATCH] add HiddenOffset, SuddenOffset mods --- stepmania/src/ArrowEffects.cpp | 21 ++++++++++++++------- stepmania/src/PlayerOptions.cpp | 14 +++++++++----- stepmania/src/PlayerOptions.h | 2 ++ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index aca2586d36..71972b43e2 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -317,11 +317,10 @@ float ArrowEffects::GetRotation( const PlayerState* pPlayerState, float fNoteBea static float GetCenterLine( const PlayerState* pPlayerState ) { - const float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; - const float fZoom = 1 - fMiniPercent*0.5f; - /* Another mini hack: if EFFECT_MINI is on, then our center line is at eg. 320, * not 160. */ + const float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; + const float fZoom = 1 - fMiniPercent*0.5f; return CENTER_LINE_Y / fZoom; } @@ -346,22 +345,30 @@ static float GetHiddenSudden( const PlayerState* pPlayerState ) // TRICKY: We fudge hidden and sudden to be farther apart if they're both on. static float GetHiddenEndLine( const PlayerState* pPlayerState ) { - return GetCenterLine( pPlayerState ) + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, -1.0f, -1.25f ); + return GetCenterLine( pPlayerState ) + + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, -1.0f, -1.25f ) + + GetCenterLine( pPlayerState ) * pPlayerState->m_CurrentPlayerOptions.m_fAppearances[PlayerOptions::APPEARANCE_HIDDEN_OFFSET]; } static float GetHiddenStartLine( const PlayerState* pPlayerState ) { - return GetCenterLine( pPlayerState ) + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, +0.0f, -0.25f ); + return GetCenterLine( pPlayerState ) + + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, +0.0f, -0.25f ) + + GetCenterLine( pPlayerState ) * pPlayerState->m_CurrentPlayerOptions.m_fAppearances[PlayerOptions::APPEARANCE_HIDDEN_OFFSET]; } static float GetSuddenEndLine( const PlayerState* pPlayerState ) { - return GetCenterLine( pPlayerState ) + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, -0.0f, +0.25f ); + return GetCenterLine( pPlayerState ) + + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, -0.0f, +0.25f ) + + GetCenterLine( pPlayerState ) * pPlayerState->m_CurrentPlayerOptions.m_fAppearances[PlayerOptions::APPEARANCE_SUDDEN_OFFSET]; } static float GetSuddenStartLine( const PlayerState* pPlayerState ) { - return GetCenterLine( pPlayerState ) + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, +1.0f, +1.25f ); + return GetCenterLine( pPlayerState ) + + FADE_DIST_Y * SCALE( GetHiddenSudden(pPlayerState), 0.f, 1.f, +1.0f, +1.25f ) + + GetCenterLine( pPlayerState ) * pPlayerState->m_CurrentPlayerOptions.m_fAppearances[PlayerOptions::APPEARANCE_SUDDEN_OFFSET]; } // used by ArrowGetAlpha and ArrowGetGlow below diff --git a/stepmania/src/PlayerOptions.cpp b/stepmania/src/PlayerOptions.cpp index f57647b833..7544a5b25f 100644 --- a/stepmania/src/PlayerOptions.cpp +++ b/stepmania/src/PlayerOptions.cpp @@ -123,11 +123,13 @@ void PlayerOptions::GetMods( vector &AddTo ) const AddPart( AddTo, m_fEffects[EFFECT_BUMPY], "Bumpy" ); AddPart( AddTo, m_fEffects[EFFECT_BEAT], "Beat" ); - AddPart( AddTo, m_fAppearances[APPEARANCE_HIDDEN], "Hidden" ); - AddPart( AddTo, m_fAppearances[APPEARANCE_SUDDEN], "Sudden" ); - AddPart( AddTo, m_fAppearances[APPEARANCE_STEALTH], "Stealth" ); - AddPart( AddTo, m_fAppearances[APPEARANCE_BLINK], "Blink" ); - AddPart( AddTo, m_fAppearances[APPEARANCE_RANDOMVANISH],"RandomVanish" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_HIDDEN], "Hidden" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_HIDDEN_OFFSET], "HiddenOffset" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_SUDDEN], "Sudden" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_SUDDEN_OFFSET], "SuddenOffset" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_STEALTH], "Stealth" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_BLINK], "Blink" ); + AddPart( AddTo, m_fAppearances[APPEARANCE_RANDOMVANISH], "RandomVanish" ); AddPart( AddTo, m_fScrolls[SCROLL_REVERSE], "Reverse" ); AddPart( AddTo, m_fScrolls[SCROLL_SPLIT], "Split" ); @@ -263,7 +265,9 @@ void PlayerOptions::FromString( CString sOptions, bool bWarnOnInvalid ) else if( sBit == "bumpy" ) SET_FLOAT( fEffects[EFFECT_BUMPY] ) else if( sBit == "beat" ) SET_FLOAT( fEffects[EFFECT_BEAT] ) else if( sBit == "hidden" ) SET_FLOAT( fAppearances[APPEARANCE_HIDDEN] ) + else if( sBit == "hiddenoffset" ) SET_FLOAT( fAppearances[APPEARANCE_HIDDEN_OFFSET] ) else if( sBit == "sudden" ) SET_FLOAT( fAppearances[APPEARANCE_SUDDEN] ) + else if( sBit == "suddenoffset" ) SET_FLOAT( fAppearances[APPEARANCE_SUDDEN_OFFSET] ) else if( sBit == "stealth" ) SET_FLOAT( fAppearances[APPEARANCE_STEALTH] ) else if( sBit == "blink" ) SET_FLOAT( fAppearances[APPEARANCE_BLINK] ) else if( sBit == "randomvanish" ) SET_FLOAT( fAppearances[APPEARANCE_RANDOMVANISH] ) diff --git a/stepmania/src/PlayerOptions.h b/stepmania/src/PlayerOptions.h index 5c2761bb34..318b96e3fa 100644 --- a/stepmania/src/PlayerOptions.h +++ b/stepmania/src/PlayerOptions.h @@ -49,7 +49,9 @@ struct PlayerOptions }; enum Appearance { APPEARANCE_HIDDEN, + APPEARANCE_HIDDEN_OFFSET, APPEARANCE_SUDDEN, + APPEARANCE_SUDDEN_OFFSET, APPEARANCE_STEALTH, APPEARANCE_BLINK, APPEARANCE_RANDOMVANISH,