From a7c033a987cad1871a12ab12b02672e682e71f7f Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sat, 15 Jan 2011 13:28:56 -0500 Subject: [PATCH] Add more flexible modifier modifications. --- Docs/Changelog_sm-ssc.txt | 4 ++-- Themes/_fallback/metrics.ini | 4 ++++ src/ArrowEffects.cpp | 8 ++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index 5506a7fdf4..45008d3280 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -15,8 +15,8 @@ sm-ssc v1.2.1 | 2011011? 20110115 -------- -* [ArrowEffects] Allow modifying the blink mod frequency in the metrics. - [Wolfman2000] +* [ArrowEffects] Allow modifying modifier characteristics in the metrics. + At present, Blink, Brake, and Boost can have modifications. [Wolfman2000] 20110112 -------- diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 05174f3663..b50d2c931e 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -129,6 +129,10 @@ FrameWidthLockEffectsTweenPixels=25 ArrowSpacing=128 DrawHiddenNotesAfterReceptor=true BlinkModFrequency=0.3333 +BoostModMinClamp=-400 +BoostModMaxClamp=400 +BrakeModMinClamp=-400 +BrakeModMaxClamp=400 [Background] # Background stuff. again, its usually a better idea to leave this alone diff --git a/src/ArrowEffects.cpp b/src/ArrowEffects.cpp index 449b6b604e..9fc2bf0239 100644 --- a/src/ArrowEffects.cpp +++ b/src/ArrowEffects.cpp @@ -17,6 +17,10 @@ static ThemeMetric ARROW_SPACING( "ArrowEffects", "ArrowSpacing" ); static ThemeMetric HIDDEN_SUDDEN_PAST_RECEPTOR( "ArrowEffects", "DrawHiddenNotesAfterReceptor"); static ThemeMetric BLINK_MOD_FREQUENCY( "ArrowEffects", "BlinkModFrequency" ); +static ThemeMetric BOOST_MOD_MIN_CLAMP( "ArrowEffects", "BoostModMinClamp" ); +static ThemeMetric BOOST_MOD_MAX_CLAMP( "ArrowEffects", "BoostModMaxClamp" ); +static ThemeMetric BRAKE_MOD_MIN_CLAMP( "ArrowEffects", "BrakeModMinClamp" ); +static ThemeMetric BRAKE_MOD_MAX_CLAMP( "ArrowEffects", "BrakeModMaxClamp" ); static float GetNoteFieldHeight( const PlayerState* pPlayerState ) { @@ -214,7 +218,7 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float float fNewYOffset = fYOffset * 1.5f / ((fYOffset+fEffectHeight/1.2f)/fEffectHeight); float fAccelYAdjust = fAccels[PlayerOptions::ACCEL_BOOST] * (fNewYOffset - fYOffset); // TRICKY: Clamp this value, or else BOOST+BOOMERANG will draw a ton of arrows on the screen. - CLAMP( fAccelYAdjust, -400.f, 400.f ); + CLAMP( fAccelYAdjust, BOOST_MOD_MIN_CLAMP, BOOST_MOD_MAX_CLAMP ); fYAdjust += fAccelYAdjust; } if( fAccels[PlayerOptions::ACCEL_BRAKE] != 0 ) @@ -224,7 +228,7 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float float fNewYOffset = fYOffset * fScale; float fBrakeYAdjust = fAccels[PlayerOptions::ACCEL_BRAKE] * (fNewYOffset - fYOffset); // TRICKY: Clamp this value the same way as BOOST so that in BOOST+BRAKE, BRAKE doesn't overpower BOOST - CLAMP( fBrakeYAdjust, -400.f, 400.f ); + CLAMP( fBrakeYAdjust, BRAKE_MOD_MIN_CLAMP, BRAKE_MOD_MAX_CLAMP ); fYAdjust += fBrakeYAdjust; } if( fAccels[PlayerOptions::ACCEL_WAVE] != 0 )