From ddeb153ed30a8ebf0d81e260c2cdc1ac98a6390b Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 23 Feb 2004 07:44:11 +0000 Subject: [PATCH] add "converge" mod --- stepmania/src/ArrowEffects.cpp | 10 +++++++--- stepmania/src/OptionIconRow.cpp | 1 + stepmania/src/PlayerOptions.cpp | 8 +++++--- stepmania/src/PlayerOptions.h | 1 + 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index 5cc643cd3c..59b95c4277 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -88,14 +88,18 @@ float ArrowGetYOffset( PlayerNumber pn, int iCol, float fNoteBeat ) } -static void ArrowGetReverseShiftAndScale( PlayerNumber pn, int iCol, float fYReverseOffsetPixels, float &fShift, float &fScale ) +static void ArrowGetReverseShiftAndScale( PlayerNumber pn, int iCol, float fYReverseOffsetPixels, float &fShiftOut, float &fScaleOut ) { /* XXX: Hack: we need to scale the reverse shift by the zoom. */ float fMiniPercent = GAMESTATE->m_CurrentPlayerOptions[pn].m_fEffects[PlayerOptions::EFFECT_MINI]; float fZoom = 1 - fMiniPercent*0.5f; - fShift = SCALE( GAMESTATE->m_CurrentPlayerOptions[pn].GetReversePercentForColumn(iCol), 0.f, 1.f, -fYReverseOffsetPixels/fZoom/2, fYReverseOffsetPixels/fZoom/2 ); - fScale = SCALE( GAMESTATE->m_CurrentPlayerOptions[pn].GetReversePercentForColumn(iCol), 0.f, 1.f, 1.f, -1.f); + float fPercentReverse = GAMESTATE->m_CurrentPlayerOptions[pn].GetReversePercentForColumn(iCol); + fShiftOut = SCALE( fPercentReverse, 0.f, 1.f, -fYReverseOffsetPixels/fZoom/2, fYReverseOffsetPixels/fZoom/2 ); + float fPercentConverge = GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrolls[PlayerOptions::SCROLL_CONVERGE]; + fShiftOut = SCALE( fPercentConverge, 0.f, 1.f, fShiftOut, 0.5f ); + + fScaleOut = SCALE( fPercentReverse, 0.f, 1.f, 1.f, -1.f); } float ArrowGetYPos( PlayerNumber pn, int iCol, float fYOffset, float fYReverseOffsetPixels, bool WithReverse ) diff --git a/stepmania/src/OptionIconRow.cpp b/stepmania/src/OptionIconRow.cpp index 4a90c30ffd..0004eef869 100644 --- a/stepmania/src/OptionIconRow.cpp +++ b/stepmania/src/OptionIconRow.cpp @@ -68,6 +68,7 @@ const OptionColumnEntry g_OptionColumnEntries[] = {"Split", 5}, {"Alternate", 5}, {"Cross", 5}, + {"Converge", 5}, {"Incoming", 6}, {"Space", 6}, {"Hallway", 6}, diff --git a/stepmania/src/PlayerOptions.cpp b/stepmania/src/PlayerOptions.cpp index 9f20b5ddf7..10ef1d6a5e 100644 --- a/stepmania/src/PlayerOptions.cpp +++ b/stepmania/src/PlayerOptions.cpp @@ -123,10 +123,11 @@ CString PlayerOptions::GetString() const sReturn += AddPart( m_fAppearances[APPEARANCE_BLINK], "Blink" ); sReturn += AddPart( m_fAppearances[APPEARANCE_RANDOMVANISH], "RandomVanish" ); - sReturn += AddPart( m_fScrolls[SCROLL_REVERSE], "Reverse" ); - sReturn += AddPart( m_fScrolls[SCROLL_SPLIT], "Split" ); + sReturn += AddPart( m_fScrolls[SCROLL_REVERSE], "Reverse" ); + sReturn += AddPart( m_fScrolls[SCROLL_SPLIT], "Split" ); sReturn += AddPart( m_fScrolls[SCROLL_ALTERNATE], "Alternate" ); - sReturn += AddPart( m_fScrolls[SCROLL_CROSS], "Cross" ); + sReturn += AddPart( m_fScrolls[SCROLL_CROSS], "Cross" ); + sReturn += AddPart( m_fScrolls[SCROLL_CONVERGE], "Converge" ); sReturn += AddPart( m_fDark, "Dark"); @@ -294,6 +295,7 @@ void PlayerOptions::FromString( CString sOptions ) else if( sBit == "split" ) SET_FLOAT( fScrolls[SCROLL_SPLIT] ) else if( sBit == "alternate" ) SET_FLOAT( fScrolls[SCROLL_ALTERNATE] ) else if( sBit == "cross" ) SET_FLOAT( fScrolls[SCROLL_CROSS] ) + else if( sBit == "converge" ) SET_FLOAT( fScrolls[SCROLL_CONVERGE] ) else if( sBit == "noholds" || sBit == "nofreeze" ) m_bTransforms[TRANSFORM_NOHOLDS] = on; else if( sBit == "nomines" ) m_bTransforms[TRANSFORM_NOMINES] = on; else if( sBit == "dark" ) SET_FLOAT( fDark ) diff --git a/stepmania/src/PlayerOptions.h b/stepmania/src/PlayerOptions.h index 695a38b524..288c9ccea7 100644 --- a/stepmania/src/PlayerOptions.h +++ b/stepmania/src/PlayerOptions.h @@ -84,6 +84,7 @@ struct PlayerOptions SCROLL_SPLIT, SCROLL_ALTERNATE, SCROLL_CROSS, + SCROLL_CONVERGE, NUM_SCROLLS }; float GetReversePercentForColumn( int iCol ); // accounts for all Directions