1#pragma once
2
3namespace al {
4class FunctorBase;
5class IUseStageSwitch;
6class StageSwitchDirector;
7class PlacementInfo;
8
9void initStageSwitch(IUseStageSwitch* user, StageSwitchDirector* stageSwitchDirector,
10 const PlacementInfo& placementInfo);
11bool isValidStageSwitch(const IUseStageSwitch* user, const char* linkName);
12bool isOnStageSwitch(const IUseStageSwitch* user, const char* linkName);
13void onStageSwitch(IUseStageSwitch* user, const char* linkName);
14void offStageSwitch(IUseStageSwitch* user, const char* linkName);
15bool tryOnStageSwitch(IUseStageSwitch* user, const char* linkName);
16bool tryOffStageSwitch(IUseStageSwitch* user, const char* linkName);
17bool isSameStageSwitch(const IUseStageSwitch* user, const IUseStageSwitch* otherUser,
18 const char* linkName);
19bool isValidSwitchAppear(const IUseStageSwitch* user);
20bool isOnSwitchAppear(const IUseStageSwitch* user);
21bool isValidSwitchKill(const IUseStageSwitch* user);
22bool isValidSwitchDeadOn(const IUseStageSwitch* user);
23void onSwitchDeadOn(IUseStageSwitch* user);
24void offSwitchDeadOn(IUseStageSwitch* user);
25bool tryOnSwitchDeadOn(IUseStageSwitch* user);
26bool tryOffSwitchDeadOn(IUseStageSwitch* user);
27bool isValidSwitchStart(const IUseStageSwitch* user);
28bool isOnSwitchStart(const IUseStageSwitch* user);
29bool listenStageSwitchOn(IUseStageSwitch* user, const char* eventName, const FunctorBase& action);
30bool listenStageSwitchOff(IUseStageSwitch* user, const char* eventName, const FunctorBase& action);
31bool listenStageSwitchOnOff(IUseStageSwitch* user, const char* eventName,
32 const FunctorBase& actionOn, const FunctorBase& actionOff);
33bool listenStageSwitchOnAppear(IUseStageSwitch* user, const FunctorBase& action);
34bool listenStageSwitchOnOffAppear(IUseStageSwitch* user, const FunctorBase& actionOn,
35 const FunctorBase& actionOff);
36bool listenStageSwitchOnKill(IUseStageSwitch* user, const FunctorBase& action);
37bool listenStageSwitchOnOffKill(IUseStageSwitch* user, const FunctorBase& actionOn,
38 const FunctorBase& actionOff);
39bool trySyncStageSwitchOnOffAppear(IUseStageSwitch* user, const FunctorBase& actionOn,
40 const FunctorBase& actionOff);
41bool trySyncStageSwitchOnOffKill(IUseStageSwitch* user, const FunctorBase& actionOn,
42 const FunctorBase& actionOff);
43bool trySyncStageSwitchOnOffAppearAndKill(IUseStageSwitch* user, const FunctorBase& actionOn,
44 const FunctorBase& actionOff);
45bool trySyncStageSwitchOnOff(IUseStageSwitch* user, const FunctorBase& actionOn,
46 const FunctorBase& actionOff);
47bool listenStageSwitchOnStart(IUseStageSwitch* user, const FunctorBase& action);
48bool listenStageSwitchOnOffStart(IUseStageSwitch* user, const FunctorBase& actionOn,
49 const FunctorBase& actionOff);
50bool listenStageSwitchOnStop(IUseStageSwitch* user, const FunctorBase& action);
51} // namespace al
52