22 #ifndef ALCACHOFA_MENU_H 23 #define ALCACHOFA_MENU_H 25 #include "common/savefile.h" 31 enum class MainMenuAction : int32 {
46 enum class OptionsMenuAction : int32 {
56 enum class OptionsMenuValue : int32 {
66 inline bool isOpen()
const {
return _isOpen; }
67 inline uint32 millisBeforeMenu()
const {
return _millisBeforeMenu; }
68 inline Room *previousRoom() {
return _previousRoom; }
69 inline FakeSemaphore &interactionSemaphore() {
return _interactionSemaphore; }
72 void resetAfterLoad();
73 virtual void updateOpeningMenu();
75 virtual void triggerMainMenuAction(MainMenuAction action);
76 void triggerOptionsAction(OptionsMenuAction action);
77 void triggerOptionsValue(OptionsMenuValue valueId,
float value);
85 inline bool isOnNewSlot()
const {
return _selectedSavefileI >= _savefiles.size(); }
86 virtual void updateSelectedSavefile(
bool hasJustSaved);
87 virtual void setOptionsState() = 0;
89 void openOptionsMenu();
91 bool tryReadOldSavefile();
93 void continueMainMenu();
97 _openAtNextFrame =
false;
99 _millisBeforeMenu = 0,
100 _selectedSavefileI = 0;
101 Room *_previousRoom =
nullptr;
113 void triggerMainMenuAction(MainMenuAction action)
override;
116 void updateSelectedSavefile(
bool hasJustSaved)
override;
117 void setOptionsState()
override;
122 void updateOpeningMenu()
override;
123 void triggerMainMenuAction(MainMenuAction action)
override;
126 void updateSelectedSavefile(
bool hasJustSaved)
override;
127 void setOptionsState()
override;
131 void switchToState(MainMenuAction state);
133 MainMenuAction _currentState = MainMenuAction::ConfirmSavestate;
138 #endif // ALCACHOFA_MENU_H Definition: managed_surface.h:51
Definition: alcachofa.h:45
Definition: savefile.h:142
This fake semaphore does not work in multi-threaded scenarios It is used as a safer option for a simp...
Definition: common.h:93