diff options
author | ancarola <raffaele.ancarola@epfl.ch> | 2018-11-17 22:46:15 +0100 |
---|---|---|
committer | ancarola <raffaele.ancarola@epfl.ch> | 2018-11-17 22:46:15 +0100 |
commit | ce7b39f47a1112941b3579f6502dd4e950cb099a (patch) | |
tree | 1d2a46f7dde690415302539c989f21067f270324 /engine/flatactor.cpp | |
download | flatland-ce7b39f47a1112941b3579f6502dd4e950cb099a.tar.gz flatland-ce7b39f47a1112941b3579f6502dd4e950cb099a.zip |
initialization
Diffstat (limited to 'engine/flatactor.cpp')
-rw-r--r-- | engine/flatactor.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/engine/flatactor.cpp b/engine/flatactor.cpp new file mode 100644 index 0000000..7ab0909 --- /dev/null +++ b/engine/flatactor.cpp @@ -0,0 +1,44 @@ +#include "flatactor.h" + +#include "flattask.h" +#include "flatland.h" + +FlatActor::FlatActor(FlatCollector *parent, bool evolving) + + : FlatCollector(parent), task(0) +{ + setEvolving(evolving); +} + +FlatActor::~FlatActor() +{ + if (task) + delete task; +} + +void FlatActor::evolve_task(void *data) +{ + evolve(*(float*)data); +} + +void FlatActor::evolve(float) {} + +void FlatActor::setEvolving(bool flag) +{ + if (isEvolving() != flag) + { + if (flag) + task = new FlatTask<FlatActor>(this, &FlatActor::evolve_task, (void*)&flatland_dt); + else { + + delete task; + task = 0; + } + } +} + +bool FlatActor::isEvolving() const +{ + return task != 0; +} + |