ksys/act: Add more ActionBase functions

This commit is contained in:
Léo Lam 2020-12-25 12:09:55 +01:00
parent 399cde1271
commit 6f71b7b30a
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
3 changed files with 26 additions and 2 deletions

View File

@ -73013,8 +73013,8 @@
0x0000007100d16c50,AI_AIOrActionBase::sendMessageMaybe,12,
0x0000007100d16c5c,sub_7100D16C5C,12,
0x0000007100d16c68,ai::ActorAI::getCurrentAction,144,_ZN4ksys3act2ai10ActionBase16getCurrentActionEv
0x0000007100d16cf8,ai::ActorAI::x_1,92,
0x0000007100d16d54,ai::ActorAI::x_2,92,
0x0000007100d16cf8,ai::ActorAI::x_1,92,_ZN4ksys3act2ai10ActionBase13handleMessageEPNS_3mes7MessageE
0x0000007100d16d54,ai::ActorAI::x_2,92,_ZN4ksys3act2ai10ActionBase14handleMessage2EPNS_3mes7MessageE
0x0000007100d16db0,AI_AIOrActionBase::setFinished,20,_ZN4ksys3act2ai10ActionBase11setFinishedEv
0x0000007100d16dc4,AI_AIOrActionBase::setFailed,20,_ZN4ksys3act2ai10ActionBase9setFailedEv
0x0000007100d16dd8,AI_AIOrActionBase::appendName,392,_ZNK4ksys3act2ai10ActionBase14getCurrentNameEPN4sead22BufferedSafeStringBaseIcEEPS2_

Can't render this file because it is too large.

View File

@ -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);

View File

@ -65,6 +65,10 @@ public:
bool oneShot(InlineParamPack* params);
Action* getCurrentAction();
bool handleMessage(mes::Message* message);
// TODO: rename
bool handleMessage2(mes::Message* message);
Actor* getActor() const { return mActor; }
s32 getDefinitionIdx() const { return mDefinitionIdx; }
const char* getClassName() const;