summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/KingSystem/ActorSystem/actBaseProc.cpp8
-rw-r--r--src/KingSystem/ActorSystem/actBaseProc.h8
2 files changed, 12 insertions, 4 deletions
diff --git a/src/KingSystem/ActorSystem/actBaseProc.cpp b/src/KingSystem/ActorSystem/actBaseProc.cpp
index 01ccc5d4..ed50eef2 100644
--- a/src/KingSystem/ActorSystem/actBaseProc.cpp
+++ b/src/KingSystem/ActorSystem/actBaseProc.cpp
@@ -156,9 +156,11 @@ void BaseProc::preDelete2_(bool*) {}
void BaseProc::preDelete1_() {}
-// NON_MATCHING: branching
-bool BaseProc::isSpecialJobType_(JobType type) {
- return BaseProcMgr::instance()->isSpecialJobType(type) || isSpecialJobTypeForThisActor_(type);
+BaseProc::IsSpecialJobTypeResult BaseProc::isSpecialJobType_(JobType type) {
+ if (BaseProcMgr::instance()->isSpecialJobType(type) || isSpecialJobTypeForThisActor_(type))
+ return IsSpecialJobTypeResult::Yes;
+
+ return IsSpecialJobTypeResult::No;
}
bool BaseProc::canWakeUp_() {
diff --git a/src/KingSystem/ActorSystem/actBaseProc.h b/src/KingSystem/ActorSystem/actBaseProc.h
index 4155c683..325e8dac 100644
--- a/src/KingSystem/ActorSystem/actBaseProc.h
+++ b/src/KingSystem/ActorSystem/actBaseProc.h
@@ -185,6 +185,12 @@ protected:
Done = 1,
};
+ enum class IsSpecialJobTypeResult {
+ No = 0,
+ Yes = 1,
+ _2 = 2,
+ };
+
struct InitContext {
InitResult result;
bool sleep_after_init;
@@ -241,7 +247,7 @@ protected:
/// Called to actually pre-delete (first callback).
virtual void preDelete1_();
- virtual bool isSpecialJobType_(JobType type);
+ virtual IsSpecialJobTypeResult isSpecialJobType_(JobType type);
virtual bool canWakeUp_();
virtual void queueExtraJobPush_(JobType type);
virtual bool hasJobType_(JobType type);