1#ifndef SCREEN_GAMEPLAY_H
2#define SCREEN_GAMEPLAY_H
4#include "Etterna/Models/Misc/AutoKeysounds.h"
5#include "Etterna/Actor/Base/BitmapText.h"
6#include "Etterna/Models/Misc/GameplayAssist.h"
7#include "Etterna/Models/Misc/InputEventPlus.h"
8#include "Etterna/Models/Misc/LocalizedString.h"
9#include "Etterna/Actor/Gameplay/LyricDisplay.h"
10#include "RageUtil/Sound/RageSound.h"
11#include "Etterna/Screen/Others/ScreenWithMenuElements.h"
12#include "Etterna/Models/Misc/ThemeMetric.h"
13#include "Etterna/Actor/GameplayAndMenus/Transition.h"
14#include "Etterna/Models/Misc/PlayerInfo.h"
20AutoScreenMessage(SM_NotesEnded);
21AutoScreenMessage(SM_BeginFailed);
22AutoScreenMessage(SM_LeaveGameplay);
34 void Update(
float fDeltaTime)
override;
36 void HandleScreenMessage(
const ScreenMessage& SM)
override;
37 void HandleMessage(
const Message& msg)
override;
38 void Cancel(ScreenMessage smSendWhenDone)
override;
53 void PushSelf(lua_State* L)
override;
57 void BeginBackingOutFromGameplay();
63 const float GetSongPosition();
66 virtual void UpdateStageStats(
69 virtual bool UseSongBackgroundAndForeground()
const {
return true; }
70 virtual void LoadPlayer();
71 virtual void ReloadPlayer();
72 virtual void LoadScoreKeeper();
73 virtual void RestartGameplay();
91 void SetupSong(
int iSongIndex);
92 void ReloadCurrentSong();
93 virtual void LoadNextSong();
94 void StartPlayingSong(
float fMinTimeToNotes,
float fMinTimeToMusic);
95 void GetMusicEndTiming(
float& fSecondsToStartFadingOutMusic,
96 float& fSecondsToStartTransitioningOut);
97 void PlayAnnouncer(
const std::string& type,
99 float* fDeltaSeconds);
100 void PlayAnnouncer(
const std::string& type,
float fSeconds)
102 PlayAnnouncer(type, fSeconds, &m_fTimeSinceLastDancingComment);
104 void SendCrossedMessages();
108 void UpdateSongPosition();
110 virtual void SaveStats();
111 virtual void StageFinished(
bool bBackedOut);
112 bool AllAreFailing();
114 virtual void SetupNoteDataFromRow(
Steps* pSteps,
int minRow = 0,
115 int maxrow = MAX_NOTE_ROW);
117 virtual void InitSongQueues();
134 std::vector<float> ratesqueue;
135 std::vector<std::string> playlistscorekeys;
139 float m_fTimeSinceLastDancingComment;
150 bool m_bShowScoreboard;
156 void AbortGiveUpText(
bool show_abort_text);
157 void AbortGiveUp(
bool bShowText);
158 void ResetGiveUpTimers(
bool show_text);
161 void CheckDiscordRPCTimer();
162 void TriggerDiscordRPCUpdate();
173 bool m_bZeroDeltaOnNextUpdate;
179 std::vector<PlayerInfo> m_vPlayerInfo{};
180 virtual void FillPlayerInfo(std::vector<PlayerInfo>& vPlayerInfoOut) = 0;
187 bool m_delaying_ready_announce;
190 bool m_bRestarted =
false;
Handle playback of auto keysound notes.
Definition AutoKeysounds.h:13
the Background that is behind the notes while playing.
Definition Background.h:11
An actor that holds a Font and draws text to the screen.
Definition BitmapText.h:11
Foreground in front of notes while playing.
Definition Foreground.h:10
The handclaps and metronomes ready to assist the player.
Definition GameplayAssist.h:11
The player's life.
Definition LifeMeter.h:13
Get a String based on the user's natural language.
Definition LocalizedString.h:13
Displays lyrics along with the song on Gameplay.
Definition LyricDisplay.h:8
Definition PlayerInfo.h:19
Definition RageSound.h:135
The music plays, the notes scroll, and the Player is pressing buttons.
Definition ScreenGameplay.h:27
DancingState
The different game states of ScreenGameplay.
Definition ScreenGameplay.h:121
@ STATE_DANCING
Definition ScreenGameplay.h:124
@ STATE_OUTRO
Definition ScreenGameplay.h:125
@ STATE_INTRO
Definition ScreenGameplay.h:122
Transition m_Toasty
The transition to use when one player earns an easter egg.
Definition ScreenGameplay.h:169
void BeginScreen() override
This is called immediately before the screen is used.
Definition ScreenGameplay.cpp:838
std::vector< Song * > m_apSongsQueue
The songs left to play.
Definition ScreenGameplay.h:133
void RestartGameplayForLua()
This function exists because.
Definition ScreenGameplay.h:60
Transition m_Failed
The transition to use when all players have failed.
Definition ScreenGameplay.h:167
Transition m_NextSong
Used between songs in a course to show the next song.
Definition ScreenGameplay.h:148
static bool Center1Player()
Determine if we are to center the columns for just one player.
Definition ScreenGameplay.cpp:359
void Init() override
This is called immediately after construction, to allow initializing after all derived classes exist.
Definition ScreenGameplay.cpp:113
void DrawPrimitives() override
Draw the primitives of the Actor.
Definition ScreenGameplay.cpp:1192
ScreenType GetScreenType() const override
Retrieve the current ScreenType.
Definition ScreenGameplay.h:45
Holds note information for a Song.
Definition Steps.h:42
The theme specific data.
Definition ThemeMetric.h:52
Definition Transition.h:11
Definition MessageManager.h:101