Etterna 0.74.4
Loading...
Searching...
No Matches
ScreenWithMenuElements.h
1#ifndef ScreenWithMenuElements_H
2#define ScreenWithMenuElements_H
3
4#include "Etterna/Actor/Base/ActorUtil.h"
5#include "Screen.h"
6#include "Etterna/Models/Misc/ThemeMetric.h"
7#include "Etterna/Actor/GameplayAndMenus/Transition.h"
8
9class MenuTimer;
10
12{
13 public:
15 void Init() override;
16 void BeginScreen() override;
17 ~ScreenWithMenuElements() override;
18
19 void HandleScreenMessage(const ScreenMessage& SM) override;
20 void Update(float fDeltaTime) override;
21 void UpdateTimedFunctions(float fDeltaTime) override;
22 void StartTransitioningScreen(ScreenMessage smSendWhenDone);
23 virtual void Cancel(ScreenMessage smSendWhenDone);
24 bool IsTransitioning();
25 bool AllowCallbackInput() override { return !IsTransitioning(); }
26
27 void StopTimer();
28 void ResetTimer();
29
30 // Sub-classes can hook these and do special actions that won't be triggered
31 // automatically by an "On"/"Off" command
32 virtual void TweenOnScreen();
33 virtual void TweenOffScreen();
34
35 // Lua
36 void PushSelf(lua_State* L) override;
37
38 bool AllowLateJoin() const override { return m_bShouldAllowLateJoin; }
39 bool m_bShouldAllowLateJoin; // So that it can be exposed to Lua.
40
41 protected:
42 std::string HandleLuaMusicFile(std::string const& path);
43 virtual void StartPlayingMusic();
44 void SetHelpText(const std::string& s);
45
46 AutoActor m_sprUnderlay;
47 MenuTimer* m_MenuTimer;
48 AutoActor m_sprOverlay;
49 std::vector<Actor*> m_vDecorations;
50
51 Transition m_In;
52 Transition m_Out;
53 Transition m_Cancel;
54
55 ThemeMetric<bool> PLAY_MUSIC;
56 ThemeMetric<bool> MUSIC_ALIGN_BEAT;
57 ThemeMetric<float> DELAY_MUSIC_SECONDS;
58 ThemeMetric<bool> CANCEL_TRANSITIONS_OUT;
59 ThemeMetric<float> TIMER_SECONDS;
60 ThemeMetric<std::string> TIMER_METRICS_GROUP;
61 ThemeMetric<bool> RESET_GAMESTATE;
62
63 private:
64 std::string m_sPathToMusic;
65};
66
68{
69 public:
70 bool MenuStart(const InputEventPlus& input) override;
71 bool MenuBack(const InputEventPlus& input) override;
72
73 // Lua
74 void PushSelf(lua_State* L) override;
75
76 protected:
77};
78
82
83#endif
A smart pointer for Actor.
Definition AutoActor.h:13
Holds a device input plus Game/Menu translations.
Definition InputEventPlus.h:9
Definition MenuTimer.h:16
Definition ScreenWithMenuElements.h:80
Definition ScreenWithMenuElements.h:68
Definition ScreenWithMenuElements.h:12
bool AllowLateJoin() const override
Determine if we allow extra players to join in on this screen.
Definition ScreenWithMenuElements.h:38
void BeginScreen() override
This is called immediately before the screen is used.
Definition ScreenWithMenuElements.cpp:107
void Init() override
This is called immediately after construction, to allow initializing after all derived classes exist.
Definition ScreenWithMenuElements.cpp:30
Class that holds a screen-full of Actors.
Definition Screen.h:64
The theme specific data.
Definition ThemeMetric.h:52
Definition Transition.h:11