1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class LiveActor;
7}
8class GameDataHolderAccessor;
9class GameDataHolder;
10
11class GameSequenceInfo {
12public:
13 enum ShopStatus : s32 {
14 ShopStatus_None = 0,
15 ShopStatus_BuyShine = 1,
16 ShopStatus_BuyShineMany = 2,
17 ShopStatus_BuyMaxLifeUpItem = 3
18 };
19
20 enum SceneStatus : s32 {
21 SceneStatus_None = 0,
22 SceneStatus_BossBattle = 1,
23 };
24
25 GameSequenceInfo();
26
27 void init();
28 void resetSceneStatus();
29 void setSceneStatusBossBattle();
30 void setSceneStatusBossBattleEnd();
31 void setSceneStatusBossBattleEndForPlayerAnim();
32 void setSceneStatusInvalidSave();
33 bool isSceneStatusBossBattle() const;
34 bool isSceneStatusBossBattleForPlayerAnim() const;
35 bool isSceneStatusInvalidSave() const;
36 bool isShopStatus(s32 shopStatus) const;
37 void setShopStatus(s32 shopStatus);
38
39 bool isWipeOpenEnd() const { return mIsWipeOpenEnd; }
40
41 void setWipeOpenEnd(bool isEnd) { mIsWipeOpenEnd = isEnd; }
42
43private:
44 SceneStatus mSceneStatus;
45 bool mIsStatusBossBattle;
46 bool mIsStatusInvalidSave;
47 bool mIsWipeOpenEnd;
48 ShopStatus mShopStatus;
49};
50
51namespace rs {
52void setSceneStatusBossBattle(const al::LiveActor* actor);
53void setSceneStatusBossBattleEnd(const al::LiveActor* actor);
54void setSceneStatusBossBattleEndForPlayerAnim(const al::LiveActor* actor);
55bool isSceneStatusBossBattle(GameDataHolderAccessor accessor);
56bool isSceneStatusBossBattleForPlayerAnim(const al::LiveActor* actor);
57bool isSceneStatusInvalidSave(GameDataHolderAccessor accessor);
58void setSceneStatusInvalidSave(GameDataHolderAccessor accessor);
59bool isInvalidSaveStage(const char* stageName);
60bool isWipeOpenEnd(const al::LiveActor* actor);
61void endWipeOpen(const GameDataHolder* holder);
62void startWipeOpen(const GameDataHolder* holder);
63bool isShopStatusBuyItem(const al::LiveActor* actor);
64bool isShopStatusBuyShine(const al::LiveActor* actor);
65bool isShopStatusBuyShineMany(const al::LiveActor* actor);
66bool isShopStatusBuyMaxLifeUpItem(const al::LiveActor* actor);
67void setShopStatusBuyShine(const al::LiveActor* actor);
68void setShopStatusBuyShineMany(const al::LiveActor* actor);
69void setShopStatusBuyMaxLifeUpItem(const al::LiveActor* actor);
70void setShopStatusNone(const al::LiveActor* actor);
71} // namespace rs
72