summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actAiActionBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/KingSystem/ActorSystem/actAiActionBase.cpp')
-rw-r--r--src/KingSystem/ActorSystem/actAiActionBase.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/KingSystem/ActorSystem/actAiActionBase.cpp b/src/KingSystem/ActorSystem/actAiActionBase.cpp
index b169813c..767f6ea7 100644
--- a/src/KingSystem/ActorSystem/actAiActionBase.cpp
+++ b/src/KingSystem/ActorSystem/actAiActionBase.cpp
@@ -223,6 +223,26 @@ Action* ActionBase::getCurrentAction() {
}
}
+bool ActionBase::handleMessage(mes::Message* message) {
+ auto* action = this;
+ while (!action->handleMessage_(message)) {
+ action = action->getCurrentChild();
+ if (!action)
+ return false;
+ }
+ return true;
+}
+
+bool ActionBase::handleMessage2(mes::Message* message) {
+ auto* action = this;
+ while (!action->handleMessage2_(message)) {
+ action = action->getCurrentChild();
+ if (!action)
+ return false;
+ }
+ return true;
+}
+
void ActionBase::setFinished() {
mFlags.set(Flag::Finished);
mFlags.reset(Flag::Failed);