From 089cf8cdd496fccd639fbe6bca45da4bab6d40c8 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sat, 12 Feb 2011 01:07:32 -0500 Subject: [PATCH] Flexible Expand mod with metrics. --- Themes/_fallback/metrics.ini | 9 +++++++++ src/ArrowEffects.cpp | 16 ++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 43a9390337..a0819220ea 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -136,6 +136,15 @@ BrakeModMaxClamp=400 WaveModMagnitude=20 WaveModHeight=38 BoomerangPeakPercentage=0.75 +ExpandMultiplierFrequency=3 +ExpandMultiplierScaleFromLow=-1 +ExpandMultiplierScaleFromHigh=1 +ExpandMultiplierScaleToLow=0.75 +ExpandMultiplierScaleToHigh=1.75 +ExpandSpeedScaleFromLow=0 +ExpandSpeedScaleFromHigh=1 +ExpandSpeedScaleToLow=1 +# No need for the high here: that is already calculated in code. QuantizeArrowYPosition=false [Background] diff --git a/src/ArrowEffects.cpp b/src/ArrowEffects.cpp index 343f58a73b..4c598f6904 100644 --- a/src/ArrowEffects.cpp +++ b/src/ArrowEffects.cpp @@ -24,6 +24,14 @@ static ThemeMetric BRAKE_MOD_MAX_CLAMP( "ArrowEffects", "BrakeModMaxClamp static ThemeMetric WAVE_MOD_MAGNITUDE( "ArrowEffects", "WaveModMagnitude" ); static ThemeMetric WAVE_MOD_HEIGHT( "ArrowEffects", "WaveModHeight" ); static ThemeMetric BOOMERANG_PEAK_PERCENTAGE( "ArrowEffects", "BoomerangPeakPercentage" ); +static ThemeMetric EXPAND_MULTIPLIER_FREQUENCY( "ArrowEffects", "ExpandMultiplierFrequency" ); +static ThemeMetric EXPAND_MULTIPLIER_SCALE_FROM_LOW( "ArrowEffects", "ExpandMultiplierScaleFromLow" ); +static ThemeMetric EXPAND_MULTIPLIER_SCALE_FROM_HIGH( "ArrowEffects", "ExpandMultiplierScaleFromHigh" ); +static ThemeMetric EXPAND_MULTIPLIER_SCALE_TO_LOW( "ArrowEffects", "ExpandMultiplierScaleToLow" ); +static ThemeMetric EXPAND_MULTIPLIER_SCALE_TO_HIGH( "ArrowEffects", "ExpandMultiplierScaleToHigh" ); +static ThemeMetric EXPAND_SPEED_SCALE_FROM_LOW( "ArrowEffects", "ExpandSpeedScaleFromLow" ); +static ThemeMetric EXPAND_SPEED_SCALE_FROM_HIGH( "ArrowEffects", "ExpandSpeedScaleFromHigh" ); +static ThemeMetric EXPAND_SPEED_SCALE_TO_LOW( "ArrowEffects", "ExpandSpeedScaleToLow" ); static ThemeMetric QUANTIZE_ARROW_Y( "ArrowEffects", "QuantizeArrowYPosition"); static float GetNoteFieldHeight( const PlayerState* pPlayerState ) @@ -271,8 +279,12 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float if( fAccels[PlayerOptions::ACCEL_EXPAND] != 0 ) { - float fExpandMultiplier = SCALE( RageFastCos(g_fExpandSeconds*3), -1, 1, 0.75f, 1.75f ); - fScrollSpeed *= SCALE( fAccels[PlayerOptions::ACCEL_EXPAND], 0.f, 1.f, 1.f, fExpandMultiplier ); + float fExpandMultiplier = SCALE( RageFastCos(g_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY), + EXPAND_MULTIPLIER_SCALE_FROM_LOW, EXPAND_MULTIPLIER_SCALE_FROM_HIGH, + EXPAND_MULTIPLIER_SCALE_TO_LOW, EXPAND_MULTIPLIER_SCALE_TO_HIGH ); + fScrollSpeed *= SCALE( fAccels[PlayerOptions::ACCEL_EXPAND], + EXPAND_SPEED_SCALE_FROM_LOW, EXPAND_SPEED_SCALE_FROM_HIGH, + EXPAND_SPEED_SCALE_TO_LOW, fExpandMultiplier ); } fYOffset *= fScrollSpeed;