aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/machina')
-rw-r--r--src/engine/machina/Node.hpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/engine/machina/Node.hpp b/src/engine/machina/Node.hpp
index 2e26f0a..041f443 100644
--- a/src/engine/machina/Node.hpp
+++ b/src/engine/machina/Node.hpp
@@ -47,10 +47,7 @@ public:
Node(BeatCount duration=0, bool initial=false);
void set_enter_action(SharedPtr<Action> action);
- void remove_enter_action();
-
void set_exit_action(SharedPtr<Action> action);
- void remove_exit_action();
SharedPtr<Action> enter_action() { return _enter_action; }
SharedPtr<Action> exit_action() { return _exit_action; }
@@ -73,11 +70,24 @@ public:
void set_duration(BeatCount d) { _duration = d; }
bool is_selector() const { return _is_selector; }
void set_selector(bool i);
+
+ /// Schroedinger's flag
+ inline bool changed() {
+ if (_changed) {
+ _changed = false;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ void set_changed() { _changed = true; }
typedef Raul::List<SharedPtr<Edge> > Edges;
Edges& outgoing_edges() { return _outgoing_edges; }
private:
+ bool _changed;
bool _is_initial;
bool _is_selector;
bool _is_active;