summaryrefslogtreecommitdiffstats
path: root/engine/flatactor.cpp
diff options
context:
space:
mode:
authorancarola <raffaele.ancarola@epfl.ch>2018-11-17 22:46:15 +0100
committerancarola <raffaele.ancarola@epfl.ch>2018-11-17 22:46:15 +0100
commitce7b39f47a1112941b3579f6502dd4e950cb099a (patch)
tree1d2a46f7dde690415302539c989f21067f270324 /engine/flatactor.cpp
downloadflatland-ce7b39f47a1112941b3579f6502dd4e950cb099a.tar.gz
flatland-ce7b39f47a1112941b3579f6502dd4e950cb099a.zip
initialization
Diffstat (limited to 'engine/flatactor.cpp')
-rw-r--r--engine/flatactor.cpp44
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;
+}
+