From ce0628c5ad96e094db12a67d4e98b445fa873ad3 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 14 Feb 2021 16:13:08 -0500 Subject: Added map fadeouts Screen fadeouts and map fadeouts are now handled by the effect system. --- src/effect_system.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/effect_system.cpp (limited to 'src/effect_system.cpp') diff --git a/src/effect_system.cpp b/src/effect_system.cpp new file mode 100644 index 0000000..3a0afe4 --- /dev/null +++ b/src/effect_system.cpp @@ -0,0 +1,35 @@ +#include "effect_system.h" + +void EffectSystem::tick(double dt) { + 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_; + } +} + +void EffectSystem::fadeScreen(int length, double amount) { + screenFadeStart_ = screenFade_; + screenFadeDest_ = amount; + screenFadeLength_ = length; + screenFadeThus_ = 0; +} + +void EffectSystem::fadeMap(int length, double amount) { + mapFadeStart_ = mapFade_; + mapFadeDest_ = amount; + mapFadeLength_ = length; + mapFadeThus_ = 0; +} -- cgit 1.4.1