diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 09709f338c..414af5c471 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -119,7 +119,7 @@ UnlockNames="" # 03 # [ArrowEffects] -# Complicated stuff you probably shouldnt ever mess with or else you'll +# Complicated stuff you probably shouldn't ever mess with or else you'll # destroy mods completely! FrameWidthEffectsPixelsPerSecond=400 FrameWidthEffectsMinMultiplier=0.5 @@ -151,6 +151,11 @@ TipsyArrowMagnitude=0.4 TipsyOffsetTimerFrequency=1.2 TipsyOffsetColumnFrequency=2 TipsyOffsetArrowMagnitude=0.4 +TornadoPositionScaleToLow=-1 +TornadoPositionScaleToHigh=1 +TornadoOffsetFrequency=6 +TornadoOffsetScaleFromLow=-1 +TornadoOffsetScaleFromHigh=1 DrunkColumnFrequency=0.2 DrunkOffsetFrequency=10 DrunkArrowMagnitude=0.5 diff --git a/src/ArrowEffects.cpp b/src/ArrowEffects.cpp index c9a3ec74ad..1987a3c53d 100644 --- a/src/ArrowEffects.cpp +++ b/src/ArrowEffects.cpp @@ -38,6 +38,11 @@ static ThemeMetric TIPSY_ARROW_MAGNITUDE( "ArrowEffects", "TipsyArrowMagn static ThemeMetric TIPSY_OFFSET_TIMER_FREQUENCY( "ArrowEffects", "TipsyOffsetTimerFrequency" ); static ThemeMetric TIPSY_OFFSET_COLUMN_FREQUENCY( "ArrowEffects", "TipsyOffsetColumnFrequency" ); static ThemeMetric TIPSY_OFFSET_ARROW_MAGNITUDE( "ArrowEffects", "TipsyOffsetArrowMagnitude" ); +static ThemeMetric TORNADO_POSITION_SCALE_TO_LOW( "ArrowEffects", "TornadoPositionScaleToLow" ); +static ThemeMetric TORNADO_POSITION_SCALE_TO_HIGH( "ArrowEffects", "TornadoPositionScaleToHigh" ); +static ThemeMetric TORNADO_OFFSET_FREQUENCY( "ArrowEffects", "TornadoOffsetFrequency" ); +static ThemeMetric TORNADO_OFFSET_SCALE_FROM_LOW( "ArrowEffects", "TornadoOffsetScaleFromLow" ); +static ThemeMetric TORNADO_OFFSET_SCALE_FROM_HIGH( "ArrowEffects", "TornadoOffsetScaleFromHigh" ); static ThemeMetric DRUNK_COLUMN_FREQUENCY( "ArrowEffects", "DrunkColumnFrequency" ); static ThemeMetric DRUNK_OFFSET_FREQUENCY( "ArrowEffects", "DrunkOffsetFrequency" ); static ThemeMetric DRUNK_ARROW_MAGNITUDE( "ArrowEffects", "DrunkArrowMagnitude" ); @@ -381,11 +386,13 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float if( fEffects[PlayerOptions::EFFECT_TORNADO] != 0 ) { const float fRealPixelOffset = pCols[iColNum].fXOffset; - const float fPositionBetween = SCALE( fRealPixelOffset, data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum], -1, 1 ); + const float fPositionBetween = SCALE( fRealPixelOffset, data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum], + TORNADO_POSITION_SCALE_TO_LOW, TORNADO_POSITION_SCALE_TO_HIGH ); float fRads = acosf( fPositionBetween ); - fRads += fYOffset * 6 / SCREEN_HEIGHT; + fRads += fYOffset * TORNADO_OFFSET_FREQUENCY / SCREEN_HEIGHT; - const float fAdjustedPixelOffset = SCALE( RageFastCos(fRads), -1, 1, data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum] ); + const float fAdjustedPixelOffset = SCALE( RageFastCos(fRads), TORNADO_OFFSET_SCALE_FROM_LOW, TORNADO_OFFSET_SCALE_FROM_HIGH, + data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum] ); fPixelOffsetFromCenter += (fAdjustedPixelOffset - fRealPixelOffset) * fEffects[PlayerOptions::EFFECT_TORNADO]; }