1#include "Library/MapObj/SwitchDitherMapParts.h"
2
3#include "Library/LiveActor/ActorInitUtil.h"
4#include "Library/LiveActor/ActorModelFunction.h"
5#include "Library/Nerve/NerveSetupUtil.h"
6#include "Library/Stage/StageSwitchUtil.h"
7#include "Library/Thread/FunctorV0M.h"
8
9namespace {
10using namespace al;
11
12NERVE_ACTION_IMPL(SwitchDitherMapParts, Wait)
13
14NERVE_ACTIONS_MAKE_STRUCT(SwitchDitherMapParts, Wait)
15} // namespace
16
17namespace al {
18SwitchDitherMapParts::SwitchDitherMapParts(const char* name) : LiveActor(name) {}
19
20void SwitchDitherMapParts::init(const ActorInitInfo& info) {
21 using SwitchDitherMapPartsFunctor =
22 FunctorV0M<SwitchDitherMapParts*, void (SwitchDitherMapParts::*)()>;
23
24 initNerveAction(actor: this, actionName: "Wait", collector: &NrvSwitchDitherMapParts.collector, maxStates: 0);
25 initMapPartsActor(actor: this, initInfo: info, suffix: nullptr);
26
27 bool isListenStartOnOff = listenStageSwitchOnOff(
28 user: this, eventName: "SwitchStart", actionOn: SwitchDitherMapPartsFunctor(this, &SwitchDitherMapParts::ditherOn),
29 actionOff: SwitchDitherMapPartsFunctor(this, &SwitchDitherMapParts::ditherOff));
30 if (isListenStartOnOff)
31 invalidateDitherAnim(actor: this);
32
33 makeActorAlive();
34}
35
36void SwitchDitherMapParts::ditherOn() {
37 validateDitherAnim(actor: this);
38}
39
40void SwitchDitherMapParts::ditherOff() {
41 invalidateDitherAnim(actor: this);
42}
43
44void SwitchDitherMapParts::exeWait() {}
45} // namespace al
46