1#ifndef SEAD_TASK_ID_H_
2#define SEAD_TASK_ID_H_
3
4#include <basis/seadTypes.h>
5
6namespace sead
7{
8class HeapArray;
9class TaskBase;
10class TaskMgr;
11class TaskParameter;
12
13struct TaskConstructArg
14{
15 TaskConstructArg() = default;
16
17 HeapArray* heap_array;
18 TaskMgr* mgr;
19 TaskParameter* param;
20};
21
22typedef TaskBase* (*TaskFactory)(const TaskConstructArg&);
23
24class TaskClassID
25{
26public:
27 enum Type : u64
28 {
29 cInvalid = 0,
30 cInt = 1,
31 cFactory = 2,
32 cString = 3
33 };
34
35public:
36 Type mType;
37 union
38 {
39 s32 mInt;
40 TaskFactory mFactory;
41 const char* mString;
42 } mID;
43};
44
45class TaskUserID
46{
47public:
48 s32 mID;
49};
50
51} // namespace sead
52
53#endif // SEAD_TASK_ID_H_
54