1#pragma once
2
3#include "Library/Message/IUseMessageSystem.h"
4#include "Library/Nerve/NerveStateBase.h"
5
6namespace al {
7class LayoutInitInfo;
8class Scene;
9class SimpleLayoutAppearWaitEnd;
10class MessageSystem;
11class WindowConfirm;
12} // namespace al
13class CommonVerticalList;
14class FooterParts;
15class GameConfigData;
16class GameDataHolder;
17class InputSeparator;
18class SimpleLayoutMenu;
19class WindowConfirmData;
20
21class StageSceneStateOption : public al::HostStateBase<al::Scene>, public al::IUseMessageSystem {
22public:
23 StageSceneStateOption(const char*, al::Scene*, const al::LayoutInitInfo&, FooterParts*,
24 GameDataHolder*, bool);
25
26 void updateConfigDataInfo(const GameConfigData*);
27 void killAllLayouts();
28 void init() override;
29 void appear() override;
30 void kill() override;
31 bool isModeSelectEnd() const;
32 s32 getSelectedFileId() const;
33 bool isChangeLanguage() const;
34 void exeOptionTop();
35 void decide(const al::Nerve*, SimpleLayoutMenu*, CommonVerticalList*);
36 void exeModeSelectSelecting();
37 void openConfirm(const al::Nerve*, SimpleLayoutMenu*, CommonVerticalList*);
38 void cancel(const al::Nerve*, SimpleLayoutMenu*, CommonVerticalList*);
39 void exeModeSelectSelectingByHelp();
40 void exeModeSelectConfirmYesNo();
41 void exeModeSelectConfirmEnd();
42 void exeConfig();
43 void endConfig();
44 void exeDataManager();
45 void exeSaveDataSelecting();
46 void updateSaveDataInfo(bool);
47 void exeSaveDataConfirmYesNo();
48 void exeSaveDataSaving();
49 void exeSaveDataSaved();
50 void exeLoadDataSelecting();
51 void exeLoadDataConfirmNg();
52 void exeLoadDataConfirmYesNo();
53 void exeLoadDataSaving();
54 void exeDeleteDataSelecting();
55 void exeDeleteDataConfirmNg();
56 void exeDeleteDataConfirmYesNo();
57 void exeDeleteDataDeleting();
58 void exeDeleteDataDeleted();
59 void exeLanguageSetting();
60 void exeLanguageSettingConfirmYesNo();
61 void exeWaitEndDecideAnim();
62 void exeWaitEndDecideAnimAndAutoSave();
63 void exeWaitEndAutoSave();
64 void exeClose();
65 void changeNerve(const al::Nerve*, SimpleLayoutMenu*, CommonVerticalList*);
66
67 const al::MessageSystem* getMessageSystem() const override;
68
69 const char* getLanguage() const { return mLanguage; };
70
71 void set_51(bool isTrue) { field_51 = isTrue; }
72
73 bool isLoadData() const { return mIsLoadData; }
74
75private:
76 void* field_28;
77 void* field_30;
78 void* field_38;
79 char* field_40;
80 char* field_48;
81 bool field_50;
82 bool field_51;
83 FooterParts* mFooterParts;
84 void* field_60;
85 SimpleLayoutMenu* field_68;
86 CommonVerticalList* field_70;
87 al::SimpleLayoutAppearWaitEnd* field_78;
88 CommonVerticalList* field_80;
89 SimpleLayoutMenu* field_88;
90 CommonVerticalList* field_90;
91 al::SimpleLayoutAppearWaitEnd* field_98;
92 FooterParts* field_a0;
93 SimpleLayoutMenu* field_a8;
94 CommonVerticalList* mCtrlSettingsList;
95 SimpleLayoutMenu* field_b8;
96 CommonVerticalList* field_c0;
97 SimpleLayoutMenu* field_c8;
98 void* field_d0;
99 WindowConfirmData* field_d8;
100 SimpleLayoutMenu* field_e0;
101 CommonVerticalList* field_e8;
102 void* field_f0;
103 void* field_f8;
104 void* field_100;
105 void* field_108;
106 void* field_110;
107 void* field_118;
108 void* field_120;
109 void* field_128;
110 void* field_130;
111 void* field_138;
112 s32 field_140;
113 s32 field_144;
114 SimpleLayoutMenu* field_148;
115 FooterParts* field_150;
116 CommonVerticalList* field_158;
117 al::WindowConfirm* field_160;
118 const char* mLanguage;
119 al::Scene* mScene;
120 GameDataHolder* mGameDataHolder;
121 bool mIsLoadData;
122 al::MessageSystem* mMessageSystem;
123 InputSeparator* mInputSeperator;
124};
125