1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#pragma once
#include <container/seadTList.h>
#include "KingSystem/Utils/Types.h"
namespace ksys::act {
class BaseProc;
enum class Priority {
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
|