diff options
Diffstat (limited to 'src/KingSystem/ActorSystem/actAiActionBase.cpp')
| -rw-r--r-- | src/KingSystem/ActorSystem/actAiActionBase.cpp | 20 |
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); |
