summary refs log tree commit diff stats
path: root/src/effect_system.cpp
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-14 16:13:08 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-14 16:13:08 -0500
commitce0628c5ad96e094db12a67d4e98b445fa873ad3 (patch)
tree94a67903059685969085f7ee5724b9960c74d3f6 /src/effect_system.cpp
parent73c9b0fb4eb35e73d0005f896462e748a207d2b1 (diff)
downloadtanetane-ce0628c5ad96e094db12a67d4e98b445fa873ad3.tar.gz
tanetane-ce0628c5ad96e094db12a67d4e98b445fa873ad3.tar.bz2
tanetane-ce0628c5ad96e094db12a67d4e98b445fa873ad3.zip
Added map fadeouts
Screen fadeouts and map fadeouts are now handled by the effect system.
Diffstat (limited to 'src/effect_system.cpp')
-rw-r--r--src/effect_system.cpp35
1 files changed, 35 insertions, 0 deletions
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 @@
1#include "effect_system.h"
2
3void EffectSystem::tick(double dt) {
4 if (screenFade_ != screenFadeDest_) {
5 screenFadeThus_ += dt;
6 if (screenFadeThus_ >= screenFadeLength_) {
7 screenFadeThus_ = screenFadeLength_;
8 }
9
10 screenFade_ = (screenFadeDest_ - screenFadeStart_) / screenFadeLength_ * screenFadeThus_ + screenFadeStart_;
11 }
12
13 if (mapFade_ != mapFadeDest_) {
14 mapFadeThus_ += dt;
15 if (mapFadeThus_ >= mapFadeLength_) {
16 mapFadeThus_ = mapFadeLength_;
17 }
18
19 mapFade_ = (mapFadeDest_ - mapFadeStart_) / mapFadeLength_ * mapFadeThus_ + mapFadeStart_;
20 }
21}
22
23void EffectSystem::fadeScreen(int length, double amount) {
24 screenFadeStart_ = screenFade_;
25 screenFadeDest_ = amount;
26 screenFadeLength_ = length;
27 screenFadeThus_ = 0;
28}
29
30void EffectSystem::fadeMap(int length, double amount) {
31 mapFadeStart_ = mapFade_;
32 mapFadeDest_ = amount;
33 mapFadeLength_ = length;
34 mapFadeThus_ = 0;
35}