Commit | Line | Data |
---|---|---|
f206d19d PG |
1 | #include "effectManager.h" |
2 | ||
33b8c69b | 3 | #include "Effects/Effect.h" |
f206d19d | 4 | #include "Effects/Gravity.h" |
2c18685d | 5 | #include "Effects/Screen.h" |
f206d19d | 6 | |
33b8c69b PG |
7 | /// ***** Private Variables ***** |
8 | Effect** effects; | |
9 | int numEffects; | |
10 | ||
11 | /// ***** Public Methods ***** | |
12 | ||
13 | void effect::init() | |
14 | { | |
2c18685d | 15 | numEffects = 2; |
33b8c69b PG |
16 | effects = new Effect*[numEffects](); |
17 | ||
18 | effects[0] = new Gravity(); | |
2c18685d | 19 | effects[1] = new Screen(); |
33b8c69b PG |
20 | } |
21 | void effect::clean() | |
22 | { | |
23 | for(int i=0; i < numEffects; i++) | |
24 | { | |
25 | delete effects[i]; | |
26 | } | |
27 | ||
b8adb435 | 28 | delete[] effects; |
33b8c69b | 29 | } |
f206d19d PG |
30 | |
31 | Vector2 effect::positionDelta(const PhysicsEntity* e, float time_step) | |
32 | { | |
33b8c69b PG |
33 | Vector2 acc(0,0); |
34 | ||
35 | for(int i=0; i < numEffects; i++) | |
36 | { | |
37 | acc += effects[i]->positionDelta(e, time_step); | |
38 | } | |
39 | ||
40 | return acc; | |
f206d19d PG |
41 | } |
42 | Vector2 effect::velocityDelta(const PhysicsEntity* e, float time_step) | |
43 | { | |
33b8c69b PG |
44 | Vector2 acc(0,0); |
45 | ||
46 | for(int i=0; i < numEffects; i++) | |
47 | { | |
48 | acc += effects[i]->velocityDelta(e, time_step); | |
49 | } | |
50 | ||
51 | return acc; | |
f206d19d PG |
52 | } |
53 | Vector2 effect::forceDelta(const PhysicsEntity* e, float time_step) | |
54 | { | |
33b8c69b PG |
55 | Vector2 acc(0,0); |
56 | ||
57 | for(int i=0; i < numEffects; i++) | |
58 | { | |
59 | acc += effects[i]->forceDelta(e, time_step); | |
60 | } | |
61 | ||
62 | return acc; | |
f206d19d | 63 | } |