Files
itgmania212121/stepmania/src/ScreenSelect.h
T

53 lines
1.5 KiB
C++

#ifndef ScreenSelect_H
#define ScreenSelect_H
/*
-----------------------------------------------------------------------------
Class: ScreenSelect
Desc: Base class for Style, Difficulty, and Mode selection screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenWithMenuElements.h"
#include "BGAnimation.h"
#include "ModeChoice.h"
#include "CodeDetector.h"
// Derived classes must send this when done
const ScreenMessage SM_AllDoneChoosing = (ScreenMessage)(SM_User+123); // unique
#define MAX_CHOICES 30
class ScreenSelect : public ScreenWithMenuElements
{
public:
ScreenSelect( CString sClassName );
virtual ~ScreenSelect();
virtual void Update( float fDelta );
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 );
virtual void MenuBack( PlayerNumber pn );
protected:
virtual int GetSelectionIndex( PlayerNumber pn ) = 0;
virtual void UpdateSelectableChoices() = 0; // derived screens must handle this
void FinalizeChoices();
vector<BGAnimation*> m_vpBGAnimations;
vector<ModeChoice> m_aModeChoices; // derived classes should look here for what choices are available
vector<CodeItem> m_aCodes;
vector<ModeChoice> m_aCodeChoices;
vector<CString> m_aCodeActions;
};
#endif