summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actBaseProcJob.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/KingSystem/ActorSystem/actBaseProcJob.h')
-rw-r--r--src/KingSystem/ActorSystem/actBaseProcJob.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/KingSystem/ActorSystem/actBaseProcJob.h b/src/KingSystem/ActorSystem/actBaseProcJob.h
new file mode 100644
index 00000000..bd30b23e
--- /dev/null
+++ b/src/KingSystem/ActorSystem/actBaseProcJob.h
@@ -0,0 +1,53 @@
+#pragma once
+
+#include <container/seadTList.h>
+#include "KingSystem/Utils/Types.h"
+
+namespace ksys::act {
+
+class BaseProc;
+
+enum class Priority : u8 {
+ PlayerBefore = 0,
+ Player = 2,
+ PlayerAfter = 2,
+ AllAfter = 3,
+};
+
+enum class JobType {
+ PreCalc = 0,
+ Calc1 = 1,
+ Calc2 = 2,
+ Calc3 = 3,
+ Calc4 = 4,
+ AfterMessageDispatch = 5,
+ Calc3Alt = 6,
+ Invalid = 7,
+};
+
+class BaseProcJobLink : public sead::TListNode<BaseProc*> {
+public:
+ BaseProcJobLink(BaseProc* proc, u8 priority);
+
+ u8 getPriority() const { return mPriority; }
+ u8 getPriority2() const { return mPriority2; }
+
+ void setNewPriority(u8 priority) { mNewPriority = priority; }
+ void setNewPriority2(u8 priority) { mNewPriority2 = priority; }
+
+ void loadNewPriority() { mPriority = mNewPriority; }
+ void loadNewPriority2() { mPriority2 = mNewPriority2; }
+
+ bool hasPriorityChange() const {
+ return mPriority != mNewPriority || mPriority2 != mNewPriority2;
+ }
+
+private:
+ u8 mPriority;
+ u8 mNewPriority;
+ u8 mPriority2;
+ u8 mNewPriority2;
+};
+KSYS_CHECK_SIZE_NX150(BaseProcJobLink, 0x28);
+
+} // namespace ksys::act