Files
itgmania212121/stepmania/src/ScreenGameplay.h
T
Chris Gomez a970766dff Add support for a few announcer triggers;
gameplay oni fail
gameplay oni fail halfway (may as well, used in extreme)
gameplay combo overflow (for multiples of 100 over 1000)

Hm. neither of the oni fail ones are actually oni-specific (are used with any course mode).
2003-08-25 17:15:47 +00:00

196 lines
6.0 KiB
C++

#ifndef SCREENGAMEPLAY_H
#define SCREENGAMEPLAY_H
/*
-----------------------------------------------------------------------------
Class: ScreenGameplay
Desc: The music plays, the notes scroll, and the Player is pressing buttons.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "Screen.h"
#include "Sprite.h"
#include "Transition.h"
#include "BitmapText.h"
#include "Player.h"
#include "RandomSample.h"
#include "RageSound.h"
#include "Background.h"
#include "LifeMeter.h"
#include "ScoreDisplay.h"
#include "DifficultyIcon.h"
#include "BPMDisplay.h"
class Inventory;
#include "BeginnerHelper.h"
#include "LyricDisplay.h"
#include "TimingAssist.h"
#include "Character.h"
// messages sent by Combo
const ScreenMessage SM_PlayToasty = ScreenMessage(SM_User+104);
const ScreenMessage SM_100Combo = ScreenMessage(SM_User+200);
const ScreenMessage SM_200Combo = ScreenMessage(SM_User+201);
const ScreenMessage SM_300Combo = ScreenMessage(SM_User+202);
const ScreenMessage SM_400Combo = ScreenMessage(SM_User+203);
const ScreenMessage SM_500Combo = ScreenMessage(SM_User+204);
const ScreenMessage SM_600Combo = ScreenMessage(SM_User+205);
const ScreenMessage SM_700Combo = ScreenMessage(SM_User+206);
const ScreenMessage SM_800Combo = ScreenMessage(SM_User+207);
const ScreenMessage SM_900Combo = ScreenMessage(SM_User+208);
const ScreenMessage SM_1000Combo = ScreenMessage(SM_User+209);
const ScreenMessage SM_ComboStopped = ScreenMessage(SM_User+210);
const ScreenMessage SM_ComboContinuing = ScreenMessage(SM_User+211);
const ScreenMessage SM_BattleTrickLevel1 = ScreenMessage(SM_User+301);
const ScreenMessage SM_BattleTrickLevel2 = ScreenMessage(SM_User+302);
const ScreenMessage SM_BattleTrickLevel3 = ScreenMessage(SM_User+303);
const ScreenMessage SM_BattleDamageLevel1 = ScreenMessage(SM_User+304);
const ScreenMessage SM_BattleDamageLevel2 = ScreenMessage(SM_User+305);
const ScreenMessage SM_BattleDamageLevel3 = ScreenMessage(SM_User+306);
class LyricsLoader;
class ScreenGameplay : public Screen
{
public:
ScreenGameplay( bool bDemonstration = false );
virtual ~ScreenGameplay();
virtual void Update( float fDeltaTime );
virtual void DrawPrimitives();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
virtual void HandleScreenMessage( const ScreenMessage SM );
protected:
void TweenOnScreen();
void TweenOffScreen();
bool IsLastSong();
void LoadNextSong();
float StartPlayingSong(float MinTimeToNotes, float MinTimeToMusic);
void ShowSavePrompt( ScreenMessage SM_SendWhenDone );
bool OneIsHot();
bool AllAreInDanger();
bool AllAreFailing();
bool AllFailedEarlier();
bool IsTimeToPlayTicks() const;
void UpdateLyrics( float fDeltaTime );
enum DancingState {
STATE_INTRO = 0, // not allowed to press Back
STATE_DANCING,
STATE_OUTRO, // not allowed to press Back
NUM_DANCING_STATES
} m_DancingState;
vector<Song*> m_apSongsQueue; // size may be >1 if playing a course
vector<Steps*> m_apNotesQueue[NUM_PLAYERS]; // size may be >1 if playing a course
CStringArray m_asModifiersQueue[NUM_PLAYERS];// size may be >1 if playing a course
bool m_bChangedOffsetOrBPM;
float m_fTimeLeftBeforeDancingComment; // this counter is only running while STATE_DANCING
LyricDisplay m_LyricDisplay;
TimingAssist m_TimingAssist;
Background m_Background;
Transition m_NextSongIn; // shows between songs in a course
Transition m_NextSongOut; // shows between songs in a course
Sprite m_sprLifeFrame;
LifeMeter* m_pLifeMeter[NUM_PLAYERS];
CombinedLifeMeter* m_pCombinedLifeMeter;
Sprite m_sprStage;
BitmapText m_textCourseSongNumber[NUM_PLAYERS];
BPMDisplay m_BPMDisplay;
Sprite m_sprScoreFrame;
ScoreDisplay* m_pScoreDisplay[NUM_PLAYERS];
ScoreKeeper* m_pPrimaryScoreKeeper[NUM_PLAYERS];
ScoreKeeper* m_pSecondaryScoreKeeper[NUM_PLAYERS];
BitmapText m_textPlayerOptions[NUM_PLAYERS];
BitmapText m_textSongOptions;
BitmapText m_textDebug;
BitmapText m_textAutoPlay; // for AutoPlay, AutoAdjust
void UpdateAutoPlayText();
BitmapText m_MaxCombo;
Transition m_Ready;
Transition m_Go;
Transition m_Cleared;
Transition m_Failed;
Transition m_Extra;
Transition m_Toasty; // easter egg
Transition m_Win[NUM_PLAYERS];
Transition m_Draw;
Transition m_In;
Transition m_Back;
BitmapText m_textSurviveTime; // used in extra stage
BitmapText m_textSongTitle;
Player m_Player[NUM_PLAYERS];
// used in PLAY_MODE_BATTLE
Inventory* m_pInventory[NUM_PLAYERS];
DifficultyIcon m_DifficultyIcon[NUM_PLAYERS];
BGAnimation m_bgaBH;
Sprite m_sprBH;
Sprite m_sprOniGameOver[NUM_PLAYERS];
void ShowOniGameOver( PlayerNumber pn );
RandomSample m_soundOniDie;
RandomSample m_announcerReady;
RandomSample m_announcerHereWeGo;
RandomSample m_announcerDanger;
RandomSample m_announcerGood;
RandomSample m_announcerHot;
RandomSample m_announcerOni;
RandomSample m_announcer100Combo;
RandomSample m_announcer200Combo;
RandomSample m_announcer300Combo;
RandomSample m_announcer400Combo;
RandomSample m_announcer500Combo;
RandomSample m_announcer600Combo;
RandomSample m_announcer700Combo;
RandomSample m_announcer800Combo;
RandomSample m_announcer900Combo;
RandomSample m_announcer1000Combo;
RandomSample m_announcerComboStopped;
RandomSample m_announcerComboContinuing;
RandomSample m_announcerBattleTrickLevel1;
RandomSample m_announcerBattleTrickLevel2;
RandomSample m_announcerBattleTrickLevel3;
RandomSample m_soundBattleTrickLevel1;
RandomSample m_soundBattleTrickLevel2;
RandomSample m_soundBattleTrickLevel3;
RandomSample m_announcerBattleDamageLevel1;
RandomSample m_announcerBattleDamageLevel2;
RandomSample m_announcerBattleDamageLevel3;
RandomSample m_announcerBattleDie;
bool m_bZeroDeltaOnNextUpdate;
bool m_bDemonstration;
RageSound m_soundAssistTick;
RageSound m_soundMusic;
BeginnerHelper m_BeginnerHelper;
};
#endif