1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class ExecuteDirector;
7class PlacementId;
8class StageSwitchAccesser;
9class StageSwitchDirector;
10class StageSwitchListener;
11class PlacementInfo;
12class IUseStageSwitch;
13class FunctorBase;
14class IUseName;
15
16struct StageSwitchAccesserList {
17 StageSwitchAccesserList();
18 StageSwitchAccesserList(const StageSwitchAccesser* accessers);
19
20 const StageSwitchAccesser* accessers = nullptr;
21 s32 accesserSize = 0;
22 s32 accesserCapacity = 0;
23};
24
25class StageSwitchKeeper {
26public:
27 StageSwitchKeeper();
28 void init(StageSwitchDirector* director, const PlacementInfo& placementInfo);
29 StageSwitchAccesser* tryGetStageSwitchAccesser(const char* linkName) const;
30
31 void setUseName(IUseName* useName) { mUseName = useName; }
32
33private:
34 StageSwitchAccesser* mAccessers = nullptr;
35 s32 mAccesserSize = 0;
36 IUseName* mUseName = nullptr;
37};
38
39} // namespace al
40