From 142e00794097dfb78c4b758a2d39d26fae070092 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 13 Mar 2021 07:25:23 -0500 Subject: Created Interpolation abstraction This simplifies EffectSystem quite a bit, and will be useful in other classes. --- src/effect_system.cpp | 44 ++++++-------------------------------------- 1 file changed, 6 insertions(+), 38 deletions(-) (limited to 'src/effect_system.cpp') diff --git a/src/effect_system.cpp b/src/effect_system.cpp index 4dff13c..9b24d3e 100644 --- a/src/effect_system.cpp +++ b/src/effect_system.cpp @@ -4,23 +4,9 @@ void EffectSystem::tick(double dt) { if (game_.isGameplayPaused()) return; - if (screenFade_ != screenFadeDest_) { - screenFadeThus_ += dt; - if (screenFadeThus_ >= screenFadeLength_) { - screenFadeThus_ = screenFadeLength_; - } - - screenFade_ = (screenFadeDest_ - screenFadeStart_) / screenFadeLength_ * screenFadeThus_ + screenFadeStart_; - } - - if (mapFade_ != mapFadeDest_) { - mapFadeThus_ += dt; - if (mapFadeThus_ >= mapFadeLength_) { - mapFadeThus_ = mapFadeLength_; - } - - mapFade_ = (mapFadeDest_ - mapFadeStart_) / mapFadeLength_ * mapFadeThus_ + mapFadeStart_; - } + screenFade_.tick(dt); + mapFade_.tick(dt); + circleEffect_.tick(dt); if (cameraShaking_) { cameraShakeTimer_.accumulate(dt); @@ -37,29 +23,14 @@ void EffectSystem::tick(double dt) { cameraShakeOffset_.y() = 0; } } - - if (circleEffect_ != circleEffectDest_) { - circleEffectThus_ += dt; - if (circleEffectThus_ >= circleEffectLength_) { - circleEffectThus_ = circleEffectLength_; - } - - circleEffect_ = (circleEffectDest_ - circleEffectStart_) / circleEffectLength_ * circleEffectThus_ + circleEffectStart_; - } } void EffectSystem::fadeScreen(int length, double amount) { - screenFadeStart_ = screenFade_; - screenFadeDest_ = amount; - screenFadeLength_ = length; - screenFadeThus_ = 0; + screenFade_.start(length, amount); } void EffectSystem::fadeMap(int length, double amount) { - mapFadeStart_ = mapFade_; - mapFadeDest_ = amount; - mapFadeLength_ = length; - mapFadeThus_ = 0; + mapFade_.start(length, amount); } void EffectSystem::shakeCamera(int period) { @@ -75,8 +46,5 @@ void EffectSystem::stopShakingCamera() { } void EffectSystem::circleTransition(int length, double amount) { - circleEffectStart_ = circleEffect_; - circleEffectDest_ = amount; - circleEffectLength_ = length; - circleEffectThus_ = 0; + circleEffect_.start(length, amount); } -- cgit 1.4.1