Files
itgmania212121/stepmania/src/ScreenSelectMaster.h
T
Chris Danford 6b2830dab8 working on SMEX
2003-06-20 23:07:45 +00:00

73 lines
2.0 KiB
C++

#ifndef ScreenSelectMaster_H
#define ScreenSelectMaster_H
/*
-----------------------------------------------------------------------------
Class: ScreenSelectMaster
Desc: Abstract class for a widget that selects a ModeChoice
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenSelect.h"
#include "Sprite.h"
#include "BitmapText.h"
#include "RageSound.h"
#include "RandomSample.h"
class ScreenSelectMaster : public ScreenSelect
{
public:
ScreenSelectMaster();
virtual void Update( float fDelta );
virtual void MenuLeft( PlayerNumber pn );
virtual void MenuRight( PlayerNumber pn );
virtual void MenuUp( PlayerNumber pn ) {};
virtual void MenuDown( PlayerNumber pn ) {};
virtual void MenuStart( PlayerNumber pn );
// virtual void MenuBack( PlayerNumber pn );
float TweenOffScreen(); // return time in seconds to execute the command
float TweenOnScreen(); // return time in seconds to execute the command
virtual void HandleScreenMessage( const ScreenMessage SM );
protected:
enum Page { PAGE_1, PAGE_2, NUM_PAGES }; // on PAGE_2, cursors are locked together
Page GetPage( int iChoiceIndex );
Page GetCurrentPage();
virtual int GetSelectionIndex( PlayerNumber pn );
virtual void UpdateSelectableChoices();
void ChangePage( Page page );
void ChangeSelection( PlayerNumber pn, int iNewChoice );
float GetCursorX( PlayerNumber pn, int iPartIndex );
float GetCursorY( PlayerNumber pn, int iPartIndex );
Sprite m_sprExplanation[NUM_PAGES];
Sprite m_sprMore[NUM_PAGES];
#define MAX_ICON_PARTS 3
Sprite m_sprIcon[MAX_ICON_PARTS][MAX_CHOICES];
#define MAX_PREVIEW_PARTS 3
Sprite m_sprPreview[MAX_PREVIEW_PARTS][MAX_CHOICES][NUM_PLAYERS];
#define MAX_CURSOR_PARTS 3
Sprite m_sprCursor[MAX_CURSOR_PARTS][NUM_PLAYERS];
RageSound m_soundChange;
RageSound m_soundSelect;
RandomSample m_soundDifficult;
int m_iChoice[NUM_PLAYERS];
bool m_bChosen[NUM_PLAYERS];
float m_fLockInputSecs;
};
#endif