summary refs log tree commit diff stats
path: root/src/effect_system.h
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.h
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.h')
-rw-r--r--src/effect_system.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/effect_system.h b/src/effect_system.h new file mode 100644 index 0000000..2cdcb10 --- /dev/null +++ b/src/effect_system.h
@@ -0,0 +1,60 @@
1#ifndef EFFECT_SYSTEM_H_0B497B39
2#define EFFECT_SYSTEM_H_0B497B39
3
4#include "system.h"
5
6class Game;
7
8class EffectSystem : public System {
9public:
10
11 static constexpr SystemKey Key = SystemKey::Effect;
12
13 explicit EffectSystem(Game& game) : game_(game) {}
14
15 void tick(double dt) override;
16
17 /* Commands */
18
19 // Fades the entire screen in or out
20 // - length is in milliseconds
21 // - amount is [0,1]
22 void fadeScreen(int length, double amount);
23
24 // Fades just the map, leaving the sprites, messages, etc unfaded.
25 // - length is in milliseconds
26 // - amount is [0,1]
27 void fadeMap(int length, double amount);
28
29 /* Information */
30
31 bool isScreenFaded() const { return screenFade_ > 0.0; }
32
33 double getScreenFadeProgress() const { return screenFade_; }
34
35 bool isScreenFadeComplete() const { return screenFade_ == screenFadeDest_; }
36
37 bool isMapFaded() const { return mapFade_ > 0.0; }
38
39 double getMapFadeProgress() const { return mapFade_; }
40
41 bool isMapFadeComplete() const { return mapFade_ == mapFadeDest_; }
42
43private:
44
45 Game& game_;
46
47 double screenFade_ = 0.0;
48 double screenFadeDest_ = 0.0;
49 double screenFadeStart_ = 0.0;
50 double screenFadeLength_ = 0;
51 double screenFadeThus_ = 0;
52
53 double mapFade_ = 0.0;
54 double mapFadeDest_ = 0.0;
55 double mapFadeStart_ = 0.0;
56 double mapFadeLength_ = 0.0;
57 double mapFadeThus_ = 0.0;
58};
59
60#endif /* end of include guard: EFFECT_SYSTEM_H_0B497B39 */