1#pragma once
2
3#include <prim/seadSafeString.h>
4
5namespace al {
6struct ActorInitInfo;
7class LiveActor;
8class Scene;
9class IUseSceneObjHolder;
10} // namespace al
11
12class BarrierField;
13class OceanWaveActor;
14class ShineTowerRocket;
15class RiseMapPartsHolder;
16class Shine;
17class IUseDemoSkip;
18class CaptionInfoHolder;
19class CinemaCaption;
20class DemoHackFirstDirector;
21
22namespace rs {
23al::LiveActor* createDemoPeachWedding(const al::ActorInitInfo&);
24al::LiveActor* createDemoCapManHeroine(const al::ActorInitInfo&);
25bool isRandomActionDemoChangeWorld(const al::LiveActor*, const char*);
26bool tryGetDemoChangeWorldRandomActionName(sead::BufferedSafeString*, s32*, const al::LiveActor*,
27 const char*);
28
29bool requestStartDemoNormal(al::LiveActor*, bool);
30void addDemoActor(al::LiveActor*, bool);
31void requestEndDemoNormal(const al::LiveActor*);
32bool requestStartDemoNormal(const al::Scene*);
33void requestEndDemoNormal(const al::Scene*);
34bool requestStartDemoNormalWithCinemaFrame(al::LiveActor*);
35void requestEndDemoNormalWithCinemaFrame(const al::LiveActor*);
36bool requestStartDemoWithPlayer(al::LiveActor*, bool);
37void requestEndDemoWithPlayer(const al::LiveActor*);
38bool requestStartDemoWithPlayer(const al::Scene*);
39void requestEndDemoWithPlayer(const al::Scene*);
40bool requestStartDemoWithPlayerCinemaFrame(al::LiveActor*, bool);
41void requestEndDemoWithPlayerCinemaFrame(const al::LiveActor*);
42bool requestStartDemoWithPlayerKeepCarry(al::LiveActor*, bool);
43void requestEndDemoWithPlayerKeepCarry(const al::LiveActor*);
44bool requestStartDemoWithPlayerUseCoin(al::LiveActor*, bool);
45void requestEndDemoWithPlayerUseCoin(const al::LiveActor*);
46bool requestStartDemoWithPlayerKeepBindTalk(al::LiveActor*, bool);
47void requestEndDemoWithPlayerKeepBindTalk(const al::LiveActor*);
48bool requestStartDemoKeepHackTalk(al::LiveActor*, bool);
49void requestEndDemoKeepHackTalk(const al::LiveActor*);
50bool requestStartDemoWithPlayerCinemaFrameTalk(al::LiveActor*, bool);
51void requestEndDemoWithPlayerCinemaFrameTalk(const al::LiveActor*);
52bool requestStartDemoWithPlayerKeepCarryTalk(al::LiveActor*, bool);
53void requestEndDemoWithPlayerKeepCarryTalk(const al::LiveActor*);
54bool requestStartDemoWithPlayerUseCoinTalk(al::LiveActor*, bool);
55void requestEndDemoWithPlayerUseCoinTalk(const al::LiveActor*);
56bool requestStartDemoNormalTalk(al::LiveActor*, bool);
57void requestEndDemoNormalTalk(const al::LiveActor*);
58bool requestStartDemoWarpToCheckpoint(const al::Scene*);
59bool requestStartDemoBossBattleStart(al::LiveActor*);
60void requestEndDemoBossBattleStart(const al::LiveActor*);
61bool requestStartDemoBossBattleEnd(al::LiveActor*);
62void requestEndDemoBossBattleEnd(const al::LiveActor*);
63bool requestStartDemoShineGet(Shine*);
64bool requestStartDemoAchievementShineGet(al::Scene*);
65void endDemoShineGet(al::Scene*);
66void requestEndDemoShineGet(const al::Scene*);
67void requestEndDemoShineGet(const al::LiveActor*);
68bool requestStartDemoShineDotGet(Shine*);
69void requestEndDemoShineDotGet(const al::Scene*);
70bool requestStartDemoShineMainGet(Shine*);
71void setDemoInfoDemoName(const al::LiveActor*, const char*);
72void requestEndDemoShineMainGet(const al::LiveActor*);
73void requestEndDemoShineMainGet(const al::Scene*);
74bool requestStartDemoShineGrandGet(Shine*);
75void requestEndDemoShineGrandGet(const al::LiveActor*);
76void requestEndDemoShineGrandGet(const al::Scene*);
77bool requestStartDemoShineAppear(al::LiveActor*);
78void requestEndDemoShineAppear(const al::LiveActor*);
79bool requestStartDemoShineAppear(const al::Scene*);
80void requestEndDemoShineAppear(const al::Scene*);
81bool requestStartDemoWarp(al::LiveActor*);
82bool requestStartDemoWarp(const al::Scene*);
83void requestEndDemoWarp(const al::LiveActor*);
84void requestEndDemoWarp(const al::Scene*);
85bool requestStartDemoHackStart(al::LiveActor*);
86void requestEndDemoHackStart(const al::LiveActor*);
87bool requestStartDemoAppearByBazookaElectric(al::LiveActor*);
88void requestEndDemoAppearByBazookaElectric(const al::LiveActor*);
89bool requestStartDemoLaunchBazookaElectric(al::LiveActor*);
90void requestEndDemoLaunchBazookaElectric(const al::LiveActor*);
91bool requestStartDemoSceneStartPlayerWalk(al::LiveActor*);
92void requestEndDemoSceneStartPlayerWalk(const al::LiveActor*);
93bool requestStartDemoGetLifeMaxUpItem(al::LiveActor*);
94void requestEndDemoGetLifeMaxUpItem(const al::Scene*);
95bool requestStartDemoBirdCarryMeat(al::LiveActor*);
96void requestEndDemoBirdCarryMeat(const al::LiveActor*);
97bool requestStartDemoBirdFindMeat(al::LiveActor*);
98void requestEndDemoBirdFindMeat(const al::LiveActor*);
99bool requestStartDemoGetTimeBalloon(al::LiveActor*);
100void requestEndDemoGetTimeBalloon(const al::LiveActor*);
101bool requestStartDemoJango(al::LiveActor*);
102void requestEndDemoJango(const al::LiveActor*);
103bool requestStartDemoTitleLogo(const al::LiveActor*);
104bool requestStartDemoGoToEnding(al::LiveActor*);
105
106bool isActiveDemo(const al::LiveActor*);
107bool isActiveDemo(const al::Scene*);
108bool isActiveDemoNormal(const al::Scene*);
109bool isActiveDemoNormalWithCinemaFrame(const al::Scene*);
110bool isActiveDemoWithPlayer(const al::Scene*);
111bool isActiveDemoWithPlayer(const al::LiveActor*);
112bool isActiveDemoWithPlayerCinemaFrame(const al::Scene*);
113bool isActiveDemoWithPlayerCinemaFrame(const al::LiveActor*);
114bool isActiveDemoWithPlayerKeepCarry(const al::Scene*);
115bool isActiveDemoWithPlayerKeepCarry(const al::LiveActor*);
116bool isActiveDemoWithPlayerUseCoin(const al::Scene*);
117bool isActiveDemoWithPlayerUseCoin(const al::LiveActor*);
118bool isActiveDemoWithPlayerKeepBindTalk(const al::Scene*);
119bool isActiveDemoWithPlayerKeepBindTalk(const al::LiveActor*);
120bool isActiveDemoWarpToCheckpoint(const al::LiveActor*);
121bool isActiveDemoShineGet(const al::Scene*);
122bool isActiveDemoShineGet(const al::LiveActor*);
123bool isActiveDemoShineDotGet(const al::Scene*);
124bool isActiveDemoShineDotGet(const al::LiveActor*);
125bool isActiveDemoShineGrandGet(const al::Scene*);
126bool isActiveDemoShineGrandGet(const al::LiveActor*);
127bool isActiveDemoShineMainGet(const al::Scene*);
128bool isActiveDemoShineMainGet(const al::LiveActor*);
129bool isActiveDemoWarp(const al::Scene*);
130bool isActiveDemoWarp(const al::LiveActor*);
131bool isActiveDemoHackStart(const al::LiveActor*);
132bool isActiveDemoHackStart(const al::Scene*);
133bool isActiveDemoHackStartFirst(const al::Scene*);
134bool isEqualDemoInfoDemoName(const al::Scene*, const char*);
135bool isActiveDemoScenarioCamera(const al::LiveActor*);
136bool isActiveDemoGetLifeMaxUpItem(const al::Scene*);
137bool isActiveDemoSceneStartPlayerWalk(const al::Scene*);
138bool isActiveDemoBirdCarryMeat(const al::Scene*);
139bool isActiveDemoBirdFindMeat(const al::Scene*);
140bool isActiveDemoJango(const al::Scene*);
141bool isActiveDemoJango(const al::LiveActor*);
142bool isActiveDemoTitleLogo(const al::Scene*);
143bool isActiveDemoGoToEnding(const al::Scene*);
144bool isActiveDemoTalk(const al::Scene*);
145bool isActiveDemoCinemaFrameTalk(const al::Scene*);
146bool isActiveDemoKeepCarryTalk(const al::Scene*);
147bool isActiveDemoUseCoinTalk(const al::Scene*);
148bool isActiveDemoKeepHackTalk(const al::Scene*);
149bool isActiveDemoNormalTalk(const al::Scene*);
150bool isActiveDemoLaunchBazookaElectric(const al::Scene*);
151bool isActiveDemoGiantWanderBossBattleStart(const al::Scene*);
152bool isActiveDemoGiantWanderBossBattleStart(const OceanWaveActor*);
153bool isActiveDemoPlayerPuppetable(const al::LiveActor*);
154
155void addDemoSubActor(al::LiveActor*);
156void registerShineTowerRocketToDemoDirector(ShineTowerRocket*);
157ShineTowerRocket* tryGetShineTowerRocketFromDemoDirector(al::LiveActor*);
158void addDemoAppearFromHomeToList(ShineTowerRocket*);
159void addDemoReturnToHomeToList(ShineTowerRocket*);
160void addDemoRiseMapPartsToList(RiseMapPartsHolder*);
161
162bool requestStartDemoWorldIntroCamera(const al::Scene*);
163void requestEndDemoWorldIntroCamera(const al::Scene*);
164bool requestStartDemoScenarioCamera(const al::Scene*);
165void requestEndDemoScenarioCamera(const al::LiveActor*);
166bool requestStartDemoAppearFromHome(const al::Scene*);
167void requestEndDemoAppearFromHome(const al::LiveActor*);
168bool requestStartDemoReturnToHome(const al::Scene*);
169void requestEndDemoReturnToHome(const al::LiveActor*);
170bool requestStartDemoRiseMapParts(const al::Scene*);
171void requestEndDemoRiseMapParts(const al::LiveActor*);
172bool requestStartDemoPeachCastleCap(al::LiveActor*);
173void requestEndDemoPeachCastleCap(const al::LiveActor*);
174
175bool isExistDemoAppearFromHomeInList(const al::Scene*);
176bool isExistDemoReturnToHome(const al::Scene*);
177bool isExistDemoRiseMapPartsInList(const al::Scene*);
178
179al::LiveActor* getRequestActor(const al::Scene*);
180void requestValidateDemoSkip(IUseDemoSkip*, const al::LiveActor*);
181IUseDemoSkip* getDemoSkipRequester(const al::Scene*);
182bool isDemoEnableSkip(const al::Scene*);
183bool isFirstDemo(const al::Scene*);
184bool isEnableSkipDemo(const al::Scene*);
185void skipDemo(const al::Scene*);
186void updateOnlyDemoGraphics(const al::Scene*);
187bool isFirstDemoWorldIntroCamera(const al::Scene*);
188bool isFirstDemoScenarioStartCamera(const al::LiveActor*);
189void noticeDemoSkipStart(const al::Scene*);
190void noticeDemoSkipEnd(const al::Scene*);
191bool isWaitDemoSkipEnd(const al::LiveActor*);
192CaptionInfoHolder* createCaptionInfoHolder(const char*);
193void validateDemoCaption(const al::LiveActor*, CaptionInfoHolder*);
194bool isActiveDemoWithCinemaCaption(const al::Scene*);
195bool tryAppearCinemaCaption(const al::Scene*, CinemaCaption*);
196void startCloseDemoFade(const al::LiveActor*, s32);
197void startOpenDemoFade(const al::LiveActor*, s32);
198bool isDemoFadeCloseEnd(const al::LiveActor*);
199bool isDemoFadeOpenEnd(const al::LiveActor*);
200bool isDemoFadeWipeStateEnableOpenMenuOrSnapShotMode(const al::Scene*);
201DemoHackFirstDirector* tryCreateDemoHackFirstDirector(al::LiveActor*, s32,
202 const al::ActorInitInfo&);
203void noticeDemoStartToDemoHackFirstDirector(const al::Scene*);
204void setBossBarrierField(BarrierField*);
205BarrierField* tryGetBossBarrierField(const al::LiveActor*);
206void setDemoEnvironmentChangeFlag(const al::Scene*, bool);
207void setDemoEnvironmentChangeFlag(const al::LiveActor*, bool);
208bool isDemoEnvironmentChange(const al::Scene*);
209bool isDemoEnvironmentChange(const al::LiveActor*);
210s32 getRandomActionIndexDemoChangeWorld(const al::LiveActor*);
211void setDemoInfoDemoName(const al::Scene*, const char*);
212void getDemoInfoDemoName(const al::LiveActor*);
213bool isTriggerDemoCancel(const al::IUseSceneObjHolder*);
214void updateDemoSystemOnly(const al::Scene*);
215void notifyDisableUpdateCamera(const al::LiveActor*);
216bool isDisableUpdateCamera(const al::Scene*);
217} // namespace rs
218