blob: f3ef3f347baf3144ac3ca1586c9cd30aa2e597ba (
plain)
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
|
#pragma once
#include <basis/seadTypes.h>
#include <thread/seadAtomic.h>
#include <thread/seadCriticalSection.h>
#include "KingSystem/ActorSystem/actBaseProcHandle.h"
namespace ksys::act {
class BaseProc;
class BaseProcHandle;
class BaseProcUnit {
public:
bool deleteProc(u32, BaseProcHandle* handle);
bool setProc(BaseProc* proc);
void unlinkProc(BaseProc* proc);
void cleanUp(BaseProc* proc, bool set_flag_5);
bool isParentHandleDefault() const;
BaseProc* getProc() const { return mProc; }
bool isReady() const { return mFlags == 2; }
private:
u32 mFlags;
sead::Atomic<BaseProcHandle*> mHandle;
BaseProc* mProc;
// FIXME:
// BaseProcRequest mRequest;
sead::CriticalSection mCS;
};
} // namespace ksys::act
|