1#ifndef ScreenSelectMaster_H
2#define ScreenSelectMaster_H
4#include "Etterna/Actor/Base/ActorScroller.h"
5#include "RageUtil/Sound/RageSound.h"
6#include "Etterna/Models/Misc/RandomSample.h"
7#include "ScreenSelect.h"
19#define FOREACH_MenuDir(md) FOREACH_ENUM(MenuDir, md)
21MenuDirToString(MenuDir md);
30 virtual std::string GetDefaultChoice();
38 void TweenOnScreen()
override;
39 void TweenOffScreen()
override;
41 void HandleScreenMessage(
const ScreenMessage& SM)
override;
42 void HandleMessage(
const Message& msg)
override;
46 int GetPlayerSelectionIndex(PlayerNumber pn)
48 return GetSelectionIndex(pn);
50 bool ChangeSelection(PlayerNumber pn, MenuDir dir,
int iNewChoice);
52 void PlayChangeSound() { m_soundChange.PlayCopy(
true); }
53 void PlaySelectSound() { m_soundStart.PlayCopy(
true); }
56 void PushSelf(lua_State* L)
override;
65 static PlayerNumber GetSharedPlayer();
66 Page GetPage(
int iChoiceIndex)
const;
67 Page GetCurrentPage()
const;
95 std::map<int, int> m_mapCurrentChoiceToNextChoice[NUM_MenuDir];
97 int GetSelectionIndex(PlayerNumber pn)
override;
98 void UpdateSelectableChoices()
override;
99 bool AnyOptionsArePlayable()
const;
101 bool Move(PlayerNumber pn, MenuDir dir);
102 bool ChangePage(
int iNewChoice);
103 float DoMenuStart(PlayerNumber pn);
104 virtual bool ProcessMenuStart(PlayerNumber pn) {
return true; }
106 float GetCursorX(PlayerNumber pn);
107 float GetCursorY(PlayerNumber pn);
112 std::vector<AutoActor> m_vsprIcon;
115 std::vector<AutoActor> m_vsprScroll;
128 bool m_bDoubleChoice;
129 bool m_bDoubleChoiceNoSound;
131 GameButton m_TrackingRepeatingInput;
A smart pointer for Actor.
Definition AutoActor.h:13
Definition RageSound.h:130
Definition RandomSample.h:10
The master Screen for many children Screens.
Definition ScreenSelectMaster.h:25
void Init() override
This is called immediately after construction, to allow initializing after all derived classes exist.
Definition ScreenSelectMaster.cpp:61
bool AllowLateJoin() const override
Determine if we allow extra players to join in on this screen.
Definition ScreenSelectMaster.h:43
void BeginScreen() override
This is called immediately before the screen is used.
Definition ScreenSelectMaster.cpp:335
Base class for Style, Difficulty, and Mode selection screens.
Definition ScreenSelect.h:9
std::vector< GameCommand > m_aGameCommands
The game commands available.
Definition ScreenSelect.h:31
Definition ThemeMetric.h:192
The theme specific data.
Definition ThemeMetric.h:52
Definition MessageManager.h:96